From a3f43148874765d15b5064ecbc9961f61249b3a3 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 30 Mar 2021 21:21:02 +0200 Subject: [PATCH 01/15] Add give food You can now give banana to feed civilian Removing banan from inventory descrease reputation --- .../core/def/mission.sqf | 2 + .../core/fnc/compile.sqf | 2 + .../core/fnc/eh/headless.sqf | 1 + .../core/fnc/eh/server.sqf | 1 + .../core/fnc/int/add_actions.sqf | 2 + .../core/fnc/int/giveFood.sqf | 40 +++++++++++++++++++ .../core/fnc/rep/foodRemoved.sqf | 36 +++++++++++++++++ 7 files changed, 84 insertions(+) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index b643ce4fa..86a00f74b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -691,6 +691,7 @@ btc_rep_bonus_mil_killed = 0.25; btc_rep_bonus_IEDCleanUp = 10; btc_rep_bonus_removeTag = 3; btc_rep_bonus_removeTagLetter = 0.5; +btc_rep_bonus_giveFood = 10; btc_rep_malus_civ_hd = - 2; btc_rep_malus_animal_hd = - 1; @@ -701,6 +702,7 @@ btc_rep_malus_player_respawn = - 10; btc_rep_malus_veh_killed = - 25; btc_rep_malus_building_damaged = - 2.5; btc_rep_malus_building_destroyed = - 5; +btc_rep_bonus_removeFood = - btc_rep_bonus_giveFood; //Skill btc_AI_skill = _p_skill; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index d618d1819..08e3cd977 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -249,6 +249,7 @@ btc_fnc_patrol_disabled = compileScript ["core\fnc\patrol\disabled.sqf"]; //REP btc_fnc_rep_hd = compileScript ["core\fnc\rep\hd.sqf"]; btc_fnc_rep_suppressed = compileScript ["core\fnc\rep\suppressed.sqf"]; +btc_fnc_rep_foodRemoved = compileScript ["core\fnc\rep\foodRemoved.sqf"]; //ARSENAL btc_fnc_arsenal_ammoUsage = compileScript ["core\fnc\arsenal\ammoUsage.sqf"]; @@ -306,6 +307,7 @@ if (!isDedicated) then { btc_fnc_int_orders = compileScript ["core\fnc\int\orders.sqf"]; btc_fnc_int_shortcuts = compileScript ["core\fnc\int\shortcuts.sqf"]; btc_fnc_int_terminal = compileScript ["core\fnc\int\terminal.sqf"]; + btc_fnc_int_giveFood = compileScript ["core\fnc\int\giveFood.sqf"]; //INFO btc_fnc_info_ask = compileScript ["core\fnc\info\ask.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf index ccfbd1b3c..f51f51764 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/headless.sqf @@ -41,3 +41,4 @@ Author: }, false, [], true] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; +["ace_disarming_dropItems", btc_fnc_rep_foodRemoved] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf index 741ecad09..22bed2ea0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf @@ -82,3 +82,4 @@ if (btc_p_set_skill) then { }, false] call CBA_fnc_addClassEventHandler; } forEach btc_civ_type_veh; ["ace_tagCreated", btc_fnc_tag_eh] call CBA_fnc_addEventHandler; +["ace_disarming_dropItems", btc_fnc_rep_foodRemoved] call CBA_fnc_addEventHandler; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index ac788156b..bb6d1127b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -129,6 +129,8 @@ _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["Ask_Reputation", localize "STR_BTC_HAM_ACTION_ORDERS_ASKREP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_target] spawn btc_fnc_info_ask_reputation;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && {side _target isEqualTo civilian}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; + _action = ["Give_banana", "Give banana", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[player, _target] call btc_fnc_int_giveFood}, {alive _target && {"ACE_Banana" in items player}}] call ace_interact_menu_fnc_createAction; + [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; //remove ace3 "get down" order [_x, 0, ["ACE_MainActions", "ACE_GetDown"]] call ace_interact_menu_fnc_removeActionFromClass; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf new file mode 100644 index 000000000..fb0fdc3aa --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf @@ -0,0 +1,40 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_int_giveFood + +Description: + Give food to a unit. + +Parameters: + _player - Player. [Object] + _target - Target. [Object] + +Returns: + +Examples: + (begin example) + [player, cursorObject] call btc_fnc_int_giveFood; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params [ + ["_player", player, [objNull]], + ["_target", objNull, [objNull]] +]; + +private _hadFood = "ACE_Banana" in items _target; +if ( + [player, "ACE_Banana"] call CBA_fnc_removeItem && + {[_target, "ACE_Banana", true] call CBA_fnc_addItem} +) then { + if (_hadFood) then { + systemChat "Thank you but I already have food"; + } else { + systemChat "Thank you"; + [btc_rep_bonus_giveFood, _player] remoteExecCall ["btc_fnc_rep_change", 2]; + }; +}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf new file mode 100644 index 000000000..3546a78f2 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -0,0 +1,36 @@ + +/* ---------------------------------------------------------------------------- +Function: btc_fnc_rep_foodRemoved + +Description: + Change reputation if food is removed. + +Parameters: + _caller - Caller (player). [Object] + _unit - Target. [Object] + _listOfItemsToRemove - Classnames. [Array] + +Returns: + +Examples: + (begin example) + [player, cursorObject, ["ACE_Banana"]] call btc_fnc_rep_foodRemoved; + (end) + +Author: + Vdauphin + +---------------------------------------------------------------------------- */ + +params ["_caller", "_target", "_listOfItemsToRemove"]; + +if ( + (side group _target) isEqualTo civilian && + {"ACE_Banana" in _listOfItemsToRemove} +) then { + if (isServer) then { + [btc_rep_bonus_removeFood, _caller] call btc_fnc_rep_change; + } else { + [btc_rep_bonus_removeFood, _caller] remoteExecCall ["btc_fnc_rep_change", 2]; + }; +}; From a29cf14f3314c0fa8bc0fdc176a315529581a806 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 31 Mar 2021 18:18:31 +0200 Subject: [PATCH 02/15] Lower reputation gain and add stringatable --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- .../core/fnc/int/add_actions.sqf | 2 +- .../core/fnc/int/giveFood.sqf | 7 +++++-- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 6 ++++++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 86a00f74b..573e000d9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -691,7 +691,7 @@ btc_rep_bonus_mil_killed = 0.25; btc_rep_bonus_IEDCleanUp = 10; btc_rep_bonus_removeTag = 3; btc_rep_bonus_removeTagLetter = 0.5; -btc_rep_bonus_giveFood = 10; +btc_rep_bonus_giveFood = 0.5; btc_rep_malus_civ_hd = - 2; btc_rep_malus_animal_hd = - 1; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index bb6d1127b..eaefed417 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -129,7 +129,7 @@ _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["Ask_Reputation", localize "STR_BTC_HAM_ACTION_ORDERS_ASKREP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_target] spawn btc_fnc_info_ask_reputation;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && {side _target isEqualTo civilian}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Give_banana", "Give banana", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[player, _target] call btc_fnc_int_giveFood}, {alive _target && {"ACE_Banana" in items player}}] call ace_interact_menu_fnc_createAction; + _action = ["Give_food", localize "STR_BTC_HAM_ACTION_GIVEFOOD", "\z\ace\addons\common\data\icon_banana_ca.paa", {[player, _target] call btc_fnc_int_giveFood}, {alive _target && {"ACE_Banana" in items player}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; //remove ace3 "get down" order diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf index fb0fdc3aa..d58fee560 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf @@ -31,10 +31,13 @@ if ( [player, "ACE_Banana"] call CBA_fnc_removeItem && {[_target, "ACE_Banana", true] call CBA_fnc_addItem} ) then { + _player switchMove "ainvpknlmstpslaywrfldnon_1"; + + private _isInterpreter = player getVariable ["interpreter", false]; if (_hadFood) then { - systemChat "Thank you but I already have food"; + [name _target, localize (["STR_BTC_HAM_CON_INFO_ASKREP_NOINTER", "STR_BTC_HAM_CON_INT_ALRGIVEFOOD"] select _isInterpreter)] call btc_fnc_showSubtitle; } else { - systemChat "Thank you"; + [name _target, localize (["STR_BTC_HAM_CON_INFO_ASKREP_NOINTER", "str_a3_rscdisplaywelcome_kart_pard_footer2"] select _isInterpreter)] call btc_fnc_showSubtitle; [btc_rep_bonus_giveFood, _player] remoteExecCall ["btc_fnc_rep_change", 2]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index b10b3b461..1d66b0b8b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -1608,6 +1608,9 @@ 询问声誉情况 Demander la réputation + + Give a banana + @@ -1961,6 +1964,9 @@ 不! 老子想去哪就去哪! Non ! Je vais où je veux ! + + Thank you but I already have food + From d4a39503fc37f8b5f4363202e863492184804762 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 10 Apr 2021 19:18:53 +0200 Subject: [PATCH 03/15] Update documentation --- =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml | 4 ++-- README.md | 2 +- docs/InGame-documentation.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml index 1d66b0b8b..48f7ee75e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml +++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml @@ -202,12 +202,12 @@ Réputation - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead. Reputation can be ask to civilian. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Good actions:</marker><br/> Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bad actions:</marker><br/> Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, damaging/destroying buildings, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead. Reputation can be ask to civilian. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Good actions:</marker><br/> Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, give banana, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bad actions:</marker><br/> Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, remove banana, firing to civilian car, damaging/destroying buildings, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> La reputación se puede solicitar a los civiles<br/> Las malas acciones causan malos efectos sobre la reputacion.<br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ayudar a la población local luchando contra los Oplitas y desarmando los artefactos explosivos improvisados aumentará tu reputación; matar civiles, mutilar civiles vivos/muertos, disparar cerca de civiles sin razón alguna, disparar a vehículos civiles, dañar/destruir edificios, perder vehículos, respawns de jugadores disminuirá tu reputación. Al principio tienes un nivel de reputación muy bajo, por lo que los civiles no te ayudarán a revelar información importante sobre los Oplitas, es probable que mientan en su lugar.<br/> Abortar una misión secundaria no afecta a la reputación. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> Ihr Ansehen bei der Bevölkerung können Sie bei Zivilisten erfragen <br/> Schlechte bzw. böse Handlungen habe zur Folge das ihr Ansehen sinkt. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Das Unterstützen der lokalen Bevölkerung, das Entschärfen von IEDs und der aktive Kampf gegen die Oplitas wird sich positiv auf ihr Ansehen auswirken. Negative Aktionen wie zb. das Töten oder verstümmeln von Zivlisten, das grundlose Abfeueren einer Waffe in der Nähe von Zivilisten, das Zerstören oder Beschädigen von Gebäuden, der Angriff auf zivile Fahrzeuge, der Verlust von Fahrzeugen im Allgemeinen oder das Respawnen haben hingegen einen nicht so guten Effekt. Zu Beginn ist Ihr Ansehen nur recht gering, weshalb es sein kann das Zivlisten eher zruückhaltend mit Informationen sind. In manchen Fällen werden die Zivilisten Sie auch einfach belügen.<br/> Das Abbrechen von Nebenaufgaben hat keine Auswirkung auf Ihr Ansehen. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa' width='20' height='20'/> A Reputação entre a população é obtida por meio dos civis <br/> Ações ruins ou más fazem a reputação diminuir. <br/> <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> Ajudar a população local combatendo os inimigos e desarmando os IED's aumentará sua reputação. Matar civis, mutilar civis vivos/mortos, atirar perto de civis sem motivo, atirar nos veículos civis, danificar/destruir prédios, perder veículos civis, respawns de jogadores diminuirão a reputação. No começo, o nível de reputação é muito baixo, então, os civis não irão ajudá-lo a revelar informações importantes sobre os inimigos ou provavelmente irão mentir.<br/> Cancelar tarefas secundárias não afeta a reputação. <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>System:</marker><br/> 在任务开始时, 你只有很低的声誉, 所以平民不会向你展示关于Oplitas的重要信息, 他们更倾向于说谎。可以通过询问平民来获知声誉状况。<br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>善举:</marker><br/> 帮助当地居民反抗Oplitas, 拆除IED, 救助平民, 使用红色喷漆去除涂鸦, 完成支线任务和摧毁武器箱/藏匿点将会提升你的声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>恶行:</marker><br/> 恶行将会酿成恶果: 击杀或残害平民/动物、毫无理由地向平民身边射击、攻击民用车辆、毁坏或摧毁建筑物、损失我方载具和玩家重生均会降低声誉。中止支线任务不会影响声誉。<br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> - <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système:</marker><br/> Au début, vous avez un niveau de réputation très bas, donc les civils ne vous aideront pas à révéler des informations importantes sur les Oplitas, ils mentiront probablement à la place. La réputation peut être demandée à des civils. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bonnes actions:</marker><br/> Aider la population locale en combattant les Oplitas, en désarmant les engins piégés, en soignant les civils, en retirant le tag avec de la peinture rouge en spray, en réussissant la mission secondaire et en détruisant la cache d'arme / planque augmentera votre réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Mauvaises actions:</marker><br/> Les mauvaises actions provoquent de mauvais effets: tuer des civils / animaux, mutiler des civils / animaux vivants / morts, tirer à proximité de civils sans raison, tirer sur une voiture civile, endommager / détruire des bâtiments, perdre les véhicules des joueurs et la réapparition des joueurs diminuera votre réputation. L'annulation d'une mission secondaire n'affecte pas la réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> + <img image='\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Système:</marker><br/> Au début, vous avez un niveau de réputation très bas, donc les civils ne vous aideront pas à révéler des informations importantes sur les Oplitas, ils mentiront probablement à la place. La réputation peut être demandée à des civils. <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_picture_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Bonnes actions:</marker><br/> Aider la population locale en combattant les Oplitas, en désarmant les engins piégés, en soignant les civils, donner une banane, en retirant le tag avec de la peinture rouge en spray, en réussissant la mission secondaire et en détruisant la cache d'arme / planque augmentera votre réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_4_co.paa' width='355' height='200' /> <br/><br/> <img image='\a3\Ui_f\data\GUI\Cfg\Debriefing\endDefault_ca.paa' width='20' height='20'/> <marker name='blufor_base'>Mauvaises actions:</marker><br/> Les mauvaises actions provoquent de mauvais effets: tuer des civils / animaux, mutiler des civils / animaux vivants / morts, tirer à proximité de civils sans raison, retirer une banane, tirer sur une voiture civile, endommager / détruire des bâtiments, perdre les véhicules des joueurs et la réapparition des joueurs diminuera votre réputation. L'annulation d'une mission secondaire n'affecte pas la réputation. <br/><br/> <img image='\a3\missions_f_orange\Data\Img\AAN\aan_3_3_co.paa' width='355' height='200'/> <br/><br/> <img image='\A3\Data_F_Orange\Logos\arma3_orange_artwork.jpg' width='362' height='512' /> <br/><br/> diff --git a/README.md b/README.md index 9848adb12..aa7ee35eb 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ The militia has an unknown number of hideouts in the island that need to be dest They have also ammo caches in various locations, destroy them to weaken its power. Bad actions cause bad effects. -Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, damaging/destroying buildings, losing vehicles, respawns will decrease your reputation. +Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, remove banana, damaging/destroying buildings, losing vehicles, respawns will decrease your reputation. At the beginning you have a very low reputation level, so civilians won't help you revealing important information about Oplitas, they will likely lie instead.

