Initial Repo Setup

This commit is contained in:
Jacob Schmidt 2024-10-20 18:36:57 -05:00
commit 264c4bc4dc
104 changed files with 1424 additions and 0 deletions

12
.editorconfig Normal file
View File

@ -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

View File

@ -0,0 +1 @@
// SOF - Basic Settings

23
campaign/config.h Normal file
View File

@ -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"

11
campaign/configs/banks.h Normal file
View File

@ -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";
};
};
};

10
campaign/configs/cpofs.h Normal file
View File

@ -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";
};
};
};

View File

@ -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";
};
};
};

View File

@ -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";
};
};
};

View File

@ -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"}
};
};

117
campaign/configs/stores.h Normal file
View File

@ -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"}
};
};
};
};

3
campaign/description.ext Normal file
View File

@ -0,0 +1,3 @@
#include "config.h"
#include "do_not_edit\description.ext"
#include "edit_me\description.ext"

View File

@ -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", "<br/>"]]];
} 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

View File

@ -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

View File

@ -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";

View File

@ -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"

View File

@ -0,0 +1 @@
INSERT NAME OF EMPLOYER HERE

View File

@ -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

View File

@ -0,0 +1,7 @@
<font color='#E3D310'>PRIMARY OBJECTIVES:</font color>
INSERT OBJECTIVES THAT MUST BE COMPLETED TO ACHIEVE THE MISSION GOAL
<font color='#E3D310'>SECONDARY OBJECTIVES:</font color>
INSERT OBJECTIVES THAT ARE NOT REQUIRED TO COMPLETE THE MISSION, BUT MAY BE USEFUL

View File

@ -0,0 +1,15 @@
<font color='#D81717'>ENEMY FORCES:</font>
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)
<font color='#1D69F6'>FRIENDLY FORCES:</font>
Synixe Contractors, INSERT FRIENDLIES HERE
<font color='#139120'>INDEPENDENT FORCES:</font>
INSERT INDEPENDENT FORCES IF THERE ARE ANY, OTHERWISE REMOVE THIS LINE AND ONE ABOVE
<font color='#993399'>CIVILIAN CONSIDERATIONS:</font>
INSERT THINGS TO CONSIDER ABOUT CIVILIANS, PRESENCE/ABSENCE AND/OR BEHAVIOUR/SUPPORT TO FRIENDLIES OR ENEMIES
<font color='#663300'>TERRAIN CONSIDERATIONS:</font>
INSERT ANYTHING YOU FIND RELEVANT ABOUT HOW THE TERRAIN MAY BE ADVANTAGEOUS OR DISADVANTAGEOUS

View File

@ -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

13
campaign/init.sqf Normal file
View File

@ -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!"
}]);
};
}];

View File

@ -0,0 +1,2 @@
#include "do_not_edit\script_component.hpp"
#include "do_not_edit\initPlayerLocal.sqf"

4
campaign/initServer.sqf Normal file
View File

@ -0,0 +1,4 @@
if (isServer || isDedicated) then {
true spawn dragonfly_db_fnc_init;
[] call pmcs_server_init_fnc_serverSetup;
};

View File

@ -0,0 +1,6 @@
class ARS_TYPE {
title = "Personal Arsenal Type:";
values[] = {0, 1};
texts[] = {"BIS", "ACE3"};
default = 1;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -0,0 +1,6 @@
class PDB_MODE {
title = "Persistent Database Mode:";
values[] = {0, 1};
texts[] = {"ProfileNamespace", "ArmaDragonfly"};
default = 1;
};

View File

@ -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;
};

View File

@ -0,0 +1,6 @@
class TEAM_COORD {
title = "Force Team Coordinator:";
values[] = {0, 1};
texts[] = {"False", "True"};
default = 0;
};

View File

@ -0,0 +1,6 @@
class VA_ENABLE {
title = "Virtual Arsenal/Garage:";
values[] = {0, 1};
texts[] = {"False", "True"};
default = 0;
};

View File

@ -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))

View File

@ -0,0 +1 @@
// SOF - Basic Settings

