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


Фотография

Удаление лишних ботов AI


Лучший Ответ dos622 , 27 October 2016 - 16:24

(player distance position _list > 400)

ты пытаешься измерить растояние до массива, а это невозможно.

 

deletevehicle _list;

тоже самое, не получится, т.к. переменная _list у тебя это массив.

 

как вариант:

{
if (player distance position _x > 400) then
		{
			deletevehicle _x;
			sleep 10;
		};
} forEach _list;

Перейти к сообщению


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

#1 OFFLINE   Targon

Targon

    Ефрейтор

  • Пользователи
  • 36 сообщений

Отправлено 27 October 2016 - 14:55

Доброго времени суток.

Возник вопрос.

Хочу для оптимизации удалят лишних ботов, которые находятся на радиусе больше 400 метров от игрока.

 

Сделал скрипт, но он не срабатывает.

Прошу помочи. Спасибо.

if (isNil "editzombies") then {
    editzombies = false;
};

while {true} do {
	waitUntil {editzombies};
	sleep 0.1;
	_list = (position player) nearEntities [["RyanZombieCrawler1", "RyanZombieCrawler2", "RyanZombieCrawler3", "RyanZombieCrawler4", "RyanZombieCrawler5", "RyanZombieCrawler6", "RyanZombieCrawler7", "RyanZombieCrawler8", "RyanZombieCrawler9", "RyanZombieCrawler10", "RyanZombieCrawler11", "RyanZombieCrawler12", "RyanZombieCrawler13", "RyanZombieCrawler20", "RyanZombieCrawler21", "RyanZombieCrawler22", "RyanZombieCrawler23", "RyanZombieCrawler24", "RyanZombieCrawler25","RyanZombieCrawler26","RyanZombieCrawler27","RyanZombieCrawler28","RyanZombieCrawler29","RyanZombieCrawler30","RyanZombieCrawler31","RyanZombieCrawler32","RyanZombie20medium","RyanZombie21medium","RyanZombie22medium","RyanZombie23medium","RyanZombie25medium","RyanZombie26medium","RyanZombie27medium","RyanZombie28medium","RyanZombie29medium","RyanZombie30medium","RyanZombie31medium","RyanZombieC_man_1medium","RyanZombieC_man_polo_1_Fmedium","RyanZombieC_man_polo_2_Fmedium","RyanZombieC_man_polo_4_Fmedium","RyanZombieB_Soldier_02_f_1_1medium","RyanZombieB_Soldier_05_fmedium","RyanZombieB_Soldier_02_fmedium","RyanZombie32medium","RyanZombieC_scientist_Fmedium","RyanZombieC_man_hunter_1_Fmedium","RyanZombieC_man_pilot_Fmedium","RyanZombieC_journalist_Fmedium","RyanZombieC_Orestesmedium","RyanZombieB_Soldier_02_f_1medium","RyanZombieC_man_polo_5_Fmedium","RyanZombieC_man_polo_6_Fmedium","RyanZombieC_man_p_fugitive_Fmedium","RyanZombieC_man_w_worker_Fmedium","RyanZombieSpider1","RyanZombieSpider2","RyanZombieSpider3","RyanZombieSpider4","RyanZombieSpider5","RyanZombieSpider6","RyanZombieSpider7","RyanZombieSpider8","RyanZombieSpider9","RyanZombieSpider10","RyanZombieSpider11","RyanZombieSpider12","RyanZombieSpider13","RyanZombieSpider20","RyanZombieSpider21","RyanZombieSpider22","RyanZombieSpider23","RyanZombieSpider25","RyanZombieSpider26","RyanZombieSpider27","RyanZombieSpider28","RyanZombieSpider29","RyanZombieSpider30","RyanZombieSpider31","RyanZombieSpider32","RyanZombieC_man_1walker","RyanZombieC_man_polo_1_Fwalker","RyanZombieC_man_polo_2_Fwalker","RyanZombieC_man_polo_4_Fwalker","RyanZombieC_man_polo_5_Fwalker","RyanZombieC_man_polo_6_Fwalker","RyanZombieC_man_p_fugitive_Fwalker","RyanZombieC_man_w_worker_Fwalker","RyanZombieC_scientist_Fwalker","RyanZombieC_man_hunter_1_Fwalker","RyanZombieC_man_pilot_Fwalker","RyanZombieC_journalist_Fwalker","RyanZombieC_Oresteswalker","RyanZombie20walker","RyanZombie21walker","RyanZombie23walker","RyanZombie25walker","RyanZombie26walker","RyanZombie27walker","RyanZombie28walker","RyanZombie29walker","RyanZombie30walker","RyanZombie31walker","RyanZombie32walker","RyanZombieB_Soldier_02_fwalker","RyanZombieB_Soldier_02_f_1walker","RyanZombieB_Soldier_02_f_1_1walker","RyanZombie25slow","RyanZombie26slow","RyanZombie27slow","RyanZombie28slow","RyanZombie29slow","RyanZombie30slow","RyanZombie31slow","RyanZombie20slow","RyanZombie21slow","RyanZombie22slow","RyanZombie23slow","RyanZombieC_man_1slow","RyanZombieC_man_hunter_1_Fslow","RyanZombieC_man_pilot_Fslow","RyanZombieC_journalist_Fslow","RyanZombieC_Orestesslow","RyanZombieB_Soldier_05_fslow","RyanZombieB_Soldier_02_fslow","RyanZombie32slow","RyanZombieB_Soldier_02_f_1_1slow","RyanZombieB_Soldier_02_f_1slow","RyanZombieC_man_polo_5_Fslow","RyanZombieC_man_polo_6_Fslow", "RyanZombieC_man_p_fugitive_Fslow","RyanZombieC_man_w_worker_Fslow","RyanZombie25","RyanZombie26","RyanZombie27","RyanZombie28","RyanZombie29","RyanZombie30","RyanZombie31","RyanZombie20","RyanZombie21","RyanZombie22","RyanZombie23","RyanZombieC_man_1","RyanZombieC_man_polo_1_F","RyanZombieC_man_polo_2_F","RyanZombieC_man_polo_4_F","RyanZombieB_Soldier_02_f_1_1","RyanZombieB_Soldier_05_f","RyanZombieB_Soldier_02_f","RyanZombie32","RyanZombieC_scientist_F","RyanZombieC_man_hunter_1_F","RyanZombieC_man_pilot_F","RyanZombieC_journalist_F","RyanZombieC_Orestes","RyanZombieB_Soldier_02_f_1","RyanZombieC_man_polo_5_F","RyanZombieC_man_p_fugitive_F","RyanZombieC_man_w_worker_F","RyanZombieboss1","RyanZombieboss2","RyanZombieboss3","RyanZombieboss4","RyanZombieboss5","RyanZombieboss6","RyanZombieboss7","RyanZombieboss8","RyanZombieboss9","RyanZombieboss10","RyanZombieboss11","RyanZombieboss12","RyanZombieboss13","RyanZombieboss14","RyanZombieboss15","RyanZombieboss16","RyanZombieboss17","RyanZombieboss18","RyanZombieboss19","RyanZombieboss20","RyanZombieboss21","RyanZombieboss22","RyanZombieboss23","RyanZombieboss24","RyanZombieboss25","RyanZombieboss26","RyanZombieboss27","RyanZombieboss28","RyanZombieboss29","RyanZombieboss30","RyanZombieboss31","RyanZombieboss32"], 1000];
	if (player distance position _list > 400) then
		{
			deletevehicle _list;
			sleep 10;
		};
	sleep 10;
};

  • 0

