briefing.htmlь CKАdata\scripts\coin.sqf[hRK='data\scripts\coin_interface.sqfnRKIГdescription.ext RKТdialogs\mca_buy_AFRU.hpp&eNK dialogs\mca_buy_AFUS.hpp?eNK dialogs\mca_buy_HFRU.hppYeNK! dialogs\mca_buy_HFUS.hppreNK" dialogs\mca_buy_LFRU.hppПeNK8 dialogs\mca_buy_LFUS.hpp®eNK! dialogs\mca_common.hppюИBKs<dialogs\mca_queue_AF.hppљeNKƒdialogs\mca_queue_HF.hpp–eNK¬dialogs\mca_queue_LF.hppдeNKЅdialogs\mca_respawn.hpp€bNKIinit.sqfгpRKvVmca_assemblyLine_AFRU.sqfUсDK=mca_assemblyLine_AFUS.sqfVсDK=mca_assemblyLine_HFRU.sqfTсDK6mca_assemblyLine_HFUS.sqfQсDK*mca_assemblyLine_LFRU.sqf”пDKWmca_assemblyLine_LFUS.sqfoрDKTmca_briefing.sqfцuRKmca_buy_aircraft.sqfєpCKЖ mca_buy_heavyVehicle.sqf!pCKС mca_buy_lightVehicle.sqfmoCKН mca_capture_area.sqfюЯGKгmca_crate_init_c.sqfc/JKыmca_crate_init_JIP.sqf”JJK@mca_crate_init_s.sqfШ-JKиmca_crates.sqfЁ EKVmca_deleteMarkers.sqfоNKumca_deploy_ammunitionRU.sqfф-JKгmca_deploy_ammunitionUS.sqfл-JKЁmca_deploy_fieldHospital.sqfЉKKЧ mca_EoG.sqf}NKЁmca_flags_init_c.sqfЏИIKmca_flags_init_s.sqf]kCK®mca_ground_limit.sqfЖНIKVmca_hq_eh_c.sqf RKд mca_hq_getout.sqfzuRKЅМmca_hq_init.sqfєNK% mca_onServicePointDestroyed.sqfvNK~mca_players_eh.sqfЯЛIKЎmca_players_init_s.sqf£ЊLK√mca_queue_aircraft.sqfѕчDKЭmca_queue_heavyVehicle.sqfБшDK≥mca_queue_lightVehicle.sqf;шDK±mca_resistance_init.sqf£"RKtmca_respawn_update.sqf°ЊLK6mca_show_gameScore.sqf™dCK"mca_side_markers_resync.sqf[NKц2mca_silvie.sqfeCKЫmca_townMarkers_init.sqfsCK∞mission.sqmvRKСАRoS.sqfЎSRKstringtable.xmlЇfƒJ-" breifing.html/title> </head> <body bgcolor="#FFFFFF"> <! --- -----------------------------> <! --- DEBRIEFINGS --> <! --- -----------------------------> <hr> <br> <h2><a name="Debriefing:End1">Game is over</a></h2> <br> <p> East Side has won the match. </p> <br> <hr> <br> <h2><a name="Debriefing:End2">Game is over</a></h2> <br> <p> West Side has won the match. </p> <br> <hr> <br> <h2><a name="Debriefing:End3">Ending #3</a></h2> <br> <p> *** Insert debriefing #3 here. *** </p> <br> <hr> <br> <h2><a name="Debriefing:End4">Ending #4</a></h2> <br> <p> *** Insert debriefing #4 here. *** </p> <br> <hr> <br> <h2><a name="Debriefing:End5">Ending #5</a></h2> <br> <p> *** Insert debriefing #5 here. *** </p> <br> <hr> <br> <h2><a name="Debriefing:End6">Ending #6</a></h2> <br> <p> *** Insert debriefing #6 here. *** </p> <br> <hr> <! --- -----------------------------> <! --- End of DEBRIEFINGS --> <! --- -----------------------------> </body> </html>scriptName "data\scripts\coin.sqf"; /* File: coin.sqf Author: Karel Moricky Description: Init script - Construction Interface Parameter(s): _this: the Coin logic unit which triggered this script. */ private ["_old_action", "_old_BIS_COIN_idAction"]; _logic = _this select 0; _old_BIS_COIN_idAction = _this select 1; if (!isnil {player getvariable _old_BIS_COIN_idAction} && !isnull player) then { _old_action = player getvariable _old_BIS_COIN_idAction; player removeAction _old_action; player setvariable [_old_BIS_COIN_idAction, nil]; }; //[_logic] join grpnull; //--- Logic ID if (isnil "BIS_coin_lastID") then {BIS_coin_lastID = -1}; BIS_coin_lastID = BIS_coin_lastID + 1; _varname = ""; debugLog format ["COIN_ BIS_coin_%1 %2",BIS_coin_lastID,[_logic, position _logic]]; debugLog format ["COIN_ACTION BIS_coin_%1 %2",BIS_coin_lastID,[_logic, position _logic]]; call compile format ["BIS_coin_%1 = _logic; _logic setvehiclevarname 'BIS_coin_%1'; _varname = 'BIS_coin_%1'; publicvariable 'BIS_coin_%1'",BIS_coin_lastID]; _logic setvariable ["BIS_COIN_ID",BIS_coin_lastID, true]; publicvariable (vehiclevarname _logic); //--- First call if (BIS_coin_lastID == 0) then { //--- Execute Functions if (isnil "bis_fnc_init") then { _logicFnc = (group _logic) createunit ["FunctionsManager",position player,[],0,"none"]; }; }; waituntil {BIS_fnc_init}; //--- Get custom params ---------------------------------------------------------------------------------- //debuglog format ["Log: %1 | %2",_logic getvariable "BIS_COIN_rules",_logic getvariable "BIS_COIN_name"]; //---Name of construction site _name = if (isnil {_logic getvariable "BIS_COIN_name"}) then {""} else {_logic getvariable "BIS_COIN_name"}; _logic setvariable ["BIS_COIN_name",_name,true]; //--- Units with access _rules = if (isnil {_logic getvariable "BIS_COIN_rules"}) then {synchronizedObjects _logic} else {(_logic getvariable "BIS_COIN_rules") + synchronizedObjects _logic}; if (typename _rules != "ARRAY") then {_rules = [_rules]}; _logic setvariable ["BIS_COIN_rules",_rules,true]; //--- Categories _categories = if (isnil {_logic getvariable "BIS_COIN_categories"}) then {[]} else {_logic getvariable "BIS_COIN_categories"}; _logic setvariable ["BIS_COIN_categories",_categories,true]; //--- Items _items = if (isnil {_logic getvariable "BIS_COIN_items"}) then {[]} else {_logic getvariable "BIS_COIN_items"}; _logic setvariable ["BIS_COIN_items",_items,true]; //--- Funds _funds = if (isnil {_logic getvariable "BIS_COIN_funds"}) then {["0"]} else {_logic getvariable "BIS_COIN_funds"}; if (typename _funds == "STRING") then {_funds = [_funds]}; _logic setvariable ["BIS_COIN_funds",_funds,true]; //--- Funds Description _fundsDescription = if (isnil {_logic getvariable "BIS_COIN_fundsDescription"}) then {["$"]} else {_logic getvariable "BIS_COIN_fundsDescription"}; if (typename _fundsDescription == "STRING") then {_fundsDescription = [_fundsDescription]}; _logic setvariable ["BIS_COIN_fundsDescription",_fundsDescription,true]; //--- Area size _areasize = if (isnil {_logic getvariable "BIS_COIN_areasize"}) then {[150,50]} else {_logic getvariable "BIS_COIN_areasize"}; _logic setvariable ["BIS_COIN_areasize",_areasize,true]; //--- actionCondition code - if true (+ in area and in rules), action will be showed _actionCondition = if (isnil {_logic getvariable "BIS_COIN_actionCondition"}) then {"true"} else {_logic getvariable "BIS_COIN_actionCondition"}; _logic setvariable ["BIS_COIN_actionCondition",_actionCondition,true]; //--- Start code - by this adding action can be disabled _onStart = if (isnil {_logic getvariable "BIS_COIN_onStart"}) then {{}} else {_logic getvariable "BIS_COIN_onStart"}; _logic setvariable ["BIS_COIN_onStart",_onStart,true]; //--- Select code _onSelect = if (isnil {_logic getvariable "BIS_COIN_onSelect"}) then {{}} else {_logic getvariable "BIS_COIN_onSelect"}; _logic setvariable ["BIS_COIN_onSelect",_onSelect,true]; //--- Purchase code _onPurchase = if (isnil {_logic getvariable "BIS_COIN_onPurchase"}) then {{}} else {_logic getvariable "BIS_COIN_onPurchase"}; _logic setvariable ["BIS_COIN_onPurchase",_onPurchase,true]; //--- Construct code _onConstruct = if (isnil {_logic getvariable "BIS_COIN_onConstruct"}) then {{}} else {_logic getvariable "BIS_COIN_onConstruct"}; _logic setvariable ["BIS_COIN_onConstruct",_onConstruct,true]; //--- Repair code (set empty code to disable this function) _onRepair = if (isnil {_logic getvariable "BIS_COIN_onRepair"}) then {{}} else {_logic getvariable "BIS_COIN_onRepair"}; _logic setvariable ["BIS_COIN_onRepair",_onRepair,true]; //--- Sell code (set empty code to disable this function) _onSell = if (isnil {_logic getvariable "BIS_COIN_onSell"}) then {{}} else {_logic getvariable "BIS_COIN_onSell"}; _logic setvariable ["BIS_COIN_onSell",_onSell,true]; //--- Temporary variables _logic setvariable ["BIS_COIN_params",[],true]; //_logic setvariable ["BIS_COIN_preview",objnull,true]; _logic setvariable ["BIS_COIN_buildings",[],true]; sleep 5.01; [nil,nil,"per",rSPAWN,[_logic,_varname],{ scriptname "COIN: Execute FSM"; _logic = _this select 0; _varname = _this select 1; _logic setvehiclevarname _varname; _name = _logic getvariable "BIS_COIN_name"; _id = _logic getvariable "BIS_COIN_id"; _BIS_COIN_idAction = format ["BIS_COIN_action_%1",_id]; BIS_COIN_evalCounter = 0; BIS_COIN_evalCounterDefault = 30; //number of frames to skip in all _logic setvariable ["BIS_COIN_evalCounter", BIS_COIN_evalCounterDefault]; if (isNil {_logic getVariable 'BIS_COIN_evalCondition'}) then {_logic setVariable ['BIS_COIN_evalCondition', false];}; /* if (isNil {_logic getvariable "BIS_COIN_evalCounterDefault"}) then {BIS_COIN_evalCounterDefault = BIS_COIN_evalCounterDefaultFrames;} else { BIS_COIN_evalCounterDefault = BIS_COIN_evalCounterDefault + BIS_COIN_evalCounterDefaultFrames; //adding default number of frames for each logic debuglog format ["Log: [COIN] default evalCounter %1",BIS_COIN_evalCounterDefault]; }; */ while {!isnull _logic} do { private["_player"]; _player = player; debuglog format ["Log: [COIN] iter %1",[_logic,player]]; debuglog format ["COIN_ACTION_ITER %1",[_logic,player]]; if (isnil {player getvariable _BIS_COIN_idAction} && !isnull player) then { _player = player; debuglog format ["Log: [COIN] Action %1 added to %2",_BIS_COIN_idAction,player]; _name = _logic getvariable "BIS_COIN_name"; _description = if (_name == "") then {localize "str_coin_action"} else {localize "str_coin_action" + " - " + _name}; _description = _description + " (Advanced)"; _action = player addaction [ _description, "data\scripts\coin_interface.sqf", _logic, 1, false, false, "", format [" BIS_COIN_evalCounter=%1 getVariable 'BIS_COIN_evalCounter'; if ((BIS_COIN_evalCounter)>0) then { %1 setVariable ['BIS_COIN_evalCounter',BIS_COIN_evalCounter-1]; %1 getVariable 'BIS_COIN_evalCondition' } else { %1 setVariable ['BIS_COIN_evalCounter',BIS_COIN_evalCounterDefault]; BIS_COIN_evalCounter = BIS_COIN_evalCounterDefault; _player = _target; _logic = %1; _rules = %1 getvariable 'BIS_COIN_rules'; _dis = (%1 getvariable 'BIS_COIN_areasize') select 0; _lpos = position %1; _ppos = position _player; _customCondition = %1 getvariable 'BIS_COIN_actionCondition'; _isCustomCondition = if (_customCondition == 'true') then {true} else {call compile _customCondition}; %1 setVariable ['BIS_COIN_evalCondition', player == _player && (_player in _rules || side _player in _rules) && ([_lpos select 0,_lpos select 1] distance [_ppos select 0,_ppos select 1]) < _dis && _isCustomCondition ]; %1 getVariable 'BIS_COIN_evalCondition' }; ",vehiclevarname _logic] ]; player setvariable [_BIS_COIN_idAction,_action]; debuglog format ["COIN_ACTION %1 (%2) added to %3",_player getvariable _BIS_COIN_idAction, _BIS_COIN_idAction,_player]; }; //_dis = (_logic getvariable 'BIS_COIN_areasize') select 0; //distance to enable construction action in action menu debuglog format ["COIN_ACTION %1 ...before waituntil",[_player,_player getVariable _BIS_COIN_idAction,(_player distance _logic), _logic]]; waituntil {Sleep 0.1, ((_player != player) && (!isnull player)) || ((_player distance _logic) > 300 + ((_logic getvariable 'BIS_COIN_areasize') select 0))}; //action is removed - dead or far debuglog format ["COIN_ACTION %1 (%2) removed from %3",_player getVariable _BIS_COIN_idAction, _BIS_COIN_idAction,_player]; _player removeAction (_player getVariable _BIS_COIN_idAction); _player setvariable [_BIS_COIN_idAction, nil]; player setvariable [_BIS_COIN_idAction, nil]; _dis = (_logic getvariable 'BIS_COIN_areasize') select 0; //distance to enable construction action in action menu waituntil {Sleep 3, (_player != player && !isnull player) || ((_player distance _logic) < (300 + _dis))}; //TODO:TESTME: if area of logic can grow much more than +1000 m in mission, direct area get should be used here (or action will be only in inner radius) //itearation - action will be added again }; }] call RE; /* _description = if (_name == '') then {localize 'str_coin_action'} else {localize 'str_coin_action' + ' - ' + _name}; _action = _player addaction [_description,'ca\modules\coin\data\scripts\coin_interface.sqf',_logic,1,false,false,'',(_logic getVariable 'BIS_COIN_actionCondition')]; */ /* _fsm = _this execfsm "ca\modules\coin\data\fsms\coin_actionmenu.fsm"; _fsm setfsmvariable ["logic",_this]; _this setvariable ["BIS_COIN_fsm",_fsm,true]; */scriptName "data\scripts\coin_interface.sqf"; /* File: coin_interface.sqf Author: Karel Moricky Description: Construction Interface system Parameter(s): _this - OBJECT - CoIn manager Returned value(s): Nothing */ _logic = _this select 3; //if(player distance FLAG_BASE < 1500) exitWith{ "Must be atleast 1500m away from main base to build." call XfGlobalChat; }; uinamespace setvariable ["COIN_displayMain",finddisplay 46]; debuglog format ["Log: [CoIn] %1 executed %2",player,_logic getvariable "BIS_COIN_name"]; debuglog format ["WF_CONS [CoIn] %1",_this]; //--- Terminate of system is already running if !(isnil {player getvariable "bis_coin_logic"}) exitwith {debuglog "Log: [CoIn] Camera script is already running"}; player setvariable ["bis_coin_logic",_logic]; bis_coin_player = player; ////////////////////////////////////////////////// startLoadingScreen [localize "str_coin_name","RscDisplayLoadMission"]; ////////////////////////////////////////////////// //--- Execute designer defined code - onStart _code = _logic getvariable "BIS_COIN_onStart"; [_logic] call _code; debugLog format ["COIN_ after onStart %1",_logic]; _camera = BIS_CONTROL_CAM; if (isnil "BIS_CONTROL_CAM") then { _camera = "camconstruct" camcreate [position player select 0,position player select 1,15]; //_camera = "camconstruct" camcreate [position _logic select 0,position _logic select 1,15]; _camera cameraeffect ["internal","back"]; _camera camPrepareFOV 0.900; _camera campreparefocus [-1,-1]; _camera camCommitPrepared 0; cameraEffectEnableHUD true; _camera setdir direction player; [_camera,-30,0] call BIS_fnc_setPitchBank; _camera camConstuctionSetParams ([position _logic] + (_logic getvariable "BIS_COIN_areasize")); }; BIS_CONTROL_CAM = _camera; BIS_CONTROL_CAM_LMB = false; BIS_CONTROL_CAM_RMB = false; showcinemaborder false; 1122 cutrsc ["constructioninterface","plain"]; //_display = finddisplay 46; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["KeyDown", "if !(isnil 'BIS_CONTROL_CAM_Handler') then {BIS_temp = ['keydown',_this,commandingmenu] spawn BIS_CONTROL_CAM_Handler; BIS_temp = nil;}"]; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["KeyUp", "if !(isnil 'BIS_CONTROL_CAM_Handler') then {BIS_temp = ['keyup',_this] spawn BIS_CONTROL_CAM_Handler; BIS_temp = nil;}"]; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["MouseButtonDown", "if !(isnil 'BIS_CONTROL_CAM_Handler') then {BIS_temp = ['mousedown',_this,commandingmenu] spawn BIS_CONTROL_CAM_Handler; BIS_temp = nil; BIS_CONTROL_CAM_onMouseButtonDown = _this; if (_this select 1 == 1) then {BIS_CONTROL_CAM_RMB = true}; if (_this select 1 == 0) then {BIS_CONTROL_CAM_LMB = true};}"]; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["MouseButtonUp", "if !(isnil 'BIS_CONTROL_CAM_Handler') then {BIS_CONTROL_CAM_RMB = false; BIS_CONTROL_CAM_LMB = false;}"]; //(uinamespace getvariable "COIN_displayMain") displayseteventhandler ["MouseMoving", "if !(isnil 'BIS_CONTROL_CAM_Handler') then {BIS_temp = ['mousemoving',_this] spawn BIS_CONTROL_CAM_Handler; BIS_temp = nil;}"]; //(uinamespace getvariable "COIN_displayMain") displayseteventhandler ["MouseHolding", "if !(isnil 'BIS_CONTROL_CAM_Handler') then {BIS_temp = ['mouseholding',_this] spawn BIS_CONTROL_CAM_Handler; BIS_temp = nil;}"]; BIS_CONTROL_CAM_keys = []; if (isnil "BIS_CONTROL_CAM_ASL") then { createcenter sidelogic; _logicGrp = creategroup sidelogic; _logicASL = _logicGrp createunit ["Logic",position player,[],0,"none"]; BIS_CONTROL_CAM_ASL = _logicASL; }; _logic setvariable ["BIS_COIN_selected",objnull]; _logic setvariable ["BIS_COIN_params",[]]; _logic setvariable ["BIS_COIN_tooltip",""]; _logic setvariable ["BIS_COIN_menu","#USER:BIS_Coin_categories_0"]; _logic setvariable ["BIS_COIN_restart",false]; _nvgstate = if (daytime > 18.5 || daytime < 5.5) then {true} else {false}; camusenvg _nvgstate; _logic setvariable ["BIS_COIN_nvg",_nvgstate]; debugLog format ["COIN_ open menu %1",_logic]; //--- Open menu _logic spawn { _logic = _this; waituntil {!isnil {_this getvariable "BIS_COIN_fundsOld"}}; while {!isnil "BIS_CONTROL_CAM"} do { waituntil { _params = _logic getvariable "BIS_COIN_params"; if (isnil "_params") then {_params = []}; (commandingmenu == "" && count _params == 0 && !BIS_CONTROL_CAM_RMB) || isnil "BIS_CONTROL_CAM" }; if (isnil "BIS_CONTROL_CAM") exitwith {}; showcommandingmenu "#USER:BIS_Coin_categories_0"; //showcommandingmenu (_logic getvariable "BIS_COIN_menu"); sleep 0.01; }; }; debugLog format ["COIN_ border %1",_logic]; //--- Border - temporary solution //TODO: move border if position of logic changes (eg. by placing hq) _createBorder = { _logic = _this; _oldBorder = missionnamespace getvariable "BIS_COIN_border"; if (!isnil "_oldBorder") then { {deletevehicle _x} foreach _oldBorder; }; missionnamespace setvariable ["BIS_COIN_border",nil]; _border = []; _center = position _logic; _size = (_logic getvariable "BIS_COIN_areasize") select 0; _width = 9.998; //200/126 _width = 9.996; //150/96 _width = 9.992; //100/64 _width = 9.967; //50/32 _width = 9.917; //30/20 _width = 9.83; //20/14 _width = 9.48; //10/8 _width = 10 - (0.1/(_size * 0.2)); _width = 10; _pi = 3.14159265358979323846; _perimeter = (_size * _pi); _perimeter = _perimeter + _width - (_perimeter % _width); _size = (_perimeter / _pi); _wallcount = _perimeter / _width * 2; _total = _wallcount; //_size = sqrt (((_size *4)^2)/(_width^2)); /* _pi = 3.14159265358979323846; _perimeterOrig = (_size * 2 * _pi); _perimeterOrig = _perimeterOrig + _width - (_perimeterOrig % _width); _total = _perimeterOrig / _width; _perimeter = _perimeterOrig / _width; _minD = 2 * sqrt ((_size/2)^2 - _total); _size = _minD; */ //hintc str [_total,_size]; for "_i" from 1 to _total do { _dir = (360 / _total) * _i; _xpos = (_center select 0) + (sin _dir * _size); _ypos = (_center select 1) + (cos _dir * _size); _zpos = (_center select 2); _a = "transparentwall" createvehiclelocal [_xpos,_ypos,_zpos]; _a setposasl [_xpos,_ypos,0]; _a setdir (_dir + 90); _border = _border + [_a]; //[_a,0,0] call BIS_fnc_setPitchBank; //sleep 0.01; }; missionnamespace setvariable ["BIS_COIN_border",_border]; }; _createBorderScope = _logic spawn _createBorder; //"chromAberration" ppEffectEnable true; //"chromAberration" ppEffectAdjust [0.015*0.666, 0.0175*0.666, false]; //"chromAberration" ppEffectCommit 0; debugLog format ["COIN_ cam handler %1",_logic]; //--- This block is pretty important if !(isnil "BIS_CONTROL_CAM_Handler") exitwith {endLoadingScreen}; BIS_CONTROL_CAM_Handler = { _mode = _this select 0; _input = _this select 1; _camera = BIS_CONTROL_CAM; _logic = bis_coin_player getvariable "bis_coin_logic"; _terminate = false; if (isnil "_logic") exitwith {}; //--- Closing CoIn if player not in rules // _rules = _logic getvariable "BIS_COIN_rules"; // _code = if (typename _rules == "ARRAY") then {{(player in _rules) || ((side player) in _rules)}} else {{(side player) == _rules}}; //! same condition code as in coin //.fsm // if !(call _code) then {BIS_COIN_QUIT = true;}; //player not in rules -> close _areasize = _logic getvariable "BIS_COIN_areasize"; _limitH = _areasize select 0; _limitV = _areasize select 1; _keysCancel = actionKeys "MenuBack"; _keysRepair = actionKeys "User13"; _keysSell = actionKeys "User14"; _keysUp = actionKeys "nextAction"; _keysDown = actionKeys "prevAction"; _keysShift = actionKeys "User11"; _keysBanned = [1]; //_keysSelectAll = actionKeys "SelectAll"; _keyNightVision = actionKeys "NightVision"; //--- Mouse Moving/Holding if (_mode in ["mousemoving","mouseholding"]) then { ///_logic = bis_coin_player getvariable "bis_coin_logic"; //_logic setvariable ["BIS_COIN_mousepos",_input]; }; //--- Mouse DOWN if (_mode == "mousedown") then { _key = _input select 1; if (_key == 1 && 65665 in (actionkeys "MenuBack")) then {_terminate = true}; }; //--- Key DOWN if (_mode == "keydown") then { _key = _input select 1; if !(_key in (BIS_CONTROL_CAM_keys + _keysBanned)) then {BIS_CONTROL_CAM_keys = BIS_CONTROL_CAM_keys + [_key]}; //--- Terminate CoIn if (_key in _keysCancel && isnil "BIS_Coin_noExit") then {_terminate = true}; //--- Start NVG if (_key in _keyNightVision) then { _NVGstate = !(_logic getvariable "BIS_COIN_nvg"); _logic setvariable ["BIS_COIN_nvg",_NVGstate]; camusenvg _NVGstate; }; }; //--- Key UP if (_mode == "keyup") then { _key = _input select 1; if (_key in BIS_CONTROL_CAM_keys) then {BIS_CONTROL_CAM_keys = BIS_CONTROL_CAM_keys - [_key]}; }; //--- Deselect or Close if (_terminate) then { _menu = _this select 2; //--- Close if (isnil "BIS_Coin_noExit") then { if (_menu == "#USER:BIS_Coin_categories_0") then { BIS_CONTROL_CAM cameraeffect ["terminate","back"]; camdestroy BIS_CONTROL_CAM; BIS_CONTROL_CAM = nil; } else { _preview = _logic getvariable "BIS_COIN_preview"; if !(isnil "_preview") then {deletevehicle _preview}; _logic setvariable ["BIS_COIN_preview",nil]; _logic setvariable ["BIS_COIN_params",[]]; }; }; }; //--- Camera no longer exists - terminate and start cleanup if (isnil "BIS_CONTROL_CAM" || player != bis_coin_player || !isnil "BIS_COIN_QUIT") exitwith { ////////////////////////////////////////////////// startLoadingScreen [localize "str_coin_exit" + " " + localize "str_coin_name","RscDisplayLoadMission"]; ////////////////////////////////////////////////// if !(isnil "BIS_CONTROL_CAM") then {BIS_CONTROL_CAM cameraeffect ["terminate","back"];camdestroy BIS_CONTROL_CAM;}; BIS_CONTROL_CAM = nil; BIS_CONTROL_CAM_Handler = nil; 1122 cuttext ["","plain"]; _player = bis_coin_player; _player setvariable ["bis_coin_logic",nil]; bis_coin_player = objnull; _preview = _logic getvariable "BIS_COIN_preview"; if !(isnil "_preview") then {deletevehicle _preview}; //_logic setvariable ["BIS_COIN_mousepos",nil]; _logic setvariable ["BIS_COIN_preview",nil]; _logic setvariable ["BIS_COIN_selected",nil]; _logic setvariable ["BIS_COIN_params",nil]; _logic setvariable ["BIS_COIN_lastdir",nil]; _logic setvariable ["BIS_COIN_tooltip",nil]; _logic setvariable ["BIS_COIN_fundsOld",nil]; _logic setvariable ["BIS_COIN_restart",nil]; _logic setvariable ["BIS_COIN_nvg",nil]; showcommandingmenu ""; //_display = finddisplay 46; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["KeyDown", ""]; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["KeyUp", ""]; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["MouseButtonDown", ""]; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["MouseButtonUp", ""]; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["MouseMoving", ""]; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["MouseHolding", ""]; (uinamespace getvariable "COIN_displayMain") displayseteventhandler ["MouseZChanged", ""]; //--- Behold the placeholders BIS_COIN_QUIT = nil; _border = missionnamespace getvariable "BIS_COIN_border"; {deletevehicle _x} foreach _border; missionnamespace setvariable ["BIS_COIN_border",nil]; //"chromAberration" ppEffectEnable false; //if !(isnil "BIS_WF_CoreCommonInitialized") then {(uinamespace getvariable "COIN_displayMain") displaySetEventHandler ["keydown","if ((_this select 1) In actionKeys ""TeamSwitch"") then {[] Exec (corePath + ""Client\Action\Action_OpenOptionsMenu.sqs"")};"];}; debuglog format ["Log: [CoIn] %1 terminated %2",player,_logic getvariable "BIS_COIN_name"]; ////////////////////////////////////////////////// endLoadingScreen; ////////////////////////////////////////////////// }; //coinn = coinn + 1; }; waituntil {scriptdone _createBorderScope}; ////////////////////////////////////////////////// endLoadingScreen; ////////////////////////////////////////////////// /******************************************************************************************************************************************************* /*** LOOOP ********************************************************************************************************************************************* /******************************************************************************************************************************************************/ _canAffordCount = 0; _canAffordCountOld = 0; _oldMenu = commandingmenu; _limitHOld = -1; _limitVOld = -1; _loaded = false; _localtime = time; _heightAdj = 0; while {!isnil "BIS_CONTROL_CAM"} do { if (isnull (uinamespace getvariable 'BIS_CONTROL_CAM_DISPLAY') && !_loaded) then { cameraEffectEnableHUD true; 1122 cutrsc ["constructioninterface","plain"]; _loaded = true; _logic setvariable ["BIS_COIN_restart",true]; _localtime = time; }; if ((time - _localtime) >= 1 && _loaded) then {_loaded = false}; _logic = bis_coin_player getvariable "bis_coin_logic"; _mode = "mousemoving"; //_input = _logic getvariable "BIS_COIN_mousepos"; _camera = BIS_CONTROL_CAM; if (isnil "_logic") exitwith {}; //--- Closing CoIn if player not in rules //_rules = _logic getvariable "BIS_COIN_rules"; //_code = if (typename _rules == "ARRAY") then {{(player in _rules) || ((side player) in _rules)}} else {{(side player) == _rules}}; //! same condition code as in coin //.fsm //if !(call _code) then {BIS_COIN_QUIT = true}; //player not in rules -> close _areasize = _logic getvariable "BIS_COIN_areasize"; _limitH = _areasize select 0; _limitV = _areasize select 1; if (_limitH != _limitHOld || _limitV != _limitVOld) then { _logic spawn _createBorder; BIS_CONTROL_CAM camConstuctionSetParams ([position _logic] + (_logic getvariable "BIS_COIN_areasize")); }; _limitHOld = _limitH; _limitVOld = _limitV; _keysCancel = actionKeys "MenuBack"; _keysRepair = actionKeys "User13"; _keysSell = actionKeys "User14"; _keysShift = actionKeys "User11"; _keysAlt = actionkeys "User12"; _keysBanned = [1]; _keysSelectAll = actionKeys "SelectAll"; /* //--- Close if (BIS_CONTROL_CAM_RMB && 65665 in (actionkeys "MenuBack") && isnil "BIS_Coin_noExit") then { if (commandingmenu == "#USER:BIS_Coin_categories_0") then { BIS_CONTROL_CAM cameraeffect ["terminate","back"]; camdestroy BIS_CONTROL_CAM; BIS_CONTROL_CAM = nil; }; }; */ //--- Mouse moving or holding if (_mode in ["mousemoving","mouseholding"]) then { _x = _input select 1; _y = _input select 2; //--- Check pressed keys _keys = BIS_CONTROL_CAM_keys; //debuglog ("Log: " + str _keys); _ctrl = (29 in _keys) || (157 in _keys); _shift = (42 in _keys) || (54 in _keys); _alt = (56 in _keys); //--- Construction or Selection _params = _logic getvariable "BIS_COIN_params"; _tooltip = "empty"; _tooltipType = "empty"; _selected = objnull; if (count _params > 0) then { //--- Construction //--- Basic colors _colorGreen = "#(argb,8,8,3)color(0,1,0,0.3,ca)"; _colorRed = "#(argb,8,8,3)color(1,0,0,0.3,ca)"; _colorGray = "#(argb,8,8,3)color(1,1,1,0.1,ca)"; _colorGray = "#(argb,8,8,3)color(0,0,0,0.25,ca)"; _color = _colorGreen; //--- Class, Category, Cost, (preview class), (display name) _itemclass = _params select 0; _itemcategory = _params select 1; //if (typename _itemcategory == typename 0) then {_itemCategory = select _itemcategory}; _itemcost = _params select 2; _itemcash = 0; if (typename _itemcost == "ARRAY") then {_itemcash = _itemcost select 0; _itemcost = _itemcost select 1}; _itemFunds = (_logic getvariable "BIS_COIN_funds") select _itemcash; _itemname = if (count _params > 3) then {_params select 3} else {gettext (configfile >> "CfgVehicles" >> _itemclass >> "displayName")}; //_itemclass_preview = _itemclass + "preview"; _itemclass_preview = gettext (configfile >> "CfgVehicles" >> _itemclass); if (_itemclass_preview == "") then {_itemclass_preview = _itemclass}; //if (str (configfile >> "CfgVehicles" >> _itemclass_preview) == "") then {_itemclass_preview = _itemclass}; //--- Preview building _preview = camtarget BIS_CONTROL_CAM; if (typeof _preview != _itemclass_preview) then { //debuglog str ["Log:::::::::",time,_itemclass,_itemclass_preview,(configfile >> "CfgVehicles" >> _itemclass >> "ghostpreview")]; //--- No preview deletevehicle _preview; if !(isnil {_logic getvariable "BIS_COIN_preview"}) then {deletevehicle (_logic getvariable "BIS_COIN_preview")}; //--- Serialization hack _preview = _itemclass_preview createvehicle (screentoworld [0.5,0.5]); BIS_CONTROL_CAM camsettarget _preview; BIS_CONTROL_CAM camcommit 0; _logic setvariable ["BIS_COIN_preview",_preview]; _preview setObjectTexture [0,_colorGray]; _preview setvariable ["BIS_COIN_color",_colorGray]; //--- Execute designer defined code _code = _logic getvariable "BIS_COIN_onSelect"; //[_itemclass,_preview] call _code; [_logic, _preview,_itemclass] spawn _code; //--- Exception - preview not created if (isnull _preview) then { deletevehicle _preview; _logic setvariable ["BIS_COIN_preview",nil]; _logic setvariable ["BIS_COIN_params",[]]; debuglog format ["Log: [COIN] ERROR: Failed to create '%1' (preview of '%2')",_itemclass_preview,_itemclass]; }; } else { //--- Check zone if ( ([position _preview,_logic] call BIS_fnc_distance2D) > _limitH ) then { _color = _colorGray } else { //--- No money _funds = 0; call compile format ["_funds = %1",_itemFunds]; _fundsRemaining = _funds - _itemcost; if (_fundsRemaining < 0) then {_color = _colorRed}; //--- No Place To Build /*_isFlat = (position _preview) isflatempty [ (sizeof typeof _preview) / 2, //--- Minimal distance from another object 0, //--- If 0, just check position. If >0, select new one 0.7, //--- Max gradient (sizeof typeof _preview), //--- Gradient area 0, //--- 0 for restricted water, 2 for required water, false, //--- True if some water can be in 25m radius _preview //--- Ignored object ]; if (count _isFlat == 0) then {_color = _colorRed};*/ }; _preview setObjectTexture [0,_color]; _preview setvariable ["BIS_COIN_color",_color]; _tooltip = _itemclass; _tooltipType = "preview"; //--- Temporary solution _colorGUI = [1,1,1,0.1]; if (_color == _colorGreen) then {_colorGUI = [0.3,1,0.3,0.3]}; if (_color == _colorRed) then {_colorGUI = [1,0.2,0.2,0.4]}; //_display = uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY"; //_center = (uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112201; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112201) ctrlsettextcolor _colorGUI; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112201) ctrlcommit 0; }; //--- Place if (!isnull _preview && ((BIS_CONTROL_CAM_LMB && 65536 in (actionKeys "DefaultAction")) || {_x in (actionKeys "DefaultAction")} count BIS_CONTROL_CAM_keys > 0) && _color == _colorGreen) then { _pos = position _preview; _dir = direction _preview; _done = true; _align = false; if (count _keys > 0) then { if ({_x in _keysShift} count _keys > 0) then { _done = false; }; if ({_x in _keysAlt} count _keys > 0) then { _align = true; }; }; if(_done) then { deletevehicle _preview; _logic setvariable ["BIS_COIN_preview",nil]; _logic setvariable ["BIS_COIN_params",[]]; }; //--- Remove funds call compile format ["%1 = %1 - _itemcost",_itemFunds]; publicvariable _itemFunds; //--- Execute designer defined code [_logic,_itemclass,_pos,_dir,_done,_align] spawn { _logic = _this select 0; _itemclass = _this select 1; _pos = _this select 2; _dir = _this select 3; _done = _this select 4; _align = _this select 5; //format["%1",_pos] call XfGlobalChat; _code = _logic getvariable "BIS_COIN_onPurchase"; [_logic,objNull,_itemclass,_pos,_dir] call _code; //--- Build _building = _itemclass createvehicle _pos;//[10,10,10000]; _building setpos _pos; _building setdir _dir; sleep 0.1; if(!_align) then {_building setpos _pos;}; //if (gettext (configfile >> "cfgvehicles" >> _itemclass >> "placement") == "vertical") then {_building setpos _pos}; //--- Vertical _building setvariable ["BIS_COIN_cost",_itemcost,true]; //--- Register building [_logic,"BIS_COIN_buildings",[_building],true] call bis_fnc_variablespaceadd; if(!_align) then { waituntil {!isnull _building}; _building setdir _dir; _building setpos _pos; }; //--- Execute designer defined code On Construct _code = _logic getvariable "BIS_COIN_onConstruct"; [_logic, _building,_itemclass,_pos,_dir] spawn _code; }; //--- Temporary solution _colorGUI = [1,1,1,0.1]; //_display = uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY"; //_center = (uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112201; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112201) ctrlsettextcolor _colorGUI; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112201) ctrlcommit 0; }; //--- Deselect /* if (BIS_CONTROL_CAM_RMB) then { deletevehicle _preview; _logic setvariable ["BIS_COIN_preview",nil]; _logic setvariable ["BIS_COIN_params",[]]; }; */ } else { _colorGUI = [1,1,1,0.1]; _buildings = _logic getvariable "BIS_COIN_buildings"; if (count _buildings > 0) then { //--- Selection _worldpos = screentoworld [0.5,0.5]; _selected = objnull; { _size = (sizeof typeof _x) / 3; if (_size < 2) then {_size = 2}; if (_x distance _worldpos < _size) exitwith {_selected = _x;_logic setvariable ["BIS_COIN_selected",_selected]}; _logic setvariable ["BIS_COIN_selected",objnull]; } foreach _buildings; //--- Selected building if !(isnull _selected) then { _colorGUI = [1,1,1,0.3]; _tooltip = typeof _selected; _tooltipType = "selected"; //--- Custom actions if (count _keys > 0 && !_ctrl) then { //--- Repair if ({_x in _keysRepair} count _keys > 0) then { [_logic,_selected] spawn { _code = (_this select 0) getvariable "BIS_COIN_onRepair"; _this call _code; (_this select 1) setdamage 0; }; }; /*------------------------------------------------------------------------------------- //--- Sell if ({_x in _keysSell} count _keys > 0) then { [_logic,_selected] spawn { _code = (_this select 0) getvariable "BIS_COIN_onSell"; _this call _code; deletevehicle (_this select 1); }; }; --------------------------------------------------------------------------------------*/ }; }; }; //_display = uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY"; //_center = (uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112201; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112201) ctrlsettextcolor _colorGUI; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112201) ctrlcommit 0; }; _oldTooltip = _logic getvariable "BIS_COIN_tooltip"; //_display = uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY"; if ((_tooltipType + _tooltip) != _oldTooltip || commandingmenu != _oldMenu) then { //--- Description _type = _tooltip; //--- Header & preview picture _textHeader = "<t size='1.2'><br /></t>"; _textPicture = "<t size='2.8'><br /></t><br /><br />"; _fileIcon = gettext (configfile >> "cfgvehicles" >> _type >> "icon"); if (str(configfile >> "CfgVehicleIcons" >> _fileIcon) != "") then {_fileIcon = gettext (configfile >> "CfgVehicleIcons" >> _fileIcon)}; _filePicture = gettext (configfile >> "cfgvehicles" >> _type >> "picture"); if (str(configfile >> "CfgVehicleIcons" >> _filePicture) != "") then {_filePicture = gettext (configfile >> "CfgVehicleIcons" >> _filePicture)}; if (_tooltipType != "empty") then { _textHeader = format ["<t align='center'><t size='1.4'>%1</t><br /><t size='1'></t></t>", gettext (configfile >> "cfgvehicles" >> _type >> "displayname"), if (isnull _selected) then {""} else {str round ((1 - damage _selected) * 100) + "%"} ]; _textPicture = format ["<t align='left' size='2.8' shadow='0'><img image='%1'/></t> ",_filePicture]; }; /* _textHeader = "X"; _textPicture = ""; */ _text1 = if (_tooltipType == "selected" && (str (_logic getvariable "BIS_COIN_onRepair") != str {})) then { //--- Repair hint localize "str_coin_repair" + "<t align='right'>" + call compile (actionKeysNames ["User13",1]) + "</t><br />"; } else { //--- Rotate if (count _params > 0) then { localize "str_coin_rotate" + "<t align='right'>" + call compile (keyname 29) + "</t><br />"; } else {"<br />"}; }; _text2 = if (_tooltipType == "selected" && (str (_logic getvariable "BIS_COIN_onSell") != str {})) then { //--- Sell hint localize "str_coin_sell" + "<t align='right'>" + call compile (actionKeysNames ["User14",1]) + "</t><br />"; } else { //--- Build hint if (count _params > 0) then { localize "str_coin_build" + "<t align='right'>" + call compile (actionKeysNames ["DefaultAction",1]) + "</t><br />"; } else {"<br />"}; }; _text3 = if (commandingmenu != "#USER:BIS_Coin_categories_0") then { //--- Back hint if (isnil "BIS_Coin_noExit") then { localize "str_coin_back" + "<t align='right'>" + call compile (actionKeysNames ["MenuBack",1]) + "</t>"; } else {""}; } else { //--- Exit hint if (isnil "BIS_Coin_noExit") then { "<t color='#ff5544'>" + localize "str_coin_exit" + "<t align='right'>" + call compile (actionKeysNames ["MenuBack",1]) + "</t></t>"; } else {""}; }; //--- Compose text _textHint = ( _textPicture + _textHeader + "" ); _textControls = ( _text1 + _text2 + _text3 + "" ); //--- Set box //_bcg = (uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112211; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112211) ctrlshow true; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112211) ctrlcommit 0; //_desc = _display displayctrl 112214; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112214) ctrlsetstructuredtext (parsetext _textHint); ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112214) ctrlshow true; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112214) ctrlcommit 0; //_controls = _display displayctrl 112215; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112215) ctrlsetstructuredtext (parsetext _textControls); ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112215) ctrlshow true; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112215) ctrlcommit 0; }; //--- Amount of funds changed _funds = _logic getvariable "BIS_COIN_funds"; _fundsDescription = _logic getvariable "BIS_COIN_fundsDescription"; _cashValues = []; { _cashValues = _cashValues + [call compile _x]; } foreach _funds; _cashValuesOld = _logic getvariable "BIS_COIN_fundsOld"; if (isnil "_cashValuesOld") then {_cashValuesOld = []; _cashValuesOld set [count _cashValues - 1,-1]}; _restart = _logic getvariable "BIS_COIN_restart"; if (!([_cashValues,_cashValuesOld] call bis_fnc_arraycompare) || _restart) then { _cashValuesCount = count _cashValues; _cashSize = if (_cashValuesCount <= 1) then {2} else {2.8 / _cashValuesCount}; _cashText = format ["<t size='%1' align='left' valign='middle'>",_cashSize]; _cashLines = 0; for "_i" from 0 to (count _funds - 1) do { _cashValue = _cashValues select _i; _cashDescription = if (count _fundsDescription > _i) then {_fundsDescription select _i} else {"?"}; _cashText = _cashText + format ["%1 %2<br />",_cashDescription,round _cashValue]; _cashLines = _cashLines + 0.05; }; _cashText = _cashText + "</t>"; //_cash = _display displayctrl 112224; _cashPos = ctrlposition ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112224); ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112224) ctrlsetstructuredtext (parsetext _cashText); ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112224) ctrlsetposition [_cashPos select 0,_cashPos select 1,_cashPos select 2,(_cashPos select 3)/*0.1*/ + _cashLines]; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112224) ctrlshow true; ((uiNamespace getvariable "BIS_CONTROL_CAM_DISPLAY") displayctrl 112224) ctrlcommit 0; //--- Categories menu _categories = +(_logic getvariable "BIS_COIN_categories"); //_categoriesLong = []; //{_categoriesLong = _categoriesLong + [_x + ""]} foreach _categories; //--- Adding empty spaces will widen the box to max value _categoriesMenu = []; for "_i" from 0 to (count _categories - 1) do { _categoriesMenu = _categoriesMenu + [_i]; }; [["Categories",true],"BIS_Coin_categories",[_categoriesMenu,_categories],"#USER:BIS_Coin_%1_items_0","",""] call BIS_fnc_createmenu; //--- Items menu _items = _logic getvariable "BIS_COIN_items"; _canAffordCountOld = _canAffordCount; _canAffordCount = 0; debugLog format ["COIN_ %1",_items]; for "_i" from 0 to (count _categories - 1) do { _category = _categories select _i; _arrayNames = []; _arrayNamesLong = []; _arrayEnable = []; _arrayParams = []; { _itemclass = _x select 0; _itemcategory = _x select 1; if (typename _itemcategory == typename "") then {//--- Backward compatibility _itemcategory = _categories find _itemcategory; debuglog format ["Log: [COIN] ERROR: Old category used: '%1' (in '%2')",_itemcategory,_itemclass]; } else {100}; if (_itemcategory < count _categories) then { _itemcost = _x select 2; _itemcash = 0; if (typename _itemcost == "ARRAY") then {_itemcash = _itemcost select 0; _itemcost = _itemcost select 1}; _cashValue = _cashValues select _itemcash; _cashDescription = if (count _fundsDescription > _itemcash) then {_fundsDescription select _itemcash} else {"?"}; _itemname = if (count _x > 3) then {_x select 3} else {gettext (configfile >> "CfgVehicles" >> _itemclass >> "displayName")}; if (_itemcategory == _i/*_category*/) then { _canAfford = if (_cashValue - _itemcost >= 0) then {1} else {0}; _canAffordCount = _canAffordCount + _canAfford; _text = _itemname + " - " + _cashDescription + str _itemcost; _arrayNames = _arrayNames + [_text]; _arrayNamesLong = _arrayNamesLong + [_text + " "]; _arrayEnable = _arrayEnable + [_canAfford]; _arrayParams = _arrayParams + [[_logic getvariable "BIS_COIN_ID"] + [_x,_i]]; }; } else {debuglog format ["Log: [CoIn] ERROR: Invalid category '%1' used in '%2'",_itemcategory,_itemclass]}; } foreach _items; [[_category,true],format ["BIS_Coin_%1_items",_i],[_arrayNames,_arrayNamesLong,_arrayEnable],""," BIS_CONTROL_CAM_LMB = false; scopename 'main'; _item = '%1'; _id = %2; _array = (call compile '%3') select _id; _logic = call compile ('BIS_COIN_'+ str (_array select 0)); _params = _array select 1; _logic setvariable ['BIS_COIN_params',_params]; _logic setvariable ['BIS_COIN_menu',commandingmenu]; showcommandingmenu ''; ",_arrayParams] call BIS_fnc_createmenu; /* [_category,format ["BIS_Coin_%1_items",_category],[_arrayNames,_arrayNamesLong,_arrayEnable],""," debugLog ('item: %1 id %2 array %3'); ",_arrayParams] call BIS_fnc_createmenu; */ }; if (_canAffordCount != _canAffordCountOld) then {showcommandingmenu (commandingmenu)}; //<-- Open menu again to show disabled items }; _logic setvariable ["BIS_COIN_fundsOld",_cashValues]; _logic setvariable ["BIS_COIN_tooltip",_tooltipType + _tooltip]; if (_restart) then { _logic setvariable ["BIS_COIN_restart",false]; //showcommandingmenu ""; }; }; _oldMenu = commandingmenu; sleep 0.01; };class Header { gameType = Hold; minPlayers = 1; maxPlayers = 80; }; respawn = 3; respawndelay = 60; //dbg///////////////////// class Params { class View { title="View Distance"; values[]={0,1,2,3,4,5,6,7,8,9}; texts[]={"1000m","2000m","3000m","4000m","5000m","6000m","7000m","8000m","9000m","10000m"}; default = 3; }; class Grass { title="Grass"; values[]={0,1,2,3,4}; texts[]={"No Grass", "Default MP", "Default SP", "More", "Max"}; default = 1; }; class Environment { title="Enable Environment"; values[]={0,1}; texts[]={"True","False"}; default = 0; }; class StartingMoney { title="Starting Money"; values[]={0,1,2}; texts[]={"3500","7500","17500"}; default = 0; }; class ResistanceForces { title="Resistance Forces in Towns"; values[]={0, 1, 2, 3}; texts[]={"No Resistance","Small Forces","Medium Forces", "Large Forces"}; default = 1; }; class SilvieEnabled { title="Civilian Cars in Towns"; values[]={0, 1}; texts[]={"No Civilian Cars","With Civilian Cars"}; default = 1; }; class AdvancedCOINEnabled { title="Advanced Construction Interface"; values[]={0, 1}; texts[]={"Disabled", "Enabled"}; default = 1; }; }; RespawnDialog = false; #define CT_STATIC 0 #define CT_BUTTON 1 #define CT_EDIT 2 #define CT_SLIDER 3 #define CT_COMBO 4 #define CT_LISTBOX 5 #define CT_TOOLBOX 6 #define CT_CHECKBOXES 7 #define CT_PROGRESS 8 #define CT_HTML 9 #define CT_STATIC_SKEW 10 #define CT_ACTIVETEXT 11 #define CT_TREE 12 #define CT_STRUCTURED_TEXT 13 #define CT_CONTEXT_MENU 14 #define CT_CONTROLS_GROUP 15 #define CT_XKEYDESC 40 #define CT_XBUTTON 41 #define CT_XLISTBOX 42 #define CT_XSLIDER 43 #define CT_XCOMBO 44 #define CT_ANIMATED_TEXTURE 45 #define CT_OBJECT 80 #define CT_OBJECT_ZOOM 81 #define CT_OBJECT_CONTAINER 82 #define CT_OBJECT_CONT_ANIM 83 #define CT_LINEBREAK 98 #define CT_USER 99 #define CT_MAP 100 #define CT_MAP_MAIN 101 #define ST_POS 0x0F #define ST_HPOS 0x03 #define ST_VPOS 0x0C #define ST_LEFT 0x00 #define ST_RIGHT 0x01 #define ST_CENTER 0x02 #define ST_DOWN 0x04 #define ST_UP 0x08 #define ST_VCENTER 0x0c #define ST_TYPE 0xF0 #define ST_SINGLE 0 #define ST_MULTI 16 #define ST_TITLE_BAR 32 #define ST_PICTURE 48 #define ST_FRAME 64 #define ST_BACKGROUND 80 #define ST_GROUP_BOX 96 #define ST_GROUP_BOX2 112 #define ST_HUD_BACKGROUND 128 #define ST_TILE_PICTURE 144 #define ST_WITH_RECT 160 #define ST_LINE 176 #define ST_SHADOW 0x100 #define ST_NO_RECT 0x200 #define ST_KEEP_ASPECT_RATIO 0x800 #define ST_TITLE ST_TITLE_BAR + ST_CENTER #define SL_DIR 0x400 #define SL_VERT 0 #define SL_HORZ 0x400 #define SL_TEXTURES 0x10 #define LB_TEXTURES 0x10 #define LB_MULTI 0x20 #define FontM "TahomaB" #define FontHTML "TahomaB" #define TRUE 1 #define FALSE 0 class RscText { type=CT_STATIC; idc=-1; style=ST_CENTER; colorBackground[]={0, 0, 0, 0}; colorText[]={0.2, 0.5, 1, 1}; font=FontM; sizeEx=0.04; text=""; }; class RscBgFrame { type=CT_STATIC; idc=-1; style=ST_FRAME; colorBackground[]={0, 0, 0, 1}; colorText[]={0, 0, 0, 1}; font=FontM; SizeEX=0.025; text=""; }; class RscBackground { colorBackground[]={0, 0, 0, 0.75}; text=""; type=CT_STATIC; idc=-1; style=ST_LEFT; colorText[]={1, 1, 1, 1}; font=FontM; sizeEx=0.04; }; class RscPicture { type=CT_STATIC; idc=-1; style=ST_PICTURE; colorBackground[]={0, 0, 0, 0}; colorText[]={1, 1, 1, 1}; font=FontM; sizeEx=0.02; text=""; }; class RscButton { type=CT_BUTTON; idc=-1; style=ST_CENTER; colorText[]={0, 0, 0, 1}; font=FontHTML; sizeEx=0.025; soundPush[]={"", 0.2, 1}; soundClick[]={"ui\ui_ok", 0.2, 1}; soundEscape[]={"ui\ui_cc", 0.2, 1}; default=false; text=""; action=""; colorActive[]={0.2, 0.5, 1, 0.5}; colorDisabled[]={0, 0, 0, 0.1}; colorBackground[]={0.2, 0.5, 1, 0.6}; colorBackgroundActive[]={0.2, 0.5, 0.9, 1, 0.7}; colorBackgroundDisabled[]={0,0,0,0.3}; colorFocused[] = {0.2, 0.5, 1, 0.5}; colorShadow[]={1, 1, 1, 0.1}; colorBorder[]={0, 0, 0, 0.1}; offsetX=0; offsetY=0; offsetPressedX=0; offsetPressedY=0; borderSize=0; soundEnter[]={"", 0.15, 1}; }; class RscButton2:RscButton { x=-1.0; y=-1.0; idc=-1; w=0.01; h=0.01; default=true; }; class RscEdit { type=CT_EDIT; idc=-1; style=ST_LEFT; font=FontHTML; sizeEx=0.02; colorText[]={0, 0, 0, 1}; colorSelection[]={0.5, 0.5, 0.5, 1}; autocomplete=false; text=""; }; class RscLB_C { style=ST_LEFT; idc=-1; colorSelect[]={0.2, 0.5, 1, 1}; colorSelectBackground[]={0, 0, 0, 0.3}; colorTextSelect[]={0, 0, 1, 1}; colorText[]={1, 1, 1, 1}; colorBackground[]={0.4, 0.4, 0.4, 1}; font=FontHTML; sizeEx=0.025; rowHeight=0.04; maxHistoryDelay = 10; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; }; class RscListBox:RscLB_C { soundSelect[]={"", 0.1, 1}; type=CT_LISTBOX; class ScrollBar { color[] = {0,0,1,1}; colorActive[] = {0,0,1,1}; colorDisabled[] = {0.35,0.35,0.35,1}; thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; border = "\ca\ui\data\ui_border_scroll_ca.paa"; }; }; class RscCombo: RscLB_C { type=CT_COMBO; wholeHeight=0.3; soundSelect[]={"", 0.15, 1}; soundExpand[]={"", 0.15, 1}; soundCollapse[]={"", 0.15, 1}; }; class RscSliderH { access=0; type=CT_SLIDER; idc=-1; sizeEx=0.025; style=1024; color[]={0.2, 0.2, 0.2, 1}; colorActive[]={1, 1, 1, 1}; }; class RscSliderV { access=0; type=CT_SLIDER; idc=-1; sizeEx=0.025; style=0; color[]={0.2, 0.2, 0.2, 1}; colorActive[]={1, 1, 1, 1}; }; #include "dialogs\mca_common.hpp" #include "dialogs\mca_buy_LFRU.hpp" #include "dialogs\mca_buy_LFUS.hpp" #include "dialogs\mca_queue_LF.hpp" #include "dialogs\mca_buy_HFRU.hpp" #include "dialogs\mca_buy_HFUS.hpp" #include "dialogs\mca_queue_HF.hpp" #include "dialogs\mca_buy_AFRU.hpp" #include "dialogs\mca_buy_AFUS.hpp" #include "dialogs\mca_queue_AF.hpp" #include "dialogs\mca_respawn.hpp" class mca_buy_AFRU { name=mca_buy_AFRU; idd=0; movingEnable=1; controlsBackground[]={ mca_buy_AFRU_bg, mca_buy_AFRU_bgf1, mca_buy_AFRU_bgf2, mca_buy_AFRU_bgf3, mca_buy_AFRU_bgf4 }; objects[]={}; controls[]={ mca_buy_AFRU_lb1, mca_buy_AFRU_btn_OK, mca_buy_AFRU_title, mca_buy_AFRU_btn_add, mca_buy_AFRU_btn_clear, mca_buy_AFRU_lb2, mca_buy_AFRU_text1 }; class mca_buy_AFRU_bg : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.8; moving = 1; }; class mca_buy_AFRU_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_AFRU_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_AFRU_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_AFRU_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_AFRU_lb1 : HW_RscGUIListBox //List { idc = 41; moving = 1; x = 0.1; y = 0.25; w = 0.35; h = 0.6; rows = 10; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_AFRU_lb2 : HW_RscGUIListBox //Queue-List { idc = 42; moving = 1; x = 0.5; y = 0.25; w = 0.35; h = 0.25; rows = 5; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_AFRU_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; text = "Aircraft Purchase Menu"; sizeEx = 0.04; moving = 1; }; class mca_buy_AFRU_text1 : HW_RscText { idc = 44; moving = 1; x = 0.5; y = 0.53; w = 0.35; h = 0.05; text = "Total Cost: 0"; }; class mca_buy_AFRU_btn_OK : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Buy Vehicles"; x=0.58; y=0.82; //w=0.25; //h=0.06; onButtonClick = "private [""_i"", ""_n"", ""_tmp_array""]; _tmp_array = tmp_obj getVariable ""queue""; for [{_i=0},{_i < (lbSize 42)},{_i=_i+1}] do { _n=mcti_aircraftNames_RU find lbText [42, _i]; _tmp_array = _tmp_array + [mcti_aircrafts_RU select _n]; }; tmp_obj setVariable [""queue"", _tmp_array, TRUE] ; closeDialog 0; "; }; // tmp_obj - глобальный объект, дл€ передачи параметра диалогу class mca_buy_AFRU_btn_add : HW_RscGUIShortcutButton { idc=43; moving = 1; text="Add to Queue"; x=0.58; y=0.74; //w=0.25; //h=0.06; onButtonClick = "private[""_cost"", ""_n"", ""_i""]; _cost=0; lbAdd [42, lbText [41, lbCurSel 41] ]; for [{_i=0},{_i < (lbSize 42)},{_i=_i+1}] do { _n=mcti_aircraftNames_RU find lbText [42, _i]; _cost = _cost + (mcti_aircraftPrices_RU select _n); }; ctrlSetText [44, ""Total Cost: "" + (str _cost)]; if ((lbSize 42) == 5) then {ctrlEnable [43, FALSE]} "; }; class mca_buy_AFRU_btn_clear : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Clear Queue"; x=0.58; y=0.66; //w=0.25; //h=0.06; onButtonClick = "ctrlSetText [44, ""Total Cost: 0""]; lbClear 42;ctrlEnable [43, TRUE];"; }; }; class mca_buy_AFUS { name=mca_buy_AFUS; idd=0; movingEnable=1; controlsBackground[]={ mca_buy_AFUS_bg, mca_buy_AFUS_bgf1, mca_buy_AFUS_bgf2, mca_buy_AFUS_bgf3, mca_buy_AFUS_bgf4 }; objects[]={}; controls[]={ mca_buy_AFUS_lb1, mca_buy_AFUS_btn_OK, mca_buy_AFUS_title, mca_buy_AFUS_btn_add, mca_buy_AFUS_btn_clear, mca_buy_AFUS_lb2, mca_buy_AFUS_text1 }; class mca_buy_AFUS_bg : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.8; moving = 1; }; class mca_buy_AFUS_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_AFUS_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_AFUS_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_AFUS_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_AFUS_lb1 : HW_RscGUIListBox //List { idc = 31; x = 0.1; y = 0.25; w = 0.35; h = 0.6; moving = 1; rows = 10; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_AFUS_lb2 : HW_RscGUIListBox //Queue-List { idc = 32; x = 0.5; y = 0.25; w = 0.35; h = 0.25; moving = 1; rows = 5; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_AFUS_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; moving = 1; text = "Aircraft Purchase Menu"; sizeEx = 0.04; }; class mca_buy_AFUS_text1 : HW_RscText { idc = 34; moving = 1; x = 0.5; y = 0.53; w = 0.35; h = 0.05; text = "Total Cost: 0"; }; class mca_buy_AFUS_btn_OK : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Buy Vehicles"; x=0.58; y=0.82; //w=0.25; //h=0.06; onButtonClick = "private [""_i"", ""_n"", ""_tmp_array""]; _tmp_array = tmp_obj getVariable ""queue""; for [{_i=0},{_i < (lbSize 32)},{_i=_i+1}] do { _n=mcti_aircraftNames_US find lbText [32, _i]; _tmp_array = _tmp_array + [mcti_aircrafts_US select _n]; }; tmp_obj setVariable [""queue"", _tmp_array, TRUE] ; closeDialog 0; "; }; // tmp_obj - глобальный объект, дл€ передачи параметра диалогу class mca_buy_AFUS_btn_add : HW_RscGUIShortcutButton { idc=33; moving = 1; text="Add to Queue"; x=0.58; y=0.74; //w=0.25; //h=0.06; onButtonClick = "private[""_cost"", ""_n"", ""_i""]; _cost=0; lbAdd [32, lbText [31, lbCurSel 31] ]; for [{_i=0},{_i < (lbSize 32)},{_i=_i+1}] do { _n=mcti_aircraftNames_US find lbText [32, _i]; _cost = _cost + (mcti_aircraftPrices_US select _n); }; ctrlSetText [34, ""Total Cost: "" + (str _cost)]; if ((lbSize 32) == 5) then {ctrlEnable [33, FALSE]} "; }; class mca_buy_AFUS_btn_clear : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Clear Queue"; x=0.58; y=0.66; //w=0.25; //h=0.06; onButtonClick = "ctrlSetText [34, ""Total Cost: 0""]; lbClear 32;ctrlEnable [33, TRUE];"; }; }; class mca_buy_HFRU { name=mca_buy_HFRU; idd=0; movingEnable=1; controlsBackground[]={ mca_buy_HFRU_bg, mca_buy_HFRU_bgf1, mca_buy_HFRU_bgf2, mca_buy_HFRU_bgf3, mca_buy_HFRU_bgf4 }; objects[]={}; controls[]={ mca_buy_HFRU_lb1, mca_buy_HFRU_btn_OK, mca_buy_HFRU_title, mca_buy_HFRU_btn_add, mca_buy_HFRU_btn_clear, mca_buy_HFRU_lb2, mca_buy_HFRU_text1 }; class mca_buy_HFRU_bg : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.8; moving = 1; }; class mca_buy_HFRU_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_HFRU_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_HFRU_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_HFRU_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_HFRU_lb1 : HW_RscGUIListBox //List { idc = 11; moving = 1; x = 0.1; y = 0.25; w = 0.35; h = 0.6; rows = 10; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_HFRU_lb2 : HW_RscGUIListBox //Queue-List { idc = 12; moving = 1; x = 0.5; y = 0.25; w = 0.35; h = 0.25; rows = 5; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_HFRU_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; text = "Heavy Vehicle Purchase Menu"; sizeEx = 0.04; moving = 1; }; class mca_buy_HFRU_text1 : HW_RscText { idc = 14; moving = 1; x = 0.5; y = 0.53; w = 0.35; h = 0.05; text = "Total Cost: 0"; }; class mca_buy_HFRU_btn_OK : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Buy Vehicles"; x=0.58; y=0.82; //w=0.25; //h=0.06; onButtonClick = "private [""_i"", ""_n"", ""_tmp_array""]; _tmp_array = tmp_obj getVariable ""queue""; for [{_i=0},{_i < (lbSize 12)},{_i=_i+1}] do { _n=mcti_heavyVehicleNames_RU find lbText [12, _i]; _tmp_array = _tmp_array + [mcti_heavyVehicles_RU select _n]; }; tmp_obj setVariable [""queue"", _tmp_array, TRUE] ; closeDialog 0; "; }; // tmp_obj - глобальный объект, дл€ передачи параметра диалогу class mca_buy_HFRU_btn_add : HW_RscGUIShortcutButton { idc=13; moving = 1; text="Add to Queue"; x=0.58; y=0.74; //w=0.25; //h=0.06; onButtonClick = "private[""_cost"", ""_n"", ""_i""]; _cost=0; lbAdd [12, lbText [11, lbCurSel 11] ]; for [{_i=0},{_i < (lbSize 12)},{_i=_i+1}] do { _n=mcti_heavyVehicleNames_RU find lbText [12, _i]; _cost = _cost + (mcti_heavyVehiclePrices_RU select _n); }; ctrlSetText [14, ""Total Cost: "" + (str _cost)]; if ((lbSize 12) == 5) then {ctrlEnable [13, FALSE]} "; }; class mca_buy_HFRU_btn_clear : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Clear Queue"; x=0.58; y=0.66; //w=0.25; //h=0.06; onButtonClick = "ctrlSetText [14, ""Total Cost: 0""]; lbClear 12;ctrlEnable [13, TRUE];"; }; }; class mca_buy_HFUS { name=mca_buy_HFUS; idd=0; movingEnable=1; controlsBackground[]={ mca_buy_HFUS_bg, mca_buy_HFUS_bgf1, mca_buy_HFUS_bgf2, mca_buy_HFUS_bgf3, mca_buy_HFUS_bgf4 }; objects[]={}; controls[]={ mca_buy_HFUS_lb1, mca_buy_HFUS_btn_OK, mca_buy_HFUS_title, mca_buy_HFUS_btn_add, mca_buy_HFUS_btn_clear, mca_buy_HFUS_lb2, mca_buy_HFUS_text1 }; class mca_buy_HFUS_bg : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.8; moving = 1; }; class mca_buy_HFUS_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_HFUS_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_HFUS_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_HFUS_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_HFUS_lb1 : HW_RscGUIListBox //List { idc = 21; x = 0.1; y = 0.25; w = 0.35; h = 0.6; moving = 1; rows = 10; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_HFUS_lb2 : HW_RscGUIListBox //Queue-List { idc = 22; x = 0.5; y = 0.25; w = 0.35; h = 0.25; moving = 1; rows = 5; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_HFUS_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; moving = 1; text = "Heavy Vehicle Purchase Menu"; sizeEx = 0.04; }; class mca_buy_HFUS_text1 : HW_RscText { idc = 24; x = 0.5; y = 0.53; w = 0.35; h = 0.05; moving = 1; text = "Total Cost: 0"; }; class mca_buy_HFUS_btn_OK : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Buy Vehicles"; x=0.58; y=0.82; //w=0.25; //h=0.06; onButtonClick = "private [""_i"", ""_n"", ""_tmp_array""]; _tmp_array = tmp_obj getVariable ""queue""; for [{_i=0},{_i < (lbSize 22)},{_i=_i+1}] do { _n=mcti_heavyVehicleNames_US find lbText [22, _i]; _tmp_array = _tmp_array + [mcti_heavyVehicles_US select _n]; }; tmp_obj setVariable [""queue"", _tmp_array, TRUE] ; closeDialog 0; "; }; // tmp_obj - глобальный объект, дл€ передачи параметра диалогу class mca_buy_HFUS_btn_add : HW_RscGUIShortcutButton { idc=23; moving = 1; text="Add to Queue"; x=0.58; y=0.74; //w=0.25; //h=0.06; onButtonClick = "private[""_cost"", ""_n"", ""_i""]; _cost=0; lbAdd [22, lbText [21, lbCurSel 21] ]; for [{_i=0},{_i < (lbSize 22)},{_i=_i+1}] do { _n=mcti_heavyVehicleNames_US find lbText [22, _i]; _cost = _cost + (mcti_heavyVehiclePrices_US select _n); }; ctrlSetText [24, ""Total Cost: "" + (str _cost)]; if ((lbSize 22) == 5) then {ctrlEnable [23, FALSE]} "; }; class mca_buy_HFUS_btn_clear : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Clear Queue"; x=0.58; y=0.66; //w=0.25; //h=0.06; onButtonClick = "ctrlSetText [24, ""Total Cost: 0""]; lbClear 22;ctrlEnable [23, TRUE];"; }; }; class mca_buy_LFRU { name=mca_buy_LFRU; idd=0; movingEnable=1; controlsBackground[]={ mca_buy_LFRU_bg, mca_buy_LFRU_bgf1, mca_buy_LFRU_bgf2, mca_buy_LFRU_bgf3, mca_buy_LFRU_bgf4 }; objects[]={}; controls[]={ mca_buy_LFRU_lb1, mca_buy_LFRU_btn_OK, mca_buy_LFRU_title, mca_buy_LFRU_btn_add, mca_buy_LFRU_btn_clear, mca_buy_LFRU_lb2, mca_buy_LFRU_text1 }; class mca_buy_LFRU_bg : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.8; moving = 1; }; class mca_buy_LFRU_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_LFRU_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_LFRU_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_LFRU_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_LFRU_lb1 : HW_RscGUIListBox //List { idc = 1; x = 0.1; y = 0.25; w = 0.35; h = 0.6; moving = 1; rows = 10; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_LFRU_lb2 : HW_RscGUIListBox //Queue-List { idc = 2; x = 0.5; y = 0.25; w = 0.35; h = 0.25; moving = 1; rows = 5; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_LFRU_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; moving = 1; text = "Light Vehicle Purchase Menu"; sizeEx = 0.04; }; class mca_buy_LFRU_text1 : HW_RscText //RscText { idc = 4; x = 0.5; y = 0.53; w = 0.35; h = 0.05; moving = 1; text = "Total Cost: 0"; }; class mca_buy_LFRU_btn_OK : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Buy Vehicles"; x=0.58; y=0.82; //w=0.25; //h=0.06; // action = ""; onButtonClick = "private [""_i"", ""_n"", ""_tmp_array""]; _tmp_array = tmp_obj getVariable ""queue""; for [{_i=0},{_i < (lbSize 2)},{_i=_i+1}] do { _n=mcti_lightVehicleNames_RU find lbText [2, _i]; _tmp_array = _tmp_array + [mcti_lightVehicles_RU select _n]; }; tmp_obj setVariable [""queue"", _tmp_array, TRUE] ; closeDialog 0; "; }; // tmp_obj - глобальный объект, дл€ передачи параметра диалогу class mca_buy_LFRU_btn_add : HW_RscGUIShortcutButton { idc=3; moving = 1; text="Add to Queue"; x=0.58; y=0.74; //w=0.25; //h=0.06; onButtonClick = "private[""_cost"", ""_n"", ""_i""]; _cost=0; lbAdd [2, lbText [1, lbCurSel 1] ]; for [{_i=0},{_i < (lbSize 2)},{_i=_i+1}] do { _n=mcti_lightVehicleNames_RU find lbText [2, _i]; _cost = _cost + (mcti_lightVehiclePrices_RU select _n); }; ctrlSetText [4, ""Total Cost: "" + (str _cost)]; if ((lbSize 2) == 5) then {ctrlEnable [3, FALSE]} "; }; class mca_buy_LFRU_btn_clear : HW_RscGUIShortcutButton //RscButton { idc=-1; moving = 1; text="Clear Queue"; x=0.58; y=0.66; //w=0.25; //h=0.06; onButtonClick = "ctrlSetText [4, ""Total Cost: 0""]; lbClear 2;ctrlEnable [3, TRUE];"; }; }; class mca_buy_LFUS { name=mca_buy_LFUS; idd=0; movingEnable=1; controlsBackground[]={ mca_buy_LFUS_bg, mca_buy_LFUS_bgf1, mca_buy_LFUS_bgf2, mca_buy_LFUS_bgf3, mca_buy_LFUS_bgf4 }; objects[]={}; controls[]={ mca_buy_LFUS_lb1, mca_buy_LFUS_btn_OK, mca_buy_LFUS_title, mca_buy_LFUS_btn_add, mca_buy_LFUS_btn_clear, mca_buy_LFUS_lb2, mca_buy_LFUS_text1 }; class mca_buy_LFUS_bg : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.8; moving = 1; }; class mca_buy_LFUS_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_LFUS_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; moving = 1; }; class mca_buy_LFUS_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_LFUS_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_buy_LFUS_lb1 : HW_RscGUIListBox //List { idc = 91; x = 0.1; y = 0.25; w = 0.35; h = 0.6; moving = 1; rows = 10; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_LFUS_lb2 : HW_RscGUIListBox //Queue-List { idc = 92; x = 0.5; y = 0.25; w = 0.35; h = 0.25; moving = 1; rows = 5; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_buy_LFUS_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; moving = 1; text = "Light Vehicle Purchase Menu"; sizeEx = 0.04; }; class mca_buy_LFUS_text1 : HW_RscText { idc = 94; x = 0.5; y = 0.53; w = 0.35; h = 0.05; moving = 1; text = "Total Cost: 0"; }; class mca_buy_LFUS_btn_OK : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Buy Vehicles"; x=0.58; y=0.82; //w=0.25; //h=0.06; onButtonClick = "private [""_i"", ""_n"", ""_tmp_array""]; _tmp_array = tmp_obj getVariable ""queue""; for [{_i=0},{_i < (lbSize 92)},{_i=_i+1}] do { _n=mcti_lightVehicleNames_US find lbText [92, _i]; _tmp_array = _tmp_array + [mcti_lightVehicles_US select _n]; }; tmp_obj setVariable [""queue"", _tmp_array, TRUE] ; closeDialog 0; "; }; // tmp_obj - глобальный объект, дл€ передачи параметра диалогу class mca_buy_LFUS_btn_add : HW_RscGUIShortcutButton { idc=93; moving = 1; text="Add to Queue"; x=0.58; y=0.74; //w=0.25; //h=0.06; onButtonClick = "private[""_cost"", ""_n"", ""_i""]; _cost=0; lbAdd [92, lbText [91, lbCurSel 91] ]; for [{_i=0},{_i < (lbSize 92)},{_i=_i+1}] do { _n=mcti_lightVehicleNames_US find lbText [92, _i]; _cost = _cost + (mcti_lightVehiclePrices_US select _n); }; ctrlSetText [94, ""Total Cost: "" + (str _cost)]; if ((lbSize 92) == 5) then {ctrlEnable [93, FALSE]} "; }; class mca_buy_LFUS_btn_clear : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Clear Queue"; x=0.58; y=0.66; //w=0.25; //h=0.06; onButtonClick = "ctrlSetText [94, ""Total Cost: 0""]; lbClear 92;ctrlEnable [93, TRUE];"; }; };// Control types #define CT_STATIC 0 #define CT_BUTTON 1 #define CT_EDIT 2 #define CT_SLIDER 3 #define CT_COMBO 4 #define CT_LISTBOX 5 #define CT_TOOLBOX 6 #define CT_CHECKBOXES 7 #define CT_PROGRESS 8 #define CT_HTML 9 #define CT_STATIC_SKEW 10 #define CT_ACTIVETEXT 11 #define CT_TREE 12 #define CT_STRUCTURED_TEXT 13 #define CT_CONTEXT_MENU 14 #define CT_CONTROLS_GROUP 15 #define CT_XKEYDESC 40 #define CT_XBUTTON 41 #define CT_XLISTBOX 42 #define CT_XSLIDER 43 #define CT_XCOMBO 44 #define CT_ANIMATED_TEXTURE 45 #define CT_OBJECT 80 #define CT_OBJECT_ZOOM 81 #define CT_OBJECT_CONTAINER 82 #define CT_OBJECT_CONT_ANIM 83 #define CT_LINEBREAK 98 #define CT_USER 99 #define CT_MAP 100 #define CT_MAP_MAIN 101 // Static styles #define ST_POS 0x0F #define ST_HPOS 0x03 #define ST_VPOS 0x0C #define ST_LEFT 0x00 #define ST_RIGHT 0x01 #define ST_CENTER 0x02 #define ST_DOWN 0x04 #define ST_UP 0x08 #define ST_VCENTER 0x0c #define ST_TYPE 0xF0 #define ST_SINGLE 0 #define ST_MULTI 16 #define ST_TITLE_BAR 32 #define ST_PICTURE 48 #define ST_FRAME 64 #define ST_BACKGROUND 80 #define ST_GROUP_BOX 96 #define ST_GROUP_BOX2 112 #define ST_HUD_BACKGROUND 128 #define ST_TILE_PICTURE 144 #define ST_WITH_RECT 160 #define ST_LINE 176 #define FontM "Zeppelin32" #define Size_Main_Small 0.027 #define Size_Main_Normal 0.04 #define Size_Text_Default Size_Main_Normal #define Size_Text_Small Size_Main_Small #define Color_White {1, 1, 1, 1} #define Color_Main_Foreground1 Color_White #define Color_Text_Default Color_Main_Foreground1 #define true 1 #define false 0 class HW_RscText { idc = -1; type = CT_STATIC; style = ST_CENTER; text = "RscText"; font = FontM; sizeEx = 0.023; colorBackground[] = { 1, 1, 1, 0.3 }; colorText[] = { 0, 0, 0, 1 }; x = 0.8; y = 0.1; w = 0.2; h = 0.05; }; class HW_RscButton { idc = -1; type = CT_BUTTON; style = ST_CENTER; default = false; font = FontM; sizeEx = 0.05; colorText[] = { 0, 0, 0, 1 }; colorFocused[] = { 0.2, 0.5, 1, 1 }; // border color for focused state colorDisabled[] = { 1, 0, 0, 0.7 }; // text color for disabled state colorBackground[] = { 0.8, 0.8, 0.8, 0.8 }; colorBackgroundDisabled[] = { 1, 1, 1, 0.5 }; // background color for disabled state colorBackgroundActive[] = { 0.9, 0.9, 0.9, 1 }; // background color for active state offsetX = 0.003; offsetY = 0.003; offsetPressedX = 0.002; offsetPressedY = 0.002; colorShadow[] = { 0, 0, 0, 0.5 }; colorBorder[] = { 0, 0, 0, 1 }; borderSize = 0; soundEnter[] = { "", 0, 1 }; // no sound soundPush[] = { "buttonpushed.ogg", 0.1, 1 }; soundClick[] = { "", 0, 1 }; // no sound soundEscape[] = { "", 0, 1 }; // no sound x = 0.4; y = 0.475; w = 0.2; h = 0.05; text = "Empty"; action = ""; }; class HW_RscBackground { idc = -1; type = CT_STATIC; style = ST_LEFT; colorBackground[] = { 0, 0, 0, 0.9 }; colorText[] = { 0, 0, 0, 1 }; font = FontM; sizeEx = 0.023; x = -1; y = -1; w = 3; h = 3; text = ""; }; class HW_RscPicture { idc = -1; type = CT_STATIC; style = ST_PICTURE; colorBackground[] = { }; colorText[] = { }; font = FontM; sizeEx = 0.023; x = 0.0; y = 0.2; w = 0.2; h = 0.2; text = ""; }; class HW_RscSlider { type = CT_SLIDER; style = 1024; w = 0.24; h = 0.03; color[] = Color_White; //colorActive[] = Color_White; }; class HW_RscListBox { type = 5; style = 0 + 0x10; font = "Zeppelin32"; sizeEx = 0.03921; color[] = {1, 1, 1, 1}; colorText[] = {0.95, 0.95, 0.95, 1}; colorScrollbar[] = {0.95, 0.95, 0.95, 1}; colorSelect[] = {0.023529, 0, 0.0313725, 1}; colorSelect2[] = {0.023529, 0, 0.0313725, 1}; colorSelectBackground[] = {0.58, 0.1147, 0.1108, 1}; colorSelectBackground2[] = {0.58, 0.1147, 0.1108, 1}; period = 1; colorBackground[] = {0, 0, 0, 1}; maxHistoryDelay = 1.0; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; class ScrollBar { color[] = {1, 1, 1, 0.6}; colorActive[] = {1, 1, 1, 1}; colorDisabled[] = {1, 1, 1, 0.3}; thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; border = "\ca\ui\data\ui_border_scroll_ca.paa"; }; }; class HW_RscGUIListBox : HW_RscListBox { color[] = {1, 1, 1, 1}; colorText[] = {1, 1, 1, 0.75}; colorScrollbar[] = {0.95, 0.95, 0.95, 1}; colorSelect[] = {0.95, 0.95, 0.95, 1}; colorSelect2[] = {0.95, 0.95, 0.95, 1}; colorSelectBackground[] = {0.6, 0.839, 0.47, 0.3}; colorSelectBackground2[] = {0.6, 0.839, 0.47, 1}; period = 0; colorBackground[] = {0, 0, 0, 1}; sizeEx = 0.035; class ScrollBar { color[] = {1, 1, 1, 0.6}; colorActive[] = {1, 1, 1, 1}; colorDisabled[] = {1, 1, 1, 0.3}; thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa"; arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa"; border = "\ca\ui\data\igui_border_scroll_ca.paa"; }; }; class HW_RscShortcutButton { type = 16; idc = -1; style = 0; default = 0; w = 0.183825; h = 0.104575; color[] = {0.95, 0.95, 0.95, 1}; color2[] = {1, 1, 1, 0.4}; colorBackground[] = {1, 1, 1, 1}; colorbackground2[] = {1, 1, 1, 0.4}; colorDisabled[] = {1, 1, 1, 0.25}; periodFocus = 1.2; periodOver = 0.8; class HitZone { left = 0.004; top = 0.029; right = 0.004; bottom = 0.029; }; class ShortcutPos { left = 0.004; top = 0.026; w = 0.0392157; h = 0.0522876; }; class TextPos { left = 0.05; top = 0.034; right = 0.005; bottom = 0.005; }; animTextureNormal = "\ca\ui\data\ui_button_normal_ca.paa"; animTextureDisabled = "\ca\ui\data\ui_button_disabled_ca.paa"; animTextureOver = "\ca\ui\data\ui_button_over_ca.paa"; animTextureFocused = "\ca\ui\data\ui_button_focus_ca.01.paa"; animTexturePressed = "\ca\ui\data\ui_button_down_ca.paa"; animTextureDefault = "\ca\ui\data\ui_button_default_ca.paa"; textureNoShortcut = ""; period = 0.4; font = "Zeppelin32"; size = 0.03521; sizeEx = 0.03521; text = ""; soundEnter[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; soundPush[] = {"\ca\ui\data\sound\new1", 0.09, 1}; soundClick[] = {"\ca\ui\data\sound\mouse3", 0.07, 1}; soundEscape[] = {"\ca\ui\data\sound\mouse1", 0.09, 1}; action = ""; class Attributes { font = "Zeppelin32"; color = "#E5E5E5"; align = "left"; shadow = "true"; }; class AttributesImage { font = "Zeppelin32"; color = "#E5E5E5"; align = "left"; }; }; class HW_RscGUIShortcutButton : HW_RscShortcutButton { w = 0.183825; h = 0.0522876; style = 2; color[] = {1, 1, 1, 1}; color2[] = {1, 1, 1, 0.85}; colorBackground[] = {1, 1, 1, 1}; colorbackground2[] = {1, 1, 1, 0.85}; colorDisabled[] = {1, 1, 1, 0.4}; class HitZone { left = 0.002; top = 0.003; right = 0.002; bottom = 0.016; }; class ShortcutPos { left = -0.006; top = -0.007; w = 0.0392157; h = 0.0522876; }; class TextPos { left = 0.02; top = 0.0; right = 0.002; bottom = 0.016; }; animTextureNormal = "\ca\ui\data\igui_button_normal_ca.paa"; animTextureDisabled = "\ca\ui\data\igui_button_disabled_ca.paa"; animTextureOver = "\ca\ui\data\igui_button_over_ca.paa"; animTextureFocused = "\ca\ui\data\igui_button_focus_ca.paa"; animTexturePressed = "\ca\ui\data\igui_button_down_ca.paa"; animTextureDefault = "\ca\ui\data\igui_button_normal_ca.paa"; animTextureNoShortcut = "\ca\ui\data\igui_button_normal_ca.paa"; class Attributes { font = "Zeppelin32"; color = "#E5E5E5"; align = "center"; shadow = "true"; }; }; class RscMap { idc = -1; type=101; style=48; x = 0; y = 0; w = 1; h = 1; colorBackground[] = {1.00, 1.00, 1.00, 0}; colorText[] = {0.00, 0.00, 0.00, 1.00}; colorSea[] = {0.56, 0.80, 0.98, 0.50}; colorForest[] = {0.60, 0.80, 0.20, 0.50}; colorRocks[] = {0.50, 0.50, 0.50, 0.50}; colorCountlines[] = {0.65, 0.45, 0.27, 0.50}; colorMainCountlines[] = {0.65, 0.45, 0.27, 1.00}; colorCountlinesWater[] = {0.00, 0.53, 1.00, 0.50}; colorMainCountlinesWater[] = {0.00, 0.53, 1.00, 1.00}; colorForestBorder[] = {0.40, 0.80, 0.00, 1.00}; colorRocksBorder[] = {0.50, 0.50, 0.50, 1.00}; colorPowerLines[] = {0.00, 0.00, 0.00, 1.00}; colorNames[] = {0.00, 0.00, 0.00, 1.00}; colorInactive[] = {1.00, 1.00, 1.00, 0.50}; colorLevels[] = {0.00, 0.00, 0.00, 1.00}; colorRailWay[] = {0.00, 0.00, 0.00, 1.00}; colorOutside[] = {0.00, 0.00, 0.00, 1.00}; font = "TahomaB"; sizeEx = 0.040000; stickX[] = {0.20, {"Gamma", 1.00, 1.50} }; stickY[] = {0.20, {"Gamma", 1.00, 1.50} }; ptsPerSquareSea = 6; ptsPerSquareTxt = 8; ptsPerSquareCLn = 8; ptsPerSquareExp = 8; ptsPerSquareCost = 8; ptsPerSquareFor = "4.0f"; ptsPerSquareForEdge = "10.0f"; ptsPerSquareRoad = 2; ptsPerSquareObj = 10; fontLabel = "Zeppelin32"; sizeExLabel = 0.034000; fontGrid = "Zeppelin32"; sizeExGrid = 0.034000; fontUnits = "Zeppelin32"; sizeExUnits = 0.034000; fontNames = "Zeppelin32"; sizeExNames = 0.056000; fontInfo = "Zeppelin32"; sizeExInfo = 0.034000; fontLevel = "Zeppelin32"; sizeExLevel = 0.034000; maxSatelliteAlpha = 1.0; alphaFadeStartScale = 1.0; alphaFadeEndScale = 1.1; // Prevent div/0 showCountourInterval=2; scaleDefault = 0.1; onMouseButtonClick = ""; onMouseButtonDblClick = ""; text = "\ca\ui\data\map_background2_co.paa"; class CustomMark { icon = "\ca\ui\data\map_waypoint_ca.paa"; color[] = {0, 0, 1, 1}; size = 18; importance = 1; coefMin = 1; coefMax = 1; }; class Legend { x = -1; y = -1; w = 0.340000; h = 0.152000; font = "Zeppelin32"; sizeEx = 0.039210; colorBackground[] = {0.906000, 0.901000, 0.880000, 0.800000}; color[] = {0, 0, 0, 1}; }; class Bunker { icon = "\ca\ui\data\map_bunker_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 14; importance = "1.5 * 14 * 0.05"; coefMin = 0.250000; coefMax = 4; }; class Bush { icon = "\ca\ui\data\map_bush_ca.paa"; color[] = {0.550000, 0.640000, 0.430000, 1}; size = 14; importance = "0.2 * 14 * 0.05"; coefMin = 0.250000; coefMax = 4; }; class BusStop { icon = "\ca\ui\data\map_busstop_ca.paa"; color[] = {0, 0, 1, 1}; size = 10; importance = "1 * 10 * 0.05"; coefMin = 0.250000; coefMax = 4; }; class Command { icon = "\ca\ui\data\map_waypoint_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 18; importance = 1; coefMin = 1; coefMax = 1; }; class Cross { icon = "\ca\ui\data\map_cross_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 16; importance = "0.7 * 16 * 0.05"; coefMin = 0.250000; coefMax = 4; }; class Fortress { icon = "\ca\ui\data\map_bunker_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 16; importance = "2 * 16 * 0.05"; coefMin = 0.250000; coefMax = 4; }; class Fuelstation { icon = "\ca\ui\data\map_fuelstation_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 16; importance = "2 * 16 * 0.05"; coefMin = 0.750000; coefMax = 4; }; class Fountain { icon = "\ca\ui\data\map_fountain_ca.paa"; color[] = {0, 0.350000, 0.700000, 1}; size = 12; importance = "1 * 12 * 0.05"; coefMin = 0.250000; coefMax = 4; }; class Hospital { icon = "\ca\ui\data\map_hospital_ca.paa"; color[] = {0.780000, 0, 0.050000, 1}; size = 16; importance = "2 * 16 * 0.05"; coefMin = 0.500000; coefMax = 4; }; class Chapel { icon = "\ca\ui\data\map_chapel_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 16; importance = "1 * 16 * 0.05"; coefMin = 0.900000; coefMax = 4; }; class Church { icon = "\ca\ui\data\map_church_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 16; importance = "2 * 16 * 0.05"; coefMin = 0.900000; coefMax = 4; }; class Lighthouse { icon = "\ca\ui\data\map_lighthouse_ca.paa"; color[] = {0.780000, 0, 0.050000, 1}; size = 20; importance = "3 * 16 * 0.05"; coefMin = 0.900000; coefMax = 4; }; class Quay { icon = "\ca\ui\data\map_quay_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 16; importance = "2 * 16 * 0.05"; coefMin = 0.500000; coefMax = 4; }; class Rock { icon = "\ca\ui\data\map_rock_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 12; importance = "0.5 * 12 * 0.05"; coefMin = 0.250000; coefMax = 4; }; class Ruin { icon = "\ca\ui\data\map_ruin_ca.paa"; color[] = {0.780000, 0, 0.050000, 1}; size = 16; importance = "1.2 * 16 * 0.05"; coefMin = 1; coefMax = 4; }; class SmallTree { icon = "\ca\ui\data\map_smalltree_ca.paa"; color[] = {0.550000, 0.640000, 0.430000, 1}; size = 12; importance = "0.6 * 12 * 0.05"; coefMin = 0.250000; coefMax = 4; }; class Stack { icon = "\ca\ui\data\map_stack_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 20; importance = "2 * 16 * 0.05"; coefMin = 0.900000; coefMax = 4; }; class Tree { icon = "\ca\ui\data\map_tree_ca.paa"; color[] = {0.550000, 0.640000, 0.430000, 1}; size = 12; importance = "0.9 * 16 * 0.05"; coefMin = 0.250000; coefMax = 4; }; class Tourism { icon = "\ca\ui\data\map_tourism_ca.paa"; color[] = {0.780000, 0, 0.050000, 1}; size = 16; importance = "1 * 16 * 0.05"; coefMin = 0.700000; coefMax = 4; }; class Transmitter { icon = "\ca\ui\data\map_transmitter_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 20; importance = "2 * 16 * 0.05"; coefMin = 0.900000; coefMax = 4; }; class ViewTower { icon = "\ca\ui\data\map_viewtower_ca.paa"; color[] = {0, 0.900000, 0, 1}; size = 16; importance = "2.5 * 16 * 0.05"; coefMin = 0.500000; coefMax = 4; }; class Watertower { icon = "\ca\ui\data\map_watertower_ca.paa"; color[] = {0, 0.350000, 0.700000, 1}; size = 32; importance = "1.2 * 16 * 0.05"; coefMin = 0.900000; coefMax = 4; }; class Waypoint { icon = "\ca\ui\data\map_waypoint_ca.paa"; size = 20; color[] = {0, 0.900000, 0, 1}; importance = "1.2 * 16 * 0.05"; coefMin = 0.900000; coefMax = 4; }; class Task { icon = "\ca\ui\data\map_waypoint_ca.paa"; iconCreated = "#(argb,8,8,3)color(1,1,1,1)"; iconCanceled = "#(argb,8,8,3)color(0,0,1,1)"; iconDone = "#(argb,8,8,3)color(0,0,0,1)"; iconFailed = "#(argb,8,8,3)color(1,0,0,1)"; colorCreated[] = {1,1,1,1}; colorCanceled[] = {1,1,1,1}; colorDone[] = {1,1,1,1}; colorFailed[] = {1,1,1,1}; size = 20; color[] = {0, 0.900000, 0, 1}; importance = "1.2 * 16 * 0.05"; coefMin = 0.900000; coefMax = 4; }; class WaypointCompleted { icon = "\ca\ui\data\map_waypoint_completed_ca.paa"; size = 20; color[] = {0, 0.900000, 0, 1}; importance = "1.2 * 16 * 0.05"; coefMin = 0.900000; coefMax = 4; }; class ActiveMarker { icon = "\ca\ui\data\map_waypoint_completed_ca.paa"; size = 20; color[] = {0, 0.900000, 0, 1}; importance = "1.2 * 16 * 0.05"; coefMin = 0.900000; coefMax = 4; }; }; class mca_queue_AF { name=mca_queue_AF; idd=0; movingEnable=1; controlsBackground[]={ mca_queue_AF_bg, mca_queue_AF_bgf1, mca_queue_AF_bgf2, mca_queue_AF_bgf3, mca_queue_AF_bgf4 }; objects[]={}; controls[]={ mca_queue_AF_lb1, mca_queue_AF_btn_OK, mca_queue_AF_title, mca_queue_AF_lb2 }; class mca_queue_AF_bg : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.8; moving = 1; }; class mca_queue_AF_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; moving = 1; }; class mca_queue_AF_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; moving = 1; }; class mca_queue_AF_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_queue_AF_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_queue_AF_lb1 : HW_RscGUIListBox //List { idc = 6; moving = 1; x = 0.1; y = 0.25; w = 0.35; h = 0.6; rows = 10; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_queue_AF_lb2 : HW_RscGUIListBox //Queue-List { idc = 9; moving = 1; x = 0.5; y = 0.25; w = 0.35; h = 0.25; rows = 5; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_queue_AF_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; moving = 1; text = "Aircraft Factory Queue View"; sizeEx = 0.04; }; class mca_queue_AF_btn_OK : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Exit"; x=0.58; y=0.82; //w=0.25; //h=0.06; onButtonClick = "closeDialog 0;"; }; }; class mca_queue_HF { name=mca_queue_HF; idd=0; movingEnable=1; controlsBackground[]={ mca_queue_HF_bg, mca_queue_HF_bgf1, mca_queue_HF_bgf2, mca_queue_HF_bgf3, mca_queue_HF_bgf4 }; objects[]={}; controls[]={ mca_queue_HF_lb1, mca_queue_HF_btn_OK, mca_queue_HF_title, mca_queue_HF_lb2 }; class mca_queue_HF_bg : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.8; moving = 1; }; class mca_queue_HF_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; moving = 1; }; class mca_queue_HF_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; moving = 1; }; class mca_queue_HF_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_queue_HF_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_queue_HF_lb1 : HW_RscGUIListBox //List { idc = 15; x = 0.1; y = 0.25; w = 0.35; h = 0.6; moving = 1; rows = 10; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_queue_HF_lb2 : HW_RscGUIListBox //Queue-List { idc = 8; x = 0.5; y = 0.25; w = 0.35; h = 0.25; moving = 1; rows = 5; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_queue_HF_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; moving = 1; text = "Heavy Factory Queue View"; sizeEx = 0.04; }; class mca_queue_HF_btn_OK : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Exit"; x=0.58; y=0.82; //w=0.25; //h=0.06; onButtonClick = "closeDialog 0;"; }; }; class mca_queue_LF { name=mca_queue_LF; idd=0; movingEnable=1; controlsBackground[]={ mca_queue_LF_bg, mca_queue_LF_bgf1, mca_queue_LF_bgf2, mca_queue_LF_bgf3, mca_queue_LF_bgf4 }; objects[]={}; controls[]={ mca_queue_LF_lb1, mca_queue_LF_btn_OK, mca_queue_LF_title, mca_queue_LF_lb2 }; class mca_queue_LF_bg : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.8; moving = 1; }; class mca_queue_LF_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; moving = 1; }; class mca_queue_LF_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; moving = 1; }; class mca_queue_LF_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_queue_LF_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_queue_LF_lb1 : HW_RscGUIListBox //List { idc = 5; x = 0.1; y = 0.25; w = 0.35; h = 0.6; moving = 1; rows = 10; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_queue_LF_lb2 : HW_RscGUIListBox //Queue-List { idc = 7; x = 0.5; y = 0.25; w = 0.35; h = 0.25; moving = 1; rows = 5; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_queue_LF_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; moving = 1; text = "Light Factory Queue View"; sizeEx = 0.04; }; class mca_queue_LF_btn_OK : HW_RscGUIShortcutButton { idc=-1; moving = 1; text="Exit"; x=0.58; y=0.82; //w=0.25; //h=0.06; onButtonClick = "closeDialog 0;"; }; }; class mca_respawn { name=mca_respawn; idd=1; movingEnable = 1; controlsBackground[]={ mca_respawn_bg, mca_respawn_bgf1, mca_respawn_bgf2, mca_respawn_bgf3, mca_respawn_bgf4 }; objects[]={}; controls[]={ mca_respawn_lb1, mca_respawn_title, mca_respawn_counter, mca_respawn_map, mca_respawn_radio }; class mca_respawn_bg : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.8; moving = 1; }; class mca_respawn_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; moving = 1; }; class mca_respawn_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; }; class mca_respawn_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_respawn_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; moving = 1; }; class mca_respawn_lb1 : HW_RscGUIListBox //List { idc = 101; moving = 1; x = 0.1; y = 0.25; w = 0.35; h = 0.6; rows = 10; columns = 1; style = LB_TEXTURES; rowHeight = 0.04; soundSelect[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; }; class mca_respawn_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; moving = 1; text = "Select your Respawn Place"; sizeEx = 0.04; }; class mca_respawn_counter : RscText { idc = 102; moving = 1; x = 0.5; y = 0.17; w = 0.35; h = 0.1; sizeEx=0.03; colorText[]={1, 1, 1, 1}; text = "Respawn in...seconds"; }; class mca_respawn_map : RscMap //RscMapControl { idc = 103; moving = 1; x = 0.5; y = 0.25; w = 0.35; h = 0.55; colorOutside[] = {0.00, 0.0, 0.00, 0.50}; }; class mca_respawn_radio : RscText { idc = 104; moving = 1; x = 0.5; y = 0.8; w = 0.35; h = 0.1; sizeEx=0.035; colorText[]={1, 1, 1, 1}; text = "Radio communication: Established"; }; };// init.sqf // version 1.0 waituntil {!isnil "bis_fnc_init"}; // BIS Functions Library loading // Server's code //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (isServer) then { ResHQ = createCenter resistance; publicVariable "ResHQ"; RU_HQ = createCenter east; group_RU_MHQ = createGroup east; US_HQ = createCenter west; group_US_MHQ = createGroup west; // players /////////////////////////////////////////////////////// RU_players = [RU_player_1, RU_player_2, RU_player_3, RU_player_4, RU_player_5, RU_player_6, RU_player_7, RU_player_8, RU_player_9, RU_player_10, RU_player_11, RU_player_12, RU_player_13, RU_player_14, RU_player_15, RU_player_16, RU_player_17, RU_player_18, RU_player_19, RU_player_20, RU_player_21, RU_player_22, RU_player_23, RU_player_24, RU_player_25, RU_player_26, RU_player_27, RU_player_28, RU_player_29, RU_player_30, RU_player_31, RU_player_32, RU_player_33, RU_player_34, RU_player_35, RU_player_36, RU_player_37, RU_player_38, RU_player_39, RU_player_40 ]; publicVariable "RU_players"; US_players = [US_player_1, US_player_2, US_player_3, US_player_4, US_player_5, US_player_6, US_player_7, US_player_8, US_player_9, US_player_10, US_player_11, US_player_12, US_player_13, US_player_14, US_player_15, US_player_16, US_player_17, US_player_18, US_player_19, US_player_20, US_player_21, US_player_22, US_player_23, US_player_24, US_player_25, US_player_26, US_player_27, US_player_28, US_player_29, US_player_30, US_player_31, US_player_32, US_player_33, US_player_34, US_player_35, US_player_36, US_player_37, US_player_38, US_player_39, US_player_40 ]; publicVariable "US_players"; [] execVM "mca_ground_limit.sqf"; //creates starting positions and vehicles around them // Objects Trash Can ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// mcti_OTC = []; publicVariable "mcti_OTC"; // Various variables ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// mcti_production_queryInterval = 20; publicVariable "mcti_production_queryInterval"; mcti_town_captureArea = 250; publicVariable "mcti_town_captureArea"; server setVariable ["MarkersDeleted", FALSE, TRUE]; /// params ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// mcti_param_startingMoney = (paramsarray select 3); // selector is near money variables publicVariable "mcti_param_startingMoney"; mcti_param_silvie = (paramsarray select 5); // 0 | 1 publicVariable "mcti_param_silvie"; mcti_advanced_coin_enabled = (paramsarray select 6); // 0 | 1 publicVariable "mcti_advanced_coin_enabled"; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [] execVM "mca_players_init_s.sqf"; distanceToGeneratorMax = 100; publicVariable "distanceToGeneratorMax"; mcti_mash_deployPause = 90; // interval between next deploy publicVariable "mcti_mash_deployPause"; mcti_barracks_deployPause = 300; // interval between next deploy publicVariable "mcti_barracks_deployPause"; // Resistance Forces ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// mcti_resistance_forces = (paramsarray select 4); if (mcti_resistance_forces == 0) then {mcti_resistance_enabled = FALSE; publicVariable "mcti_resistance_enabled"; }; if (mcti_resistance_forces == 1) then {mcti_resistance_enabled = TRUE; publicVariable "mcti_resistance_enabled"; mcti_resistance_difficulty = 1; publicVariable "mcti_resistance_difficulty";}; if (mcti_resistance_forces == 2) then {mcti_resistance_enabled = TRUE; publicVariable "mcti_resistance_enabled"; mcti_resistance_difficulty = 2; publicVariable "mcti_resistance_difficulty";}; if (mcti_resistance_forces == 3) then {mcti_resistance_enabled = TRUE; publicVariable "mcti_resistance_enabled"; mcti_resistance_difficulty = 3; publicVariable "mcti_resistance_difficulty";}; // Light Vehicles///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// mcti_lightVehicles_RU = [ "TT650_Gue", //moto "UAZ_RU", "UAZ_INS", "UAZ_CDF", //uaz "UAZ_AGS30_RU", "UAZ_AGS30_INS", "UAZ_AGS30_CDF", "UAZ_MG_INS", "UAZ_MG_CDF", "UAZ_SPG9_INS", //armed uaz "Offroad_DSHKM_Gue", "Offroad_SPG9_Gue", "Pickup_PK_GUE", "Offroad_DSHKM_INS", "Pickup_PK_INS", //pickup "GAZ_Vodnik", "GAZ_Vodnik_HMG", "GAZ_Vodnik_MedEvac", //vodnik "Kamaz", "KamazOpen", "Ural_INS", "UralOpen_INS", "Ural_CDF", "UralOpen_CDF", //trucks "Ural_ZU23_CDF", "Ural_ZU23_INS", "Ural_ZU23_Gue", //armed trucks "KamazReammo", "KamazRefuel", "KamazRepair", "UralReammo_INS", "UralRefuel_INS", "UralRepair_INS", "UralReammo_CDF", "UralRefuel_CDF", "UralRepair_CDF", // support trucks "GRAD_RU", "GRAD_CDF", "GRAD_INS", //grad "BTR90", "BTR90_HQ", //BTR "BRDM2_CDF", "BRDM2_ATGM_CDF", "BRDM2_INS", "BRDM2_ATGM_INS", "BRDM2_Gue", "BRDM2_HQ_Gue", //brdm "PBX", "RHIB", "RHIB2Turret" // лодка ]; publicVariable "mcti_lightVehicles_RU"; // |uaz | armed uaz | pickup | vodnik | trucks | armed trucks| support trucks |GRAD |BTR, |BRDM, |PBX mcti_lightVehicleProductionTimes_RU = [60, 120, 120, 120, 150, 150, 150, 150, 150, 150, 180, 180, 180, 180, 180, 200, 200, 190, 180, 170, 180, 170, 180, 170, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 360, 360, 360, 360, 360, 300, 320, 300, 320, 300, 310, 60, 180, 180]; publicVariable "mcti_lightVehicleProductionTimes_RU"; ///////////////////////////////////////////////// |uaz | armed uaz | pickup | vodnik |trucks | armed trucks|support trucks |GRAD |BTR |BRDM |PBX mcti_lightVehiclePrices_RU = [100, 200, 200, 200, 400, 400, 400, 300, 300, 400, 350, 450, 350, 350, 350, 500, 550, 400, 400, 400, 400, 400, 400, 400, 800, 800, 800, 500, 500, 500, 500, 500, 500, 500, 500, 500, 1200, 1200, 1200, 900, 950, 650, 900, 650, 900, 650, 675, 100, 600, 700]; publicVariable "mcti_lightVehiclePrices_RU"; mcti_lightVehicleNames_RU = [ "Motorcycle", //moto "UAZ", "UAZ [Insurgents]", "UAZ [CDF]", //uaz "UAZ (AGS-30)", "UAZ (AGS-30) [Insurgents]", "UAZ (AGS-30) [CDF]", "UAZ (DShKM) [Insurgents]", "UAZ (DShKM) [CDF]", "UAZ (SPG-9) [Insurgents]", //armed uaz "Offroad (DShKM) [Guerillas]", "Offroad (SPG-9) [Guerillas]", "Pickup (PK) [Guerillas]", "Offroad (DShKM) [Insurgents]", "Pickup (PK) [Insurgents]", //pickup "GAZ Vodnik (2xPK)", "GAZ Vodnik (BPPU)", "GAZ Vodnik (Ambulance)", //vodnik "KamAZ", "KamAZ (Open)", "Ural [Insurgents]", "Ural (Open) [Insurgents]", "Ural [CDF]", "Ural (Open) [CDF]", //trucks "Ural (ZU23) [CDF]", "Ural (ZU23) [Insurgents]", "Ural (ZU23) [Guerillas]", //armed trucks "KamAZ (Ammunition)", "KamAZ (Fuel)", "KamAZ (Repair)", "Ural (Ammunition) [Insurgents]", "Ural (Fuel) [Insurgents]", "Ural (Repair) [Insurgents]", "Ural (Ammunition) [CDF]", "Ural (Fuel) [CDF]", "Ural (Repair) [CDF]", // support trucks "GRAD", "BM21 Grad [CDF]", "BM21 Grad [Insurgents]", //grad "BTR-90", "BTR-90 (HQ)", //btr "BRDM-2 [CDF]", "BRDM-2 (ATGM) [CDF]", "BRDM-2 [Insurgents]", "BRDM-2 (ATGM) [Insurgents]", "BRDM-2 [Guerillas]", "BRDM-2 (HQ) [Guerillas]", "PBX (Boat)", "RHIB", "RHIB (Mk19)" // лодка ]; publicVariable "mcti_lightVehicleNames_RU"; ///////////////////////////////////////////////// ///////////////////////////////////////////////// ///////////////////////////////////////////////// mcti_lightVehicles_US = [ "M1030", //moto "HMMWV", "HMMWV_M2", "HMMWV_Armored", "HMMWV_MK19", "HMMWV_TOW", "HMMWV_Avenger", "HMMWV_Ambulance", "Offroad_DSHKM_Gue", "Offroad_SPG9_Gue", "Pickup_PK_GUE", "Offroad_DSHKM_INS", "Pickup_PK_INS", //pickup "MTVR", "Ural_ZU23_CDF", "Ural_ZU23_INS", "Ural_ZU23_Gue", "MtvrReammo", "MtvrRefuel", "MtvrRepair", "LAV-25", "LAV25_HQ","MLRS", "Zodiac", "RHIB", "RHIB2Turret" ]; publicVariable "mcti_lightVehicles_US"; // |offroad |mtvr |lav mcti_lightVehicleProductionTimes_US = [60, 200, 200, 210, 200, 200, 240, 190, 180, 180, 180, 180, 180, 180, 240, 240, 240, 240, 240, 240, 360, 360, 360, 60, 180, 180 ]; publicVariable "mcti_lightVehicleProductionTimes_US"; ///////////////////////////////////////////////// mcti_lightVehiclePrices_US = [100, 400, 500, 600, 600, 600, 550, 400, 350, 450, 350, 350, 350, 400, 800, 800, 800, 500, 500, 500, 900, 950, 1200, 100, 600, 700 ]; publicVariable "mcti_lightVehiclePrices_US"; mcti_lightVehicleNames_US = [ "Motorcycle", //moto "HMMWV", "HMMWV (M2) ", "HMMWV (M240)", "HMMWV (Mk19)", "HMMWV (TOW)", "M1097 Avenger", "HMMWV Ambulance", "Offroad (DShKM) [Guerillas]", "Offroad (SPG-9) [Guerillas]", "Pickup (PK) [Guerillas]", "Offroad (DShKM) [Insurgents]", "Pickup (PK) [Insurgents]", //pickup "MTVR", "Ural (ZU23) [CDF]", "Ural (ZU23) [Insurgents]", "Ural (ZU23) [Guerillas]", "MTVR Ammunition", "MTVR Fuel", "MtvrRepair", "LAV-25", "LAV25 (HQ)", "M270 MLRS", "CRRC (Boat)", "RHIB", "RHIB (Mk19)" ]; publicVariable "mcti_lightVehicleNames_US"; // Heavy Vehicles///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// mcti_heavyVehicles_RU = [ "BMP2_CDF", "BMP2_HQ_CDF", "BMP2_Ambul_CDF", "BMP2_Ambul_INS", "BMP2_INS", "BMP2_HQ_INS", "BMP2_Gue", "BMP3", "T72_RU", "T72_CDF", "T72_Gue", "T90", "ZSU_CDF", "ZSU_INS", "2S6M_Tunguska" ]; publicVariable "mcti_heavyVehicles_RU"; mcti_heavyVehicleProductionTimes_RU = [ 420, 420, 360, 360, 420, 420, 420, 480, 500, 500, 500, 540, 420, 420, 480 ]; publicVariable "mcti_heavyVehicleProductionTimes_RU"; mcti_heavyVehiclePrices_RU = [ 2000, 2000, 1500, 1500, 2000, 2000, 2000, 2900, 4000, 4000, 4000, 6000, 4000, 4000, 5000 ]; publicVariable "mcti_heavyVehiclePrices_RU"; mcti_heavyVehicleNames_RU = [ "BMP-2 [CDF]", "BMP-2 (HQ) [CDF]", "BMP-2 (Ambulance) [CDF]", "BMP-2 (Ambulance) [Insurgents]", "BMP-2 [Insurgents]", "BMP-2 (HQ) [Insurgents]", "BMP-2 [Guerillas]", "BMP-3", "T-72", "T-72 [CDF]", "T-72 [Guerillas]", "T-90", "ZSU-23 Shilka [CDF]", "ZSU-23 Shilka [Insurgents]", "2S6M Tunguska" ]; publicVariable "mcti_heavyVehicleNames_RU"; ///////////////////////////////////////////////// mcti_heavyVehicles_US = [ "AAV", "M1A1", "M1A2_TUSK_MG" ]; publicVariable "mcti_heavyVehicles_US"; mcti_heavyVehicleProductionTimes_US = [ 480, 540, 600 ]; publicVariable "mcti_heavyVehicleProductionTimes_US"; mcti_heavyVehiclePrices_US = [ 2900, 6000, 8000 ]; publicVariable "mcti_heavyVehiclePrices_US"; mcti_heavyVehicleNames_US = [ "AAVP7A1", "M1A1", "M1A2 TUSK" ]; publicVariable "mcti_heavyVehicleNames_US"; // Aircrafts ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// mcti_aircrafts_RU = [ "Mi17_Civilian", "Mi17_CDF", "Mi17_medevac_RU", "Mi17_medevac_CDF", "Mi17_Ins", "Mi17_rockets_RU", "Mi24_P", "Mi24_V", "Mi24_D", "Ka52", "Ka52Black", "Su25_CDF", "Su25_Ins", "Su39", "Su34" ]; publicVariable "mcti_aircrafts_RU"; mcti_aircraftProductionTimes_RU = [ 500, 500, 500, 500, 500, 540, 600, 600, 600, 720, 720, 720, 720, 720, 650 ]; publicVariable "mcti_aircraftProductionTimes_RU"; mcti_aircraftPrices_RU = [ 4800, 4800, 5000, 5000, 5000, 14700, 19200, 18800, 18000, 29000, 29000, 30200, 30200, 30200, 26000 ]; publicVariable "mcti_aircraftPrices_RU"; mcti_aircraftNames_RU = [ "Mi-17 (Civilian)", "Mi-17 [CDF]", "Mi-17-IVA Ambulance", "Mi-8MT Ambulance [CDF]", "Mi-8MT [INS]", "Mi-8MTV-3", "Mi-24P", "Mi-24V", "Mi-24D [CDF]", "Ka-52", "Ka-52 Black", "Su-25 [CDF]", "Su-25 [INS]", "Su-25", "Su-34" ]; publicVariable "mcti_aircraftNames_RU"; ///////////////////////////////////////////////// mcti_aircrafts_US = [ "MH60S", "UH1Y", "MV22", "C130J", "AH1Z", "F35B", "AV8B2", "AV8B", "A10" ]; publicVariable "mcti_aircrafts_US"; mcti_aircraftProductionTimes_US = [ 500, 500, 640, 720, 660, 720, 720, 720, 720 ]; publicVariable "mcti_aircraftProductionTimes_US"; mcti_aircraftPrices_US = [ 5000, 8200, 10200, 12000, 25600, 28700, 31000, 33000, 34800 ]; publicVariable "mcti_aircraftPrices_US"; mcti_aircraftNames_US = [ "MH-60S", "UH-1Y", "MV-22", "C-130J", "AH-1Z", "F-35B", "AV-8B", "AV-8B (LGB)", "A-10" ]; publicVariable "mcti_aircraftNames_US"; //medVeh mcti_medVeh_RU = ["GAZ_Vodnik_MedEvac", "Mi17_medevac_RU", "Mi17_medevac_CDF", "BMP2_Ambul_CDF", "BMP2_Ambul_INS"]; publicVariable "mcti_medVeh_RU"; mcti_medVeh_US = ["HMMWV_Ambulance", "MH60S"]; publicVariable "mcti_medVeh_US"; // Town Markers mcti_town_sizes = [3, 2, 4.5, 8, 0.5, 4.5, 4.5, 3, 1, 4, 2, 2, 2, 3, 2, 2, 1, 3, 4.5, 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 3, 2, 4, 4, 2, 4, 2, 3, 4, 4, 2, 3, 2, 4, 2, 4, 4, 1, 3, 3, 2, 2, 4, 4, 3]; publicVariable "mcti_town_sizes"; mcti_flag_owners = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; //0-res, 1-ru, 2-us; publicVariable "mcti_flag_owners"; mcti_town_markerCoords = [ [ 1902.58 , 2235.05 ], [ 3654.74 , 2464.76 ], [ 4546.7 , 2480.15 ], [ 6750.96 , 2613.2 ], [ 8069.41 , 3381.79 ], [ 10195.3 , 1804.33 ], [ 10558.6 , 2336.89 ], [ 12099 , 3526.89 ], [ 12877.4 , 4451.04 ], [ 13424.1 , 6188.17 ], [ 11239.3 , 5440.22 ], [ 10138.3 , 5502.37 ], [ 9179.25 , 3896.35 ], [ 7562.1 , 5171.35 ], [ 5858.57 , 4700.71 ], [ 4445.24 , 4607.51 ], [ 3326.42 , 3922.65 ], [ 1680.19 , 3846.18 ], [ 2786.68 , 5294.78 ], [ 3412.87 , 4939.43 ], [ 4897.16 , 5606.73 ], [ 2518.46 , 6349.52 ], [ 4765.02 , 6804.88 ], [ 6548.42 , 6078.28 ], [ 8504.32 , 6656.65 ], [ 9627.89 , 6550.11 ], [ 11268.8 , 6579.27 ], [ 12142.4 , 7279.53 ], [ 12963.4 , 8100.11 ], [ 10693 , 8025.52 ], [ 7119.37 , 7729.18 ], [ 6199.26 , 7704.85 ], [ 3110.19 , 7963.57 ], [ 1970.3 , 7310.13 ], [ 3846.53 , 8883.39 ], [ 5338.55 , 8617.06 ], [ 9587 , 8824.67 ], [ 12000.7 , 9062.06 ], [ 12879.3 , 9913.51 ], [ 10362.9 , 9833.04 ], [ 5996.81 , 10308.3 ], [ 2763.07 , 9930.68 ], [ 4806.77 , 10293.9 ], [ 12321.8 , 10761.8 ], [ 11154.9 , 12302.2 ], [ 12033.2 , 12630.6 ], [ 13376.8 , 12887.1 ], [ 8635.02 , 11890.3 ], [ 6935.11 , 11438.4 ], [ 4950.17 , 12560.1 ], [ 4470.23 , 6423.88 ], [ 12326.3 , 9520.95 ], [ 13054 , 7092.14 ], [ 3707.85 , 5970.27 ] ]; publicVariable "mcti_town_markerCoords"; mcti_towns = []; // тут хран€тс€ имена маркеров-городов типа "twn_0", "twn_1", ... [] execVM "mca_townMarkers_init.sqf"; mcti_towns_east = 0; publicVariable "mcti_towns_east"; mcti_towns_west = 0; publicVariable "mcti_towns_west"; // massa = sum of koefficients (multipliers) of all towns, // massa * base_income = total income mcti_base_income = 80; publicVariable "mcti_base_income"; // every <income_period> seconds income is gained mcti_income_period = 60; publicVariable "mcti_income_period"; mcti_massa_east = 0; publicVariable "mcti_massa_east"; mcti_massa_west = 0; publicVariable "mcti_massa_west"; [] execVM "mca_hq_init.sqf"; //silvie if (mcti_param_silvie == 1) then { [] execVM "mca_silvie.sqf"; }; // Starting Money if (mcti_param_startingMoney == 0) then { mcti_money_east = 3500; mcti_money_west = 3500; }; if (mcti_param_startingMoney == 1) then { mcti_money_east = 7500; mcti_money_west = 7500; }; if (mcti_param_startingMoney == 2) then { mcti_money_east = 17500; mcti_money_west = 17500; }; publicVariable "mcti_money_east"; publicVariable "mcti_money_west"; [] execVM "mca_income.sqf"; /////////////////////////////////////////////////////////////////////////////////////////////////////// // barracks mcti_barracks_ru = []; publicVariable "mcti_barracks_ru"; mcti_barracks_us = []; publicVariable "mcti_barracks_us"; // lightFactories mcti_lightFactories_ru = []; publicVariable "mcti_lightFactories_ru"; mcti_lightFactories_us = []; publicVariable "mcti_lightFactories_us"; // heavyFactories mcti_heavyFactories_ru = []; publicVariable "mcti_heavyFactories_ru"; mcti_heavyFactories_us = []; publicVariable "mcti_heavyFactories_us"; // airFactories mcti_airFactories_ru = []; publicVariable "mcti_airFactories_ru"; mcti_airFactories_us = []; publicVariable "mcti_airFactories_us"; // servicePoints mcti_servicePoints_ru = []; publicVariable "mcti_servicePoints_ru"; mcti_servicePoints_us = []; publicVariable "mcti_servicePoints_us"; // radioTerminals mcti_radioTerminals_ru = []; publicVariable "mcti_radioTerminals_ru"; mcti_radioTerminal_Enabled_ru = FALSE; publicVariable "mcti_radioTerminal_Enabled_ru"; mcti_radioTerminals_us = []; publicVariable "mcti_radioTerminals_us"; mcti_radioTerminal_Enabled_us = FALSE; publicVariable "mcti_radioTerminal_Enabled_us"; // powerGens mcti_powerGens_ru = []; publicVariable "mcti_powerGens_ru"; mcti_powerGens_us = []; publicVariable "mcti_powerGens_us"; // Field Hospitals mcti_fieldHospitals_ru = []; publicVariable "mcti_fieldHospitals_ru"; mcti_fieldHospitals_us = []; publicVariable "mcti_fieldHospitals_us"; // MASHes mcti_mashes_ru = []; publicVariable "mcti_mashes_ru"; mcti_mashes_us = []; publicVariable "mcti_mashes_us"; // crates mcti_crates_RU = []; publicVariable "mcti_crates_RU"; mcti_crates_US = []; publicVariable "mcti_crates_US"; [] execVM "mca_crates.sqf"; //winner mcti_winner = CIV; publicVariable "mcti_winner"; mcti_flags = []; // массив объектов типа "FlagCarrier" каждого города [] execVM "mca_flags_init_s.sqf"; // Server's Flags (Global Flags) // Resistance [] execVM "mca_resistance_init.sqf"; }; if (not isServer) then { // params ////////////////////////////////////////////////////////////////////////////////////////////////////////// mcti_param_view = (paramsArray select 0); if (mcti_param_view == 0) then {setViewDistance 1000}; if (mcti_param_view == 1) then {setViewDistance 2000}; if (mcti_param_view == 2) then {setViewDistance 3000}; if (mcti_param_view == 3) then {setViewDistance 4000}; if (mcti_param_view == 4) then {setViewDistance 5000}; if (mcti_param_view == 5) then {setViewDistance 6000}; if (mcti_param_view == 6) then {setViewDistance 7000}; if (mcti_param_view == 7) then {setViewDistance 8000}; if (mcti_param_view == 8) then {setViewDistance 9000}; if (mcti_param_view == 9) then {setViewDistance 10000}; mcti_param_grass = (paramsArray select 1); if (mcti_param_grass == 0) then {setTerrainGrid 50}; if (mcti_param_grass == 1) then {setTerrainGrid 25}; if (mcti_param_grass == 2) then {setTerrainGrid 12.5}; if (mcti_param_grass == 3) then {setTerrainGrid 6.25}; if (mcti_param_grass == 4) then {setTerrainGrid 3.125}; mcti_param_environment = (paramsarray select 2); if (mcti_param_environment == 0) then {enableEnvironment true}; if (mcti_param_environment == 1) then {enableEnvironment false}; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (time > 5) then { mcti_JIP = TRUE; } else { mcti_JIP = FALSE; }; execVM "mca_briefing.sqf"; enableRadio TRUE; player setVariable ["BIS_noCoreConversations", true]; enableSaving [false, false]; enableSentences TRUE; enableTeamSwitch FALSE; processInitCommands;//dbg [] execVM "mca_crate_init_JIP.sqf"; [] execVM "mca_flags_init_c.sqf"; // Client's Flags [] execVM "mca_side_markers_resync.sqf"; [] execVM "mca_jip.sqf"; // JIP [] execVM "mca_players_eh.sqf"; // EH for Players [] execVM "mca_hq_eh_c.sqf"; // EH for Players }; // mca_assemblyLine_AFRU.sqf // version 1.1s if (isServer) then { private ["_obj", "_queue", "_newQueue", "_l", "_i", "_product", "_caller", "_nearestGens", "_report", "_nGen", "_nVeh", "_error", "_vehName", "_vehPrice", "_angle", "_newVeh", "_init"]; _obj = _this select 0; // AF, заказавша€ производство _caller = _this select 1; if ((side _caller) == east) then { _report = "Production finished."; _obj setVariable ["busy", TRUE, TRUE]; _queue = _obj getVariable "queue"; _l = count _queue; while { _l > 0 } do { // проверка количества генераторов _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _report = format ["Production Cancelled. Power Generators needed. Maximum distance to generators from building is %1 m.", distanceToGeneratorMax]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // удаление текущего элемента из массива _newQueue = []; for [{_i=1},{_i < _l},{_i=_i+1}] do // со второго эл-та в массиве, _i = 1.._l { _newQueue = _newQueue + [_queue select _i]; }; _obj setVariable ["queue", _newQueue, TRUE]; _product = _queue select 0; _nVeh = mcti_aircrafts_RU find _product; _vehPrice = mcti_aircraftPrices_RU select _nVeh; _vehName = (mcti_aircraftNames_RU select _nVeh); //currentVehicle _obj setVariable ["currentVehicle", _vehName, TRUE]; if ( mcti_money_east < _vehPrice) exitWith { _report = format ["Production Cancelled. Not enough money. Needed %1, but available only %2.", _vehPrice, mcti_money_east]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // перечисление денег на постройку mcti_money_east = mcti_money_east - _vehPrice; publicVariable "mcti_money_east"; // production with updating nGen private ["_currentVolume", "_totalVolume", "_deltaVolume", "_deltaTime"]; // calculating time of production _totalVolume = (mcti_lightVehicleProductionTimes_RU select _nVeh ); _currentVolume = 0; _error = FALSE; while {_currentVolume < _totalVolume} do { _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _obj setVariable ["queue", [], TRUE]; _error = TRUE; _obj setVariable ["currentVehicle", "", TRUE]; }; // экстремальна€ ситуаци€, производство прервано взрывом генераторов _deltaTime = (_totalVolume - _currentVolume) / _nGen; if (_deltaTime > mcti_production_queryInterval) then { sleep mcti_production_queryInterval; _currentVolume = _currentVolume + (mcti_production_queryInterval * _nGen); } else { sleep _deltaTime; _currentVolume = _currentVolume + (_deltaTime * _nGen); }; }; // placing finished product _angle = random (2 * pi); if (not _error) then { _newVeh = _product createVehicle [((position _obj) select 0) + (40 * cos (deg _angle)), ((position _obj) select 1) + (40 * sin (deg _angle))]; // если медичка, то добавл€ем ей действие if (_product in mcti_medVeh_RU) then { _init = format [" this addAction [""Deploy Field Hospital"", ""mca_deploy_fieldHospital.sqf"", [], 0, FALSE]; if (not mcti_JIP) then { this setVariable [""LastDeploy"", (time - mcti_mash_deployPause), TRUE]; }; "]; _newVeh SetVehicleInit _init; ProcessInitCommands; }; _obj setVariable ["currentVehicle", "", TRUE]; }; // размер очереди _queue = _obj getVariable "queue"; _l = count _queue; }; _obj setVariable ["busy", FALSE, TRUE]; //[east,"HQ"] sideChat _report; }; };// mca_assemblyLine_AFUS.sqf // version 1.1s if (isServer) then { private ["_obj", "_queue", "_newQueue", "_l", "_i", "_product", "_caller", "_nearestGens", "_report", "_nGen", "_nVeh", "_error", "_vehName", "_vehPrice", "_angle", "_newVeh", "_init"]; _obj = _this select 0; // AF, заказавша€ производство _caller = _this select 1; if ((side _caller) == west) then { _report = "Production finished."; _obj setVariable ["busy", TRUE, TRUE]; _queue = _obj getVariable "queue"; _l = count _queue; while { _l > 0 } do { // проверка количества генераторов _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _report = format ["Production Cancelled. Power Generators needed. Maximum distance to generators from building is %1 m.", distanceToGeneratorMax]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // удаление текущего элемента из массива _newQueue = []; for [{_i=1},{_i < _l},{_i=_i+1}] do // со второго эл-та в массиве, _i = 1.._l { _newQueue = _newQueue + [_queue select _i]; }; _obj setVariable ["queue", _newQueue, TRUE]; _product = _queue select 0; _nVeh = mcti_aircrafts_US find _product; _vehPrice = mcti_aircraftPrices_US select _nVeh; _vehName = (mcti_aircraftNames_US select _nVeh); //currentVehicle _obj setVariable ["currentVehicle", _vehName, TRUE]; if ( mcti_money_west < _vehPrice) exitWith { _report = format ["Production Cancelled. Not enough money. Needed %1, but available only %2.", _vehPrice, mcti_money_west]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // перечисление денег на постройку mcti_money_west = mcti_money_west - _vehPrice; publicVariable "mcti_money_west"; // production with updating nGen private ["_currentVolume", "_totalVolume", "_deltaVolume", "_deltaTime"]; // calculating time of production _totalVolume = (mcti_lightVehicleProductionTimes_US select _nVeh ); _currentVolume = 0; _error = FALSE; while {_currentVolume < _totalVolume} do { _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _obj setVariable ["queue", [], TRUE]; _error = TRUE; _obj setVariable ["currentVehicle", "", TRUE]; }; // экстремальна€ ситуаци€, производство прервано взрывом генераторов _deltaTime = (_totalVolume - _currentVolume) / _nGen; if (_deltaTime > mcti_production_queryInterval) then { sleep mcti_production_queryInterval; _currentVolume = _currentVolume + (mcti_production_queryInterval * _nGen); } else { sleep _deltaTime; _currentVolume = _currentVolume + (_deltaTime * _nGen); }; }; // placing finished product _angle = random (2 * pi); if (not _error) then { _newVeh = _product createVehicle [((position _obj) select 0) + (40 * cos (deg _angle)), ((position _obj) select 1) + (40 * sin (deg _angle))]; // если медичка, то добавл€ем ей действие if (_product in mcti_medVeh_US) then { _init = format [" this addAction [""Deploy Field Hospital"", ""mca_deploy_fieldHospital.sqf"", [], 0, FALSE]; if (not mcti_JIP) then { this setVariable [""LastDeploy"", (time - mcti_mash_deployPause), TRUE]; }; "]; _newVeh SetVehicleInit _init; ProcessInitCommands; }; _obj setVariable ["currentVehicle", "", TRUE]; }; // размер очереди _queue = _obj getVariable "queue"; _l = count _queue; }; _obj setVariable ["busy", FALSE, TRUE]; //[west,"HQ"] sideChat _report; }; };// mca_assemblyLine_HFRU.sqf // version 1.1s if (isServer) then { private ["_obj", "_queue", "_newQueue", "_l", "_i", "_product", "_caller", "_nearestGens", "_report", "_nGen", "_nVeh", "_error", "_vehName", "_vehPrice", "_angle", "_newVeh", "_init"]; _obj = _this select 0; _caller = _this select 1; if ((side _caller) == east) then { _report = "Production finished."; _obj setVariable ["busy", TRUE, TRUE]; _queue = _obj getVariable "queue"; _l = count _queue; while { _l > 0 } do { // проверка количества генераторов _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _report = format ["Production Cancelled. Power Generators needed. Maximum distance to generators from building is %1 m.", distanceToGeneratorMax]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // удаление текущего элемента из массива _newQueue = []; for [{_i=1},{_i < _l},{_i=_i+1}] do // со второго эл-та в массиве, _i = 1.._l { _newQueue = _newQueue + [_queue select _i]; }; _obj setVariable ["queue", _newQueue, TRUE]; _product = _queue select 0; _nVeh = mcti_heavyVehicles_RU find _product; _vehPrice = mcti_heavyVehiclePrices_RU select _nVeh; _vehName = (mcti_heavyVehicleNames_RU select _nVeh); //currentVehicle _obj setVariable ["currentVehicle", _vehName, TRUE]; if ( mcti_money_east < _vehPrice) exitWith { _report = format ["Production Cancelled. Not enough money. Needed %1, but available only %2.", _vehPrice, mcti_money_east]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // перечисление денег на постройку mcti_money_east = mcti_money_east - _vehPrice; publicVariable "mcti_money_east"; // production with updating nGen private ["_currentVolume", "_totalVolume", "_deltaVolume", "_deltaTime"]; // calculating time of production _totalVolume = (mcti_lightVehicleProductionTimes_RU select _nVeh ); _currentVolume = 0; _error = FALSE; while {_currentVolume < _totalVolume} do { _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _obj setVariable ["queue", [], TRUE]; _error = TRUE; _obj setVariable ["currentVehicle", "", TRUE]; }; // экстремальна€ ситуаци€, производство прервано взрывом генераторов _deltaTime = (_totalVolume - _currentVolume) / _nGen; if (_deltaTime > mcti_production_queryInterval) then { sleep mcti_production_queryInterval; _currentVolume = _currentVolume + (mcti_production_queryInterval * _nGen); } else { sleep _deltaTime; _currentVolume = _currentVolume + (_deltaTime * _nGen); }; }; // placing finished product _angle = random (2 * pi); if (not _error) then { _newVeh = _product createVehicle [((position _obj) select 0) + (20 * cos (deg _angle)), ((position _obj) select 1) + (20 * sin (deg _angle))]; // если медичка, то добавл€ем ей действие if (_product in mcti_medVeh_RU) then { _init = format [" this addAction [""Deploy Field Hospital"", ""mca_deploy_fieldHospital.sqf"", [], 0, FALSE]; if (not mcti_JIP) then { this setVariable [""LastDeploy"", (time - mcti_mash_deployPause), TRUE]; }; "]; _newVeh SetVehicleInit _init; ProcessInitCommands; }; _obj setVariable ["currentVehicle", "", TRUE]; }; // размер очереди _queue = _obj getVariable "queue"; _l = count _queue; }; _obj setVariable ["busy", FALSE, TRUE]; //[east,"HQ"] sideChat _report; }; }; // isServer// mca_assemblyLine_HFUS.sqf // version 1.1s if (isServer) then { private ["_obj", "_queue", "_newQueue", "_l", "_i", "_product", "_caller", "_nearestGens", "_report", "_nGen", "_nVeh", "_error", "_vehName", "_vehPrice", "_angle", "_newVeh", "_init"]; _obj = _this select 0; _caller = _this select 1; if ((side _caller) == west) then { _report = "Production finished."; _obj setVariable ["busy", TRUE, TRUE]; _queue = _obj getVariable "queue"; _l = count _queue; while { _l > 0 } do { // проверка количества генераторов _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _report = format ["Production Cancelled. Power Generators needed. Maximum distance to generators from building is %1 m.", distanceToGeneratorMax]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // удаление текущего элемента из массива _newQueue = []; for [{_i=1},{_i < _l},{_i=_i+1}] do // со второго эл-та в массиве, _i = 1.._l { _newQueue = _newQueue + [_queue select _i]; }; _obj setVariable ["queue", _newQueue, TRUE]; _product = _queue select 0; _nVeh = mcti_heavyVehicles_US find _product; _vehPrice = mcti_heavyVehiclePrices_US select _nVeh; _vehName = (mcti_heavyVehicleNames_US select _nVeh); //currentVehicle _obj setVariable ["currentVehicle", _vehName, TRUE]; if ( mcti_money_west < _vehPrice) exitWith { _report = format ["Production Cancelled. Not enough money. Needed %1, but available only %2.", _vehPrice, mcti_money_west]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // перечисление денег на постройку mcti_money_west = mcti_money_west - _vehPrice; publicVariable "mcti_money_west"; // production with updating nGen private ["_currentVolume", "_totalVolume", "_deltaVolume", "_deltaTime"]; // calculating time of production _totalVolume = (mcti_lightVehicleProductionTimes_US select _nVeh ); _currentVolume = 0; _error = FALSE; while {_currentVolume < _totalVolume} do { _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _obj setVariable ["queue", [], TRUE]; _error = TRUE; _obj setVariable ["currentVehicle", "", TRUE]; }; // экстремальна€ ситуаци€, производство прервано взрывом генераторов _deltaTime = (_totalVolume - _currentVolume) / _nGen; if (_deltaTime > mcti_production_queryInterval) then { sleep mcti_production_queryInterval; _currentVolume = _currentVolume + (mcti_production_queryInterval * _nGen); } else { sleep _deltaTime; _currentVolume = _currentVolume + (_deltaTime * _nGen); }; }; // placing finished product _angle = random (2 * pi); if (not _error) then { _newVeh = _product createVehicle [((position _obj) select 0) + (20 * cos (deg _angle)), ((position _obj) select 1) + (20 * sin (deg _angle))]; // если медичка, то добавл€ем ей действие if (_product in mcti_medVeh_US) then { _init = format [" this addAction [""Deploy Field Hospital"", ""mca_deploy_fieldHospital.sqf"", [], 0, FALSE]; if (not mcti_JIP) then { this setVariable [""LastDeploy"", (time - mcti_mash_deployPause), TRUE]; }; "]; _newVeh SetVehicleInit _init; ProcessInitCommands; }; _obj setVariable ["currentVehicle", "", TRUE]; }; // размер очереди _queue = _obj getVariable "queue"; _l = count _queue; }; _obj setVariable ["busy", FALSE, TRUE]; //[west,"HQ"] sideChat _report; }; };// mca_assemblyLine_LFRU.sqf // version 1.1s if (isServer) then { private ["_obj", "_queue", "_newQueue", "_l", "_i", "_product", "_caller", "_nearestGens", "_report", "_nGen", "_nVeh", "_vehName", "_vehPrice", "_angle", "_newVeh", "_init", "_error"]; _obj = _this select 0; // LF, заказавша€ производство _caller = _this select 1; if ((side _caller) == east) then { _report = "Production finished."; _obj setVariable ["busy", TRUE, TRUE]; _queue = _obj getVariable "queue"; _l = count _queue; while { _l > 0 } do { // проверка количества генераторов _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _report = format ["Production Cancelled. Power Generators needed. Maximum distance to generators from building is %1 m.", distanceToGeneratorMax]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // удаление текущего элемента из массива _newQueue = []; for [{_i=1},{_i < _l},{_i=_i+1}] do // со второго эл-та в массиве, _i = 1.._l { _newQueue = _newQueue + [_queue select _i]; }; _obj setVariable ["queue", _newQueue, TRUE]; _product = _queue select 0; _nVeh = mcti_lightVehicles_RU find _product; _vehPrice = mcti_lightVehiclePrices_RU select _nVeh; _vehName = (mcti_lightVehicleNames_RU select _nVeh); //currentVehicle _obj setVariable ["currentVehicle", _vehName, TRUE]; if ( mcti_money_east < _vehPrice) exitWith { _report = format ["Production Cancelled. Not enough money. Needed %1, but available only %2.", _vehPrice, mcti_money_east]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // перечисление денег на постройку mcti_money_east = mcti_money_east - _vehPrice; publicVariable "mcti_money_east"; // production with updating nGen private ["_currentVolume", "_totalVolume", "_deltaVolume", "_deltaTime"]; // calculating time of production _totalVolume = (mcti_lightVehicleProductionTimes_RU select _nVeh ); _currentVolume = 0; _error = FALSE; while {_currentVolume < _totalVolume} do { _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _obj setVariable ["queue", [], TRUE]; _error = TRUE; _obj setVariable ["currentVehicle", "", TRUE]; }; // экстремальна€ ситуаци€, производство прервано взрывом генераторов _deltaTime = (_totalVolume - _currentVolume) / _nGen; if (_deltaTime > mcti_production_queryInterval) then { sleep mcti_production_queryInterval; _currentVolume = _currentVolume + (mcti_production_queryInterval * _nGen); } else { sleep _deltaTime; _currentVolume = _currentVolume + (_deltaTime * _nGen); }; }; // placing finished product _angle = random (2 * pi); if (not _error) then { _newVeh = _product createVehicle [((position _obj) select 0) + (15 * cos (deg _angle)), ((position _obj) select 1) + (15 * sin (deg _angle))]; // если медичка, то добавл€ем ей действие if (_product in mcti_medVeh_RU) then { _init = format [" this addAction [""Deploy Field Hospital"", ""mca_deploy_fieldHospital.sqf"", [], 0, FALSE]; if (not mcti_JIP) then { this setVariable [""LastDeploy"", (time - mcti_mash_deployPause), TRUE]; }; "]; _newVeh SetVehicleInit _init; ProcessInitCommands; }; _obj setVariable ["currentVehicle", "", TRUE]; }; // размер очереди _queue = _obj getVariable "queue"; _l = count _queue; }; _obj setVariable ["busy", FALSE, TRUE]; //[east,"HQ"] sideChat _report; }; }; //isServer// mca_assemblyLine_LFUS.sqf // version 1.1s if (isServer) then { private ["_obj", "_queue", "_newQueue", "_l", "_i", "_product", "_caller", "_nearestGens", "_report", "_nGen", "_nVeh", "_error", "_vehName", "_vehPrice", "_angle", "_newVeh", "_init"]; _obj = _this select 0; // LF, заказавша€ производство _caller = _this select 1; if ((side _caller) == west) then { _report = "Production finished."; _obj setVariable ["busy", TRUE, TRUE]; _queue = _obj getVariable "queue"; _l = count _queue; while { _l > 0 } do { // проверка количества генераторов _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _report = format ["Production Cancelled. Power Generators needed. Maximum distance to generators from building is %1 m.", distanceToGeneratorMax]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // удаление текущего элемента из массива _newQueue = []; for [{_i=1},{_i < _l},{_i=_i+1}] do // со второго эл-та в массиве, _i = 1.._l { _newQueue = _newQueue + [_queue select _i]; }; _obj setVariable ["queue", _newQueue, TRUE]; _product = _queue select 0; _nVeh = mcti_lightVehicles_US find _product; _vehPrice = mcti_lightVehiclePrices_US select _nVeh; _vehName = (mcti_lightVehicleNames_US select _nVeh); //currentVehicle _obj setVariable ["currentVehicle", _vehName, TRUE]; if ( mcti_money_west < _vehPrice) exitWith { _report = format ["Production Cancelled. Not enough money. Needed %1, but available only %2.", _vehPrice, mcti_money_west]; _obj setVariable ["queue", [], TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; }; // перечисление денег на постройку mcti_money_west = mcti_money_west - _vehPrice; publicVariable "mcti_money_west"; // production with updating nGen private ["_currentVolume", "_totalVolume", "_deltaVolume", "_deltaTime"]; // calculating time of production _totalVolume = (mcti_lightVehicleProductionTimes_US select _nVeh ); _currentVolume = 0; _error = FALSE; while {_currentVolume < _totalVolume} do { _nearestGens = nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; _nGen = count _nearestGens; if ( _nGen == 0) exitWith { _obj setVariable ["queue", [], TRUE]; _error = TRUE; _obj setVariable ["currentVehicle", "", TRUE]; }; // экстремальна€ ситуаци€, производство прервано взрывом генераторов _deltaTime = (_totalVolume - _currentVolume) / _nGen; if (_deltaTime > mcti_production_queryInterval) then { sleep mcti_production_queryInterval; _currentVolume = _currentVolume + (mcti_production_queryInterval * _nGen); } else { sleep _deltaTime; _currentVolume = _currentVolume + (_deltaTime * _nGen); }; }; // placing finished product _angle = random (2 * pi); if (not _error) then { _newVeh = _product createVehicle [((position _obj) select 0) + (15 * cos (deg _angle)), ((position _obj) select 1) + (15 * sin (deg _angle))]; // если медичка, то добавл€ем ей действие if (_product in mcti_medVeh_US) then { _init = format [" this addAction [""Deploy Field Hospital"", ""mca_deploy_fieldHospital.sqf"", [], 0, FALSE]; if (not mcti_JIP) then { this setVariable [""LastDeploy"", (time - mcti_mash_deployPause), TRUE]; }; "]; _newVeh SetVehicleInit _init; ProcessInitCommands; }; _obj setVariable ["currentVehicle", "", TRUE]; }; // размер очереди _queue = _obj getVariable "queue"; _l = count _queue; }; _obj setVariable ["busy", FALSE, TRUE]; //[west,"HQ"] sideChat _report; }; }; //isServer// mcti_briefing.sqf // version 1.0 player createDiaryRecord ["Diary", ["Restarting Game", "<br/>In order to restart game, that is running or has ended when one side has won the match, use <b>#reassign</b> command. <br/><b>#restart</b> command doesn't work with mission's scripts, be aware! "]]; player createDiaryRecord ["Diary", ["Technical Aspects", "<br/>1. Vehicles are free to steal. No locking like in Warfare. You can make fun of enemies with it when in veteran mode.<br/>2. List of available buildings for commander is more than enough.<br/>3. Artillery module and building with repair trucks don't work yet.<br/>4. For dedicated server only.<br/><br/>MCTI R2 40vs40 (version 0.2)<br/>More Information at BIS forum -> http://forums.bistudio.com/showthread.php?t=93726<br/><br/>(C) McArcher, 2009. Contacts: mcarcher@mail.ru"]]; player createDiaryRecord ["Diary", ["Game Rules", "<br/>1. Capturing areas<br/><br/>Each area can be captured. You need to get close to the area's flag and raise your flag there. Each captured area gives money. Amounts of money depend on area's size and strategical importamce. Huge towns and airports are good examples of profitable zones. Due to separate communication between resistance forces in areas, all the information about captured areas is available to enemies. So be carefull, when capturing zone - the enemy will soon learn that you have captured it.<br/><br/><br/>2. Commanding<br/><br/>Each side has its commander. This commander always takes the first slot in players slots. Only the commander has an ability to use MHQ for building bases. Once MHQ is down, you cannot build anymore.<br/><br/><br/>3. Buildings<br/><br/>There are common types of base buildigs in game - Barracks, where you can take weapons and ammo, Light and Heavy factories for light and heavy armored vehicles, Aircraft factory, Vehicle Service Point and others.<br/><br/><br/>4. Radio communication<br/><br/>The radio terminal, if built, enables base buildings and field hospital markers on map. Witout Radio Terminal you won't be able to respawn in field hospitals.<br/><br/><br/>5. Respawn<br/><br/>After death you can respawn either to MHQ or Field Hospitals, if radio communication enabled. Field Hospitals can be built not only by commander, but also some small tents can be built using vehicles of medical support.<br/><br/><br/>6. Money<br/><br/>All the money, your side has, are shared between all team members. Of course, you can spend them all, but you should first think about other players and your whole team. The teamplay is the first thing in tis game.<br/><br/><br/>7. Team Spirit<br/><br/>This mission is based on COOP principles, like many other missions for Arma (for example, Evolution) - there are no computer-controlled AIs in your team, only teamplay matters. Moreover, it allows to decrease lags and low FPS because of AIs in huge numbers. This is the biggest difference from original MFCTI.<br/><br/><br/>8. Repair trucks.<br/><br/>Players are able to build some not complicated objects with repair trucks.<br/><br/><br/>9. Base Maintainance and Upgrades<br/><br/>The upgrades of base are represented by Power Generators. Without energy your factories won't be able to produce vehicles. More genereators you have close to factories, the less lead time is. Maximum distance for generator from factory is 100m. But, be careful, big gatherings of generators can be an easy aim for enemies.<br/>Note: Building menu is available after you get out of vehicle. When you get in it, menu disappears."]]; player createDiaryRecord ["Diary", ["Game Objective", "<br/>First of all, CTI stands for ""Capture The Island"". The action takes place across the whole island and the battles of great scales are possible in CTI.<br/><br/>Two groups of players - EAST SIDE and WEST SIDE are the main characters. They fight for areas of the island. Each area, that can be captured, is marked on map with a circle.<br/><br/>The objective is to defeat the enemy, destroying its Mobile Headquarters (MHQ) and all Field Hospitals, including mobile ones."]]; player createDiaryRecord ["Diary", ["Introduction", "<br/>Welcome to MCTI<br/><br/><br/>What is MCTI and is it a real oldschool CTI?<br/><br/>The history of CTI game mode is rather old, comparing to this game's life. It was first introduced in MFCTI by Mike Melvin in Operation Flashpoint. Since that time, it didn't stand still. Some new MODs to that CTI appeared, like crCTI and others.<br/><br/>The goal of this mission is to remember and maintain oldschool OFP's traditons of CTI with the upgraded engine of Arma 2.<br/><br/>Of course, MCTI is not equal to original CTI, but the main features have been saved and new interesting ones - introduced.<br/><br/>The main feature of MCTI is its simplicity. It was made with least scripting possible to decrease lags and raise FPS."]]; // mca_buy_aircraft.sqf // version 1.1c // addAction script receives: [target, caller, ID, (arguments)] if (not isServer) then { private ["_caller"]; _caller = _this select 1; if (player == _caller) then { private ["_queue", "_obj", "_busy", "_s", "_varName"]; _obj = _this select 0; if ((side player) == east) then { _queue = []; // tmp_obj передаЄт объект диалогу (не воспринимает локальные переменные) tmp_obj = _obj; createDialog "mca_buy_AFRU"; // добавл€ем список доступных покупок { lbAdd [41, _x] ; } forEach mcti_aircraftNames_RU; waitUntil { !dialog }; _queue = _obj getVariable "queue"; // считываем из здани€ очередь юнитов, которую нужно обработать. // запуск скрипта производства юнитов, если онне был запущен! _busy = _obj getVariable "busy"; if ( (not _busy) and ((count _queue) > 0 ) ) then { //[_obj, _caller] execVM "mca_assemblyLine_LFRU.sqf"; // run on client // ["nul = [_obj, _caller] execVM 'mca_assemblyLine_LFRU.sqf'"] execVM "RoS.sqf"; // run on SERVER ! _varName = "TemporaryObject"; _obj setVehicleVarName _varName; call compile format ["%1=_obj; publicVariable ""%1"";", _varName]; _s = format [" [""nul = [%1, %2] execVM """"mca_assemblyLine_AFRU.sqf""""; ""] execVM ""RoS.sqf""; ", _varName, _caller]; call compile _s; }; }; //east if ((side player) == west) then { _queue = []; // tmp_obj передаЄт объект диалогу (не воспринимает локальные переменные) tmp_obj = _obj; createDialog "mca_buy_AFUS"; // добавл€ем список доступных покупок { lbAdd [31, _x] ; } forEach mcti_aircraftNames_US; waitUntil { !dialog }; _queue = _obj getVariable "queue"; // считываем из здани€ очередь юнитов, которую нужно обработать. // запуск скрипта производства юнитов, если онне был запущен! _busy = _obj getVariable "busy"; if ( (not _busy) and ((count _queue) > 0 ) ) then { //[_obj, _caller] execVM "mca_assemblyLine_LFRU.sqf"; // run on client // ["nul = [_obj, _caller] execVM 'mca_assemblyLine_LFRU.sqf'"] execVM "RoS.sqf"; // run on SERVER ! _varName = "TemporaryObject"; _obj setVehicleVarName _varName; call compile format ["%1=_obj; publicVariable ""%1"";", _varName]; _s = format [" [""nul = [%1, %2] execVM """"mca_assemblyLine_AFUS.sqf""""; ""] execVM ""RoS.sqf""; ", _varName, _caller]; call compile _s; }; }; //west }; // _caller }; // not isServer// mca_buy_heavyVehicle.sqf // version 1.1c // addAction script receives: [target, caller, ID, (arguments)] if (not isServer) then { private ["_caller"]; _caller = _this select 1; if (player == _caller) then { private ["_queue", "_obj", "_busy", "_s", "_varName"]; _obj = _this select 0; if ((side player) == east) then { _queue = []; // tmp_obj передаЄт объект диалогу (не воспринимает локальные переменные) tmp_obj = _obj; createDialog "mca_buy_HFRU"; // добавл€ем список доступных покупок { lbAdd [11, _x] ; } forEach mcti_heavyVehicleNames_RU; waitUntil { !dialog }; _queue = _obj getVariable "queue"; // считываем из здани€ очередь юнитов, которую нужно обработать. // запуск скрипта производства юнитов, если онне был запущен! _busy = _obj getVariable "busy"; if ( (not _busy) and ((count _queue) > 0 ) ) then { //[_obj, _caller] execVM "mca_assemblyLine_LFRU.sqf"; // run on client // ["nul = [_obj, _caller] execVM 'mca_assemblyLine_LFRU.sqf'"] execVM "RoS.sqf"; // run on SERVER ! _varName = "TemporaryObject"; _obj setVehicleVarName _varName; call compile format ["%1=_obj; publicVariable ""%1"";", _varName]; _s = format [" [""nul = [%1, %2] execVM """"mca_assemblyLine_HFRU.sqf""""; ""] execVM ""RoS.sqf""; ", _varName, _caller]; call compile _s; }; }; //east if ((side player) == west) then { _queue = []; // tmp_obj передаЄт объект диалогу (не воспринимает локальные переменные) tmp_obj = _obj; createDialog "mca_buy_HFUS"; // добавл€ем список доступных покупок { lbAdd [21, _x] ; } forEach mcti_heavyVehicleNames_US; waitUntil { !dialog }; _queue = _obj getVariable "queue"; // считываем из здани€ очередь юнитов, которую нужно обработать. // запуск скрипта производства юнитов, если онне был запущен! _busy = _obj getVariable "busy"; if ( (not _busy) and ((count _queue) > 0 ) ) then { //[_obj, _caller] execVM "mca_assemblyLine_LFRU.sqf"; // run on client // ["nul = [_obj, _caller] execVM 'mca_assemblyLine_LFRU.sqf'"] execVM "RoS.sqf"; // run on SERVER ! _varName = "TemporaryObject"; _obj setVehicleVarName _varName; call compile format ["%1=_obj; publicVariable ""%1"";", _varName]; _s = format [" [""nul = [%1, %2] execVM """"mca_assemblyLine_HFUS.sqf""""; ""] execVM ""RoS.sqf""; ", _varName, _caller]; call compile _s; }; }; //west }; //_caller }; // not isServer// mca_buy_lightVehicle.sqf // version 1.1c // addAction script receives: [target, caller, ID, (arguments)] if (not isServer) then { private ["_caller"]; _caller = _this select 1; if (player == _caller) then { private ["_queue", "_obj", "_busy", "_s", "_varName"]; _obj = _this select 0; if ((side player) == east) then { _queue = []; // tmp_obj передаЄт объект диалогу (не воспринимает локальные переменные) tmp_obj = _obj; createDialog "mca_buy_LFRU"; // добавл€ем список доступных покупок { lbAdd [1, _x] ; } forEach mcti_lightVehicleNames_RU; waitUntil { !dialog }; _queue = _obj getVariable "queue"; // считываем из здани€ очередь юнитов, которую нужно обработать. // запуск скрипта производства юнитов, если онне был запущен! _busy = _obj getVariable "busy"; if ( (not _busy) and ((count _queue) > 0 ) ) then { //[_obj, _caller] execVM "mca_assemblyLine_LFRU.sqf"; // run on client // ["nul = [_obj, _caller] execVM 'mca_assemblyLine_LFRU.sqf'"] execVM "RoS.sqf"; // run on SERVER ! _varName = "TemporaryObject"; _obj setVehicleVarName _varName; call compile format ["%1=_obj; publicVariable ""%1"";", _varName]; _s = format [" [""nul = [%1, %2] execVM """"mca_assemblyLine_LFRU.sqf""""; ""] execVM ""RoS.sqf""; ", _varName, _caller]; call compile _s; }; }; //east if ((side player) == west) then { _queue = []; // tmp_obj передаЄт объект диалогу (не воспринимает локальные переменные) tmp_obj = _obj; createDialog "mca_buy_LFUS"; // добавл€ем список доступных покупок { lbAdd [91, _x] ; } forEach mcti_lightVehicleNames_US; waitUntil { !dialog }; _queue = _obj getVariable "queue"; // считываем из здани€ очередь юнитов, которую нужно обработать. // запуск скрипта производства юнитов, если онне был запущен! _busy = _obj getVariable "busy"; if ( (not _busy) and ((count _queue) > 0 ) ) then { //[_obj, _caller] execVM "mca_assemblyLine_LFRU.sqf"; // run on client // ["nul = [_obj, _caller] execVM 'mca_assemblyLine_LFRU.sqf'"] execVM "RoS.sqf"; // run on SERVER ! _varName = "TemporaryObject"; _obj setVehicleVarName _varName; call compile format ["%1=_obj; publicVariable ""%1"";", _varName]; _s = format [" [""nul = [%1, %2] execVM """"mca_assemblyLine_LFUS.sqf""""; ""] execVM ""RoS.sqf""; ", _varName, _caller]; call compile _s; }; }; //west }; // _caller }; //not isServer// mca_capture_area.sqf // version 1.1c // [target, caller, ID, (arguments)] if (not isServer) then { private ["_caller"]; _caller = _this select 1; if (player == _caller) then { private ["_obj", "_id", "_marker", "_pos_1", "_pos_2", "_old_color", "_n", "_i", "_d1", "_d2", "_myNearestEnemy"]; _i = -5; _obj = _this select 0; _id = _this select 2; if (side _caller == east) then { // проверка доступности захвата (пустоты города) _myNearestEnemy = player findNearestEnemy player; //hint format ["NE=%1", _myNearestEnemy];////////// if ( (not (isNull _myNearestEnemy)) and ((player distance _myNearestEnemy) < mcti_town_captureArea) ) exitWith { hint "You must Clear this area from Enemies!" }; // _i - найденный номер нашего города в массиве //changing texture of a flag _obj SetVehicleInit "This setFlagTexture ""ca\data\flag_rus_co.paa"""; ProcessInitCommands; _n = -1; _pos_2 = getPos _obj; { _n = _n + 1; _pos_1 = markerPos _x; // _x _d1 = (_pos_2 select 0) - (_pos_1 select 0); _d1 = abs _d1; _d2 = (_pos_2 select 1) - (_pos_1 select 1); _d2 = abs _d2; if ( (_d1 < 20) and (_d2 < 20)) then { _marker = _x; _i = _n; // _i - номер нашего флага в массиве }; } forEach mcti_towns; _old_color = markerColor _marker; _marker setMarkerColor "ColorRed"; // towns if ( (mcti_flag_owners select _i) != 1) then { mcti_flag_owners set [_i, 1]; publicVariable "mcti_flag_owners"; mcti_towns_east = mcti_towns_east + 1; mcti_massa_east = mcti_massa_east + (mcti_town_sizes select _i); if (_old_color == "ColorBlue") then { mcti_towns_west = mcti_towns_west - 1; mcti_massa_west = mcti_massa_west - (mcti_town_sizes select _i); }; } else { hint "This area is already captured by your side!"; }; }; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (side _caller == west) then { // проверка доступности захвата (пустоты города) _myNearestEnemy = player findNearestEnemy player; hint format ["NE=%1", _myNearestEnemy];////////// if ( (not (isNull _myNearestEnemy)) and ((player distance _myNearestEnemy) < mcti_town_captureArea) ) exitWith { hint "You must Clear this area from Enemies!" }; // _i - найденный номер нашего города в массиве //changing texture of a flag _obj SetVehicleInit "This setFlagTexture ""ca\data\flag_usa_co.paa"""; ProcessInitCommands; _n = -1; _pos_2 = getPos _obj; { _n = _n + 1; _pos_1 = markerPos _x; _d1 = (_pos_2 select 0) - (_pos_1 select 0); _d1 = abs _d1; _d2 = (_pos_2 select 1) - (_pos_1 select 1); _d2 = abs _d2; if ( (_d1 < 20) and (_d2 < 20)) then { _marker = _x; _i = _n; }; } forEach mcti_towns; _old_color = markerColor _marker; _marker setMarkerColor "ColorBlue"; // towns if ( (mcti_flag_owners select _i) != 2) then { mcti_flag_owners set [_i, 2]; publicVariable "mcti_flag_owners"; mcti_towns_west = mcti_towns_west + 1; mcti_massa_west = mcti_massa_west + (mcti_town_sizes select _i); if (_old_color == "ColorRed") then { mcti_towns_east = mcti_towns_east - 1; mcti_massa_east = mcti_massa_east - (mcti_town_sizes select _i); }; } else { hint "This area is already captured by your side!"; }; }; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// publicVariable "mcti_towns_east"; publicVariable "mcti_massa_east"; publicVariable "mcti_towns_west"; publicVariable "mcti_massa_west"; }; };// mca_crate_init_c.sqf // v1.0c // runs after server's crate creation if (not isServer) then { private ["_side", "_crateNumber", "_crate", "_initStr"]; _crateNumber = _this select 0; _side = _this select 1; if (_side == east) then { _crate = mcti_crates_RU select _crateNumber; // init _initStr = " private [""_i""];clearMagazineCargo this; clearWeaponCargo this; _i = 0; { if (_x > 0) then { this addWeaponCargo [ mcti_weapons_pattern select _i, _x] }; _i = _i + 1; } forEach mcti_RUweapons_defaultNumbers; _i = 0; { if (_x > 0) then { this addMagazineCargo [ mcti_magazines_pattern select _i, _x] }; _i = _i + 1; } forEach mcti_RUmagazines_defaultNumbers; "; _crate SetVehicleInit _initStr; ProcessInitCommands; // EH _crate addEventHandler ["killed", { [_this, east] execVM "mca_onCrateDestroyed.sqf";}]; }; if (_side == west) then { _crate = mcti_crates_US select _crateNumber; // init _initStr = " private [""_i""];clearMagazineCargo this; clearWeaponCargo this; _i = 0; { if (_x > 0) then { this addWeaponCargo [ mcti_weapons_pattern select _i, _x] }; _i = _i + 1; } forEach mcti_USweapons_defaultNumbers; _i = 0; { if (_x > 0) then { this addMagazineCargo [ mcti_magazines_pattern select _i, _x] }; _i = _i + 1; } forEach mcti_USmagazines_defaultNumbers; "; _crate SetVehicleInit _initStr; ProcessInitCommands; // EH _crate addEventHandler ["killed", { [_this, west] execVM "mca_onCrateDestroyed.sqf";}]; }; };// mca_crate_init_JIP.sqf // version 1.1c if (not isServer) then { waitUntil {time > 1}; player groupChat "Initializing crates..."; private ["_i", "_crate"]; _n = 0; { clearMagazineCargo _x; clearWeaponCargo _x; _crate = _x; _i = 0; { if (_x > 0) then { _crate addWeaponCargo [ mcti_weapons_pattern select _i, _x]; }; _i = _i + 1; } forEach mcti_RUweapons_defaultNumbers; _i = 0; { if (_x > 0) then { _crate addMagazineCargo [ mcti_magazines_pattern select _i, _x] }; _i = _i + 1; } forEach mcti_RUmagazines_defaultNumbers; } forEach mcti_crates_RU; { clearMagazineCargo _x; clearWeaponCargo _x; _crate = _x; _i = 0; { if (_x > 0) then { _crate addWeaponCargo [ mcti_weapons_pattern select _i, _x]; }; _i = _i + 1; } forEach mcti_USweapons_defaultNumbers; _i = 0; { if (_x > 0) then { _crate addMagazineCargo [ mcti_magazines_pattern select _i, _x] }; _i = _i + 1; } forEach mcti_USmagazines_defaultNumbers; } forEach mcti_crates_US; };// mca_crate_init_s.sqf // v1.0s // creates crates on server's side if (isServer) then { private ["_pos", "_angle", "_cratePos", "_crate", "_crateNumber", "_side"]; _pos = _this select 0; _side = _this select 1; if (_side == east) then { // placing the crate _angle = random (2 * pi); _cratePos = [(_pos select 0) + 15 * cos (deg _angle), (_pos select 1) + 15 * sin (deg _angle)]; _crate = "RUVehicleBox" createVehicle _cratePos; // adding crate to array _crateNumber = count mcti_crates_RU; mcti_crates_RU = mcti_crates_RU + [_crate]; publicVariable "mcti_crates_RU"; // calling client's script to initialize his crates (server cannot because of arma's locality) call compile format [" [""nul = [%1, east] execVM """"mca_crate_init_c.sqf""""; ""] execVM ""Ros.sqf""; ", _crateNumber]; }; if (_side == west) then { // placing the crate _angle = random (2 * pi); _cratePos = [(_pos select 0) + 15 * cos (deg _angle), (_pos select 1) + 15 * sin (deg _angle)]; _crate = "USVehicleBox" createVehicle _cratePos; // adding crate to array _crateNumber = count mcti_crates_US; mcti_crates_US = mcti_crates_US + [_crate]; publicVariable "mcti_crates_US"; // calling client's script to initialize his crates (server cannot because of arma's locality) call compile format [" [""nul = [%1, west] execVM """"mca_crate_init_c.sqf""""; ""] execVM ""Ros.sqf""; ", _crateNumber]; }; };// mca_crates.sqf // version 1.1s if (isServer) then { ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// patterns /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// mcti_weapons_pattern = [ //ru "AK_107_kobra", "AK_107_GL_kobra", "AK_107_GL_pso", "AK_107_pso", "AK_74", "AK_74_GL", "AK_47_M", "AK_47_S", "AKS_74_kobra", "AKS_74_pso", "AKS_74_U", "AKS_74_UN_kobra", "Saiga12K", "Bizon", "bizon_silenced", "MG36", "PK", "RPK_74", "VSS_vintorez", "Huntingrifle", "SVD", "SVD_CAMO", "KSVK", "Makarov", "MakarovSD", "Igla", "MetisLauncher", "RPG18", "RPG7V", "Strela", //common "Binocular", "NVGoggles", "ItemGPS", "LaserDesignator", //us "G36a", "G36C", "G36_C_SD_eotech", "G36K", "M1014", "M16A2", "M16A2GL", "M16A4", "M16A4_GL", "M16A4_ACG_GL", "M16A4_ACG", "M4A1", "M4A1_HWS_GL", "M4A1_HWS_GL_camo", "M4A1_HWS_GL_SD_Camo", "M4A1_RCO_GL", "M4A1_Aim", "M4A1_Aim_camo", "M4A1_AIM_SD_camo", "M8_carbine", "M8_carbineGL", "M8_compact", "MP5A5", "MP5SD", "MG36", "Mk_48", "M240", "M249", "M8_SAW", "DMR", "M4SPR", "M8_sharpshooter", "M107", "M24", "M40A3", //"ukf_l96a1_cam", "Colt1911", "M9", "M9SD", "Javelin", "M136", "SMAW", "Stinger" ]; mcti_magazines_pattern = [ //ru "30Rnd_545x39_AK", "30Rnd_545x39_AKSD", "30Rnd_762x39_AK47", "8Rnd_B_Saiga12_74Slug", "64Rnd_9x19_Bizon", "64Rnd_9x19_SD_Bizon", "30Rnd_556x45_G36", "100Rnd_762x54_PK", "75Rnd_545x39_RPK", "10Rnd_9x39_SP5_VSS", "20Rnd_9x39_SP5_VSS", "5Rnd_127x108_KSVK", "10Rnd_762x54_SVD", "8Rnd_9x18_Makarov", "8Rnd_9x18_MakarovSD", "1Rnd_HE_GP25", "FlareWhite_GP25", "FlareGreen_GP25", "FlareRed_GP25", "FlareYellow_GP25", "1Rnd_SMOKE_GP25", "1Rnd_SMOKERED_GP25", "1Rnd_SMOKEGREEN_GP25", "1Rnd_SMOKEYELLOW_GP25", "Igla", "AT13", "RPG18", "PG7V", "PG7VL", "PG7VR", "OG7", "Strela", //common "LaserBatteries", "HandGrenade_East", "SmokeShell", "SmokeShellGreen", "SmokeShellRed", "SmokeShellYellow", "SmokeShellOrange", "SmokeShellPurple", "SmokeShellBlue", "PipeBomb", "MineE", //us "20Rnd_556x45_Stanag", "30Rnd_556x45_G36", "30Rnd_556x45_G36SD", "30Rnd_556x45_Stanag", "30Rnd_556x45_StanagSD", "8Rnd_B_Beneli_74Slug", "30Rnd_9x19_MP5", "30Rnd_9x19_MP5SD", "100Rnd_556x45_BetaCMag", "100Rnd_762x51_M240", "200Rnd_556x45_M249", "20Rnd_762x51_DMR", "10Rnd_127x99_m107", "5Rnd_762x51_M24", "15Rnd_9x19_M9", "15Rnd_9x19_M9SD", "7Rnd_45ACP_1911", "Javelin", "M136", "SMAW_HEAA", "SMAW_HEDP", "Stinger", "1Rnd_HE_M203", "1Rnd_Smoke_M203", "1Rnd_SmokeGreen_M203", "1Rnd_SmokeRed_M203", "1Rnd_SmokeYellow_M203", "FlareGreen_M203", "FlareRed_M203", "FlareWhite_M203", "FlareYellow_M203", "LaserBatteries", "HandGrenade_West" ]; publicVariable "mcti_weapons_pattern"; publicVariable "mcti_magazines_pattern"; mcti_RUweapons_defaultNumbers = [ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 50, 50, 30, 30, 30, 30, 30, 100, 100, 100, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; mcti_RUmagazines_defaultNumbers = [ 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 100, 100, 100, 100, 100, 100, 100, 100, 100, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 50, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; mcti_USweapons_defaultNumbers = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 100, 100, 100, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 30, 30, 18, 18, 18, 18, 18, 22, 22, 22, 22, 22, 22, 33, 33, 33, 38, 38, 38, 38 ]; mcti_USmagazines_defaultNumbers = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 50, 100, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 160, 160, 160, 160, 160, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 ]; publicVariable "mcti_RUweapons_defaultNumbers"; publicVariable "mcti_RUmagazines_defaultNumbers"; publicVariable "mcti_USweapons_defaultNumbers"; publicVariable "mcti_USmagazines_defaultNumbers"; };// mca_deleteMarkers.sqf // version 1.1c if (not isServer) then { private ["_side", "_markerName", "_RTC"]; _side = _this select 0; _markerName = _this select 1; _RTC = _this select 2; _isRT = _this select 3; if ( _side == my_side ) then { deleteMarkerLocal _markerName; if ((_side == east) and (_isRT)) then { // marker is RT if (_RTC == 1) then { // delete ALL markers {deleteMarkerLocal (_x select 0);} forEach mcti_barracks_ru; {deleteMarkerLocal (_x select 0);} forEach mcti_lightFactories_ru; {deleteMarkerLocal (_x select 0);} forEach mcti_heavyFactories_ru; {deleteMarkerLocal (_x select 0);} forEach mcti_airFactories_ru; {deleteMarkerLocal (_x select 0);} forEach mcti_servicePoints_ru; {deleteMarkerLocal (_x select 0);} forEach mcti_radioTerminals_ru; {deleteMarkerLocal (_x select 0);} forEach mcti_powerGens_ru; {deleteMarkerLocal (_x select 0);} forEach mcti_fieldHospitals_ru; {deleteMarkerLocal (_x select 0);} forEach mcti_mashes_ru; }; }; //east if ((_side == west) and (_isRT)) then { // marker is RT if (_RTC == 1) then { // delete ALL markers {deleteMarkerLocal (_x select 0);} forEach mcti_barracks_us; {deleteMarkerLocal (_x select 0);} forEach mcti_lightFactories_us; {deleteMarkerLocal (_x select 0);} forEach mcti_heavyFactories_us; {deleteMarkerLocal (_x select 0);} forEach mcti_airFactories_us; {deleteMarkerLocal (_x select 0);} forEach mcti_servicePoints_us; {deleteMarkerLocal (_x select 0);} forEach mcti_radioTerminals_us; {deleteMarkerLocal (_x select 0);} forEach mcti_powerGens_us; {deleteMarkerLocal (_x select 0);} forEach mcti_fieldHospitals_us; {deleteMarkerLocal (_x select 0);} forEach mcti_mashes_us; }; }; //west }; //my_side [] execVM "mca_EoG.sqf"; //for Client };// mca_deploy_ammunitionRU.sqf // version 1.1c if (not isServer) then { private ["_target", "_left", "_caller", "_crate", "_cratePos", "_initStr", "_angle"]; _target = _this select 0; _caller = _this select 1; if ( ( (side _caller) == east) and ( player == _caller) ) then { _left = _target getVariable "deploymentsLeft"; player groupChat format ["Examining Barracks building...", _left];//dbg//////////// if (_left > 0) then { // проверим, можно ли выгрузить €щик. private ["_lastDeploy"]; _lastDeploy = _target getVariable "LastDeploy"; if ((time - _lastDeploy) < mcti_barracks_deployPause) exitWith { hint format["You must wait %1 seconds before next deployment.", (mcti_barracks_deployPause - (time - _lastDeploy))]; }; if (not(alive _obj)) exitWith { hint "The building is destroyed. It cannot be used anymore."; }; // server will create crate himself call compile format [" [""nul = [%1, east] execVM """"mca_crate_init_s.sqf""""; ""] execVM ""Ros.sqf""; ", position _target]; // запись о текущей доставаемой палатке _target setVariable ["LastDeploy", time, TRUE]; // EH // will be called from server's script // refreshing contents of crate // will be called from server's script // reporting _target setVariable ["deploymentsLeft", (_left - 1), TRUE]; // -1 crate left inside _left = _target getVariable "deploymentsLeft"; hint format ["You have taken 1 crate of ammuniton out of barracks.\n%1 crates left in the building.", _left]; } else // _left <= 0 { hint format ["Sorry, no ammuniton left in this building.\nSearch in previosly taken crates nearby or build new barracks."]; }; }; //side }; // mca_deploy_ammunitionUS.sqf // version 1.1c if (not isServer) then { private ["_target", "_left", "_caller", "_crate", "_cratePos", "_initStr", "_angle"]; _target = _this select 0; _caller = _this select 1; if ( ( (side _caller) == west) and ( player == _caller) ) then { _left = _target getVariable "deploymentsLeft"; player groupChat format ["Examining Barracks building...", _left];//dbg//////////// if (_left > 0) then { // проверим, можно ли выгрузить €щик. private ["_lastDeploy"]; _lastDeploy = _target getVariable "LastDeploy"; if ((time - _lastDeploy) < mcti_barracks_deployPause) exitWith { hint format["You must wait %1 seconds before next deployment.", (mcti_barracks_deployPause - (time - _lastDeploy))]; }; if (not(alive _obj)) exitWith { hint "The building is destroyed. It cannot be used anymore."; }; // server will create crate himself call compile format [" [""nul = [%1, west] execVM """"mca_crate_init_s.sqf""""; ""] execVM ""Ros.sqf""; ", position _target]; // запись о текущей доставаемой палатке _target setVariable ["LastDeploy", time, TRUE]; // EH // will be called from server's script // refreshing contents of crate // will be called from server's script // reporting _target setVariable ["deploymentsLeft", (_left - 1), TRUE]; // -1 crate left inside _left = _target getVariable "deploymentsLeft"; hint format ["You have taken 1 crate of ammuniton out of barracks.\n%1 crates left in the building.", _left]; } else // _left <= 0 { hint format ["Sorry, no ammuniton left in this building.\nSearch in previosly taken crates nearby or build new barracks."]; }; }; //side }; // mca_deploy_fieldHospital.sqf // version 1.1c // [target, caller, ID, (arguments)] if (not isServer) then { private ["_obj", "_caller", "_mash", "_n", "_init"]; _obj = _this select 0; _caller = _this select 1; if (player == _caller) then { // проверим, можно ли выгрузить палатку. private ["_lastDeploy"]; _lastDeploy = _obj getVariable "LastDeploy"; if ((time - _lastDeploy) < mcti_mash_deployPause) exitWith { hint format["You must wait %1 seconds before next deployment.", (mcti_mash_deployPause - (time - _lastDeploy))]; }; if (not(alive _obj)) exitWith { hint "The vehicle is destroyed. It cannot be used anymore."; }; // запись о текущей доставаемой палатке _obj setVariable ["LastDeploy", time, TRUE]; if ((side player) == east) then { // создаЄм палатку первой помощи и заносим еЄ в реестр _mash = "MASH" createVehicle (position player); _n= 0; while {("mash_" + str _n) in mcti_mashes_ru} do {_n = _n + 1}; _init = format ["this addEventHandler [""Killed"", { private[""_varName""]; _varName = ""TemporaryObject""; tmp_obj setVehicleVarName _varName; call compile format [""TemporaryObject=_this; publicVariable """"TemporaryObject"""";""]; call compile ""mcti_OTC = mcti_OTC + [TemporaryObject];""; publicVariable ""mcti_OTC""; [""nul = [east, %1] execVM """"mca_onMashDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _mash SetVehicleInit _init; ProcessInitCommands; _marker_name = "mash_" + (str _n); mcti_mashes_ru = mcti_mashes_ru + [[_marker_name, position _mash]]; publicVariable "mcti_mashes_ru"; [] execVM "mca_side_markers_resync.sqf"; }; if ((side player) == west) then { // создаЄм палатку первой помощи и заносим еЄ в реестр _mash = "MASH" createVehicle (position player); _n= 0; while {("mash_" + str _n) in mcti_mashes_us} do {_n = _n + 1}; _init = format ["this addEventHandler [""Killed"", { private[""_varName""]; _varName = ""TemporaryObject""; tmp_obj setVehicleVarName _varName; call compile format [""TemporaryObject=_this; publicVariable """"TemporaryObject"""";""]; call compile ""mcti_OTC = mcti_OTC + [TemporaryObject];""; publicVariable ""mcti_OTC""; [""nul = [west, %1] execVM """"mca_onMashDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _mash SetVehicleInit _init; ProcessInitCommands; _marker_name = "mash_" + (str _n); mcti_mashes_us = mcti_mashes_us + [[_marker_name, position _mash]]; publicVariable "mcti_mashes_us"; [] execVM "mca_side_markers_resync.sqf"; }; }; };// mca_EoG.sqf // version 1.1cs // End of Game? if (isServer) then { sleep 2; private ["_a", "_b"]; //east _a = 0; _a = _a + (count mcti_fieldHospitals_ru) + (count mcti_mashes_ru); if (mcti_MHQ_alive_ru) then { _a = _a + 1; }; //west _b = 0; _b = _b + (count mcti_fieldHospitals_us) + (count mcti_mashes_us); if (mcti_MHQ_alive_us) then { _b = _b + 1; }; //score if (_a==0) then { mcti_winner = west; sleep 20; endMission "END2"; }; if (_b==0) then { mcti_winner = east; sleep 20; endMission "END1"; }; }; if (not isServer) then // EoG for CLIENTS { sleep 2; private ["_a", "_b"]; //east _a = 0; _a = _a + (count mcti_fieldHospitals_ru) + (count mcti_mashes_ru); if (mcti_MHQ_alive_ru) then { _a = _a + 1; }; //west _b = 0; _b = _b + (count mcti_fieldHospitals_us) + (count mcti_mashes_us); if (mcti_MHQ_alive_us) then { _b = _b + 1; }; //score if (_a==0) then { mcti_winner = west; [west, "HQ"] sideChat "WEST SIDE HAS WON THE MATCH ! CONGRATULATONS !"; [east, "HQ"] sideChat "WEST SIDE HAS WON THE MATCH ! CONGRATULATONS !"; sleep 20; endMission "END2"; }; if (_b==0) then { mcti_winner = east; [west, "HQ"] sideChat "EAST SIDE HAS WON THE MATCH ! CONGRATULATONS !"; [east, "HQ"] sideChat "EAST SIDE HAS WON THE MATCH ! CONGRATULATONS !"; sleep 20; endMission "END1"; }; //player groupChat format ["a=%1, b=%2.", _a, _b]; }; // mca_flags_init_c.sqf // version 1.1c if (not isServer) then { waitUntil {time >1}; player groupChat "Initializing flags..."; waitUntil {time > 2}; { _x addAction ["Capture This Area", "mca_capture_area.sqf"]; } forEach mcti_flags; };// mca_flags_init_s.sqf // version 1.1s if (isServer) then { private ["_obj", "_i"]; _i = -1; { _i = _i + 1; _obj = "FlagCarrier" createVehicle (markerPos _x); //_obj addAction ["Capture This Area", "mca_capture_area.sqf"]; if ( (mcti_flag_owners select _i) == 0 ) then { _x setMarkerColor "ColorBlack"; } else { if ( (mcti_flag_owners select _i) == 1 ) then { _x setMarkerColor "ColorRed"; } else { if ( (mcti_flag_owners select _i) == 2 ) then { _x setMarkerColor "ColorBlue"; }; }; }; mcti_flags = mcti_flags + [_obj]; } forEach mcti_towns; publicVariable "mcti_flags"; };// mca_ground_limit.sqf // version 1.1s if (isServer) then { private ["_position_found", "_tmp", "_start_pos_RU", "_start_pos_US", "_respawn_east_marker", "_respawn_west_marker", "_respawn_east_pos", "_respawn_east_pos_x", "_respawn_east_pos_y", "_respawn_west_pos", "_respawn_west_pos_x", "_respawn_west_pos_y" ]; _rnd_x_max = 14100 - 1000; _rnd_y_max = 13500 - 1700; _x0 = 10; _y0 = 20; _dx = 2; _dy = 5; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // PHASE #1 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // creating RU base marker _position_found = FALSE; _start_pos_RU = [0, 0]; while {not _position_found} do { _tmp = [round (random _rnd_x_max) + 1000, round (random _rnd_y_max) + 1700]; if ( not surfaceIsWater [_tmp select 0, _tmp select 1] ) then {_position_found = TRUE; _start_pos_RU = _tmp}; }; // _start_pos_RU -> marker _respawn_east_marker = createMarker ["respawn_east", _start_pos_RU]; "respawn_east" setMarkerType "empty"; _respawn_east_pos = _start_pos_RU; //getMarkerPos "respawn_east";// _respawn_east_pos_x = _start_pos_RU select 0; _respawn_east_pos_y = _start_pos_RU select 1; mcti_gl_RU setVariable ["MHQ_pos", _start_pos_RU, TRUE]; // // creating starting base RU RU_MHQ setPos _respawn_east_pos; publicVariable "RU_MHQ"; RU_startVehicle_1 setPos [_respawn_east_pos_x + 15, _respawn_east_pos_y]; publicVariable "RU_startVehicle_1"; RU_startVehicle_2 setPos [_respawn_east_pos_x - 15, _respawn_east_pos_y]; publicVariable "RU_startVehicle_2"; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // creating US base marker _position_found = FALSE; _start_pos_US = [0, 0]; while {not _position_found} do { _tmp = [round (random _rnd_x_max) + 1000, round (random _rnd_y_max) + 1700]; if ( not surfaceIsWater [_tmp select 0, _tmp select 1] ) then {_position_found = TRUE; _start_pos_US = _tmp}; }; // _start_pos_US -> marker _respawn_west_marker = createMarker["respawn_west", _start_pos_US]; "respawn_west" setMarkerType "empty"; _respawn_west_pos = _start_pos_US; //getMarkerPos "respawn_west"; _respawn_west_pos_x = _start_pos_US select 0; _respawn_west_pos_y = _start_pos_US select 1; mcti_gl_US setVariable ["MHQ_pos", _start_pos_US, TRUE]; // // creating starting base US US_MHQ setPos _respawn_west_pos; publicVariable "US_MHQ"; US_startVehicle_1 setPos [_respawn_west_pos_x + 15, _respawn_west_pos_y]; publicVariable "US_startVehicle_1"; US_startVehicle_2 setPos [_respawn_west_pos_x - 15, _respawn_west_pos_y]; publicVariable "US_startVehicle_2"; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // MHQ alive? mcti_MHQ_alive_ru = TRUE; publicVariable "mcti_MHQ_alive_ru"; mcti_MHQ_alive_us = TRUE; publicVariable "mcti_MHQ_alive_us"; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // PHASE #2 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private ["_i", "_angle", "_cP", "_dA", "_r", "_uP", "_mcti_RetryRU", "_mcti_RetryUS"]; _dA = 9; //delta angle _r = 25; //radius _RetryRU = []; // array for units which don't change positions (i.e. players) _RetryUS = []; // initial values, they will be changed if players connected mcti_gl_RU setVariable ["Players", _RetryRU, TRUE]; // mcti_gl_RU is a GameLogic, created in editor mcti_gl_US setVariable ["Players", _RetryUS, TRUE]; // mcti_gl_US is a GameLogic, created in editor // moving players to base RU _cP = position RU_MHQ; //center positon _i = 0; { _angle = _i * _dA; _uP = [(_cP select 0) + ((cos _angle) * _r), (_cP select 1) + ((sin _angle) * _r)]; //unit position _x setPos _uP; if ( (((position _x) select 0) != (_uP select 0)) and (((position _x) select 1) != (_uP select 1)) ) then { _mcti_RetryRU = mcti_gl_RU getVariable "Players"; // reading array _mcti_RetryRU = _mcti_RetryRU + [[_x, _i, _uP]]; //modifying it, adding [RU_player_**, *, ***] to array mcti_gl_RU setVariable ["Players", _mcti_RetryRU, TRUE]; // saving changes // we are added to this array, client must find himself in this array and teleport to coordinates given! }; _i = _i + 1; } foreach RU_players; // moving players to base US _cP = position US_MHQ; //center positon _i = 0; { _angle = _i * _dA; _uP = [(_cP select 0) + ((cos _angle) * _r), (_cP select 1) + ((sin _angle) * _r)]; //unit position _x setPos _uP; if ( (((position _x) select 0) != (_uP select 0)) and (((position _x) select 1) != (_uP select 1)) ) then { _mcti_RetryUS = mcti_gl_US getVariable "Players"; // reading array _mcti_RetryUS = _mcti_RetryUS + [[_x, _i, _uP]]; //modifying it, adding [US_player_**, *, ***] to array mcti_gl_US setVariable ["Players", _mcti_RetryUS, TRUE]; // saving changes // we are added to this array, client must find himself in this array and teleport to coordinates given! }; // adding [US_player_**, *, ***] to array _i = _i + 1; } foreach US_players; };// mca_hq_eh_c.sqf // v1.0c if (not isServer) then { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RU_MHQ addEventHandler ["GetIn", { if ( (player != RU_player_1) and (player == (_this select 2)) ) then { hint "WARNING!\n\nMHQ is NOT an assault vehicle! It is the Heart of your Base and shouldn't be thrown into battlezones! MHQ must be used ONLY by a Commander for Contructing Base and its Defensive Structures!\n\nDisembark MHQ as soon as possible!"; }; }]; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// US_MHQ addEventHandler ["GetIn", { if ( (player != US_player_1) and (player == (_this select 2)) ) then { hint "WARNING!\n\nMHQ is NOT an assault vehicle! It is the Heart of your Base and shouldn't be thrown into battlezones! MHQ must be used ONLY by a Commander for Contructing Base and its Defensive Structures!\n\nDisembark MHQ as soon as possible!"; }; }]; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RU_MHQ addEventHandler ["Killed", { if (not isServer) then { COIN_RU_MHQ synchronizeObjectsRemove synchronizedObjects COIN_RU_MHQ; deleteVehicle COIN_RU_MHQ; if (mcti_MHQ_alive_ru) then { mcti_MHQ_alive_ru = FALSE; publicVariable "mcti_MHQ_alive_ru"; }; [] execVM "mca_EoG.sqf"; }; }]; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// US_MHQ addEventHandler ["Killed", { if (not isServer) then { COIN_US_MHQ synchronizeObjectsRemove synchronizedObjects COIN_US_MHQ; deleteVehicle COIN_US_MHQ; if (mcti_MHQ_alive_us) then { mcti_MHQ_alive_us = FALSE; publicVariable "mcti_MHQ_alive_us"; }; [] execVM "mca_EoG.sqf"; }; }]; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// };// mca_hq_getout.sqf // version 1.0 if (isServer) then { private ["_unit"]; _unit = _this select 0; if ((side _unit) == east) then { ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // COIN initialization ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// "ConstructionManager" createUnit [ getPos RU_MHQ, group_RU_MHQ, "COIN_RU_MHQ = this;"]; COIN_RU_MHQ synchronizeObjectsAdd [RU_player_1]; COIN_RU_MHQ setvariable ["BIS_COIN_name", "RU MHQ"]; COIN_RU_MHQ setvariable ["BIS_COIN_rules", [RU_player_1]]; COIN_RU_MHQ setvariable ["BIS_COIN_categories", ["Base", "Active Defence", "Passive Defence", "Storage", "Barriers", "Respawn Points"]]; COIN_RU_MHQ setvariable ["BIS_COIN_funds", "mcti_money_east"]; COIN_RU_MHQ setvariable ["BIS_COIN_fundsDescription", ["R"]]; COIN_RU_MHQ setvariable ["BIS_COIN_areasize", [150, 15]]; COIN_RU_MHQ setvariable ["BIS_COIN_actionCondition", "TRUE"]; COIN_RU_MHQ setvariable ["BIS_COIN_items", [ //--- Class, Category, Cost or [fundsID,Cost], (display name) // Buildings for Base construction ["RU_WarfareBBarracks", "Base", 3000, "Barracks (Field Variant)"], ["Land_Mil_Barracks_i", "Base", 3500, "Barracks (City Variant)"], ["RU_WarfareBLightFactory", "Base", 9000, "Light Factory"], ["RU_WarfareBHeavyFactory", "Base", 25000, "Heavy Factory"], ["RU_WarfareBAircraftFactory", "Base", 31000, "Aircraft Factory"], ["RU_WarfareBVehicleServicePoint", "Base", 4000, "Vehicle Service Point"], ["RU_WarfareBUAVterminal", "Base", 4000, "Radio Terminal"], ["PowGen_Big", "Base", 1000, "Diesel Power Generator"], ["RU_WarfareBFieldhHospital", "Respawn Points", 1000, "Field Hospital"], ["ACamp", "Storage", 50, "Tiny Tent"], ["Land_tent_east", "Storage", 100, "Small Tent"], ["CampEast", "Storage", 150, "Medium Tent"], ["Land_Ind_Garage01", "Storage", 500, "Small Garage"], ["Land_Ind_Workshop01_02", "Storage", 600, "Small Workshop"], ["Land_Barn_W_02", "Storage", 600, "Short Barn"], ["Land_Ind_Workshop01_04", "Storage", 700, "Old Workshop"], ["Land_Barn_W_01", "Storage", 800, "Long Barn"], ["Land_Hangar_2", "Storage", 1000, "Large Hangar w/ Doors"], ["WarfareBAirport", "Storage", 2500, "Large Hangar"], ["KORD", "Active Defence", 250, "KORD Minitripod"], ["KORD_high", "Active Defence", 275, "KORD"], ["RU_WarfareBMGNest_PK", "Active Defence", 300, "MG Nest (PK)"], ["AGS_RU", "Active Defence", 700, "AGS-30"], ["Igla_AA_pod_East", "Active Defence", 800, "AA IGLA Pod"], ["Metis", "Active Defence", 800, "Metis AT-13"], ["ZU23_Ins", "Active Defence", 900, "ZU-23"], ["2b14_82mm", "Active Defence", 1000, "Podnos 2B14"], ["D30_RU", "Active Defence", 1900, "D-30"], ["SearchLight_RUS", "Active Defence", 100, "Searchlight"], ["Land_CamoNet_EAST", "Passive Defence", 50, "Camo Net 1"], ["Land_CamoNetB_EAST", "Passive Defence", 75, "Camo Net Big"], ["Land_CamoNetVar_EAST", "Passive Defence", 50, "Camo Net 2"], ["Land_fort_rampart", "Passive Defence", 50, "Rampart Element"], ["Land_Hlidac_budka", "Passive Defence", 50, "Sentry Box"], ["Land_fort_artillery_nest", "Passive Defence", 100, "Rampart (Nest)"], ["Land_fortified_nest_small", "Passive Defence", 200, "Nest (Small)"], ["Land_fortified_nest_big", "Passive Defence", 500, "Nest (Big)"], ["Land_Fort_Watchtower", "Passive Defence", 525, "Fort"], ["Land_Vysilac_FM", "Passive Defence", 600, "Tower"], ["Land_Mil_Guardhouse", "Passive Defence", 1000, "Checkpoint"], ["Land_Mil_ControlTower", "Passive Defence", 2000, "Control Tower"], ["Fence_corrugated_plate", "Barriers", 20, "Fence 1"], ["Fence_Ind_long", "Barriers", 20, "Fence 2"], ["Fort_RazorWire", "Barriers", 25, "Razor Wire"], ["Hedgehog", "Barriers", 50, "Hedgehog"], ["Hhedgehog_concrete", "Barriers", 75, "Small Concrete Hedgehog"], ["Hhedgehog_concreteBig", "Barriers", 100, "Big Concrete Hedgehog"], ["Fort_Barricade", "Barriers", 100, "Barricade from Garbage"], ["Land_fort_bagfence_long", "Barriers", 25, "Sandbag - Long"], ["Land_fort_bagfence_corner", "Barriers", 50, "Sandbag - Corner"], ["Land_fort_bagfence_round", "Barriers", 50, "Sandbag - Round"], ["Land_HBarrier1", "Barriers", 20, "Hesco x1"], ["Land_HBarrier3", "Barriers", 60, "Hesco x3"], ["Land_HBarrier5", "Barriers", 100, "Hesco x5"], ["Land_HBarrier_large", "Barriers", 150, "Big Hesco x4"] ] ]; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // events for buildings ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Code which is executed when some building is created in the world. Passed argument is array in format [logic, object, class,position,direction]. COIN_RU_MHQ setvariable ["BIS_COIN_onconstruct", { private ["_obj_class", "_obj_pos", "_obj", "_obj_dir", "_n", "_marker_name", "_nomerSvoboden", "_i", "_template", "_found"]; _obj = _this select 1; _obj_class = _this select 2; _obj_pos = _this select 3; _obj_dir = _this select 4; // barracks //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( (_obj_class == "RU_WarfareBBarracks") or (_obj_class == "Land_Mil_Barracks_i") ) then { _template = "barracks_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_barracks_ru; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addAction [""Deploy Ammuniton from Barracks"", ""mca_deploy_ammunitionRU.sqf"", [], 0, FALSE]; this addEventHandler [""Killed"", { [""nul = [east, %1] execVM """"mca_onBarracksDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; /// _obj setVariable ["deploymentsLeft", 3, TRUE]; _obj setVariable ["LastDeploy", (time - mcti_barracks_deployPause), TRUE]; /// _marker_name = "barracks_" + (str _n); mcti_barracks_ru = mcti_barracks_ru + [[_marker_name, _obj_pos]]; publicVariable "mcti_barracks_ru"; [] execVM "mca_side_markers_resync.sqf"; }; // light factory //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "RU_WarfareBLightFactory") then { _template = "lightFactory_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_lightFactories_ru; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addAction [""Buy Light Vehicle"", ""mca_buy_lightVehicle.sqf""]; this addAction [""View Light Factory Queue"", ""mca_queue_lightVehicle.sqf""]; this addEventHandler [""Killed"", { [""nul = [east, %1] execVM """"mca_onLightFactoryDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; /// _obj setVariable ["queue", [], TRUE]; _obj setVariable ["busy", FALSE, TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; /// _marker_name = "lightFactory_" + (str _n); mcti_lightFactories_ru = mcti_lightFactories_ru + [[_marker_name, _obj_pos]]; publicVariable "mcti_lightFactories_ru"; [] execVM "mca_side_markers_resync.sqf"; }; // heavy factory //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "RU_WarfareBHeavyFactory") then { _template = "heavyFactory_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_heavyFactories_ru; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addAction [""Buy Heavy Vehicle"", ""mca_buy_heavyVehicle.sqf""]; this addAction [""View Heavy Factory Queue"", ""mca_queue_heavyVehicle.sqf""]; this addEventHandler [""Killed"", { [""nul = [east, %1] execVM """"mca_onHeavyFactoryDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; /// _obj setVariable ["queue", [], TRUE]; _obj setVariable ["busy", FALSE, TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; /// _marker_name = "heavyFactory_" + (str _n); mcti_heavyFactories_ru = mcti_heavyFactories_ru + [[_marker_name, _obj_pos]]; publicVariable "mcti_heavyFactories_ru"; [] execVM "mca_side_markers_resync.sqf"; }; // air factory //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "RU_WarfareBAircraftFactory") then { _template = "airFactory_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_airFactories_ru; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addAction [""Buy Aircraft"", ""mca_buy_aircraft.sqf""]; this addAction [""View Aircraft Factory Queue"", ""mca_queue_aircraft.sqf""]; this addEventHandler [""Killed"", { [""nul = [east, %1] execVM """"mca_onAirFactoryDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; /// _obj setVariable ["queue", [], TRUE]; _obj setVariable ["busy", FALSE, TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; /// _marker_name = "airFactory_" + (str _n); mcti_airFactories_ru = mcti_airFactories_ru + [[_marker_name, _obj_pos]]; publicVariable "mcti_airFactories_ru"; [] execVM "mca_side_markers_resync.sqf"; }; // Service Point //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "RU_WarfareBVehicleServicePoint") then { _template = "servicePoint_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_servicePoints_ru; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addAction [""Service Vehicles"", ""mca_service_vehicles.sqf""]; this addEventHandler [""Killed"", { [""nul = [east, %1] execVM """"mca_onServicePointDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; _marker_name = "servicePoint_" + (str _n); mcti_servicePoints_ru = mcti_servicePoints_ru + [[_marker_name, _obj_pos]]; publicVariable "mcti_servicePoints_ru"; [] execVM "mca_side_markers_resync.sqf"; }; // Radio Terminal //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "RU_WarfareBUAVterminal") then { _template = "radioTerminal_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_radioTerminals_ru; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format [" mcti_radioTerminal_Enabled_ru = TRUE; publicVariable ""mcti_radioTerminal_Enabled_ru""; this addEventHandler [""Killed"", { [""nul = [east, %1] execVM """"mca_onRadioTerminalDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; _marker_name = "radioTerminal_" + (str _n); mcti_radioTerminals_ru = mcti_radioTerminals_ru + [[_marker_name, _obj_pos]]; publicVariable "mcti_radioTerminals_ru"; [] execVM "mca_side_markers_resync.sqf"; }; // powerGens //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "PowGen_Big") then { _template = "powerGen_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_powerGens_ru; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addEventHandler [""Killed"", { [""nul = [east, %1] execVM """"mca_onPowerGenDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; _marker_name = "powerGen_" + (str _n); mcti_powerGens_ru = mcti_powerGens_ru + [[_marker_name, _obj_pos]]; publicVariable "mcti_powerGens_ru"; [] execVM "mca_side_markers_resync.sqf"; }; // field Hospitals ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "RU_WarfareBFieldhHospital") then { _template = "fieldHospital_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_fieldHospitals_ru; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addEventHandler [""Killed"", { private[""_varName""]; _varName = ""TemporaryObject""; tmp_obj setVehicleVarName _varName; call compile format [""TemporaryObject=_this; publicVariable """"TemporaryObject"""";""]; call compile ""mcti_OTC = mcti_OTC + [TemporaryObject];""; publicVariable ""mcti_OTC""; [""nul = [east, %1] execVM """"mca_onFieldHospitalDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; _marker_name = "fieldHospital_" + (str _n); mcti_fieldHospitals_ru = mcti_fieldHospitals_ru + [[_marker_name, _obj_pos]]; publicVariable "mcti_fieldHospitals_ru"; [] execVM "mca_side_markers_resync.sqf"; }; //FH }]; //onConstruct if (mcti_advanced_coin_enabled == 1) then { sleep 6; private ["_action", "_id", "_BIS_COIN_idAction"]; _id = COIN_RU_MHQ getVariable "BIS_COIN_id"; _BIS_COIN_idAction = format ["BIS_COIN_action_%1",_id]; call compile format [" [""nul = [COIN_RU_MHQ, """"%1""""] execVM """"data\scripts\coin.sqf""""; ""] execVM ""Ros.sqf""; ", _BIS_COIN_idAction]; }; }; //east ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ((side _unit) == west) then { ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // COIN initialization ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// "ConstructionManager" createUnit [ getPos US_MHQ, group_US_MHQ, "COIN_US_MHQ = this;"]; COIN_US_MHQ synchronizeObjectsAdd [US_player_1]; COIN_US_MHQ setvariable ["BIS_COIN_name", "US MHQ"]; COIN_US_MHQ setvariable ["BIS_COIN_rules", [US_player_1]]; COIN_US_MHQ setvariable ["BIS_COIN_categories", ["Base", "Active Defence", "Passive Defence", "Storage", "Barriers", "Respawn Points"]]; COIN_US_MHQ setvariable ["BIS_COIN_funds", "mcti_money_west"]; COIN_US_MHQ setvariable ["BIS_COIN_fundsDescription", ["R"]]; COIN_US_MHQ setvariable ["BIS_COIN_areasize", [150, 15]]; COIN_US_MHQ setvariable ["BIS_COIN_actionCondition", "TRUE"]; COIN_US_MHQ setvariable ["BIS_COIN_items", [ //--- Class, Category, Cost or [fundsID,Cost], (display name) // Buildings for Base construction ["USMC_WarfareBBarracks", "Base", 3000, "Barracks (Field Variant)"], // бараки - жЄлтый Depot ["Land_Mil_Barracks_i", "Base", 3500, "Barracks (City Variant)"], ["USMC_WarfareBLightFactory", "Base", 9000, "Light Factory"], // // LF - синий Depot ["USMC_WarfareBHeavyFactory", "Base", 25000, "Heavy Factory"], // HF - зелЄный Depot ["USMC_WarfareBAircraftFactory", "Base", 31000, "Aircraft Factory"], // AF - оранжевый Depot ["USMC_WarfareBVehicleServicePoint", "Base", 4000, "Vehicle Service Point"], // SP - чЄрный mil_box (квадрат) ["USMC_WarfareBUAVterminal", "Base", 4000, "Radio Terminal"], // UT - зелЄный mil_box (квадрат) ["PowGen_Big", "Base", 1000, "Diesel Power Generator"], // PG - красный mil_triangle (треугольник) ["USMC_WarfareBFieldhHospital", "Respawn Points", 1000, "Field Hospital"], ["ACamp", "Storage", 50, "Tiny Tent"], ["Land_tent_east", "Storage", 100, "Small Tent"], ["CampEast", "Storage", 150, "Medium Tent"], ["Land_Ind_Garage01", "Storage", 500, "Small Garage"], ["Land_Ind_Workshop01_02", "Storage", 600, "Small Workshop"], ["Land_Barn_W_02", "Storage", 600, "Short Barn"], ["Land_Ind_Workshop01_04", "Storage", 700, "Old Workshop"], ["Land_Barn_W_01", "Storage", 800, "Long Barn"], ["Land_Hangar_2", "Storage", 1000, "Large Hangar w/ Doors"], ["WarfareBAirport", "Storage", 2500, "Large Hangar"], ["M2HD_mini_TriPod", "Active Defence", 250, "M2HD Minitripod"], ["M2StaticMG", "Active Defence", 275, "M2 Machine Gun"], ["Fort_Nest_M240", "Active Defence", 300, "MG Nest (M240)"], ["MK19_TriPod", "Active Defence", 700, "Mk19 Minitripod"], ["Stinger_Pod", "Active Defence", 800, "AA Pod"], ["TOW_TriPod", "Active Defence", 800, "TOW Tripod"], ["ZU23_Gue", "Active Defence", 900, "ZU-23"], ["M252", "Active Defence", 1000, "M252 81mm Mortar"], ["M119", "Active Defence", 1900, "M119"], ["SearchLight", "Active Defence", 100, "Searchlight"], ["Land_CamoNet_WEST", "Passive Defence", 50, "Camo Net 1"], ["Land_CamoNetB_WEST", "Passive Defence", 75, "Camo Net Big"], ["Land_CamoNetVar_WEST", "Passive Defence", 50, "Camo Net 2"], ["Land_fort_rampart", "Passive Defence", 50, "Rampart Element"], ["Land_Hlidac_budka", "Passive Defence", 50, "Sentry Box"], ["Land_fort_artillery_nest", "Passive Defence", 100, "Rampart (Nest)"], ["Land_fortified_nest_small", "Passive Defence", 200, "Nest (Small)"], ["Land_fortified_nest_big", "Passive Defence", 500, "Nest (Big)"], ["Land_Fort_Watchtower", "Passive Defence", 525, "Fort"], ["Land_Vysilac_FM", "Passive Defence", 600, "Tower"], ["Land_Mil_Guardhouse", "Passive Defence", 1000, "Checkpoint"], ["Land_Mil_ControlTower", "Passive Defence", 2000, "Control Tower"], ["Fence_corrugated_plate", "Barriers", 20, "Fence 1"], ["Fence_Ind_long", "Barriers", 20, "Fence 2"], ["Fort_RazorWire", "Barriers", 25, "Razor Wire"], ["Hedgehog", "Barriers", 50, "Hedgehog"], ["Hhedgehog_concrete", "Barriers", 75, "Small Concrete Hedgehog"], ["Hhedgehog_concreteBig", "Barriers", 100, "Big Concrete Hedgehog"], ["Fort_Barricade", "Barriers", 100, "Barricade from Garbage"], ["Land_fort_bagfence_long", "Barriers", 25, "Sandbag - Long"], ["Land_fort_bagfence_corner", "Barriers", 50, "Sandbag - Corner"], ["Land_fort_bagfence_round", "Barriers", 50, "Sandbag - Round"], ["Land_HBarrier1", "Barriers", 20, "Hesco x1"], ["Land_HBarrier3", "Barriers", 60, "Hesco x3"], ["Land_HBarrier5", "Barriers", 100, "Hesco x5"], ["Land_HBarrier_large", "Barriers", 150, "Big Hesco x4"] ] ]; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // events for buildings ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// COIN_US_MHQ setvariable ["BIS_COIN_onconstruct", { private ["_obj_class", "_obj_pos", "_obj", "_obj_dir", "_n", "_marker_name"]; _obj = _this select 1; _obj_class = _this select 2; _obj_pos = _this select 3; _obj_dir = _this select 4; // barracks //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( (_obj_class == "USMC_WarfareBBarracks") or (_obj_class == "Land_Mil_Barracks_i") ) then { _template = "barracks_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_barracks_us; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addAction [""Deploy Ammuniton from Barracks"", ""mca_deploy_ammunitionUS.sqf"", [], 0, FALSE]; this addEventHandler [""Killed"", { [""nul = [west, %1] execVM """"mca_onBarracksDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; /// _obj setVariable ["deploymentsLeft", 3, TRUE]; _obj setVariable ["LastDeploy", (time - mcti_barracks_deployPause), TRUE]; /// ProcessInitCommands; _marker_name = "barracks_" + (str _n); mcti_barracks_us = mcti_barracks_us + [[_marker_name, _obj_pos]]; publicVariable "mcti_barracks_us"; [] execVM "mca_side_markers_resync.sqf"; }; // light factory //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "USMC_WarfareBLightFactory") then { _template = "lightFactory_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_lightFactories_us; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addAction [""Buy Light Vehicle"", ""mca_buy_lightVehicle.sqf""]; this addAction [""View Light Factory Queue"", ""mca_queue_lightVehicle.sqf""]; this addEventHandler [""Killed"", { [""nul = [west, %1] execVM """"mca_onLightFactoryDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; /// _obj setVariable ["queue", [], TRUE]; _obj setVariable ["busy", FALSE, TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; /// _marker_name = "lightFactory_" + (str _n); mcti_lightFactories_us = mcti_lightFactories_us + [[_marker_name, _obj_pos]]; publicVariable "mcti_lightFactories_us"; [] execVM "mca_side_markers_resync.sqf"; }; // heavy factory //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "USMC_WarfareBHeavyFactory") then { _template = "heavyFactory_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_heavyFactories_us; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addAction [""Buy Heavy Vehicle"", ""mca_buy_heavyVehicle.sqf""]; this addAction [""View Heavy Factory Queue"", ""mca_queue_heavyVehicle.sqf""]; this addEventHandler [""Killed"", { [""nul = [west, %1] execVM """"mca_onHeavyFactoryDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; /// _obj setVariable ["queue", [], TRUE]; _obj setVariable ["busy", FALSE, TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; /// _marker_name = "heavyFactory_" + (str _n); mcti_heavyFactories_us = mcti_heavyFactories_us + [[_marker_name, _obj_pos]]; publicVariable "mcti_heavyFactories_us"; [] execVM "mca_side_markers_resync.sqf"; }; // air factory //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "USMC_WarfareBAircraftFactory") then { _template = "airFactory_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_airFactories_us; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addAction [""Buy Aircraft"", ""mca_buy_aircraft.sqf""]; this addAction [""View Aircraft Factory Queue"", ""mca_queue_aircraft.sqf""]; this addEventHandler [""Killed"", { [""nul = [west, %1] execVM """"mca_onAirFactoryDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; /// _obj setVariable ["queue", [], TRUE]; _obj setVariable ["busy", FALSE, TRUE]; _obj setVariable ["currentVehicle", "", TRUE]; /// _marker_name = "airFactory_" + (str _n); mcti_airFactories_us = mcti_airFactories_us + [[_marker_name, _obj_pos]]; publicVariable "mcti_airFactories_us"; [] execVM "mca_side_markers_resync.sqf"; }; // Service Point //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "USMC_WarfareBVehicleServicePoint") then { _template = "servicePoint_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_servicePoints_us; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format [" this addAction [""Service Vehicles"", ""mca_service_vehicles.sqf""]; this addEventHandler [""Killed"", { [""nul = [west, %1] execVM """"mca_onServicePointDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; _marker_name = "servicePoint_" + (str _n); mcti_servicePoints_us = mcti_servicePoints_us + [[_marker_name, _obj_pos]]; publicVariable "mcti_servicePoints_us"; [] execVM "mca_side_markers_resync.sqf"; }; // Radio Terminal //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "USMC_WarfareBUAVterminal") then { _template = "radioTerminal_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_radioTerminals_us; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format [" mcti_radioTerminal_Enabled_us = TRUE; publicVariable ""mcti_radioTerminal_Enabled_us""; this addEventHandler [""Killed"", { [""nul = [west, %1] execVM """"mca_onRadioTerminalDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; _marker_name = "radioTerminal_" + (str _n); mcti_radioTerminals_us = mcti_radioTerminals_us + [[_marker_name, _obj_pos]]; publicVariable "mcti_radioTerminals_us"; [] execVM "mca_side_markers_resync.sqf"; }; // powerGens //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "PowGen_Big") then { _template = "powerGen_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_powerGens_us; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addEventHandler [""Killed"", { [""nul = [west, %1] execVM """"mca_onPowerGenDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; _marker_name = "powerGen_" + (str _n); mcti_powerGens_us = mcti_powerGens_us + [[_marker_name, _obj_pos]]; publicVariable "mcti_powerGens_us"; [] execVM "mca_side_markers_resync.sqf"; }; // field Hospitals ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (_obj_class == "USMC_WarfareBFieldhHospital") then { _template = "fieldHospital_"; _n= 0; _found = FALSE; while { not _found } do { _nomerSvoboden = TRUE; _i = 0; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _nomerSvoboden = FALSE; }; _i = _i + 1; } forEach mcti_fieldHospitals_us; if (not _nomerSvoboden) then { _n = _n + 1; } else { _found = TRUE; }; }; // _n хранит номер свободного маркера "тип«дани€_*" _init = format ["this addEventHandler [""Killed"", { private[""_varName""]; _varName = ""TemporaryObject""; tmp_obj setVehicleVarName _varName; call compile format [""TemporaryObject=_this; publicVariable """"TemporaryObject"""";""]; call compile ""mcti_OTC = mcti_OTC + [TemporaryObject];""; publicVariable ""mcti_OTC""; [""nul = [east, %1] execVM """"mca_onFieldHospitalDestroyed.sqf""""; ""] execVM ""RoS.sqf""; } ]; ", _n]; _obj SetVehicleInit _init; ProcessInitCommands; _marker_name = "fieldHospital_" + (str _n); mcti_fieldHospitals_us = mcti_fieldHospitals_us + [[_marker_name, _obj_pos]]; publicVariable "mcti_fieldHospitals_us"; [] execVM "mca_side_markers_resync.sqf"; }; // "respawn_west" setMarkerPos (position (_this select 0)); }]; //onConstruct if (mcti_advanced_coin_enabled == 1) then { sleep 6; private ["_action", "_id", "_BIS_COIN_idAction"]; _id = COIN_US_MHQ getVariable "BIS_COIN_id"; _BIS_COIN_idAction = format ["BIS_COIN_action_%1",_id]; call compile format [" [""nul = [COIN_US_MHQ, """"%1""""] execVM """"data\scripts\coin.sqf""""; ""] execVM ""Ros.sqf""; ", _BIS_COIN_idAction]; }; }; //west };// mca_hq_coin_init.sqf // version 1.2s if (isServer) then { private ["_unit", "_init"]; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // EH RU MHQ RU_MHQ addEventHandler ["GetOut", { // [vehicle, position, unit] is passed _unit = _this select 2; [_unit] execVM "mca_hq_getout.sqf"; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private ["_pos"]; _pos = position RU_MHQ; "respawn_east" setMarkerPos _pos; mcti_gl_RU setVariable ["MHQ_pos", _pos, TRUE]; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// }]; RU_MHQ addEventHandler ["GetIn", { if (not (isNil "COIN_RU_MHQ")) then {deleteVehicle COIN_RU_MHQ;}; }]; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // EH US MHQ US_MHQ addEventHandler ["GetOut", { // [vehicle, position, unit] is passed _unit = _this select 2; [_unit] execVM "mca_hq_getout.sqf"; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private ["_pos"]; _pos = position US_MHQ; "respawn_west" setMarkerPos _pos; mcti_gl_US setVariable ["MHQ_pos", _pos, TRUE]; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// }]; US_MHQ addEventHandler ["GetIn", { if (not (isNil "COIN_US_MHQ")) then {deleteVehicle COIN_US_MHQ;}; }]; }; // isServer// mca_income.sqf // version 1.1s if (isServer) then { [] spawn { while {true} do { mcti_money_east = mcti_money_east + (mcti_massa_east * mcti_base_income); mcti_money_west = mcti_money_west + (mcti_massa_west * mcti_base_income); publicVariable "mcti_money_east"; publicVariable "mcti_money_west"; sleep mcti_income_period; }; }; };// mca_jip.sqf // version 1.1c if (not isServer) then { waitUntil { time > 1}; player groupChat format ["Updating position..."]; removeAllWeapons player; /////////////////////////////////////////////////////////////////////////////// updating position ////////////////////////////////////////////////////////////////////////////////////////////////////////////// // [[_x, _i, _uP]]; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private ["_tmp", "_found", "_newCoordinates"]; waitUntil { not (isNil "mcti_gl_RU")}; waitUntil { not (isNil "mcti_gl_US")}; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (((side player) == east) and (not mcti_JIP)) then { // searching in mcti_RetryRU _found = FALSE; while {not _found} do { _found = FALSE; _tmp = mcti_gl_RU getVariable "Players"; // reading array // searching ourselves in _tmp { if (player == (_x select 0)) then { _found = TRUE; _newCoordinates = _x select 2; }; if (_found) exitWith {}; } forEach _tmp; sleep 1; }; // teleporting player setPos _newCoordinates; }; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (((side player) == west) and (not mcti_JIP)) then { // searching in mcti_RetryUS _found = FALSE; while {not _found} do { _found = FALSE; _tmp = mcti_gl_US getVariable "Players"; // reading array // searching ourselves in _tmp { if (player == (_x select 0)) then { _found = TRUE; _newCoordinates = _x select 2; }; if (_found) exitWith {}; } forEach _tmp; sleep 1; }; // teleporting player setPos _newCoordinates; }; //////////////////////////////////////////////////////////////////////////////////updating actions///////////////////////////////////////////////////////////////////////////////////////////////////////////// player groupChat format ["Updating actions..."]; player addAction ["Game Score", "mca_show_gameScore.sqf",[], 0, FALSE]; ////////////////////////////////////////////////////////////////////////////////////updating markers///////////////////////////////////////////////////////////////////////////////////////////////////////// private ["_name", "_i"]; // _i was before _i = 0; player groupChat format ["Updatng town markers...", _i, _name, (mcti_town_markerCoords select _i) select 0, (mcti_town_markerCoords select _i) select 1, (mcti_flag_owners select _i)]; { //_name = "twn_" + (str _i); _name = _x;//////// createMarker [_name, mcti_town_markerCoords select _i]; _name setMarkerShape "ICON"; _name setMarkerType "mil_circle"; _name setMarkerColor "ColorYellow"; if ( (mcti_flag_owners select _i) == 0 ) then { _name setMarkerColor "ColorBlack"; } else { if ( (mcti_flag_owners select _i) == 1 ) then { _name setMarkerColor "ColorRed"; } else { if ( (mcti_flag_owners select _i) == 2 ) then { _name setMarkerColor "ColorBlue"; }; }; }; _i = _i + 1; } forEach mcti_towns; //////////////////////////////////////////////////////////////////////// my_side (global, but NOT public variable. don't ever use publicVariable with it !!! ///////////// my_side = side player; my_resp = "MHQ"; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// };// mca_onAirFactoryDestroyed.sqf // version 1.1s if (isServer) then { private ["_side", "_n", "_markerName", "_i", "_found", "_template", "_RTC"]; _side = _this select 0; // side of owner _n = _this select 1; // номер в имени маркера ..._* _template = "airFactory_"; _markerName = _template + (str _n); _RTC = -1; if (_side == east) then { _RTC = count mcti_radioTerminals_ru }; if (_side == west) then { _RTC = count mcti_radioTerminals_us }; //deleting all markers call compile format [" [""nul = [%1, """"%2"""", %3, FALSE] execVM """"mca_deleteMarkers.sqf""""; ""] execVM ""RoS.sqf""; ", _side, _markerName, _RTC]; if ( _side == east ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_airFactories_ru; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_airFactories_ru)},{_t=_t+1}] do { mcti_airFactories_ru set [_t, mcti_airFactories_ru select (_t + 1)]; }; mcti_airFactories_ru resize ((count mcti_airFactories_ru) - 1); publicVariable "mcti_airFactories_ru"; }; if ( _side == west ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_airFactories_us; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_airFactories_us)},{_t=_t+1}] do { mcti_airFactories_us set [_t, mcti_airFactories_us select (_t + 1)]; }; mcti_airFactories_us resize ((count mcti_airFactories_us) - 1); publicVariable "mcti_airFactories_us"; }; }; // mca_onBarracksDestroyed.sqf // version 1.1s if (isServer) then { private ["_side", "_n", "_markerName", "_i", "_found", "_template", "_RTC"]; _side = _this select 0; // side of owner _n = _this select 1; // номер в имени маркера ..._* _template = "barracks_"; _markerName = _template + (str _n); _RTC = -1; if (_side == east) then { _RTC = count mcti_radioTerminals_ru }; if (_side == west) then { _RTC = count mcti_radioTerminals_us }; //deleting all markers call compile format [" [""nul = [%1, """"%2"""", %3, FALSE] execVM """"mca_deleteMarkers.sqf""""; ""] execVM ""RoS.sqf""; ", _side, _markerName, _RTC]; if ( _side == east ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_barracks_ru; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_barracks_ru)},{_t=_t+1}] do { mcti_barracks_ru set [_t, mcti_barracks_ru select (_t + 1)]; }; mcti_barracks_ru resize ((count mcti_barracks_ru) - 1); publicVariable "mcti_barracks_ru"; }; if ( _side == west ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_barracks_us; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_barracks_us)},{_t=_t+1}] do { mcti_barracks_us set [_t, mcti_barracks_us select (_t + 1)]; }; mcti_barracks_us resize ((count mcti_barracks_us) - 1); publicVariable "mcti_barracks_us"; }; };// mca_onCrateDestroyed.sqf // version 1.1s if (isServer) then { private ["_crate", "_side"]; _crate = _this select 0; _side = _this select 1; if (_side == east) then { mcti_crates_RU = mcti_crates_RU - [_crate]; }; if (_side == west) then { mcti_crates_US = mcti_crates_US - [_crate]; }; };// mca_onFieldHospitalDestroyed.sqf // version 1.1s if (isServer) then { private ["_side", "_n", "_markerName", "_i", "_found", "_template", "_RTC"]; _side = _this select 0; // side of owner _n = _this select 1; // номер в имени маркера ..._* _template = "fieldHospital_"; _markerName = _template + (str _n); _RTC = -1; if (_side == east) then { _RTC = count mcti_radioTerminals_ru }; if (_side == west) then { _RTC = count mcti_radioTerminals_us }; //deleting all markers call compile format [" [""nul = [%1, """"%2"""", %3, FALSE] execVM """"mca_deleteMarkers.sqf""""; ""] execVM ""RoS.sqf""; ", _side, _markerName, _RTC]; if ( _side == east ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_fieldHospitals_ru; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_fieldHospitals_ru)},{_t=_t+1}] do { mcti_fieldHospitals_ru set [_t, mcti_fieldHospitals_ru select (_t + 1)]; }; mcti_fieldHospitals_ru resize ((count mcti_fieldHospitals_ru) - 1); publicVariable "mcti_fieldHospitals_ru"; }; if ( _side == west ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_fieldHospitals_us; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_fieldHospitals_us)},{_t=_t+1}] do { mcti_fieldHospitals_us set [_t, mcti_fieldHospitals_us select (_t + 1)]; }; mcti_fieldHospitals_us resize ((count mcti_fieldHospitals_us) - 1); publicVariable "mcti_fieldHospitals_us"; }; // mcti_OTC sleep 10; { deleteVehicle (_x select 0); diag_log format ["_x=%1; OTC=%2", _x, mcti_OTC];//dbg/////////////////////////////////////// } forEach mcti_OTC; mcti_OTC = []; publicVariable "mcti_OTC"; };// mca_onHeavyFactoryDestroyed.sqf // version 1.1s if (isServer) then { private ["_side", "_n", "_markerName", "_i", "_found", "_template", "_RTC"]; _side = _this select 0; // side of owner _n = _this select 1; // номер в имени маркера ..._* _template = "heavyFactory_"; _markerName = _template + (str _n); _RTC = -1; if (_side == east) then { _RTC = count mcti_radioTerminals_ru }; if (_side == west) then { _RTC = count mcti_radioTerminals_us }; //deleting all markers call compile format [" [""nul = [%1, """"%2"""", %3, FALSE] execVM """"mca_deleteMarkers.sqf""""; ""] execVM ""RoS.sqf""; ", _side, _markerName, _RTC]; if ( _side == east ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_heavyFactories_ru; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_heavyFactories_ru)},{_t=_t+1}] do { mcti_heavyFactories_ru set [_t, mcti_heavyFactories_ru select (_t + 1)]; }; mcti_heavyFactories_ru resize ((count mcti_heavyFactories_ru) - 1); publicVariable "mcti_heavyFactories_ru"; }; if ( _side == west ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_heavyFactories_us; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_heavyFactories_us)},{_t=_t+1}] do { mcti_heavyFactories_us set [_t, mcti_heavyFactories_us select (_t + 1)]; }; mcti_heavyFactories_us resize ((count mcti_heavyFactories_us) - 1); publicVariable "mcti_heavyFactories_us"; }; };// mca_onLightFactoryDestroyed.sqf // version 1.1s if (isServer) then { private ["_side", "_n", "_markerName", "_i", "_found", "_template", "_RTC"]; _side = _this select 0; // side of owner _n = _this select 1; // номер в имени маркера ..._* _template = "lightFactory_"; _markerName = _template + (str _n); _RTC = -1; if (_side == east) then { _RTC = count mcti_radioTerminals_ru }; if (_side == west) then { _RTC = count mcti_radioTerminals_us }; //deleting all markers call compile format [" [""nul = [%1, """"%2"""", %3, FALSE] execVM """"mca_deleteMarkers.sqf""""; ""] execVM ""RoS.sqf""; ", _side, _markerName, _RTC]; if ( _side == east ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_lightFactories_ru; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_lightFactories_ru)},{_t=_t+1}] do { mcti_lightFactories_ru set [_t, mcti_lightFactories_ru select (_t + 1)]; }; mcti_lightFactories_ru resize ((count mcti_lightFactories_ru) - 1); publicVariable "mcti_lightFactories_ru"; }; if ( _side == west ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_lightFactories_us; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_lightFactories_us)},{_t=_t+1}] do { mcti_lightFactories_us set [_t, mcti_lightFactories_us select (_t + 1)]; }; mcti_lightFactories_us resize ((count mcti_lightFactories_us) - 1); publicVariable "mcti_lightFactories_us"; }; };// mca_onMashDestroyed.sqf // version 1.1s if (isServer) then { private ["_side", "_n", "_markerName", "_i", "_found", "_template", "_RTC"]; _side = _this select 0; // side of owner _n = _this select 1; // номер в имени маркера ..._* _template = "mash_"; _markerName = _template + (str _n); _RTC = -1; if (_side == east) then { _RTC = count mcti_radioTerminals_ru }; if (_side == west) then { _RTC = count mcti_radioTerminals_us }; //deleting all markers call compile format [" [""nul = [%1, """"%2"""", %3, FALSE] execVM """"mca_deleteMarkers.sqf""""; ""] execVM ""RoS.sqf""; ", _side, _markerName, _RTC]; if ( _side == east ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_mashes_ru; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_mashes_ru)},{_t=_t+1}] do { mcti_mashes_ru set [_t, mcti_mashes_ru select (_t + 1)]; }; mcti_mashes_ru resize ((count mcti_mashes_ru) - 1); publicVariable "mcti_mashes_ru"; }; if ( _side == west ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_mashes_us; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_mashes_us)},{_t=_t+1}] do { mcti_mashes_us set [_t, mcti_mashes_us select (_t + 1)]; }; mcti_mashes_us resize ((count mcti_mashes_us) - 1); publicVariable "mcti_mashes_us"; }; // mcti_OTC sleep 10; { deleteVehicle (_x select 0); } forEach mcti_OTC; mcti_OTC = []; publicVariable "mcti_OTC"; };// mca_onPlayerKilled.sqf // version 1.1c if (not isServer) then { private ["_caller", "_i", "_cd", "_delta", "_listLen", "_listLenNew", "_savedSel"]; _caller = _this select 0; // после смерти, но до респа, € на стороне CIV, но значение player сохран€етс€ заданному в редакторе (RU_player_1, например) if (player == _caller) then { // убираем меню-действие с трупа _caller removeAction 0; // ищем MHQ if (mcti_JIP) then { player groupChat format ["Updating MHQ position..."];// ["nul = [] execVM ""mca_respawn_update.sqf""; "] execVM "Ros.sqf"; sleep 0.1; }; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( my_side == east) then // дл€ русских { my_resp = "MHQ"; if (dialog) then { closeDialog 1; }; sleep 0.2; createDialog "mca_respawn"; if (mcti_radioTerminal_Enabled_ru) then { _i = 0; { lbAdd [101, format ["Field Hospital #%1 at [%2,%3]", (_i+1), round((mcti_fieldHospitalsCoords_ru select _i) select 0), round((mcti_fieldHospitalsCoords_ru select _i) select 1) ]] ; _i = _i + 1; } forEach mcti_fieldHospitals_ru; _i = 0; { lbAdd [101, format ["Mash #%1 at [%2,%3]", (_i+1), round((mcti_mashesCoords_ru select _i) select 0), round((mcti_mashesCoords_ru select _i) select 1) ]] ; _i = _i + 1; } forEach mcti_mashes_ru; } else { // no radio ctrlSetText [104, "Radio communication: N/A"]; ((findDisplay 1) displayCtrl 104) ctrlSetTextColor [0.77, 0.0, 0.0, 0.9]; }; if (mcti_MHQ_alive_ru) then { lbAdd [101, "Mobile Headquarters (MHQ)"]; lbSetCurSel [101, (lbSize 101) - 1]; }; _listLen = (count mcti_fieldHospitals_ru) + (count mcti_mashes_ru); if (mcti_MHQ_alive_ru) then { _listLen = _listLen + 1}; ((findDisplay 1) displayCtrl 101) ctrlSetEventHandler ["LBSelChanged", " if (mcti_radioTerminal_Enabled_ru) then { private [""_n"", ""_m"", ""_t"", ""_i"", ""_f""]; _n = count mcti_fieldHospitals_ru; _m = count mcti_mashes_ru; _t = lbCurSel 101; if (_t == (_m+_n)) then { my_resp = ""MHQ""; ((findDisplay 1) displayCtrl 103) ctrlMapAnimAdd [2.0, 0.1, mcti_gl_RU getVariable ""MHQ_pos""]; ctrlMapAnimCommit ((findDisplay 1) displayCtrl 103); } else { if (_t >= _n) then { _t=_t - _n; my_resp = mcti_mashes_ru select _t; ((findDisplay 1) displayCtrl 103) ctrlMapAnimAdd [2.0, 0.1, markerPos (my_resp)]; ctrlMapAnimCommit ((findDisplay 1) displayCtrl 103); } else { my_resp = mcti_fieldHospitals_ru select _t; ((findDisplay 1) displayCtrl 103) ctrlMapAnimAdd [2.0, 0.1, markerPos (my_resp)]; ctrlMapAnimCommit ((findDisplay 1) displayCtrl 103); }; }; } else { ((findDisplay 1) displayCtrl 103) ctrlMapAnimAdd [2.0, 0.1, mcti_gl_RU getVariable ""MHQ_pos""]; ctrlMapAnimCommit ((findDisplay 1) displayCtrl 103); my_resp = ""MHQ""; }; "]; // countdown _cd = playerRespawnTime; _delta = 10; while {_cd > 0} do { ctrlSetText [102, format ["Respawn in %1 sec.", _cd] ]; sleep _delta; //_listLenNew _listLenNew = (count mcti_fieldHospitals_ru) + (count mcti_mashes_ru); if (mcti_MHQ_alive_ru) then { _listLenNew = _listLenNew + 1}; if (_listLenNew != _listLen) then { //update needed _savedSel = lbCurSel 101; //updating lbClear 101; // if (mcti_radioTerminal_Enabled_ru) then { _i = 0; { lbAdd [101, format ["Field Hospital #%1 at [%2,%3]", (_i+1), round((mcti_fieldHospitalsCoords_ru select _i) select 0), round((mcti_fieldHospitalsCoords_ru select _i) select 1) ]] ; _i = _i + 1; } forEach mcti_fieldHospitals_ru; _i = 0; { lbAdd [101, format ["Mash #%1 at [%2,%3]", (_i+1), round((mcti_mashesCoords_ru select _i) select 0), round((mcti_mashesCoords_ru select _i) select 1) ]] ; _i = _i + 1; } forEach mcti_mashes_ru; } else { // no radio ctrlSetText [104, "Radio communication: N/A"]; ((findDisplay 1) displayCtrl 104) ctrlSetTextColor [0.77, 0.0, 0.0, 0.9]; }; if (mcti_MHQ_alive_ru) then { lbAdd [101, "Mobile Headquarters (MHQ)"]; lbSetCurSel [101, (lbSize 101) - 1]; }; // lbSetCurSel [101, _savedSel]; // new Len _listLen = _listLenNew; }; _cd = _cd - _delta; if (_cd < 20) then { _delta = 1}; }; closeDialog 1; }; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( my_side == west) then // дл€ us { my_resp = "MHQ"; if (dialog) then { closeDialog 1; }; sleep 0.2; createDialog "mca_respawn"; if (mcti_radioTerminal_Enabled_us) then { _i = 0; { lbAdd [101, format ["Field Hospital #%1 at [%2,%3]", (_i+1), round((mcti_fieldHospitalsCoords_us select _i) select 0), round((mcti_fieldHospitalsCoords_us select _i) select 1) ]] ; _i = _i + 1; } forEach mcti_fieldHospitals_us; _i = 0; { lbAdd [101, format ["Mash #%1 at [%2,%3]", (_i+1), round((mcti_mashesCoords_us select _i) select 0), round((mcti_mashesCoords_us select _i) select 1) ]] ; _i = _i + 1; } forEach mcti_mashes_us; } else { // no radio ctrlSetText [104, "Radio communication: N/A"]; ((findDisplay 1) displayCtrl 104) ctrlSetTextColor [0.77, 0.0, 0.0, 0.9]; }; if (mcti_MHQ_alive_us) then { lbAdd [101, "Mobile Headquarters (MHQ)"]; lbSetCurSel [101, (lbSize 101) - 1]; }; _listLen = (count mcti_fieldHospitals_us) + (count mcti_mashes_us); if (mcti_MHQ_alive_us) then { _listLen = _listLen + 1}; ((findDisplay 1) displayCtrl 101) ctrlSetEventHandler ["LBSelChanged", " if (mcti_radioTerminal_Enabled_us) then { private [""_n"", ""_m"", ""_t"", ""_i"", ""_f""]; _n = count mcti_fieldHospitals_us; _m = count mcti_mashes_us; _t = lbCurSel 101; if (_t == (_m+_n)) then { my_resp = ""MHQ""; ((findDisplay 1) displayCtrl 103) ctrlMapAnimAdd [2.0, 0.1, mcti_gl_US getVariable ""MHQ_pos""]; ctrlMapAnimCommit ((findDisplay 1) displayCtrl 103);} else { if (_t >= _n) then { _t=_t - _n; my_resp = mcti_mashes_us select _t; ((findDisplay 1) displayCtrl 103) ctrlMapAnimAdd [2.0, 0.1, markerPos (my_resp)]; ctrlMapAnimCommit ((findDisplay 1) displayCtrl 103); } else { my_resp = mcti_fieldHospitals_us select _t; ((findDisplay 1) displayCtrl 103) ctrlMapAnimAdd [2.0, 0.1, markerPos (my_resp)]; ctrlMapAnimCommit ((findDisplay 1) displayCtrl 103); }; }; } else { ((findDisplay 1) displayCtrl 103) ctrlMapAnimAdd [2.0, 0.1, mcti_gl_US getVariable ""MHQ_pos""]; ctrlMapAnimCommit ((findDisplay 1) displayCtrl 103); my_resp = ""MHQ""; }; "]; // countdown _cd = playerRespawnTime; _delta = 10; while {_cd > 0} do { ctrlSetText [102, format ["Respawn in %1 sec.", _cd] ]; sleep _delta; //_listLenNew _listLenNew = (count mcti_fieldHospitals_us) + (count mcti_mashes_us); if (mcti_MHQ_alive_us) then { _listLenNew = _listLenNew + 1}; if (_listLenNew != _listLen) then { //update needed _savedSel = lbCurSel 101; //updating lbClear 101; // if (mcti_radioTerminal_Enabled_us) then { _i = 0; { lbAdd [101, format ["Field Hospital #%1 at [%2,%3]", (_i+1), round((mcti_fieldHospitalsCoords_us select _i) select 0), round((mcti_fieldHospitalsCoords_us select _i) select 1) ]] ; _i = _i + 1; } forEach mcti_fieldHospitals_us; _i = 0; { lbAdd [101, format ["Mash #%1 at [%2,%3]", (_i+1), round((mcti_mashesCoords_us select _i) select 0), round((mcti_mashesCoords_us select _i) select 1) ]] ; _i = _i + 1; } forEach mcti_mashes_us; } else { // no radio ctrlSetText [104, "Radio communication: N/A"]; ((findDisplay 1) displayCtrl 104) ctrlSetTextColor [0.77, 0.0, 0.0, 0.9]; }; if (mcti_MHQ_alive_us) then { lbAdd [101, "Mobile Headquarters (MHQ)"]; lbSetCurSel [101, (lbSize 101) - 1]; }; // lbSetCurSel [101, _savedSel]; // new Len _listLen = _listLenNew; }; _cd = _cd - _delta; if (_cd < 20) then { _delta = 1}; }; closeDialog 1; }; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// }; };// mca_onPlayerRespawn.sqf // version 1.1c if (not isServer) then { private ["_caller", "_i"]; _caller = _this select 0; if (player == _caller) then { player addAction ["Game Score", "mca_show_gameScore.sqf",[], 0, FALSE]; if ( player == RU_player_1) then { if (not (isNil "COIN_RU_MHQ")) then { deleteVehicle COIN_RU_MHQ; }; }; if ( player == US_player_1) then { if (not (isNil "COIN_US_MHQ")) then { deleteVehicle COIN_US_MHQ; }; }; removeAllWeapons player; // teleporting if (my_resp != "MHQ") then { player setPos markerPos my_resp; } else { if ((side player) == east) then { player setPos (mcti_gl_RU getVariable "MHQ_pos"); }; if ((side player) == west) then { player setPos (mcti_gl_US getVariable "MHQ_pos"); }; }; }; }; // mca_onPowerGenDestroyed.sqf // version 1.1s if (isServer) then { private ["_side", "_n", "_markerName", "_i", "_found", "_template", "_canProceed", "_RTC"]; _side = _this select 0; // side of owner _n = _this select 1; // номер в имени маркера ..._* _template = "powerGen_"; _markerName = _template + (str _n); _RTC = -1; if (_side == east) then { _RTC = count mcti_radioTerminals_ru }; if (_side == west) then { _RTC = count mcti_radioTerminals_us }; //deleting all markers call compile format [" [""nul = [%1, """"%2"""", %3, FALSE] execVM """"mca_deleteMarkers.sqf""""; ""] execVM ""RoS.sqf""; ", _side, _markerName, _RTC]; if ( _side == east ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_powerGens_ru; // _i - это наш номер в массиве (i-ый элемент) // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_powerGens_ru)},{_t=_t+1}] do { mcti_powerGens_ru set [_t, mcti_powerGens_ru select (_t + 1)]; }; mcti_powerGens_ru resize ((count mcti_powerGens_ru) - 1); publicVariable "mcti_powerGens_ru"; }; if ( _side == west ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_powerGens_us; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_powerGens_us)},{_t=_t+1}] do { mcti_powerGens_us set [_t, mcti_powerGens_us select (_t + 1)]; }; mcti_powerGens_us resize ((count mcti_powerGens_us) - 1); publicVariable "mcti_powerGens_us"; }; };// mca_onRadioTerminalDestroyed.sqf" // version 1.1s if (isServer) then { private ["_side", "_n", "_markerName", "_i", "_found", "_template", "_RTC"]; _side = _this select 0; // side of owner _n = _this select 1; // номер в имени маркера ..._* _template = "radioTerminal_"; _markerName = _template + (str _n); _RTC = -1; if (_side == east) then { _RTC = count mcti_radioTerminals_ru }; if (_side == west) then { _RTC = count mcti_radioTerminals_us }; //deleting all markers call compile format [" [""nul = [%1, """"%2"""", %3, TRUE] execVM """"mca_deleteMarkers.sqf""""; ""] execVM ""RoS.sqf""; ", _side, _markerName, _RTC]; if ( _side == east ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_radioTerminals_ru; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_radioTerminals_ru)},{_t=_t+1}] do { mcti_radioTerminals_ru set [_t, mcti_radioTerminals_ru select (_t + 1)]; }; mcti_radioTerminals_ru resize ((count mcti_radioTerminals_ru) - 1); publicVariable "mcti_radioTerminals_ru"; //radio if ((count mcti_radioTerminals_ru) > 0) then { mcti_radioTerminal_Enabled_ru = TRUE;} else { mcti_radioTerminal_Enabled_ru = FALSE;}; publicVariable "mcti_radioTerminal_Enabled_ru"; }; if ( _side == west ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_radioTerminals_us; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_radioTerminals_us)},{_t=_t+1}] do { mcti_radioTerminals_us set [_t, mcti_radioTerminals_us select (_t + 1)]; }; mcti_radioTerminals_us resize ((count mcti_radioTerminals_us) - 1); publicVariable "mcti_radioTerminals_us"; //radio if ((count mcti_radioTerminals_us) > 0) then { mcti_radioTerminal_Enabled_us = TRUE;} else { mcti_radioTerminal_Enabled_us = FALSE;}; publicVariable "mcti_radioTerminal_Enabled_us"; }; };// mca_onServicePointDestroyed.sqf // version 1.1s if (isServer) then { private ["_side", "_n", "_markerName", "_i", "_found", "_template", "_RTC"]; _side = _this select 0; // side of owner _n = _this select 1; // номер в имени маркера ..._* _template = "servicePoint_"; _markerName = _template + (str _n); _RTC = -1; if (_side == east) then { _RTC = count mcti_radioTerminals_ru }; if (_side == west) then { _RTC = count mcti_radioTerminals_us }; //deleting all markers call compile format [" [""nul = [%1, """"%2"""", %3, FALSE] execVM """"mca_deleteMarkers.sqf""""; ""] execVM ""RoS.sqf""; ", _side, _markerName, _RTC]; if ( _side == east ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_servicePoints_ru; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_servicePoints_ru)},{_t=_t+1}] do { mcti_servicePoints_ru set [_t, mcti_servicePoints_ru select (_t + 1)]; }; mcti_servicePoints_ru resize ((count mcti_servicePoints_ru) - 1); publicVariable "mcti_servicePoints_ru"; }; if ( _side == west ) then { // ищем себ€ в массиве _i = 0; _found = FALSE; { if ( (_x select 0) == (_template + (str _n)) ) exitWith { _found = TRUE; }; _i = _i + 1; } forEach mcti_servicePoints_us; // _i - это наш номер в массиве // удал€емс€ из массива private ["_t", "_ud"]; _ud = _i; for [{_t=_ud},{_t< (count mcti_servicePoints_us)},{_t=_t+1}] do { mcti_servicePoints_us set [_t, mcti_servicePoints_us select (_t + 1)]; }; mcti_servicePoints_us resize ((count mcti_servicePoints_us) - 1); publicVariable "mcti_servicePoints_us"; }; };// mca_players_eh.sqf // version 1.1c if (not isServer) then { waitUntil {time >10}; player groupChat format ["Initializing player..."]; if ( isNil{player getVariable "mk_killedEHadded"} ) then { player addEventHandler ["killed", { [player] execVM "mca_onPlayerKilled.sqf"; [] spawn { waitUntil { alive player }; [player] execVM "mca_onPlayerRespawn.sqf"; }; }]; player setVariable ["mk_killedEHadded", true]; }; };// mca_players_init_s.sqf // version 1.1s if (isServer) then { { _x setVehicleInit "removeAllWeapons this; "; if ( isNil{_x getVariable "mk_killedEHadded"} ) then { _x addEventHandler ["killed", { //[] execVM "mca_onNPCKilled.sqf"; [_this select 0] spawn { private ["_unit"]; _unit = _this select 0; sleep 0.5; _s = format[" waitUntil { alive %1 }; removeAllWeapons %1; ", _unit]; call compile _s; //[_unit] execVM "mca_onNPCRespawn.sqf"; }; }]; _x setVariable ["mk_killedEHadded", true]; }; } forEach RU_players; { _x setVehicleInit "removeAllWeapons this; "; if ( isNil{_x getVariable "mk_killedEHadded"} ) then { _x addEventHandler ["killed", { //[] execVM "mca_onNPCKilled.sqf"; [_this select 0] spawn { private ["_unit"]; _unit = _this select 0; sleep 0.5; _s = format[" waitUntil { alive %1 }; removeAllWeapons %1; ", _unit]; call compile _s; //[_unit] execVM "mca_onNPCRespawn.sqf"; }; }]; _x setVariable ["mk_killedEHadded", true]; }; } forEach US_players; processInitCommands; };// mca_queue_aircraft.sqf // version 1.1c if (not isServer) then { private ["_queue", "_obj", "_caller", "_n", "_busy", "_name", "_t"]; _obj = _this select 0; _caller = _this select 1; if (player == _caller) then { _queue = _obj getVariable "queue"; createDialog "mca_queue_AF"; // добавл€ем список доступных покупок lbAdd [6, _obj getVariable "currentVehicle"]; { //_x - им€ класса производимого транспортного средства. нужно получить его нормальное им€ _t = mcti_aircrafts_RU find _x; if (_t != -1) then { _name = mcti_aircraftNames_RU select _t; } else { _t = mcti_aircrafts_US find _x; if (_t != -1) then { _name = mcti_aircraftNames_US select _t; } else { _name = "Error: Unknown Vehicle"; }; }; lbAdd [6, _name] ; } forEach _queue; _busy = _obj getVariable "busy"; if ( not _busy ) then { lbAdd [9, "Status: No tasks in progress." ]; } else { lbAdd [9, "Status: Busy." ]; }; _n = count nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; lbAdd [9, format [ "Generators used: %1.", _n] ]; }; };// mca_queue_heavyVehicle.sqf // version 1.1c if (not isServer) then { private ["_queue", "_obj", "_caller", "_n", "_busy", "_name", "_t"]; _obj = _this select 0; _caller = _this select 1; if (player == _caller) then { _queue = _obj getVariable "queue"; createDialog "mca_queue_HF"; // добавл€ем список доступных покупок lbAdd [15, _obj getVariable "currentVehicle"]; { //_x - им€ класса производимого транспортного средства. нужно получить его нормальное им€ _t = mcti_heavyVehicles_RU find _x; if (_t != -1) then { _name = mcti_heavyVehicleNames_RU select _t; } else { _t = mcti_heavyVehicles_US find _x; if (_t != -1) then { _name = mcti_heavyVehicleNames_US select _t; } else { _name = "Error: Unknown Vehicle"; }; }; lbAdd [15, _name] ; } forEach _queue; _busy = _obj getVariable "busy"; if ( not _busy ) then { lbAdd [8, "Status: No tasks in progress." ]; } else { lbAdd [8, "Status: Busy." ]; }; _n = count nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; lbAdd [8, format [ "Generators used: %1.", _n] ]; }; };// mca_queue_lightVehicle.sqf // version 1.1c if (not isServer) then { private ["_queue", "_obj", "_caller", "_n", "_busy", "_name", "_t"]; _obj = _this select 0; _caller = _this select 1; if (player == _caller) then { _queue = _obj getVariable "queue"; createDialog "mca_queue_LF"; // добавл€ем список доступных покупок lbAdd [5, _obj getVariable "currentVehicle"]; { //_x - им€ класса производимого транспортного средства. нужно получить его нормальное им€ _t = mcti_lightVehicles_RU find _x; if (_t != -1) then { _name = mcti_lightVehicleNames_RU select _t; } else { _t = mcti_lightVehicles_US find _x; if (_t != -1) then { _name = mcti_lightVehicleNames_US select _t; } else { _name = "Error: Unknown Vehicle"; }; }; lbAdd [5, _name] ; } forEach _queue; _busy = _obj getVariable "busy"; if ( not _busy ) then { lbAdd [7, "Status: No tasks in progress." ]; } else { lbAdd [7, "Status: Busy." ]; }; _n = count nearestObjects [_obj, ["PowGen_Big"], distanceToGeneratorMax]; lbAdd [7, format [ "Generators used: %1.", _n] ]; }; };// mca_resistance_init.sqf // version 1.0s if (isServer) then { mcti_resistance_infantry = [ "CDF_Soldier_Strela", "CDF_Soldier_RPG", "CDF_Soldier_AR", "CDF_Commander", "CDF_Soldier_GL", "CDF_Soldier_MG", "CDF_Soldier_Marksman", "CDF_Soldier_Medic", "CDF_Soldier", "CDF_Soldier_Sniper", "CDF_Soldier_TL", "CDF_Soldier_RPG", "CDF_Soldier_RPG", "CDF_Soldier_RPG", "CDF_Soldier_RPG", "CDF_Soldier_GL", "CDF_Soldier_GL", "CDF_Soldier_GL", "CDF_Soldier_MG", "CDF_Soldier_MG", "CDF_Soldier_MG", "CDF_Soldier_Strela", "CDF_Soldier_Strela", "CDF_Soldier_Strela", "CDF_Soldier_Sniper", "CDF_Soldier_Sniper", "CDF_Soldier_Sniper" ]; // <-- some classes are made to appear more often mcti_resistance_lightVehicles = [ "UAZ_AGS30_CDF", "UAZ_MG_CDF", "Ural_ZU23_CDF", "BRDM2_CDF", "BRDM2_ATGM_CDF" ]; mcti_resistance_heavyVehicles = ["BMP2_CDF", "BMP2_HQ_CDF", "T72_CDF", "ZSU_CDF", "BMP2_Ambul_CDF"]; publicVariable "mcti_resistance_infantry"; publicVariable "mcti_resistance_lightVehicles"; publicVariable "mcti_resistance_heavyVehicles"; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private ["_i", "_townSize", "_diff", "_cInf", "_cLV", "_cArm", "_list1", "_list2", "_list3", "_t", "_nInfantry", "_nLightVeh", "_nArmored", "_xR", "_yR", "_angle", "_r", "_u", "_xC", "_yC", "_tmpGroup" ]; _cInf = count mcti_resistance_infantry - 1; _cLV = count mcti_resistance_lightVehicles - 1; _cArm = count mcti_resistance_heavyVehicles - 1; _diff = mcti_resistance_difficulty; // mcti_resistance_difficulty can be 1,2,3. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (mcti_resistance_enabled) then { _i = 0; { // засел€ем каждый i-ый город _townSize = mcti_town_sizes select _i; _list1 = []; // 3 independant lists per town, because Vehicles drive over Infantry! Stupid bots! Shame on you, BIS !!! _list2 = []; _list3 = []; // numbers of units in town _nInfantry = (_townSize * _diff * 2.0) + round (random (_townSize * (_diff * 1.0 ))); _nLightVeh = round (random (_townSize * (_diff * 0.48 ))); _nArmored = round (random (_townSize * (_diff * 0.24 ))); for [{_t=0},{_t<_nInfantry},{_t=_t+1}] do { _list1 = _list1 + [ (mcti_resistance_infantry select (round (random _cInf))) ]; }; for [{_t=0},{_t<_nLightVeh},{_t=_t+1}] do { _list2 = _list2 + [ (mcti_resistance_lightVehicles select (round (random _cLV))) ]; }; for [{_t=0},{_t<_nArmored},{_t=_t+1}] do { _list3 = _list3 + [ (mcti_resistance_heavyVehicles select (round (random _cArm))) ]; }; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // spawning HV first, because they are heavy and can kill somebody if placed on them! _angle = random 360; _xR = (_x select 0) + _townSize * 40 * cos (_angle); _yR = (_x select 1) + _townSize * 40 * sin (_angle); while { surfaceIsWater [_xR, _yR] } do { _angle = random 360; _xR = (_x select 0) + _townSize * 40 * cos (_angle); _yR = (_x select 1) + _townSize * 40 * sin (_angle); }; tmp_group3 = [ [_xR, _yR], resistance, _list3 ] call BIS_fnc_spawnGroup; [tmp_group3, _x, _townSize * 40] call BIS_fnc_taskPatrol; // spawning LV /////////////////////////////////////////////////////////////////////// _angle = random 360; _xR = (_x select 0) + _townSize * 30 * cos (_angle); _yR = (_x select 1) + _townSize * 30 * sin (_angle); while { surfaceIsWater [_xR, _yR] } do { _angle = random 360; _xR = (_x select 0) + _townSize * 30 * cos (_angle); _yR = (_x select 1) + _townSize * 30 * sin (_angle); }; tmp_group2 = [ [_xR, _yR], resistance, _list2 ] call BIS_fnc_spawnGroup; [tmp_group2, _x, _townSize * 30] call BIS_fnc_taskPatrol; // spawning Inf /////////////////////////////////////////////////////////////////////// _xC = _x select 0; _yC = _x select 1; _tmpGroup = createGroup resistance; { _angle = random 360; _r = random (_townSize * 20); _xR = _xC + _r * cos (_angle); _yR = _yC + _r * sin (_angle); while { surfaceIsWater [_xR, _yR] } do { _angle = random 360; _r = random (_townSize * 20); _xR = _xC + _r * cos (_angle); _yR = _yC + _r * sin (_angle); }; _u = _x createUnit [ [_xR, _yR], _tmpGroup, "", 0.6 + (0.1 * _diff), "corporal"]; _u setDir (random 360); if ((typeOf _u) == "CDF_Soldier_Sniper") then { _u setUnitPos "DOWN"; } else { _u setUnitPos "Middle"; }; _u setBehaviour "COMBAT"; _u enableAI "TARGET"; _u enableAI "AUTOTARGET"; _u enableAI "MOVE"; _u enableAI "ANIM"; // } forEach _list1; [_tmpGroup, _x, _townSize * 20] call BIS_fnc_taskPatrol; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // следующий город _i = _i + 1; } forEach mcti_town_markerCoords; "AwareFormationSoft" enableAIFeature TRUE; "CombatFormationSoft" enableAIFeature FALSE; }; //res enabled }; //isServer // mca_respawn_update.sqf // v1.0s if (isServer) then { deleteMarker "respawn_east"; createMarker ["respawn_east", (position RU_MHQ)]; "respawn_east" setMarkerType "empty"; deleteMarker "respawn_east"; createMarker ["respawn_west", (position US_MHQ)]; "respawn_west" setMarkerType "empty"; };// mca_show_gameScore.sqf // version 1.1c if (not isServer) then { private ["_me", "_income"]; _me = _this select 0; if (player == _me) then { if (side _me == east) then { _income = mcti_base_income * mcti_massa_east; if (mcti_income_period == 60) then { hint format["Towns Captured: %1\nIncome: %2 per minute.\nEast Side Money: %3", mcti_towns_east, _income, mcti_money_east]; } else { hint format["Towns Captured: %1\nIncome: %2 per %3 sec.\nEast Side Money: %4", mcti_towns_east, _income, mcti_income_period, mcti_money_east]; }; }; if (side _me == west) then { _income = mcti_base_income * mcti_massa_west; if (mcti_income_period == 60) then { hint format["Towns Captured: %1\nIncome: %2 per minute.\nWest Side Money: %3", mcti_towns_west, _income, mcti_money_west]; } else { hint format["Towns Captured: %1\nIncome: %2 per %3 sec.\nWest Side Money: %4", mcti_towns_west, _income, mcti_income_period, mcti_money_west]; }; }; }; };// mca_side_markers_resync.sqf // version 1.1c if (not isServer) then { sleep 5; waitUntil {not (isNil "mcti_radioTerminal_Enabled_ru")}; waitUntil {not (isNil "mcti_radioTerminal_Enabled_us")}; //player groupChat format ["Updating structures' markers...", mcti_radioTerminal_Enabled_ru, mcti_radioTerminal_Enabled_us]; private ["_i", "_name", "_coords"]; if (my_side == east) then { if (not mcti_radioTerminal_Enabled_ru) exitWith {}; // updating markers from mcti_barracks_ru /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (not (isnil "mcti_barracks_ru")) then { //player groupChat format ["mcti_barracks_ru=%1", (mcti_barracks_ru)];///////////////////////// if ((count mcti_barracks_ru) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "Depot"; _name setMarkerColorLocal "ColorYellow"; _i = _i + 1; } forEach mcti_barracks_ru; }; }; // updating markers from mcti_lightFactories_ru /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_lightFactories_ru") ) then { //player groupChat format ["mcti_lightFactories_ru=%1", (mcti_lightFactories_ru)];/////////////////////// if ((count mcti_lightFactories_ru) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "Depot"; _name setMarkerColorLocal "ColorBlue"; _i = _i + 1; } forEach mcti_lightFactories_ru; }; }; // updating markers from mcti_heavyFactories_ru /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_heavyFactories_ru") ) then { //player groupChat format ["mcti_heavyFactories_ru=%1", (mcti_heavyFactories_ru)];/////////////////////// if ((count mcti_heavyFactories_ru) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "Depot"; _name setMarkerColorLocal "ColorGreen"; _i = _i + 1; } forEach mcti_heavyFactories_ru; }; }; // updating markers from mcti_airFactories_ru /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_airFactories_ru") ) then { //player groupChat format ["mcti_airFactories_ru=%1", (mcti_airFactories_ru)];/////////////////////// if ((count mcti_airFactories_ru) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "Depot"; _name setMarkerColorLocal "ColorOrange"; _i = _i + 1; } forEach mcti_airFactories_ru; }; }; // updating markers from mcti_servicePoints_ru /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_servicePoints_ru") ) then { //player groupChat format ["mcti_servicePoints_ru=%1", (mcti_servicePoints_ru)];/////////////////////// if ((count mcti_servicePoints_ru) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "mil_box"; _name setMarkerColorLocal "ColorBlack"; _i = _i + 1; } forEach mcti_servicePoints_ru; }; }; // updating markers from mcti_radioTerminals_ru /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_radioTerminals_ru") ) then { //player groupChat format ["mcti_radioTerminals_ru=%1", (mcti_radioTerminals_ru)];/////////////////////// if ((count mcti_radioTerminals_ru) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "mil_box"; _name setMarkerColorLocal "ColorGreen"; _i = _i + 1; } forEach mcti_radioTerminals_ru; }; }; // updating markers from mcti_powerGens_ru /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_powerGens_ru") ) then { //player groupChat format ["mcti_powerGens_ru=%1", (mcti_powerGens_ru)];/////////////////////// if ((count mcti_powerGens_ru) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "mil_triangle"; _name setMarkerColorLocal "ColorRed"; _i = _i + 1; } forEach mcti_powerGens_ru; }; }; // updating markers from mcti_fieldHospitals_ru /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_fieldHospitals_ru") ) then { //player groupChat format ["mcti_fieldHospitals_ru=%1", (mcti_fieldHospitals_ru)];/////////////////////// if ((count mcti_fieldHospitals_ru) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "mil_triangle"; _name setMarkerColorLocal "ColorYellow"; _i = _i + 1; } forEach mcti_fieldHospitals_ru; }; }; // updating markers from mcti_mashes_ru ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_mashes_ru") ) then { //player groupChat format ["mcti_mashes_ru=%1", (mcti_mashes_ru)];/////////////////////// if ((count mcti_mashes_ru) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "mil_triangle"; _name setMarkerColorLocal "ColorOrange"; _i = _i + 1; } forEach mcti_mashes_ru; }; }; // }; //side if (my_side == west) then { if (not mcti_radioTerminal_Enabled_us) exitWith {}; // updating markers from mcti_barracks_us /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (not (isnil "mcti_barracks_us")) then { //player groupChat format ["mcti_barracks_us=%1", (mcti_barracks_us)];///////////// if ((count mcti_barracks_us) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "Depot"; _name setMarkerColorLocal "ColorYellow"; _i = _i + 1; } forEach mcti_barracks_us; }; }; // updating markers from mcti_lightFactories_us /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_lightFactories_us") ) then { //player groupChat format ["mcti_lightFactories_us=%1", (mcti_lightFactories_us)];/////////////////////// if ((count mcti_lightFactories_us) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "Depot"; _name setMarkerColorLocal "ColorBlue"; _i = _i + 1; } forEach mcti_lightFactories_us; }; }; // updating markers from mcti_heavyFactories_us /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_heavyFactories_us") ) then { //player groupChat format ["mcti_heavyFactories_us=%1", (mcti_heavyFactories_us)];/////////////////////// if ((count mcti_heavyFactories_us) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "Depot"; _name setMarkerColorLocal "ColorGreen"; _i = _i + 1; } forEach mcti_heavyFactories_us; }; }; // updating markers from mcti_airFactories_us /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_airFactories_us") ) then { //player groupChat format ["mcti_airFactories_us=%1", (mcti_airFactories_us)];/////////////////////// if ((count mcti_airFactories_us) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "Depot"; _name setMarkerColorLocal "ColorOrange"; _i = _i + 1; } forEach mcti_airFactories_us; }; }; // updating markers from mcti_servicePoints_us /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_servicePoints_us") ) then { //player groupChat format ["mcti_servicePoints_us=%1", (mcti_servicePoints_us)];/////////////////////// if ((count mcti_servicePoints_us) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "mil_box"; _name setMarkerColorLocal "ColorBlack"; _i = _i + 1; } forEach mcti_servicePoints_us; }; }; // updating markers from mcti_radioTerminals_us /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_radioTerminals_us") ) then { //player groupChat format ["mcti_radioTerminals_us=%1", (mcti_radioTerminals_us)];/////////////////////// if ((count mcti_radioTerminals_us) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "mil_box"; _name setMarkerColorLocal "ColorGreen"; _i = _i + 1; } forEach mcti_radioTerminals_us; }; }; // updating markers from mcti_powerGens_us /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_powerGens_us") ) then { //player groupChat format ["mcti_powerGens_us=%1", (mcti_powerGens_us)];/////////////////////// if ((count mcti_powerGens_us) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "mil_triangle"; _name setMarkerColorLocal "ColorRed"; _i = _i + 1; } forEach mcti_powerGens_us; }; }; // updating markers from mcti_fieldHospitals_us /////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_fieldHospitals_us") ) then { //player groupChat format ["mcti_fieldHospitals_us=%1", (mcti_fieldHospitals_us)];/////////////////////// if ((count mcti_fieldHospitals_us) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "mil_triangle"; _name setMarkerColorLocal "ColorYellow"; _i = _i + 1; } forEach mcti_fieldHospitals_us; }; }; // updating markers from mcti_mashes_us ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ( not (isnil "mcti_mashes_us") ) then { //player groupChat format ["mcti_mashes_us=%1", (mcti_mashes_us)];/////////////////////// if ((count mcti_mashes_us) > 0) then { _i = 0; { _name = _x select 0; _coords = _x select 1; createMarkerLocal [_name, _coords]; _name setMarkerShapeLocal "ICON"; _name setMarkerTypeLocal "mil_triangle"; _name setMarkerColorLocal "ColorOrange"; _i = _i + 1; } forEach mcti_mashes_us; }; }; // }; //side };// mca_silvie.sqf // version 1.1s if (isServer) then { private ["_tmp", "_rs"]; // _tmp - массив структур типа [markerPos, radiusOfSpawn] _rs = 500; _tmp = []; { // _x - строка-им€ маркера города _tmp = _tmp + [markerPos _x, _rs]; } forEach mcti_towns; BIS_silvie_mainscope setvariable ["townlist", _tmp]; BIS_silvie_mainscope setvariable ["vehicleCount", "round (%1 / 10)"]; };// mca_townMarkers_init.sqf // version 1.1s if (isServer) then { private ["_i", "_name"]; _i = 0; { _name = "twn_" + (str _i); createMarker [_name, mcti_town_markerCoords select _i]; _name setMarkerShape "ICON"; _name setMarkerType "mil_circle"; _name setMarkerColor "ColorYellow"; mcti_towns = mcti_towns + [_name]; _i = _i + 1; } forEach mcti_town_markerCoords; publicVariable "mcti_towns"; };version=11; class Mission { addOns[]= { "cacharacters2", "chernarus", "ca_highcommand", "ca_modules_marta", "ca_missions_firstaidsystem", "ca_missions_alternativeinjurysimulation", "ca_modules_functions", "warfarebuildings", "CAWheeled", "CAWheeled2_Kamaz", "CAWheeled2_TowingTractor", "CAWheeled2_MTVR", "ca_modules_coin", "warfare2", "ca_modules_silvie", "CAWheeled2_BTR90", "CAWheeled2_LAV25" }; addOnsAuto[]= { "cacharacters2", "ca_modules_functions", "ca_modules_silvie", "CAWheeled2_BTR90", "CAWheeled2_Kamaz", "CAWheeled2_LAV25", "CAWheeled2_MTVR", "chernarus" }; randomSeed=4931020; class Intel { briefingName="MCTI R2 40vs40 (ds)"; briefingDescription="MCTI R2 40vs40 (For Dedicated Server)"; resistanceWest=0; startWeather=0; forecastWeather=0; forecastFog=0.12029527; year=2012; month=12; day=20; hour=12; minute=0; }; class Groups { items=85; class Item0 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={-747.86548,76.271873,3048.6809}; id=0; side="LOGIC"; vehicle="Logic"; leader=1; skill=0.60000002; text="server"; }; }; }; class Item1 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5216.1025,8.9480343,2250.0457}; id=1; side="EAST"; vehicle="RU_Soldier_Officer"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_1"; description="East Commander"; }; }; }; class Item2 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={-727.65808,201.69286,1918.6842}; id=2; side="LOGIC"; vehicle="FunctionsManager"; leader=1; skill=0.60000002; }; }; }; class Item3 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5221.5239,9.0203247,2246.7424}; id=3; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_2"; description="Gunner"; }; }; }; class Item4 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5225.1978,9.0693054,2244.4839}; id=4; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_3"; description="Gunner"; }; }; }; class Item5 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5228.9658,9.0999269,2242.5054}; id=5; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_4"; description="Gunner"; }; }; }; class Item6 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5232.8296,9.1000004,2240.4329}; id=6; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_5"; description="Gunner"; }; }; }; class Item7 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5236.8809,9.1000004,2238.0801}; id=7; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_6"; description="Gunner"; }; }; }; class Item8 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5240.9316,9.1000004,2235.5388}; id=8; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_7"; description="Gunner"; }; }; }; class Item9 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5213.4355,9,2241.7947}; id=9; side="EAST"; vehicle="RU_Soldier_Sniper"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_9"; description="Sniper"; }; }; }; class Item10 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5217.2983,9,2239.7227}; id=10; side="EAST"; vehicle="RU_Soldier_Sniper"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_10"; description="Sniper"; }; }; }; class Item11 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5220.8784,9.0117188,2237.5579}; id=11; side="EAST"; vehicle="RU_Soldier_Sniper"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_11"; description="Sniper"; }; }; }; class Item12 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5209.9604,9,2233.5151}; id=12; side="EAST"; vehicle="RU_Soldier_Medic"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_13"; description="Medic"; }; }; }; class Item13 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5214.0117,9,2231.3508}; id=13; side="EAST"; vehicle="RU_Soldier_Medic"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_14"; description="Medic"; }; }; }; class Item14 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5217.4028,9,2229.2788}; id=14; side="EAST"; vehicle="RU_Soldier_Medic"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_15"; description="Medic"; }; }; }; class Item15 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5209.8403,8.9645386,2243.6895}; id=15; side="EAST"; vehicle="RU_Soldier_Sniper"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_8"; description="Sniper"; }; }; }; class Item16 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5205.9189,8.9872742,2235.9543}; id=16; side="EAST"; vehicle="RU_Soldier_Medic"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_12"; description="Medic"; }; }; }; class Item17 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8510.4063,10.33691,2651.6409}; id=17; side="WEST"; vehicle="USMC_Soldier_Officer"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_1"; description="West Commander"; }; }; }; class Item18 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8514.4434,10.337875,2649.4097}; id=18; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_2"; description="Gunner"; }; }; }; class Item19 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8518.4795,10.337552,2647.3926}; id=19; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_3"; description="Gunner"; }; }; }; class Item20 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8522.623,10.335798,2645.1633}; id=20; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_4"; description="Gunner"; }; }; }; class Item21 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8526.5527,10.333918,2643.1475}; id=21; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_5"; description="Gunner"; }; }; }; class Item22 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8530.5898,10.325685,2640.7058}; id=22; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_6"; description="Gunner"; }; }; }; class Item23 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8534.5195,10.313657,2638.5818}; id=23; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_7"; description="Gunner"; }; }; }; class Item24 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8508.9189,10.34915,2643.6765}; id=24; side="WEST"; vehicle="USMC_SoldierS_Sniper"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_9"; description="Sniper"; }; }; }; class Item25 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8512.9551,10.350901,2641.7659}; id=25; side="WEST"; vehicle="USMC_SoldierS_Sniper"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_10"; description="Sniper"; }; }; }; class Item26 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8516.8848,10.350693,2639.4285}; id=26; side="WEST"; vehicle="USMC_SoldierS_Sniper"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_11"; description="Sniper"; }; }; }; class Item27 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8504.1396,10.382677,2637.5205}; id=27; side="WEST"; vehicle="USMC_Soldier_Medic"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_13"; description="Medic"; }; }; }; class Item28 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8508.0693,10.390272,2634.866}; id=28; side="WEST"; vehicle="USMC_Soldier_Medic"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_14"; description="Medic"; }; }; }; class Item29 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8511.4688,10.396352,2632.426}; id=29; side="WEST"; vehicle="USMC_Soldier_Medic"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_15"; description="Medic"; }; }; }; class Item30 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8504.6709,10.347351,2646.0132}; id=30; side="WEST"; vehicle="USMC_SoldierS_Sniper"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_8"; description="Sniper"; }; }; }; class Item31 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8499.8896,10.368456,2640.071}; id=31; side="WEST"; vehicle="USMC_Soldier_Medic"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_12"; description="Medic"; }; }; }; class Item32 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={-742.77631,81.126915,2521.1226}; id=32; side="LOGIC"; vehicle="SilvieManager"; leader=1; skill=0.60000002; }; }; }; class Item33 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5201.6235,8.9323826,2233.3044}; id=33; side="EAST"; vehicle="RU_Soldier_AR"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_16"; description="Machinegunner"; }; }; }; class Item34 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5204.9106,8.9455137,2231.0027}; id=34; side="EAST"; vehicle="RU_Soldier_AR"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_17"; description="Machinegunner"; }; }; }; class Item35 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5207.9521,8.951025,2228.3743}; id=35; side="EAST"; vehicle="RU_Soldier_AR"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_18"; description="Machinegunner"; }; }; }; class Item36 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5211.0747,8.9809999,2226.3196}; id=36; side="EAST"; vehicle="RU_Soldier_AR"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_19"; description="Machinegunner"; }; }; }; class Item37 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5214.1987,9,2224.3477}; id=37; side="EAST"; vehicle="RU_Soldier_AR"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_20"; description="Machinegunner"; }; }; }; class Item38 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5197.3521,8.9019709,2229.6892}; id=38; side="EAST"; vehicle="RU_Soldier_Pilot"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_21"; description="Pilot"; }; }; }; class Item39 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5200.2285,8.8999996,2227.4707}; id=39; side="EAST"; vehicle="RU_Soldier_Pilot"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_22"; description="Pilot"; }; }; }; class Item40 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5203.1045,8.8999996,2225.7449}; id=40; side="EAST"; vehicle="RU_Soldier_Pilot"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_23"; description="Pilot"; }; }; }; class Item41 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5206.3096,8.9174614,2223.6897}; id=41; side="EAST"; vehicle="RU_Soldier_Pilot"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_24"; description="Pilot"; }; }; }; class Item42 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5192.8315,8.8999996,2226.1553}; id=42; side="EAST"; vehicle="RU_Soldier_Crew"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_25"; description="Crew"; }; }; }; class Item43 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5195.5435,8.8999996,2224.1018}; id=43; side="EAST"; vehicle="RU_Soldier_Crew"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_26"; description="Crew"; }; }; }; class Item44 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5198.6665,8.8999996,2222.4575}; id=44; side="EAST"; vehicle="RU_Soldier_Crew"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_27"; description="Crew"; }; }; }; class Item45 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5201.3789,8.8999996,2220.157}; id=45; side="EAST"; vehicle="RU_Soldier_Crew"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_28"; description="Crew"; }; }; }; class Item46 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5188.229,8.9886255,2222.6235}; id=46; side="EAST"; vehicle="RU_Soldier_Marksman"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_29"; description="Sniper"; }; }; }; class Item47 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5190.8579,8.9853697,2220.2388}; id=47; side="EAST"; vehicle="RU_Soldier_Marksman"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_30"; description="Sniper"; }; }; }; class Item48 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5193.7349,8.9765806,2218.021}; id=48; side="EAST"; vehicle="RU_Soldier_Marksman"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_31"; description="Sniper"; }; }; }; class Item49 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5196.8584,8.9634275,2215.884}; id=49; side="EAST"; vehicle="RU_Soldier_Marksman"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_32"; description="Sniper"; }; }; }; class Item50 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5182.96,9,2219.1257}; id=50; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_33"; description="Gunner"; }; }; }; class Item51 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5185.5547,9,2216.9011}; id=51; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_34"; description="Gunner"; }; }; }; class Item52 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5188.5127,9,2215.0105}; id=52; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_35"; description="Gunner"; }; }; }; class Item53 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5191.1426,9,2213.1208}; id=53; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_36"; description="Gunner"; }; }; }; class Item54 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5194.019,8.9819975,2211.1497}; id=54; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_37"; description="Gunner"; }; }; }; class Item55 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5197.1421,8.9513216,2208.8489}; id=55; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_38"; description="Gunner"; }; }; }; class Item56 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5199.854,8.9217434,2206.6306}; id=56; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_39"; description="Gunner"; }; }; }; class Item57 { side="EAST"; class Vehicles { items=1; class Item0 { position[]={5202.731,8.9111176,2204.166}; id=57; side="EAST"; vehicle="RU_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="RU_player_40"; description="Gunner"; }; }; }; class Item58 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8493.585,10.405938,2636.1323}; id=58; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_16"; description="Machinegunner"; }; }; }; class Item59 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8497.3838,10.431237,2633.5388}; id=59; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_17"; description="Machinegunner"; }; }; }; class Item60 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8501.1836,10.456659,2631.0376}; id=60; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_18"; description="Machinegunner"; }; }; }; class Item61 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8505.4453,10.488624,2628.4429}; id=61; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_19"; description="Machinegunner"; }; }; }; class Item62 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8509.8926,10.499863,2625.571}; id=62; side="WEST"; vehicle="USMC_Soldier_AR"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_20"; description="Machinegunner"; }; }; }; class Item63 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8488.1963,10.475456,2631.6519}; id=63; side="WEST"; vehicle="USMC_Soldier_Pilot"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_21"; description="Pilot"; }; }; }; class Item64 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8491.6484,10.541999,2629.1855}; id=64; side="WEST"; vehicle="USMC_Soldier_Pilot"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_22"; description="Pilot"; }; }; }; class Item65 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8495.5938,10.580647,2626.8848}; id=65; side="WEST"; vehicle="USMC_Soldier_Pilot"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_23"; description="Pilot"; }; }; }; class Item66 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8499.8672,10.641059,2624.1738}; id=66; side="WEST"; vehicle="USMC_Soldier_Pilot"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_24"; description="Pilot"; }; }; }; class Item67 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8484.1699,10.585908,2628.2014}; id=67; side="WEST"; vehicle="USMC_Soldier_Crew"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_25"; description="Crew"; }; }; }; class Item68 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8487.7861,10.667748,2625.572}; id=68; side="WEST"; vehicle="USMC_Soldier_Crew"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_26"; description="Crew"; }; }; }; class Item69 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8491.1553,10.780329,2623.3535}; id=69; side="WEST"; vehicle="USMC_Soldier_Crew"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_27"; description="Crew"; }; }; }; class Item70 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8495.5107,10.893656,2620.8879}; id=70; side="WEST"; vehicle="USMC_Soldier_Crew"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_28"; description="Crew"; }; }; }; class Item71 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8479.4023,10.711584,2624.5205}; id=71; side="WEST"; vehicle="USMC_SoldierM_Marksman"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_29"; description="Sniper"; }; }; }; class Item72 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8483.4795,10.965819,2622.0183}; id=72; side="WEST"; vehicle="USMC_SoldierM_Marksman"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_30"; description="Sniper"; }; }; }; class Item73 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8487.3711,11.115858,2619.6106}; id=73; side="WEST"; vehicle="USMC_SoldierM_Marksman"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_31"; description="Sniper"; }; }; }; class Item74 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8490.9854,11.338612,2616.6453}; id=74; side="WEST"; vehicle="USMC_SoldierM_Marksman"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_32"; description="Sniper"; }; }; }; class Item75 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8475.4063,10.955394,2622.0464}; id=75; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_33"; description="Gunner"; }; }; }; class Item76 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8477.9541,11.232568,2619.416}; id=76; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_34"; description="Gunner"; }; }; }; class Item77 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8480.9121,11.453744,2617.2793}; id=77; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_35"; description="Gunner"; }; }; }; class Item78 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8483.9531,11.770763,2614.8147}; id=78; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_36"; description="Gunner"; }; }; }; class Item79 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8487.4873,11.968503,2612.5962}; id=79; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_37"; description="Gunner"; }; }; }; class Item80 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8490.8574,12.235012,2610.0493}; id=80; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_38"; description="Gunner"; }; }; }; class Item81 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8494.6367,12.216329,2607.1729}; id=81; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_39"; description="Gunner"; }; }; }; class Item82 { side="WEST"; class Vehicles { items=1; class Item0 { position[]={8497.7598,12.186616,2604.8721}; id=82; side="WEST"; vehicle="USMC_Soldier"; player="PLAY CDG"; leader=1; skill=0.60000002; text="US_player_40"; description="Gunner"; }; }; }; class Item83 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={-1279.3319,151.3251,1916.8094}; age="ACTUAL"; id=83; side="LOGIC"; vehicle="Logic"; leader=1; skill=0.60000002; text="mcti_gl_RU"; }; }; }; class Item84 { side="LOGIC"; class Vehicles { items=1; class Item0 { position[]={-1296.6604,116.59221,2502.8018}; age="ACTUAL"; id=84; side="LOGIC"; vehicle="Logic"; leader=1; skill=0.60000002; text="mcti_gl_US"; }; }; }; }; class Vehicles { items=6; class Item0 { position[]={5224.6445,9.0619326,2220.3191}; azimut=-243.513; id=85; side="EMPTY"; vehicle="BTR90_HQ"; skill=0.60000002; text="RU_MHQ"; }; class Item1 { position[]={5228.9194,9.1000004,2225.4583}; azimut=124.35; id=86; side="EMPTY"; vehicle="KamazOpen"; skill=0.60000002; text="RU_startVehicle_1"; }; class Item2 { position[]={5219.3555,9,2214.5242}; azimut=123.074; id=87; side="EMPTY"; vehicle="KamazOpen"; skill=0.60000002; text="RU_startVehicle_2"; }; class Item3 { position[]={8523.8721,10.392715,2620.489}; azimut=-243.513; id=88; side="EMPTY"; vehicle="LAV25_HQ"; skill=0.60000002; text="US_MHQ"; }; class Item4 { position[]={8526.5527,10.351174,2624.4773}; azimut=-243.513; id=89; side="EMPTY"; vehicle="MTVR"; skill=0.60000002; text="US_startVehicle_1"; }; class Item5 { position[]={8521.4775,10.512539,2616.6733}; azimut=-243.513; id=90; side="EMPTY"; vehicle="MTVR"; skill=0.60000002; text="US_startVehicle_2"; }; }; }; class Intro { addOns[]= { "chernarus" }; addOnsAuto[]= { "chernarus" }; randomSeed=5875250; class Intel { startWeather=0.25; forecastWeather=0.25; year=2008; month=10; day=11; hour=9; minute=20; }; }; class OutroWin { addOns[]= { "chernarus" }; addOnsAuto[]= { "chernarus" }; randomSeed=15434763; class Intel { startWeather=0.25; forecastWeather=0.25; year=2008; month=10; day=11; hour=9; minute=20; }; }; class OutroLoose { addOns[]= { "chernarus" }; addOnsAuto[]= { "chernarus" }; randomSeed=477795; class Intel { startWeather=0.25; forecastWeather=0.25; year=2008; month=10; day=11; hour=9; minute=20; }; }; // RoS.sqf // This script runs scripts on server from clients, or on clients from server! // Great thanks to Murklor for this masterpiece! // syntax to call it: ["nul = [] execVM ""serveronly.sqf""; "] execVM "Ros.sqf"; ( In serveronly.sqf make an isServer check ! ) // version 1.1cs private ["_init", "_cone"]; _init = _this select 0; _cone = createVehicle ["RoadCone",[0,0,0], [], 0, "FLY"]; _cone setVehicleInit _init; processInitCommands; deleteVehicle _cone; diag_log _init;//dbg///////////////////////пїњ<?xml version="1.0" encoding="UTF-8"?> <Project ID="Arma2"> <Package ID="Missions"> <Container ID=""> <Key ID="STR_f_param_debugMode"> <English> Debug Mode </English> <Czech> Debug m√≥d </Czech> <German> Debug-Modus </German> <Polish> Debug Mode </Polish> <Russian> –†–µ–ґ–Є–Љ –Њ—В–ї–∞–і–Ї–Є </Russian> <Spanish> Modo Debug </Spanish> <French> Mode Debug </French> </Key> <Key ID="STR_f_param_timeOfDay"> <English> Time of Day </English> </Key> <Key ID="STR_f_param_timeOfDay_Option0"> <English> Dawn </English> <Czech> Sv√≠t√°n√≠ </Czech> <German> Morgend√§mmerung </German> <Polish> Swit </Polish> <Russian> –†–∞—Б—Б–≤–µ—В </Russian> <Spanish> Amanecer </Spanish> <French> Aube </French> </Key> <Key ID="STR_f_param_timeOfDay_Option1"> <English> Early Morning </English> <German> Fr√Љher Morgen </German> <Polish> Wczesny Ranek </Polish> <Russian> –†–∞–љ–љ–µ–µ —Г—В—А–Њ </Russian> <French> Matin </French> </Key> <Key ID="STR_f_param_timeOfDay_Option2"> <English> Morning </English> <German> Morgen </German> <Polish> Ranek </Polish> <Russian> –£—В—А–Њ </Russian> <French> Matin√©e </French> </Key> <Key ID="STR_f_param_timeOfDay_Option3"> <English> Noon </English> <Czech> Poledne </Czech> <German> Mittag </German> <Polish> Poludnie </Polish> <Russian> –Я–Њ–ї–і–µ–љ—М </Russian> <Spanish> Mediod√≠a </Spanish> <French> Midi </French> </Key> <Key ID="STR_f_param_timeOfDay_Option4"> <English> Afternoon </English> <German> Nachmittag </German> <Polish> Popo≈Вudnie </Polish> <Russian> –°–µ—А–µ–і–Є–љ–∞ –і–љ—П </Russian> <French> Apr√®s-midi </French> </Key> <Key ID="STR_f_param_timeOfDay_Option5"> <English> Evening </English> <German> Abend </German> <Polish> Wiecz√≥r </Polish> <Russian> –Т–µ—З–µ—А </Russian> <French> Soir√©e </French> </Key> <Key ID="STR_f_param_timeOfDay_Option6"> <English> Dusk </English> <Czech> Soumrak </Czech> <German> Abendd√§mmerung </German> <Polish> Zmierzch </Polish> <Russian> –°—Г–Љ–µ—А–Ї–Є </Russian> <Spanish> Atardecer </Spanish> <French> Soir </French> </Key> <Key ID="STR_f_param_timeOfDay_Option7"> <English> Night </English> <Czech> Noc </Czech> <German> Nacht </German> <Polish> Noc </Polish> <Russian> –Э–Њ—З—М </Russian> <Spanish> Noche </Spanish> <French> Nuit </French> </Key> <Key ID="STR_f_param_weather"> <English> Weather </English> </Key> <Key ID="STR_f_param_weather_Option0"> <English> Clear </English> <Czech> Jasno </Czech> <German> Klar </German> <Polish> Czysto </Polish> <Russian> –С–µ–Ј–Њ–±–ї–∞—З–љ–Њ </Russian> <Spanish> Despejado </Spanish> <French> D√©gag√© </French> </Key> <Key ID="STR_f_param_weather_Option1"> <English> Overcast </English> <Czech> Zata≈Њeno </Czech> <German> Bew√ґlkt </German> <Polish> Zachmurzenie </Polish> <Russian> –Ю–±–ї–∞—З–љ–Њ </Russian> <Spanish> Nublado </Spanish> <French> Couvert </French> </Key> <Key ID="STR_f_param_weather_Option2"> <English> Light Fog </English> <Czech> Slab√° mlha </Czech> <German> Leichter Nebel </German> <Polish> Lekka Mgla </Polish> <Russian> –Ґ—Г–Љ–∞–љ </Russian> <Spanish> Bruma </Spanish> <French> Brume </French> </Key> <Key ID="STR_f_param_weather_Option3"> <English> Heavy Fog </English> <Czech> Hust√° mlha </Czech> <German> Dichter Nebel </German> <Polish> Ciezka Mgla </Polish> <Russian> –У—Г—Б—В–Њ–є —В—Г–Љ–∞–љ </Russian> <Spanish> Niebla </Spanish> <French> Brouillard </French> </Key> <Key ID="STR_f_param_weather_Option4"> <English> Storm </English> <Czech> Boure </Czech> <German> Gewitter </German> <Polish> Burza </Polish> <Russian> –У—А–Њ–Ј–∞ </Russian> <Spanish> Tormenta </Spanish> <French> Averse </French> </Key> <Key ID="STR_f_param_AISkill_Friendly"> <English> AI Skill (Friendly) </English> <Czech> √Ъrove≈И AI (Friendly) </Czech> <German> KI St√§rke (Freundlich) </German> <Polish> UmiejƒЩtno≈Ыci SI (Friendly) </Polish> <Russian> –Э–∞–≤—Л–Ї –Ш–Ш (–°–≤–Њ–Є) </Russian> <Spanish> Habilidad de la IA (Amistoso): </Spanish> <French> Capacit√© IA (Alli√©s) </French> </Key> <Key ID="STR_f_param_AISkill_Enemy"> <English> AI Skill (Enemy) </English> <Czech> √Ъrove≈И AI (Enemy) </Czech> <German> KI St√§rke (Feindlich) </German> <Polish> UmiejƒЩtno≈Ыci SI (Enemy) </Polish> <Russian> –Э–∞–≤—Л–Ї –Ш–Ш (–Т—А–∞–≥–Є) </Russian> <Spanish> Habilidad de la IA (Enemigo): </Spanish> <French> Capacit√© IA (Enemies) </French> </Key> <Key ID="STR_f_param_AISkill_BLUFOR"> <English> AI Skill (BLUFOR) </English> <Czech> √Ъrove≈И AI (BLUFOR) </Czech> <German> KI St√§rke (BLUFOR) </German> <Polish> UmiejƒЩtno≈Ыci SI (BLUFOR): </Polish> <Russian> –Э–∞–≤—Л–Ї –Ш–Ш (BLUFOR) </Russian> <Spanish> Habilidad de la IA (BLUFOR): </Spanish> <French> Capacit√© IA (BLUFOR) </French> </Key> <Key ID="STR_f_param_AISkill_OPFOR"> <English> AI Skill (OPFOR) </English> <Czech> √Ъrove≈И AI (OPFOR) </Czech> <German> KI St√§rke (OPFOR) </German> <Polish> UmiejƒЩtno≈Ыci SI (OPFOR) </Polish> <Russian> –Э–∞–≤—Л–Ї –Ш–Ш (OPFOR) </Russian> <Spanish> Habilidad de la IA (OPFOR) </Spanish> <French> Capacit√© IA (OPFOR) </French> </Key> <Key ID="STR_f_param_AISkill_Option0"> <English> Super </English> <Czech> Super </Czech> <German> Super </German> <Polish> Super </Polish> <Russian> –°—Г–њ–µ—А </Russian> <Spanish> S√Їper </Spanish> <French> Super </French> </Key> <Key ID="STR_f_param_AISkill_Option1"> <English> High </English> <Czech> Vysok√° </Czech> <German> Stark </German> <Polish> Wysoka </Polish> <Russian> –Т—Л—Б–Њ–Ї–Є–є </Russian> <Spanish> Alta </Spanish> <French> √Йlev√© </French> </Key> <Key ID="STR_f_param_AISkill_Option2"> <English> Medium </English> <Czech> St≈Щedn√≠ </Czech> <German> Mittel </German> <Polish> ≈Ъrednia </Polish> <Russian> –°—А–µ–і–љ–Є–є </Russian> <Spanish> Media </Spanish> <French> Moyen </French> </Key> <Key ID="STR_f_param_AISkill_Option3"> <English> Low </English> <Czech> St≈Щedn√≠ </Czech> <German> Schwach </German> <Polish> Niska </Polish> <Russian> –Э–Є–Ј–Ї–Є–є </Russian> <Spanish> Baja </Spanish> <French> Bas </French> </Key> <Key ID="STR_f_UnauthorisedCrew_Warning"> <English> You are not authorised to crew this vehicle! </English> <Czech> Nejsi opr√°vnƒЫn√љ k nastoupen√≠ do tohoto vozidla! </Czech> <German> Sie sind nicht zur Benutzung dieses Fahrzeugs autorisiert! </German> <Polish> Jeste≈Ы nieupowa≈Љniony do prowadzenia tego pojazdu! </Polish> <Russian> –Т—Л –љ–µ —Г–њ–Њ–ї–љ–Њ–Љ–Њ—З–µ–љ—Л —Г–њ—А–∞–≤–ї—П—В—М —Н—В–Њ–є —В–µ—Е–љ–Є–Ї–Њ–є! </Russian> <Spanish> ¬°No est√°s autorizado a utilizar este veh√≠culo! </Spanish> <French> Vous nвАЩ√™tes pas autoris√© √† acceder √† ce v√©hicule! </French> </Key> <Key ID="STR_f_mapClickTeleportAction"> <English> Teleport </English> </Key> <Key ID="STR_f_mapClickTeleportSelect"> <English> Click on the map to set teleport coordinates. </English> </Key> <Key ID="STR_f_mapClickTeleportDone"> <English> You have teleported to your chosen location. </English> </Key> </Container> </Package> </Project>�rФыYҐи€Ћ7†µW≠lдўO