Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private ["_max_art","_art_chance","_min_anamalies","_max_anamalies","_kolichestvo_anamalies","_b","_rnd","_anamalyArray","_pos","_a","_kolichestvo_art","_anamaliya_name","_anamaliya","_art","_pos_art","_art_spawn"];
- diag_log "[Randomnaya_Generaciya_Anamalii]: skript zagrujen";
- _max_art = 3; //макс. кол-во артифактов на 1 анамалию
- _art_chance = 50; //шанс генерации артифакта на 1 цикл
- _min_anamalies = 24; //мин. кол-во анамалий 25 шт.
- _max_anamalies = 25; //макс. кол-во анамалий 50 шт.
- _kolichestvo_anamalies = floor (random _max_anamalies) + _min_anamalies; //высчитываем число анамалий основываясь на данных выше
- _b = 0; //начало отсчета цикла для спавна анамалий
- _rnd = 0; //начало отсчета для выбора анамалий
- _anamalyArray = [ //конфиги анамалий
- [
- "Burn", //имя анамалии
- 20, //радиус спавна артифакта от анамалии
- [20, 20, 0, false], //зона активации тригера
- ["this", "XC=[thistrigger,10]execvm ""anamalies\Burn.sqf"";", ""], //условия дамага и запуска скрипта
- ["DAP_TEARS","DAP_FIRE"] //артифакты на анамалии
- ],
- [
- "Gravi",
- 20,
- [20, 20, 0, false],
- ["this", "XC=[thistrigger,10]execvm ""anamalies\Gravi.sqf"";", ""],
- ["DAP_BLACKDRIP","DAP_GRAVI","DAP_EMPTY"]
- ],
- [
- "Trampoline",
- 20,
- [20, 20, 0, false],
- ["this", "XC=[thistrigger,10]execvm ""anamalies\Trampoline.sqf"";", ""],
- ["DAP_BLACKDRIP","DAP_GRAVI","DAP_EMPTY"]
- ],
- [
- "Mincer",
- 20,
- [20, 20, 0, false],
- ["this", "XC=[thistrigger,10]execvm ""anamalies\Mincer.sqf"";", ""],
- ["DAP_STONEBLOOD","DAP_MEAT","DAP_SOUL"]
- ],
- [
- "Electro",
- 30,
- [30, 30, 0, false],
- ["this", "XC=[thistrigger,15]execvm ""anamalies\Electro.sqf"";", ""],
- ["DAP_ELECTRA","DAP_SPIKES","DAP_BATTERY"]
- ],
- [
- "Galantine",
- 50,
- [50, 50, 0, false],
- ["this", "XC=[thistrigger,50]execvm ""anamalies\Galantine.sqf"";", ""],
- ["DAP_AMEBA","DAP_CRYSTALL"]
- ],
- [
- "Radiation",
- 100,
- [100, 100, 0, false],
- ["this", "XC=[thistrigger,100]execvm ""anamalies\Radiation.sqf"";", ""],
- []
- ],
- [
- "Psy",
- 250,
- [250, 250, 0, false],
- ["this", "XC=[thistrigger,250]execvm ""anamalies\Psy.sqf"";", ""],
- []
- ]
- ];
- While {_b < _kolichestvo_anamalies} do {
- _rnd = floor (random 7); //генерируем число для рандомной анамалию
- _anamalyArraySelected = (_anamalyArray select _rnd); // выбираем рандомную анамалию
- _b = _b + 1;
- {
- _pos = [getMarkerPos 'Center',0,dayz_MapArea,25,0,2000,0] call BIS_fnc_findSafePos; //позиция для анамалии
- _a = 0; //начало отсчета цикла для спавна артифактов
- _kolichestvo_art = floor (random _max_art); //генерация случайного количества артефактов на одной анамалии где макс кол-во - _max_art
- _anamaliya_name = (_x select 0); //получаем название анамалии для лога
- _anamaliya = createTrigger ["EmptyDetector", _pos];
- _anamaliya setTriggerArea (_x select 2);
- _anamaliya setTriggerActivation ["ANY", "PRESENT", true];
- _anamaliya setTriggerStatements (_x select 3);
- While {_a < _kolichestvo_art} do {
- _a = _a + 1;
- if ((floor (random 100) < _art_chance)) then {
- _art = (_x select 4) call BIS_fnc_selectRandom; //выбор рандомного артифакта
- _pos_art = [_pos, 1, (_x select 1), 3, 0, 20, 0] call BIS_fnc_findSafePos; //позиция для артифакта
- _art_spawn = _art createVehicle _pos_art; //спавн артифакта
- };
- };
- diag_log format["[Randomnaya_Generaciya_Anamalii]: vsego_anamalii (%3) anamaliya (%1) coordinata (%2)",_anamaliya_name,_pos,_kolichestvo_anamalies];
- } forEach _anamalyArraySelected;
- };
- diag_log "[Randomnaya_Generaciya_Anamalii]: skript vipolnen";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement