Následující kód vytvoří jednoduchý spínač, který na pozici určenou prvním parametrem vytvoří spínač, jenž za sekundu zlikviduje všechny jednotky patřící straně nastavené v druhém parametru. Nepovinný třetí parametr určuje velikost oblasti. Výchozí je, jak je vidět 300 metrů.

Na základě dřívějšího zaznamenaní tohoto používání jsem se rozhodl přijmout názvosloví, kdy pro sadu příkazů nutnou volat přes příkaz spawn používám název “procedura”, kdežto pro sadu příkazů volaných příkazem call používám název “funkce” a patřičnou zkratku používám i v názvech. Tedy například:[soldier1,soldier2] spawn celo_proc_wait_for_visibile_contact;[soldier1] call celo_fnc_get_actual_guard_state; Pokud dojde omylem k vyvolání funkce zavoláním přes spawn, tak se nic zásadního neděje, kdežto obráceně nastává problém. Na základě tweetu Kilo bych rád upozornil na možnost vložit kontrolní kód na začátek procedury, který zjistí, že došlo k vyvolání přes call, ukončí patřičný skript a zavolá sám sebe správným způsobem if (!canSuspend) exitWith {_this spawn celo_proc_name_of_proc)};

Existuje relativně jednoduchý způsob jak vytvořit potlačující palbu AIčkem. Pro ni potřebujeme znát pozici na kterou bude střílet a která musí být viditelná pro AI. V příkladu umístíme například “logiku hry” s názvem “targetForJoe”, ale stačí klidně značka (a getMarketPos). Na jejím místě pak vytvoříme dočasný cíl a nastavíme ho jako cíl pro AI (v našem příkladu se jménem Joe). _target = “SuppressTarget” createVehicle getPos targetForJoe;createVehicleCrew _target;Joe doSuppressiveFire _target;

Kratší skript, který po svém zavolání za pomoci funkce BIS_fnc_moduleCAS vyvolá útok na předanou pozici. Povinná je právě jen pozice jako první parametr. Další lze zadat a tím upravit letoun (výchozí je “B_Plane_CAS_01_F”), typ použité munice (výchozí je 2, což znamená “Guns & Missiles) a úhel, ze kterého útok přijde (výchozí je 200). Příklady volání:

Vytvoření privátní hodnoty a její dostupnosti (closure) demonstrují následující příklady. V prvním případě v rámci “procedury” vyvolané spawn vytvoříme privátní proměnnou “_a”, která je dostupná i v samotných vnitřně vyvolaných funkcích. [] spawn { private _a = 0; [] call { systemchat format[“%1”,_a]; // “0” }; }; Oproti tomu druhý příkaz ukazuje, že privátní hodnota vytvořená ve funkci je pak následně ve vnitřně “spawnuté” proceduře nedostupná. [] call { private _a = 0; [] spawn { systemchat format[“%1”,_a]; // “any” }; };

https://foxhound.international/ARMA-3-SQF-Cheat-Sheet-Revision-3.pdf http://killzonekid.com/category/games/arma-3/ https://community.bistudio.com/wiki/Arma_3_Assets https://community.bistudio.com/wiki/Category:Scripting_Commands_Arma_3 https://community.bistudio.com/wiki/Arma_3_CfgFunctions https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Weapons https://community.bistudio.com/wiki/Category:Functions https://community.bistudio.com/wiki/createVehicle/vehicles https://community.bistudio.com/wiki/User_Interface_Event_Handlers https://community.bistudio.com/wiki/Mission_Presentation https://community.bistudio.com/wiki/Debriefing https://community.bistudio.com/wiki/Spectator_Mode https://community.bistudio.com/wiki/Arma_3_Respawn https://community.bistudio.com/wiki/Arma_3_Characters_And_Gear_Encoding_Guide https://community.bistudio.com/wiki/Category:Introduced_with_Arma_3

Pokud máte zájem najít nějaké zajímavé skripty či doporučení pro Arma hry, pak zkuste tyto kanály: ALIAS – https://www.youtube.com/channel/UCdRj3iu6T1gD5olhQ995x9Q Feuerex – https://www.youtube.com/user/Feuerex

DLC Marksmen přinesl nový herní systém End Game s Revive systémem a dynamickými skupinami. Jak je zapnout ve vlastní misi? Revive systém Aktivuje se poměrně jednoduše. Stačí pár úprav či doplnění souboru description.ext respawnTemplates[] = {“Revive”}; //možné přidat “MenuPosition”,”Spectator” respawn = 3; //nebo BASE respawnDelay = 25; respawnOnStart = -1; reviveDelay = 5; reviveForceRespawnDelay = 3; reviveBleedOutDelay = 120; Pokud ale chcete, aby některý z vojáků byl vyjmut z možnosti oživení, pak mu stačí upravit proměnnou BIS_revive_di­sableRevive _unit setVariable [“BIS_revive_disableRevive”, true, true]; znovu zapnout jde změnou na false: _unit setVariable [“BIS_revive_disableRevive”, false, true]; Dynamické skupiny Pro zprovoznění se na serveru (initServer.sqf) spustí „inicializace“ [“Initialize”] call BIS_fnc_dynamicGroups; Každému hráči se pak zavoláním v initPlayerLo­cal.sqf přidá možnost využívat dynamických skupin. [“InitializePlayer”, [player]] call BIS_fnc_dynamicGroups;[…]

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[…]