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
DrSova

Патрули ботов для системы WAI

Recommended Posts

Вообще, сидя на форумах, я так и не нашел нормального патруля ботов, поэтому решил сделать самим. Для его работы нужна система миссий WAI.

 

Установка:

 

Для начала, создадим файл people_patrol.sqf и впишем в него:

 

 

if (isServer) then
{
private ["_aiskin","_skin","_mission","_aitype","_aicskill","_wpnum","_radius","_skillarray","_unitgroup","_startingpos","_skill","_position","_wp","_peopname","_count"];

_position = _this select 0;
_startingpos = _this select 1;
_radius = _this select 2;
_wpnum = _this select 3;
_skill = _this select 4;
_skin = _this select 5;
_aitype = _this select 6;
_count = _this select 7;


_skillarray = ["aimingAccuracy","aimimngShake","aimingSpeed","endurance","spotDistance","spotTime","courage","reloadSpeed","commanding","general"];
_aiweapon             = [];

call {
if (_skill == "easy") exitWith { _aicskill = ai_skill_easy; };
if (_skill == "medium") exitWith { _aicskill = ai_skill_medium; };
if (_skill == "hard") exitWith { _aicskill = ai_skill_hard; };
if (_skill == "extreme") exitWith { _aicskill = ai_skill_extreme; };
if (_skill == "random") exitWith { _aicskill = ai_skill_random call BIS_fnc_selectRandom; };
};

call {
if (_skin == "random") exitWith { _aiskin = ai_all_skin call BIS_fnc_selectRandom; };
if (_skin == "hero") exitWith { _aiskin = ai_hero_skin call BIS_fnc_selectRandom; };
if (_skin == "bandit") exitWith { _aiskin = ai_bandit_skin call BIS_fnc_selectRandom; };
if (_skin == "special") exitWith { _aiskin = ai_special_skin call BIS_fnc_selectRandom; };
};

if (_aitype == "hero") then {
_unitGroup = creategroup RESISTANCE;
} else {
_unitGroup = createGroup East;
};

for "_x" from 1 to _count do {
if (typeName _aiskin == "ARRAY") then
{
_aiskin = _aiskin call BIS_fnc_selectRandom;
};

_aiweapon = ai_wep_random call BIS_fnc_selectRandom;
_weaponandmag     = _aiweapon call BIS_fnc_selectRandom;
_weapon         = _weaponandmag select 0;
_magazine         = _weaponandmag select 1;

_peopname = _unitgroup createUnit [_aiskin, [(_startingpos select 0),(_startingpos select 1),(_startingpos select 2)], [], 1, "NONE"];
[_peopname] joinSilent _unitGroup;

removeAllWeapons _peopname;
removeAllItems _peopname;

for "_i" from 1 to 3 do {
_peopname addMagazine _magazine;
};
_peopname addweapon _weapon;
_peopname selectWeapon _weapon;


call {
if (_aitype == "hero") exitWith { _peopname setVariable ["Hero",true,true]; };
if (_aitype == "bandit") exitWith { _peopname setVariable ["Bandit",true,true]; };
if (_aitype == "special") exitWith { _peopname setVariable ["Special",true,true]; };
};

{ _peopname setSkill [_x,0.1] } count _skillArray;

};


{ _x addEventHandler ["Killed",{[_this select 0, _this select 1, "vehicle"] call on_kill;}]; } forEach (units _unitGroup);


_unitGroup allowFleeing 0;
_unitGroup setBehaviour "AWARE";
_unitGroup setCombatMode "RED";

if (_wpnum > 0) then {
for "_x" from 1 to _wpnum do {
_wp = _unitgroup addWaypoint [[(_position select 0),(_position select 1),0],_radius];
_wp setWaypointType "SAD";
_wp setWaypointCompletionRadius 200;
};

};

_wp = _unitGroup addWaypoint [[(_position select 0),(_position select 1),0],100];
_wp setWaypointType "CYCLE";
_wp setWaypointCompletionRadius 200;

_unitGroup
};






 

 

 

 

Далее, найдем в папке WAI файл init.sqf и после