diff --git a/docs/InGame-documentation.md b/docs/InGame-documentation.md index d363bb088..d8542bd04 100644 --- a/docs/InGame-documentation.md +++ b/docs/InGame-documentation.md @@ -118,9 +118,9 @@ When you destroy an hideout or an ammo cache, all the markers related to it will ### System: At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead. Reputation can be ask to civilian. ### Good actions: -Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. +Helping the local population by fighting the Oplitas, disarming IED's, heal civilians, give banana, remove tag with spraypaint red, succed side mission and destroy cache/hideout will rise your reputation. ### Bad actions: -Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, firing to civilian car, damaging/destroying buildings, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. +Bad actions cause bad effects: killing civilians/animals, mutilating alive/dead civilians/animals, firing near civilians for no reason, remove banana, firing to civilian car, damaging/destroying buildings, losing player's vehicles and player respawns will decrease your reputation. Aborting a side mission does not affect reputation. ## Civil Orders Any player can give orders to civilians. To do this, just open your self interaction menu and select 'ORDERS' or use one of the shortcuts. Shortcuts can changed under 'configure >> controls>> configure addons >> Hearts and Minds: Mission (drop down menu)'. Your options are: From fef6c498168baf3484e5fde02d58e4bf78a62457 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 25 Apr 2021 10:47:46 +0200 Subject: [PATCH 04/15] Change file name to btc_fnc_int_foodGive --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf | 2 +- .../core/fnc/int/add_actions.sqf | 2 +- .../core/fnc/int/{giveFood.sqf => foodGive.sqf} | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/{giveFood.sqf => foodGive.sqf} (93%) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 08e3cd977..eac6617de 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -307,7 +307,7 @@ if (!isDedicated) then { btc_fnc_int_orders = compileScript ["core\fnc\int\orders.sqf"]; btc_fnc_int_shortcuts = compileScript ["core\fnc\int\shortcuts.sqf"]; btc_fnc_int_terminal = compileScript ["core\fnc\int\terminal.sqf"]; - btc_fnc_int_giveFood = compileScript ["core\fnc\int\giveFood.sqf"]; + btc_fnc_int_foodGive = compileScript ["core\fnc\int\foodGive.sqf"]; //INFO btc_fnc_info_ask = compileScript ["core\fnc\info\ask.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf index eaefed417..f7da37f45 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf @@ -129,7 +129,7 @@ _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; _action = ["Ask_Reputation", localize "STR_BTC_HAM_ACTION_ORDERS_ASKREP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_target] spawn btc_fnc_info_ask_reputation;}, {alive _target && {[_target] call ace_common_fnc_isAwake} && {side _target isEqualTo civilian}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["Give_food", localize "STR_BTC_HAM_ACTION_GIVEFOOD", "\z\ace\addons\common\data\icon_banana_ca.paa", {[player, _target] call btc_fnc_int_giveFood}, {alive _target && {"ACE_Banana" in items player}}] call ace_interact_menu_fnc_createAction; + _action = ["Give_food", localize "STR_BTC_HAM_ACTION_GIVEFOOD", "\z\ace\addons\common\data\icon_banana_ca.paa", {[player, _target] call btc_fnc_int_foodGive}, {alive _target && {"ACE_Banana" in items player}}] call ace_interact_menu_fnc_createAction; [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; //remove ace3 "get down" order diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf similarity index 93% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf index d58fee560..0bd433bcf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/giveFood.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- -Function: btc_fnc_int_giveFood +Function: btc_fnc_int_foodGive Description: Give food to a unit. @@ -13,7 +13,7 @@ Returns: Examples: (begin example) - [player, cursorObject] call btc_fnc_int_giveFood; + [player, cursorObject] call btc_fnc_int_foodGive; (end) Author: From dc8b94ba418aea44f1c6ad0b4b84eb9c0872e144 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 25 Apr 2021 11:07:07 +0200 Subject: [PATCH 05/15] FIX: Animation put down --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf index 0bd433bcf..7baf7d1ff 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf @@ -31,7 +31,7 @@ if ( [player, "ACE_Banana"] call CBA_fnc_removeItem && {[_target, "ACE_Banana", true] call CBA_fnc_addItem} ) then { - _player switchMove "ainvpknlmstpslaywrfldnon_1"; + [_player, "PutDown"] call ace_common_fnc_doGesture; private _isInterpreter = player getVariable ["interpreter", false]; if (_hadFood) then { From 63e3ee3f0e27a80268271d04a157980231d7fdec Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 2 May 2021 11:47:39 +0200 Subject: [PATCH 06/15] Reduce lag on first city activation --- .../core/fnc/city/findPos.sqf | 48 ------------------- .../core/fnc/civ/populate.sqf | 2 +- .../core/fnc/compile.sqf | 1 - .../core/fnc/delay/createUnit.sqf | 6 +-- .../core/fnc/delay/createVehicle.sqf | 2 +- .../core/fnc/mil/create_group.sqf | 15 +++++- 6 files changed, 19 insertions(+), 55 deletions(-) delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf deleted file mode 100644 index 3917ac4ca..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/findPos.sqf +++ /dev/null @@ -1,48 +0,0 @@ - -/* ---------------------------------------------------------------------------- -Function: btc_fnc_city_findPos - -Description: - Find a random and safe position in a city (not inside rock). - -Parameters: - _city - City object or position search for a random and safe position. [Object, Array] - _area - Size of the area to search. [Number] - _p_sea - Allow position in water. [Boolean] - -Returns: - _rpos - [Array] - _pos_iswater - [Boolean] - -Examples: - (begin example) - _results = [[0, 0, 0], 100, true] call btc_fnc_city_findPos; - (end) - -Author: - Giallustio - ----------------------------------------------------------------------------- */ - -params [ - ["_city", objNull, [objNull, []]], - ["_area", 300, [0]], - ["_p_sea", btc_p_sea, [true]] -]; - -if (_city isEqualType objNull) then { - _city = position _city; -}; - -private _rpos = [_city, _area, _p_sea] call btc_fnc_randomize_pos; - -private _pos_iswater = surfaceIsWater _rpos; -if !(_pos_iswater) then { - private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; - if (_newpos isNotEqualTo []) then { - _rpos = _newpos; - }; - _rpos = [_rpos] call btc_fnc_findPosOutsideRock; -}; - -[_rpos, _pos_iswater] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf index a602228a9..faf1eeb3c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf @@ -38,6 +38,6 @@ for "_i" from 1 to _n do { private _group = createGroup civilian; _group setVariable ["btc_city", _city]; _group setVariable ["btc_data_inhouse", [_pos]]; - [_group, _pos] call btc_fnc_civ_addWP; + [[_group, _pos], btc_fnc_civ_addWP] call btc_fnc_delay_exec; [_group, selectRandom btc_civ_type_units, _pos] call btc_fnc_delay_createUnit; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 9712d78e4..e9890c319 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -39,7 +39,6 @@ if (isServer) then { btc_fnc_city_de_activate = compileScript ["core\fnc\city\de_activate.sqf"]; btc_fnc_city_set_clear = compileScript ["core\fnc\city\set_clear.sqf"]; btc_fnc_city_trigger_player_side = compileScript ["core\fnc\city\trigger_player_side.sqf"]; - btc_fnc_city_findPos = compileScript ["core\fnc\city\findPos.sqf"]; btc_fnc_city_cleanUp = compileScript ["core\fnc\city\cleanUp.sqf"]; btc_fnc_city_trigger_free_condition = compileScript ["core\fnc\city\trigger_free_condition.sqf"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf index 6abf1514e..14f85d644 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf @@ -24,7 +24,7 @@ Author: ---------------------------------------------------------------------------- */ -btc_delay_createUnit = btc_delay_createUnit + 0.3; +btc_delay_createUnit = btc_delay_createUnit + 0.2; [{ params [ @@ -37,7 +37,7 @@ btc_delay_createUnit = btc_delay_createUnit + 0.3; if (isNull _group) exitWith { [format ["isNull _group _this = %1", _this], __FILE__, [btc_debug, btc_debug_log, true]] call btc_fnc_debug_message; - btc_delay_createUnit = btc_delay_createUnit - 0.3; + btc_delay_createUnit = btc_delay_createUnit - 0.2; }; private _unit = _group createUnit [_unit_type, _pos, [], 0, _special]; @@ -47,5 +47,5 @@ btc_delay_createUnit = btc_delay_createUnit + 0.3; _unit moveInAny _vehicle; }; - btc_delay_createUnit = btc_delay_createUnit - 0.3; + btc_delay_createUnit = btc_delay_createUnit - 0.2; }, _this, btc_delay_createUnit - 0.01] call CBA_fnc_waitAndExecute; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf index 455b67ec5..370f3626c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createVehicle.sqf @@ -86,4 +86,4 @@ btc_delay_createUnit = btc_delay_createUnit + 0.3; btc_delay_createUnit = btc_delay_createUnit - 0.3; }, _this, btc_delay_createUnit - 0.01] call CBA_fnc_waitAndExecute; -count (_this select 2) * 0.3 +count (_this select 2) * 0.2 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 64a097ca3..820a4b6bc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -41,7 +41,7 @@ params [ ]; _wp_ratios params ["_wp_house_probability", "_wp_sentry_probability"]; -([_city, _area] call btc_fnc_city_findPos) params ["_rpos", "_pos_iswater"]; +private _rpos = [_city call CBA_fnc_getPos, _area, _p_sea] call btc_fnc_randomize_pos; private _group_structure = [1, objNull]; if (_wp <= _wp_house_probability) then { // Find building ([_rpos, _n] call btc_fnc_mil_getBuilding) params ["_numberOfGroup", "_structure"]; @@ -53,6 +53,19 @@ if (_wp <= _wp_house_probability) then { // Find building }; _group_structure params ["_numberOfGroup", "_structure"]; +private _time = serverTime; +private _pos_iswater = surfaceIsWater _rpos; +if (_structure isNotEqualTo "") then { + if !(_pos_iswater) then { + private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; + if (_newpos isNotEqualTo []) then { + _rpos = _newpos; + }; + _rpos = [_rpos] call btc_fnc_findPosOutsideRock; + }; +}; +format ["%1 %2", -1, (serverTime - _time) * 1000] remoteExecCall ["systemChat", 0]; + private _groups = []; for "_i" from 1 to _numberOfGroup do { private _group = createGroup _enemy_side; From 98fec37efb41912d4aafbd55ae0293be86b12be1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 2 May 2021 12:16:57 +0200 Subject: [PATCH 07/15] Remove debug and simplify if --- .../core/fnc/mil/create_group.sqf | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 820a4b6bc..156ee6809 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -53,18 +53,17 @@ if (_wp <= _wp_house_probability) then { // Find building }; _group_structure params ["_numberOfGroup", "_structure"]; -private _time = serverTime; private _pos_iswater = surfaceIsWater _rpos; -if (_structure isNotEqualTo "") then { - if !(_pos_iswater) then { - private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; - if (_newpos isNotEqualTo []) then { - _rpos = _newpos; - }; - _rpos = [_rpos] call btc_fnc_findPosOutsideRock; +if ( + _structure isNotEqualTo "" && + {!_pos_iswater} +) then { + private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; + if (_newpos isNotEqualTo []) then { + _rpos = _newpos; }; + _rpos = [_rpos] call btc_fnc_findPosOutsideRock; }; -format ["%1 %2", -1, (serverTime - _time) * 1000] remoteExecCall ["systemChat", 0]; private _groups = []; for "_i" from 1 to _numberOfGroup do { From f746c84d14b00109bd9adabe6919c19859404660 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 2 May 2021 14:03:30 +0200 Subject: [PATCH 08/15] Delay find position --- .../core/fnc/delay/createUnit.sqf | 5 ++- .../core/fnc/mil/createUnits.sqf | 2 +- .../core/fnc/mil/create_group.sqf | 40 ++++++++++++------- .../core/fnc/mil/getBuilding.sqf | 4 +- 4 files changed, 32 insertions(+), 19 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf index 14f85d644..866fe9ce9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/delay/createUnit.sqf @@ -30,7 +30,7 @@ btc_delay_createUnit = btc_delay_createUnit + 0.2; params [ ["_group", grpNull, [grpNull]], ["_unit_type", "", [""]], - ["_pos", [0, 0, 0], [[]]], + ["_pos", [0, 0, 0], [[], createHashMap]], ["_special", "CARGO", [""]], ["_vehicle", objNull, [objNull]] ]; @@ -40,6 +40,9 @@ btc_delay_createUnit = btc_delay_createUnit + 0.2; btc_delay_createUnit = btc_delay_createUnit - 0.2; }; + if !(_pos isEqualType []) then { + _pos = _pos get "_pos"; + }; private _unit = _group createUnit [_unit_type, _pos, [], 0, _special]; [_unit] joinSilent _group; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf index ee00f4d85..eb948c0ec 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/createUnits.sqf @@ -27,7 +27,7 @@ Author: params [ ["_group", grpNull, [grpNull]], - ["_pos", [0, 0, 0], [[]]], + ["_pos", [0, 0, 0], [[], createHashMap]], ["_number", 0, [0]], ["_pos_iswater", false, [false]], ["_type_units", btc_type_units, [[]]], diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf index 156ee6809..6174e0264 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf @@ -41,11 +41,11 @@ params [ ]; _wp_ratios params ["_wp_house_probability", "_wp_sentry_probability"]; -private _rpos = [_city call CBA_fnc_getPos, _area, _p_sea] call btc_fnc_randomize_pos; +private _pos = [_city call CBA_fnc_getPos, _area, _p_sea] call btc_fnc_randomize_pos; private _group_structure = [1, objNull]; if (_wp <= _wp_house_probability) then { // Find building - ([_rpos, _n] call btc_fnc_mil_getBuilding) params ["_numberOfGroup", "_structure"]; - if (_structure isNotEqualTo "") then { + ([_pos, _n] call btc_fnc_mil_getBuilding) params ["_numberOfGroup", "_structure"]; + if (_structure isNotEqualTo objNull) then { _group_structure = [_numberOfGroup, _structure]; } else { _wp = _wp_sentry_probability; // Handle the case there is no building @@ -53,16 +53,22 @@ if (_wp <= _wp_house_probability) then { // Find building }; _group_structure params ["_numberOfGroup", "_structure"]; -private _pos_iswater = surfaceIsWater _rpos; +private _pos_iswater = surfaceIsWater _pos; +private _hashMapGroup = createHashMap; +_hashMapGroup set ["_pos", _pos]; if ( - _structure isNotEqualTo "" && + _structure isEqualTo objNull && {!_pos_iswater} ) then { - private _newpos = _rpos findEmptyPosition [0, 40, "B_soldier_AR_F"]; - if (_newpos isNotEqualTo []) then { - _rpos = _newpos; - }; - _rpos = [_rpos] call btc_fnc_findPosOutsideRock; + [_hashMapGroup, { + private _pos = _this get "_pos"; + private _newPos = _pos findEmptyPosition [0, 40, "B_soldier_AR_F"]; + if (_newPos isNotEqualTo []) then { + _pos = _newPos; + }; + _pos = [_pos] call btc_fnc_findPosOutsideRock; + _this set ["_pos", _pos]; + }] call btc_fnc_delay_exec; }; private _groups = []; @@ -80,19 +86,25 @@ for "_i" from 1 to _numberOfGroup do { _group setVariable ["btc_inHouse", typeOf _structure]; }; case (_wp > _wp_house_probability && _wp <= _wp_sentry_probability) : { - [_group, _rpos, _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", "LIMITED", "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; + [{ + params ["_group", "_hashMapGroup", "_area"]; + [_group, _hashMapGroup get "_pos", _area, 2 + floor (random 4), "MOVE", "SAFE", "RED", "LIMITED", "STAG COLUMN", "", [5, 10, 20]] call CBA_fnc_taskPatrol; + }, [_group, _hashMapGroup, _area], btc_delay_createUnit] call CBA_fnc_waitAndExecute; }; case (_wp > _wp_sentry_probability) : { [_group] call CBA_fnc_clearWaypoints; - [_group, _rpos, -1, "SENTRY", "AWARE", "RED"] call CBA_fnc_addWaypoint; + [{ + params ["_group", "_hashMapGroup"]; + [_group, _hashMapGroup get "_pos", -1, "SENTRY", "AWARE", "RED"] call CBA_fnc_addWaypoint; + }, [_group, _hashMapGroup], btc_delay_createUnit] call CBA_fnc_waitAndExecute; }; }; - [_group, _rpos, _n, _pos_iswater] call btc_fnc_mil_createUnits; + [_group, _hashMapGroup, _n, _pos_iswater] call btc_fnc_mil_createUnits; }; if (btc_debug_log) then { - [format ["_this = %1 ; POS %2 UNITS N %3 _wp_ratios %4", _this, _rpos, _n, _wp_ratios], __FILE__, [false]] call btc_fnc_debug_message; + [format ["_this = %1 ; POS %2 UNITS N %3 _wp_ratios %4", _this, _pos, _n, _wp_ratios], __FILE__, [false]] call btc_fnc_debug_message; }; _groups diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf index 093ab440d..6bcf5f51e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getBuilding.sqf @@ -31,9 +31,7 @@ private _structures = [_rpos, 70] call btc_fnc_mil_getStructures; if (_structures isEqualTo []) then { private _houses = [_rpos, 50] call btc_fnc_getHouses; - if (_houses isEqualTo []) then { - _structure = ""; - } else { + if (_houses isNotEqualTo []) then { _structure = selectRandom _houses; _n = 1; }; From e5eb831c94de759d2ef89ce650218249135ccc2c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 6 May 2021 13:25:28 +0200 Subject: [PATCH 09/15] use random syntaxe --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 9d999644a..52895432b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -120,7 +120,7 @@ if (_data_units isNotEqualTo []) then { if (_has_en) then { for "_i" from 1 to (round (_p_mil_group_ratio * (1 + random _max_number_group))) do { - [_city, _spawningRadius, 1 + round random [0, 1, 2], random 1] call btc_fnc_mil_create_group; + [_city, _spawningRadius, 1 + round random 2, random 1] call btc_fnc_mil_create_group; }; }; From 4f0e411b8d01bd9be7cd54e33eee80c2b72ddc7e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 6 May 2021 14:00:07 +0200 Subject: [PATCH 10/15] Door not lock after game saved --- .../core/fnc/city/activate.sqf | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 95ea46ee1..2693a3b9e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf @@ -289,13 +289,11 @@ if ( [[_city, _spawningRadius/3], btc_fnc_city_getHouses] call btc_fnc_delay_exec; }; -if (_city getVariable ["btc_city_houses", []] isNotEqualTo []) then { - [_city, btc_fnc_door_lock] call btc_fnc_delay_exec; +[_city, btc_fnc_door_lock] call btc_fnc_delay_exec; - if (btc_p_info_houseDensity > 0) then { - [_city, btc_fnc_info_createIntels] call btc_fnc_delay_exec; - }; -}; +if (btc_p_info_houseDensity > 0) then { + [_city, btc_fnc_info_createIntels] call btc_fnc_delay_exec; +}; private _civKilled = _city getVariable ["btc_rep_civKilled", []]; if (_civKilled isNotEqualTo []) then { From b03516909880f1088aecf63316096b2d72f4ccc1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 8 May 2021 20:54:36 +0200 Subject: [PATCH 11/15] Count the number of banana removed --- .../core/fnc/rep/foodRemoved.sqf | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf index 3546a78f2..343dedac0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -9,12 +9,13 @@ Parameters: _caller - Caller (player). [Object] _unit - Target. [Object] _listOfItemsToRemove - Classnames. [Array] + _listOfTextItems - Array of number of removed items. [Array] Returns: Examples: (begin example) - [player, cursorObject, ["ACE_Banana"]] call btc_fnc_rep_foodRemoved; + [player, cursorObject, ["ACE_Banana"], ["2"]] call btc_fnc_rep_foodRemoved; (end) Author: @@ -22,15 +23,20 @@ Author: ---------------------------------------------------------------------------- */ -params ["_caller", "_target", "_listOfItemsToRemove"]; +params ["_caller", "_target", "_listOfItemsToRemove", + ["_listOfTextItems", ["2"], [[]]] +]; if ( (side group _target) isEqualTo civilian && {"ACE_Banana" in _listOfItemsToRemove} ) then { + private _cfgWeapons = configFile >> "CfgWeapons"; + private _posItemInArray = _listOfItemsToRemove findIf {_x isKindOf ["ACE_Banana", _cfgWeapons]}; + private _repChange = btc_rep_bonus_removeFood * parseNumber (_listOfTextItems select _posItemInArray); if (isServer) then { - [btc_rep_bonus_removeFood, _caller] call btc_fnc_rep_change; + [_repChange, _caller] call btc_fnc_rep_change; } else { - [btc_rep_bonus_removeFood, _caller] remoteExecCall ["btc_fnc_rep_change", 2]; + [_repChange, _caller] remoteExecCall ["btc_fnc_rep_change", 2]; }; }; From a7f9964ece9ebbbbfa882fd236cf4ea765a56baf Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 8 May 2021 22:30:15 +0200 Subject: [PATCH 12/15] Change name convention --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf | 2 +- .../core/fnc/rep/foodRemoved.sqf | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index 573e000d9..5e3882389 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -691,7 +691,7 @@ btc_rep_bonus_mil_killed = 0.25; btc_rep_bonus_IEDCleanUp = 10; btc_rep_bonus_removeTag = 3; btc_rep_bonus_removeTagLetter = 0.5; -btc_rep_bonus_giveFood = 0.5; +btc_rep_bonus_foodGive = 0.5; btc_rep_malus_civ_hd = - 2; btc_rep_malus_animal_hd = - 1; @@ -702,7 +702,7 @@ btc_rep_malus_player_respawn = - 10; btc_rep_malus_veh_killed = - 25; btc_rep_malus_building_damaged = - 2.5; btc_rep_malus_building_destroyed = - 5; -btc_rep_bonus_removeFood = - btc_rep_bonus_giveFood; +btc_rep_malus_foodRemove = - btc_rep_bonus_foodGive; //Skill btc_AI_skill = _p_skill; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf index 7baf7d1ff..bfefeb888 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/foodGive.sqf @@ -38,6 +38,6 @@ if ( [name _target, localize (["STR_BTC_HAM_CON_INFO_ASKREP_NOINTER", "STR_BTC_HAM_CON_INT_ALRGIVEFOOD"] select _isInterpreter)] call btc_fnc_showSubtitle; } else { [name _target, localize (["STR_BTC_HAM_CON_INFO_ASKREP_NOINTER", "str_a3_rscdisplaywelcome_kart_pard_footer2"] select _isInterpreter)] call btc_fnc_showSubtitle; - [btc_rep_bonus_giveFood, _player] remoteExecCall ["btc_fnc_rep_change", 2]; + [btc_rep_bonus_foodGive, _player] remoteExecCall ["btc_fnc_rep_change", 2]; }; }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf index 343dedac0..199e569de 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -33,7 +33,7 @@ if ( ) then { private _cfgWeapons = configFile >> "CfgWeapons"; private _posItemInArray = _listOfItemsToRemove findIf {_x isKindOf ["ACE_Banana", _cfgWeapons]}; - private _repChange = btc_rep_bonus_removeFood * parseNumber (_listOfTextItems select _posItemInArray); + private _repChange = btc_rep_malus_removeFood * parseNumber (_listOfTextItems select _posItemInArray); if (isServer) then { [_repChange, _caller] call btc_fnc_rep_change; } else { From 39bfdc995cf9849ba1095a64b525336320327220 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 9 May 2021 14:56:34 +0200 Subject: [PATCH 13/15] Update faction liste New CDLC S.O.G. PRAIRIE FIRE CDLC --- .github/release-drafter.yml | 8 ++-- .../core/def/mission.sqf | 4 +- .../core/def/param.hpp | 18 ++++----- .../core/fnc/common/get_class.sqf | 39 ++++++++++++++----- README.md | 2 +- 5 files changed, 45 insertions(+), 26 deletions(-) diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index cff25e4d1..b82483720 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -8,17 +8,17 @@ template: | Requires [ACE3](http://www.armaholic.com/page.php?id=28557). _[Optionals :](https://github.com/Vdauphin/HeartsAndMinds/files/5147451/All.Hearts.and.Minds.mods.html.zip)_ - - [CUP units and vehicles mod](https://forums.bistudio.com/topic/179326-community-upgrade-project-cup/), [Community Factions Project](https://github.com/tupolov/cfp/releases), + - [CUP units and vehicles mod](https://forums.bistudio.com/topic/179326-community-upgrade-project-cup/), [Community Factions Project](https://steamcommunity.com/workshop/filedetails/?id=1369691841), - [RHS USAF](http://www.armaholic.com/page.php?id=27149), [RHS AFRF](http://www.armaholic.com/page.php?id=27150), [RHS GREF](http://www.armaholic.com/page.php?id=30998), [RHS SAF](http://www.armaholic.com/page.php?id=32203), - [RDS A2 Civilian Pack mod](https://forums.bistudio.com/topic/170165-rds-a2-civilian-pack/), - [3CB Factions](https://steamcommunity.com/sharedfiles/filedetails/?id=1673456286), [Project OPFOR](https://forums.bistudio.com/topic/193185-project-opfor/), [Iraqi-Syrian Conflic](http://www.armaholic.com/page.php?id=28406), [Central African Rebels [SFF-R]](http://www.armaholic.com/page.php?id=32465), - - [FAP Units (Foes & Allies Pack)](http://www.armaholic.com/page.php?id=30706), [VETERAN](https://steamcommunity.com/workshop/filedetails/?id=1132375156), + - [FAP Units (Foes & Allies Pack)](http://www.armaholic.com/page.php?id=30706), [VETERAN](https://steamcommunity.com/workshop/filedetails/?id=1774055232), [GLOBAL MOBILIZATION - COLD WAR GERMANY CDLC](https://store.steampowered.com/app/1042220/Arma_3_Creator_DLC_Global_Mobilization__Cold_War_Germany/) - [Taliban Fighters by EricJ](http://www.armaholic.com/page.php?id=29543), - - [The Unsung Vietnam War Mod](http://www.armaholic.com/page.php?id=29948), + - [The Unsung Vietnam War Mod](http://www.armaholic.com/page.php?id=29948), [S.O.G. PRAIRIE FIRE CDLC](https://store.steampowered.com/app/1227700/Arma_3_Creator_DLC_SOG_Prairie_Fire/) - [Iron Front 3 Lite](http://www.armaholic.com/page.php?id=24714), [Face of War WW2](http://www.armaholic.com/page.php?id=31945), - [Operation: TREBUCHET](http://www.armaholic.com/page.php?id=28614), [Operation: TREBUCHET First Contact](https://steamcommunity.com/workshop/filedetails/?id=1572627279), [OPCAN - OPTRE Reskin Pack](https://steamcommunity.com/sharedfiles/filedetails/?id=2016312756). - [Changelog](https://github.com/Vdauphin/HeartsAndMinds/milestone/67?closed=1): + [Changelog](https://github.com/Vdauphin/HeartsAndMinds/milestone/68?closed=1): - Mission.sqm/Param.hpp not changed. $CHANGES \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf index a89bc6134..40d41d932 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf @@ -355,7 +355,7 @@ if (isServer) then { //Civ // Get all faction from mod there are currently running //copyToClipboard str (["CIV"] call btc_fnc_get_class); -private _allfaction = ["AFGCIV","CIV_F","DEFAULT","CFP_C_AFG","CFP_C_AFRCHRISTIAN","CFP_C_AFRISLAMIC","CFP_C_ASIA","CFP_C_CHERNO_WIN","CFP_C_MALDEN","CFP_C_ME","CUP_C_RU","CUP_C_CHERNARUS","CUP_C_SAHRANI","CUP_C_TK","GM_FC_GC_CIV","GM_FC_GE_CIV","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","CIV_IDAP_F","OPTRE_UEG_CIV","RDS_RUS_CIV","UK3CB_ADC_C","UK3CB_CHC_C","UK3CB_TKC_C","UNSUNG_C"]; //All factions +private _allfaction = ["CIV_F","DEFAULT","CFP_C_AFG","CFP_C_AFRCHRISTIAN","CFP_C_AFRISLAMIC","CFP_C_ASIA","CFP_C_CHERNO_WIN","CFP_C_MALDEN","CFP_C_ME","CUP_C_RU","CUP_C_CHERNARUS","CUP_C_SAHRANI","CUP_C_TK","AFGCIV","GM_FC_GC_CIV","GM_FC_GE_CIV","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","OPTRE_UEG_CIV","CIV_IDAP_F","RDS_POL_CIV","RDS_RUS_CIV","C_VIET","UK3CB_ADC_C","UK3CB_CHC_C","UK3CB_TKC_C","UNSUNG_C"]; //All factions _p_civ = _allfaction select _p_civ; //Select faction selected from mission parameter _p_civ_veh = _allfaction select _p_civ_veh; //Select faction selected from mission parameter private _allclasse = [[_p_civ]] call btc_fnc_civ_class; //Create classes from factions, you can combine factions from the SAME side : [[_p_civ, "btc_ac","LOP_TAK_CIV"]] call btc_fnc_civ_class. @@ -631,7 +631,7 @@ btc_lift_HUD_y = 0.848; btc_hq = objNull; // Get all faction from mod there are currently running //copyToClipboard str (["EN"] call btc_fnc_get_class); -private _allfaction = ["BLU_G_F","IND_E_F","IND_F","IND_G_F","IND_L_F","OPF_F","OPF_G_F","TBAN","00VTN_MILFOR_USMCW","01VTN_MILFOR_USMCD","05VTN_MILFOR_TIASF","AFR_ARMY","ARA_ARMY","ARL_ARMY","BLU_F","CEC_ARMY","CFP_B_AFGPOLICE","CFP_B_CAF","CFP_B_CZARMY_WDL","CFP_B_ILIDF","CFP_B_IQARMY","CFP_B_IQPOLICE","CFP_B_KEARMY","CFP_B_MLARMY","CFP_B_NAARMY","CFP_B_PESH","CFP_B_UGARMY","CFP_B_USRANGERS_WDL","CFP_B_USSEALS_DES","CFP_B_USSEALS_WDL","CFP_B_YPG","CFP_I_ALNUSRA","CFP_I_IS","CFP_I_SDREBELS","CFP_I_SDREBELSRF","CFP_I_SSARMY","CFP_I_TUAREG","CFP_I_WESTULTRA","CFP_O_ABUSAYYAF","CFP_O_ALQAEDA","CFP_O_ALSHABAAB","CFP_O_ANSARALLAH","CFP_O_BOKOHARAM","CFP_O_CFREBELS","CFP_O_HAMAS","CFP_O_HEZBOLLAH","CFP_O_IQARMY","CFP_O_IRARMY","CFP_O_IS","CFP_O_SDARMY","CFP_O_SDMILITIA","CFP_O_SOREBEL","CFP_O_SSREBELS","CFP_O_SYARMY","CFP_O_TBAN","CUP_B_CDF","CUP_B_CZ","CUP_B_GB","CUP_B_HIL","CUP_B_RNZN","CUP_B_US_ARMY","CUP_B_USMC","CUP_I_NAPA","CUP_I_RACS","CUP_I_UN","CUP_O_CHDKZ","CUP_O_RU","CUP_O_SLA","CUP_O_TK","CUP_O_TK_MILITIA","CUP_STATIC_SHIPS","CFP_B_CDF_SNW","CFP_B_DEARMY_WDL","CFP_B_GBARMY_WDL","CFP_B_USARMY_1991_DES","CFP_B_USARMY_1991_WDL","CFP_B_USARMY_2003_DES","CFP_B_USARMY_2003_WDL","CFP_B_USCIA","CFP_B_USMC_DES","CFP_I_WAGNER","CFP_I_WAGNER_WDL","CFP_I_WAGNER_WIN","CFP_O_RUARMY_DES","CFP_O_RUMVD","CFP_O_WAGNER","CFP_O_WAGNER_WDL","CFP_O_WAGNER_WIN","CUP_B_GER","CUP_I_PMC_ION","CUP_I_TK_GUE","CFP_B_AFARMY","CFP_B_USARMY_WDL","CFP_O_CHDKZ_SNW","OPF_R_F","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","CFP_O_NKARMY","OPF_GEN_F","FAP_ARMY","FOW_HEER","FOW_IJA_NAS","FOW_UK_FAA","FOW_USA_NAVY","FOW_WAFFENSS","FOW_AUS","FOW_HI","FOW_IJA","FOW_LUFTWAFFE","FOW_UK","FOW_USA","FOW_USA_P","FOW_USMC","GAL_ARMY","GANGBLUE_ARMY","GANGRED_ARMY","GM_FC_DK","GM_FC_GC","GM_FC_GC_BGS","GM_FC_GE","GM_FC_GE_BGS","GM_FC_PL","IBR_ZETABORN_FACTION","ISC_ALNUSRA_I","ISC_IP_B","ISC_IS_I","ISC_IS_O","ISC_PESH_B","ISC_YPG_B","LM_OPCAN_URA","LIB_ACI","LIB_ARR","LIB_DAK","LIB_FFI","LIB_FSJ","LIB_GUER","LIB_MKHL","LIB_NAC","LIB_NKVD","LIB_RAAF","LIB_RBAF","LIB_RKKA","LIB_RKKA_W","LIB_UK_AB","LIB_UK_AB_W","LIB_UK_ARMY","LIB_UK_ARMY_W","LIB_UK_DR","LIB_US_101AB","LIB_US_82AB","LIB_US_ARMY","LIB_US_ARMY_W","LIB_US_RANGERS","LIB_WEHRMACHT","LIB_WEHRMACHT_W","LM_OPCAN_CGC","LM_OPCAN_CMA","LM_OPCAN_CPD","LM_OPCAN_FRI","LM_OPCAN_FRI_DES","LM_OPCAN_FRI_WDL","LM_OPCAN_KOS","LM_OPCAN_SU","LM_OPCAN_UNSC_ARMY","LM_OPCAN_UNSC_ARMY_D","LM_OPCAN_UNSC_ARMY_MIX","LM_OPCAN_UNSC_ARMY_RES","LM_OPCAN_UNSC_MC","LM_OPCAN_UNSC_MC_CEA","LM_OPCAN_UNSC_MC_D","LM_OPCAN_UNSC_MC_INF","LOP_AA","LOP_AFR","LOP_AFR_OPF","LOP_AM","LOP_AM_OPF","LOP_BH","LOP_CDF","LOP_CHDKZ","LOP_GRE","LOP_IA","LOP_IRA","LOP_IRAN","LOP_ISTS","LOP_ISTS_OPF","LOP_NAPA","LOP_NK","LOP_PESH","LOP_PESH_IND","LOP_PMC","LOP_RACS","LOP_SLA","LOP_SYR","LOP_TKA","LOP_TRK","LOP_UA","LOP_UKR","LOP_UN","LOP_US","LOP_UVF","BLU_W_F","MOL_ARMY","O_CAR","OPF_T_F","OPTRE_FC_COVENANT","OPTRE_INS","OPTRE_PD","OPTRE_UNSC","ISC_IA_B","RHS_FACTION_MSV","RHS_FACTION_RVA","RHS_FACTION_TV","RHS_FACTION_VDV","RHS_FACTION_VMF","RHS_FACTION_VPVO","RHS_FACTION_VV","RHS_FACTION_VVS","RHS_FACTION_VVS_C","ISC_SAA_O","RHSGREF_FACTION_CDF_AIR","RHSGREF_FACTION_CDF_AIR_B","RHSGREF_FACTION_CHDKZ","RHSSAF_FACTION_AIRFORCE","RHSSAF_FACTION_AIRFORCE_OPFOR","RHSSAF_FACTION_ARMY","RHSSAF_FACTION_ARMY_OPFOR","RHSSAF_FACTION_UN","RHS_FACTION_SOCOM","RHS_FACTION_USAF","RHS_FACTION_USARMY_D","RHS_FACTION_USMC_D","RHS_FACTION_USN","RHSGREF_FACTION_CDF_GROUND","RHSGREF_FACTION_CDF_GROUND_B","RHSGREF_FACTION_NATIONALIST","RHSGREF_FACTION_TLA","RHSGREF_FACTION_TLA_G","RHSGREF_FACTION_UN","SG_STURM","SG_STURMPANZER","IND_C_F","RHS_FACTION_USARMY_WD","RHS_FACTION_USMC_WD","RHSGREF_FACTION_CDF_NG","RHSGREF_FACTION_CDF_NG_B","RHSGREF_FACTION_CHDKZ_G","RHSGREF_FACTION_HIDF","UK3CB_AAF_B","UK3CB_AAF_I","UK3CB_AAF_O","UK3CB_ADA_B","UK3CB_ADA_I","UK3CB_ADA_O","UK3CB_ADC_B","UK3CB_ADC_I","UK3CB_ADC_O","UK3CB_ADE_I","UK3CB_ADE_O","UK3CB_ADG_B","UK3CB_ADG_I","UK3CB_ADG_O","UK3CB_ADM_B","UK3CB_ADM_I","UK3CB_ADM_O","UK3CB_ADP_B","UK3CB_ADP_I","UK3CB_ADP_O","UK3CB_ADR_B","UK3CB_ADR_I","UK3CB_ADR_O","UK3CB_ANA_B","UK3CB_ANP_B","UK3CB_CCM_B","UK3CB_CCM_I","UK3CB_CCM_O","UK3CB_CHC_B","UK3CB_CHC_I","UK3CB_CHC_O","UK3CB_CHD_B","UK3CB_CHD_I","UK3CB_CHD_O","UK3CB_CPD_B","UK3CB_CPD_I","UK3CB_CPD_O","UK3CB_CW_SOV_O_EARLY","UK3CB_CW_SOV_O_LATE","UK3CB_CW_US_B_EARLY","UK3CB_CW_US_B_LATE","UK3CB_NAP_B","UK3CB_NAP_I","UK3CB_NAP_O","UK3CB_TKA_B","UK3CB_TKA_I","UK3CB_TKA_O","UK3CB_TKC_B","UK3CB_TKC_I","UK3CB_TKC_O","UK3CB_TKM_B","UK3CB_TKM_I","UK3CB_TKM_O","UK3CB_TKP_B","UK3CB_TKP_I","UK3CB_TKP_O","UK3CB_UN_B","UK3CB_UN_I","UNSUNG_AUS","UNSUNG_E","UNSUNG_EV","UNSUNG_G","UNSUNG_NZ","UNSUNG_ROK","UNSUNG_W","00VTN_MILFOR_MIW_EMR","00VTN_MILITIA_RU","01VTN_INSURGENTS_RU","01VTN_MILFOR_MIW","02VTN_MILFOR_RC","03VTN_INSURGENTS_ISIL","03VTN_MILFOR_SPPU","07VTN_MILFOR_TNG"]; //All factions +private _allfaction = ["00VTN_MILFOR_USMCW","01VTN_MILFOR_USMCD","05VTN_MILFOR_TIASF","AFR_ARMY","ARA_ARMY","ARL_ARMY","BLU_F","IND_F","OPF_F","OPF_G_F","IND_G_F","BLU_G_F","IND_E_F","IND_L_F","CEC_ARMY","CFP_B_CAF","CFP_O_IQARMY","CFP_B_ILIDF","CFP_B_NAARMY","CFP_O_SDMILITIA","CFP_O_ABUSAYYAF","CFP_B_AFGPOLICE","CFP_O_ALQAEDA","CFP_I_ALNUSRA","CFP_O_ALSHABAAB","CFP_O_BOKOHARAM","CFP_O_CFREBELS","CFP_O_HAMAS","CFP_O_HEZBOLLAH","CFP_B_IQARMY","CFP_B_IQPOLICE","CFP_O_IRARMY","CFP_O_IS","CFP_I_IS","CFP_B_KEARMY","CFP_B_MLARMY","CFP_B_PESH","CFP_O_SOREBEL","CFP_I_SSARMY","CFP_O_SSREBELS","CFP_I_SDREBELS","CFP_I_SDREBELSRF","CFP_O_SDARMY","CFP_O_SYARMY","CFP_O_TBAN","CFP_I_TUAREG","CFP_B_UGARMY","CFP_B_USRANGERS_WDL","CFP_B_USSEALS_DES","CFP_B_USSEALS_WDL","CFP_B_YPG","CFP_O_ANSARALLAH","CFP_B_CZARMY_WDL","CFP_I_WESTULTRA","CUP_B_CZ","CUP_B_GB","CUP_B_CDF","CUP_O_CHDKZ","CUP_STATIC_SHIPS","CUP_B_HIL","CUP_I_NAPA","CUP_I_RACS","CUP_B_RNZN","CUP_O_RU","CUP_O_SLA","CUP_O_TK","CUP_O_TK_MILITIA","CUP_I_UN","CUP_B_US_ARMY","CUP_B_USMC","CFP_B_GBARMY_WDL","CUP_B_GER","CFP_B_DEARMY_WDL","CUP_I_PMC_ION","CFP_O_RUARMY_DES","CUP_I_TK_GUE","CFP_B_USMC_DES","CFP_B_CDF_SNW","CFP_O_WAGNER","CFP_I_WAGNER","CFP_O_WAGNER_WIN","CFP_I_WAGNER_WIN","CFP_O_WAGNER_WDL","CFP_I_WAGNER_WDL","CFP_B_USARMY_1991_DES","CFP_B_USARMY_1991_WDL","CFP_B_USARMY_2003_DES","CFP_B_USARMY_2003_WDL","CFP_O_RUMVD","CFP_B_USCIA","CFP_B_USARMY_WDL","CFP_B_AFARMY","CFP_O_CHDKZ_SNW","OPF_R_F","TBAN","BLU_CTRG_F","OPF_GEN_F","BLU_GEN_F","BLU_T_F","CFP_O_NKARMY","FAP_ARMY","FOW_HEER","FOW_IJA_NAS","FOW_UK_FAA","FOW_USA_NAVY","FOW_WAFFENSS","FOW_AUS","FOW_LUFTWAFFE","FOW_HI","FOW_UK","FOW_USA_P","FOW_IJA","FOW_USA","FOW_USMC","GAL_ARMY","GANGBLUE_ARMY","GANGRED_ARMY","GM_FC_DK","GM_FC_GC_BGS","GM_FC_GC","GM_FC_PL","GM_FC_GE_BGS","GM_FC_GE","IBR_ZETABORN_FACTION","IBR_ROBOTFAC","ISC_ALNUSRA_I","ISC_IP_B","ISC_IS_O","ISC_IS_I","ISC_PESH_B","ISC_YPG_B","O_CAR","LM_OPCAN_URA","LIB_RKKA_W","LIB_WEHRMACHT_W","LIB_ARR","LIB_MKHL","LIB_RBAF","LIB_ACI","LIB_GUER","LIB_RAAF","LIB_RKKA","LIB_WEHRMACHT","LIB_US_101AB","LIB_US_82AB","LIB_UK_AB_W","LIB_UK_ARMY_W","LIB_US_ARMY_W","LIB_FSJ","LIB_UK_AB","LIB_UK_ARMY","LIB_UK_DR","LIB_US_ARMY","LIB_DAK","LIB_NKVD","LIB_US_RANGERS","LIB_NAC","LIB_FFI","LM_OPCAN_CGC","LM_OPCAN_CMA","LM_OPCAN_CPD","LM_OPCAN_FRI_DES","LM_OPCAN_FRI","LM_OPCAN_FRI_WDL","LM_OPCAN_KOS","LM_OPCAN_SU","LM_OPCAN_UNSC_ARMY_D","LM_OPCAN_UNSC_ARMY_MIX","LM_OPCAN_UNSC_ARMY","LM_OPCAN_UNSC_ARMY_RES","LM_OPCAN_UNSC_MC_CEA","LM_OPCAN_UNSC_MC_D","LM_OPCAN_UNSC_MC_INF","LM_OPCAN_UNSC_MC","LOP_AA","LOP_AFR_OPF","LOP_AFR","LOP_BH","LOP_CDF","LOP_CHDKZ","LOP_NAPA","LOP_GRE","LOP_IRAN","LOP_IA","LOP_IRA","LOP_ISTS_OPF","LOP_ISTS","LOP_NK","LOP_PESH_IND","LOP_PESH","LOP_AM_OPF","LOP_AM","LOP_PMC","LOP_RACS","LOP_SLA","LOP_SYR","LOP_TKA","LOP_TRK","LOP_UKR","LOP_UVF","LOP_UA","LOP_US","LOP_UN","BLU_W_F","MOL_ARMY","OPF_T_F","OPTRE_PD","OPTRE_FC_COVENANT","OPTRE_INS","OPTRE_UNSC","ISC_IA_B","RHS_FACTION_MSV","RHS_FACTION_RVA","RHS_FACTION_TV","RHS_FACTION_VDV","RHS_FACTION_VMF","RHS_FACTION_VV","RHS_FACTION_VVS_C","RHS_FACTION_VVS","RHS_FACTION_VPVO","ISC_SAA_O","RHSGREF_FACTION_CDF_AIR_B","RHSGREF_FACTION_CHDKZ","RHSGREF_FACTION_CDF_AIR","RHSSAF_FACTION_ARMY","RHSSAF_FACTION_ARMY_OPFOR","RHSSAF_FACTION_AIRFORCE_OPFOR","RHSSAF_FACTION_AIRFORCE","RHSSAF_FACTION_UN","RHS_FACTION_USARMY_D","RHS_FACTION_USARMY_WD","RHS_FACTION_USN","RHS_FACTION_SOCOM","RHS_FACTION_USAF","RHS_FACTION_USMC_D","RHS_FACTION_USMC_WD","RHSGREF_FACTION_UN","RHSGREF_FACTION_NATIONALIST","RHSGREF_FACTION_TLA","RHSGREF_FACTION_TLA_G","RHSGREF_FACTION_CDF_GROUND","RHSGREF_FACTION_CDF_GROUND_B","I_ARVN","B_MACV","O_PAVN","O_VC","SG_STURM","SG_STURMPANZER","IND_C_F","UK3CB_AAF_O","UK3CB_AAF_I","UK3CB_AAF_B","UK3CB_ANA_B","UK3CB_ANP_B","UK3CB_ADA_O","UK3CB_ADA_I","UK3CB_ADA_B","UK3CB_ADR_O","UK3CB_ADR_I","UK3CB_ADR_B","UK3CB_ADG_O","UK3CB_ADG_I","UK3CB_ADG_B","UK3CB_ADC_O","UK3CB_ADC_I","UK3CB_ADC_B","UK3CB_ADE_O","UK3CB_ADE_I","UK3CB_ADM_O","UK3CB_ADM_I","UK3CB_ADM_B","UK3CB_ADP_O","UK3CB_ADP_I","UK3CB_ADP_B","UK3CB_CHD_O","UK3CB_CHD_B","UK3CB_CHD_I","UK3CB_CHC_O","UK3CB_CHC_I","UK3CB_CHC_B","UK3CB_CCM_O","UK3CB_CCM_B","UK3CB_CCM_I","UK3CB_CPD_O","UK3CB_CPD_I","UK3CB_CPD_B","UK3CB_CW_US_B_EARLY","UK3CB_CW_US_B_LATE","UK3CB_CW_SOV_O_EARLY","UK3CB_CW_SOV_O_LATE","UK3CB_NAP_O","UK3CB_NAP_I","UK3CB_NAP_B","UK3CB_TKC_O","UK3CB_TKC_I","UK3CB_TKC_B","UK3CB_TKM_O","UK3CB_TKA_O","UK3CB_TKA_I","UK3CB_TKA_B","UK3CB_TKP_O","UK3CB_TKP_I","UK3CB_TKP_B","UK3CB_TKM_B","UK3CB_TKM_I","UK3CB_UN_I","UK3CB_UN_B","RHSGREF_FACTION_CDF_NG","RHSGREF_FACTION_CDF_NG_B","RHSGREF_FACTION_CHDKZ_G","RHSGREF_FACTION_HIDF","UNSUNG_AUS","UNSUNG_NZ","UNSUNG_ROK","UNSUNG_W","UNSUNG_EV","UNSUNG_E","UNSUNG_G","02VTN_MILFOR_RC","01VTN_INSURGENTS_RU","03VTN_INSURGENTS_ISIL","00VTN_MILFOR_MIW_EMR","01VTN_MILFOR_MIW","00VTN_MILITIA_RU","03VTN_MILFOR_SPPU","07VTN_MILFOR_TNG"]; //All factions _p_en = _allfaction select _p_en; //Select faction selected from mission parameter _allclasse = [[_p_en], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from factions, you can combine factions like that: [[_p_en , "IND_F"], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp index 15ca249fc..3a3d6fe5a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp @@ -79,9 +79,9 @@ class Params { }; class btc_p_en { // Enemy type: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_ETYPE"]); - values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320}; - texts[]={"0 - Bohemia Interactive: 2035 FIA (Side: WEST)","1 - Bohemia Interactive: LDF (Side: GUER)","2 - Bohemia Interactive: 2035 AAF (Side: GUER)","3 - Bohemia Interactive: 2035 FIA (Side: GUER)","4 - Bohemia Interactive: Pillards (Side: GUER)","5 - Bohemia Interactive: 2035 CSAT (Side: EAST)","6 - Bohemia Interactive: 2035 FIA (Side: EAST)","7 - EricJ: Taliban (Side: EAST)","8 -00VTN Bohemia Interactive: U.S.M.C. (MARPAT Woodland) (Side: WEST)","9 -01VTN Bohemia Interactive: U.S.M.C. (MARPAT Desert) (Side: WEST)","10 -05VTN Bohemia Interactive: TIA-SF (Side: WEST)","11 -AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","12 -ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","13 -ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","14 -BLU Community Upgrade Project and ATLAS Mod: 2035 NATO (Side: WEST)","15 -CEC HcPookie: Cecanian Army (Side: EAST)","16 -CFP Drew: Afghan Police (Side: WEST)","17 -CFP CFP: Chadian Armed Forces (Side: WEST)","18 -CFP Tupolov: Army of the Czech Rep. (Jungle / Woodland) (Side: WEST)","19 -CFP CFP: Israeli Defense Force (Side: WEST)","20 -CFP Drew: Iraqi Army (Side: WEST)","21 -CFP Drew: Iraqi Police (Side: WEST)","22 -CFP Drew: Kenyan Defense Force (Side: WEST)","23 -CFP Drew: Malian Government Forces (Side: WEST)","24 -CFP CFP: Nigerian Army (Side: WEST)","25 -CFP Drew: Peshmerga (Side: WEST)","26 -CFP Drew: Uganda People's Defense Force (Side: WEST)","27 -CFP Drew: US 75th Rangers (Jungle/Woodland) (Side: WEST)","28 -CFP Drew: US Navy Seals (Arid / Desert) (Side: WEST)","29 -CFP Drew: US Navy Seals (Jungle / Woodland) (Side: WEST)","30 -CFP Drew: YPG (Side: WEST)","31 -CFP Drew: al-Nusra Front (Side: GUER)","32 -CFP Drew: Islamic State (Side: GUER)","33 -CFP Drew: Sudan People's Liberation Movement North (Side: GUER)","34 -CFP Drew: Sudan Revolutionary Front (Side: GUER)","35 -CFP Drew: South Sudan People's Defense Force (Side: GUER)","36 -CFP Drew: Tuareg Rebels (Side: GUER)","37 -CFP Tupolov: Western Ultranationalists (Side: GUER)","38 -CFP Drew: Abu Sayyaf Group (Side: EAST)","39 -CFP Drew: Al Qaeda (Side: EAST)","40 -CFP Drew: Al-Shabaab (Side: EAST)","41 -CFP Tupolov: Ansar Allah (Houthis) (Side: EAST)","42 -CFP Drew: Boko Haram (Side: EAST)","43 -CFP Drew: Central African Rebels (Side: EAST)","44 -CFP Drew: Hamas Al Qassam Brigades (Side: EAST)","45 -CFP Drew: Hezbollah (Side: EAST)","46 -CFP CFP: Iraqi Army (Hussein Regime) (Side: EAST)","47 -CFP Drew: Islamic Republic of Iran Army (Side: EAST)","48 -CFP Drew: Islamic State (Side: EAST)","49 -CFP Drew: Sudanese Armed Forces (Side: EAST)","50 -CFP CFP: Sudan Rapid Support Forces / Janjaweed (Side: EAST)","51 -CFP Drew: Somali Rebels (Side: EAST)","52 -CFP Drew: Sudan People's Liberation Movement In Opposition (Side: EAST)","53 -CFP Drew: Syrian Arab Army (Side: EAST)","54 -CFP Drew: Taliban Insurgents (Side: EAST)","55 -CUP Community Upgrade Project: Chernarus Defense Forces (Side: WEST)","56 -CUP Community Upgrade Project: Army of the Czech Rep. (Arid / Desert) (Side: WEST)","57 -CUP Community Upgrade Project: British Army (Arid / Desert) (Side: WEST)","58 -CUP Community Upgrade Project: Horizon Islands Legion (Side: WEST)","59 -CUP Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","60 -CUP Community Upgrade Project: US Army (Arid / Desert) (Side: WEST)","61 -CUP Community Upgrade Project: US Marine Corps (Jungle / Woodland) (Side: WEST)","62 -CUP Community Upgrade Project: National Party of Chernarus (Side: GUER)","63 -CUP Community Upgrade Project: Royal Army Corps of Sahrani (Side: GUER)","64 -CUP Community Upgrade Project: United Nations (Side: GUER)","65 -CUP Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","66 -CUP Community Upgrade Project: Russian Ground Forces (Jungle / Woodland) (Side: EAST)","67 -CUP Community Upgrade Project: Sahrani Liberation Army (Side: EAST)","68 -CUP Community Upgrade Project: Takistani Army (Side: EAST)","69 -CUP Community Upgrade Project: Takistani Militia (Side: EAST)","70 -CUP Community Upgrade Project: CUP Static Ships (Side: WEST)","71 -CUP_Units Drew: Chernarus Defense Forces [Winter] (Side: WEST)","72 -CUP_Units Community Upgrade Project: Bundeswehr (Jungle / Woodland) (Side: WEST)","73 -CUP_Units Community Upgrade Project: British Army (Jungle / Woodland) (Side: WEST)","74 -CUP_Units Drew: US Army 1991 [Arid/Desert] (Side: WEST)","75 -CUP_Units Drew: US Army 1991 [Woodland] (Side: WEST)","76 -CUP_Units Drew: US Army 2003 [Arid/Desert] (Side: WEST)","77 -CUP_Units Drew: US Army 2003 [Woodland] (Side: WEST)","78 -CUP_Units Tupolov: US CIA (Middle East) (Side: WEST)","79 -CUP_Units Community Upgrade Project: US Marine Corps (Arid / Desert) (Side: WEST)","80 -CUP_Units Drew: PMC Wagner (Arid / Desert) (Side: GUER)","81 -CUP_Units Drew: PMC Wagner (Woodland) (Side: GUER)","82 -CUP_Units Drew: PMC Wagner (Winter) (Side: GUER)","83 -CUP_Units Community Upgrade Project: Russian Ground Forces (Arid / Desert) (Side: EAST)","84 -CUP_Units Tupolov: Russian National Guard (Side: EAST)","85 -CUP_Units Drew: PMC Wagner (Arid / Desert) (Side: EAST)","86 -CUP_Units Drew: PMC Wagner (Woodland) (Side: EAST)","87 -CUP_Units Drew: PMC Wagner (Winter) (Side: EAST)","88 -CUP_Units Community Upgrade Project: Bundeswehr (Arid / Desert) (Side: WEST)","89 -CUP_Units Community Upgrade Project: ION PMC (Side: GUER)","90 -CUP_Units Community Upgrade Project: Takistani Locals (Side: GUER)","91 -CUP_Vehicles Drew: Afghan Army (Side: WEST)","92 -CUP_Vehicles Community Upgrade Project: US Army (Jungle / Woodland) (Side: WEST)","93 -CUP_Vehicles Drew: Chernarussian Movement of the Red Star [Winter] (Side: EAST)","94 -Enoch Bohemia Interactive: Spetsnaz (Side: EAST)","95 -Expansion Bohemia Interactive: 2035 CTRG (Side: WEST)","96 -Expansion Bohemia Interactive: 2035 Gendarmerie (Side: WEST)","97 -Expansion Bohemia Interactive: 2035 NATO (Pacific) (Side: WEST)","98 -Expansion Drew: Korean People's Army (Side: EAST)","99 -Expansion Bohemia Interactive: 2035 Gendarmerie (Side: EAST)","100 -FAP nzdfcrash/icebreakr: Fapovian Army (Side: EAST)","101 -FOW Bohemia Interactive: [DE] Heer (Side: WEST)","102 -FOW Bohemia Interactive: [JP] Navy Air Service (Side: WEST)","103 -FOW Bohemia Interactive: [UK] Fleet Air Arm (Side: GUER)","104 -FOW Bohemia Interactive: [US] Navy (Side: GUER)","105 -FOW FOW Team: [DE] Waffen-SS (Side: WEST)","106 -fow_mod Bohemia Interactive: [AUS] Army (Pacific) (Side: GUER)","107 -fow_mod Bohemia Interactive: [HI] Army (Side: GUER)","108 -fow_mod FOW team: [JP] Imperial Army (Side: WEST)","109 -fow_mod Bohemia Interactive: [DE] Luftwaffe (Side: WEST)","110 -fow_mod Bohemia Interactive: [UK] Army (Side: GUER)","111 -fow_mod FOW team: [US] Army (Europe) (Side: GUER)","112 -fow_mod Bohemia Interactive: [US] Army (Pacific) (Side: GUER)","113 -fow_mod FOW team: [US] Marines Corps (Side: GUER)","114 -GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","115 -GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","116 -GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","117 -gm Global Mobilization: Denmark (Side: WEST)","118 -gm Global Mobilization: East Germany (Side: EAST)","119 -gm Global Mobilization: East Germany (Borderguards) (Side: EAST)","120 -gm Global Mobilization: West Germany (Side: WEST)","121 -gm Global Mobilization: West Germany (Borderguards) (Side: WEST)","122 -gm Global Mobilization: Poland (Side: EAST)","123 -IBR Bohemia Interactive: Alienz (Side: GUER)","124 -ISC Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","125 -ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","126 -ISC Bohemia Interactive: [ISC] Islamic State (Side: GUER)","127 -ISC Bohemia Interactive: [ISC] Islamic State (Side: EAST)","128 -ISC Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","129 -ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","130 -Jets Bravo Zero One Studios: [OPCAN] United Rebel Army (Side: EAST)","131 -LIB AWAR: ACI (Side: GUER)","132 -LIB AWAR & Lennard: ARR (Side: WEST)","133 -LIB Lennard: Deutsches Afrikakorps (Side: WEST)","134 -LIB Reyhard & Joarius: FFI (Side: GUER)","135 -LIB IFA3 Team: Fallschirmjäger (Side: WEST)","136 -LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","137 -LIB AWAR & Lennard: MKHL (Side: WEST)","138 -LIB Lennard: US North African Corps (Side: GUER)","139 -LIB Lennard: NKVD (Side: EAST)","140 -LIB AWAR: RAAF (Side: GUER)","141 -LIB AWAR & Lennard: RBAF (Side: WEST)","142 -LIB AWAR: Red Army (Side: EAST)","143 -LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","144 -LIB IFA3 Team: UK Airborne (Side: GUER)","145 -LIB El Tyranos: [Winter] UK Airborne (Side: GUER)","146 -LIB IFA3 Team: UK Army (Side: GUER)","147 -LIB El Tyranos: [Winter] UK Army (Side: GUER)","148 -LIB IFA3 Team: UK Desert Rats (Side: GUER)","149 -LIB El Tyranos: 101st Airborne Division (Side: GUER)","150 -LIB El Tyranos: 82nd Airborne Division (Side: GUER)","151 -LIB IFA3 team: US Army (Side: GUER)","152 -LIB El Tyranos: [Winter] US Army (Side: GUER)","153 -LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","154 -LIB AWAR: Wehrmacht (Side: WEST)","155 -LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","156 -LM J.Burgess: [OPCAN] Colonial Guard Corps (Woodland) (Side: WEST)","157 -LM J.Burgess: [OPCAN] Colonial Military Authority (Side: GUER)","158 -LM J.Burgess: [OPCAN] Colonial Police Force (Side: GUER)","159 -LM J.Burgess: [OPCAN] Fridens (Side: EAST)","160 -LM J.Burgess: [OPCAN] Fridens (Desert) (Side: EAST)","161 -LM J.Burgess: [OPCAN] Fridens (Woodland) (Side: EAST)","162 -LM J.Burgess: [OPCAN] Koslovics (Side: EAST)","163 -LM J.Burgess: [OPCAN] Secessionist Union (Side: EAST)","164 -LM J.Burgess: [OPCAN] UNSC Army (Woodland) (Side: WEST)","165 -LM J.Burgess: [OPCAN] UNSC Army (Desert) (Side: WEST)","166 -LM J.Burgess: [OPCAN] UNSC Army (Mixed) (Side: WEST)","167 -LM J.Burgess: [OPCAN] UNSC Army Peace Corps (Side: WEST)","168 -LM J.Burgess: [OPCAN] UNSC Marine Corps (Woodland) (Side: WEST)","169 -LM J.Burgess: [OPCAN] UNSC Marine Corps (CE:A) (Side: WEST)","170 -LM J.Burgess: [OPCAN] UNSC Marine Corps (Desert) (Side: WEST)","171 -LM J.Burgess: [OPCAN] UNSC Marine Corps (Infinite) (Side: WEST)","172 -LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","173 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","174 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","175 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","176 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","177 -LOP_LeightsOPFOR Project OPFOR: Boko Haram (Side: EAST)","178 -LOP_LeightsOPFOR Project OPFOR: CDF (Project OPFOR) (Side: WEST)","179 -LOP_LeightsOPFOR Project OPFOR: ChDKZ (Project OPFOR) (Side: EAST)","180 -LOP_LeightsOPFOR Project OPFOR: Hellenic Armed Forces (Side: WEST)","181 -LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","182 -LOP_LeightsOPFOR Project OPFOR: Irish Republican Army (Side: EAST)","183 -LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","184 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","185 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","186 -LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","187 -LOP_LeightsOPFOR Project OPFOR: Korean People's Army (Side: EAST)","188 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","189 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","190 -LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","191 -LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","192 -LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","193 -LOP_LeightsOPFOR Project OPFOR: Syrian Armed Forces (Side: EAST)","194 -LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","195 -LOP_LeightsOPFOR Project OPFOR: Turkish Armed Forces (Side: GUER)","196 -LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","197 -LOP_LeightsOPFOR Project OPFOR: Ukrainian Armed Forces (Side: GUER)","198 -LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","199 -LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","200 -LOP_LeightsOPFOR Project OPFOR: Ulster Volunteer Force (Side: GUER)","201 -Mark Bohemia Interactive: OTAN (forêt) (Side: WEST)","202 -MOL HcPookie: Molatian Army (Side: EAST)","203 -O jarrad96: Central African Rebels (Side: EAST)","204 -OPF Community Upgrade Project: 2035 CSAT (Pacific) (Side: EAST)","205 -OPTRE Article 2 Studios: Covenant (Side: EAST)","206 -OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","207 -OPTRE Article 2 Studios: Colonial Police (Side: GUER)","208 -OPTRE Article 2 Studios: UNSCDF (Side: WEST)","209 -RHS_AFRF Red Hammer Studios: [ISC] Iraqi Army (Side: WEST)","210 -RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","211 -RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","212 -RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","213 -RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","214 -RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","215 -RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","216 -RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","217 -RHS_AFRF Red Hammer Studios: Russia (VVS - Grey) (Side: EAST)","218 -RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","219 -RHS_GREF Red Hammer Studios: [ISC] Syrian Arab Army (Side: EAST)","220 -RHS_GREF RHS (A2 port): CDF (Air Forces) (Side: GUER)","221 -RHS_GREF Red Hammer Studios: CDF (Air Forces) (Side: WEST)","222 -RHS_GREF Red Hammer Studios: ChDKZ (Side: EAST)","223 -RHS_SAF RHS (A2 port): SAF (RVIPVO) (Side: GUER)","224 -RHS_SAF RHS (A2 port): SAF (RVIPVO) (Side: EAST)","225 -RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","226 -RHS_SAF RHS (A2 port): SAF (KOV) (Side: EAST)","227 -RHS_SAF RHS (A2 port): SAF (Casques Bleus) (Side: GUER)","228 -RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","229 -RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","230 -RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","231 -RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","232 -RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","233 -RHSGREF www.3commandobrigade.com: CDF (Ground Forces) (Side: GUER)","234 -RHSGREF www.3commandobrigade.com: CDF (Ground Forces) (Side: WEST)","235 -RHSGREF Red Hammer Studios: NAPA (Side: GUER)","236 -RHSGREF Red Hammer Studios: Tanoan Liberation Army (Side: EAST)","237 -RHSGREF Red Hammer Studios: Tanoan Liberation Army (Side: GUER)","238 -RHSGREF Red Hammer Studios: CDF (UN) (Side: GUER)","239 -SG Stagler: Sturmtroopers (Side: WEST)","240 -SG Stagler: Tank Sturmtroopers (Side: WEST)","241 -Tank Bohemia Interactive: 2035 Syndikat (Side: GUER)","242 -UK3CB_Factions www.3commandobrigade.com: USA (Army - W) (Side: WEST)","243 -UK3CB_Factions www.3commandobrigade.com: USA (USMC - W) (Side: WEST)","244 -UK3CB_Factions www.3commandobrigade.com: CDF (National Guard) (Side: GUER)","245 -UK3CB_Factions www.3commandobrigade.com: CDF (National Guard) (Side: WEST)","246 -UK3CB_Factions www.3commandobrigade.com: ChDKZ (Side: GUER)","247 -UK3CB_Factions www.3commandobrigade.com: Horizon Islands Defence Force (Side: WEST)","248 -UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: WEST)","249 -UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: GUER)","250 -UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: EAST)","251 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: WEST)","252 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: GUER)","253 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: EAST)","254 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: WEST)","255 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: GUER)","256 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: EAST)","257 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Extremists (Side: GUER)","258 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Extremists (Side: EAST)","259 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: WEST)","260 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: GUER)","261 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: EAST)","262 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: WEST)","263 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: GUER)","264 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: EAST)","265 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: WEST)","266 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: GUER)","267 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: EAST)","268 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: WEST)","269 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: GUER)","270 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: EAST)","271 -UK3CB_Factions www.3commandobrigade.com: 3CB Afghan National Army (Side: WEST)","272 -UK3CB_Factions www.3commandobrigade.com: 3CB Afghan National Police (Side: WEST)","273 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Local Defence Volunteers (Side: WEST)","274 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Nationalist Militia (Side: GUER)","275 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Communist Militia (Side: EAST)","276 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: WEST)","277 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: GUER)","278 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: EAST)","279 -UK3CB_Factions www.3commandobrigade.com: 3CB ChDSZ (Chernarussian Movement of the Blue Star) (Side: WEST)","280 -UK3CB_Factions www.3commandobrigade.com: 3CB ChDZZ (Chernarussian Movement of the Green Star) (Side: GUER)","281 -UK3CB_Factions www.3commandobrigade.com: 3CB ChDKZ (Chernarussian Movement of the Red Star) (Side: EAST)","282 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: WEST)","283 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: GUER)","284 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: EAST)","285 -UK3CB_Factions www.3commandobrigade.com: 3CB Cold War USSR - Early (Side: EAST)","286 -UK3CB_Factions www.3commandobrigade.com: 3CB Cold War USSR - Late (Side: EAST)","287 -UK3CB_Factions www.3commandobrigade.com: 3CB Cold War US - Early (Side: WEST)","288 -UK3CB_Factions www.3commandobrigade.com: 3CB Cold War US - Late (Side: WEST)","289 -UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: WEST)","290 -UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: GUER)","291 -UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: EAST)","292 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: WEST)","293 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: GUER)","294 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: EAST)","295 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: WEST)","296 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: GUER)","297 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: EAST)","298 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Pro-Government Militia (Side: WEST)","299 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Tribal Fighters (Side: GUER)","300 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Insurgents (Side: EAST)","301 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: WEST)","302 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: GUER)","303 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: EAST)","304 -UK3CB_Factions www.3commandobrigade.com: 3CB UN Peacekeepers (Side: WEST)","305 -UK3CB_Factions www.3commandobrigade.com: 3CB UN Peacekeepers (Side: GUER)","306 -UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: WEST)","307 -UNSUNG smicdaro, Unsung: N.V.A. (UNSUNG) (Side: EAST)","308 -UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","309 -UNSUNG UNSUNG: A.R.V.N. (UNSUNG) (Side: GUER)","310 -UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: WEST)","311 -UNSUNG Bohemia Interactive: R.O.K. (UNSUNG) (Side: WEST)","312 -UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","313 -VTN VTN: Mechanized infantry (EMR) (Side: EAST)","314 -VTN VTN: Militia (Side: GUER)","315 -VTN VTN: Insurgents (Side: GUER)","316 -VTN VTN: Mechanized infantry (VSR-98) (Side: EAST)","317 -VTN VTN: GRU SSPB (Side: EAST)","318 -VTN VTN: ISIL (Side: GUER)","319 -VTN VTN: MVD SPPU (Side: EAST)","320 -VTN VTN: Takistan national guard (Side: EAST)"}; - default = 6; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325}; + texts[]={"0 - 00VTN Bohemia Interactive: U.S.M.C. (MARPAT Woodland) (Side: WEST)","1 - 01VTN Bohemia Interactive: U.S.M.C. (MARPAT Desert) (Side: WEST)","2 - 05VTN Bohemia Interactive: TIA-SF (Side: WEST)","3 - AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","4 - ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","5 - ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","6 - BLU Community Upgrade Project and ATLAS Mod: 2035 NATO (Side: WEST)","7 - Bohemia Interactive: 2035 AAF (Side: GUER)","8 - Bohemia Interactive: 2035 CSAT (Side: EAST)","9 - Bohemia Interactive: 2035 FIA (Side: EAST)","10 - Bohemia Interactive: 2035 FIA (Side: GUER)","11 - Bohemia Interactive: 2035 FIA (Side: WEST)","12 - Bohemia Interactive: LDF (Side: GUER)","13 - Bohemia Interactive: Looters (Side: GUER)","14 - CEC HcPookie: Cecanian Army (Side: EAST)","15 - CFP CFP: Chadian Armed Forces (Side: WEST)","16 - CFP CFP: Iraqi Army (Hussein Regime) (Side: EAST)","17 - CFP CFP: Israeli Defense Force (Side: WEST)","18 - CFP CFP: Nigerian Army (Side: WEST)","19 - CFP CFP: Sudan Rapid Support Forces / Janjaweed (Side: EAST)","20 - CFP Drew: Abu Sayyaf Group (Side: EAST)","21 - CFP Drew: Afghan Police (Side: WEST)","22 - CFP Drew: Al Qaeda (Side: EAST)","23 - CFP Drew: al-Nusra Front (Side: GUER)","24 - CFP Drew: Al-Shabaab (Side: EAST)","25 - CFP Drew: Boko Haram (Side: EAST)","26 - CFP Drew: Central African Rebels (Side: EAST)","27 - CFP Drew: Hamas Al Qassam Brigades (Side: EAST)","28 - CFP Drew: Hezbollah (Side: EAST)","29 - CFP Drew: Iraqi Army (Side: WEST)","30 - CFP Drew: Iraqi Police (Side: WEST)","31 - CFP Drew: Islamic Republic of Iran Army (Side: EAST)","32 - CFP Drew: Islamic State (Side: EAST)","33 - CFP Drew: Islamic State (Side: GUER)","34 - CFP Drew: Kenyan Defense Force (Side: WEST)","35 - CFP Drew: Malian Government Forces (Side: WEST)","36 - CFP Drew: Peshmerga (Side: WEST)","37 - CFP Drew: Somali Rebels (Side: EAST)","38 - CFP Drew: South Sudan People's Defense Force (Side: GUER)","39 - CFP Drew: Sudan People's Liberation Movement In Opposition (Side: EAST)","40 - CFP Drew: Sudan People's Liberation Movement North (Side: GUER)","41 - CFP Drew: Sudan Revolutionary Front (Side: GUER)","42 - CFP Drew: Sudanese Armed Forces (Side: EAST)","43 - CFP Drew: Syrian Arab Army (Side: EAST)","44 - CFP Drew: Taliban Insurgents (Side: EAST)","45 - CFP Drew: Tuareg Rebels (Side: GUER)","46 - CFP Drew: Uganda People's Defense Force (Side: WEST)","47 - CFP Drew: US 75th Rangers (Jungle/Woodland) (Side: WEST)","48 - CFP Drew: US Navy Seals (Arid / Desert) (Side: WEST)","49 - CFP Drew: US Navy Seals (Jungle / Woodland) (Side: WEST)","50 - CFP Drew: YPG (Side: WEST)","51 - CFP Tupolov: Ansar Allah (Houthis) (Side: EAST)","52 - CFP Tupolov: Army of the Czech Rep. (Jungle / Woodland) (Side: WEST)","53 - CFP Tupolov: Western Ultranationalists (Side: GUER)","54 - CUP Community Upgrade Project: Army of the Czech Rep. (Arid / Desert) (Side: WEST)","55 - CUP Community Upgrade Project: British Army (Arid / Desert) (Side: WEST)","56 - CUP Community Upgrade Project: Chernarus Defense Forces (Side: WEST)","57 - CUP Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","58 - CUP Community Upgrade Project: CUP Static Ships (Side: WEST)","59 - CUP Community Upgrade Project: Horizon Islands Legion (Side: WEST)","60 - CUP Community Upgrade Project: National Party of Chernarus (Side: GUER)","61 - CUP Community Upgrade Project: Royal Army Corps of Sahrani (Side: GUER)","62 - CUP Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","63 - CUP Community Upgrade Project: Russian Ground Forces (Jungle / Woodland) (Side: EAST)","64 - CUP Community Upgrade Project: Sahrani Liberation Army (Side: EAST)","65 - CUP Community Upgrade Project: Takistani Army (Side: EAST)","66 - CUP Community Upgrade Project: Takistani Militia (Side: EAST)","67 - CUP Community Upgrade Project: United Nations (Side: GUER)","68 - CUP Community Upgrade Project: US Army (Arid / Desert) (Side: WEST)","69 - CUP Community Upgrade Project: US Marine Corps (Jungle / Woodland) (Side: WEST)","70 - CUP_Units Community Upgrade Project: British Army (Jungle / Woodland) (Side: WEST)","71 - CUP_Units Community Upgrade Project: Bundeswehr (Arid / Desert) (Side: WEST)","72 - CUP_Units Community Upgrade Project: Bundeswehr (Jungle / Woodland) (Side: WEST)","73 - CUP_Units Community Upgrade Project: ION PMC (Side: GUER)","74 - CUP_Units Community Upgrade Project: Russian Ground Forces (Arid / Desert) (Side: EAST)","75 - CUP_Units Community Upgrade Project: Takistani Locals (Side: GUER)","76 - CUP_Units Community Upgrade Project: US Marine Corps (Arid / Desert) (Side: WEST)","77 - CUP_Units Drew: Chernarus Defense Forces [Winter] (Side: WEST)","78 - CUP_Units Drew: PMC Wagner (Arid / Desert) (Side: EAST)","79 - CUP_Units Drew: PMC Wagner (Arid / Desert) (Side: GUER)","80 - CUP_Units Drew: PMC Wagner (Winter) (Side: EAST)","81 - CUP_Units Drew: PMC Wagner (Winter) (Side: GUER)","82 - CUP_Units Drew: PMC Wagner (Woodland) (Side: EAST)","83 - CUP_Units Drew: PMC Wagner (Woodland) (Side: GUER)","84 - CUP_Units Drew: US Army 1991 [Arid/Desert] (Side: WEST)","85 - CUP_Units Drew: US Army 1991 [Woodland] (Side: WEST)","86 - CUP_Units Drew: US Army 2003 [Arid/Desert] (Side: WEST)","87 - CUP_Units Drew: US Army 2003 [Woodland] (Side: WEST)","88 - CUP_Units Tupolov: Russian National Guard (Side: EAST)","89 - CUP_Units Tupolov: US CIA (Middle East) (Side: WEST)","90 - CUP_Vehicles Community Upgrade Project: US Army (Jungle / Woodland) (Side: WEST)","91 - CUP_Vehicles Drew: Afghan Army (Side: WEST)","92 - CUP_Vehicles Drew: Chernarussian Movement of the Red Star [Winter] (Side: EAST)","93 - Enoch Bohemia Interactive: Spetsnaz (Side: EAST)","94 - EricJ: Taliban (Side: EAST)","95 - Expansion Bohemia Interactive: 2035 CTRG (Side: WEST)","96 - Expansion Bohemia Interactive: 2035 Gendarmerie (Side: EAST)","97 - Expansion Bohemia Interactive: 2035 Gendarmerie (Side: WEST)","98 - Expansion Bohemia Interactive: 2035 NATO (Pacific) (Side: WEST)","99 - Expansion Drew: Korean People's Army (Side: EAST)","100 - FAP nzdfcrash/icebreakr: Fapovian Army (Side: EAST)","101 - FOW Bohemia Interactive: [DE] Heer (Side: WEST)","102 - FOW Bohemia Interactive: [JP] Navy Air Service (Side: WEST)","103 - FOW Bohemia Interactive: [UK] Fleet Air Arm (Side: GUER)","104 - FOW Bohemia Interactive: [US] Navy (Side: GUER)","105 - FOW FOW Team: [DE] Waffen-SS (Side: WEST)","106 - fow_mod Bohemia Interactive: [AUS] Army (Pacific) (Side: GUER)","107 - fow_mod Bohemia Interactive: [DE] Luftwaffe (Side: WEST)","108 - fow_mod Bohemia Interactive: [HI] Army (Side: GUER)","109 - fow_mod Bohemia Interactive: [UK] Army (Side: GUER)","110 - fow_mod Bohemia Interactive: [US] Army (Pacific) (Side: GUER)","111 - fow_mod FOW team: [JP] Imperial Army (Side: WEST)","112 - fow_mod FOW team: [US] Army (Europe) (Side: GUER)","113 - fow_mod FOW team: [US] Marines Corps (Side: GUER)","114 - GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","115 - GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","116 - GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","117 - gm Global Mobilization: Denmark (Side: WEST)","118 - gm Global Mobilization: East Germany (Borderguards) (Side: EAST)","119 - gm Global Mobilization: East Germany (Side: EAST)","120 - gm Global Mobilization: Poland (Side: EAST)","121 - gm Global Mobilization: West Germany (Borderguards) (Side: WEST)","122 - gm Global Mobilization: West Germany (Side: WEST)","123 - IBR Bohemia Interactive: Alienz (Side: GUER)","124 - IBR Lord Frith/IceBreakr: Robots (Side: EAST)","125 - ISC Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","126 - ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","127 - ISC Bohemia Interactive: [ISC] Islamic State (Side: EAST)","128 - ISC Bohemia Interactive: [ISC] Islamic State (Side: GUER)","129 - ISC Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","130 - ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","131 - jarrad96: Central African Rebels (Side: EAST)","132 - Jets Bravo Zero One Studios: [OPCAN] United Rebel Army (Side: EAST)","133 - LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","134 - LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","135 - LIB AWAR & Lennard: ARR (Side: WEST)","136 - LIB AWAR & Lennard: MKHL (Side: WEST)","137 - LIB AWAR & Lennard: RBAF (Side: WEST)","138 - LIB AWAR: ACI (Side: GUER)","139 - LIB AWAR: Home Army (Polish) (Side: GUER)","140 - LIB AWAR: RAAF (Side: GUER)","141 - LIB AWAR: Red Army (Side: EAST)","142 - LIB AWAR: Wehrmacht (Side: WEST)","143 - LIB El Tyranos: 101st Airborne Division (Side: GUER)","144 - LIB El Tyranos: 82nd Airborne Division (Side: GUER)","145 - LIB El Tyranos: [Winter] UK Airborne (Side: GUER)","146 - LIB El Tyranos: [Winter] UK Army (Side: GUER)","147 - LIB El Tyranos: [Winter] US Army (Side: GUER)","148 - LIB IFA3 Team: Fallschirmjäger (Side: WEST)","149 - LIB IFA3 Team: UK Airborne (Side: GUER)","150 - LIB IFA3 Team: UK Army (Side: GUER)","151 - LIB IFA3 Team: UK Desert Rats (Side: GUER)","152 - LIB IFA3 team: US Army (Side: GUER)","153 - LIB Lennard: Deutsches Afrikakorps (Side: WEST)","154 - LIB Lennard: NKVD (Side: EAST)","155 - LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","156 - LIB Lennard: US North African Corps (Side: GUER)","157 - LIB Reyhard & Joarius: FFI (Side: GUER)","158 - LM J.Burgess: [OPCAN] Colonial Guard Corps (Woodland) (Side: WEST)","159 - LM J.Burgess: [OPCAN] Colonial Military Authority (Side: GUER)","160 - LM J.Burgess: [OPCAN] Colonial Police Force (Side: GUER)","161 - LM J.Burgess: [OPCAN] Fridens (Desert) (Side: EAST)","162 - LM J.Burgess: [OPCAN] Fridens (Side: EAST)","163 - LM J.Burgess: [OPCAN] Fridens (Woodland) (Side: EAST)","164 - LM J.Burgess: [OPCAN] Koslovics (Side: EAST)","165 - LM J.Burgess: [OPCAN] Secessionist Union (Side: EAST)","166 - LM J.Burgess: [OPCAN] UNSC Army (Desert) (Side: WEST)","167 - LM J.Burgess: [OPCAN] UNSC Army (Mixed) (Side: WEST)","168 - LM J.Burgess: [OPCAN] UNSC Army (Woodland) (Side: WEST)","169 - LM J.Burgess: [OPCAN] UNSC Army Peace Corps (Side: WEST)","170 - LM J.Burgess: [OPCAN] UNSC Marine Corps (CE:A) (Side: WEST)","171 - LM J.Burgess: [OPCAN] UNSC Marine Corps (Desert) (Side: WEST)","172 - LM J.Burgess: [OPCAN] UNSC Marine Corps (Infinite) (Side: WEST)","173 - LM J.Burgess: [OPCAN] UNSC Marine Corps (Woodland) (Side: WEST)","174 - LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","175 - LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","176 - LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","177 - LOP_LeightsOPFOR Project OPFOR: Boko Haram (Side: EAST)","178 - LOP_LeightsOPFOR Project OPFOR: CDF (Project OPFOR) (Side: WEST)","179 - LOP_LeightsOPFOR Project OPFOR: ChDKZ (Project OPFOR) (Side: EAST)","180 - LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","181 - LOP_LeightsOPFOR Project OPFOR: Hellenic Armed Forces (Side: WEST)","182 - LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","183 - LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","184 - LOP_LeightsOPFOR Project OPFOR: Irish Republican Army (Side: EAST)","185 - LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","186 - LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","187 - LOP_LeightsOPFOR Project OPFOR: Korean People's Army (Side: EAST)","188 - LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","189 - LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","190 - LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","191 - LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","192 - LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","193 - LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","194 - LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","195 - LOP_LeightsOPFOR Project OPFOR: Syrian Armed Forces (Side: EAST)","196 - LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","197 - LOP_LeightsOPFOR Project OPFOR: Turkish Armed Forces (Side: GUER)","198 - LOP_LeightsOPFOR Project OPFOR: Ukrainian Armed Forces (Side: GUER)","199 - LOP_LeightsOPFOR Project OPFOR: Ulster Volunteer Force (Side: GUER)","200 - LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","201 - LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","202 - LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","203 - Mark Bohemia Interactive: NATO (Woodland) (Side: WEST)","204 - MOL HcPookie: Molatian Army (Side: EAST)","205 - OPF Community Upgrade Project: 2035 CSAT (Pacific) (Side: EAST)","206 - OPTRE Article 2 Studios: Colonial Police (Side: GUER)","207 - OPTRE Article 2 Studios: Covenant (Side: EAST)","208 - OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","209 - OPTRE Article 2 Studios: UNSCDF (Side: WEST)","210 - RHS_AFRF Red Hammer Studios: [ISC] Iraqi Army (Side: WEST)","211 - RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","212 - RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","213 - RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","214 - RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","215 - RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","216 - RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","217 - RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","218 - RHS_AFRF Red Hammer Studios: Russia (VVS - Grey) (Side: EAST)","219 - RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","220 - RHS_GREF Red Hammer Studios: [ISC] Syrian Arab Army (Side: EAST)","221 - RHS_GREF Red Hammer Studios: CDF (Air Forces) (Side: WEST)","222 - RHS_GREF Red Hammer Studios: ChDKZ (Side: EAST)","223 - RHS_GREF RHS (A2 port): CDF (Air Forces) (Side: GUER)","224 - RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","225 - RHS_SAF RHS (A2 port): SAF (KOV) (Side: EAST)","226 - RHS_SAF RHS (A2 port): SAF (RVIPVO) (Side: EAST)","227 - RHS_SAF RHS (A2 port): SAF (RVIPVO) (Side: GUER)","228 - RHS_SAF RHS (A2 port): SAF (UN Peacekeepers) (Side: GUER)","229 - RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","230 - RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","231 - RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","232 - RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","233 - RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","234 - RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","235 - RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","236 - RHSGREF Red Hammer Studios: CDF (UN) (Side: GUER)","237 - RHSGREF Red Hammer Studios: NAPA (Side: GUER)","238 - RHSGREF Red Hammer Studios: Tanoan Liberation Army (Side: EAST)","239 - RHSGREF Red Hammer Studios: Tanoan Liberation Army (Side: GUER)","240 - RHSGREF www.3commandobrigade.com: CDF (Ground Forces) (Side: GUER)","241 - RHSGREF www.3commandobrigade.com: CDF (Ground Forces) (Side: WEST)","242 - Savage Game Design: ARVN (Side: GUER)","243 - Savage Game Design: MACV (Side: WEST)","244 - Savage Game Design: PAVN (Side: EAST)","245 - Savage Game Design: Viet Cong (Side: EAST)","246 - SG Stagler: Sturmtroopers (Side: WEST)","247 - SG Stagler: Tank Sturmtroopers (Side: WEST)","248 - Tank Bohemia Interactive: 2035 Syndikat (Side: GUER)","249 - UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: EAST)","250 - UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: GUER)","251 - UK3CB_Factions www.3commandobrigade.com: 3CB AAF (Side: WEST)","252 - UK3CB_Factions www.3commandobrigade.com: 3CB Afghan National Army (Side: WEST)","253 - UK3CB_Factions www.3commandobrigade.com: 3CB Afghan National Police (Side: WEST)","254 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: EAST)","255 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: GUER)","256 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army (Side: WEST)","257 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: EAST)","258 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: GUER)","259 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Army Paramilitary (Side: WEST)","260 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: EAST)","261 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: GUER)","262 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilian Militia (Side: WEST)","263 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: EAST)","264 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: GUER)","265 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: WEST)","266 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Extremists (Side: EAST)","267 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Extremists (Side: GUER)","268 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: EAST)","269 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: GUER)","270 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Militia (Side: WEST)","271 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: EAST)","272 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: GUER)","273 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert National Police (Side: WEST)","274 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDKZ (Chernarussian Movement of the Red Star) (Side: EAST)","275 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDSZ (Chernarussian Movement of the Blue Star) (Side: WEST)","276 - UK3CB_Factions www.3commandobrigade.com: 3CB ChDZZ (Chernarussian Movement of the Green Star) (Side: GUER)","277 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: EAST)","278 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: GUER)","279 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: WEST)","280 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Communist Militia (Side: EAST)","281 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Local Defence Volunteers (Side: WEST)","282 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Nationalist Militia (Side: GUER)","283 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: EAST)","284 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: GUER)","285 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Police Department (Side: WEST)","286 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War US - Early (Side: WEST)","287 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War US - Late (Side: WEST)","288 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War USSR - Early (Side: EAST)","289 - UK3CB_Factions www.3commandobrigade.com: 3CB Cold War USSR - Late (Side: EAST)","290 - UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: EAST)","291 - UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: GUER)","292 - UK3CB_Factions www.3commandobrigade.com: 3CB NAPA (The National Party) (Side: WEST)","293 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: EAST)","294 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: GUER)","295 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: WEST)","296 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Insurgents (Side: EAST)","297 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: EAST)","298 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: GUER)","299 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Army (Side: WEST)","300 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: EAST)","301 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: GUER)","302 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan National Police (Side: WEST)","303 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Pro-Government Militia (Side: WEST)","304 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Tribal Fighters (Side: GUER)","305 - UK3CB_Factions www.3commandobrigade.com: 3CB UN Peacekeepers (Side: GUER)","306 - UK3CB_Factions www.3commandobrigade.com: 3CB UN Peacekeepers (Side: WEST)","307 - UK3CB_Factions www.3commandobrigade.com: CDF (National Guard) (Side: GUER)","308 - UK3CB_Factions www.3commandobrigade.com: CDF (National Guard) (Side: WEST)","309 - UK3CB_Factions www.3commandobrigade.com: ChDKZ (Side: GUER)","310 - UK3CB_Factions www.3commandobrigade.com: Horizon Islands Defence Force (Side: WEST)","311 - UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: WEST)","312 - UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: WEST)","313 - UNSUNG Bohemia Interactive: R.O.K. (UNSUNG) (Side: WEST)","314 - UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","315 - UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","316 - UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","317 - UNSUNG UNSUNG: A.R.V.N. (UNSUNG) (Side: GUER)","318 - VTN VTN: GRU SSPB (Side: EAST)","319 - VTN VTN: Insurgents (Side: GUER)","320 - VTN VTN: ISIL (Side: GUER)","321 - VTN VTN: Mechanized infantry (EMR) (Side: EAST)","322 - VTN VTN: Mechanized infantry (VSR-98) (Side: EAST)","323 - VTN VTN: Militia (Side: GUER)","324 - VTN VTN: MVD SPPU (Side: EAST)","325 - VTN VTN: Takistan national guard (Side: EAST)"}; + default = 9; }; class btc_p_AA { // Anti-Air infantry: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_EAA"]); @@ -97,15 +97,15 @@ class Params { }; class btc_p_civ { // Civil type: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_CTYPE"]); - values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26}; - texts[]={"0 - EricJ: Afghan Civilians (Side: CIV)","1 - Bohemia Interactive: Civils (Side: CIV)","2 - Bohemia Interactive: Autre (Side: CIV)","3 -CFP Drew: Civilians (Afghanistan) (Side: CIV)","4 -CFP Drew: Civilians (African Christian) (Side: CIV)","5 -CFP Drew: Civilians (African Islamic) (Side: CIV)","6 -CFP Drew: Civilians (Asian) (Side: CIV)","7 -CFP Drew: Civilians (Chernarus Winter) (Side: CIV)","8 -CFP Drew: Civilians (Malden) (Side: CIV)","9 -CFP Drew: Civilians (Middle Eastern) (Side: CIV)","10 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","11 -CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Chernarus) (Side: CIV)","12 -CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Sahrani) (Side: CIV)","13 -CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Takistan) (Side: CIV)","14 -gm Global Mobilization: East Germany (Side: CIV)","15 -gm Global Mobilization: West Germany (Side: CIV)","16 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","17 -LOP_LeightsOPFOR Project OPFOR: Civilians (African) (Side: CIV)","18 -LOP_LeightsOPFOR Project OPFOR: Civilians (Eastern European) (Side: CIV)","19 -LOP_LeightsOPFOR Project OPFOR: Civilians (Middle Eastern) (Side: CIV)","20 -OPTRE Article 2 Studios: IDAP (Side: CIV)","21 -OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","22 -RDS_CIV_PACK RDS (BIS A2 Port): Russians (Side: CIV)","23 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: CIV)","24 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: CIV)","25 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: CIV)","26 -UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; - default = 1; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28}; + texts[]={"0 - Bohemia Interactive: Civilians (Side: CIV)","1 - Bohemia Interactive: Other (Side: CIV)","2 - CFP Drew: Civilians (Afghanistan) (Side: CIV)","3 - CFP Drew: Civilians (African Christian) (Side: CIV)","4 - CFP Drew: Civilians (African Islamic) (Side: CIV)","5 - CFP Drew: Civilians (Asian) (Side: CIV)","6 - CFP Drew: Civilians (Chernarus Winter) (Side: CIV)","7 - CFP Drew: Civilians (Malden) (Side: CIV)","8 - CFP Drew: Civilians (Middle Eastern) (Side: CIV)","9 - CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","10 - CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Chernarus) (Side: CIV)","11 - CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Sahrani) (Side: CIV)","12 - CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Takistan) (Side: CIV)","13 - EricJ: Afghan Civilians (Side: CIV)","14 - gm Global Mobilization: East Germany (Civilians) (Side: CIV)","15 - gm Global Mobilization: West Germany (Civilians) (Side: CIV)","16 - LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","17 - LOP_LeightsOPFOR Project OPFOR: Civilians (African) (Side: CIV)","18 - LOP_LeightsOPFOR Project OPFOR: Civilians (Eastern European) (Side: CIV)","19 - LOP_LeightsOPFOR Project OPFOR: Civilians (Middle Eastern) (Side: CIV)","20 - OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","21 - OPTRE Article 2 Studios: IDAP (Side: CIV)","22 - RDS_CIV_PACK RDS (BIS A2 Port): Polish (Side: CIV)","23 - RDS_CIV_PACK RDS (BIS A2 Port): Russians (Side: CIV)","24 - Savage Game Design: Vietnamese (Side: CIV)","25 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: CIV)","26 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: CIV)","27 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: CIV)","28 - UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; + default = 0; }; class btc_p_civ_veh { // Civil vehicle type: title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_CTYPEVEH"]); - values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26}; - texts[]={"0 - EricJ: Afghan Civilians (Side: CIV)","1 - Bohemia Interactive: Civils (Side: CIV)","2 - Bohemia Interactive: Autre (Side: CIV)","3 -CFP Drew: Civilians (Afghanistan) (Side: CIV)","4 -CFP Drew: Civilians (African Christian) (Side: CIV)","5 -CFP Drew: Civilians (African Islamic) (Side: CIV)","6 -CFP Drew: Civilians (Asian) (Side: CIV)","7 -CFP Drew: Civilians (Chernarus Winter) (Side: CIV)","8 -CFP Drew: Civilians (Malden) (Side: CIV)","9 -CFP Drew: Civilians (Middle Eastern) (Side: CIV)","10 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","11 -CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Chernarus) (Side: CIV)","12 -CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Sahrani) (Side: CIV)","13 -CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Takistan) (Side: CIV)","14 -gm Global Mobilization: East Germany (Side: CIV)","15 -gm Global Mobilization: West Germany (Side: CIV)","16 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","17 -LOP_LeightsOPFOR Project OPFOR: Civilians (African) (Side: CIV)","18 -LOP_LeightsOPFOR Project OPFOR: Civilians (Eastern European) (Side: CIV)","19 -LOP_LeightsOPFOR Project OPFOR: Civilians (Middle Eastern) (Side: CIV)","20 -OPTRE Article 2 Studios: IDAP (Side: CIV)","21 -OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","22 -RDS_CIV_PACK RDS (BIS A2 Port): Russians (Side: CIV)","23 -UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: CIV)","24 -UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: CIV)","25 -UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: CIV)","26 -UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; - default = 1; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28}; + texts[]={"0 - Bohemia Interactive: Civilians (Side: CIV)","1 - Bohemia Interactive: Other (Side: CIV)","2 - CFP Drew: Civilians (Afghanistan) (Side: CIV)","3 - CFP Drew: Civilians (African Christian) (Side: CIV)","4 - CFP Drew: Civilians (African Islamic) (Side: CIV)","5 - CFP Drew: Civilians (Asian) (Side: CIV)","6 - CFP Drew: Civilians (Chernarus Winter) (Side: CIV)","7 - CFP Drew: Civilians (Malden) (Side: CIV)","8 - CFP Drew: Civilians (Middle Eastern) (Side: CIV)","9 - CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","10 - CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Chernarus) (Side: CIV)","11 - CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Sahrani) (Side: CIV)","12 - CUP_Vehicles $CUP_AUTHOR_STRING: Civilians (Takistan) (Side: CIV)","13 - EricJ: Afghan Civilians (Side: CIV)","14 - gm Global Mobilization: East Germany (Civilians) (Side: CIV)","15 - gm Global Mobilization: West Germany (Civilians) (Side: CIV)","16 - LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","17 - LOP_LeightsOPFOR Project OPFOR: Civilians (African) (Side: CIV)","18 - LOP_LeightsOPFOR Project OPFOR: Civilians (Eastern European) (Side: CIV)","19 - LOP_LeightsOPFOR Project OPFOR: Civilians (Middle Eastern) (Side: CIV)","20 - OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","21 - OPTRE Article 2 Studios: IDAP (Side: CIV)","22 - RDS_CIV_PACK RDS (BIS A2 Port): Polish (Side: CIV)","23 - RDS_CIV_PACK RDS (BIS A2 Port): Russians (Side: CIV)","24 - Savage Game Design: Vietnamese (Side: CIV)","25 - UK3CB_Factions www.3commandobrigade.com: 3CB African Desert Civilians (Side: CIV)","26 - UK3CB_Factions www.3commandobrigade.com: 3CB Chernarus Civilians (Side: CIV)","27 - UK3CB_Factions www.3commandobrigade.com: 3CB Takistan Civilians (Side: CIV)","28 - UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; + default = 0; }; class btc_p_spawn_title { // << Spawn options >> title = $STR_BTC_HAM_PARAM_SPAWN_TITLE; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf index 8af7cda63..f237e6e76 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf @@ -59,6 +59,9 @@ private _alldlc = []; _dlc = (_allfaction select _index) select [0, (_allfaction select _index) find "_"]; }; }; + if (count _dlc isEqualTo 1) then { + _dlc = ""; + }; _alldlc pushBack _dlc; }; } forEach _allvehicles; @@ -66,21 +69,37 @@ private _alldlc = []; //Create an array of all information get private _all = []; { - _all pushBack [_alldlc select _foreachindex, _x, _allside select _foreachindex, _allauthor select _foreachindex]; -} forEach _allfaction; + if ( //Select faction depending on side CIV or Enemy + (_allside select _foreachindex) in _faction_list && + (getNumber (_cfgFactionClasses >> _alldlc select _foreachindex >> "side") in [0, 1, 2, 3]) + ) then { + + //Return the text usefull in param.hpp + private _factionInfo = format [ + "%1: %2 (Side: %3)", + _allauthor select _foreachindex, + getText (_cfgFactionClasses >> _x >> "displayName"), + [East, West, Independent, Civilian] select (_allside select _foreachindex) + ]; + + if ((_alldlc select _foreachindex) isNotEqualTo "") then { + _factionInfo = format [ + "%1 %2", + _alldlc select _foreachindex, + _factionInfo + ]; + }; -//Select faction depending on side CIV or Enemy -_all = _all select {(_x select 2) in _faction_list && (getNumber(_cfgFactionClasses >> _x select 0 >> "side") in [0, 1, 2, 3])}; + _all pushBack [_factionInfo, _alldlc select _foreachindex, _x, _allside select _foreachindex, _allauthor select _foreachindex]; + }; +} forEach _allfaction; _all sort true; -//Return the text which be use in param.hpp -private _texts = _all apply {format ["%3 %4: %1 (Side: %2)", getText(_cfgFactionClasses >> _x select 1 >> "displayName"), [East, West, Independent, Civilian] select (_x select 2), _x select 0, _x select 3]}; - -_allauthor = _all apply {_x select 0}; +_alldlc = _all apply {_x select 1}; private _values = []; for "_i" from 0 to (count _all) - 1 do { _values pushBack _i; }; -_texts = _values apply {format ["%1 -%2", _x, _texts select _x]}; +_texts = _values apply {format ["%1 - %2", _x, (_all select _x) select 0]}; -[_allauthor arrayIntersect _allauthor, _texts, _all apply {_x select 1}, _values] +[_alldlc arrayIntersect _alldlc, _texts, _all apply {_x select 2}, _values] diff --git a/README.md b/README.md index 29b28c53f..35ea1f69c 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ Online [wiki available](http://vdauphin.github.io/HeartsAndMinds/). - [Spectrum devices](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation#spectrum-devices) - Under the hood - A lot of optional gameplay - - More than 321 enemies and 27 civilians factions available + - More than 326 enemies and 29 civilians factions available - Full saving Database ([even player markers](http://vdauphin.github.io/HeartsAndMinds/InGame-documentation#headless--database)) - Easy map change (See [here](http://vdauphin.github.io/HeartsAndMinds/Change-MAP-of-Hearts-and-Minds)) - Auto Headless support From 67c30006dd37f731b61508ed983fa1ceb4718e36 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 11 May 2021 00:56:27 +0200 Subject: [PATCH 14/15] FIX: ACE cargo fail when server use -autoinit --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 8 +++++--- .../core/fnc/db/loadcargo.sqf | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 288d360d0..f3ebae095 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -127,9 +127,11 @@ btc_global_reputation = profileNamespace getVariable [format ["btc_hm_%1_rep", _ btc_vehicles = []; private _objs = +(profileNamespace getVariable [format ["btc_hm_%1_objs", _name], []]); -{ - [_x] call btc_fnc_db_loadObjectStatus; -} forEach _objs; +[{ // Can't use ace_cargo for objects created during first frame. + { + [_x] call btc_fnc_db_loadObjectStatus; + } forEach _this; +}, _objs] call CBA_fnc_execNextFrame; //VEHICLES private _vehs = +(profileNamespace getVariable [format ["btc_hm_%1_vehs", _name], []]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf index d0b049754..a1aa4fba4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/loadcargo.sqf @@ -50,4 +50,4 @@ Author: //set inventory content for weapons, magazines and items [_obj, _inventory] call btc_fnc_log_setCargo; -}, _this, 0.1] call CBA_fnc_waitAndExecute; +}, _this] call CBA_fnc_execNextFrame; From bb3872d3116d300ae1cda4e8a06303fa00c3c983 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 13 May 2021 18:58:46 +0200 Subject: [PATCH 15/15] Fix wrong variable name btc_rep_malus_removeFood --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf index 199e569de..77e19fbcc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/foodRemoved.sqf @@ -33,7 +33,7 @@ if ( ) then { private _cfgWeapons = configFile >> "CfgWeapons"; private _posItemInArray = _listOfItemsToRemove findIf {_x isKindOf ["ACE_Banana", _cfgWeapons]}; - private _repChange = btc_rep_malus_removeFood * parseNumber (_listOfTextItems select _posItemInArray); + private _repChange = btc_rep_malus_foodRemove * parseNumber (_listOfTextItems select _posItemInArray); if (isServer) then { [_repChange, _caller] call btc_fnc_rep_change; } else {