Перейти к содержимому


Фотография

Headless клиент для запуска миссий.

- - - - -
headless client Arma 3 mission Ai Ai mission

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 17

  • Группа: Старшие модераторы
  • Сообщений: 359

Отправлено 14 января 2015 - 17:28

Привет всем.  Разберем, чего такое хеадлесс клиент и как с ним сосуществовать на примере миссий для сервера Arma-3

Итак:

Headless клиент, это штуковина встроенная в серверную часть Arma3, которая помогает серверу проводить расчеты для AI - другими словами повышает FPS:). Кол-во клиентов, указывается в файле server.cfg вашего сервера. А запускается клиент путем запуска сервера с параметром -client:) 

Фактически это дополнительный клиент, управляемый AI который будет подключаться к нашему серверу и рулить там миссиями.... снижая нагрузку на все остальное.

 

Давайте рассмотрим пример миссии HOG-а с dayz_epoch.com, как он реализовал свою миссию. Чуток подготовки:

 

1) Софт, который нам понадобится (если мы создаем миссию с нуля и ничего еще не редактировали).

- упаковщик распаковщик pbo - pbo manager

- утилита urap.exe для декомпилляции mission.sqm 

- notepad ++ для того чтобы редактировать mission.sqm (он очень критичен, к редакции).

C помощью их готовим папку к инсталляции, как это написано в моем гайде про разбин mpmission.sqm

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

 

2) Теперь договоримся о следующем у меня сервер ARMA3 стоит в папке C:\ARMA3\ поэтому пути я буду указывать именно туда. Вам же необходимо будет исправить пути в тот каталог где у вас установлен сервер Arma3 (где у вас находится Arma3server.exe)

 

3) Скачиваем архив миссий HOG-а с его GitLib-а 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

 (репозиторий активный и он его постоянно обновляет.) И распаковываем его куда-нибудь в укромное место :)

 

4) Идем в папку c:\Arma3\MpMission\Epoch.Altis\ и создаем там папку Hogs_AI в папке Custom должно получится 

C:\Arma3\MpMission\Epoch.Altis\Custom\Hogs_Ai\ в эту папку помещаем 5 файлов и скаченного архива находящихся в одноименной папке:

AI_Functions.sqf
AI_Init.sqf
Hogs_AI.sqf
Server_PVEH.sqf
fn_fetchCfgDetails.sqf

поднимаемся выше в папку  C:\Arma3\MpMission\Epoch.Altis\ и создаем пустой файл init.sqf (если у нас уже есть в нем, что-либо вставляем текст ниже в самый верх:

 

if(isserver) then{
execVM "custom\Hogs_AI\Server_PVEH.sqf";
}; 

//Only uses this code if the connecting client is not the server
//and doesn't have an interface(our headless client)

if (!hasInterface and !isServer) then {
execVm "custom\Hogs_AI\AI_Init.sqf";
sleep 1;
execVm "custom\Hogs_AI\AI_Functions.sqf";
sleep 5;
execVm "custom\Hogs_AI\Hogs_AI.sqf";

};


player enableFatigue false;
 
"GlobalHint" addPublicVariableEventHandler
{
private ["_GHint"];
_GHint = _this select 1;
hint parseText format["%1", _GHint];
};

 

5) Во избежание сложностей в этом шаге используем строго notepad++ (либо FAR) 

открываем им наш разбинаренный mission.sqm  И создаем точку входа для нашего клиента. Ведь на сервер зайдет не живой игрок, а виртуальный.

Для этого: в файле mission.sqm в районе строки №33 находим 

items = 100;

этот параметр указывает кол-во подключений к нашему серверу (максимально есть точки спавна для 100 игроков по умолчанию).

и меняем этот параметр на 

items = 101;

6) Нажимаем сохранить, и спускаемся в этом же файле примерно до строчки 2034

там как раз заканчивается }; блок venchicle 99 номере... 