23
directAction/config.h Normal file
View File

@ -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"

View File

@ -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";
};
};
};

View File

@ -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";
};
};
};

View File

@ -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";
};
};
};

View File

@ -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";
};
};
};

View File

@ -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"}
};
};

View File

@ -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"}
};
};
};
};

View File

@ -0,0 +1,3 @@
#include "config.h"
#include "do_not_edit\description.ext"
#include "edit_me\description.ext"

View File

@ -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", "<br/>"]]];
} 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

View File

@ -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

View File

@ -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";

View File

@ -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"

View File

@ -0,0 +1 @@
INSERT NAME OF EMPLOYER HERE

View File

@ -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

View File

@ -0,0 +1,7 @@
<font color='#E3D310'>PRIMARY OBJECTIVES:</font color>
INSERT OBJECTIVES THAT MUST BE COMPLETED TO ACHIEVE THE MISSION GOAL
<font color='#E3D310'>SECONDARY OBJECTIVES:</font color>
INSERT OBJECTIVES THAT ARE NOT REQUIRED TO COMPLETE THE MISSION, BUT MAY BE USEFUL

View File

@ -0,0 +1,15 @@
<font color='#D81717'>ENEMY FORCES:</font>
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)
<font color='#1D69F6'>FRIENDLY FORCES:</font>
Synixe Contractors, INSERT FRIENDLIES HERE
<font color='#139120'>INDEPENDENT FORCES:</font>
INSERT INDEPENDENT FORCES IF THERE ARE ANY, OTHERWISE REMOVE THIS LINE AND ONE ABOVE
<font color='#993399'>CIVILIAN CONSIDERATIONS:</font>
INSERT THINGS TO CONSIDER ABOUT CIVILIANS, PRESENCE/ABSENCE AND/OR BEHAVIOUR/SUPPORT TO FRIENDLIES OR ENEMIES
<font color='#663300'>TERRAIN CONSIDERATIONS:</font>
INSERT ANYTHING YOU FIND RELEVANT ABOUT HOW THE TERRAIN MAY BE ADVANTAGEOUS OR DISADVANTAGEOUS

View File

@ -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

23
directAction/init.sqf Normal file
View File

@ -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!"
}]);
};
}];

View File

@ -0,0 +1,2 @@
#include "do_not_edit\script_component.hpp"
#include "do_not_edit\initPlayerLocal.sqf"

View File

@ -0,0 +1,4 @@
if (isServer || isDedicated) then {
true spawn dragonfly_db_fnc_init;
[] call pmcs_server_init_fnc_serverSetup;
};

View File

@ -0,0 +1,6 @@
class ARS_TYPE {
title = "Personal Arsenal Type:";
values[] = {0, 1};
texts[] = {"BIS", "ACE3"};
default = 1;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -0,0 +1,6 @@
class PDB_MODE {
title = "Persistent Database Mode:";
values[] = {0, 1};
texts[] = {"ProfileNamespace", "ArmaDragonfly"};
default = 1;
};

View File

@ -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;
};

View File

@ -0,0 +1,6 @@
class TEAM_COORD {
title = "Force Team Coordinator:";
values[] = {0, 1};
texts[] = {"False", "True"};
default = 0;
};

View File

@ -0,0 +1,6 @@
class VA_ENABLE {
title = "Virtual Arsenal/Garage:";
values[] = {0, 1};
texts[] = {"False", "True"};
default = 0;
};

View File

@ -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))

71
operation/briefing.sqf Normal file
View File