if(isServer) then {

 

  напишем:

people_patrol  = compile preprocessFileLineNumbers "\z\addons\dayz_server\WAI\compile\people_patrol.sqf";

 

Далее положим people_patrol.sqf по пути WAI\compile

 

Как ставить патрули:

 

Находим в папке WAI\static файл с зонами, который соответствует вашей карте (подробнее см. установку статичных ботов) и в самом низу прописываем:

	[
		[2390.41,4401.12,0.001], //Старт группы				
		[2390.41,4401.12,0.001], //Зона патрулирования				
		500, //радиус патрулирования								
		1000, //количество вейпоинтов патруля								
		"easy",	//скилл ботов						
		"Random", //скины							
		"Bandit", //статус ботов
                20 //количество ботов		
	] spawn people_patrol;

 

На этом все.

Share this post


Link to post
Share on other sites



спасибо.как раз это сейчас и искал

Share this post


Link to post
Share on other sites

 

"Bandit", //статус ботов

 

как работает эта строчка?

Share this post


Link to post
Share on other sites

ак работает эта строчка?

предполагаю , если бандит то + хуманити, если герой , то - хуманити за убийство

Edited by davidx (see edit history)

Share this post


Link to post
Share on other sites

как работает эта строчка?

Bandit - прибавляется хуманити

Hero - отбавляется хуманити

Share this post


Link to post
Share on other sites

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

Цель - охрана торговцев от "чужих"

Edited by Karakurd (see edit history)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Да, заметил это тоже, когда поставил на ванильный дейз. Сейчас выложу исправленную версию

Share this post


Link to post
Share on other sites

Залил исправленную версию. Позже добавлю полную кастомизацию

Share this post


Link to post
Share on other sites

Залил исправленную версию. Позже добавлю полную кастомизацию

А нельзя ли отвязать от WAI , или это сложно ?

Share this post


Link to post
Share on other sites

А нельзя ли отвязать от WAI , или это сложно ?

Можно, почему нет. Только смысл

Share this post


Link to post
Share on other sites

подробнее см. установку статичных ботов

где посмотреть?

Edited by Karakurd (see edit history)

Share this post


Link to post
Share on other sites

Чтоле спасибо помог молодец. Очень благодарен

Share this post


Link to post
Share on other sites

Вроде работает! Но человечность дается только за одного бота из всей группы.

Share this post


Link to post
Share on other sites

На этом все.

 

Что то немогу заставить работать, WAI 2.2.0 V3  , RPT

0:40:24 "[DZAI] DZAI loading completed in 1.26199 seconds."

 0:40:24 Warning Message: Script z\addons\dayz_server\WAI\customsettings.sqf not found

 0:40:24 "TIME SYNC: Local Time set to [2015,3,1,13,40]"

 0:40:25 "WAI: AI Config File Loaded"

 0:40:25 "WAI: Initialising missions"

 0:40:25 Error in expression <Random;

_weapon         = _weaponandmag select 0;

_magazine         = _weaponand>

 0:40:25   Error position: <select 0;

_magazine         = _weaponand>

 0:40:25   Error select: Type String, expected Array,Config entry

 0:40:25 File z\addons\dayz_server\WAI\compile\people_patrol.sqf, line 47

 0:40:25 "WAI: AI Monitor Started"

 0:40:26 Error in expression <Random;

_weapon         = _weaponandmag select 0;

_magazine         = _weaponand>

 0:40:26   Error position: <select 0;

_magazine         = _weaponand>

 0:40:26   Error select: Type String, expected Array,Config entry

 0:40:26 File z\addons\dayz_server\WAI\compile\people_patrol.sqf, line 47

 0:40:28 "WAI: Spawned a group of 4 AI (Bandit) at [17156,18572,0.001]"

 0:40:29 "WAI: Spawned a group of 4 AI (Bandit) at [17166,18542,0.001]"

 0:40:29 "Napf static spawn configuration loaded."

 0:40:29 "WAI: Spawned a group of 4 AI (Bandit) at [16044,19368,0.001]"

 0:40:29 Warning Message: Bad vehicle type

 0:40:29 Warning Message: Bad vehicle type

 0:40:29 Warning Message: Bad vehicle type

 0:40:29 Warning Message: Bad vehicle type

 0:40:29 Warning Message: Bad vehicle type

 0:40:29 Warning Message: Bad vehicle type

 0:40:29 "WAI: Spawned in 6 KORD_high_TK_EP1"

 0:40:30 "WAI: Spawned a group of 4 AI (Bandit) at [16365.8,18362.1,0.001]"

 0:40:30 "WAI: Spawned a group of 4 AI (Bandit) at [16651.4,18414.9,0.001]"

 0:40:30 "WAI: Spawned a group of 10 AI (Bandit) at [16479.1,18410.5,0.001]"

 0:40:30 Warning Message: Bad vehicle type

 0:40:31 Warning Message: Bad vehicle type

 0:40:31 Warning Message: Bad vehicle type

 0:40:31 Warning Message: Bad vehicle type

 0:40:31 Warning Message: Bad vehicle type

 0:40:31 "WAI: Spawned in 5 M2StaticMG"

 0:40:31 Error in expression <Random;

_weapon         = _weaponandmag select 0;

_magazine         = _weaponand>

 0:40:31   Error position: <select 0;

_magazine         = _weaponand>

 0:40:31   Error select: Type String, expected Array,Config entry

 0:40:31 File z\addons\dayz_server\WAI\compile\people_patrol.sqf, line 47

 0:40:41 Warning: z\addons\dayz_communityassets\models\razor.p3d:0 Error while trying to generate ST for points: 214, 349, 208

 

 

Переделал, все работает, норм патруль, спасибо.

Edited by shturman (see edit history)

Share this post


Link to post
Share on other sites
[2390.41,4401.12,0.001], //Старт группы                
        [2390.41,4401.12,0.001], //Зона патрулирования                
        500, //радиус патрулирования                                
        1000, //количество вейпоинтов патруля                                
        "easy",    //скилл ботов                        
        "Random", //скины                            
        "Bandit", //статус ботов
                20 //количество ботов        
    ] spawn people_patrol;