и вставляем туда еще одну точку спавна для нашего клиента...

 

		class Item100 {
			side="LOGIC";
			class Vehicles {
				items=1;
					class Item0 {
					position[]={14093.1, 10.4375, 11552.1};
					id=100;
					side="LOGIC";
					vehicle="HeadlessClient_F";
					player="PLAY CDG";
					leader=1;
					skill=0.60000002;
					text="MissionBuddy";
				};
			};
		};

Результат должен выглядеть примерно так:

.......
	class Groups {
		items = 101;
		
		class Item0 {
			side = CIV;
			
			class Vehicles {
				items = 1;
				
				class Item0 {
					position[] = {23598.1, 3.19, 17997.1};
					azimut = 136.241;
					special = NONE;
					id = 0;
					side = CIV;
					vehicle = "VirtualMan_EPOCH";
					player = "PLAY CDG";
					leader = 1;
					skill = 0.6;
				};
			};
		};
---> повторяющийся код до № 99 вырезан....
		class Item99 {
			side = CIV;
			
			class Vehicles {
				items = 1;
				
				class Item0 {
					position[] = {23605.1, 3.19, 17998.1};
					azimut = 130.016;
					special = NONE;
					id = 99;
					side = CIV;
					vehicle = "VirtualMan_EPOCH";
					player = "PLAY CDG";
					leader = 1;
					skill = 0.6;
				};
			};
		};
		class Item100 {
			side="LOGIC";
			class Vehicles {
				items=1;
					class Item0 {
					position[]={14093.1, 10.4375, 11552.1};
					id=100;
					side="LOGIC";
					vehicle="HeadlessClient_F";
					player="PLAY CDG";
					leader=1;
					skill=0.60000002;
					text="MissionBuddy";
				};
			};
		};
	}; // <----- эта скобка закрывает весь блок Vehicles 

	class Sensors { // <--- начало блока vechcles

Шаг № 6 тянем свои шаловливые ручки к файлу конфигурации ....у меня он находится в C:\Arma3\instance_epoch.Altis\server.cfg  хотя у многих он находится например в (C:\aRMA3\SC)

     Нам необходимо указать серверу что мы будем использовать headless клиент и что он будет к нему подключаться..

 

     Добавляем в файл:  где-то после MODT ""

 
          headlessClients[]={"127.0.0.1"};
          localClient[]={"127.0.0.1"}; 
 
   В моем случает запуск происходит на той же машине , что и сервер, но вполне можно сделать это вообще на другом компьютере или запустить      несколько         клиентов.... но у меня это так  :))
 
      Шаг № 7. Создаем мегабатник для запуска нашего клиента....
       
echo STARTING NEW EPOCH BEC SERVER PLEASE WAIT
cd C:\Arma3\instance_epoch.Altis\bec
start Bec.exe -f Config.cfg –dsc
timeout 5
echo STARTING NEW EPOCH SERVER PLEASE WAIT
cd C:\Arma3\
start arma3server.exe -mod=@epoch -port=2302 -noSound -nosplash -nopause -enableHT -cpuCount=16 -exThreads=15 -maxmem=6144 -config=instance_epoch.Altis\server.cfg -cfg=instance_epoch.Altis\basic.cfg -profiles=instance_epoch.Altis -name=instance_epoch.Altis -mod=@Epoch;@EpochHive;
timeout 20
start arma3server.exe -client -connect=127.0.0.1 -mod="@epoch"
timeout 5

Примерно с таким содержимым .... как вы видите я запускаю BEC после запуска он ждет 5 секунд пока запустится сервер 

Сервер запускается и мы выдерживаем 20 секунд паузы, дожидаясь пока он прогрузится... (тайминг меняйте в зависимости от мощности вашего сервере)... после чего запускаем сервер повторно уже с значением -cleint позволяющий пускать headless клиента.

 
start arma3server.exe -client -connect=127.0.0.1 -mod="@epoch"

 

