briefing.htmlь CKАdescription.extс&NKшdialogs\mca_buy_AFRU.hpp0бDKХ dialogs\mca_buy_AFUS.hpp5бDKХ dialogs\mca_buy_HFRU.hpp8бDK™ dialogs\mca_buy_HFUS.hpp<бDK™ dialogs\mca_buy_LFRU.hpp@бDKЅ dialogs\mca_buy_LFUS.hppDбDK™ dialogs\mca_common.hppюИBKs<dialogs\mca_queue_AF.hppбDKqdialogs\mca_queue_HF.hpp#бDKodialogs\mca_queue_LF.hpp'бDKndialogs\mca_respawn.hpp∞LKЃinit.sqfn'NKцSmca_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Я$NKҐmca_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.sqf7#NKкmca_hq_init.sqfF√LK»Еmca_income.sqfь®CKАmca_jip.sqfIјLK/mca_onAirFactoryDestroyed.sqfMNKomca_onBarracksDestroyed.sqfSNK1mca_onCrateDestroyed.sqfQ`CKDmca_onFieldHospitalDestroyed.sqfЖNKrmca_onHeavyFactoryDestroyed.sqf_NKНmca_onLightFactoryDestroyed.sqfeNKНmca_onMashDestroyed.sqfTNKТmca_onPlayerKilled.sqfУƒIK5#mca_onPlayerRespawn.sqf§ЊLKpmca_onPowerGenDestroyed.sqfnNK_mca_onRadioTerminalDestroyed.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ҐЊLK1mca_respawn_update.sqf°ЊLK6mca_show_gameScore.sqf™dCK"mca_side_markers_resync.sqf[NKц2mca_silvie.sqfeCKЫmca_townMarkers_init.sqfsCK∞mission.sqmњ-NKСАRoS.sqfњLKstringtable.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>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; }; }; 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=TRUE; movingEnabled=TRUE; 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; }; class mca_buy_AFRU_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; }; class mca_buy_AFRU_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; }; class mca_buy_AFRU_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_AFRU_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_AFRU_lb1 : HW_RscGUIListBox //List { idc = 41; 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; 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; }; class mca_buy_AFRU_text1 : HW_RscText { idc = 44; 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; 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; 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; 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=TRUE; movingEnabled=TRUE; 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; }; class mca_buy_AFUS_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; }; class mca_buy_AFUS_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; }; class mca_buy_AFUS_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_AFUS_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_AFUS_lb1 : HW_RscGUIListBox //List { idc = 31; 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_AFUS_lb2 : HW_RscGUIListBox //Queue-List { idc = 32; 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_AFUS_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; text = "Aircraft Purchase Menu"; sizeEx = 0.04; }; class mca_buy_AFUS_text1 : HW_RscText { idc = 34; 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; 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; 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; 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=TRUE; movingEnabled=TRUE; 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; }; class mca_buy_HFRU_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; }; class mca_buy_HFRU_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; }; class mca_buy_HFRU_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_HFRU_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_HFRU_lb1 : HW_RscGUIListBox //List { idc = 11; 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; 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; }; class mca_buy_HFRU_text1 : HW_RscText { idc = 14; 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; 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; 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; 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=TRUE; movingEnabled=TRUE; 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; }; class mca_buy_HFUS_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; }; class mca_buy_HFUS_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; }; class mca_buy_HFUS_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_HFUS_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_HFUS_lb1 : HW_RscGUIListBox //List { idc = 21; 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_HFUS_lb2 : HW_RscGUIListBox //Queue-List { idc = 22; 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_HFUS_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.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; text = "Total Cost: 0"; }; class mca_buy_HFUS_btn_OK : HW_RscGUIShortcutButton { idc=-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; 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; 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=TRUE; movingEnabled=TRUE; 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; }; class mca_buy_LFRU_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; }; class mca_buy_LFRU_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; }; class mca_buy_LFRU_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_LFRU_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_LFRU_lb1 : HW_RscGUIListBox //List { idc = 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_LFRU_lb2 : HW_RscGUIListBox //Queue-List { idc = 2; 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_LFRU_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.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; text = "Total Cost: 0"; }; class mca_buy_LFRU_btn_OK : HW_RscGUIShortcutButton { idc=-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; 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; 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=TRUE; movingEnabled=TRUE; 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; }; class mca_buy_LFUS_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; }; class mca_buy_LFUS_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; }; class mca_buy_LFUS_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_LFUS_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_buy_LFUS_lb1 : HW_RscGUIListBox //List { idc = 91; 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_LFUS_lb2 : HW_RscGUIListBox //Queue-List { idc = 92; 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_LFUS_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.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; text = "Total Cost: 0"; }; class mca_buy_LFUS_btn_OK : HW_RscGUIShortcutButton { idc=-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; 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; 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=TRUE; movingEnabled=TRUE; 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; }; class mca_queue_AF_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; }; class mca_queue_AF_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; }; class mca_queue_AF_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_queue_AF_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_queue_AF_lb1 : HW_RscGUIListBox //List { idc = 6; 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; 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; text = "Aircraft Factory Queue View"; sizeEx = 0.04; }; class mca_queue_AF_btn_OK : HW_RscGUIShortcutButton { idc=-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=TRUE; movingEnabled=TRUE; 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; }; class mca_queue_HF_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; }; class mca_queue_HF_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; }; class mca_queue_HF_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_queue_HF_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_queue_HF_lb1 : HW_RscGUIListBox //List { idc = 15; 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_HF_lb2 : HW_RscGUIListBox //Queue-List { idc = 8; 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_HF_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; text = "Heavy Factory Queue View"; sizeEx = 0.04; }; class mca_queue_HF_btn_OK : HW_RscGUIShortcutButton { idc=-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=TRUE; movingEnabled=TRUE; 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; }; class mca_queue_LF_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; }; class mca_queue_LF_bgf3 : RscBackground { x = 0.1; y = 0.9-0.005; w = 0.8; h = 0.005; }; class mca_queue_LF_bgf2 : RscBackground { x = 0.1; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_queue_LF_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_queue_LF_lb1 : HW_RscGUIListBox //List { idc = 5; 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_LF_lb2 : HW_RscGUIListBox //Queue-List { idc = 7; 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_LF_title : HW_RscText { x = 0.1; y = 0.1; w = 0.8; h = 0.1; text = "Light Factory Queue View"; sizeEx = 0.04; }; class mca_queue_LF_btn_OK : HW_RscGUIShortcutButton { idc=-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; 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; }; class mca_respawn_bgf1 : RscBackground { x = 0.1; y = 0.1; w = 0.8; h = 0.005; }; 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; }; class mca_respawn_bgf4 : RscBackground { x = 0.9-0.005; y = 0.1; w = 0.005; h = 0.8-0.005; }; class mca_respawn_lb1 : HW_RscGUIListBox //List { idc = 101; 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; text = "Select your Respawn Place"; sizeEx = 0.04; }; class mca_respawn_counter : RscText { idc = 102; 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; 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; 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_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}; mcti_param_startingMoney = (paramsarray select 3); // selector is near money variables mcti_param_silvie = (paramsarray select 4); // 0 | 1 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [] 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";}; // 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 { 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/>Version 0.1 (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_coin_init.sqf // version 1.0s if (isServer) then { private ["_who", "_init"]; // EH RU MHQ RU_MHQ addEventHandler ["GetOut", { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// text of mca_coin_ru_init.sqf // mca_coin_ru_init.sqf // [vehicle, position, unit] is passed _who = _this select 2; if (_who == RU_player_1) then { "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_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"], ["Land_tent_east", "Storage", 100, "Small 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, "Land_fort_bagfence_long"], ["Land_fort_bagfence_corner", "Barriers", 50, "Land_fort_bagfence_corner"], ["Land_fort_bagfence_round", "Barriers", 50, "Land_fort_bagfence_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"] ] ]; 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"]; // 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"; }; // }]; }; 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", { //[] execVM "mca_coin_us_init.sqf"; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// text of mca_coin_us_init.sqf // mca_coin_us_init.sqf // [vehicle, position, unit] is passed _who = _this select 2; if (_who == US_player_1) then { "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_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"], ["Land_tent_east", "Storage", 100, "Small 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, "Land_fort_bagfence_long"], ["Land_fort_bagfence_corner", "Barriers", 50, "Land_fort_bagfence_corner"], ["Land_fort_bagfence_round", "Barriers", 50, "Land_fort_bagfence_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"] ] ]; 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"]; // 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_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)); }]; }; 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 * 30); _xR = _xC + _r * cos (_angle); _yR = _yC + _r * sin (_angle); while { surfaceIsWater [_xR, _yR] } do { _angle = random 360; _r = random (_townSize * 30); _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; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // следующий город _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 r1 40vs40 (ds)"; briefingDescription="MCTI r1 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>�ТЁб¶fбPюВнYpУЃїсJ