From 124cff654d0fd381bfab7bb13ae956b199680b6c Mon Sep 17 00:00:00 2001 From: Jacob Schmidt Date: Sat, 4 Jan 2025 19:45:49 -0600 Subject: [PATCH] Major Hotfix 01042025@1925 --- campaign/configs/banks.h | 3 +- campaign/configs/cpofs.h | 1 - campaign/configs/garages.h | 19 +- campaign/configs/lockers.h | 3 +- campaign/configs/paygrades.h | 1 - campaign/configs/stores.h | 200 ++++++++--------- campaign/do_not_edit/description.ext | 2 +- campaign/do_not_edit/initPlayerLocal.sqf | 1 - campaign/init.sqf | 10 + {operation => contract}/briefing.sqf | 0 {operation => contract}/cba_settings.sqf | 0 {operation => contract}/config.h | 0 {operation => contract}/configs/banks.h | 3 +- {operation => contract}/configs/cpofs.h | 1 - contract/configs/garages.h | 20 ++ {operation => contract}/configs/lockers.h | 3 +- {operation => contract}/configs/paygrades.h | 0 contract/configs/stores.h | 105 +++++++++ {operation => contract}/description.ext | 0 .../do_not_edit/briefing.sqf | 0 .../do_not_edit/description.ext | 2 +- .../do_not_edit/initPlayerLocal.sqf | 1 - .../do_not_edit/script_component.hpp | 0 .../edit_me/briefing/employer.html | 0 .../edit_me/briefing/mission.html | 0 .../edit_me/briefing/objectives.html | 0 .../edit_me/briefing/situation.html | 0 .../edit_me/description.ext | 0 {operation => contract}/init.sqf | 10 + {operation => contract}/initPlayerLocal.sqf | 0 {operation => contract}/initServer.sqf | 0 {operation => contract}/params/paramArsType.h | 0 {operation => contract}/params/paramDT.h | 0 .../params/paramFuelCost.h | 0 .../params/paramInsDeduct.h | 0 {operation => contract}/params/paramMedCost.h | 0 .../params/paramMultiplyr.h | 0 .../params/paramOpBudget.h | 0 .../params/paramOpRating.h | 0 {operation => contract}/params/paramPDBMode.h | 0 .../params/paramRepairCost.h | 0 .../params/paramTeamCoord.h | 0 .../params/paramVAEnable.h | 0 {operation => contract}/script_component.hpp | 0 directAction/configs/banks.h | 3 +- directAction/configs/cpofs.h | 1 - directAction/configs/garages.h | 19 +- directAction/configs/lockers.h | 3 +- directAction/configs/stores.h | 204 ++++++++---------- directAction/do_not_edit/initPlayerLocal.sqf | 1 - directAction/edit_me/description.ext | 2 +- operation/configs/garages.h | 21 -- operation/configs/stores.h | 117 ---------- special/briefing.sqf | 71 ++++++ special/cba_settings.sqf | 1 + special/config.h | 23 ++ special/configs/banks.h | 10 + special/configs/cpofs.h | 9 + special/configs/garages.h | 20 ++ special/configs/lockers.h | 10 + special/configs/paygrades.h | 16 ++ special/configs/stores.h | 105 +++++++++ special/description.ext | 3 + special/do_not_edit/briefing.sqf | 21 ++ special/do_not_edit/description.ext | 30 +++ special/do_not_edit/initPlayerLocal.sqf | 10 + special/do_not_edit/script_component.hpp | 11 + special/edit_me/briefing/employer.html | 1 + special/edit_me/briefing/mission.html | 5 + special/edit_me/briefing/objectives.html | 7 + special/edit_me/briefing/situation.html | 15 ++ special/edit_me/description.ext | 9 + special/init.sqf | 23 ++ special/initPlayerLocal.sqf | 2 + special/initServer.sqf | 4 + special/params/paramArsType.h | 6 + special/params/paramDT.h | 6 + special/params/paramFuelCost.h | 6 + special/params/paramInsDeduct.h | 6 + special/params/paramMedCost.h | 6 + special/params/paramMultiplyr.h | 6 + special/params/paramOpBudget.h | 6 + special/params/paramOpRating.h | 6 + special/params/paramPDBMode.h | 6 + special/params/paramRepairCost.h | 6 + special/params/paramTeamCoord.h | 6 + special/params/paramVAEnable.h | 6 + special/script_component.hpp | 28 +++ training/briefing.sqf | 71 ++++++ training/cba_settings.sqf | 1 + training/config.h | 23 ++ training/configs/banks.h | 10 + training/configs/cpofs.h | 9 + training/configs/garages.h | 20 ++ training/configs/lockers.h | 10 + training/configs/paygrades.h | 16 ++ training/configs/stores.h | 105 +++++++++ training/description.ext | 3 + training/do_not_edit/briefing.sqf | 21 ++ training/do_not_edit/description.ext | 30 +++ training/do_not_edit/initPlayerLocal.sqf | 10 + training/do_not_edit/script_component.hpp | 11 + training/edit_me/briefing/employer.html | 1 + training/edit_me/briefing/mission.html | 5 + training/edit_me/briefing/objectives.html | 7 + training/edit_me/briefing/situation.html | 15 ++ training/edit_me/description.ext | 9 + training/init.sqf | 23 ++ training/initPlayerLocal.sqf | 2 + training/initServer.sqf | 4 + training/params/paramArsType.h | 6 + training/params/paramDT.h | 6 + training/params/paramFuelCost.h | 6 + training/params/paramInsDeduct.h | 6 + training/params/paramMedCost.h | 6 + training/params/paramMultiplyr.h | 6 + training/params/paramOpBudget.h | 6 + training/params/paramOpRating.h | 6 + training/params/paramPDBMode.h | 6 + training/params/paramRepairCost.h | 6 + training/params/paramTeamCoord.h | 6 + training/params/paramVAEnable.h | 6 + training/script_component.hpp | 28 +++ 123 files changed, 1372 insertions(+), 396 deletions(-) rename {operation => contract}/briefing.sqf (100%) rename {operation => contract}/cba_settings.sqf (100%) rename {operation => contract}/config.h (100%) rename {operation => contract}/configs/banks.h (70%) rename {operation => contract}/configs/cpofs.h (82%) create mode 100644 contract/configs/garages.h rename {operation => contract}/configs/lockers.h (67%) rename {operation => contract}/configs/paygrades.h (100%) create mode 100644 contract/configs/stores.h rename {operation => contract}/description.ext (100%) rename {operation => contract}/do_not_edit/briefing.sqf (100%) rename {operation => contract}/do_not_edit/description.ext (96%) rename {operation => contract}/do_not_edit/initPlayerLocal.sqf (88%) rename {operation => contract}/do_not_edit/script_component.hpp (100%) rename {operation => contract}/edit_me/briefing/employer.html (100%) rename {operation => contract}/edit_me/briefing/mission.html (100%) rename {operation => contract}/edit_me/briefing/objectives.html (100%) rename {operation => contract}/edit_me/briefing/situation.html (100%) rename {operation => contract}/edit_me/description.ext (100%) rename {operation => contract}/init.sqf (55%) rename {operation => contract}/initPlayerLocal.sqf (100%) rename {operation => contract}/initServer.sqf (100%) rename {operation => contract}/params/paramArsType.h (100%) rename {operation => contract}/params/paramDT.h (100%) rename {operation => contract}/params/paramFuelCost.h (100%) rename {operation => contract}/params/paramInsDeduct.h (100%) rename {operation => contract}/params/paramMedCost.h (100%) rename {operation => contract}/params/paramMultiplyr.h (100%) rename {operation => contract}/params/paramOpBudget.h (100%) rename {operation => contract}/params/paramOpRating.h (100%) rename {operation => contract}/params/paramPDBMode.h (100%) rename {operation => contract}/params/paramRepairCost.h (100%) rename {operation => contract}/params/paramTeamCoord.h (100%) rename {operation => contract}/params/paramVAEnable.h (100%) rename {operation => contract}/script_component.hpp (100%) delete mode 100644 operation/configs/garages.h delete mode 100644 operation/configs/stores.h create mode 100644 special/briefing.sqf create mode 100644 special/cba_settings.sqf create mode 100644 special/config.h create mode 100644 special/configs/banks.h create mode 100644 special/configs/cpofs.h create mode 100644 special/configs/garages.h create mode 100644 special/configs/lockers.h create mode 100644 special/configs/paygrades.h create mode 100644 special/configs/stores.h create mode 100644 special/description.ext create mode 100644 special/do_not_edit/briefing.sqf create mode 100644 special/do_not_edit/description.ext create mode 100644 special/do_not_edit/initPlayerLocal.sqf create mode 100644 special/do_not_edit/script_component.hpp create mode 100644 special/edit_me/briefing/employer.html create mode 100644 special/edit_me/briefing/mission.html create mode 100644 special/edit_me/briefing/objectives.html create mode 100644 special/edit_me/briefing/situation.html create mode 100644 special/edit_me/description.ext create mode 100644 special/init.sqf create mode 100644 special/initPlayerLocal.sqf create mode 100644 special/initServer.sqf create mode 100644 special/params/paramArsType.h create mode 100644 special/params/paramDT.h create mode 100644 special/params/paramFuelCost.h create mode 100644 special/params/paramInsDeduct.h create mode 100644 special/params/paramMedCost.h create mode 100644 special/params/paramMultiplyr.h create mode 100644 special/params/paramOpBudget.h create mode 100644 special/params/paramOpRating.h create mode 100644 special/params/paramPDBMode.h create mode 100644 special/params/paramRepairCost.h create mode 100644 special/params/paramTeamCoord.h create mode 100644 special/params/paramVAEnable.h create mode 100644 special/script_component.hpp create mode 100644 training/briefing.sqf create mode 100644 training/cba_settings.sqf create mode 100644 training/config.h create mode 100644 training/configs/banks.h create mode 100644 training/configs/cpofs.h create mode 100644 training/configs/garages.h create mode 100644 training/configs/lockers.h create mode 100644 training/configs/paygrades.h create mode 100644 training/configs/stores.h create mode 100644 training/description.ext create mode 100644 training/do_not_edit/briefing.sqf create mode 100644 training/do_not_edit/description.ext create mode 100644 training/do_not_edit/initPlayerLocal.sqf create mode 100644 training/do_not_edit/script_component.hpp create mode 100644 training/edit_me/briefing/employer.html create mode 100644 training/edit_me/briefing/mission.html create mode 100644 training/edit_me/briefing/objectives.html create mode 100644 training/edit_me/briefing/situation.html create mode 100644 training/edit_me/description.ext create mode 100644 training/init.sqf create mode 100644 training/initPlayerLocal.sqf create mode 100644 training/initServer.sqf create mode 100644 training/params/paramArsType.h create mode 100644 training/params/paramDT.h create mode 100644 training/params/paramFuelCost.h create mode 100644 training/params/paramInsDeduct.h create mode 100644 training/params/paramMedCost.h create mode 100644 training/params/paramMultiplyr.h create mode 100644 training/params/paramOpBudget.h create mode 100644 training/params/paramOpRating.h create mode 100644 training/params/paramPDBMode.h create mode 100644 training/params/paramRepairCost.h create mode 100644 training/params/paramTeamCoord.h create mode 100644 training/params/paramVAEnable.h create mode 100644 training/script_component.hpp diff --git a/campaign/configs/banks.h b/campaign/configs/banks.h index 8f13d70..6f7c7a7 100644 --- a/campaign/configs/banks.h +++ b/campaign/configs/banks.h @@ -4,8 +4,7 @@ class CfgBanks { className = "Land_Atm_01_F"; pos[] = {4818, 8075, 0}; dir = 180; - bankType = "object"; - bankName = "FDIC"; + type = "object"; }; }; }; \ No newline at end of file diff --git a/campaign/configs/cpofs.h b/campaign/configs/cpofs.h index 0abb213..b9cdb21 100644 --- a/campaign/configs/cpofs.h +++ b/campaign/configs/cpofs.h @@ -4,7 +4,6 @@ class CfgCpofs { className = "Land_MultiScreenComputer_01_olive_F"; pos[] = {4821, 8075, 0}; dir = 180; - cpofName = "Commander's CPOF"; }; }; }; \ No newline at end of file diff --git a/campaign/configs/garages.h b/campaign/configs/garages.h index ef45bb6..2ea406e 100644 --- a/campaign/configs/garages.h +++ b/campaign/configs/garages.h @@ -1,21 +1,20 @@ class CfgGarages { locations[] = { - {"garageAircraft", {4805,8075,0}, 0}, - {"garageArmored", {4805,8075,0}, 0}, - {"garageChopper", {4805,8075,0}, 0}, - {"garageMarine", {4805,8075,0}, 0}, - {"garageStatic", {4805,8075,0}, 0}, - {"garageUAV", {4805,8075,0}, 0}, - {"garageUGV", {4805,8075,0}, 0}, - {"garageWheeled", {4805,8075,0}, 0} + {"car", {4805,8075,0}, 0}, + {"armor", {4805,8075,0}, 0}, + {"heli", {4805,8075,0}, 0}, + {"plane", {4805,8075,0}, 0}, + {"naval", {4805,8075,0}, 0}, + {"static", {4805,8075,0}, 0}, + {"uav", {4805,8075,0}, 0}, + {"ugv", {4805,8075,0}, 0} }; class garages { class garage1 { className = "Box_NATO_Equip_F"; pos[] = {4810, 8075, 0}; dir = 0; - garageType = "object"; - garageName = "Player Garage"; + type = "object"; }; }; }; \ No newline at end of file diff --git a/campaign/configs/lockers.h b/campaign/configs/lockers.h index 7456559..d4cd057 100644 --- a/campaign/configs/lockers.h +++ b/campaign/configs/lockers.h @@ -4,8 +4,7 @@ class CfgLockers { className = "Box_NATO_Equip_F"; pos[] = {4812, 8075, 0}; dir = 0; - lockerType = "object"; - lockerName = "Player Locker"; + type = "object"; }; }; }; \ No newline at end of file diff --git a/campaign/configs/paygrades.h b/campaign/configs/paygrades.h index c1cef18..9694e66 100644 --- a/campaign/configs/paygrades.h +++ b/campaign/configs/paygrades.h @@ -1,6 +1,5 @@ class CfgPaygrades { payGrades[] = { - // Army {"E1", 1000, "Enlisted"}, {"E2", 1250, "Enlisted"}, {"E3", 1500, "Enlisted"}, diff --git a/campaign/configs/stores.h b/campaign/configs/stores.h index 7a9e682..1478aad 100644 --- a/campaign/configs/stores.h +++ b/campaign/configs/stores.h @@ -4,113 +4,101 @@ class CfgStores { className = "Land_CashDesk_F"; pos[] = {4815, 8075, 0}; dir = 0; - storeType = "object"; - storeCategories[] = { - {"Backpacks", "storeBackpacks"}, - {"Goggles", "storeGoggles"}, - {"Headgear", "storeHeadgear"}, - {"Items", "storeItems"}, - {"Magazines", "storeMagazines"}, - {"Uniforms", "storeUniforms"}, - {"Vests", "storeVests"}, - {"Weapons", "storeWeapons"}, - {"Aircraft", "storeAircraft"}, - {"Armored", "storeArmored"}, - {"Chopper", "storeChopper"}, - {"Marine", "storeMarine"}, - {"Static", "storeStatic"}, - {"UAV", "storeUAV"}, - {"UGV", "storeUGV"}, - {"Wheeled", "storeWheeled"} + type = "object"; + name = "General Military Surplus Store"; + paymentMethods[] = { + {"Bank", "FORGE_Bank", "player"}, + {"Cash", "FORGE_Cash", "player"}, + {"Company", "FORGE_Company", "mission", {"76561198027566824"}} + }; + categories[] = { + "Backpacks", + "Headgear", + "Items", + "Magazines", + "Medical", + "Uniforms", + "Vests", + "Weapons", + "Aircraft", + "Armored", + "Helicopter", + "Marine", + "Static", + "UAV", + "UGV", + "Wheeled" }; - storeRestrictedCategories[] = {}; - storeModset[] = { - "STOCK", - "ACE3", - "RHS", - "SMA", - "TFAR" - }; - storeName = "General Military Surplus Store"; - storeBackpacks[] = { - {"B_AssaultPack_rgr", 250, "STOCK"}, - {"B_AssaultPack_blk", 250, "STOCK"} - }; - storeGoggles[] = {}; - storeHeadgear[] = { - {"H_Cap_blk_ION", 100, "STOCK"} - }; - storeItems[] = { - {"Binocular", 335, "STOCK"}, - {"ItemCompass", 50, "STOCK"}, - {"ItemMap", 20, "STOCK"}, - {"ItemWatch", 50, "STOCK"}, - {"ToolKit", 450, "STOCK"}, - {"Chemlight_blue", 2, "STOCK"}, - {"Chemlight_green", 2, "STOCK"}, - {"Chemlight_red", 2, "STOCK"}, - {"Chemlight_yellow", 2, "STOCK"}, - {"ACE_MapTools", 525, "ACE3"}, - {"ACE_CableTie", 2, "ACE3"}, - {"ACE_EarPlugs", 1, "ACE3"}, - {"ACE_wirecutter", 65, "ACE3"}, - {"ACE_SpareBarrel", 300, "ACE3"} - }; - storeMagazines[] = { - {"16Rnd_9x21_Mag", 10, "STOCK"}, - {"30Rnd_65x39_caseless_mag", 10, "STOCK"}, - {"100Rnd_65x39_caseless_mag", 10, "STOCK"} - }; - storeUniforms[] = { - {"U_BG_Guerrilla_6_1", 500, "STOCK"} - }; - storeVests[] = { - {"V_Chestrig_rgr", 500, "STOCK"}, - {"V_PlateCarrier2_rgr", 2000, "STOCK"} - }; - storeWeapons[] = { - {"hgun_P07_F", 1000, "STOCK"}, - {"arifle_MXC_F", 1500, "STOCK"}, - {"arifle_MX_SW_F", 1500, "STOCK"}, - {"arifle_MXM_F", 10000, "STOCK"} - }; - storeAircraft[] = {}; - storeArmored[] = { - {"B_APC_Wheeled_01_cannon_F", 10000, "STOCK"}, - {"B_MBT_01_TUSK_F", 10000, "STOCK"} - }; - storeChopper[] = { - {"B_T_VTOL_01_infantry_F", 10000, "STOCK"}, - {"B_T_VTOL_01_vehicle_F", 10000, "STOCK"}, - {"B_T_VTOL_01_armed_F", 10000, "STOCK"}, - {"B_Heli_Transport_03_F", 10000, "STOCK"}, - {"B_Heli_Attack_01_F", 10000, "STOCK"}, - {"B_Heli_Transport_01_F", 10000, "STOCK"}, - {"B_Heli_Light_01_F", 10000, "STOCK"}, - {"B_Heli_Light_01_armed_F", 10000, "STOCK"}, - {"B_Heli_Light_01_stripped_F", 10000, "STOCK"} - }; - storeMarine[] = {}; - storeStatic[] = {}; - storeUAV[] = {}; - storeUGV[] = {}; - storeWheeled[] = { - {"B_MRAP_01_F", 10000, "STOCK"}, - {"B_MRAP_01_gmg_F", 10000, "STOCK"}, - {"B_MRAP_01_hmg_F", 10000, "STOCK"}, - {"B_Quadbike_01_F", 10000, "STOCK"}, - {"B_Truck_01_transport_F", 10000, "STOCK"}, - {"B_Truck_01_covered_F", 10000, "STOCK"}, - {"B_Truck_01_mover_F", 10000, "STOCK"}, - {"B_Truck_01_box_F", 10000, "STOCK"}, - {"B_Truck_01_Repair_F", 10000, "STOCK"}, - {"B_Truck_01_ammo_F", 10000, "STOCK"}, - {"B_Truck_01_fuel_F", 10000, "STOCK"}, - {"B_Truck_01_medical_F", 10000, "STOCK"}, - {"B_LSV_01_armed_F", 10000, "STOCK"}, - {"B_LSV_01_AT_F", 10000, "STOCK"}, - {"B_LSV_01_unarmed_F", 10000, "STOCK"}, - {"B_Truck_01_fuel_F", 10000, "STOCK"} + products[] = { + {"Binocular", 335, "Items", "item", "item"}, + {"ItemCompass", 50, "Items", "item", "item"}, + {"ItemGPS", 250, "Items", "item", "item"}, + {"ItemMap", 20, "Items", "item", "item"}, + {"ItemWatch", 50, "Items", "item", "item"}, + {"Toolkit", 450, "Items", "item", "item"}, + {"Chemlight_blue", 2, "Items", "magazine", "item"}, + {"Chemlight_green", 2, "Items", "magazine", "item"}, + {"Chemlight_red", 2, "Items", "magazine", "item"}, + {"Chemlight_yellow", 2, "Items", "magazine", "item"}, + {"ACE_EarPlugs", 1, "Items", "item", "item"}, + {"ACE_MapTools", 225, "Items", "item", "item"}, + {"ACE_CableTie", 5, "Items", "item", "item"}, + {"ACE_wirecutter", 50, "Items", "item", "item"}, + {"ACE_SpareBarrel", 250, "Items", "item", "item"}, + + {"ACE_fieldDressing", 10, "Medical", "item", "item"}, + {"ACE_packingBandage", 10, "Medical", "item", "item"}, + {"ACE_elasticBandage", 10, "Medical", "item", "item"}, + {"ACE_quikclot", 10, "Medical", "item", "item"}, + {"ACE_tourniquet", 10, "Medical", "item", "item"}, + {"ACE_morphine", 10, "Medical", "item", "item"}, + {"ACE_epinephrine", 10, "Medical", "item", "item"}, + + {"16Rnd_9x21_Mag", 10, "Magazines", "magazine", "magazine"}, + {"30Rnd_65x39_caseless_mag", 10, "Magazines", "magazine", "magazine"}, + {"100Rnd_65x39_caseless_mag", 10, "Magazines", "magazine", "magazine"}, + + {"U_BG_Guerrilla_6_1", 300, "Uniforms", "uniform", "uniform"}, + {"V_Chestrig_rgr", 500, "Vests", "vest", "vest"}, + {"V_PlateCarrier2_rgr", 1000, "Vests", "vest", "vest"}, + + {"H_Cap_blk_ION", 100, "Headgear", "headgear", "headgear"}, + + {"B_AssaultPack_rgr", 250, "Backpacks", "backpack", "backpack", {"B_AssaultPack_blk"}}, + + {"hgun_P07_F", 1000, "Weapons", "weapon", "weapon"}, + {"arifle_MXC_F", 1500, "Weapons", "weapon", "weapon"}, + {"arifle_MX_SW_F", 1500, "Weapons", "weapon", "weapon"}, + {"arifle_MXM_F", 10000, "Weapons", "weapon", "weapon"}, + + {"B_APC_Wheeled_01_cannon_F", 10000, "Armored", "vehicle", "armor"}, + {"B_MBT_01_TUSK_F", 10000, "Armored", "vehicle", "armor"}, + + {"B_T_VTOL_01_infantry_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_T_VTOL_01_vehicle_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_T_VTOL_01_armed_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Transport_03_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Attack_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Transport_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_armed_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_stripped_F", 10000, "Helicopter", "vehicle", "heli"}, + + {"B_MRAP_01_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_MRAP_01_gmg_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_MRAP_01_hmg_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Quadbike_01_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_transport_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_covered_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_mover_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_box_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_Repair_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_ammo_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_fuel_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_medical_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_armed_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_AT_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_unarmed_F", 10000, "Wheeled", "vehicle", "car"} }; }; }; diff --git a/campaign/do_not_edit/description.ext b/campaign/do_not_edit/description.ext index 5a19391..75e1beb 100644 --- a/campaign/do_not_edit/description.ext +++ b/campaign/do_not_edit/description.ext @@ -9,7 +9,7 @@ onLoadMissionTime = 1; // Game type and player count class Header { - gameType = COOP; + gameType = FORGE_CAMP; minPlayers = 1; maxPlayers = 32; }; diff --git a/campaign/do_not_edit/initPlayerLocal.sqf b/campaign/do_not_edit/initPlayerLocal.sqf index 4941c45..24ce7fa 100644 --- a/campaign/do_not_edit/initPlayerLocal.sqf +++ b/campaign/do_not_edit/initPlayerLocal.sqf @@ -1,4 +1,3 @@ -[] call forge_client_arsenal_fnc_initArsenal; [] spawn forge_client_init_fnc_initPlayer; [] spawn forge_client_medical_fnc_initMedical; [] spawn forge_client_phone_fnc_initPhone; diff --git a/campaign/init.sqf b/campaign/init.sqf index cec1efd..38374b4 100644 --- a/campaign/init.sqf +++ b/campaign/init.sqf @@ -3,6 +3,16 @@ finishMissionInit; enableSaving [false, false]; +addMissionEventHandler ["ExtensionCallback", { + params ["_name", "_function", "_data"]; + diag_log _this; + if (_name isEqualTo "ArmaDragonflyClient") then { + parseSimpleArray _data call (missionNamespace getVariable [_function, { + hint "Function does not exist!" + }]); + }; +}]; + addMissionEventHandler ["ExtensionCallback", { params ["_name", "_function", "_data"]; if (_name isEqualTo "ArmaFORGEClient") then { diff --git a/operation/briefing.sqf b/contract/briefing.sqf similarity index 100% rename from operation/briefing.sqf rename to contract/briefing.sqf diff --git a/operation/cba_settings.sqf b/contract/cba_settings.sqf similarity index 100% rename from operation/cba_settings.sqf rename to contract/cba_settings.sqf diff --git a/operation/config.h b/contract/config.h similarity index 100% rename from operation/config.h rename to contract/config.h diff --git a/operation/configs/banks.h b/contract/configs/banks.h similarity index 70% rename from operation/configs/banks.h rename to contract/configs/banks.h index 8f13d70..6f7c7a7 100644 --- a/operation/configs/banks.h +++ b/contract/configs/banks.h @@ -4,8 +4,7 @@ class CfgBanks { className = "Land_Atm_01_F"; pos[] = {4818, 8075, 0}; dir = 180; - bankType = "object"; - bankName = "FDIC"; + type = "object"; }; }; }; \ No newline at end of file diff --git a/operation/configs/cpofs.h b/contract/configs/cpofs.h similarity index 82% rename from operation/configs/cpofs.h rename to contract/configs/cpofs.h index 0abb213..b9cdb21 100644 --- a/operation/configs/cpofs.h +++ b/contract/configs/cpofs.h @@ -4,7 +4,6 @@ class CfgCpofs { className = "Land_MultiScreenComputer_01_olive_F"; pos[] = {4821, 8075, 0}; dir = 180; - cpofName = "Commander's CPOF"; }; }; }; \ No newline at end of file diff --git a/contract/configs/garages.h b/contract/configs/garages.h new file mode 100644 index 0000000..2ea406e --- /dev/null +++ b/contract/configs/garages.h @@ -0,0 +1,20 @@ +class CfgGarages { + locations[] = { + {"car", {4805,8075,0}, 0}, + {"armor", {4805,8075,0}, 0}, + {"heli", {4805,8075,0}, 0}, + {"plane", {4805,8075,0}, 0}, + {"naval", {4805,8075,0}, 0}, + {"static", {4805,8075,0}, 0}, + {"uav", {4805,8075,0}, 0}, + {"ugv", {4805,8075,0}, 0} + }; + class garages { + class garage1 { + className = "Box_NATO_Equip_F"; + pos[] = {4810, 8075, 0}; + dir = 0; + type = "object"; + }; + }; +}; \ No newline at end of file diff --git a/operation/configs/lockers.h b/contract/configs/lockers.h similarity index 67% rename from operation/configs/lockers.h rename to contract/configs/lockers.h index 7456559..d4cd057 100644 --- a/operation/configs/lockers.h +++ b/contract/configs/lockers.h @@ -4,8 +4,7 @@ class CfgLockers { className = "Box_NATO_Equip_F"; pos[] = {4812, 8075, 0}; dir = 0; - lockerType = "object"; - lockerName = "Player Locker"; + type = "object"; }; }; }; \ No newline at end of file diff --git a/operation/configs/paygrades.h b/contract/configs/paygrades.h similarity index 100% rename from operation/configs/paygrades.h rename to contract/configs/paygrades.h diff --git a/contract/configs/stores.h b/contract/configs/stores.h new file mode 100644 index 0000000..1478aad --- /dev/null +++ b/contract/configs/stores.h @@ -0,0 +1,105 @@ +class CfgStores { + class stores { + class store1 { + className = "Land_CashDesk_F"; + pos[] = {4815, 8075, 0}; + dir = 0; + type = "object"; + name = "General Military Surplus Store"; + paymentMethods[] = { + {"Bank", "FORGE_Bank", "player"}, + {"Cash", "FORGE_Cash", "player"}, + {"Company", "FORGE_Company", "mission", {"76561198027566824"}} + }; + categories[] = { + "Backpacks", + "Headgear", + "Items", + "Magazines", + "Medical", + "Uniforms", + "Vests", + "Weapons", + "Aircraft", + "Armored", + "Helicopter", + "Marine", + "Static", + "UAV", + "UGV", + "Wheeled" + }; + products[] = { + {"Binocular", 335, "Items", "item", "item"}, + {"ItemCompass", 50, "Items", "item", "item"}, + {"ItemGPS", 250, "Items", "item", "item"}, + {"ItemMap", 20, "Items", "item", "item"}, + {"ItemWatch", 50, "Items", "item", "item"}, + {"Toolkit", 450, "Items", "item", "item"}, + {"Chemlight_blue", 2, "Items", "magazine", "item"}, + {"Chemlight_green", 2, "Items", "magazine", "item"}, + {"Chemlight_red", 2, "Items", "magazine", "item"}, + {"Chemlight_yellow", 2, "Items", "magazine", "item"}, + {"ACE_EarPlugs", 1, "Items", "item", "item"}, + {"ACE_MapTools", 225, "Items", "item", "item"}, + {"ACE_CableTie", 5, "Items", "item", "item"}, + {"ACE_wirecutter", 50, "Items", "item", "item"}, + {"ACE_SpareBarrel", 250, "Items", "item", "item"}, + + {"ACE_fieldDressing", 10, "Medical", "item", "item"}, + {"ACE_packingBandage", 10, "Medical", "item", "item"}, + {"ACE_elasticBandage", 10, "Medical", "item", "item"}, + {"ACE_quikclot", 10, "Medical", "item", "item"}, + {"ACE_tourniquet", 10, "Medical", "item", "item"}, + {"ACE_morphine", 10, "Medical", "item", "item"}, + {"ACE_epinephrine", 10, "Medical", "item", "item"}, + + {"16Rnd_9x21_Mag", 10, "Magazines", "magazine", "magazine"}, + {"30Rnd_65x39_caseless_mag", 10, "Magazines", "magazine", "magazine"}, + {"100Rnd_65x39_caseless_mag", 10, "Magazines", "magazine", "magazine"}, + + {"U_BG_Guerrilla_6_1", 300, "Uniforms", "uniform", "uniform"}, + {"V_Chestrig_rgr", 500, "Vests", "vest", "vest"}, + {"V_PlateCarrier2_rgr", 1000, "Vests", "vest", "vest"}, + + {"H_Cap_blk_ION", 100, "Headgear", "headgear", "headgear"}, + + {"B_AssaultPack_rgr", 250, "Backpacks", "backpack", "backpack", {"B_AssaultPack_blk"}}, + + {"hgun_P07_F", 1000, "Weapons", "weapon", "weapon"}, + {"arifle_MXC_F", 1500, "Weapons", "weapon", "weapon"}, + {"arifle_MX_SW_F", 1500, "Weapons", "weapon", "weapon"}, + {"arifle_MXM_F", 10000, "Weapons", "weapon", "weapon"}, + + {"B_APC_Wheeled_01_cannon_F", 10000, "Armored", "vehicle", "armor"}, + {"B_MBT_01_TUSK_F", 10000, "Armored", "vehicle", "armor"}, + + {"B_T_VTOL_01_infantry_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_T_VTOL_01_vehicle_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_T_VTOL_01_armed_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Transport_03_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Attack_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Transport_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_armed_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_stripped_F", 10000, "Helicopter", "vehicle", "heli"}, + + {"B_MRAP_01_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_MRAP_01_gmg_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_MRAP_01_hmg_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Quadbike_01_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_transport_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_covered_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_mover_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_box_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_Repair_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_ammo_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_fuel_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_medical_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_armed_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_AT_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_unarmed_F", 10000, "Wheeled", "vehicle", "car"} + }; + }; + }; +}; \ No newline at end of file diff --git a/operation/description.ext b/contract/description.ext similarity index 100% rename from operation/description.ext rename to contract/description.ext diff --git a/operation/do_not_edit/briefing.sqf b/contract/do_not_edit/briefing.sqf similarity index 100% rename from operation/do_not_edit/briefing.sqf rename to contract/do_not_edit/briefing.sqf diff --git a/operation/do_not_edit/description.ext b/contract/do_not_edit/description.ext similarity index 96% rename from operation/do_not_edit/description.ext rename to contract/do_not_edit/description.ext index 5a19391..b9cc64b 100644 --- a/operation/do_not_edit/description.ext +++ b/contract/do_not_edit/description.ext @@ -9,7 +9,7 @@ onLoadMissionTime = 1; // Game type and player count class Header { - gameType = COOP; + gameType = FORGE_CNT; minPlayers = 1; maxPlayers = 32; }; diff --git a/operation/do_not_edit/initPlayerLocal.sqf b/contract/do_not_edit/initPlayerLocal.sqf similarity index 88% rename from operation/do_not_edit/initPlayerLocal.sqf rename to contract/do_not_edit/initPlayerLocal.sqf index 4941c45..24ce7fa 100644 --- a/operation/do_not_edit/initPlayerLocal.sqf +++ b/contract/do_not_edit/initPlayerLocal.sqf @@ -1,4 +1,3 @@ -[] call forge_client_arsenal_fnc_initArsenal; [] spawn forge_client_init_fnc_initPlayer; [] spawn forge_client_medical_fnc_initMedical; [] spawn forge_client_phone_fnc_initPhone; diff --git a/operation/do_not_edit/script_component.hpp b/contract/do_not_edit/script_component.hpp similarity index 100% rename from operation/do_not_edit/script_component.hpp rename to contract/do_not_edit/script_component.hpp diff --git a/operation/edit_me/briefing/employer.html b/contract/edit_me/briefing/employer.html similarity index 100% rename from operation/edit_me/briefing/employer.html rename to contract/edit_me/briefing/employer.html diff --git a/operation/edit_me/briefing/mission.html b/contract/edit_me/briefing/mission.html similarity index 100% rename from operation/edit_me/briefing/mission.html rename to contract/edit_me/briefing/mission.html diff --git a/operation/edit_me/briefing/objectives.html b/contract/edit_me/briefing/objectives.html similarity index 100% rename from operation/edit_me/briefing/objectives.html rename to contract/edit_me/briefing/objectives.html diff --git a/operation/edit_me/briefing/situation.html b/contract/edit_me/briefing/situation.html similarity index 100% rename from operation/edit_me/briefing/situation.html rename to contract/edit_me/briefing/situation.html diff --git a/operation/edit_me/description.ext b/contract/edit_me/description.ext similarity index 100% rename from operation/edit_me/description.ext rename to contract/edit_me/description.ext diff --git a/operation/init.sqf b/contract/init.sqf similarity index 55% rename from operation/init.sqf rename to contract/init.sqf index cec1efd..38374b4 100644 --- a/operation/init.sqf +++ b/contract/init.sqf @@ -3,6 +3,16 @@ finishMissionInit; enableSaving [false, false]; +addMissionEventHandler ["ExtensionCallback", { + params ["_name", "_function", "_data"]; + diag_log _this; + if (_name isEqualTo "ArmaDragonflyClient") then { + parseSimpleArray _data call (missionNamespace getVariable [_function, { + hint "Function does not exist!" + }]); + }; +}]; + addMissionEventHandler ["ExtensionCallback", { params ["_name", "_function", "_data"]; if (_name isEqualTo "ArmaFORGEClient") then { diff --git a/operation/initPlayerLocal.sqf b/contract/initPlayerLocal.sqf similarity index 100% rename from operation/initPlayerLocal.sqf rename to contract/initPlayerLocal.sqf diff --git a/operation/initServer.sqf b/contract/initServer.sqf similarity index 100% rename from operation/initServer.sqf rename to contract/initServer.sqf diff --git a/operation/params/paramArsType.h b/contract/params/paramArsType.h similarity index 100% rename from operation/params/paramArsType.h rename to contract/params/paramArsType.h diff --git a/operation/params/paramDT.h b/contract/params/paramDT.h similarity index 100% rename from operation/params/paramDT.h rename to contract/params/paramDT.h diff --git a/operation/params/paramFuelCost.h b/contract/params/paramFuelCost.h similarity index 100% rename from operation/params/paramFuelCost.h rename to contract/params/paramFuelCost.h diff --git a/operation/params/paramInsDeduct.h b/contract/params/paramInsDeduct.h similarity index 100% rename from operation/params/paramInsDeduct.h rename to contract/params/paramInsDeduct.h diff --git a/operation/params/paramMedCost.h b/contract/params/paramMedCost.h similarity index 100% rename from operation/params/paramMedCost.h rename to contract/params/paramMedCost.h diff --git a/operation/params/paramMultiplyr.h b/contract/params/paramMultiplyr.h similarity index 100% rename from operation/params/paramMultiplyr.h rename to contract/params/paramMultiplyr.h diff --git a/operation/params/paramOpBudget.h b/contract/params/paramOpBudget.h similarity index 100% rename from operation/params/paramOpBudget.h rename to contract/params/paramOpBudget.h diff --git a/operation/params/paramOpRating.h b/contract/params/paramOpRating.h similarity index 100% rename from operation/params/paramOpRating.h rename to contract/params/paramOpRating.h diff --git a/operation/params/paramPDBMode.h b/contract/params/paramPDBMode.h similarity index 100% rename from operation/params/paramPDBMode.h rename to contract/params/paramPDBMode.h diff --git a/operation/params/paramRepairCost.h b/contract/params/paramRepairCost.h similarity index 100% rename from operation/params/paramRepairCost.h rename to contract/params/paramRepairCost.h diff --git a/operation/params/paramTeamCoord.h b/contract/params/paramTeamCoord.h similarity index 100% rename from operation/params/paramTeamCoord.h rename to contract/params/paramTeamCoord.h diff --git a/operation/params/paramVAEnable.h b/contract/params/paramVAEnable.h similarity index 100% rename from operation/params/paramVAEnable.h rename to contract/params/paramVAEnable.h diff --git a/operation/script_component.hpp b/contract/script_component.hpp similarity index 100% rename from operation/script_component.hpp rename to contract/script_component.hpp diff --git a/directAction/configs/banks.h b/directAction/configs/banks.h index 8f13d70..6f7c7a7 100644 --- a/directAction/configs/banks.h +++ b/directAction/configs/banks.h @@ -4,8 +4,7 @@ class CfgBanks { className = "Land_Atm_01_F"; pos[] = {4818, 8075, 0}; dir = 180; - bankType = "object"; - bankName = "FDIC"; + type = "object"; }; }; }; \ No newline at end of file diff --git a/directAction/configs/cpofs.h b/directAction/configs/cpofs.h index 0abb213..b9cdb21 100644 --- a/directAction/configs/cpofs.h +++ b/directAction/configs/cpofs.h @@ -4,7 +4,6 @@ class CfgCpofs { className = "Land_MultiScreenComputer_01_olive_F"; pos[] = {4821, 8075, 0}; dir = 180; - cpofName = "Commander's CPOF"; }; }; }; \ No newline at end of file diff --git a/directAction/configs/garages.h b/directAction/configs/garages.h index ef45bb6..2ea406e 100644 --- a/directAction/configs/garages.h +++ b/directAction/configs/garages.h @@ -1,21 +1,20 @@ class CfgGarages { locations[] = { - {"garageAircraft", {4805,8075,0}, 0}, - {"garageArmored", {4805,8075,0}, 0}, - {"garageChopper", {4805,8075,0}, 0}, - {"garageMarine", {4805,8075,0}, 0}, - {"garageStatic", {4805,8075,0}, 0}, - {"garageUAV", {4805,8075,0}, 0}, - {"garageUGV", {4805,8075,0}, 0}, - {"garageWheeled", {4805,8075,0}, 0} + {"car", {4805,8075,0}, 0}, + {"armor", {4805,8075,0}, 0}, + {"heli", {4805,8075,0}, 0}, + {"plane", {4805,8075,0}, 0}, + {"naval", {4805,8075,0}, 0}, + {"static", {4805,8075,0}, 0}, + {"uav", {4805,8075,0}, 0}, + {"ugv", {4805,8075,0}, 0} }; class garages { class garage1 { className = "Box_NATO_Equip_F"; pos[] = {4810, 8075, 0}; dir = 0; - garageType = "object"; - garageName = "Player Garage"; + type = "object"; }; }; }; \ No newline at end of file diff --git a/directAction/configs/lockers.h b/directAction/configs/lockers.h index 7456559..d4cd057 100644 --- a/directAction/configs/lockers.h +++ b/directAction/configs/lockers.h @@ -4,8 +4,7 @@ class CfgLockers { className = "Box_NATO_Equip_F"; pos[] = {4812, 8075, 0}; dir = 0; - lockerType = "object"; - lockerName = "Player Locker"; + type = "object"; }; }; }; \ No newline at end of file diff --git a/directAction/configs/stores.h b/directAction/configs/stores.h index 7432348..1478aad 100644 --- a/directAction/configs/stores.h +++ b/directAction/configs/stores.h @@ -4,117 +4,101 @@ class CfgStores { className = "Land_CashDesk_F"; pos[] = {4815, 8075, 0}; dir = 0; - storeType = "object"; - storeCategories[] = { - {"Backpacks", "storeBackpacks"}, - {"Goggles", "storeGoggles"}, - {"Headgear", "storeHeadgear"}, - {"Items", "storeItems"}, - {"Magazines", "storeMagazines"}, - {"Uniforms", "storeUniforms"}, - {"Vests", "storeVests"}, - {"Weapons", "storeWeapons"}, - {"Aircraft", "storeAircraft"}, - {"Armored", "storeArmored"}, - {"Chopper", "storeChopper"}, - {"Marine", "storeMarine"}, - {"Static", "storeStatic"}, - {"UAV", "storeUAV"}, - {"UGV", "storeUGV"}, - {"Wheeled", "storeWheeled"} + type = "object"; + name = "General Military Surplus Store"; + paymentMethods[] = { + {"Bank", "FORGE_Bank", "player"}, + {"Cash", "FORGE_Cash", "player"}, + {"Company", "FORGE_Company", "mission", {"76561198027566824"}} + }; + categories[] = { + "Backpacks", + "Headgear", + "Items", + "Magazines", + "Medical", + "Uniforms", + "Vests", + "Weapons", + "Aircraft", + "Armored", + "Helicopter", + "Marine", + "Static", + "UAV", + "UGV", + "Wheeled" }; - storeRestrictedCategories[] = {}; - storeModset[] = { - "STOCK", - "ACE3", - "RHS", - "SMA", - "TFAR" - }; - storePaymentMethods[] = { - "Personal", - "Company Funds" - }; - storeName = "General Military Surplus Store"; - storeBackpacks[] = { - {"B_AssaultPack_rgr", 250, "STOCK"}, - {"B_AssaultPack_blk", 250, "STOCK"} - }; - storeGoggles[] = {}; - storeHeadgear[] = { - {"H_Cap_blk_ION", 100, "STOCK"} - }; - storeItems[] = { - {"Binocular", 335, "STOCK"}, - {"ItemCompass", 50, "STOCK"}, - {"ItemMap", 20, "STOCK"}, - {"ItemWatch", 50, "STOCK"}, - {"ToolKit", 450, "STOCK"}, - {"Chemlight_blue", 2, "STOCK"}, - {"Chemlight_green", 2, "STOCK"}, - {"Chemlight_red", 2, "STOCK"}, - {"Chemlight_yellow", 2, "STOCK"}, - {"ACE_MapTools", 525, "ACE3"}, - {"ACE_CableTie", 2, "ACE3"}, - {"ACE_EarPlugs", 1, "ACE3"}, - {"ACE_wirecutter", 65, "ACE3"}, - {"ACE_SpareBarrel", 300, "ACE3"} - }; - storeMagazines[] = { - {"16Rnd_9x21_Mag", 10, "STOCK"}, - {"30Rnd_65x39_caseless_mag", 10, "STOCK"}, - {"100Rnd_65x39_caseless_mag", 10, "STOCK"} - }; - storeUniforms[] = { - {"U_BG_Guerrilla_6_1", 500, "STOCK"} - }; - storeVests[] = { - {"V_Chestrig_rgr", 500, "STOCK"}, - {"V_PlateCarrier2_rgr", 2000, "STOCK"} - }; - storeWeapons[] = { - {"hgun_P07_F", 1000, "STOCK"}, - {"arifle_MXC_F", 1500, "STOCK"}, - {"arifle_MX_SW_F", 1500, "STOCK"}, - {"arifle_MXM_F", 10000, "STOCK"} - }; - storeAircraft[] = {}; - storeArmored[] = { - {"B_APC_Wheeled_01_cannon_F", 10000, "STOCK"}, - {"B_MBT_01_TUSK_F", 10000, "STOCK"} - }; - storeChopper[] = { - {"B_T_VTOL_01_infantry_F", 10000, "STOCK"}, - {"B_T_VTOL_01_vehicle_F", 10000, "STOCK"}, - {"B_T_VTOL_01_armed_F", 10000, "STOCK"}, - {"B_Heli_Transport_03_F", 10000, "STOCK"}, - {"B_Heli_Attack_01_F", 10000, "STOCK"}, - {"B_Heli_Transport_01_F", 10000, "STOCK"}, - {"B_Heli_Light_01_F", 10000, "STOCK"}, - {"B_Heli_Light_01_armed_F", 10000, "STOCK"}, - {"B_Heli_Light_01_stripped_F", 10000, "STOCK"} - }; - storeMarine[] = {}; - storeStatic[] = {}; - storeUAV[] = {}; - storeUGV[] = {}; - storeWheeled[] = { - {"B_MRAP_01_F", 10000, "STOCK"}, - {"B_MRAP_01_gmg_F", 10000, "STOCK"}, - {"B_MRAP_01_hmg_F", 10000, "STOCK"}, - {"B_Quadbike_01_F", 10000, "STOCK"}, - {"B_Truck_01_transport_F", 10000, "STOCK"}, - {"B_Truck_01_covered_F", 10000, "STOCK"}, - {"B_Truck_01_mover_F", 10000, "STOCK"}, - {"B_Truck_01_box_F", 10000, "STOCK"}, - {"B_Truck_01_Repair_F", 10000, "STOCK"}, - {"B_Truck_01_ammo_F", 10000, "STOCK"}, - {"B_Truck_01_fuel_F", 10000, "STOCK"}, - {"B_Truck_01_medical_F", 10000, "STOCK"}, - {"B_LSV_01_armed_F", 10000, "STOCK"}, - {"B_LSV_01_AT_F", 10000, "STOCK"}, - {"B_LSV_01_unarmed_F", 10000, "STOCK"}, - {"B_Truck_01_fuel_F", 10000, "STOCK"} + products[] = { + {"Binocular", 335, "Items", "item", "item"}, + {"ItemCompass", 50, "Items", "item", "item"}, + {"ItemGPS", 250, "Items", "item", "item"}, + {"ItemMap", 20, "Items", "item", "item"}, + {"ItemWatch", 50, "Items", "item", "item"}, + {"Toolkit", 450, "Items", "item", "item"}, + {"Chemlight_blue", 2, "Items", "magazine", "item"}, + {"Chemlight_green", 2, "Items", "magazine", "item"}, + {"Chemlight_red", 2, "Items", "magazine", "item"}, + {"Chemlight_yellow", 2, "Items", "magazine", "item"}, + {"ACE_EarPlugs", 1, "Items", "item", "item"}, + {"ACE_MapTools", 225, "Items", "item", "item"}, + {"ACE_CableTie", 5, "Items", "item", "item"}, + {"ACE_wirecutter", 50, "Items", "item", "item"}, + {"ACE_SpareBarrel", 250, "Items", "item", "item"}, + + {"ACE_fieldDressing", 10, "Medical", "item", "item"}, + {"ACE_packingBandage", 10, "Medical", "item", "item"}, + {"ACE_elasticBandage", 10, "Medical", "item", "item"}, + {"ACE_quikclot", 10, "Medical", "item", "item"}, + {"ACE_tourniquet", 10, "Medical", "item", "item"}, + {"ACE_morphine", 10, "Medical", "item", "item"}, + {"ACE_epinephrine", 10, "Medical", "item", "item"}, + + {"16Rnd_9x21_Mag", 10, "Magazines", "magazine", "magazine"}, + {"30Rnd_65x39_caseless_mag", 10, "Magazines", "magazine", "magazine"}, + {"100Rnd_65x39_caseless_mag", 10, "Magazines", "magazine", "magazine"}, + + {"U_BG_Guerrilla_6_1", 300, "Uniforms", "uniform", "uniform"}, + {"V_Chestrig_rgr", 500, "Vests", "vest", "vest"}, + {"V_PlateCarrier2_rgr", 1000, "Vests", "vest", "vest"}, + + {"H_Cap_blk_ION", 100, "Headgear", "headgear", "headgear"}, + + {"B_AssaultPack_rgr", 250, "Backpacks", "backpack", "backpack", {"B_AssaultPack_blk"}}, + + {"hgun_P07_F", 1000, "Weapons", "weapon", "weapon"}, + {"arifle_MXC_F", 1500, "Weapons", "weapon", "weapon"}, + {"arifle_MX_SW_F", 1500, "Weapons", "weapon", "weapon"}, + {"arifle_MXM_F", 10000, "Weapons", "weapon", "weapon"}, + + {"B_APC_Wheeled_01_cannon_F", 10000, "Armored", "vehicle", "armor"}, + {"B_MBT_01_TUSK_F", 10000, "Armored", "vehicle", "armor"}, + + {"B_T_VTOL_01_infantry_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_T_VTOL_01_vehicle_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_T_VTOL_01_armed_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Transport_03_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Attack_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Transport_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_armed_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_stripped_F", 10000, "Helicopter", "vehicle", "heli"}, + + {"B_MRAP_01_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_MRAP_01_gmg_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_MRAP_01_hmg_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Quadbike_01_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_transport_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_covered_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_mover_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_box_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_Repair_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_ammo_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_fuel_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_medical_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_armed_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_AT_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_unarmed_F", 10000, "Wheeled", "vehicle", "car"} }; }; }; diff --git a/directAction/do_not_edit/initPlayerLocal.sqf b/directAction/do_not_edit/initPlayerLocal.sqf index 4941c45..24ce7fa 100644 --- a/directAction/do_not_edit/initPlayerLocal.sqf +++ b/directAction/do_not_edit/initPlayerLocal.sqf @@ -1,4 +1,3 @@ -[] call forge_client_arsenal_fnc_initArsenal; [] spawn forge_client_init_fnc_initPlayer; [] spawn forge_client_medical_fnc_initMedical; [] spawn forge_client_phone_fnc_initPhone; diff --git a/directAction/edit_me/description.ext b/directAction/edit_me/description.ext index 2e69dbb..2e1d721 100644 --- a/directAction/edit_me/description.ext +++ b/directAction/edit_me/description.ext @@ -3,7 +3,7 @@ author = "YOUR_NAME, FORGE"; onLoadName = "MISSION_NAME"; onLoadMission = "MISSION_SUMMARY"; -forge_type = 0; // 0: Contract, 1: Sub-Contract, 2: Training, 3: Special +forge_type = 1; // 0: Contract, 1: Sub-Contract, 2: Training, 3: Special // Randomization disableRandomization[] = {}; // Disables randomization of units and vehicles based off of variable name or classname \ No newline at end of file diff --git a/operation/configs/garages.h b/operation/configs/garages.h deleted file mode 100644 index ef45bb6..0000000 --- a/operation/configs/garages.h +++ /dev/null @@ -1,21 +0,0 @@ -class CfgGarages { - locations[] = { - {"garageAircraft", {4805,8075,0}, 0}, - {"garageArmored", {4805,8075,0}, 0}, - {"garageChopper", {4805,8075,0}, 0}, - {"garageMarine", {4805,8075,0}, 0}, - {"garageStatic", {4805,8075,0}, 0}, - {"garageUAV", {4805,8075,0}, 0}, - {"garageUGV", {4805,8075,0}, 0}, - {"garageWheeled", {4805,8075,0}, 0} - }; - class garages { - class garage1 { - className = "Box_NATO_Equip_F"; - pos[] = {4810, 8075, 0}; - dir = 0; - garageType = "object"; - garageName = "Player Garage"; - }; - }; -}; \ No newline at end of file diff --git a/operation/configs/stores.h b/operation/configs/stores.h deleted file mode 100644 index 7a9e682..0000000 --- a/operation/configs/stores.h +++ /dev/null @@ -1,117 +0,0 @@ -class CfgStores { - class stores { - class store1 { - className = "Land_CashDesk_F"; - pos[] = {4815, 8075, 0}; - dir = 0; - storeType = "object"; - storeCategories[] = { - {"Backpacks", "storeBackpacks"}, - {"Goggles", "storeGoggles"}, - {"Headgear", "storeHeadgear"}, - {"Items", "storeItems"}, - {"Magazines", "storeMagazines"}, - {"Uniforms", "storeUniforms"}, - {"Vests", "storeVests"}, - {"Weapons", "storeWeapons"}, - {"Aircraft", "storeAircraft"}, - {"Armored", "storeArmored"}, - {"Chopper", "storeChopper"}, - {"Marine", "storeMarine"}, - {"Static", "storeStatic"}, - {"UAV", "storeUAV"}, - {"UGV", "storeUGV"}, - {"Wheeled", "storeWheeled"} - }; - storeRestrictedCategories[] = {}; - storeModset[] = { - "STOCK", - "ACE3", - "RHS", - "SMA", - "TFAR" - }; - storeName = "General Military Surplus Store"; - storeBackpacks[] = { - {"B_AssaultPack_rgr", 250, "STOCK"}, - {"B_AssaultPack_blk", 250, "STOCK"} - }; - storeGoggles[] = {}; - storeHeadgear[] = { - {"H_Cap_blk_ION", 100, "STOCK"} - }; - storeItems[] = { - {"Binocular", 335, "STOCK"}, - {"ItemCompass", 50, "STOCK"}, - {"ItemMap", 20, "STOCK"}, - {"ItemWatch", 50, "STOCK"}, - {"ToolKit", 450, "STOCK"}, - {"Chemlight_blue", 2, "STOCK"}, - {"Chemlight_green", 2, "STOCK"}, - {"Chemlight_red", 2, "STOCK"}, - {"Chemlight_yellow", 2, "STOCK"}, - {"ACE_MapTools", 525, "ACE3"}, - {"ACE_CableTie", 2, "ACE3"}, - {"ACE_EarPlugs", 1, "ACE3"}, - {"ACE_wirecutter", 65, "ACE3"}, - {"ACE_SpareBarrel", 300, "ACE3"} - }; - storeMagazines[] = { - {"16Rnd_9x21_Mag", 10, "STOCK"}, - {"30Rnd_65x39_caseless_mag", 10, "STOCK"}, - {"100Rnd_65x39_caseless_mag", 10, "STOCK"} - }; - storeUniforms[] = { - {"U_BG_Guerrilla_6_1", 500, "STOCK"} - }; - storeVests[] = { - {"V_Chestrig_rgr", 500, "STOCK"}, - {"V_PlateCarrier2_rgr", 2000, "STOCK"} - }; - storeWeapons[] = { - {"hgun_P07_F", 1000, "STOCK"}, - {"arifle_MXC_F", 1500, "STOCK"}, - {"arifle_MX_SW_F", 1500, "STOCK"}, - {"arifle_MXM_F", 10000, "STOCK"} - }; - storeAircraft[] = {}; - storeArmored[] = { - {"B_APC_Wheeled_01_cannon_F", 10000, "STOCK"}, - {"B_MBT_01_TUSK_F", 10000, "STOCK"} - }; - storeChopper[] = { - {"B_T_VTOL_01_infantry_F", 10000, "STOCK"}, - {"B_T_VTOL_01_vehicle_F", 10000, "STOCK"}, - {"B_T_VTOL_01_armed_F", 10000, "STOCK"}, - {"B_Heli_Transport_03_F", 10000, "STOCK"}, - {"B_Heli_Attack_01_F", 10000, "STOCK"}, - {"B_Heli_Transport_01_F", 10000, "STOCK"}, - {"B_Heli_Light_01_F", 10000, "STOCK"}, - {"B_Heli_Light_01_armed_F", 10000, "STOCK"}, - {"B_Heli_Light_01_stripped_F", 10000, "STOCK"} - }; - storeMarine[] = {}; - storeStatic[] = {}; - storeUAV[] = {}; - storeUGV[] = {}; - storeWheeled[] = { - {"B_MRAP_01_F", 10000, "STOCK"}, - {"B_MRAP_01_gmg_F", 10000, "STOCK"}, - {"B_MRAP_01_hmg_F", 10000, "STOCK"}, - {"B_Quadbike_01_F", 10000, "STOCK"}, - {"B_Truck_01_transport_F", 10000, "STOCK"}, - {"B_Truck_01_covered_F", 10000, "STOCK"}, - {"B_Truck_01_mover_F", 10000, "STOCK"}, - {"B_Truck_01_box_F", 10000, "STOCK"}, - {"B_Truck_01_Repair_F", 10000, "STOCK"}, - {"B_Truck_01_ammo_F", 10000, "STOCK"}, - {"B_Truck_01_fuel_F", 10000, "STOCK"}, - {"B_Truck_01_medical_F", 10000, "STOCK"}, - {"B_LSV_01_armed_F", 10000, "STOCK"}, - {"B_LSV_01_AT_F", 10000, "STOCK"}, - {"B_LSV_01_unarmed_F", 10000, "STOCK"}, - {"B_Truck_01_fuel_F", 10000, "STOCK"} - }; - }; - }; -}; \ No newline at end of file diff --git a/special/briefing.sqf b/special/briefing.sqf new file mode 100644 index 0000000..6bdffd1 --- /dev/null +++ b/special/briefing.sqf @@ -0,0 +1,71 @@ +#include "..\do_not_edit\script_component.hpp" +/* + * Author: Kresky, Jonpas + * Adds briefing based on side. + * Call from initPlayerLocal.sqf. + * Copy to other side briefings if you want to add briefings to those sides. + * + * Arguments: + * 0: Player + * + * Return Value: + * None + * + * Example: + * [player] call FUNC(briefing); + * + * New Line: + *
+ * + * Text Colour (Hex colour Code) + * TEXT HERE + * + * Clickable Marker Link: + * MARKER_TEXT + * + * Image: + * + */ + +params ["_player"]; + +switch (side _player) do { + // BLUFOR briefing + case west: { + + }; + + // OPFOR briefing + case east: { + + }; + + // RESISTANCE/INDEPENDENT briefing -- THIS IS THE BRIEFING YOU WANT TO EDIT FOR YOUR MISSION! + case resistance: { + _player createDiaryRecord ["Diary", ["Employer", " +
Republic of Karellia + "]]; + + _player createDiaryRecord ["Diary", ["Situation", " +
ENEMY FORCES: +
PMC Wagner +
+
FRIENDLY FORCES: +
Synixe Contractors +
+
CIVILIAN CONSIDERATIONS: +
Mostly evacuated, very few civilians remain. + "]]; + + _player createDiaryRecord ["Diary", ["Mission", " +
We have been hired to destroy communications towers in a region that has fallen to PMC Wagner. +
+
We will have access to frequency detection equipment in order to locate the towers. + "]]; + }; + + // CIVILIAN briefing + case civilian: { + + }; +}; \ No newline at end of file diff --git a/special/cba_settings.sqf b/special/cba_settings.sqf new file mode 100644 index 0000000..7bcddce --- /dev/null +++ b/special/cba_settings.sqf @@ -0,0 +1 @@ +// FORGE - Basic Settings \ No newline at end of file diff --git a/special/config.h b/special/config.h new file mode 100644 index 0000000..4127844 --- /dev/null +++ b/special/config.h @@ -0,0 +1,23 @@ +class Params { + #include "params\paramArsType.h" + #include "params\paramDT.h" + #include "params\paramFuelCost.h" + #include "params\paramInsDeduct.h" + #include "params\paramMedCost.h" + #include "params\paramMultiplyr.h" + #include "params\paramOpBudget.h" + #include "params\paramOpRating.h" + #include "params\paramPDBMode.h" + #include "params\paramRepairCost.h" + #include "params\paramTeamCoord.h" + #include "params\paramVAEnable.h" +}; + +#include "configs\banks.h" +#include "configs\cpofs.h" +#include "configs\garages.h" +#include "configs\lockers.h" +#include "configs\paygrades.h" +#include "configs\stores.h" + +#include "\@forge\userconfig\forge_phone.hpp" \ No newline at end of file diff --git a/special/configs/banks.h b/special/configs/banks.h new file mode 100644 index 0000000..6f7c7a7 --- /dev/null +++ b/special/configs/banks.h @@ -0,0 +1,10 @@ +class CfgBanks { + class banks { + class bank1 { + className = "Land_Atm_01_F"; + pos[] = {4818, 8075, 0}; + dir = 180; + type = "object"; + }; + }; +}; \ No newline at end of file diff --git a/special/configs/cpofs.h b/special/configs/cpofs.h new file mode 100644 index 0000000..b9cdb21 --- /dev/null +++ b/special/configs/cpofs.h @@ -0,0 +1,9 @@ +class CfgCpofs { + class cpofs { + class cpof1 { + className = "Land_MultiScreenComputer_01_olive_F"; + pos[] = {4821, 8075, 0}; + dir = 180; + }; + }; +}; \ No newline at end of file diff --git a/special/configs/garages.h b/special/configs/garages.h new file mode 100644 index 0000000..2ea406e --- /dev/null +++ b/special/configs/garages.h @@ -0,0 +1,20 @@ +class CfgGarages { + locations[] = { + {"car", {4805,8075,0}, 0}, + {"armor", {4805,8075,0}, 0}, + {"heli", {4805,8075,0}, 0}, + {"plane", {4805,8075,0}, 0}, + {"naval", {4805,8075,0}, 0}, + {"static", {4805,8075,0}, 0}, + {"uav", {4805,8075,0}, 0}, + {"ugv", {4805,8075,0}, 0} + }; + class garages { + class garage1 { + className = "Box_NATO_Equip_F"; + pos[] = {4810, 8075, 0}; + dir = 0; + type = "object"; + }; + }; +}; \ No newline at end of file diff --git a/special/configs/lockers.h b/special/configs/lockers.h new file mode 100644 index 0000000..d4cd057 --- /dev/null +++ b/special/configs/lockers.h @@ -0,0 +1,10 @@ +class CfgLockers { + class lockers { + class locker1 { + className = "Box_NATO_Equip_F"; + pos[] = {4812, 8075, 0}; + dir = 0; + type = "object"; + }; + }; +}; \ No newline at end of file diff --git a/special/configs/paygrades.h b/special/configs/paygrades.h new file mode 100644 index 0000000..9694e66 --- /dev/null +++ b/special/configs/paygrades.h @@ -0,0 +1,16 @@ +class CfgPaygrades { + payGrades[] = { + {"E1", 1000, "Enlisted"}, + {"E2", 1250, "Enlisted"}, + {"E3", 1500, "Enlisted"}, + {"E4", 1750, "Enlisted"}, + {"WO1", 2000, "Warrant"}, + {"WO2", 2250, "Warrant"}, + {"WO3", 2500, "Warrant"}, + {"WO4", 2750, "Warrant"}, + {"2LT", 3000, "Officer"}, + {"1LT", 3250, "Officer"}, + {"CPT", 3500, "Officer"}, + {"MAJ", 3750, "Officer"} + }; +}; \ No newline at end of file diff --git a/special/configs/stores.h b/special/configs/stores.h new file mode 100644 index 0000000..1478aad --- /dev/null +++ b/special/configs/stores.h @@ -0,0 +1,105 @@ +class CfgStores { + class stores { + class store1 { + className = "Land_CashDesk_F"; + pos[] = {4815, 8075, 0}; + dir = 0; + type = "object"; + name = "General Military Surplus Store"; + paymentMethods[] = { + {"Bank", "FORGE_Bank", "player"}, + {"Cash", "FORGE_Cash", "player"}, + {"Company", "FORGE_Company", "mission", {"76561198027566824"}} + }; + categories[] = { + "Backpacks", + "Headgear", + "Items", + "Magazines", + "Medical", + "Uniforms", + "Vests", + "Weapons", + "Aircraft", + "Armored", + "Helicopter", + "Marine", + "Static", + "UAV", + "UGV", + "Wheeled" + }; + products[] = { + {"Binocular", 335, "Items", "item", "item"}, + {"ItemCompass", 50, "Items", "item", "item"}, + {"ItemGPS", 250, "Items", "item", "item"}, + {"ItemMap", 20, "Items", "item", "item"}, + {"ItemWatch", 50, "Items", "item", "item"}, + {"Toolkit", 450, "Items", "item", "item"}, + {"Chemlight_blue", 2, "Items", "magazine", "item"}, + {"Chemlight_green", 2, "Items", "magazine", "item"}, + {"Chemlight_red", 2, "Items", "magazine", "item"}, + {"Chemlight_yellow", 2, "Items", "magazine", "item"}, + {"ACE_EarPlugs", 1, "Items", "item", "item"}, + {"ACE_MapTools", 225, "Items", "item", "item"}, + {"ACE_CableTie", 5, "Items", "item", "item"}, + {"ACE_wirecutter", 50, "Items", "item", "item"}, + {"ACE_SpareBarrel", 250, "Items", "item", "item"}, + + {"ACE_fieldDressing", 10, "Medical", "item", "item"}, + {"ACE_packingBandage", 10, "Medical", "item", "item"}, + {"ACE_elasticBandage", 10, "Medical", "item", "item"}, + {"ACE_quikclot", 10, "Medical", "item", "item"}, + {"ACE_tourniquet", 10, "Medical", "item", "item"}, + {"ACE_morphine", 10, "Medical", "item", "item"}, + {"ACE_epinephrine", 10, "Medical", "item", "item"}, + + {"16Rnd_9x21_Mag", 10, "Magazines", "magazine", "magazine"}, + {"30Rnd_65x39_caseless_mag", 10, "Magazines", "magazine", "magazine"}, + {"100Rnd_65x39_caseless_mag", 10, "Magazines", "magazine", "magazine"}, + + {"U_BG_Guerrilla_6_1", 300, "Uniforms", "uniform", "uniform"}, + {"V_Chestrig_rgr", 500, "Vests", "vest", "vest"}, + {"V_PlateCarrier2_rgr", 1000, "Vests", "vest", "vest"}, + + {"H_Cap_blk_ION", 100, "Headgear", "headgear", "headgear"}, + + {"B_AssaultPack_rgr", 250, "Backpacks", "backpack", "backpack", {"B_AssaultPack_blk"}}, + + {"hgun_P07_F", 1000, "Weapons", "weapon", "weapon"}, + {"arifle_MXC_F", 1500, "Weapons", "weapon", "weapon"}, + {"arifle_MX_SW_F", 1500, "Weapons", "weapon", "weapon"}, + {"arifle_MXM_F", 10000, "Weapons", "weapon", "weapon"}, + + {"B_APC_Wheeled_01_cannon_F", 10000, "Armored", "vehicle", "armor"}, + {"B_MBT_01_TUSK_F", 10000, "Armored", "vehicle", "armor"}, + + {"B_T_VTOL_01_infantry_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_T_VTOL_01_vehicle_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_T_VTOL_01_armed_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Transport_03_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Attack_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Transport_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_armed_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_stripped_F", 10000, "Helicopter", "vehicle", "heli"}, + + {"B_MRAP_01_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_MRAP_01_gmg_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_MRAP_01_hmg_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Quadbike_01_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_transport_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_covered_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_mover_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_box_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_Repair_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_ammo_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_fuel_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_medical_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_armed_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_AT_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_unarmed_F", 10000, "Wheeled", "vehicle", "car"} + }; + }; + }; +}; \ No newline at end of file diff --git a/special/description.ext b/special/description.ext new file mode 100644 index 0000000..41ac19d --- /dev/null +++ b/special/description.ext @@ -0,0 +1,3 @@ +#include "config.h" +#include "do_not_edit\description.ext" +#include "edit_me\description.ext" \ No newline at end of file diff --git a/special/do_not_edit/briefing.sqf b/special/do_not_edit/briefing.sqf new file mode 100644 index 0000000..e698d12 --- /dev/null +++ b/special/do_not_edit/briefing.sqf @@ -0,0 +1,21 @@ +#include "..\do_not_edit\script_component.hpp" + +private _fnc_createRecord = { + params ["_title"]; + private _file = format ["edit_me\briefing\%1.html", toLower _title]; + if (fileExists _file) then { + private _contents = loadFile _file; + player createDiaryRecord ["Diary", [_title, _contents regexReplace ["\n", "
"]]]; + } else { + diag_log format ["No %1.html found in briefing folder", toLower _title]; + }; +}; + +{ + [_x] call _fnc_createRecord; +} forEach [ + "Objectives", + "Mission", + "Situation", + "Employer" +]; // Use reverse order to get correct order in diary \ No newline at end of file diff --git a/special/do_not_edit/description.ext b/special/do_not_edit/description.ext new file mode 100644 index 0000000..5e7b076 --- /dev/null +++ b/special/do_not_edit/description.ext @@ -0,0 +1,30 @@ +// Do not edit this file + +// Version of mission template +forge_template = 3; + +// Mission Settings +onLoadIntroTime = 1; +onLoadMissionTime = 1; + +// Game type and player count +class Header { + gameType = FORGE_SPC; + minPlayers = 1; + maxPlayers = 32; +}; + +// Respawn Settings +respawn = "BASE"; +respawnButton = 1; +respawnDelay = 5; +respawnDialog = 0; + +// AI & Debug +disableAI = 1; +enableTargetDebug = 1; + +// Other Settings +cba_settings_hasSettingsFile = 1; +corpseManagerMode = 0; // No bodies will be cleaned up +allowProfileGlasses = 0; // Disables glasses set in profile being added to player gear \ No newline at end of file diff --git a/special/do_not_edit/initPlayerLocal.sqf b/special/do_not_edit/initPlayerLocal.sqf new file mode 100644 index 0000000..24ce7fa --- /dev/null +++ b/special/do_not_edit/initPlayerLocal.sqf @@ -0,0 +1,10 @@ +[] spawn forge_client_init_fnc_initPlayer; +[] spawn forge_client_medical_fnc_initMedical; +[] spawn forge_client_phone_fnc_initPhone; +[] spawn forge_client_service_fnc_initService; +[] spawn forge_client_store_fnc_initStore; + +player addItem "FORGE_Phone"; + +// TODO replace with function +[player] call compile preprocessFileLineNumbers "do_not_edit\briefing.sqf"; \ No newline at end of file diff --git a/special/do_not_edit/script_component.hpp b/special/do_not_edit/script_component.hpp new file mode 100644 index 0000000..367080e --- /dev/null +++ b/special/do_not_edit/script_component.hpp @@ -0,0 +1,11 @@ +#define PREFIX forge +#define COMPONENT mission + +// Mission +#define MISSION_TYPES ["Contract", "Sub-Contract", "Training", "Special"] + +// Debug +#define DEBUG_SYNCHRONOUS +//#define DEBUG_MODE_FULL + +#include "\x\cba\addons\main\script_macros_mission.hpp" \ No newline at end of file diff --git a/special/edit_me/briefing/employer.html b/special/edit_me/briefing/employer.html new file mode 100644 index 0000000..766571f --- /dev/null +++ b/special/edit_me/briefing/employer.html @@ -0,0 +1 @@ +INSERT NAME OF EMPLOYER HERE \ No newline at end of file diff --git a/special/edit_me/briefing/mission.html b/special/edit_me/briefing/mission.html new file mode 100644 index 0000000..df4f319 --- /dev/null +++ b/special/edit_me/briefing/mission.html @@ -0,0 +1,5 @@ +INSERT YOUR MISSION DESCRIPTION HERE, + +YOU CAN ADD AS MUCH AS YOU FEEL IS RELEVANT. + +AS A RULE OF THUMB, CONSIDER: WHO, WHAT (TASKS), WHERE, WHEN, AND WHY \ No newline at end of file diff --git a/special/edit_me/briefing/objectives.html b/special/edit_me/briefing/objectives.html new file mode 100644 index 0000000..2291acb --- /dev/null +++ b/special/edit_me/briefing/objectives.html @@ -0,0 +1,7 @@ +PRIMARY OBJECTIVES: + + INSERT OBJECTIVES THAT MUST BE COMPLETED TO ACHIEVE THE MISSION GOAL + + SECONDARY OBJECTIVES: + + INSERT OBJECTIVES THAT ARE NOT REQUIRED TO COMPLETE THE MISSION, BUT MAY BE USEFUL \ No newline at end of file diff --git a/special/edit_me/briefing/situation.html b/special/edit_me/briefing/situation.html new file mode 100644 index 0000000..d61a4aa --- /dev/null +++ b/special/edit_me/briefing/situation.html @@ -0,0 +1,15 @@ +ENEMY FORCES: +INSERT ENEMIES HERE +INSERT ENEMY AMLCOA (Most Likely Course of Action, AKA, what they're doing, how they act, how they'll act towards us, what we know, etc) + +FRIENDLY FORCES: +Synixe Contractors, INSERT FRIENDLIES HERE + +INDEPENDENT FORCES: +INSERT INDEPENDENT FORCES IF THERE ARE ANY, OTHERWISE REMOVE THIS LINE AND ONE ABOVE + +CIVILIAN CONSIDERATIONS: +INSERT THINGS TO CONSIDER ABOUT CIVILIANS, PRESENCE/ABSENCE AND/OR BEHAVIOUR/SUPPORT TO FRIENDLIES OR ENEMIES + +TERRAIN CONSIDERATIONS: +INSERT ANYTHING YOU FIND RELEVANT ABOUT HOW THE TERRAIN MAY BE ADVANTAGEOUS OR DISADVANTAGEOUS \ No newline at end of file diff --git a/special/edit_me/description.ext b/special/edit_me/description.ext new file mode 100644 index 0000000..39bdaeb --- /dev/null +++ b/special/edit_me/description.ext @@ -0,0 +1,9 @@ +// Mission settings - title, description, author etc. +author = "YOUR_NAME, FORGE"; +onLoadName = "MISSION_NAME"; +onLoadMission = "MISSION_SUMMARY"; + +forge_type = 3; // 0: Contract, 1: Sub-Contract, 2: Training, 3: Special + +// Randomization +disableRandomization[] = {}; // Disables randomization of units and vehicles based off of variable name or classname \ No newline at end of file diff --git a/special/init.sqf b/special/init.sqf new file mode 100644 index 0000000..38374b4 --- /dev/null +++ b/special/init.sqf @@ -0,0 +1,23 @@ +#include "do_not_edit\script_component.hpp" + +finishMissionInit; +enableSaving [false, false]; + +addMissionEventHandler ["ExtensionCallback", { + params ["_name", "_function", "_data"]; + diag_log _this; + if (_name isEqualTo "ArmaDragonflyClient") then { + parseSimpleArray _data call (missionNamespace getVariable [_function, { + hint "Function does not exist!" + }]); + }; +}]; + +addMissionEventHandler ["ExtensionCallback", { + params ["_name", "_function", "_data"]; + if (_name isEqualTo "ArmaFORGEClient") then { + parseSimpleArray _data call (missionNamespace getVariable [_function, { + hint "Function does not exist!" + }]); + }; +}]; \ No newline at end of file diff --git a/special/initPlayerLocal.sqf b/special/initPlayerLocal.sqf new file mode 100644 index 0000000..c38178d --- /dev/null +++ b/special/initPlayerLocal.sqf @@ -0,0 +1,2 @@ +#include "do_not_edit\script_component.hpp" +#include "do_not_edit\initPlayerLocal.sqf" \ No newline at end of file diff --git a/special/initServer.sqf b/special/initServer.sqf new file mode 100644 index 0000000..54ca007 --- /dev/null +++ b/special/initServer.sqf @@ -0,0 +1,4 @@ +if (isServer || isDedicated) then { + true spawn dragonfly_db_fnc_init; + [] call forge_server_init_fnc_serverSetup; +}; \ No newline at end of file diff --git a/special/params/paramArsType.h b/special/params/paramArsType.h new file mode 100644 index 0000000..927de4e --- /dev/null +++ b/special/params/paramArsType.h @@ -0,0 +1,6 @@ +class ARS_TYPE { + title = "Personal Arsenal Type:"; + values[] = {0, 1}; + texts[] = {"BIS", "ACE3"}; + default = 1; +}; \ No newline at end of file diff --git a/special/params/paramDT.h b/special/params/paramDT.h new file mode 100644 index 0000000..bd4100e --- /dev/null +++ b/special/params/paramDT.h @@ -0,0 +1,6 @@ +class DT { + title = "Delivery Time:"; + values[] = {0, 10, 30, 60, 120, 180, 240, 300}; + texts[] = {"0 Seconds", "10 Seconds", "30 Seconds", "1 Minute", "2 Minutes", "3 Minutes", "4 Minutes", "5 Minutes"}; + default = 10; +}; \ No newline at end of file diff --git a/special/params/paramFuelCost.h b/special/params/paramFuelCost.h new file mode 100644 index 0000000..8084a41 --- /dev/null +++ b/special/params/paramFuelCost.h @@ -0,0 +1,6 @@ +class FUEL_COST { + title = "Fuel Cost:"; + values[]= {0, 2, 4, 6, 7, 8, 10, 12}; + texts[] = {"$0.00 / Gallon", "$2.00 / Gallon", "$4.00 / Gallon", "$6.00 / Gallon", "$8.00 / Gallon", "$10.00 / Gallon", "$12.00 / Gallon", "$14.00 / Gallon"}; + default = 2; +}; \ No newline at end of file diff --git a/special/params/paramInsDeduct.h b/special/params/paramInsDeduct.h new file mode 100644 index 0000000..b7ece3d --- /dev/null +++ b/special/params/paramInsDeduct.h @@ -0,0 +1,6 @@ +class INS_DEDUCT { + title = "Insurance Deductible"; + values[]= {0, 100, 200, 300, 400, 500}; + texts[] = {"$0.00","$100.00", "$200.00", "$300.00", "$400.00", "$500.00"}; + default= 200; +}; \ No newline at end of file diff --git a/special/params/paramMedCost.h b/special/params/paramMedCost.h new file mode 100644 index 0000000..bfba445 --- /dev/null +++ b/special/params/paramMedCost.h @@ -0,0 +1,6 @@ +class MED_COST { + title = "Medical Cost"; + values[]= {0, 200, 400, 600, 800, 1000}; + texts[] = {"$0.00","$200.00", "$400.00", "$600.00", "$800.00", "$1000.00"}; + default= 400; +}; \ No newline at end of file diff --git a/special/params/paramMultiplyr.h b/special/params/paramMultiplyr.h new file mode 100644 index 0000000..8e465e9 --- /dev/null +++ b/special/params/paramMultiplyr.h @@ -0,0 +1,6 @@ +class MULTIPLYR { + title = "Payout Multiplier (Personal Accounts):"; + values[] = {0, 0.5, 1, 2, 3}; + texts[] = {"Zero", "Half", "None", "Double", "Triple"}; + default = 1; +}; \ No newline at end of file diff --git a/special/params/paramOpBudget.h b/special/params/paramOpBudget.h new file mode 100644 index 0000000..28b7a0c --- /dev/null +++ b/special/params/paramOpBudget.h @@ -0,0 +1,6 @@ +class OP_BUDGET { + title = "Company Budget:"; + values[] = {0, 5000000, 12000000, 25000000, 50000000, 75000000, 120000000}; + texts[] = {"Broke", "5 Million", "12 Million", "25 Million", "50 Million", "75 Million", "120 Million"}; + default = 5000000; +}; \ No newline at end of file diff --git a/special/params/paramOpRating.h b/special/params/paramOpRating.h new file mode 100644 index 0000000..8ee3e24 --- /dev/null +++ b/special/params/paramOpRating.h @@ -0,0 +1,6 @@ +class OP_RATING { + title = "Company Rating:"; + values[] = {0, 500, 1000, 2000, 5000}; + texts[] = {"0", "500 RP", "1000 RP", "2000 RP", "5000 RP"}; + default = 500; +}; \ No newline at end of file diff --git a/special/params/paramPDBMode.h b/special/params/paramPDBMode.h new file mode 100644 index 0000000..930cdb1 --- /dev/null +++ b/special/params/paramPDBMode.h @@ -0,0 +1,6 @@ +class PDB_MODE { + title = "Persistent Database Mode:"; + values[] = {0, 1}; + texts[] = {"ProfileNamespace", "ArmaDragonfly"}; + default = 1; +}; \ No newline at end of file diff --git a/special/params/paramRepairCost.h b/special/params/paramRepairCost.h new file mode 100644 index 0000000..ed79484 --- /dev/null +++ b/special/params/paramRepairCost.h @@ -0,0 +1,6 @@ +class REPAIR_COST { + title = "Repair Cost:"; + values[]= {0, 20, 40, 60, 70, 80, 100, 120}; + texts[] = {"$0.00 / Hr", "$20.00 / Hr", "$40.00 / Hr", "$60.00 / Hr", "$80.00 / Hr", "$100.00 / Hr", "$120.00 / Hr", "$140.00 / Hr"}; + default = 20; +}; \ No newline at end of file diff --git a/special/params/paramTeamCoord.h b/special/params/paramTeamCoord.h new file mode 100644 index 0000000..2a2ae2c --- /dev/null +++ b/special/params/paramTeamCoord.h @@ -0,0 +1,6 @@ +class TEAM_COORD { + title = "Force Team Coordinator:"; + values[] = {0, 1}; + texts[] = {"False", "True"}; + default = 0; +}; \ No newline at end of file diff --git a/special/params/paramVAEnable.h b/special/params/paramVAEnable.h new file mode 100644 index 0000000..d301c24 --- /dev/null +++ b/special/params/paramVAEnable.h @@ -0,0 +1,6 @@ +class VA_ENABLE { + title = "Virtual Arsenal/Garage:"; + values[] = {0, 1}; + texts[] = {"False", "True"}; + default = 0; +}; \ No newline at end of file diff --git a/special/script_component.hpp b/special/script_component.hpp new file mode 100644 index 0000000..92777b7 --- /dev/null +++ b/special/script_component.hpp @@ -0,0 +1,28 @@ +#define PREFIX forge +#define COMPONENT mission + +// Version +#define MAJOR 1 +#define MINOR 0 +#define PATCHLVL 0 + +// Mission +#define MISSION_TYPES ["Contract", "Sub-Contract", "Training", "Special"] + +// Debug +#define DEBUG_SYNCHRONOUS +//#define DEBUG_MODE_FULL + +#include "\x\cba\addons\main\script_macros_mission.hpp" + +// ACE3 +#define ACE_PREFIX ace + +#define ACEGVAR(module,var) TRIPLES(ACE_PREFIX,module,var) +#define QACEGVAR(module,var) QUOTE(ACEGVAR(module,var)) + +#define ACEFUNC(var1,var2) TRIPLES(DOUBLES(ACE_PREFIX,var1),fnc,var2) +#define QACEFUNC(var1,var2) QUOTE(ACEFUNC(var1,var2)) + +#define PATHTOACEF(var1,var2) PATHTOF_SYS(\z\ace\addons,var1,var2) +#define QPATHTOACEF(var1,var2) QUOTE(PATHTOACEF(var1,var2)) \ No newline at end of file diff --git a/training/briefing.sqf b/training/briefing.sqf new file mode 100644 index 0000000..6bdffd1 --- /dev/null +++ b/training/briefing.sqf @@ -0,0 +1,71 @@ +#include "..\do_not_edit\script_component.hpp" +/* + * Author: Kresky, Jonpas + * Adds briefing based on side. + * Call from initPlayerLocal.sqf. + * Copy to other side briefings if you want to add briefings to those sides. + * + * Arguments: + * 0: Player + * + * Return Value: + * None + * + * Example: + * [player] call FUNC(briefing); + * + * New Line: + *
+ * + * Text Colour (Hex colour Code) + * TEXT HERE + * + * Clickable Marker Link: + * MARKER_TEXT + * + * Image: + * + */ + +params ["_player"]; + +switch (side _player) do { + // BLUFOR briefing + case west: { + + }; + + // OPFOR briefing + case east: { + + }; + + // RESISTANCE/INDEPENDENT briefing -- THIS IS THE BRIEFING YOU WANT TO EDIT FOR YOUR MISSION! + case resistance: { + _player createDiaryRecord ["Diary", ["Employer", " +
Republic of Karellia + "]]; + + _player createDiaryRecord ["Diary", ["Situation", " +
ENEMY FORCES: +
PMC Wagner +
+
FRIENDLY FORCES: +
Synixe Contractors +
+
CIVILIAN CONSIDERATIONS: +
Mostly evacuated, very few civilians remain. + "]]; + + _player createDiaryRecord ["Diary", ["Mission", " +
We have been hired to destroy communications towers in a region that has fallen to PMC Wagner. +
+
We will have access to frequency detection equipment in order to locate the towers. + "]]; + }; + + // CIVILIAN briefing + case civilian: { + + }; +}; \ No newline at end of file diff --git a/training/cba_settings.sqf b/training/cba_settings.sqf new file mode 100644 index 0000000..7bcddce --- /dev/null +++ b/training/cba_settings.sqf @@ -0,0 +1 @@ +// FORGE - Basic Settings \ No newline at end of file diff --git a/training/config.h b/training/config.h new file mode 100644 index 0000000..4127844 --- /dev/null +++ b/training/config.h @@ -0,0 +1,23 @@ +class Params { + #include "params\paramArsType.h" + #include "params\paramDT.h" + #include "params\paramFuelCost.h" + #include "params\paramInsDeduct.h" + #include "params\paramMedCost.h" + #include "params\paramMultiplyr.h" + #include "params\paramOpBudget.h" + #include "params\paramOpRating.h" + #include "params\paramPDBMode.h" + #include "params\paramRepairCost.h" + #include "params\paramTeamCoord.h" + #include "params\paramVAEnable.h" +}; + +#include "configs\banks.h" +#include "configs\cpofs.h" +#include "configs\garages.h" +#include "configs\lockers.h" +#include "configs\paygrades.h" +#include "configs\stores.h" + +#include "\@forge\userconfig\forge_phone.hpp" \ No newline at end of file diff --git a/training/configs/banks.h b/training/configs/banks.h new file mode 100644 index 0000000..6f7c7a7 --- /dev/null +++ b/training/configs/banks.h @@ -0,0 +1,10 @@ +class CfgBanks { + class banks { + class bank1 { + className = "Land_Atm_01_F"; + pos[] = {4818, 8075, 0}; + dir = 180; + type = "object"; + }; + }; +}; \ No newline at end of file diff --git a/training/configs/cpofs.h b/training/configs/cpofs.h new file mode 100644 index 0000000..b9cdb21 --- /dev/null +++ b/training/configs/cpofs.h @@ -0,0 +1,9 @@ +class CfgCpofs { + class cpofs { + class cpof1 { + className = "Land_MultiScreenComputer_01_olive_F"; + pos[] = {4821, 8075, 0}; + dir = 180; + }; + }; +}; \ No newline at end of file diff --git a/training/configs/garages.h b/training/configs/garages.h new file mode 100644 index 0000000..2ea406e --- /dev/null +++ b/training/configs/garages.h @@ -0,0 +1,20 @@ +class CfgGarages { + locations[] = { + {"car", {4805,8075,0}, 0}, + {"armor", {4805,8075,0}, 0}, + {"heli", {4805,8075,0}, 0}, + {"plane", {4805,8075,0}, 0}, + {"naval", {4805,8075,0}, 0}, + {"static", {4805,8075,0}, 0}, + {"uav", {4805,8075,0}, 0}, + {"ugv", {4805,8075,0}, 0} + }; + class garages { + class garage1 { + className = "Box_NATO_Equip_F"; + pos[] = {4810, 8075, 0}; + dir = 0; + type = "object"; + }; + }; +}; \ No newline at end of file diff --git a/training/configs/lockers.h b/training/configs/lockers.h new file mode 100644 index 0000000..d4cd057 --- /dev/null +++ b/training/configs/lockers.h @@ -0,0 +1,10 @@ +class CfgLockers { + class lockers { + class locker1 { + className = "Box_NATO_Equip_F"; + pos[] = {4812, 8075, 0}; + dir = 0; + type = "object"; + }; + }; +}; \ No newline at end of file diff --git a/training/configs/paygrades.h b/training/configs/paygrades.h new file mode 100644 index 0000000..9694e66 --- /dev/null +++ b/training/configs/paygrades.h @@ -0,0 +1,16 @@ +class CfgPaygrades { + payGrades[] = { + {"E1", 1000, "Enlisted"}, + {"E2", 1250, "Enlisted"}, + {"E3", 1500, "Enlisted"}, + {"E4", 1750, "Enlisted"}, + {"WO1", 2000, "Warrant"}, + {"WO2", 2250, "Warrant"}, + {"WO3", 2500, "Warrant"}, + {"WO4", 2750, "Warrant"}, + {"2LT", 3000, "Officer"}, + {"1LT", 3250, "Officer"}, + {"CPT", 3500, "Officer"}, + {"MAJ", 3750, "Officer"} + }; +}; \ No newline at end of file diff --git a/training/configs/stores.h b/training/configs/stores.h new file mode 100644 index 0000000..1478aad --- /dev/null +++ b/training/configs/stores.h @@ -0,0 +1,105 @@ +class CfgStores { + class stores { + class store1 { + className = "Land_CashDesk_F"; + pos[] = {4815, 8075, 0}; + dir = 0; + type = "object"; + name = "General Military Surplus Store"; + paymentMethods[] = { + {"Bank", "FORGE_Bank", "player"}, + {"Cash", "FORGE_Cash", "player"}, + {"Company", "FORGE_Company", "mission", {"76561198027566824"}} + }; + categories[] = { + "Backpacks", + "Headgear", + "Items", + "Magazines", + "Medical", + "Uniforms", + "Vests", + "Weapons", + "Aircraft", + "Armored", + "Helicopter", + "Marine", + "Static", + "UAV", + "UGV", + "Wheeled" + }; + products[] = { + {"Binocular", 335, "Items", "item", "item"}, + {"ItemCompass", 50, "Items", "item", "item"}, + {"ItemGPS", 250, "Items", "item", "item"}, + {"ItemMap", 20, "Items", "item", "item"}, + {"ItemWatch", 50, "Items", "item", "item"}, + {"Toolkit", 450, "Items", "item", "item"}, + {"Chemlight_blue", 2, "Items", "magazine", "item"}, + {"Chemlight_green", 2, "Items", "magazine", "item"}, + {"Chemlight_red", 2, "Items", "magazine", "item"}, + {"Chemlight_yellow", 2, "Items", "magazine", "item"}, + {"ACE_EarPlugs", 1, "Items", "item", "item"}, + {"ACE_MapTools", 225, "Items", "item", "item"}, + {"ACE_CableTie", 5, "Items", "item", "item"}, + {"ACE_wirecutter", 50, "Items", "item", "item"}, + {"ACE_SpareBarrel", 250, "Items", "item", "item"}, + + {"ACE_fieldDressing", 10, "Medical", "item", "item"}, + {"ACE_packingBandage", 10, "Medical", "item", "item"}, + {"ACE_elasticBandage", 10, "Medical", "item", "item"}, + {"ACE_quikclot", 10, "Medical", "item", "item"}, + {"ACE_tourniquet", 10, "Medical", "item", "item"}, + {"ACE_morphine", 10, "Medical", "item", "item"}, + {"ACE_epinephrine", 10, "Medical", "item", "item"}, + + {"16Rnd_9x21_Mag", 10, "Magazines", "magazine", "magazine"}, + {"30Rnd_65x39_caseless_mag", 10, "Magazines", "magazine", "magazine"}, + {"100Rnd_65x39_caseless_mag", 10, "Magazines", "magazine", "magazine"}, + + {"U_BG_Guerrilla_6_1", 300, "Uniforms", "uniform", "uniform"}, + {"V_Chestrig_rgr", 500, "Vests", "vest", "vest"}, + {"V_PlateCarrier2_rgr", 1000, "Vests", "vest", "vest"}, + + {"H_Cap_blk_ION", 100, "Headgear", "headgear", "headgear"}, + + {"B_AssaultPack_rgr", 250, "Backpacks", "backpack", "backpack", {"B_AssaultPack_blk"}}, + + {"hgun_P07_F", 1000, "Weapons", "weapon", "weapon"}, + {"arifle_MXC_F", 1500, "Weapons", "weapon", "weapon"}, + {"arifle_MX_SW_F", 1500, "Weapons", "weapon", "weapon"}, + {"arifle_MXM_F", 10000, "Weapons", "weapon", "weapon"}, + + {"B_APC_Wheeled_01_cannon_F", 10000, "Armored", "vehicle", "armor"}, + {"B_MBT_01_TUSK_F", 10000, "Armored", "vehicle", "armor"}, + + {"B_T_VTOL_01_infantry_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_T_VTOL_01_vehicle_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_T_VTOL_01_armed_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Transport_03_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Attack_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Transport_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_armed_F", 10000, "Helicopter", "vehicle", "heli"}, + {"B_Heli_Light_01_stripped_F", 10000, "Helicopter", "vehicle", "heli"}, + + {"B_MRAP_01_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_MRAP_01_gmg_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_MRAP_01_hmg_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Quadbike_01_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_transport_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_covered_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_mover_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_box_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_Repair_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_ammo_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_fuel_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_Truck_01_medical_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_armed_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_AT_F", 10000, "Wheeled", "vehicle", "car"}, + {"B_LSV_01_unarmed_F", 10000, "Wheeled", "vehicle", "car"} + }; + }; + }; +}; \ No newline at end of file diff --git a/training/description.ext b/training/description.ext new file mode 100644 index 0000000..41ac19d --- /dev/null +++ b/training/description.ext @@ -0,0 +1,3 @@ +#include "config.h" +#include "do_not_edit\description.ext" +#include "edit_me\description.ext" \ No newline at end of file diff --git a/training/do_not_edit/briefing.sqf b/training/do_not_edit/briefing.sqf new file mode 100644 index 0000000..e698d12 --- /dev/null +++ b/training/do_not_edit/briefing.sqf @@ -0,0 +1,21 @@ +#include "..\do_not_edit\script_component.hpp" + +private _fnc_createRecord = { + params ["_title"]; + private _file = format ["edit_me\briefing\%1.html", toLower _title]; + if (fileExists _file) then { + private _contents = loadFile _file; + player createDiaryRecord ["Diary", [_title, _contents regexReplace ["\n", "
"]]]; + } else { + diag_log format ["No %1.html found in briefing folder", toLower _title]; + }; +}; + +{ + [_x] call _fnc_createRecord; +} forEach [ + "Objectives", + "Mission", + "Situation", + "Employer" +]; // Use reverse order to get correct order in diary \ No newline at end of file diff --git a/training/do_not_edit/description.ext b/training/do_not_edit/description.ext new file mode 100644 index 0000000..c6a7395 --- /dev/null +++ b/training/do_not_edit/description.ext @@ -0,0 +1,30 @@ +// Do not edit this file + +// Version of mission template +forge_template = 3; + +// Mission Settings +onLoadIntroTime = 1; +onLoadMissionTime = 1; + +// Game type and player count +class Header { + gameType = FORGE_TRN; + minPlayers = 1; + maxPlayers = 32; +}; + +// Respawn Settings +respawn = "BASE"; +respawnButton = 1; +respawnDelay = 5; +respawnDialog = 0; + +// AI & Debug +disableAI = 1; +enableTargetDebug = 1; + +// Other Settings +cba_settings_hasSettingsFile = 1; +corpseManagerMode = 0; // No bodies will be cleaned up +allowProfileGlasses = 0; // Disables glasses set in profile being added to player gear \ No newline at end of file diff --git a/training/do_not_edit/initPlayerLocal.sqf b/training/do_not_edit/initPlayerLocal.sqf new file mode 100644 index 0000000..24ce7fa --- /dev/null +++ b/training/do_not_edit/initPlayerLocal.sqf @@ -0,0 +1,10 @@ +[] spawn forge_client_init_fnc_initPlayer; +[] spawn forge_client_medical_fnc_initMedical; +[] spawn forge_client_phone_fnc_initPhone; +[] spawn forge_client_service_fnc_initService; +[] spawn forge_client_store_fnc_initStore; + +player addItem "FORGE_Phone"; + +// TODO replace with function +[player] call compile preprocessFileLineNumbers "do_not_edit\briefing.sqf"; \ No newline at end of file diff --git a/training/do_not_edit/script_component.hpp b/training/do_not_edit/script_component.hpp new file mode 100644 index 0000000..367080e --- /dev/null +++ b/training/do_not_edit/script_component.hpp @@ -0,0 +1,11 @@ +#define PREFIX forge +#define COMPONENT mission + +// Mission +#define MISSION_TYPES ["Contract", "Sub-Contract", "Training", "Special"] + +// Debug +#define DEBUG_SYNCHRONOUS +//#define DEBUG_MODE_FULL + +#include "\x\cba\addons\main\script_macros_mission.hpp" \ No newline at end of file diff --git a/training/edit_me/briefing/employer.html b/training/edit_me/briefing/employer.html new file mode 100644 index 0000000..766571f --- /dev/null +++ b/training/edit_me/briefing/employer.html @@ -0,0 +1 @@ +INSERT NAME OF EMPLOYER HERE \ No newline at end of file diff --git a/training/edit_me/briefing/mission.html b/training/edit_me/briefing/mission.html new file mode 100644 index 0000000..df4f319 --- /dev/null +++ b/training/edit_me/briefing/mission.html @@ -0,0 +1,5 @@ +INSERT YOUR MISSION DESCRIPTION HERE, + +YOU CAN ADD AS MUCH AS YOU FEEL IS RELEVANT. + +AS A RULE OF THUMB, CONSIDER: WHO, WHAT (TASKS), WHERE, WHEN, AND WHY \ No newline at end of file diff --git a/training/edit_me/briefing/objectives.html b/training/edit_me/briefing/objectives.html new file mode 100644 index 0000000..2291acb --- /dev/null +++ b/training/edit_me/briefing/objectives.html @@ -0,0 +1,7 @@ +PRIMARY OBJECTIVES: + + INSERT OBJECTIVES THAT MUST BE COMPLETED TO ACHIEVE THE MISSION GOAL + + SECONDARY OBJECTIVES: + + INSERT OBJECTIVES THAT ARE NOT REQUIRED TO COMPLETE THE MISSION, BUT MAY BE USEFUL \ No newline at end of file diff --git a/training/edit_me/briefing/situation.html b/training/edit_me/briefing/situation.html new file mode 100644 index 0000000..d61a4aa --- /dev/null +++ b/training/edit_me/briefing/situation.html @@ -0,0 +1,15 @@ +ENEMY FORCES: +INSERT ENEMIES HERE +INSERT ENEMY AMLCOA (Most Likely Course of Action, AKA, what they're doing, how they act, how they'll act towards us, what we know, etc) + +FRIENDLY FORCES: +Synixe Contractors, INSERT FRIENDLIES HERE + +INDEPENDENT FORCES: +INSERT INDEPENDENT FORCES IF THERE ARE ANY, OTHERWISE REMOVE THIS LINE AND ONE ABOVE + +CIVILIAN CONSIDERATIONS: +INSERT THINGS TO CONSIDER ABOUT CIVILIANS, PRESENCE/ABSENCE AND/OR BEHAVIOUR/SUPPORT TO FRIENDLIES OR ENEMIES + +TERRAIN CONSIDERATIONS: +INSERT ANYTHING YOU FIND RELEVANT ABOUT HOW THE TERRAIN MAY BE ADVANTAGEOUS OR DISADVANTAGEOUS \ No newline at end of file diff --git a/training/edit_me/description.ext b/training/edit_me/description.ext new file mode 100644 index 0000000..d99fcbb --- /dev/null +++ b/training/edit_me/description.ext @@ -0,0 +1,9 @@ +// Mission settings - title, description, author etc. +author = "YOUR_NAME, FORGE"; +onLoadName = "MISSION_NAME"; +onLoadMission = "MISSION_SUMMARY"; + +forge_type = 2; // 0: Contract, 1: Sub-Contract, 2: Training, 3: Special + +// Randomization +disableRandomization[] = {}; // Disables randomization of units and vehicles based off of variable name or classname \ No newline at end of file diff --git a/training/init.sqf b/training/init.sqf new file mode 100644 index 0000000..38374b4 --- /dev/null +++ b/training/init.sqf @@ -0,0 +1,23 @@ +#include "do_not_edit\script_component.hpp" + +finishMissionInit; +enableSaving [false, false]; + +addMissionEventHandler ["ExtensionCallback", { + params ["_name", "_function", "_data"]; + diag_log _this; + if (_name isEqualTo "ArmaDragonflyClient") then { + parseSimpleArray _data call (missionNamespace getVariable [_function, { + hint "Function does not exist!" + }]); + }; +}]; + +addMissionEventHandler ["ExtensionCallback", { + params ["_name", "_function", "_data"]; + if (_name isEqualTo "ArmaFORGEClient") then { + parseSimpleArray _data call (missionNamespace getVariable [_function, { + hint "Function does not exist!" + }]); + }; +}]; \ No newline at end of file diff --git a/training/initPlayerLocal.sqf b/training/initPlayerLocal.sqf new file mode 100644 index 0000000..c38178d --- /dev/null +++ b/training/initPlayerLocal.sqf @@ -0,0 +1,2 @@ +#include "do_not_edit\script_component.hpp" +#include "do_not_edit\initPlayerLocal.sqf" \ No newline at end of file diff --git a/training/initServer.sqf b/training/initServer.sqf new file mode 100644 index 0000000..54ca007 --- /dev/null +++ b/training/initServer.sqf @@ -0,0 +1,4 @@ +if (isServer || isDedicated) then { + true spawn dragonfly_db_fnc_init; + [] call forge_server_init_fnc_serverSetup; +}; \ No newline at end of file diff --git a/training/params/paramArsType.h b/training/params/paramArsType.h new file mode 100644 index 0000000..927de4e --- /dev/null +++ b/training/params/paramArsType.h @@ -0,0 +1,6 @@ +class ARS_TYPE { + title = "Personal Arsenal Type:"; + values[] = {0, 1}; + texts[] = {"BIS", "ACE3"}; + default = 1; +}; \ No newline at end of file diff --git a/training/params/paramDT.h b/training/params/paramDT.h new file mode 100644 index 0000000..bd4100e --- /dev/null +++ b/training/params/paramDT.h @@ -0,0 +1,6 @@ +class DT { + title = "Delivery Time:"; + values[] = {0, 10, 30, 60, 120, 180, 240, 300}; + texts[] = {"0 Seconds", "10 Seconds", "30 Seconds", "1 Minute", "2 Minutes", "3 Minutes", "4 Minutes", "5 Minutes"}; + default = 10; +}; \ No newline at end of file diff --git a/training/params/paramFuelCost.h b/training/params/paramFuelCost.h new file mode 100644 index 0000000..8084a41 --- /dev/null +++ b/training/params/paramFuelCost.h @@ -0,0 +1,6 @@ +class FUEL_COST { + title = "Fuel Cost:"; + values[]= {0, 2, 4, 6, 7, 8, 10, 12}; + texts[] = {"$0.00 / Gallon", "$2.00 / Gallon", "$4.00 / Gallon", "$6.00 / Gallon", "$8.00 / Gallon", "$10.00 / Gallon", "$12.00 / Gallon", "$14.00 / Gallon"}; + default = 2; +}; \ No newline at end of file diff --git a/training/params/paramInsDeduct.h b/training/params/paramInsDeduct.h new file mode 100644 index 0000000..b7ece3d --- /dev/null +++ b/training/params/paramInsDeduct.h @@ -0,0 +1,6 @@ +class INS_DEDUCT { + title = "Insurance Deductible"; + values[]= {0, 100, 200, 300, 400, 500}; + texts[] = {"$0.00","$100.00", "$200.00", "$300.00", "$400.00", "$500.00"}; + default= 200; +}; \ No newline at end of file diff --git a/training/params/paramMedCost.h b/training/params/paramMedCost.h new file mode 100644 index 0000000..bfba445 --- /dev/null +++ b/training/params/paramMedCost.h @@ -0,0 +1,6 @@ +class MED_COST { + title = "Medical Cost"; + values[]= {0, 200, 400, 600, 800, 1000}; + texts[] = {"$0.00","$200.00", "$400.00", "$600.00", "$800.00", "$1000.00"}; + default= 400; +}; \ No newline at end of file diff --git a/training/params/paramMultiplyr.h b/training/params/paramMultiplyr.h new file mode 100644 index 0000000..8e465e9 --- /dev/null +++ b/training/params/paramMultiplyr.h @@ -0,0 +1,6 @@ +class MULTIPLYR { + title = "Payout Multiplier (Personal Accounts):"; + values[] = {0, 0.5, 1, 2, 3}; + texts[] = {"Zero", "Half", "None", "Double", "Triple"}; + default = 1; +}; \ No newline at end of file diff --git a/training/params/paramOpBudget.h b/training/params/paramOpBudget.h new file mode 100644 index 0000000..28b7a0c --- /dev/null +++ b/training/params/paramOpBudget.h @@ -0,0 +1,6 @@ +class OP_BUDGET { + title = "Company Budget:"; + values[] = {0, 5000000, 12000000, 25000000, 50000000, 75000000, 120000000}; + texts[] = {"Broke", "5 Million", "12 Million", "25 Million", "50 Million", "75 Million", "120 Million"}; + default = 5000000; +}; \ No newline at end of file diff --git a/training/params/paramOpRating.h b/training/params/paramOpRating.h new file mode 100644 index 0000000..8ee3e24 --- /dev/null +++ b/training/params/paramOpRating.h @@ -0,0 +1,6 @@ +class OP_RATING { + title = "Company Rating:"; + values[] = {0, 500, 1000, 2000, 5000}; + texts[] = {"0", "500 RP", "1000 RP", "2000 RP", "5000 RP"}; + default = 500; +}; \ No newline at end of file diff --git a/training/params/paramPDBMode.h b/training/params/paramPDBMode.h new file mode 100644 index 0000000..930cdb1 --- /dev/null +++ b/training/params/paramPDBMode.h @@ -0,0 +1,6 @@ +class PDB_MODE { + title = "Persistent Database Mode:"; + values[] = {0, 1}; + texts[] = {"ProfileNamespace", "ArmaDragonfly"}; + default = 1; +}; \ No newline at end of file diff --git a/training/params/paramRepairCost.h b/training/params/paramRepairCost.h new file mode 100644 index 0000000..ed79484 --- /dev/null +++ b/training/params/paramRepairCost.h @@ -0,0 +1,6 @@ +class REPAIR_COST { + title = "Repair Cost:"; + values[]= {0, 20, 40, 60, 70, 80, 100, 120}; + texts[] = {"$0.00 / Hr", "$20.00 / Hr", "$40.00 / Hr", "$60.00 / Hr", "$80.00 / Hr", "$100.00 / Hr", "$120.00 / Hr", "$140.00 / Hr"}; + default = 20; +}; \ No newline at end of file diff --git a/training/params/paramTeamCoord.h b/training/params/paramTeamCoord.h new file mode 100644 index 0000000..2a2ae2c --- /dev/null +++ b/training/params/paramTeamCoord.h @@ -0,0 +1,6 @@ +class TEAM_COORD { + title = "Force Team Coordinator:"; + values[] = {0, 1}; + texts[] = {"False", "True"}; + default = 0; +}; \ No newline at end of file diff --git a/training/params/paramVAEnable.h b/training/params/paramVAEnable.h new file mode 100644 index 0000000..d301c24 --- /dev/null +++ b/training/params/paramVAEnable.h @@ -0,0 +1,6 @@ +class VA_ENABLE { + title = "Virtual Arsenal/Garage:"; + values[] = {0, 1}; + texts[] = {"False", "True"}; + default = 0; +}; \ No newline at end of file diff --git a/training/script_component.hpp b/training/script_component.hpp new file mode 100644 index 0000000..92777b7 --- /dev/null +++ b/training/script_component.hpp @@ -0,0 +1,28 @@ +#define PREFIX forge +#define COMPONENT mission + +// Version +#define MAJOR 1 +#define MINOR 0 +#define PATCHLVL 0 + +// Mission +#define MISSION_TYPES ["Contract", "Sub-Contract", "Training", "Special"] + +// Debug +#define DEBUG_SYNCHRONOUS +//#define DEBUG_MODE_FULL + +#include "\x\cba\addons\main\script_macros_mission.hpp" + +// ACE3 +#define ACE_PREFIX ace + +#define ACEGVAR(module,var) TRIPLES(ACE_PREFIX,module,var) +#define QACEGVAR(module,var) QUOTE(ACEGVAR(module,var)) + +#define ACEFUNC(var1,var2) TRIPLES(DOUBLES(ACE_PREFIX,var1),fnc,var2) +#define QACEFUNC(var1,var2) QUOTE(ACEFUNC(var1,var2)) + +#define PATHTOACEF(var1,var2) PATHTOF_SYS(\z\ace\addons,var1,var2) +#define QPATHTOACEF(var1,var2) QUOTE(PATHTOACEF(var1,var2)) \ No newline at end of file