123new

AdminBookMenu для DayZ 0.62

1 сообщение в этой теме

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

Думаю, многие из вас уже натыкались на 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) имеется в опции наблюдения!

Изменено пользователем 123new (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Забронировать это рекламное место


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Похожие публикации

    • Автор: NoNameUltima
      Автор:
      Я. Версия админки:
      v.0.0.2  
      Описание:
      Админка поставляется с ключами, и подписями. Админка разделена на 2 части - клиентская, и серверная. Так же работает в оффлайн режиме.  
      Для установки админки, необходимо:
      На сервере подключить серверный мод. На сервере подключить клиентский мод. На сервере скопировать ключ из клиентского мода, и поместить в папку keys сервера. На клиенте добавить клиентский мод. В конфигурационный файл администрации прописать UID(ы) администраторов и модераторов.  
      Рабочие пункты админки:
       
      Отображение в 3D(ESP до 100м)
      Игроки. Зомби. Техника. Постройки. Объекты. Отображение на карте(в радиусе игрока до 100м):
      Игроки. Зомби. Техника. Постройки. Объекты. НПЦ. Сервер:
      Установка времени на сервере. Установка погоды на сервере(В бете). Собственные:
      Телепорт по векторам(4 - по направлению взгляда. 5 - вверх). Телепорт по карте. Неуязвимость. Бесконечный БК. Невидимость. Защита от зомби. Игроки:
      Телепорт игрока к администратору. Телепорт администратора к игроку. Телепорт в заданные координаты. Лечение. Очистка инвентаря. Выдача БК к текущему оружию(в руках). Заблокировать. Разблокировать. Убить. Отсоединить. Забанить(свой файл банов по UID) Создание объектов:.
      Фильтр при выборе раздела создания предметов(поиск по имени класса).  
      Другое:
      Админская карта. Дебаг монитор. Информационный виджет. Удаление объектов.(только при включенном дебаге - отображающем объект в прицеле).  
      Горячие клавиши:
      [        -     Вызов панели администратора. HOME     -     Вкл\Выкл отображения полосы отладки. DELETE    -    Удаление объекта в прицеле. 4        -    Телепорт по направлению взгляда. 5        -    Телепорт вверх.  
      Сообщения:
      Вывод сообщений игрокам, о действиях модератора(если в админке UID указан, как UID модератора).  
      Журналы:
      Действия администрации.  
      Стоимость:
      3500  
      Видео:( ВНИМАНИЕ! В ВИДЕО, ВНУТРИ ПАНЕЛИ АДМИНИСТРАТОРА, РАБОТАЮТ ТОЛЬКО ТЕ ПУНКТЫ КОТОРЫЕ УКАЗАНЫ ВЫШЕ! ОСТАЛЬНЫЕ ПУНКТЫ ДОБАВЛЕНЫ НА БУДУЩЕЕ, И МОГУТ БЫТЬ ИЗМЕНЕНЫ)
      P.S. Обновления платные - 25% от стоимости админки.
      Скайп: hf-trade
    • Автор: NoNameUltima
      Автор: NoNameUltima
      v. 0.1.7
      Стоимость: 2500
       
      Мод предоставляется в двух частях:
      Клиентский мод(для игроков). Ключи и подписи, присутствуют(При необходимости изменения содержимого - ключ и подписи можно переделать). Серверный мод(только для сервера). *Моды связанны между собой.
       
      Что присутствует:
       
      Дебаг монитор *Есть настройка в конфигурации - отображать, или нет монитор при заходе на сервер.
      **Кнопка вкл\выкл настраивается в конфигурации
      За убийство зомби, повышается счетчик убийств зомби. За убийство зомби, начисляются наличные(кол-во настраивается в конфигурации). При смерти игрока, наличные остаются в трупе.(Забрать можно). За убийство игрока, повышается счетчик убийств людей. Метки на карте с указанием торговых зон. Стартовое приветствие игроков. ПНВ работающий от батарейки. Панель игрока Зараженные зоны. Стартовый инвентарь для игроков(по UID'ам, и общий). Стартовые позиции для игроков(по UID'ам, и случайные для тех кого нет в списке). Статичные постройки на карте(загрузка из класса). Создание коробок с содержимым. Команды чата:  
      Доп. статичные функции:  
      skype: hf-trade
       
      P.S. Обновления платные(для тех кто приобретал мод ранее: 25% от общей стоимости, до актуальной версии).
      P.S.P.S. Весь функционал является БЕТА-ВЕРСИЕЙ!
    • Автор: NoNameUltima
      Автор: Я.
      Модификация банка, для DayZ Standalone для мода торговли(Trader)
       
      Мод позволяет:
      Снимать деньги со счета. Вносить деньги на счет.  
      Настройки серверной части:
      Точки в которых доступен банк. Радиус в котором доступен банк(от центра точки - см. выше). Горячая клавиша вызывающая на клиентской стороне меню банкомата. Папку профиля для хранения данных о банковских балансах игроков.  
      *Мод автоматически производит обмен валюты по номиналу, при внесении, или изъятии денежных средств.
      *Клиентскую часть можно скачать в STEAM.
      *Для подключения серверной части, - достаточно закинуть ее в папку сервера, и указать папку для хранения баланса.
       
      Цена: 1500
       
      Контакты:
      Skype: hf-trade  
      STEAM: https://steamcommunity.com/sharedfiles/filedetails/?id=1714035636
      Видео работы:
      Серверная часть, подключается как -serverMod=