#2 OFFLINE   dos622

dos622

    Ст. Прапорщик

  • Пользователи
  • 702 сообщений

Отправлено 27 October 2016 - 16:24   Лучший Ответ

(player distance position _list > 400)

ты пытаешься измерить растояние до массива, а это невозможно.

 

deletevehicle _list;

тоже самое, не получится, т.к. переменная _list у тебя это массив.

 

как вариант:

{
if (player distance position _x > 400) then
		{
			deletevehicle _x;
			sleep 10;
		};
} forEach _list;


  • 0

#3 OFFLINE   Targon

Targon

    Ефрейтор

  • Пользователи
  • 36 сообщений

Отправлено 27 October 2016 - 16:52

 

(player distance position _list > 400)

ты пытаешься измерить растояние до массива, а это невозможно.

 

deletevehicle _list;

тоже самое, не получится, т.к. переменная _list у тебя это массив.

 

как вариант:

{
if (player distance position _x > 400) then
		{
			deletevehicle _x;
			sleep 10;
		};
} forEach _list;

Спасибо!


  • 0

#4 OFFLINE   susamin

susamin

    Сержант

  • Пользователи
  • 245 сообщений

Отправлено 27 October 2016 - 17:46

Есть модуль. Который обрабатывает ии на установленном игроком расстоянии. Авиацию можно исключить.
  • 0

#5 OFFLINE   dos622

dos622

    Ст. Прапорщик

  • Пользователи
  • 702 сообщений

Отправлено 27 October 2016 - 20:03

Есть модуль. Который обрабатывает ии на установленном игроком расстоянии. Авиацию можно исключить.

 

да ему зомбей с карты убрать:)


  • 1

#6 OFFLINE   Ignatlg

Ignatlg

    Рядовой

  • Пользователи
  • 2 сообщений

Отправлено 12 November 2021 - 10:29

Как добавить в скрипт Created by SteelRat модуль на удаление заспавленных групп, если расстояние от игрока больше определенного значения ?

 

PTm_fnc_deleteGroup = {
                       
    if ((_x distance player) > 2000) then {deleteGroup _group};
   

};

 

Прикрепленные файлы

  • Прикрепленный файл  moduleNPC.sqf   6.56К   1 Количество загрузок:

  • 0

#7 OFFLINE   Ignatlg

Ignatlg

    Рядовой

  • Пользователи
  • 2 сообщений

Отправлено 14 November 2021 - 16:03

Нашел вот такое решение. Скрипт удаляет заспавленных модулем ATR_fnc_RespawnNPC юнитов при достижении максимального количества групп и на определенном расстоянии от игрока :

 

while {true} do {

if (count allUnits > GROUP_MAX) then {

    {
    if (_x isKindOf "Man") then {
        _zombie = _x;
        if (({(_zombie distance _x) < 70 AND isPlayer _x} count switchableUnits) == 0) then {
            deleteVehicle _zombie;
        };
    };
    } foreach allUnits;
    sleep 5;

} else {
   
    for "_i" from 1 to GROUP_MAX do {
    [] spawn ATR_fnc_RespawnNPC;
    sleep 5;
    };
   
};
};

Сообщение отредактировал Ignatlg: 14 November 2021 - 16:07

  • 0




Яндекс.Метрика