@ -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 <OBJECT>
*
* Return Value:
* None
*
* Example:
* [player] call FUNC(briefing);
*
* New Line:
* <br/>
*
* Text Colour (Hex colour Code)
* <font color='#FF0000'>TEXT HERE</font color>
*
* Clickable Marker Link:
* <marker name = 'MARKER_NAME'>MARKER_TEXT</marker>
*
* Image:
* <img image='FOLDER\IMAGE.jpg' width='200' height='100'/>
*/
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", "
<br/>Republic of Karellia
"]];
_player createDiaryRecord ["Diary", ["Situation", "
<br/><font color='#D81717'>ENEMY FORCES:</font color>
<br/>PMC Wagner
<br/>
<br/><font color='#1D69F6'>FRIENDLY FORCES:</font color>
<br/>Synixe Contractors
<br/>
<br/><font color='#993399'>CIVILIAN CONSIDERATIONS:</font color>
<br/>Mostly evacuated, very few civilians remain.
"]];
_player createDiaryRecord ["Diary", ["Mission", "
<br/>We have been hired to destroy communications towers in a region that has fallen to PMC Wagner.
<br/>
<br/>We will have access to frequency detection equipment in order to locate the towers.
"]];
};
// CIVILIAN briefing
case civilian: {
};
};

View File

@ -0,0 +1 @@
// SOF - Basic Settings

23
operation/config.h Normal file
View File

@ -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"

11
operation/configs/banks.h Normal file
View File

@ -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";
};
};
};

10
operation/configs/cpofs.h Normal file
View File

@ -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";
};
};
};

View File

@ -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";
};
};
};

View File

@ -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";
};
};
};

View File

@ -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"}
};
};

117
operation/configs/stores.h Normal file
View File

@ -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"}
};
};
};
};

View File

@ -0,0 +1,3 @@
#include "config.h"
#include "do_not_edit\description.ext"
#include "edit_me\description.ext"

View File

@ -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", "<br/>"]]];
} 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

View File

@ -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

View File

@ -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";

View File

@ -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"

View File

@ -0,0 +1 @@
INSERT NAME OF EMPLOYER HERE

View File

@ -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

View File

@ -0,0 +1,7 @@
<font color='#E3D310'>PRIMARY OBJECTIVES:</font color>
INSERT OBJECTIVES THAT MUST BE COMPLETED TO ACHIEVE THE MISSION GOAL
<font color='#E3D310'>SECONDARY OBJECTIVES:</font color>
INSERT OBJECTIVES THAT ARE NOT REQUIRED TO COMPLETE THE MISSION, BUT MAY BE USEFUL

View File

@ -0,0 +1,15 @@
<font color='#D81717'>ENEMY FORCES:</font>
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)
<font color='#1D69F6'>FRIENDLY FORCES:</font>
Synixe Contractors, INSERT FRIENDLIES HERE
<font color='#139120'>INDEPENDENT FORCES:</font>
INSERT INDEPENDENT FORCES IF THERE ARE ANY, OTHERWISE REMOVE THIS LINE AND ONE ABOVE
<font color='#993399'>CIVILIAN CONSIDERATIONS:</font>
INSERT THINGS TO CONSIDER ABOUT CIVILIANS, PRESENCE/ABSENCE AND/OR BEHAVIOUR/SUPPORT TO FRIENDLIES OR ENEMIES
<font color='#663300'>TERRAIN CONSIDERATIONS:</font>
INSERT ANYTHING YOU FIND RELEVANT ABOUT HOW THE TERRAIN MAY BE ADVANTAGEOUS OR DISADVANTAGEOUS

View File

@ -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

13
operation/init.sqf Normal file
View File

@ -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!"
}]);
};
}];

View File

@ -0,0 +1,2 @@
#include "do_not_edit\script_component.hpp"
#include "do_not_edit\initPlayerLocal.sqf"

4
operation/initServer.sqf Normal file
View File

@ -0,0 +1,4 @@
if (isServer || isDedicated) then {
true spawn dragonfly_db_fnc_init;
[] call pmcs_server_init_fnc_serverSetup;
};

View File

@ -0,0 +1,6 @@
class ARS_TYPE {
title = "Personal Arsenal Type:";
values[] = {0, 1};
texts[] = {"BIS", "ACE3"};
default = 1;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -0,0 +1,6 @@
class PDB_MODE {
title = "Persistent Database Mode:";
values[] = {0, 1};
texts[] = {"ProfileNamespace", "ArmaDragonfly"};
default = 1;
};

Some files were not shown because too many files have changed in this diff Show More