Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
123new

AdminBookMenu для DayZ 0.62

Recommended Posts

И снвова здравствуйте, товарищи!

Думаю, многие из вас уже натыкались на BookMenu в сборках серверной части 0.62 в сети, но большинство не смогло их установить. В данной теме я опишу гайд, который поможет вам установить похожее меню на свой сервер, созданный на основе серверных файлов моей сборки:

 

Начнем:

1. Скачиваем архив: https://yadi.sk/d/tLLdv6vJRoYThQ

https://mega.nz/#!6CoyiCbY!FlMeng4M3ZtSQk1ttjim1-AD-_J8AerXrqK7VK0FWRI

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

2. Помещаем файл AdminBook.c по пути: scripts\4_World\Entities\ItemBase

3. Открываем в Notepad++: scripts\4_World\Entities\ManBase\PlayerBase.c
4. Находим:

void OnGetActions (ActionMenuContext ctx, Man player)
	{  	
		super.OnGetActions(ctx, player);
		if ( GetDayZGame().IsNewPlayer() && GetGame().IsServer() && m_ActionManager ) m_ActionManager.OnGetActions(ctx);
	}

И меняем на

void OnGetActions (ActionMenuContext ctx, Man player)
	{  	
		super.OnGetActions(ctx, player);
		if ( GetDayZGame().IsNewPlayer() && GetGame().IsServer() && m_ActionManager ) m_ActionManager.OnGetActions(ctx);

		float mySwitch;
		player.GetVariable ("toggleFreeCamOptions", mySwitch);
		
		if ( mySwitch == 1) //Shows actions on player only if switch is toggled on//set to 1 if 0 then does not show it!
		{
			ctx.AddAction("EXIT", 					1, 	NULL, 	1, 	true, 	true);
			// ctx.AddAction("TELEPORT TO PLAYER", 	2, 	NULL, 	1, 	true, 	true);
			// ctx.AddAction("MY ACTION #3", 		2, 	NULL, 	1, 	true, 	true);
			// ctx.AddAction("MY ACTION #4", 		2, 	NULL, 	1, 	true, 	true);
		}
		
	}

А также находим:

bool OnAction(int action_id, Man player, ParamsReadContext ctx)
	{
		super.OnAction(action_id, player, ctx);
		if( GetDayZGame().IsNewPlayer() && action_id == 109 && GetGame().IsServer() &&  m_ActionManager) m_ActionManager.OnAction();
	}

и меняем на

bool OnAction(int action_id, Man player, ParamsReadContext ctx)
	{
		super.OnAction(action_id, player, ctx);
		if( GetDayZGame().IsNewPlayer() && action_id == 109 && GetGame().IsServer() &&  m_ActionManager) m_ActionManager.OnAction();
		
		if ( GetGame().IsServer() )
		{
			switch (action_id)
			{
				case 1:
					
					string PlayerAdmin;
					player.GetVariable ( "PlayerName", PlayerAdmin );
					
					string cameraCode = "{ if (name _x == '" + PlayerAdmin + "') then {(owner _x) SpawnForClient { _cam = 'camconstruct' camCreate [0,0,0]; _cam CameraEffect ['Terminate', 'Back']; camDestroy _cam; }; }; }forEach players;";
										
					GetGame().ExecuteSQF(cameraCode);

					player.SetVariable( "toggleFreeCamOptions", 0);

					break;
					
				case 2:
				
					string freeCamTeleportPos;
					player.GetVariable ( "freeCamTeleportPos", freeCamTeleportPos );
					
					vector teleportLocation = freeCamTeleportPos.ToVector();
					
					player.SetPosition(teleportLocation);

					break;
					
			};
		};
	}

P.S. Это необходимые опции для выхода с режима наблюдения

5. Открываем файл: MPMissions\dayz_Auto.ChernarusPlus\scripts\init\init_newBody.sqf  и находим строки:

playerBodies set [count playerBodies,_agent];
	_agent setVariable ["UID",_uid];

Добавляем ниже строки

_agent setVariable ["toggleFreeCamOptions",0];
	_agent setVariable ["freeCamTeleportPos",0];

Там же находим строку

myNotifiers = _agent getVariable ["myNotifiers",[]];

и добавляем ниже

_agent setVariable ["playerName",name _agent];

6. Открываем: scripts\DataBase\DataBase.h

И добавляем в конце файла следующее:

// InGame AdminMenu 'AdminBook' by 123new
	static const string AdminMenu_adminList = "76561200555123705,UID4,UID5"; 
	static const string AdminMenu_ModerList = "UID1,UID2,UID3";

Где, как вы уже догадались, в указанном формате UID модеров и админов на сервере

P.S. Соблюдайте, чтобы UID в списке админов не дублировался в списке модераторов, и наоборот

7. Запускаем сервер,добавляем в лут себе объект с id "BookTheThreeMusketeers" и проверяем то что мы сделали!
Меню будет на правой кнопке мышки на книжке, если вы прописали верно ваш UID.

 

У администрации доступно:
1. Изменение погоды
2. Выдача 3 наборов с лутом в качестве примера (сами потом редактируйте, на enscript) (при выдаче лута скидывайте книгу на землю!!!)
3. Наблюдение за игроками (дистанция ограничена дальностью отрисовки и синхронизации объектов на стороне клиента игры)

У модерации доступно:
1. Наблюдение за игроками (дистанция ограничена дальностью отрисовки и синхронизации объектов на стороне клиента игры)

Замеченные недостатки:
Поскольку меню работает по никам игроков, то возможны проблемы, поскольку некоторые символы могут не восприняться enscript текущей версии игры и вызывать проблемы скрипта.
Дальность наблюдения ограничена (см выше)
Поскольку Enscript 0.62 версии игры крайне сырой, возможны 'убегания' меню за экран

Где редактировать меню?
Все просто, тут весь код: scripts\4_World\Entities\ItemBase\AdminBook.c

Благодарности: Автору uhneb за его вариант с рабочим меню, которые сделал он, либо комьюнити, с которым он работал
Работоспособность: DayZ 0.62

Возможно, можно сделать эти меню более граммотно с нынешними знаниями по 0.63, но я считаю это уже нецелесообразным!

 

Чужая наработка автора BorizK (за что и благодарим его) на базе этого меню:

Описание имеется там же несколькими сообщениями ниже!

 

Замечу, что данный гайд основывается именно на мою версию сборки серверных файлов игры DayZ 0.62, но не исключено, что может подходить и к вашим серверным файлам! Также, возможно дорабатывать и изменять опционал меню, используя привычные sqf-функции. Для этого создавайте эти функции в sqf из mpmission, а затем дорабатывайте само book-menu под нужные вам опции. Пример исполнения sqf-кода на enscript (только для dayz 0.62) имеется в опции наблюдения!

Edited by 123new (see edit history)

Share this post


Link to post
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Fan10m22
      Ищем тех. админа для нашего сервера
      Нужно сделать 4-5 личных модов 
      Сервак планируется Vanilla+
      Задачи все будут по ТЗ
      Затраты планируем на всю сборку модов около 20-30к 
    • By Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. На сервере есть трейдер зоны и базы игроков. 
      Если в течение определённого времени, на пример 1 - 2 часа с машиной не кто не взаимодействует и машина не находится в зоне трейдера или на теретории базы, то машина отлетает в гараж или на штраф стоянку.
      На сервере используется TraderPlus.
       
      Есть такие решения у кого?
      За ранние благодарю.
    • By radical
      Доброго времени суток! Хотел вот поинтересоваться, плюс по возможности чтобы растолковали что к чему.
      Суть вопроса: хочу на сервер сделать те же самые ванильные вещи, но, кхм, размер клеточек у ванильных по меньше прописать, чтоб в инвентаре поместились. Как это сделать я примерно понял, config.cpp я поправлю, но встал вопрос ребром:  но кроме этого файла, что надо делать. Вопросов много появляется, а в интернете информацию сложно накопать. Решил попросить помощи у знающих людей.
      1. По возможности хотелось бы от начала до конца увидеть весь путь изменения одного ванильного предмета
      2. Из просьбы что выше появляется вопрос: с остальными ванильными предметами такое же решение делать? ( Это при условии, если тема 1 решится)
       
      P.S. Если будут какие то файлы, ссылки, да даже просто объяснения, это меня сдвинет с мёртвой точки, а то завис)
    • By fedotovyasha
      Где можно достать карту в очень высоком разрешении, все в интернете такого себе качества. Хочу сделать свою карту
    • By fedotovyasha
      Есть ли возможность сгенерировать и отобразить в ui qr код? Если да, то как?
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.