From 264c4bc4dcedea30574923c3bfe7885345813b5f Mon Sep 17 00:00:00 2001 From: Jacob Schmidt Date: Sun, 20 Oct 2024 18:36:57 -0500 Subject: [PATCH] Initial Repo Setup --- .editorconfig | 12 ++ campaign/cba_settings.sqf | 1 + campaign/config.h | 23 ++++ campaign/configs/banks.h | 11 ++ campaign/configs/cpofs.h | 10 ++ campaign/configs/garages.h | 21 +++ campaign/configs/lockers.h | 11 ++ campaign/configs/paygrades.h | 17 +++ campaign/configs/stores.h | 117 +++++++++++++++++ campaign/description.ext | 3 + campaign/do_not_edit/briefing.sqf | 21 +++ campaign/do_not_edit/description.ext | 30 +++++ campaign/do_not_edit/initPlayerLocal.sqf | 11 ++ campaign/do_not_edit/script_component.hpp | 11 ++ campaign/edit_me/briefing/employer.html | 1 + campaign/edit_me/briefing/mission.html | 5 + campaign/edit_me/briefing/objectives.html | 7 + campaign/edit_me/briefing/situation.html | 15 +++ campaign/edit_me/description.ext | 9 ++ campaign/init.sqf | 13 ++ campaign/initPlayerLocal.sqf | 2 + campaign/initServer.sqf | 4 + campaign/params/paramArsType.h | 6 + campaign/params/paramDT.h | 6 + campaign/params/paramFuelCost.h | 6 + campaign/params/paramInsDeduct.h | 6 + campaign/params/paramMedCost.h | 6 + campaign/params/paramMultiplyr.h | 6 + campaign/params/paramOpBudget.h | 6 + campaign/params/paramOpRating.h | 6 + campaign/params/paramPDBMode.h | 6 + campaign/params/paramRepairCost.h | 6 + campaign/params/paramTeamCoord.h | 6 + campaign/params/paramVAEnable.h | 6 + campaign/script_component.hpp | 28 ++++ directAction/cba_settings.sqf | 1 + directAction/config.h | 23 ++++ directAction/configs/banks.h | 11 ++ directAction/configs/cpofs.h | 10 ++ directAction/configs/garages.h | 21 +++ directAction/configs/lockers.h | 11 ++ directAction/configs/paygrades.h | 16 +++ directAction/configs/stores.h | 121 ++++++++++++++++++ directAction/description.ext | 3 + directAction/do_not_edit/briefing.sqf | 21 +++ directAction/do_not_edit/description.ext | 30 +++++ directAction/do_not_edit/initPlayerLocal.sqf | 11 ++ directAction/do_not_edit/script_component.hpp | 11 ++ directAction/edit_me/briefing/employer.html | 1 + directAction/edit_me/briefing/mission.html | 5 + directAction/edit_me/briefing/objectives.html | 7 + directAction/edit_me/briefing/situation.html | 15 +++ directAction/edit_me/description.ext | 9 ++ directAction/init.sqf | 23 ++++ directAction/initPlayerLocal.sqf | 2 + directAction/initServer.sqf | 4 + directAction/params/paramArsType.h | 6 + directAction/params/paramDT.h | 6 + directAction/params/paramFuelCost.h | 6 + directAction/params/paramInsDeduct.h | 6 + directAction/params/paramMedCost.h | 6 + directAction/params/paramMultiplyr.h | 6 + directAction/params/paramOpBudget.h | 6 + directAction/params/paramOpRating.h | 6 + directAction/params/paramPDBMode.h | 6 + directAction/params/paramRepairCost.h | 6 + directAction/params/paramTeamCoord.h | 6 + directAction/params/paramVAEnable.h | 6 + directAction/script_component.hpp | 28 ++++ operation/briefing.sqf | 71 ++++++++++ operation/cba_settings.sqf | 1 + operation/config.h | 23 ++++ operation/configs/banks.h | 11 ++ operation/configs/cpofs.h | 10 ++ operation/configs/garages.h | 21 +++ operation/configs/lockers.h | 11 ++ operation/configs/paygrades.h | 16 +++ operation/configs/stores.h | 117 +++++++++++++++++ operation/description.ext | 3 + operation/do_not_edit/briefing.sqf | 21 +++ operation/do_not_edit/description.ext | 30 +++++ operation/do_not_edit/initPlayerLocal.sqf | 11 ++ operation/do_not_edit/script_component.hpp | 11 ++ operation/edit_me/briefing/employer.html | 1 + operation/edit_me/briefing/mission.html | 5 + operation/edit_me/briefing/objectives.html | 7 + operation/edit_me/briefing/situation.html | 15 +++ operation/edit_me/description.ext | 9 ++ operation/init.sqf | 13 ++ operation/initPlayerLocal.sqf | 2 + operation/initServer.sqf | 4 + operation/params/paramArsType.h | 6 + operation/params/paramDT.h | 6 + operation/params/paramFuelCost.h | 6 + operation/params/paramInsDeduct.h | 6 + operation/params/paramMedCost.h | 6 + operation/params/paramMultiplyr.h | 6 + operation/params/paramOpBudget.h | 6 + operation/params/paramOpRating.h | 6 + operation/params/paramPDBMode.h | 6 + operation/params/paramRepairCost.h | 6 + operation/params/paramTeamCoord.h | 6 + operation/params/paramVAEnable.h | 6 + operation/script_component.hpp | 28 ++++ 104 files changed, 1424 insertions(+) create mode 100644 .editorconfig create mode 100644 campaign/cba_settings.sqf create mode 100644 campaign/config.h create mode 100644 campaign/configs/banks.h create mode 100644 campaign/configs/cpofs.h create mode 100644 campaign/configs/garages.h create mode 100644 campaign/configs/lockers.h create mode 100644 campaign/configs/paygrades.h create mode 100644 campaign/configs/stores.h create mode 100644 campaign/description.ext create mode 100644 campaign/do_not_edit/briefing.sqf create mode 100644 campaign/do_not_edit/description.ext create mode 100644 campaign/do_not_edit/initPlayerLocal.sqf create mode 100644 campaign/do_not_edit/script_component.hpp create mode 100644 campaign/edit_me/briefing/employer.html create mode 100644 campaign/edit_me/briefing/mission.html create mode 100644 campaign/edit_me/briefing/objectives.html create mode 100644 campaign/edit_me/briefing/situation.html create mode 100644 campaign/edit_me/description.ext create mode 100644 campaign/init.sqf create mode 100644 campaign/initPlayerLocal.sqf create mode 100644 campaign/initServer.sqf create mode 100644 campaign/params/paramArsType.h create mode 100644 campaign/params/paramDT.h create mode 100644 campaign/params/paramFuelCost.h create mode 100644 campaign/params/paramInsDeduct.h create mode 100644 campaign/params/paramMedCost.h create mode 100644 campaign/params/paramMultiplyr.h create mode 100644 campaign/params/paramOpBudget.h create mode 100644 campaign/params/paramOpRating.h create mode 100644 campaign/params/paramPDBMode.h create mode 100644 campaign/params/paramRepairCost.h create mode 100644 campaign/params/paramTeamCoord.h create mode 100644 campaign/params/paramVAEnable.h create mode 100644 campaign/script_component.hpp create mode 100644 directAction/cba_settings.sqf create mode 100644 directAction/config.h create mode 100644 directAction/configs/banks.h create mode 100644 directAction/configs/cpofs.h create mode 100644 directAction/configs/garages.h create mode 100644 directAction/configs/lockers.h create mode 100644 directAction/configs/paygrades.h create mode 100644 directAction/configs/stores.h create mode 100644 directAction/description.ext create mode 100644 directAction/do_not_edit/briefing.sqf create mode 100644 directAction/do_not_edit/description.ext create mode 100644 directAction/do_not_edit/initPlayerLocal.sqf create mode 100644 directAction/do_not_edit/script_component.hpp create mode 100644 directAction/edit_me/briefing/employer.html create mode 100644 directAction/edit_me/briefing/mission.html create mode 100644 directAction/edit_me/briefing/objectives.html create mode 100644 directAction/edit_me/briefing/situation.html create mode 100644 directAction/edit_me/description.ext create mode 100644 directAction/init.sqf create mode 100644 directAction/initPlayerLocal.sqf create mode 100644 directAction/initServer.sqf create mode 100644 directAction/params/paramArsType.h create mode 100644 directAction/params/paramDT.h create mode 100644 directAction/params/paramFuelCost.h create mode 100644 directAction/params/paramInsDeduct.h create mode 100644 directAction/params/paramMedCost.h create mode 100644 directAction/params/paramMultiplyr.h create mode 100644 directAction/params/paramOpBudget.h create mode 100644 directAction/params/paramOpRating.h create mode 100644 directAction/params/paramPDBMode.h create mode 100644 directAction/params/paramRepairCost.h create mode 100644 directAction/params/paramTeamCoord.h create mode 100644 directAction/params/paramVAEnable.h create mode 100644 directAction/script_component.hpp create mode 100644 operation/briefing.sqf create mode 100644 operation/cba_settings.sqf create mode 100644 operation/config.h create mode 100644 operation/configs/banks.h create mode 100644 operation/configs/cpofs.h create mode 100644 operation/configs/garages.h create mode 100644 operation/configs/lockers.h create mode 100644 operation/configs/paygrades.h create mode 100644 operation/configs/stores.h create mode 100644 operation/description.ext create mode 100644 operation/do_not_edit/briefing.sqf create mode 100644 operation/do_not_edit/description.ext create mode 100644 operation/do_not_edit/initPlayerLocal.sqf create mode 100644 operation/do_not_edit/script_component.hpp create mode 100644 operation/edit_me/briefing/employer.html create mode 100644 operation/edit_me/briefing/mission.html create mode 100644 operation/edit_me/briefing/objectives.html create mode 100644 operation/edit_me/briefing/situation.html create mode 100644 operation/edit_me/description.ext create mode 100644 operation/init.sqf create mode 100644 operation/initPlayerLocal.sqf create mode 100644 operation/initServer.sqf create mode 100644 operation/params/paramArsType.h create mode 100644 operation/params/paramDT.h create mode 100644 operation/params/paramFuelCost.h create mode 100644 operation/params/paramInsDeduct.h create mode 100644 operation/params/paramMedCost.h create mode 100644 operation/params/paramMultiplyr.h create mode 100644 operation/params/paramOpBudget.h create mode 100644 operation/params/paramOpRating.h create mode 100644 operation/params/paramPDBMode.h create mode 100644 operation/params/paramRepairCost.h create mode 100644 operation/params/paramTeamCoord.h create mode 100644 operation/params/paramVAEnable.h create mode 100644 operation/script_component.hpp diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..eb21a45 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = crlf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = false \ No newline at end of file diff --git a/campaign/cba_settings.sqf b/campaign/cba_settings.sqf new file mode 100644 index 0000000..fd60c51 --- /dev/null +++ b/campaign/cba_settings.sqf @@ -0,0 +1 @@ +// SOF - Basic Settings \ No newline at end of file diff --git a/campaign/config.h b/campaign/config.h new file mode 100644 index 0000000..c66ad03 --- /dev/null +++ b/campaign/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 "\@pmcs\userconfig\pmcs_phone.hpp" \ No newline at end of file diff --git a/campaign/configs/banks.h b/campaign/configs/banks.h new file mode 100644 index 0000000..2f72c11 --- /dev/null +++ b/campaign/configs/banks.h @@ -0,0 +1,11 @@ +class PMCS_CfgBanks { + class banks { + class bank1 { + className = "Land_Atm_01_F"; + pos[] = {4818, 8075, 0}; + dir = 180; + bankType = "object"; + bankName = "FDIC"; + }; + }; +}; \ No newline at end of file diff --git a/campaign/configs/cpofs.h b/campaign/configs/cpofs.h new file mode 100644 index 0000000..85e90a1 --- /dev/null +++ b/campaign/configs/cpofs.h @@ -0,0 +1,10 @@ +class PMCS_CfgCpofs { + class cpofs { + class cpof1 { + 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 new file mode 100644 index 0000000..d0499d1 --- /dev/null +++ b/campaign/configs/garages.h @@ -0,0 +1,21 @@ +class PMCS_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/campaign/configs/lockers.h b/campaign/configs/lockers.h new file mode 100644 index 0000000..1b37912 --- /dev/null +++ b/campaign/configs/lockers.h @@ -0,0 +1,11 @@ +class PMCS_CfgLockers { + class lockers { + class locker1 { + className = "Box_NATO_Equip_F"; + pos[] = {4812, 8075, 0}; + dir = 0; + lockerType = "object"; + lockerName = "Player Locker"; + }; + }; +}; \ No newline at end of file diff --git a/campaign/configs/paygrades.h b/campaign/configs/paygrades.h new file mode 100644 index 0000000..050af05 --- /dev/null +++ b/campaign/configs/paygrades.h @@ -0,0 +1,17 @@ +class PMCS_CfgPaygrades { + payGrades[] = { + // Army + {"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/campaign/configs/stores.h b/campaign/configs/stores.h new file mode 100644 index 0000000..a88b768 --- /dev/null +++ b/campaign/configs/stores.h @@ -0,0 +1,117 @@ +class PMCS_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/campaign/description.ext b/campaign/description.ext new file mode 100644 index 0000000..41ac19d --- /dev/null +++ b/campaign/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/campaign/do_not_edit/briefing.sqf b/campaign/do_not_edit/briefing.sqf new file mode 100644 index 0000000..e698d12 --- /dev/null +++ b/campaign/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/campaign/do_not_edit/description.ext b/campaign/do_not_edit/description.ext new file mode 100644 index 0000000..1be4c9f --- /dev/null +++ b/campaign/do_not_edit/description.ext @@ -0,0 +1,30 @@ +// Do not edit this file + +// Version of mission template +pmcs_template = 3; + +// Mission Settings +onLoadIntroTime = 1; +onLoadMissionTime = 1; + +// Game type and player count +class Header { + gameType = COOP; + 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/campaign/do_not_edit/initPlayerLocal.sqf b/campaign/do_not_edit/initPlayerLocal.sqf new file mode 100644 index 0000000..ebf7c26 --- /dev/null +++ b/campaign/do_not_edit/initPlayerLocal.sqf @@ -0,0 +1,11 @@ +[] call pmcs_client_armory_fnc_initArmory; +[] spawn pmcs_client_init_fnc_initPlayer; +[] spawn pmcs_client_medical_fnc_initMedical; +[] spawn pmcs_client_phone_fnc_initPhone; +[] spawn pmcs_client_service_fnc_initService; +[] spawn pmcs_client_store_fnc_initStore; + +player addItem "PMCS_Phone"; + +// TODO replace with function +[player] call compile preprocessFileLineNumbers "do_not_edit\briefing.sqf"; \ No newline at end of file diff --git a/campaign/do_not_edit/script_component.hpp b/campaign/do_not_edit/script_component.hpp new file mode 100644 index 0000000..676c6db --- /dev/null +++ b/campaign/do_not_edit/script_component.hpp @@ -0,0 +1,11 @@ +#define PREFIX sof +#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/campaign/edit_me/briefing/employer.html b/campaign/edit_me/briefing/employer.html new file mode 100644 index 0000000..766571f --- /dev/null +++ b/campaign/edit_me/briefing/employer.html @@ -0,0 +1 @@ +INSERT NAME OF EMPLOYER HERE \ No newline at end of file diff --git a/campaign/edit_me/briefing/mission.html b/campaign/edit_me/briefing/mission.html new file mode 100644 index 0000000..df4f319 --- /dev/null +++ b/campaign/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/campaign/edit_me/briefing/objectives.html b/campaign/edit_me/briefing/objectives.html new file mode 100644 index 0000000..2291acb --- /dev/null +++ b/campaign/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/campaign/edit_me/briefing/situation.html b/campaign/edit_me/briefing/situation.html new file mode 100644 index 0000000..d61a4aa --- /dev/null +++ b/campaign/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/campaign/edit_me/description.ext b/campaign/edit_me/description.ext new file mode 100644 index 0000000..375b827 --- /dev/null +++ b/campaign/edit_me/description.ext @@ -0,0 +1,9 @@ +// Mission settings - title, description, author etc. +author = "YOUR_NAME, SOF"; +onLoadName = "MISSION_NAME"; +onLoadMission = "MISSION_SUMMARY"; + +pmcs_type = 0; // 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/campaign/init.sqf b/campaign/init.sqf new file mode 100644 index 0000000..b405d78 --- /dev/null +++ b/campaign/init.sqf @@ -0,0 +1,13 @@ +#include "do_not_edit\script_component.hpp" + +finishMissionInit; +enableSaving [false, false]; + +addMissionEventHandler ["ExtensionCallback", { + params ["_name", "_function", "_data"]; + if (_name isEqualTo "ArmaSOFClient") then { + parseSimpleArray _data call (missionNamespace getVariable [_function, { + hint "Function does not exist!" + }]); + }; +}]; \ No newline at end of file diff --git a/campaign/initPlayerLocal.sqf b/campaign/initPlayerLocal.sqf new file mode 100644 index 0000000..c38178d --- /dev/null +++ b/campaign/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/campaign/initServer.sqf b/campaign/initServer.sqf new file mode 100644 index 0000000..46456ce --- /dev/null +++ b/campaign/initServer.sqf @@ -0,0 +1,4 @@ +if (isServer || isDedicated) then { + true spawn dragonfly_db_fnc_init; + [] call pmcs_server_init_fnc_serverSetup; +}; \ No newline at end of file diff --git a/campaign/params/paramArsType.h b/campaign/params/paramArsType.h new file mode 100644 index 0000000..927de4e --- /dev/null +++ b/campaign/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/campaign/params/paramDT.h b/campaign/params/paramDT.h new file mode 100644 index 0000000..bd4100e --- /dev/null +++ b/campaign/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/campaign/params/paramFuelCost.h b/campaign/params/paramFuelCost.h new file mode 100644 index 0000000..8084a41 --- /dev/null +++ b/campaign/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/campaign/params/paramInsDeduct.h b/campaign/params/paramInsDeduct.h new file mode 100644 index 0000000..b7ece3d --- /dev/null +++ b/campaign/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/campaign/params/paramMedCost.h b/campaign/params/paramMedCost.h new file mode 100644 index 0000000..bfba445 --- /dev/null +++ b/campaign/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/campaign/params/paramMultiplyr.h b/campaign/params/paramMultiplyr.h new file mode 100644 index 0000000..8e465e9 --- /dev/null +++ b/campaign/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/campaign/params/paramOpBudget.h b/campaign/params/paramOpBudget.h new file mode 100644 index 0000000..28b7a0c --- /dev/null +++ b/campaign/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/campaign/params/paramOpRating.h b/campaign/params/paramOpRating.h new file mode 100644 index 0000000..8ee3e24 --- /dev/null +++ b/campaign/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/campaign/params/paramPDBMode.h b/campaign/params/paramPDBMode.h new file mode 100644 index 0000000..930cdb1 --- /dev/null +++ b/campaign/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/campaign/params/paramRepairCost.h b/campaign/params/paramRepairCost.h new file mode 100644 index 0000000..ed79484 --- /dev/null +++ b/campaign/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/campaign/params/paramTeamCoord.h b/campaign/params/paramTeamCoord.h new file mode 100644 index 0000000..2a2ae2c --- /dev/null +++ b/campaign/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/campaign/params/paramVAEnable.h b/campaign/params/paramVAEnable.h new file mode 100644 index 0000000..d301c24 --- /dev/null +++ b/campaign/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/campaign/script_component.hpp b/campaign/script_component.hpp new file mode 100644 index 0000000..28047a3 --- /dev/null +++ b/campaign/script_component.hpp @@ -0,0 +1,28 @@ +#define PREFIX sof +#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/directAction/cba_settings.sqf b/directAction/cba_settings.sqf new file mode 100644 index 0000000..fd60c51 --- /dev/null +++ b/directAction/cba_settings.sqf @@ -0,0 +1 @@ +// SOF - Basic Settings \ No newline at end of file diff --git a/directAction/config.h b/directAction/config.h new file mode 100644 index 0000000..c66ad03 --- /dev/null +++ b/directAction/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 "\@pmcs\userconfig\pmcs_phone.hpp" \ No newline at end of file diff --git a/directAction/configs/banks.h b/directAction/configs/banks.h new file mode 100644 index 0000000..2f72c11 --- /dev/null +++ b/directAction/configs/banks.h @@ -0,0 +1,11 @@ +class PMCS_CfgBanks { + class banks { + class bank1 { + className = "Land_Atm_01_F"; + pos[] = {4818, 8075, 0}; + dir = 180; + bankType = "object"; + bankName = "FDIC"; + }; + }; +}; \ No newline at end of file diff --git a/directAction/configs/cpofs.h b/directAction/configs/cpofs.h new file mode 100644 index 0000000..85e90a1 --- /dev/null +++ b/directAction/configs/cpofs.h @@ -0,0 +1,10 @@ +class PMCS_CfgCpofs { + class cpofs { + class cpof1 { + 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 new file mode 100644 index 0000000..d0499d1 --- /dev/null +++ b/directAction/configs/garages.h @@ -0,0 +1,21 @@ +class PMCS_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/directAction/configs/lockers.h b/directAction/configs/lockers.h new file mode 100644 index 0000000..1b37912 --- /dev/null +++ b/directAction/configs/lockers.h @@ -0,0 +1,11 @@ +class PMCS_CfgLockers { + class lockers { + class locker1 { + className = "Box_NATO_Equip_F"; + pos[] = {4812, 8075, 0}; + dir = 0; + lockerType = "object"; + lockerName = "Player Locker"; + }; + }; +}; \ No newline at end of file diff --git a/directAction/configs/paygrades.h b/directAction/configs/paygrades.h new file mode 100644 index 0000000..f7b717b --- /dev/null +++ b/directAction/configs/paygrades.h @@ -0,0 +1,16 @@ +class PMCS_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/directAction/configs/stores.h b/directAction/configs/stores.h new file mode 100644 index 0000000..eef04f1 --- /dev/null +++ b/directAction/configs/stores.h @@ -0,0 +1,121 @@ +class PMCS_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" + }; + 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"} + }; + }; + }; +}; \ No newline at end of file diff --git a/directAction/description.ext b/directAction/description.ext new file mode 100644 index 0000000..41ac19d --- /dev/null +++ b/directAction/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/directAction/do_not_edit/briefing.sqf b/directAction/do_not_edit/briefing.sqf new file mode 100644 index 0000000..e698d12 --- /dev/null +++ b/directAction/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/directAction/do_not_edit/description.ext b/directAction/do_not_edit/description.ext new file mode 100644 index 0000000..dc7d772 --- /dev/null +++ b/directAction/do_not_edit/description.ext @@ -0,0 +1,30 @@ +// Do not edit this file + +// Version of mission template +pmcs_template = 3; + +// Mission Settings +onLoadIntroTime = 1; +onLoadMissionTime = 1; + +// Game type and player count +class Header { + gameType = PMCS_DA; + 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/directAction/do_not_edit/initPlayerLocal.sqf b/directAction/do_not_edit/initPlayerLocal.sqf new file mode 100644 index 0000000..ebf7c26 --- /dev/null +++ b/directAction/do_not_edit/initPlayerLocal.sqf @@ -0,0 +1,11 @@ +[] call pmcs_client_armory_fnc_initArmory; +[] spawn pmcs_client_init_fnc_initPlayer; +[] spawn pmcs_client_medical_fnc_initMedical; +[] spawn pmcs_client_phone_fnc_initPhone; +[] spawn pmcs_client_service_fnc_initService; +[] spawn pmcs_client_store_fnc_initStore; + +player addItem "PMCS_Phone"; + +// TODO replace with function +[player] call compile preprocessFileLineNumbers "do_not_edit\briefing.sqf"; \ No newline at end of file diff --git a/directAction/do_not_edit/script_component.hpp b/directAction/do_not_edit/script_component.hpp new file mode 100644 index 0000000..676c6db --- /dev/null +++ b/directAction/do_not_edit/script_component.hpp @@ -0,0 +1,11 @@ +#define PREFIX sof +#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/directAction/edit_me/briefing/employer.html b/directAction/edit_me/briefing/employer.html new file mode 100644 index 0000000..766571f --- /dev/null +++ b/directAction/edit_me/briefing/employer.html @@ -0,0 +1 @@ +INSERT NAME OF EMPLOYER HERE \ No newline at end of file diff --git a/directAction/edit_me/briefing/mission.html b/directAction/edit_me/briefing/mission.html new file mode 100644 index 0000000..df4f319 --- /dev/null +++ b/directAction/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/directAction/edit_me/briefing/objectives.html b/directAction/edit_me/briefing/objectives.html new file mode 100644 index 0000000..2291acb --- /dev/null +++ b/directAction/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/directAction/edit_me/briefing/situation.html b/directAction/edit_me/briefing/situation.html new file mode 100644 index 0000000..d61a4aa --- /dev/null +++ b/directAction/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/directAction/edit_me/description.ext b/directAction/edit_me/description.ext new file mode 100644 index 0000000..375b827 --- /dev/null +++ b/directAction/edit_me/description.ext @@ -0,0 +1,9 @@ +// Mission settings - title, description, author etc. +author = "YOUR_NAME, SOF"; +onLoadName = "MISSION_NAME"; +onLoadMission = "MISSION_SUMMARY"; + +pmcs_type = 0; // 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/directAction/init.sqf b/directAction/init.sqf new file mode 100644 index 0000000..1d3e3b5 --- /dev/null +++ b/directAction/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 "ArmaSOFClient") then { + parseSimpleArray _data call (missionNamespace getVariable [_function, { + hint "Function does not exist!" + }]); + }; +}]; \ No newline at end of file diff --git a/directAction/initPlayerLocal.sqf b/directAction/initPlayerLocal.sqf new file mode 100644 index 0000000..c38178d --- /dev/null +++ b/directAction/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/directAction/initServer.sqf b/directAction/initServer.sqf new file mode 100644 index 0000000..46456ce --- /dev/null +++ b/directAction/initServer.sqf @@ -0,0 +1,4 @@ +if (isServer || isDedicated) then { + true spawn dragonfly_db_fnc_init; + [] call pmcs_server_init_fnc_serverSetup; +}; \ No newline at end of file diff --git a/directAction/params/paramArsType.h b/directAction/params/paramArsType.h new file mode 100644 index 0000000..927de4e --- /dev/null +++ b/directAction/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/directAction/params/paramDT.h b/directAction/params/paramDT.h new file mode 100644 index 0000000..bd4100e --- /dev/null +++ b/directAction/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/directAction/params/paramFuelCost.h b/directAction/params/paramFuelCost.h new file mode 100644 index 0000000..8084a41 --- /dev/null +++ b/directAction/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/directAction/params/paramInsDeduct.h b/directAction/params/paramInsDeduct.h new file mode 100644 index 0000000..b7ece3d --- /dev/null +++ b/directAction/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/directAction/params/paramMedCost.h b/directAction/params/paramMedCost.h new file mode 100644 index 0000000..bfba445 --- /dev/null +++ b/directAction/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/directAction/params/paramMultiplyr.h b/directAction/params/paramMultiplyr.h new file mode 100644 index 0000000..8e465e9 --- /dev/null +++ b/directAction/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/directAction/params/paramOpBudget.h b/directAction/params/paramOpBudget.h new file mode 100644 index 0000000..28b7a0c --- /dev/null +++ b/directAction/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/directAction/params/paramOpRating.h b/directAction/params/paramOpRating.h new file mode 100644 index 0000000..8ee3e24 --- /dev/null +++ b/directAction/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/directAction/params/paramPDBMode.h b/directAction/params/paramPDBMode.h new file mode 100644 index 0000000..930cdb1 --- /dev/null +++ b/directAction/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/directAction/params/paramRepairCost.h b/directAction/params/paramRepairCost.h new file mode 100644 index 0000000..ed79484 --- /dev/null +++ b/directAction/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/directAction/params/paramTeamCoord.h b/directAction/params/paramTeamCoord.h new file mode 100644 index 0000000..2a2ae2c --- /dev/null +++ b/directAction/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/directAction/params/paramVAEnable.h b/directAction/params/paramVAEnable.h new file mode 100644 index 0000000..d301c24 --- /dev/null +++ b/directAction/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/directAction/script_component.hpp b/directAction/script_component.hpp new file mode 100644 index 0000000..28047a3 --- /dev/null +++ b/directAction/script_component.hpp @@ -0,0 +1,28 @@ +#define PREFIX sof +#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/operation/briefing.sqf b/operation/briefing.sqf new file mode 100644 index 0000000..6bdffd1 --- /dev/null +++ b/operation/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/operation/cba_settings.sqf b/operation/cba_settings.sqf new file mode 100644 index 0000000..fd60c51 --- /dev/null +++ b/operation/cba_settings.sqf @@ -0,0 +1 @@ +// SOF - Basic Settings \ No newline at end of file diff --git a/operation/config.h b/operation/config.h new file mode 100644 index 0000000..c66ad03 --- /dev/null +++ b/operation/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 "\@pmcs\userconfig\pmcs_phone.hpp" \ No newline at end of file diff --git a/operation/configs/banks.h b/operation/configs/banks.h new file mode 100644 index 0000000..2f72c11 --- /dev/null +++ b/operation/configs/banks.h @@ -0,0 +1,11 @@ +class PMCS_CfgBanks { + class banks { + class bank1 { + className = "Land_Atm_01_F"; + pos[] = {4818, 8075, 0}; + dir = 180; + bankType = "object"; + bankName = "FDIC"; + }; + }; +}; \ No newline at end of file diff --git a/operation/configs/cpofs.h b/operation/configs/cpofs.h new file mode 100644 index 0000000..85e90a1 --- /dev/null +++ b/operation/configs/cpofs.h @@ -0,0 +1,10 @@ +class PMCS_CfgCpofs { + class cpofs { + class cpof1 { + 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/operation/configs/garages.h b/operation/configs/garages.h new file mode 100644 index 0000000..d0499d1 --- /dev/null +++ b/operation/configs/garages.h @@ -0,0 +1,21 @@ +class PMCS_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/lockers.h b/operation/configs/lockers.h new file mode 100644 index 0000000..1b37912 --- /dev/null +++ b/operation/configs/lockers.h @@ -0,0 +1,11 @@ +class PMCS_CfgLockers { + class lockers { + class locker1 { + className = "Box_NATO_Equip_F"; + pos[] = {4812, 8075, 0}; + dir = 0; + lockerType = "object"; + lockerName = "Player Locker"; + }; + }; +}; \ No newline at end of file diff --git a/operation/configs/paygrades.h b/operation/configs/paygrades.h new file mode 100644 index 0000000..f7b717b --- /dev/null +++ b/operation/configs/paygrades.h @@ -0,0 +1,16 @@ +class PMCS_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/operation/configs/stores.h b/operation/configs/stores.h new file mode 100644 index 0000000..a88b768 --- /dev/null +++ b/operation/configs/stores.h @@ -0,0 +1,117 @@ +class PMCS_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/operation/description.ext b/operation/description.ext new file mode 100644 index 0000000..41ac19d --- /dev/null +++ b/operation/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/operation/do_not_edit/briefing.sqf b/operation/do_not_edit/briefing.sqf new file mode 100644 index 0000000..e698d12 --- /dev/null +++ b/operation/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/operation/do_not_edit/description.ext b/operation/do_not_edit/description.ext new file mode 100644 index 0000000..1be4c9f --- /dev/null +++ b/operation/do_not_edit/description.ext @@ -0,0 +1,30 @@ +// Do not edit this file + +// Version of mission template +pmcs_template = 3; + +// Mission Settings +onLoadIntroTime = 1; +onLoadMissionTime = 1; + +// Game type and player count +class Header { + gameType = COOP; + 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/operation/do_not_edit/initPlayerLocal.sqf b/operation/do_not_edit/initPlayerLocal.sqf new file mode 100644 index 0000000..ebf7c26 --- /dev/null +++ b/operation/do_not_edit/initPlayerLocal.sqf @@ -0,0 +1,11 @@ +[] call pmcs_client_armory_fnc_initArmory; +[] spawn pmcs_client_init_fnc_initPlayer; +[] spawn pmcs_client_medical_fnc_initMedical; +[] spawn pmcs_client_phone_fnc_initPhone; +[] spawn pmcs_client_service_fnc_initService; +[] spawn pmcs_client_store_fnc_initStore; + +player addItem "PMCS_Phone"; + +// TODO replace with function +[player] call compile preprocessFileLineNumbers "do_not_edit\briefing.sqf"; \ No newline at end of file diff --git a/operation/do_not_edit/script_component.hpp b/operation/do_not_edit/script_component.hpp new file mode 100644 index 0000000..676c6db --- /dev/null +++ b/operation/do_not_edit/script_component.hpp @@ -0,0 +1,11 @@ +#define PREFIX sof +#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/operation/edit_me/briefing/employer.html b/operation/edit_me/briefing/employer.html new file mode 100644 index 0000000..766571f --- /dev/null +++ b/operation/edit_me/briefing/employer.html @@ -0,0 +1 @@ +INSERT NAME OF EMPLOYER HERE \ No newline at end of file diff --git a/operation/edit_me/briefing/mission.html b/operation/edit_me/briefing/mission.html new file mode 100644 index 0000000..df4f319 --- /dev/null +++ b/operation/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/operation/edit_me/briefing/objectives.html b/operation/edit_me/briefing/objectives.html new file mode 100644 index 0000000..2291acb --- /dev/null +++ b/operation/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/operation/edit_me/briefing/situation.html b/operation/edit_me/briefing/situation.html new file mode 100644 index 0000000..d61a4aa --- /dev/null +++ b/operation/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/operation/edit_me/description.ext b/operation/edit_me/description.ext new file mode 100644 index 0000000..375b827 --- /dev/null +++ b/operation/edit_me/description.ext @@ -0,0 +1,9 @@ +// Mission settings - title, description, author etc. +author = "YOUR_NAME, SOF"; +onLoadName = "MISSION_NAME"; +onLoadMission = "MISSION_SUMMARY"; + +pmcs_type = 0; // 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/init.sqf b/operation/init.sqf new file mode 100644 index 0000000..b405d78 --- /dev/null +++ b/operation/init.sqf @@ -0,0 +1,13 @@ +#include "do_not_edit\script_component.hpp" + +finishMissionInit; +enableSaving [false, false]; + +addMissionEventHandler ["ExtensionCallback", { + params ["_name", "_function", "_data"]; + if (_name isEqualTo "ArmaSOFClient") then { + parseSimpleArray _data call (missionNamespace getVariable [_function, { + hint "Function does not exist!" + }]); + }; +}]; \ No newline at end of file diff --git a/operation/initPlayerLocal.sqf b/operation/initPlayerLocal.sqf new file mode 100644 index 0000000..c38178d --- /dev/null +++ b/operation/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/operation/initServer.sqf b/operation/initServer.sqf new file mode 100644 index 0000000..46456ce --- /dev/null +++ b/operation/initServer.sqf @@ -0,0 +1,4 @@ +if (isServer || isDedicated) then { + true spawn dragonfly_db_fnc_init; + [] call pmcs_server_init_fnc_serverSetup; +}; \ No newline at end of file diff --git a/operation/params/paramArsType.h b/operation/params/paramArsType.h new file mode 100644 index 0000000..927de4e --- /dev/null +++ b/operation/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/operation/params/paramDT.h b/operation/params/paramDT.h new file mode 100644 index 0000000..bd4100e --- /dev/null +++ b/operation/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/operation/params/paramFuelCost.h b/operation/params/paramFuelCost.h new file mode 100644 index 0000000..8084a41 --- /dev/null +++ b/operation/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/operation/params/paramInsDeduct.h b/operation/params/paramInsDeduct.h new file mode 100644 index 0000000..b7ece3d --- /dev/null +++ b/operation/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/operation/params/paramMedCost.h b/operation/params/paramMedCost.h new file mode 100644 index 0000000..bfba445 --- /dev/null +++ b/operation/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/operation/params/paramMultiplyr.h b/operation/params/paramMultiplyr.h new file mode 100644 index 0000000..8e465e9 --- /dev/null +++ b/operation/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/operation/params/paramOpBudget.h b/operation/params/paramOpBudget.h new file mode 100644 index 0000000..28b7a0c --- /dev/null +++ b/operation/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/operation/params/paramOpRating.h b/operation/params/paramOpRating.h new file mode 100644 index 0000000..8ee3e24 --- /dev/null +++ b/operation/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/operation/params/paramPDBMode.h b/operation/params/paramPDBMode.h new file mode 100644 index 0000000..930cdb1 --- /dev/null +++ b/operation/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/operation/params/paramRepairCost.h b/operation/params/paramRepairCost.h new file mode 100644 index 0000000..ed79484 --- /dev/null +++ b/operation/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/operation/params/paramTeamCoord.h b/operation/params/paramTeamCoord.h new file mode 100644 index 0000000..2a2ae2c --- /dev/null +++ b/operation/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/operation/params/paramVAEnable.h b/operation/params/paramVAEnable.h new file mode 100644 index 0000000..d301c24 --- /dev/null +++ b/operation/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/operation/script_component.hpp b/operation/script_component.hpp new file mode 100644 index 0000000..28047a3 --- /dev/null +++ b/operation/script_component.hpp @@ -0,0 +1,28 @@ +#define PREFIX sof +#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