Шаг № 7.

не забываем вернувшись в C:\ARMA3\MPMission\Epoch.Altis\description.ext изменить значение кол-ва игроков мы ведь добавили еще одного, виртуального... без этого запустится но в RPT найдете ошибку о несоответствии...


 minPlayers = 1;
 maxPlayers = 101;

 

 

Ну собственно все :)))

 


У меня все работает :)))

Доп материалы:

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

  - headless клиент файлы настройки

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

- обсуждение миссии на сайте epoch

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытый текст

 - описание, как это работает от bistudio


3




  • Группа: Пользователи
  • Сообщений: 84

Отправлено 14 января 2015 - 18:43

Оооо! Спасибо огромное! Обязательно попробую!


0

    Drupas
    7
  • Группа: Заблокированные
  • Сообщений: 35

Отправлено 15 января 2015 - 02:16

Почему-то не работает. Сделал все по инструкции. А у вас есть видео по этим миссиям? Как они хоть выглядят. Первый раз ставил по другому гайду, от разработчика, не заработали. По вашему гайду тоже не работает. У вас они работают? Где я мог ошибиться тогда? Спасибо.


0

  • Группа: Старшие модераторы
  • Сообщений: 359

Отправлено 15 января 2015 - 07:13

Почему-то не работает. Сделал все по инструкции. А у вас есть видео по этим миссиям? Как они хоть выглядят. Первый раз ставил по другому гайду, от разработчика, не заработали. По вашему гайду тоже не работает. У вас они работают? Где я мог ошибиться тогда? Спасибо.

Миссии можно увидеть на 31.25.29.147 в живую...  правда предыдущую версию... Не работает это не вариант. Что конкретно не работает? Вполне возможно, что дело в античите, который просто банит headless клиент. Проверьте фильтры BattleEye.

Проверьте все этапы. Все что вы должны сделать, это добавить в mission.sqm новую точку спавна корректно, с новым номером 100 и изменить общее число точек с 100 до 101. Добавить в конфиги сервера ip для запуска headless клиента и собственно саму миссии в ваш mpmission. 

После чего отредактировать батник и как минимум они у вас запустятся.

У меня они руссифицированы, и распределены одна за другой по типу стандартных эвентов в эпоч на Arma2. Можете дернуть мои из mpmission 

у меня там все проще сделано, но основные этапы установки останутся те же...


0

    Drupas
    7
  • Группа: Заблокированные
  • Сообщений: 35

Отправлено 15 января 2015 - 22:15

Античит отключен. Фильтры на батлай не стоят вообще. Такое ощущение что клиент просто не подключается. В консоле HC клиента кроме что создан выделенный клиент еще что-то пишется?

C:\Arma3\MpMission\Epoch.Altis\Hogs_Ai\

здесь путь один...

execVm "custom\Hogs_AI\AI_Init.sqf"; sleep 1; execVm "custom\Hogs_AI\AI_Functions.sqf"; sleep 5; execVm "custom\Hogs_AI\Hogs_AI.sqf";

здесь уже через папку custom, так как правильно то? 
0

  • Группа: Старшие модераторы
  • Сообщений: 359

Отправлено 20 января 2015 - 10:32

Античит отключен. Фильтры на батлай не стоят вообще. Такое ощущение что клиент просто не подключается. В консоле HC клиента кроме что создан выделенный клиент еще что-то пишется?

 

здесь путь один...

 

здесь уже через папку custom, так как правильно то? 

Пардон действительно опечатка. Через custom правильно.


0

  • Группа: Пользователи
  • Сообщений: 84

Отправлено 25 января 2015 - 14:36

Шаг № 6 тянем свои шаловливые ручки к файлу конфигурации ....у меня он находится в C:\Arma3\instance_epoch.Altis\server.cfg

 

Ну вот не нашел я этого файла в папке instance_epoch.Altis  Понял что всесто него нужно открыть config.cfg. Но и там я не нашел:

 

 Добавляем в файл:  где-то после MODT""

 

