To, že můžete v editoru pojmenovat jednotku a pak s tím jménem dále pracovat, ví asi každý. Jak se dá jméno dále využívat si projdeme v následujících pár řádcích. Dejme tomu, že jsem si v editoru vytvořil 8 vojáků a pojmenoval je „soldier1“ až „soldier8“. A dejme tomu, že jsem si ručně vytvořil 8 značek a pojmenoval je „soldier1_target“ až „soldier8_target“ A teď si budu chtít vytvořit skript, který jednoho náhodně zvolí a pošle na „jeho“ target. Zásadní v celé funkci bude příkaz vehicleVarName, který vrátí název proměnné, takže jej následně můžeme použít pro vybrání názvu značky. celo_fnc_send_soldier = { _soldiers = [_this,0,[],[[]]] call BIS_fnc_param; _soldier = _soldiers call BIS_fnc_selectRandom; if (!alive(_soldier)) exitWith {false}; _soldier_name = vehicleVarName _soldier; // _soldier_name[…]
Month: March 2014
Většina skriptovacích jazyků má možnost dříve ukončit prováděný cyklus. Arma engine je na tom stejně. Dejme tomu, že máte skript, který prochází dlouhý seznam a hledá v něm první objekt splňující podmínku. Než zbytečně procházet celý cyklus, je možné jej ukončit dříve k čemuž nám pomohou příkazy scopeName a breakOut. Mrkněme na příklad, kde mají některé jednotky celo_fnc_set_next_guard = { _back = false; { scopeName “hunter_cycle”; if ((side _x == opfor) and !(_x getVariable [“hunter”,false])) then { //cokoliv co chci delat s promennou _x setVariable [“hunter”,true,true]; _x doMove getpos player; _back = true; //a na konci ukoncim cyklus breakOut “hunter_cycle”; }; } forEach allUnits; _back; }; Příklad je jen ilustrační a není optimální. Dejme tomu, že si vytvoříte spínač, který[…]