From dfaa2e0c5b4a99d97c8a5ddc934aba5d587e5ac7 Mon Sep 17 00:00:00 2001 From: kolmipilot <92938734+kolmipilot@users.noreply.github.com> Date: Mon, 29 Jun 2026 18:04:52 +0200 Subject: [PATCH 1/4] add training mission --- addons/training/$PBOPREFIX$ | 2 + addons/training/RscDisplayMain.hpp | 38 ++++ addons/training/config.cpp | 33 +++ addons/training/data/KamMissionLogo.paa | Bin 0 -> 2866 bytes addons/training/data/KamMissionLogoWhite.paa | Bin 0 -> 2866 bytes .../MedicTraining.VR/WhiteBoardSettings.paa | Bin 0 -> 55480 bytes .../missions/MedicTraining.VR/description.ext | 7 + .../missions/MedicTraining.VR/init.sqf | 189 ++++++++++++++++++ .../missions/MedicTraining.VR/mission.sqm | Bin 0 -> 47636 bytes addons/training/script_component.hpp | 17 ++ addons/training/stringtable.xml | 11 + 11 files changed, 297 insertions(+) create mode 100644 addons/training/$PBOPREFIX$ create mode 100644 addons/training/RscDisplayMain.hpp create mode 100644 addons/training/config.cpp create mode 100644 addons/training/data/KamMissionLogo.paa create mode 100644 addons/training/data/KamMissionLogoWhite.paa create mode 100644 addons/training/missions/MedicTraining.VR/WhiteBoardSettings.paa create mode 100644 addons/training/missions/MedicTraining.VR/description.ext create mode 100644 addons/training/missions/MedicTraining.VR/init.sqf create mode 100644 addons/training/missions/MedicTraining.VR/mission.sqm create mode 100644 addons/training/script_component.hpp create mode 100644 addons/training/stringtable.xml diff --git a/addons/training/$PBOPREFIX$ b/addons/training/$PBOPREFIX$ new file mode 100644 index 000000000..b4612ace0 --- /dev/null +++ b/addons/training/$PBOPREFIX$ @@ -0,0 +1,2 @@ +x\kat\addons\training + diff --git a/addons/training/RscDisplayMain.hpp b/addons/training/RscDisplayMain.hpp new file mode 100644 index 000000000..14ddf4dc2 --- /dev/null +++ b/addons/training/RscDisplayMain.hpp @@ -0,0 +1,38 @@ +class RscStandardDisplay; +class RscControlsGroupNoScrollbars; +class RscDisplayMain: RscStandardDisplay { + class controls { + class GroupSingleplayer: RscControlsGroupNoScrollbars { + class Controls; + }; + class GroupTutorials: GroupSingleplayer { + h = "(6 * 1.5) * (pixelH * pixelGrid * 2)"; + + class Controls: Controls { + class Bootcamp; + class Arsenal; + class GVAR(mission): Arsenal { + idc = -1; + text = CSTRING(Mission); + tooltip = CSTRING(Mission_tooltip); + y = "(4 * 1.5) * (pixelH * pixelGrid * 2) + (pixelH)"; + onbuttonclick = QUOTE(playMission [ARR_2('','PATHTOF(missions\MedicTraining.VR)')]); + + animTextureNormal = QPATHTOF(data\KamMissionLogo.paa); + animTextureDisabled = QPATHTOF(data\KamMissionLogo.paa); + animTextureOver = QPATHTOF(data\KamMissionLogoWhite.paa); + animTextureFocused = QPATHTOF(data\KamMissionLogoWhite.paa); + animTexturePressed = QPATHTOF(data\KamMissionLogo.paa); + animTextureDefault = QPATHTOF(data\KamMissionLogo.paa); + + }; + class FieldManual: Bootcamp { + y = "(5 * 1.5) * (pixelH * pixelGrid * 2) + (pixelH)"; + }; + class CommunityGuides: Bootcamp { + y = "(6 * 1.5) * (pixelH * pixelGrid * 2) + (pixelH)"; + }; + }; + }; + }; +}; \ No newline at end of file diff --git a/addons/training/config.cpp b/addons/training/config.cpp new file mode 100644 index 000000000..1b7969181 --- /dev/null +++ b/addons/training/config.cpp @@ -0,0 +1,33 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + name = COMPONENT_NAME; + requiredVersion = REQUIRED_VERSION; + units[] = { }; + weapons[] = {}; + magazines[] = { }; + requiredAddons[] = { + "kat_main", + "ace_medical", + "ace_medical_ai", + "ace_medical_blood", + "ace_medical_damage", + "ace_medical_engine", + "ace_medical_feedback", + "ace_medical_gui", + "ace_medical_statemachine", + "ace_medical_status", + "ace_medical_treatment", + "ace_medical_vitals", + "ace_dogtags", + "cba_settings" + }; + author = "kolmipilot"; + authors[] = {"kolmipilot"}; + url = ECSTRING(main,URL); + VERSION_CONFIG; + }; +}; + +#include "RscDisplayMain.hpp" diff --git a/addons/training/data/KamMissionLogo.paa b/addons/training/data/KamMissionLogo.paa new file mode 100644 index 0000000000000000000000000000000000000000..d18daceaa174a3dde1fe1df1beb042ad2d6d7da2 GIT binary patch literal 2866 zcmds(F=!M~5QhJgU06;6FW`DMffdot!otqtt=YYcg}4`Y_HGX^B6x*`Ae@T?gNCa^ zu*f!ojbNi-VJRe?mUgREVriFDa)rfnX1B09;UFop1NUa<&12qu^XAQN!*n`+yxd8A z3qZ5ktn9vjTWrH3{=4n=9nJO={ylSm7frxE%f{TY2@l{1wHIRmt?Q1tHwCEMi=|YU zwIO2>h6}(?;|Bp9h@bMX@-NmV9iP85S3V*@o}h(K@q_T^cB4`9hpzh%*ce{KQsznS z)+v{Y*LQ@+(lSP0i1T5L6;N3ZYLS@#%@J&w^+0aglXcymtUK)@BpM~Z1y%9cTNgPW zv6}|s?fb1rG*P@PIv(X^ewe%#=U1?hvh2cF-ytemKX%zp2d}20iS8fUMl%CBH=PwL`g6dI@baN;%tWo-d)a@# z3Z$c3+$K*}gfrWBhp+i1wQ%YDl3c&F!=2~bW7dx!rYE~QAp8I3M0dA5v~nV`2ZNM8 z41m>y$m37J&H4Ytr=5wS!o5B`daEc&l6fPXdk0+I-KURZ-`UuB+Ed)1yxBpv#}k!3 JdXQBs{sJ|U#J2zd literal 0 HcmV?d00001 diff --git a/addons/training/data/KamMissionLogoWhite.paa b/addons/training/data/KamMissionLogoWhite.paa new file mode 100644 index 0000000000000000000000000000000000000000..afd97bb024d7870405cc2bc51849698554ab5b0b GIT binary patch literal 2866 zcmds3F>ljQ5I#3~k_(FJ3~pgSa;ZEZwL=G}kTN{CaWWws;RmJ)5hG(a1|*0&AQg3N z7%I^LBz^(|LRA(f=Clh+7L+ixV~`k*?_SDAhYT6;N%r&k*?#`+zWeSuT(3vzR{ddA zB%TwC|IYuiZ%l+ZKnh|xCtoM^T&x<4&np|?e|JuZ67#Za{ObjI z&M8PBa=`;f@T($u%mEo+?F%nb|8Z4tX3+IkKb9}3C zdn26v`tIgVAo9>3@9oW7S{!a?W^{MJ8E6w=E7+Fl>B3MM1=Rid_REv=U9WI+@y@jG mAB{h*e>!>AZH`{AZ!E3Mc@U`J^53Y8zHP6bp03IhM1KJ5h+en= literal 0 HcmV?d00001 diff --git a/addons/training/missions/MedicTraining.VR/WhiteBoardSettings.paa b/addons/training/missions/MedicTraining.VR/WhiteBoardSettings.paa new file mode 100644 index 0000000000000000000000000000000000000000..5418b77239c6141e10e973b3e25c2e71a03d035a GIT binary patch literal 55480 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 literal 0 HcmV?d00001 diff --git a/addons/training/missions/MedicTraining.VR/description.ext b/addons/training/missions/MedicTraining.VR/description.ext new file mode 100644 index 000000000..df09a847f --- /dev/null +++ b/addons/training/missions/MedicTraining.VR/description.ext @@ -0,0 +1,7 @@ +briefing = 0; +author = "kolmipilot"; +onLoadName = "KAM medical training"; +onLoadMission = "KAT - advanced medical training mission by kolmipilot"; +debriefing = 0; + +overviewText = "KAT - advanced medical training mission by kolmipilot"; \ No newline at end of file diff --git a/addons/training/missions/MedicTraining.VR/init.sqf b/addons/training/missions/MedicTraining.VR/init.sqf new file mode 100644 index 000000000..54fc97a68 --- /dev/null +++ b/addons/training/missions/MedicTraining.VR/init.sqf @@ -0,0 +1,189 @@ +// 1. SERVER-SIDE (Spawn logic and management) +if (isServer) then { + spawned = false; + publicVariable "spawned"; + + // Store function globally so remoteExec can find it + missionNamespace setVariable ["MYMOD_fnc_createPatient", compileFinal " + params [""_mode""]; + private _pos = getPos hspawn; + private _group = createGroup [civilian, true]; + private _patient = _group createUnit [""B_Soldier_F"", _pos, [], 0, ""NONE""]; + + _patient disableAI ""MOVE""; + _patient disableAI ""FSM""; + + missionNamespace setVariable [""MYMOD_lastPatient"", _patient, true]; + + spawned = true; + publicVariable ""spawned""; + + if (_mode == 1) then { + [_patient, true] call ace_medical_fnc_setUnconscious; + private _selections = [""body"", ""head"", ""hand_r"", ""hand_l"", ""leg_r"", ""leg_l""]; + for ""_i"" from 1 to 4 do { + private _sel = selectRandom _selections; + [_patient, 0.8, _sel, ""bullet""] call ace_medical_fnc_addDamageToUnit; + }; + }; + ", true]; + + // 2. PLAYER-SIDE (Laptop menu - executes for everyone who has the screen) + waitUntil { !isNull (missionNamespace getVariable ["laptop", objNull]) }; + + laptop addAction ["[Patient] Spawn: Healthy", { + params ["_target", "_caller"]; + [0] remoteExec ["MYMOD_fnc_createPatient", 2]; + [format ["%1 spawned healthy patient.", name _caller]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "!spawned", 5]; + + laptop addAction ["[Patient] Spawn: Random Injuries", { + params ["_target", "_caller"]; + [1] remoteExec ["MYMOD_fnc_createPatient", 2]; + [format ["%1 spawned an injured patient.", name _caller]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "!spawned", 5]; + + laptop addAction ["[Cardiac] Asystole (No Pulse, No Shock)", { + params ["_target", "_caller"]; + private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + if (!alive _patient) exitWith { + [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + }; + + if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { + ["ace_medical_FatalVitals", [_patient], _patient] call CBA_fnc_targetEvent; + _patient setVariable ["kat_circulation_cardiacArrestType", 0, true]; + } else { + [_patient, true] call ace_medical_fnc_setUnconscious; + }; + [format ["%1 - Asystole applied.", name _caller]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "spawned", 5]; + + laptop addAction ["[Cardiac] PEA (Fake Pulse, No Shock)", { + params ["_target", "_caller"]; + private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + if (!alive _patient) exitWith { + [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + }; + + if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { + ["ace_medical_FatalVitals", [_patient], _patient] call CBA_fnc_targetEvent; + _patient setVariable ["kat_circulation_cardiacArrestType", 1, true]; + } else { + [_patient, true] call ace_medical_fnc_setUnconscious; + }; + [format ["%1 - PEA applied.", name _caller]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "spawned", 5]; + + laptop addAction ["[Cardiac] V-Fib (Fast Pulse, Shockable)", { + params ["_target", "_caller"]; + private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + if (!alive _patient) exitWith { + [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + }; + + if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { + ["ace_medical_FatalVitals", [_patient], _patient] call CBA_fnc_targetEvent; + _patient setVariable ["kat_circulation_cardiacArrestType", 2, true]; + } else { + [_patient, true] call ace_medical_fnc_setUnconscious; + }; + [format ["%1 - V-Fib applied.", name _caller]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "spawned", 5]; + + laptop addAction ["[Cardiac] V-Tach (Fast Pulse, Shockable)", { + params ["_target", "_caller"]; + private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + if (!alive _patient) exitWith { + [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + }; + + if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { + ["ace_medical_FatalVitals", [_patient], _patient] call CBA_fnc_targetEvent; + _patient setVariable ["kat_circulation_cardiacArrestType", 3, true]; + } else { + [_patient, true] call ace_medical_fnc_setUnconscious; + }; + [format ["%1 - V-Tach applied.", name _caller]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "spawned", 5]; + + laptop addAction ["[Breathing] Tension Pneumothorax", { + params ["_target", "_caller"]; + private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + if (!alive _patient) exitWith { + [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + }; + + if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { + _patient setVariable ["kat_breathing_tensionpneumothorax", true, true]; + _patient setVariable ["kat_breathing_pneumothorax", 4, true]; + [_patient] call kat_circulation_fnc_updateInternalBleeding; + } else { + [_patient, 0.8, "body", "wound"] call ace_medical_fnc_addDamageToUnit; + }; + [format ["%1 added Tension Pneumothorax.", name _caller]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "spawned", 5]; + + laptop addAction ["[Breathing] Hemopneumothorax", { + params ["_target", "_caller"]; + private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + if (!alive _patient) exitWith { + [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + }; + + if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { + _patient setVariable ["kat_breathing_hemopneumothorax", true, true]; + _patient setVariable ["kat_breathing_pneumothorax", 4, true]; + [_patient] call kat_circulation_fnc_updateInternalBleeding; + } else { + [_patient, 0.8, "body", "wound"] call ace_medical_fnc_addDamageToUnit; + }; + [format ["%1 added Hemopneumothorax.", name _caller]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "spawned", 5]; + + laptop addAction ["[Cardiac] Tamponade", { + params ["_target", "_caller"]; + private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + if (!alive _patient) exitWith { + [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + }; + + if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { + [_patient] call kat_breathing_fnc_createTamponade; + } else { + [_patient, true] call ace_medical_fnc_setUnconscious; + }; + [format ["%1 added Cardiac Tamponade.", name _caller]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "spawned", 5]; + + laptop addAction ["[Patient] Add: Random Damage", { + params ["_target", "_caller"]; + private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + if (!alive _patient) exitWith { + [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + }; + + private _selections = ["body", "head", "hand_r", "hand_l", "leg_r", "leg_l"]; + private _damageTypes = ["grenade", "stab", "bullet", "falling"]; + private _count = 2 + floor random 5; + for "_i" from 1 to _count do { + private _sel = selectRandom _selections; + private _dmg = 0.5 + random 0.5; + private _type = selectRandom _damageTypes; + [_patient, _dmg, _sel, _type] call ace_medical_fnc_addDamageToUnit; + }; + [format ["%1 added %2 random injuries.", name _caller, _count]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "spawned", 5]; + + laptop addAction ["[Patient] Delete patient", { + params ["_target", "_caller"]; + private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + if (!isNull _patient) then { + deleteVehicle _patient; + }; + + spawned = false; + publicVariable "spawned"; + [format ["%1 deleted the patient.", name _caller]] remoteExec ["systemChat", 0]; + }, nil, 1.5, true, true, "", "spawned", 5]; +}; \ No newline at end of file diff --git a/addons/training/missions/MedicTraining.VR/mission.sqm b/addons/training/missions/MedicTraining.VR/mission.sqm new file mode 100644 index 0000000000000000000000000000000000000000..748935dd861560e0c324e25eb29439e684b981bd GIT binary patch literal 47636 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 literal 0 HcmV?d00001 diff --git a/addons/training/script_component.hpp b/addons/training/script_component.hpp new file mode 100644 index 000000000..3e38b0ab1 --- /dev/null +++ b/addons/training/script_component.hpp @@ -0,0 +1,17 @@ +#define COMPONENT training +#define COMPONENT_BEAUTIFIED Training +#include "\x\kat\addons\main\script_mod.hpp" + +// #define DEBUG_MODE_FULL +// #define DISABLE_COMPILE_CACHE +// #define ENABLE_PERFORMANCE_COUNTERS + +#ifdef DEBUG_ENABLED_TRAINING + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_TRAINING + #define DEBUG_SETTINGS DEBUG_SETTINGS_TRAINING +#endif + +#include "\x\kat\addons\main\script_macros.hpp" diff --git a/addons/training/stringtable.xml b/addons/training/stringtable.xml new file mode 100644 index 000000000..1513d2f23 --- /dev/null +++ b/addons/training/stringtable.xml @@ -0,0 +1,11 @@ + + + + + KAM medical training + + + KAM medical training + + + From 2fac3b1a4afec154e9c816cf5c0fe2d85054c989 Mon Sep 17 00:00:00 2001 From: kolmipilot <92938734+kolmipilot@users.noreply.github.com> Date: Tue, 30 Jun 2026 12:01:59 +0200 Subject: [PATCH 2/4] requested changes: - change init.sqf to initserver and initPlayerLocal - moved function to mod PREP - modified description.ext - changed function call from remoteExec to remoteExecCall (unscheduled) --- addons/training/CfgEventHandlers.hpp | 6 ++ addons/training/RscDisplayMain.hpp | 2 +- addons/training/XEH_PREP.hpp | 1 + addons/training/XEH_preInit.sqf | 9 ++ addons/training/config.cpp | 1 + .../training/functions/fnc_createPatient.sqf | 35 +++++++ .../MedicTraining.VR/KAMLogoHighRes.paa | Bin 0 -> 101505 bytes .../missions/MedicTraining.VR/description.ext | 6 +- .../{init.sqf => initPlayerLocal.sqf} | 88 ++++++------------ .../missions/MedicTraining.VR/initServer.sqf | 4 + 10 files changed, 88 insertions(+), 64 deletions(-) create mode 100644 addons/training/CfgEventHandlers.hpp create mode 100644 addons/training/XEH_PREP.hpp create mode 100644 addons/training/XEH_preInit.sqf create mode 100644 addons/training/functions/fnc_createPatient.sqf create mode 100644 addons/training/missions/MedicTraining.VR/KAMLogoHighRes.paa rename addons/training/missions/MedicTraining.VR/{init.sqf => initPlayerLocal.sqf} (71%) create mode 100644 addons/training/missions/MedicTraining.VR/initServer.sqf diff --git a/addons/training/CfgEventHandlers.hpp b/addons/training/CfgEventHandlers.hpp new file mode 100644 index 000000000..888febd76 --- /dev/null +++ b/addons/training/CfgEventHandlers.hpp @@ -0,0 +1,6 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + disableModuload = "true"; + }; +}; diff --git a/addons/training/RscDisplayMain.hpp b/addons/training/RscDisplayMain.hpp index 14ddf4dc2..c541ed2bb 100644 --- a/addons/training/RscDisplayMain.hpp +++ b/addons/training/RscDisplayMain.hpp @@ -35,4 +35,4 @@ class RscDisplayMain: RscStandardDisplay { }; }; }; -}; \ No newline at end of file +}; diff --git a/addons/training/XEH_PREP.hpp b/addons/training/XEH_PREP.hpp new file mode 100644 index 000000000..4cd027ef3 --- /dev/null +++ b/addons/training/XEH_PREP.hpp @@ -0,0 +1 @@ +PREP(createPatient); diff --git a/addons/training/XEH_preInit.sqf b/addons/training/XEH_preInit.sqf new file mode 100644 index 000000000..b47cf6628 --- /dev/null +++ b/addons/training/XEH_preInit.sqf @@ -0,0 +1,9 @@ +#include "script_component.hpp" + +ADDON = false; + +PREP_RECOMPILE_START; +#include "XEH_PREP.hpp" +PREP_RECOMPILE_END; + +ADDON = true; diff --git a/addons/training/config.cpp b/addons/training/config.cpp index 1b7969181..7d493012d 100644 --- a/addons/training/config.cpp +++ b/addons/training/config.cpp @@ -30,4 +30,5 @@ class CfgPatches { }; }; +#include "CfgEventHandlers.hpp" #include "RscDisplayMain.hpp" diff --git a/addons/training/functions/fnc_createPatient.sqf b/addons/training/functions/fnc_createPatient.sqf new file mode 100644 index 000000000..da44b3b71 --- /dev/null +++ b/addons/training/functions/fnc_createPatient.sqf @@ -0,0 +1,35 @@ +#include "..\script_component.hpp" +/* + * Author: kolmipilot + * mission patient handiling + * + * Arguments: + * 0: Mode (damaged = 1, not = 0) + * + * Return Value: + * Can use NPWT + * + * Example: + * [1] call kat_training_fnc_createPatient + * + * Public: No + */ + +params ["_mode"]; +private _pos = getPos hspawn; +private _group = createGroup [civilian, true]; +private _patient = _group createUnit ["B_Soldier_F", _pos, [], 0, "NONE"]; + +_patient disableAI "MOVE"; +_patient disableAI "FSM"; +missionNamespace setVariable ["kat_training_lastPatient", _patient, true]; +spawned = true; +publicVariable "spawned"; +if (_mode == 1) then { + [_patient, true] call ace_medical_fnc_setUnconscious; + private _selections = ["body", "head", "hand_r", "hand_l", "leg_r", "leg_l"]; + for "_i" from 1 to 4 do { + private _sel = selectRandom _selections; + [_patient, 0.8, _sel, "bullet"] call ace_medical_fnc_addDamageToUnit; + }; +}; diff --git a/addons/training/missions/MedicTraining.VR/KAMLogoHighRes.paa b/addons/training/missions/MedicTraining.VR/KAMLogoHighRes.paa new file mode 100644 index 0000000000000000000000000000000000000000..817e1d53b4c3bf0449d56f8b305b23f6495e51a9 GIT binary patch literal 101505 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μrhvet-f2K|VRgfXw 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 OX70*AxZU4$>i+nD literal 0 HcmV?d00001 diff --git a/addons/training/missions/MedicTraining.VR/description.ext b/addons/training/missions/MedicTraining.VR/description.ext index df09a847f..e81b0a62a 100644 --- a/addons/training/missions/MedicTraining.VR/description.ext +++ b/addons/training/missions/MedicTraining.VR/description.ext @@ -1,7 +1,7 @@ briefing = 0; author = "kolmipilot"; onLoadName = "KAM medical training"; -onLoadMission = "KAT - advanced medical training mission by kolmipilot"; +onLoadMission = "KAT - Advanced Medical Training Mission the KAM Team"; debriefing = 0; - -overviewText = "KAT - advanced medical training mission by kolmipilot"; \ No newline at end of file +loadScreen = "KAMLogoHighRes.paa"; +overviewText = "KAT - Advanced Medical Training Mission by kolmipilot"; diff --git a/addons/training/missions/MedicTraining.VR/init.sqf b/addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf similarity index 71% rename from addons/training/missions/MedicTraining.VR/init.sqf rename to addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf index 54fc97a68..4d76ee0d8 100644 --- a/addons/training/missions/MedicTraining.VR/init.sqf +++ b/addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf @@ -1,53 +1,22 @@ -// 1. SERVER-SIDE (Spawn logic and management) -if (isServer) then { - spawned = false; - publicVariable "spawned"; - - // Store function globally so remoteExec can find it - missionNamespace setVariable ["MYMOD_fnc_createPatient", compileFinal " - params [""_mode""]; - private _pos = getPos hspawn; - private _group = createGroup [civilian, true]; - private _patient = _group createUnit [""B_Soldier_F"", _pos, [], 0, ""NONE""]; - - _patient disableAI ""MOVE""; - _patient disableAI ""FSM""; - - missionNamespace setVariable [""MYMOD_lastPatient"", _patient, true]; - - spawned = true; - publicVariable ""spawned""; - - if (_mode == 1) then { - [_patient, true] call ace_medical_fnc_setUnconscious; - private _selections = [""body"", ""head"", ""hand_r"", ""hand_l"", ""leg_r"", ""leg_l""]; - for ""_i"" from 1 to 4 do { - private _sel = selectRandom _selections; - [_patient, 0.8, _sel, ""bullet""] call ace_medical_fnc_addDamageToUnit; - }; - }; - ", true]; - - // 2. PLAYER-SIDE (Laptop menu - executes for everyone who has the screen) - waitUntil { !isNull (missionNamespace getVariable ["laptop", objNull]) }; +waitUntil { !isNull (missionNamespace getVariable ["laptop", objNull]) }; laptop addAction ["[Patient] Spawn: Healthy", { params ["_target", "_caller"]; - [0] remoteExec ["MYMOD_fnc_createPatient", 2]; - [format ["%1 spawned healthy patient.", name _caller]] remoteExec ["systemChat", 0]; + [0] remoteExecCall ["kat_training_fnc_createPatient", 2]; + [format ["%1 spawned healthy patient.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "!spawned", 5]; laptop addAction ["[Patient] Spawn: Random Injuries", { params ["_target", "_caller"]; - [1] remoteExec ["MYMOD_fnc_createPatient", 2]; - [format ["%1 spawned an injured patient.", name _caller]] remoteExec ["systemChat", 0]; + [1] remoteExecCall ["kat_training_fnc_createPatient", 2]; + [format ["%1 spawned an injured patient.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "!spawned", 5]; laptop addAction ["[Cardiac] Asystole (No Pulse, No Shock)", { params ["_target", "_caller"]; - private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!alive _patient) exitWith { - [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + [format ["%1 - No living patient!", name _caller]] remoteExecCall ["systemChat", _caller]; }; if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { @@ -56,12 +25,12 @@ if (isServer) then { } else { [_patient, true] call ace_medical_fnc_setUnconscious; }; - [format ["%1 - Asystole applied.", name _caller]] remoteExec ["systemChat", 0]; + [format ["%1 - Asystole applied.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "spawned", 5]; laptop addAction ["[Cardiac] PEA (Fake Pulse, No Shock)", { params ["_target", "_caller"]; - private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!alive _patient) exitWith { [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; }; @@ -77,7 +46,7 @@ if (isServer) then { laptop addAction ["[Cardiac] V-Fib (Fast Pulse, Shockable)", { params ["_target", "_caller"]; - private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!alive _patient) exitWith { [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; }; @@ -88,14 +57,14 @@ if (isServer) then { } else { [_patient, true] call ace_medical_fnc_setUnconscious; }; - [format ["%1 - V-Fib applied.", name _caller]] remoteExec ["systemChat", 0]; + [format ["%1 - V-Fib applied.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "spawned", 5]; laptop addAction ["[Cardiac] V-Tach (Fast Pulse, Shockable)", { params ["_target", "_caller"]; - private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!alive _patient) exitWith { - [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + [format ["%1 - No living patient!", name _caller]] remoteExecCall ["systemChat", _caller]; }; if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { @@ -104,14 +73,14 @@ if (isServer) then { } else { [_patient, true] call ace_medical_fnc_setUnconscious; }; - [format ["%1 - V-Tach applied.", name _caller]] remoteExec ["systemChat", 0]; + [format ["%1 - V-Tach applied.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "spawned", 5]; laptop addAction ["[Breathing] Tension Pneumothorax", { params ["_target", "_caller"]; - private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!alive _patient) exitWith { - [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + [format ["%1 - No living patient!", name _caller]] remoteExecCall ["systemChat", _caller]; }; if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { @@ -121,14 +90,14 @@ if (isServer) then { } else { [_patient, 0.8, "body", "wound"] call ace_medical_fnc_addDamageToUnit; }; - [format ["%1 added Tension Pneumothorax.", name _caller]] remoteExec ["systemChat", 0]; + [format ["%1 added Tension Pneumothorax.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "spawned", 5]; laptop addAction ["[Breathing] Hemopneumothorax", { params ["_target", "_caller"]; - private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!alive _patient) exitWith { - [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + [format ["%1 - No living patient!", name _caller]] remoteExecCall ["systemChat", _caller]; }; if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { @@ -138,14 +107,14 @@ if (isServer) then { } else { [_patient, 0.8, "body", "wound"] call ace_medical_fnc_addDamageToUnit; }; - [format ["%1 added Hemopneumothorax.", name _caller]] remoteExec ["systemChat", 0]; + [format ["%1 added Hemopneumothorax.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "spawned", 5]; laptop addAction ["[Cardiac] Tamponade", { params ["_target", "_caller"]; - private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!alive _patient) exitWith { - [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + [format ["%1 - No living patient!", name _caller]] remoteExecCall ["systemChat", _caller]; }; if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { @@ -153,14 +122,14 @@ if (isServer) then { } else { [_patient, true] call ace_medical_fnc_setUnconscious; }; - [format ["%1 added Cardiac Tamponade.", name _caller]] remoteExec ["systemChat", 0]; + [format ["%1 added Cardiac Tamponade.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "spawned", 5]; laptop addAction ["[Patient] Add: Random Damage", { params ["_target", "_caller"]; - private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!alive _patient) exitWith { - [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + [format ["%1 - No living patient!", name _caller]] remoteExecCall ["systemChat", _caller]; }; private _selections = ["body", "head", "hand_r", "hand_l", "leg_r", "leg_l"]; @@ -172,18 +141,17 @@ if (isServer) then { private _type = selectRandom _damageTypes; [_patient, _dmg, _sel, _type] call ace_medical_fnc_addDamageToUnit; }; - [format ["%1 added %2 random injuries.", name _caller, _count]] remoteExec ["systemChat", 0]; + [format ["%1 added %2 random injuries.", name _caller, _count]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "spawned", 5]; laptop addAction ["[Patient] Delete patient", { params ["_target", "_caller"]; - private _patient = missionNamespace getVariable ["MYMOD_lastPatient", objNull]; + private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!isNull _patient) then { deleteVehicle _patient; }; spawned = false; publicVariable "spawned"; - [format ["%1 deleted the patient.", name _caller]] remoteExec ["systemChat", 0]; + [format ["%1 deleted the patient.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "spawned", 5]; -}; \ No newline at end of file diff --git a/addons/training/missions/MedicTraining.VR/initServer.sqf b/addons/training/missions/MedicTraining.VR/initServer.sqf new file mode 100644 index 000000000..ac0f324cc --- /dev/null +++ b/addons/training/missions/MedicTraining.VR/initServer.sqf @@ -0,0 +1,4 @@ +if (isServer) then { + spawned = false; + publicVariable "spawned"; +}; From cae3186a20d7575049a3a3d1a9edc2cd4e6c6060 Mon Sep 17 00:00:00 2001 From: kolmipilot <92938734+kolmipilot@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:49:41 +0200 Subject: [PATCH 3/4] moved functions into mission --- addons/training/CfgEventHandlers.hpp | 6 ------ addons/training/XEH_PREP.hpp | 1 - addons/training/XEH_preInit.sqf | 9 --------- addons/training/config.cpp | 1 - .../MedicTraining.VR/CfgEventHandlers.hpp | 12 ++++++++++++ .../MedicTraining.VR/XEH_postInit.sqf | 4 ++++ .../missions/MedicTraining.VR/XEH_preInit.sqf | 5 +++++ .../missions/MedicTraining.VR/description.ext | 8 +++++++- .../MedicTraining.VR}/fnc_createPatient.sqf | 2 +- .../MedicTraining.VR/initPlayerLocal.sqf | 12 +++++++----- .../missions/MedicTraining.VR/mission.sqm | Bin 47636 -> 90100 bytes .../MedicTraining.VR/script_component.hpp | 4 ++++ 12 files changed, 40 insertions(+), 24 deletions(-) delete mode 100644 addons/training/CfgEventHandlers.hpp delete mode 100644 addons/training/XEH_PREP.hpp delete mode 100644 addons/training/XEH_preInit.sqf create mode 100644 addons/training/missions/MedicTraining.VR/CfgEventHandlers.hpp create mode 100644 addons/training/missions/MedicTraining.VR/XEH_postInit.sqf create mode 100644 addons/training/missions/MedicTraining.VR/XEH_preInit.sqf rename addons/training/{functions => missions/MedicTraining.VR}/fnc_createPatient.sqf (96%) create mode 100644 addons/training/missions/MedicTraining.VR/script_component.hpp diff --git a/addons/training/CfgEventHandlers.hpp b/addons/training/CfgEventHandlers.hpp deleted file mode 100644 index 888febd76..000000000 --- a/addons/training/CfgEventHandlers.hpp +++ /dev/null @@ -1,6 +0,0 @@ -class Extended_PreInit_EventHandlers { - class ADDON { - init = QUOTE(call COMPILE_FILE(XEH_preInit)); - disableModuload = "true"; - }; -}; diff --git a/addons/training/XEH_PREP.hpp b/addons/training/XEH_PREP.hpp deleted file mode 100644 index 4cd027ef3..000000000 --- a/addons/training/XEH_PREP.hpp +++ /dev/null @@ -1 +0,0 @@ -PREP(createPatient); diff --git a/addons/training/XEH_preInit.sqf b/addons/training/XEH_preInit.sqf deleted file mode 100644 index b47cf6628..000000000 --- a/addons/training/XEH_preInit.sqf +++ /dev/null @@ -1,9 +0,0 @@ -#include "script_component.hpp" - -ADDON = false; - -PREP_RECOMPILE_START; -#include "XEH_PREP.hpp" -PREP_RECOMPILE_END; - -ADDON = true; diff --git a/addons/training/config.cpp b/addons/training/config.cpp index 7d493012d..1b7969181 100644 --- a/addons/training/config.cpp +++ b/addons/training/config.cpp @@ -30,5 +30,4 @@ class CfgPatches { }; }; -#include "CfgEventHandlers.hpp" #include "RscDisplayMain.hpp" diff --git a/addons/training/missions/MedicTraining.VR/CfgEventHandlers.hpp b/addons/training/missions/MedicTraining.VR/CfgEventHandlers.hpp new file mode 100644 index 000000000..6e90665ff --- /dev/null +++ b/addons/training/missions/MedicTraining.VR/CfgEventHandlers.hpp @@ -0,0 +1,12 @@ +// These files are from the VR mission, not the base addon folder +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call compile preprocessFileLineNumbers 'XEH_preInit.sqf'); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call compile preprocessFileLineNumbers 'XEH_postInit.sqf'); + }; +}; diff --git a/addons/training/missions/MedicTraining.VR/XEH_postInit.sqf b/addons/training/missions/MedicTraining.VR/XEH_postInit.sqf new file mode 100644 index 000000000..7eee32657 --- /dev/null +++ b/addons/training/missions/MedicTraining.VR/XEH_postInit.sqf @@ -0,0 +1,4 @@ +#include "script_component.hpp" + +enableSaving [false, false]; +cba_diagnostic_projectileMaxLines = 10; diff --git a/addons/training/missions/MedicTraining.VR/XEH_preInit.sqf b/addons/training/missions/MedicTraining.VR/XEH_preInit.sqf new file mode 100644 index 000000000..91b639aa7 --- /dev/null +++ b/addons/training/missions/MedicTraining.VR/XEH_preInit.sqf @@ -0,0 +1,5 @@ +#include "script_component.hpp" + +INFO("Loading VR Mission"); + +PREP(createPatient); diff --git a/addons/training/missions/MedicTraining.VR/description.ext b/addons/training/missions/MedicTraining.VR/description.ext index e81b0a62a..031de22a9 100644 --- a/addons/training/missions/MedicTraining.VR/description.ext +++ b/addons/training/missions/MedicTraining.VR/description.ext @@ -1,7 +1,13 @@ +#include "script_component.hpp" + briefing = 0; -author = "kolmipilot"; +dev = "kolmipilot"; +author = "KAM Team"; onLoadName = "KAM medical training"; onLoadMission = "KAT - Advanced Medical Training Mission the KAM Team"; debriefing = 0; loadScreen = "KAMLogoHighRes.paa"; overviewText = "KAT - Advanced Medical Training Mission by kolmipilot"; +enableDebugConsoleSP = 1; + +#include "CfgEventHandlers.hpp" diff --git a/addons/training/functions/fnc_createPatient.sqf b/addons/training/missions/MedicTraining.VR/fnc_createPatient.sqf similarity index 96% rename from addons/training/functions/fnc_createPatient.sqf rename to addons/training/missions/MedicTraining.VR/fnc_createPatient.sqf index da44b3b71..c56da2096 100644 --- a/addons/training/functions/fnc_createPatient.sqf +++ b/addons/training/missions/MedicTraining.VR/fnc_createPatient.sqf @@ -1,4 +1,4 @@ -#include "..\script_component.hpp" +#include "script_component.hpp" /* * Author: kolmipilot * mission patient handiling diff --git a/addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf b/addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf index 4d76ee0d8..0d6baa7ca 100644 --- a/addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf +++ b/addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf @@ -1,14 +1,15 @@ -waitUntil { !isNull (missionNamespace getVariable ["laptop", objNull]) }; +#include "script_component.hpp" +[{!isNull (missionNamespace getVariable ["laptop", objNull])}, { laptop addAction ["[Patient] Spawn: Healthy", { params ["_target", "_caller"]; - [0] remoteExecCall ["kat_training_fnc_createPatient", 2]; + [0] call FUNC(createPatient); [format ["%1 spawned healthy patient.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "!spawned", 5]; laptop addAction ["[Patient] Spawn: Random Injuries", { params ["_target", "_caller"]; - [1] remoteExecCall ["kat_training_fnc_createPatient", 2]; + [1] call FUNC(createPatient); [format ["%1 spawned an injured patient.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "!spawned", 5]; @@ -41,14 +42,14 @@ waitUntil { !isNull (missionNamespace getVariable ["laptop", objNull]) }; } else { [_patient, true] call ace_medical_fnc_setUnconscious; }; - [format ["%1 - PEA applied.", name _caller]] remoteExec ["systemChat", 0]; + [format ["%1 - PEA applied.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "spawned", 5]; laptop addAction ["[Cardiac] V-Fib (Fast Pulse, Shockable)", { params ["_target", "_caller"]; private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!alive _patient) exitWith { - [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + [format ["%1 - No living patient!", name _caller]] remoteExecCall ["systemChat", _caller]; }; if (isClass (configFile >> "CfgPatches" >> "kat_main")) then { @@ -155,3 +156,4 @@ waitUntil { !isNull (missionNamespace getVariable ["laptop", objNull]) }; publicVariable "spawned"; [format ["%1 deleted the patient.", name _caller]] remoteExecCall ["systemChat", 0]; }, nil, 1.5, true, true, "", "spawned", 5]; +}] call CBA_fnc_waitUntilAndExecute; diff --git a/addons/training/missions/MedicTraining.VR/mission.sqm b/addons/training/missions/MedicTraining.VR/mission.sqm index 748935dd861560e0c324e25eb29439e684b981bd..ed838a9afdc5661d3880eb770921b78026024457 100644 GIT binary patch literal 90100 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 diff --git a/addons/training/missions/MedicTraining.VR/script_component.hpp b/addons/training/missions/MedicTraining.VR/script_component.hpp new file mode 100644 index 000000000..da2498217 --- /dev/null +++ b/addons/training/missions/MedicTraining.VR/script_component.hpp @@ -0,0 +1,4 @@ +#include "..\..\script_component.hpp" + +#undef PREP // make.py can't redefine already defined macros +#define PREP(var) FUNC(var) = compileFinal preprocessFileLineNumbers format ["fnc_%1.sqf", QUOTE(var)] From 8856ece8f87333f5454ae6efe987819b5ddb007c Mon Sep 17 00:00:00 2001 From: kolmipilot <92938734+kolmipilot@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:51:00 +0200 Subject: [PATCH 4/4] fixed one remoteExec hint --- addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf b/addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf index 0d6baa7ca..6436c23cc 100644 --- a/addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf +++ b/addons/training/missions/MedicTraining.VR/initPlayerLocal.sqf @@ -33,7 +33,7 @@ params ["_target", "_caller"]; private _patient = missionNamespace getVariable ["kat_training_lastPatient", objNull]; if (!alive _patient) exitWith { - [format ["%1 - No living patient!", name _caller]] remoteExec ["systemChat", _caller]; + [format ["%1 - No living patient!", name _caller]] remoteExecCall ["systemChat", _caller]; }; if (isClass (configFile >> "CfgPatches" >> "kat_main")) then {