Нельзя ли поподробнее?


Сообщение отредактировал Jek790: 25 января 2015 - 14:41

0

  • Группа: Пользователи
  • Сообщений: 84

Отправлено 25 января 2015 - 16:30

Смотрится очень интересно. Но:
- на первой же миссии заспавнился Танк. Я как то пока ограничиваю своих игроков от использования боевой техники. В основном мирные играют.
- пришлось прописать в фильтры кучу записей чтоб меня пустило на сервер.
- боты агрятся как то непонятно. То ходят спотыкаясь об меня, то валят через долину.
- игрока подключившегося к серверу кикнуло за выстрел из оружия(но это опять таки вопрос в фильтрах).

Сообщение отредактировал Jek790: 25 января 2015 - 16:37

0

  • Группа: Старшие модераторы
  • Сообщений: 359

Отправлено 30 января 2015 - 14:08

Большинство миссий написаны (я думаю умышленно), таким образом, что там либо спавнится "опасная техника", либо багованные ящики. По крайней мере, то что выложено на dayzepoch.com. IMHO чтобы нельзя было их использвать по принципу copypaste. Поэтому заходим в конфиги и настариваем там все, как нравится именно нам.


0

  • Группа: Пользователи
  • Сообщений: 11

Отправлено 04 февраля 2015 - 13:42

касательно миссий HOG-a, скачанных по ссылке в 1м посте, все впринципе понятно, и ставятся и работают, но кто-нибудь, может подсказать, где в этих скриптах "МОЗГ" ботов.... я хоть убейте не пойму, что отвечает за поведение ботов в этих скриптах, а оно какраз кривое..

все остальное действительно настраивается без проблем, и техниках и лут и одежда...


0

  • Группа: Пользователи
  • Сообщений: 10

Отправлено 22 февраля 2015 - 19:48

Как быть если сервер арендован и нет возможности создать параметво для запуска?

start arma3server.exe -client -connect=127.0.0.1 -mod="@epoch
 

Сообщение отредактировал Den: 22 февраля 2015 - 19:48

0

  • Группа: Старшие модераторы
  • Сообщений: 359

Отправлено 23 февраля 2015 - 08:20

значит никак... 


0

  • Группа: Пользователи
  • Сообщений: 10

Отправлено 24 февраля 2015 - 22:29

Нашёл! В панели управления сервером, можно выставить параметры для запуска.


0

  • Группа: Проверенные
  • Сообщений: 153

Отправлено 23 сентября 2015 - 10:18

Миссии можно увидеть на 31.25.29.147 в живую...  правда предыдущую версию... Не работает это не вариант. Что конкретно не работает? Вполне возможно, что дело в античите, который просто банит headless клиент. Проверьте фильтры BattleEye.

Проверьте все этапы. Все что вы должны сделать, это добавить в mission.sqm новую точку спавна корректно, с новым номером 100 и изменить общее число точек с 100 до 101. Добавить в конфиги сервера ip для запуска headless клиента и собственно саму миссии в ваш mpmission. 

После чего отредактировать батник и как минимум они у вас запустятся.

У меня они руссифицированы, и распределены одна за другой по типу стандартных эвентов в эпоч на Arma2. Можете дернуть мои из mpmission 

у меня там все проще сделано, но основные этапы установки останутся те же...

 

Мой HC стоит в спавнбоксе и умерает от голода периодически... а иногда просто сам процесс HCserver.exe завершается... но некоторые миссии не пропадают, и если запустить его по новой, миссии задваиваются... Как этого всего избежать?


0

  • Группа: VIP-Пользователи
  • Сообщений: 11

Отправлено 05 мая 2016 - 00:47

А для эпоч мода арма 2 предусмотрено?


0





Похожие темы


Темы с аналогичным тегами headless client, Arma 3, mission, Ai, Ai mission

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных