Minulý týden jsem shodou okolností narazil na to, že již loni byl do Arma 3 přidán nový event handler “KnowsAboutChanged“. Tak jsem našel svou x-tou verzi alarm systému, která se původně inspirovala v OFP misi “Hawk in Nets” od Silver Falcona (respektive Munch Studios) a kterou jsem později přetvořil pro Armed Assault a zkoušel i nadále udržovat v nějaké aktuální verzi i v pokračováních původního Flashpointu. Princip byl ale stále dosti podobný a víceméně hlavně s novým event handlerem se mi více podařilo upravit systém tak, abych se již zbavil všech smyček a celý ho postavil již jen na event handlerech.Systém navíc nově vytváří objekt logiky do kterého se nastaví všechny potřebné předané parametry vrátí ho po inicializaci s možností[…]

Tento skript vytvoří ve výchozím nastavení BLUFOR letoun, pilota a bod trasy, který má dá za úkol hledat nepřítele a ničit ho. K vytvoření dojde tři kilometry daleko od předané pozice, která tvoří jedinou povinnou položku volání. Dalšími volitelnými položkami je možné změnit stranu, typ letounu, pilota, nastavit případného střelce a výšku, ve které má létat. Zavolání skriptu pak vrátí objekt vytvořeného vozidla se kterým je možná následně pracovat. Příklady volání:

Pokud chcete svému vojákovi na rameno umístit jmenovku s aktuálním jménem hráče, pak díky novince, se kterou přišel update 2.12 (vydaný 28.2.2023) tak můžete díky faktu, že jako texturu lze nově použít přímo text. Příklad: Syntaxe pro vytvoření textové textury, jak ji uvádí BI Wiki, je: Nevýhoda uvedeného je v tom, že po sundání uniformy a nasazení jmenovka zmizí. To lze pořešit jedině uložením přes setVariable při inicializaci textury a následné znovunačtení při oblečení díky obsluze event handleru “Take”.

První úkol Následující kód obsahuje problém, který nemusí být na první pohled jasný. Odhalte ho a navrhněte řešení. a = true; if (a == true) then { hint “a je true”; } else { hint “a neni true”; }; Druhý úkol Zadefinujeme dvě funkce, kdy jedna volá v cyklu druhou a hlavní následně zavoláme. Odhalte chybu a navrhněte řešení. my_fnc_a = { _id = _this; // … nejake prikazy }; my_fnc_main = { for “_id” from 1 to 10 do { // … nejake prikazy _back = 1 call my_fnc_a; }; }; 0 call my_fnc_main; Třetí úkol Projděte si tyto tři příkazy a uveďte, co bude na konci v proměnné „a“ po provedení skriptu. a = [1]; b = [a,2]; (b select[…]