Не пойму, куда это прописывать , не появляются патрули, на скрине мои файлы, в какой из них, и в каком именно месте прописать ?

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

Share this post


Link to post
Share on other sites

Доброго дня!

Подскажите, где увеличивается или уменьшается агресивность ботов на миссиях?

Share this post


Link to post
Share on other sites

Агрессивность или точность?

 

Если всё-таки точность, то в файле WAI/config.sqf смотри:

		ai_skill_extreme			= [["aimingAccuracy",1.00],["aimingShake",1.00],["aimingSpeed",1.00],["endurance",1.00],["spotDistance",1.00],["spotTime",1.00],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]]; 	// Extreme
		ai_skill_hard				= [["aimingAccuracy",0.80],["aimingShake",0.80],["aimingSpeed",0.80],["endurance",1.00],["spotDistance",0.80],["spotTime",0.80],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]]; 	// Hard
		ai_skill_medium				= [["aimingAccuracy",0.60],["aimingShake",0.60],["aimingSpeed",0.60],["endurance",1.00],["spotDistance",0.60],["spotTime",0.60],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]];	// Medium
		ai_skill_easy				= [["aimingAccuracy",0.40],["aimingShake",0.50],["aimingSpeed",0.50],["endurance",1.00],["spotDistance",0.50],["spotTime",0.50],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]];	// Easy
		ai_skill_random				= [ai_skill_extreme,ai_skill_hard,ai_skill_hard,ai_skill_hard,ai_skill_hard,ai_skill_medium,ai_skill_medium,ai_skill_medium,ai_skill_medium,ai_skill_easy];

Share this post


Link to post
Share on other sites

ну они жестокие через чур ). 

У меня вот так:

ai_skill_extreme            = [["aimingAccuracy",1.00],["aimingShake",1.00],["aimingSpeed",1.00],["endurance",1.00],["spotDistance",1.00],["spotTime",1.00],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]];     // Extreme
        ai_skill_hard                = [["aimingAccuracy",0.99],["aimingShake",0.99],["aimingSpeed",0.99],["endurance",0.99],["spotDistance",0.99],["spotTime",0.99],["courage",0.99],["reloadSpeed",0.99],["commanding",0.99],["general",0.99]];     // Hard
        ai_skill_medium                = [["aimingAccuracy",0.96],["aimingShake",0.96],["aimingSpeed",0.96],["endurance",0.96],["spotDistance",0.96],["spotTime",0.96],["courage",0.96],["reloadSpeed",0.96],["commanding",0.96],["general",0.96]];    // Medium
        ai_skill_easy                = [["aimingAccuracy",0.95],["aimingShake",0.95],["aimingSpeed",0.95],["endurance",0.95],["spotDistance",0.95],["spotTime",0.95],["courage",0.95],["reloadSpeed",0.95],["commanding",0.95],["general",0.95]];    // Easy
        ai_skill_random                = [ai_skill_extreme,ai_skill_hard,ai_skill_hard,ai_skill_hard,ai_skill_hard,ai_skill_medium,ai_skill_medium,ai_skill_medium,ai_skill_medium,ai_skill_easy];
 
Что нужно изменить?

Share this post


Link to post
Share on other sites

Самое простое, это скопировать этот кусок скрипта выше/ниже и закомментировать его (сделать backup :) ).

А в незакомментированном участке скопировать все значения из "ai_skill_easy" в другие. Тогда все миссии/патрули будут с настройками "easy".

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 Тоха
      Заинтересовал меня этот мод, вторую ночь из-за него не сплю). Суть вопроса в заголовке. Возможно ли прикрутить ботов, желательно патрули да и мисси тоже. Чтоб с минимальной болью. Хотел взять перебрать ботов от Exile, но понял, что переоценил себя. Кто может подсказать как лучше сделать? Рассматриваю еще как вариант создание миссий через редактор армы, но как патрулей запихнуть, примерно понимаю как рандомизировать и прописать вейпоинты, но что то подсказывает опять переоцениваю себя. 
      p/s пока рылся в серверной части натыкался на файлы отвечающие за спавн юнитов и отрядов
      @BreakingPointServer\Addons\breakingpoint_server\functions\AI\fn_spawnAI.sqf
      @BreakingPointServer\Addons\breakingpoint_server\functions\AI\fn_spawnAISquad.sqf
    • By Akie
      Никак не могу разобраться как заставить ВАИ выводить миникарту при старте миссии, скрипт есть, просто как заставить его выводить её не могу понять, подскажите пожалуйста господа. Знаю что сообщения выводятся через mission_winorfail.sqf, но как оттуда сделать вызов вариабла сообщения я не знаю.
    • By Gromillla
      Доброго времени суток дамы и господа, и сразу к вопросу, в миссиях 2.2.5 версии, если боты "бандиты", то они скин игрока видят и реагируют на него, а если миссии с ботами "героями", то они скин игрока не видят. Скин  "RUS_Soldier_Marksman". Как соответственно решить эту проблему? Ошибок в РПТ нет.
    • By Шапокляк
      Как сделать чтоб Боты агрелись на Игрока с расстояния   1000-1500 метров. Темы вродибы есть но решений нет.
      ai_share_info = true; // AI share info on player position ai_share_distance = 2000; // distance from killed AI for AI to share your rough position ai_skill_extreme = [["aimingAccuracy",1.00],["aimingShake",1.00],["aimingSpeed",1.00],["endurance",1.00],["spotDistance",3.99],["spotTime",1.00],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]]; // Extreme ai_skill_hard = [["aimingAccuracy",1.00],["aimingShake",1.00],["aimingSpeed",1.00],["endurance",1.00],["spotDistance",3.99],["spotTime",1.00],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]]; // Hard менял все не помогает.!!!
    • By DIasTer
      кто нибудь встречался с этим? как исправить?
       
      19:54:45 File z\addons\dayz_server\WAI\compile\mission_winorfail.sqf, line 321
      19:54:46 Error in expression < ({[_x,_name] call fnc_inString;} count wai_clean_when_clear) != 0) then {

      _mi>
      19:54:46   Error position: <wai_clean_when_clear) != 0) then {

      _mi>
      19:54:46   Error Undefined variable in expression: wai_clean_when_clear
  • 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.