From 604b7e24327ae42fa98681c9ee585b59bf415f5e Mon Sep 17 00:00:00 2001 From: some-evil-kitty <106408180+some-evil-kitty@users.noreply.github.com> Date: Sat, 14 Oct 2023 14:07:00 -0400 Subject: [PATCH 1/8] Replace kill manager with cba server event --- .../functions/fn_createManagedUnit.sqf | 7 +++- .../functions/fn_handlePlacedZeusObject.sqf | 12 +++++- .../functions/fn_spawnVehicle.sqf | 12 +++++- Missionframework/init.sqf | 9 +++++ .../scripts/client/build/do_build.sqf | 12 +++++- .../scripts/server/battlegroup/spawn_air.sqf | 12 +++++- .../scripts/server/game/save_manager.sqf | 6 ++- .../server/patrols/send_paratroopers.sqf | 12 +++++- .../scripts/shared/kill_manager.sqf | 39 ++++++++----------- 9 files changed, 86 insertions(+), 35 deletions(-) diff --git a/Missionframework/functions/fn_createManagedUnit.sqf b/Missionframework/functions/fn_createManagedUnit.sqf index 0ccefdb97..cf9464e5a 100644 --- a/Missionframework/functions/fn_createManagedUnit.sqf +++ b/Missionframework/functions/fn_createManagedUnit.sqf @@ -34,7 +34,12 @@ isNil { private _groupTemp = createGroup [CIVILIAN, true]; _unit = _groupTemp createUnit [_type, _spawnPos, [], _placement, "FORM"]; - _unit addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + _unit addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; + _unit setRank _rank; // Join to target group to preserve Side diff --git a/Missionframework/functions/fn_handlePlacedZeusObject.sqf b/Missionframework/functions/fn_handlePlacedZeusObject.sqf index 476e8e0d4..5417219c1 100644 --- a/Missionframework/functions/fn_handlePlacedZeusObject.sqf +++ b/Missionframework/functions/fn_handlePlacedZeusObject.sqf @@ -32,14 +32,22 @@ if (_vehicle) then { // Add kill manager and object init to possible crew units { - _x addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + _x addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; [_x] call KPLIB_fnc_addObjectInit; } forEach (crew _obj); }; // Apply kill manager, if it's not a crate if !(_crate) then { - _obj addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + _obj addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; } else { // Otherwise apply all needed values/functionalities _obj setMass 500; diff --git a/Missionframework/functions/fn_spawnVehicle.sqf b/Missionframework/functions/fn_spawnVehicle.sqf index e572ebfd1..c448299eb 100644 --- a/Missionframework/functions/fn_spawnVehicle.sqf +++ b/Missionframework/functions/fn_spawnVehicle.sqf @@ -84,11 +84,19 @@ if (_classname in KPLIB_o_militiaVehicles) then { private _crew = units (createVehicleCrew _newvehicle); _crew joinSilent _grp; sleep 0.1; - {_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach _crew; + {_x addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }];} forEach _crew; }; // Add MPKilled and GetIn EHs and enable damage again -_newvehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; +_newvehicle addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; sleep 0.1; _newvehicle allowDamage true; _newvehicle setDamage 0; diff --git a/Missionframework/init.sqf b/Missionframework/init.sqf index 11c65b5ba..b45b1971e 100644 --- a/Missionframework/init.sqf +++ b/Missionframework/init.sqf @@ -60,6 +60,15 @@ if ((isNil {player getVariable "bis_revive_ehHandleHeal"} || isDedicated) && !(b [] call bis_fnc_reviveInit; }; +["KPLib_manageKills", +{ + params ["_unit","_killer"]; + [_unit,_killer] call kill_manager; +} +] call CBA_fnc_addEventHandler; + + + KPLIB_init = true; // Notify clients that server is ready diff --git a/Missionframework/scripts/client/build/do_build.sqf b/Missionframework/scripts/client/build/do_build.sqf index 300744057..00ae7a6e6 100644 --- a/Missionframework/scripts/client/build/do_build.sqf +++ b/Missionframework/scripts/client/build/do_build.sqf @@ -332,8 +332,16 @@ while { true } do { _vehicle setDamage 0; if(buildtype != 6) then { - _vehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; - { _x addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; } foreach (crew _vehicle); + _vehicle addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; + { _x addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; } foreach (crew _vehicle); }; }; diff --git a/Missionframework/scripts/server/battlegroup/spawn_air.sqf b/Missionframework/scripts/server/battlegroup/spawn_air.sqf index d12ccc4a6..d6504b050 100644 --- a/Missionframework/scripts/server/battlegroup/spawn_air.sqf +++ b/Missionframework/scripts/server/battlegroup/spawn_air.sqf @@ -18,9 +18,17 @@ for "_i" from 1 to _planes_number do { _plane = createVehicle [_class, _spawnPos, [], 0, "FLY"]; createVehicleCrew _plane; _plane flyInHeight (120 + (random 180)); - _plane addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + _plane addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; [_plane] call KPLIB_fnc_addObjectInit; - {_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach (crew _plane); + {_x addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }];} forEach (crew _plane); (crew _plane) joinSilent _grp; sleep 1; }; diff --git a/Missionframework/scripts/server/game/save_manager.sqf b/Missionframework/scripts/server/game/save_manager.sqf index b47059338..d3e14814f 100644 --- a/Missionframework/scripts/server/game/save_manager.sqf +++ b/Missionframework/scripts/server/game/save_manager.sqf @@ -356,7 +356,11 @@ if (!isNil "_saveData") then { // Apply kill manager handling, if not excluded if !((toLower _class) in _noKillHandler) then { - _object addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; + _object addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; }; // Set enemy vehicle as captured diff --git a/Missionframework/scripts/server/patrols/send_paratroopers.sqf b/Missionframework/scripts/server/patrols/send_paratroopers.sqf index eb898075c..98ccfdc39 100644 --- a/Missionframework/scripts/server/patrols/send_paratroopers.sqf +++ b/Missionframework/scripts/server/patrols/send_paratroopers.sqf @@ -26,8 +26,16 @@ if (isNull _chopper_type) then { _pilot_group = createGroup [KPLIB_side_enemy, true]; (crew _newvehicle) joinSilent _pilot_group; - _newvehicle addMPEventHandler ["MPKilled", {_this spawn kill_manager}]; - {_x addMPEventHandler ["MPKilled", {_this spawn kill_manager}];} forEach (crew _newvehicle); + _newvehicle addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; + {_x addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }];} forEach (crew _newvehicle); } else { _newvehicle = _chopper_type; _pilot_group = group _newvehicle; diff --git a/Missionframework/scripts/shared/kill_manager.sqf b/Missionframework/scripts/shared/kill_manager.sqf index 5c9c39fe6..7e5bf9381 100644 --- a/Missionframework/scripts/shared/kill_manager.sqf +++ b/Missionframework/scripts/shared/kill_manager.sqf @@ -1,24 +1,9 @@ params ["_unit", "_killer"]; -if (isServer) then { + if (KPLIB_kill_debug > 0) then {[format ["Kill Manager executed - _unit: %1 (%2) - _killer: %3 (%4)", typeOf _unit, _unit, typeOf _killer, _killer], "KILL"] call KPLIB_fnc_log;}; - // Get Killer, when ACE enabled, via lastDamageSource - if (KPLIB_ace) then { - if (local _unit) then { - _killer = _unit getVariable ["ace_medical_lastDamageSource", _killer]; - if (KPLIB_kill_debug > 0) then {["_unit is local to server", "KILL"] call KPLIB_fnc_log;}; - } else { - if (KPLIB_kill_debug > 0) then {["_unit is not local to server", "KILL"] call KPLIB_fnc_log;}; - if (isNil "KPLIB_ace_killer") then {KPLIB_ace_killer = objNull;}; - waitUntil {sleep 0.5; !(isNull KPLIB_ace_killer)}; - if (KPLIB_kill_debug > 0) then {["KPLIB_ace_killer received on server", "KILL"] call KPLIB_fnc_log;}; - _killer = KPLIB_ace_killer; - KPLIB_ace_killer = objNull; - publicVariable "KPLIB_ace_killer"; - }; - }; // Failsafe if something gets killed before the save manager is finished if (isNil "infantry_weight") then {infantry_weight = 33}; @@ -158,11 +143,19 @@ if (isServer) then { }; }; }; -} else { - // Get Killer and send it to server, when ACE enabled, via lastDamageSource - if (KPLIB_ace && local _unit) then { - if (KPLIB_kill_debug > 0) then {[format ["_unit is local to: %1", debug_source], "KILL"] remoteExecCall ["KPLIB_fnc_log", 2];}; - KPLIB_ace_killer = _unit getVariable ["ace_medical_lastDamageSource", _killer]; - publicVariable "KPLIB_ace_killer"; + + // Body/wreck cleanup + + if (!isplayer _unit) then { + [{ + params ["_unit"]; + hideBody _unit; + [{ + params ["_unit"]; + deleteVehicle _unit; + }, [_unit], 10] call CBA_fnc_waitAndExecute; + + + }, [_unit], GRLIB_cleanup_delay] call CBA_fnc_waitAndExecute; }; -}; + From d90dd1874d07ac9973038d927c3f994171b6e4ba Mon Sep 17 00:00:00 2001 From: some-evil-kitty <106408180+some-evil-kitty@users.noreply.github.com> Date: Sat, 14 Oct 2023 17:25:49 -0400 Subject: [PATCH 2/8] fix formatting --- Missionframework/functions/fn_createManagedUnit.sqf | 3 +-- Missionframework/functions/fn_handlePlacedZeusObject.sqf | 8 ++++---- Missionframework/functions/fn_spawnVehicle.sqf | 8 ++++---- Missionframework/scripts/client/build/do_build.sqf | 8 ++++---- Missionframework/scripts/server/battlegroup/spawn_air.sqf | 8 ++++---- Missionframework/scripts/server/game/save_manager.sqf | 4 ++-- .../scripts/server/patrols/send_paratroopers.sqf | 8 ++++---- 7 files changed, 23 insertions(+), 24 deletions(-) diff --git a/Missionframework/functions/fn_createManagedUnit.sqf b/Missionframework/functions/fn_createManagedUnit.sqf index cf9464e5a..2ac602127 100644 --- a/Missionframework/functions/fn_createManagedUnit.sqf +++ b/Missionframework/functions/fn_createManagedUnit.sqf @@ -35,8 +35,7 @@ isNil { _unit = _groupTemp createUnit [_type, _spawnPos, [], _placement, "FORM"]; _unit addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }]; diff --git a/Missionframework/functions/fn_handlePlacedZeusObject.sqf b/Missionframework/functions/fn_handlePlacedZeusObject.sqf index 5417219c1..cf7156780 100644 --- a/Missionframework/functions/fn_handlePlacedZeusObject.sqf +++ b/Missionframework/functions/fn_handlePlacedZeusObject.sqf @@ -33,8 +33,8 @@ if (_vehicle) then { // Add kill manager and object init to possible crew units { _x addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }]; [_x] call KPLIB_fnc_addObjectInit; @@ -44,8 +44,8 @@ if (_vehicle) then { // Apply kill manager, if it's not a crate if !(_crate) then { _obj addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }]; } else { diff --git a/Missionframework/functions/fn_spawnVehicle.sqf b/Missionframework/functions/fn_spawnVehicle.sqf index c448299eb..c2c60b410 100644 --- a/Missionframework/functions/fn_spawnVehicle.sqf +++ b/Missionframework/functions/fn_spawnVehicle.sqf @@ -85,16 +85,16 @@ if (_classname in KPLIB_o_militiaVehicles) then { _crew joinSilent _grp; sleep 0.1; {_x addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }];} forEach _crew; }; // Add MPKilled and GetIn EHs and enable damage again _newvehicle addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }]; sleep 0.1; diff --git a/Missionframework/scripts/client/build/do_build.sqf b/Missionframework/scripts/client/build/do_build.sqf index 00ae7a6e6..237936644 100644 --- a/Missionframework/scripts/client/build/do_build.sqf +++ b/Missionframework/scripts/client/build/do_build.sqf @@ -333,13 +333,13 @@ while { true } do { if(buildtype != 6) then { _vehicle addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }]; { _x addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }]; } foreach (crew _vehicle); }; diff --git a/Missionframework/scripts/server/battlegroup/spawn_air.sqf b/Missionframework/scripts/server/battlegroup/spawn_air.sqf index d6504b050..96f550783 100644 --- a/Missionframework/scripts/server/battlegroup/spawn_air.sqf +++ b/Missionframework/scripts/server/battlegroup/spawn_air.sqf @@ -19,14 +19,14 @@ for "_i" from 1 to _planes_number do { createVehicleCrew _plane; _plane flyInHeight (120 + (random 180)); _plane addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }]; [_plane] call KPLIB_fnc_addObjectInit; {_x addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }];} forEach (crew _plane); (crew _plane) joinSilent _grp; diff --git a/Missionframework/scripts/server/game/save_manager.sqf b/Missionframework/scripts/server/game/save_manager.sqf index d3e14814f..9cdaaa6d3 100644 --- a/Missionframework/scripts/server/game/save_manager.sqf +++ b/Missionframework/scripts/server/game/save_manager.sqf @@ -357,8 +357,8 @@ if (!isNil "_saveData") then { // Apply kill manager handling, if not excluded if !((toLower _class) in _noKillHandler) then { _object addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }]; }; diff --git a/Missionframework/scripts/server/patrols/send_paratroopers.sqf b/Missionframework/scripts/server/patrols/send_paratroopers.sqf index 98ccfdc39..87654bd35 100644 --- a/Missionframework/scripts/server/patrols/send_paratroopers.sqf +++ b/Missionframework/scripts/server/patrols/send_paratroopers.sqf @@ -27,13 +27,13 @@ if (isNull _chopper_type) then { (crew _newvehicle) joinSilent _pilot_group; _newvehicle addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }]; {_x addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }];} forEach (crew _newvehicle); } else { From 14e91b3d66394d8b2cdc91b8ade0ccff3d82023a Mon Sep 17 00:00:00 2001 From: some-evil-kitty <106408180+some-evil-kitty@users.noreply.github.com> Date: Sat, 14 Oct 2023 17:34:17 -0400 Subject: [PATCH 3/8] change logic of cleanup --- Missionframework/scripts/shared/kill_manager.sqf | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/Missionframework/scripts/shared/kill_manager.sqf b/Missionframework/scripts/shared/kill_manager.sqf index 7e5bf9381..12eeccf7a 100644 --- a/Missionframework/scripts/shared/kill_manager.sqf +++ b/Missionframework/scripts/shared/kill_manager.sqf @@ -144,18 +144,14 @@ params ["_unit", "_killer"]; }; }; - // Body/wreck cleanup + // Body/wreck cleanup - if (!isplayer _unit) then { - [{ - params ["_unit"]; - hideBody _unit; + if (!isPlayer _unit) then { [{ params ["_unit"]; + if (_unit isKindOf "CAManBase") exitwith { + hideBody _unit; + } deleteVehicle _unit; - }, [_unit], 10] call CBA_fnc_waitAndExecute; - - - }, [_unit], GRLIB_cleanup_delay] call CBA_fnc_waitAndExecute; + }, [_unit], GRLIB_cleanup_delay] call CBA_fnc_waitAndExecute; }; - From 92ba009d4b89d913e25c2cc592f0d3fb5d297601 Mon Sep 17 00:00:00 2001 From: some-evil-kitty <106408180+some-evil-kitty@users.noreply.github.com> Date: Fri, 20 Oct 2023 19:17:38 -0400 Subject: [PATCH 4/8] fix missing ; and missing param Default corpse and wreck cleanup 20 minutes --- Missionframework/KPLIB_config.sqf | 3 +++ Missionframework/scripts/shared/kill_manager.sqf | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Missionframework/KPLIB_config.sqf b/Missionframework/KPLIB_config.sqf index 50a0ea766..009636e26 100644 --- a/Missionframework/KPLIB_config.sqf +++ b/Missionframework/KPLIB_config.sqf @@ -360,3 +360,6 @@ KPLIB_surrender_chance = 80; KPLIB_battlegroup_clearance = [ "song_bin_tanh" ]; + +// Delay after death for wrecks and corpses to be deleted +KPLIB_cleanup_delay = 1200; diff --git a/Missionframework/scripts/shared/kill_manager.sqf b/Missionframework/scripts/shared/kill_manager.sqf index 12eeccf7a..e580212cb 100644 --- a/Missionframework/scripts/shared/kill_manager.sqf +++ b/Missionframework/scripts/shared/kill_manager.sqf @@ -151,7 +151,7 @@ params ["_unit", "_killer"]; params ["_unit"]; if (_unit isKindOf "CAManBase") exitwith { hideBody _unit; - } + }; deleteVehicle _unit; - }, [_unit], GRLIB_cleanup_delay] call CBA_fnc_waitAndExecute; + }, [_unit], KPLIB_cleanup_delay] call CBA_fnc_waitAndExecute; }; From d09f767eb65dcf54a784a51481ddc5bfe83c7e32 Mon Sep 17 00:00:00 2001 From: some-evil-kitty <106408180+some-evil-kitty@users.noreply.github.com> Date: Mon, 23 Oct 2023 20:37:38 -0400 Subject: [PATCH 5/8] caught more MPKilled's, killed them also updated docs --- Missionframework/functions/fn_spawnVehicle.sqf | 2 +- Missionframework/init.sqf | 8 -------- Missionframework/scripts/client/build/do_build.sqf | 6 +++--- Missionframework/scripts/client/init_client.sqf | 5 ++++- Missionframework/scripts/server/init_server.sqf | 9 +++++++++ .../server/patrols/manage_one_civilian_patrol.sqf | 2 +- .../scripts/server/secondary/search_and_rescue.sqf | 2 +- 7 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Missionframework/functions/fn_spawnVehicle.sqf b/Missionframework/functions/fn_spawnVehicle.sqf index c2c60b410..b192da43a 100644 --- a/Missionframework/functions/fn_spawnVehicle.sqf +++ b/Missionframework/functions/fn_spawnVehicle.sqf @@ -91,7 +91,7 @@ if (_classname in KPLIB_o_militiaVehicles) then { }];} forEach _crew; }; -// Add MPKilled and GetIn EHs and enable damage again +// Add Killed and GetIn EHs and enable damage again _newvehicle addEventHandler ["Killed", { params ["_unit", "_killer", "_instigator", "_useEffects"]; diff --git a/Missionframework/init.sqf b/Missionframework/init.sqf index b45b1971e..21a2da89b 100644 --- a/Missionframework/init.sqf +++ b/Missionframework/init.sqf @@ -60,14 +60,6 @@ if ((isNil {player getVariable "bis_revive_ehHandleHeal"} || isDedicated) && !(b [] call bis_fnc_reviveInit; }; -["KPLib_manageKills", -{ - params ["_unit","_killer"]; - [_unit,_killer] call kill_manager; -} -] call CBA_fnc_addEventHandler; - - KPLIB_init = true; diff --git a/Missionframework/scripts/client/build/do_build.sqf b/Missionframework/scripts/client/build/do_build.sqf index 237936644..003f611f0 100644 --- a/Missionframework/scripts/client/build/do_build.sqf +++ b/Missionframework/scripts/client/build/do_build.sqf @@ -51,7 +51,7 @@ while { true } do { if ( manned ) then { _grp = createGroup KPLIB_side_player; }; - _classname createUnit [_pos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]", 0.5, "private"]; + _classname createUnit [_pos, _grp,"this addEventHandler [""Killed"", {[""KPLIB_manageKills"", _this] call CBA_fnc_serverEvent;}]", 0.5, "private"]; build_confirmed = 0; } else { if ( buildtype == 8 ) then { @@ -64,9 +64,9 @@ while { true } do { if(_idx == 0) then { _unitrank = "sergeant"; }; if(_idx == 1) then { _unitrank = "corporal"; }; if (_classname isEqualTo KPLIB_b_squadPara) then { - _x createUnit [_pos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}]; removeBackpackGlobal this; this addBackpackGlobal ""B_parachute""", 0.5, _unitrank]; + _x createUnit [_pos, _grp,"this addEventHandler [""Killed"", {[""KPLIB_manageKills"", _this] call CBA_fnc_serverEvent;}]; removeBackpackGlobal this; this addBackpackGlobal ""B_parachute""", 0.5, _unitrank]; } else { - _x createUnit [_pos, _grp,"this addMPEventHandler [""MPKilled"", {_this spawn kill_manager}];", 0.5, _unitrank]; + _x createUnit [_pos, _grp,"this addEventHandler [""Killed"", {[""KPLIB_manageKills"", _this] call CBA_fnc_serverEvent;}];", 0.5, _unitrank]; }; _idx = _idx + 1; diff --git a/Missionframework/scripts/client/init_client.sqf b/Missionframework/scripts/client/init_client.sqf index adb30622f..1fc50a7aa 100644 --- a/Missionframework/scripts/client/init_client.sqf +++ b/Missionframework/scripts/client/init_client.sqf @@ -34,7 +34,10 @@ execVM "scripts\client\ui\ui_manager.sqf"; execVM "scripts\client\ui\tutorial_manager.sqf"; execVM "scripts\client\markers\update_production_sites.sqf"; -player addMPEventHandler ["MPKilled", {_this spawn kill_manager;}]; +player addEventHandler ["Killed", { + params ["_unit", "_killer", "_instigator", "_useEffects"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; player addEventHandler ["GetInMan", {[_this select 2] spawn kp_fuel_consumption;}]; player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehiclesSeized;}]; player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehicleCaptured;}]; diff --git a/Missionframework/scripts/server/init_server.sqf b/Missionframework/scripts/server/init_server.sqf index b4644d92d..da5ff35cf 100644 --- a/Missionframework/scripts/server/init_server.sqf +++ b/Missionframework/scripts/server/init_server.sqf @@ -116,6 +116,15 @@ execVM "scripts\server\asymmetric\init_module.sqf"; // Groupcheck for deletion when empty execVM "scripts\server\offloading\group_diag.sqf"; +// Server event(s) +["KPLib_manageKills", +{ + params ["_unit","_killer"]; + [_unit,_killer] call kill_manager; +} +] call CBA_fnc_addEventHandler; + + { if ((_x != player) && (_x distance (markerPos KPLIB_respawn_marker) < 200 )) then { deleteVehicle _x; diff --git a/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf b/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf index 414354d97..63448e7c7 100644 --- a/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf +++ b/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf @@ -42,7 +42,7 @@ while { KPLIB_endgame == 0 } do { [selectRandom KPLIB_c_units, _spawnpos, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; _civveh = (selectRandom KPLIB_c_vehicles) createVehicle _spawnpos; _civveh setpos _spawnpos; - _civveh addMPEventHandler ['MPKilled', {_this spawn kill_manager}]; + _civveh addEventHandler ["Killed", {["KPLIB_manageKills", _this] call CBA_fnc_serverEvent;}]; _civveh addEventHandler ["HandleDamage", { private [ "_damage" ]; if (( side (_this select 3) != KPLIB_side_player ) && ( side (_this select 3) != KPLIB_side_enemy )) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; ((units _grp) select 0) moveInDriver _civveh; ((units _grp) select 0) disableAI "FSM"; diff --git a/Missionframework/scripts/server/secondary/search_and_rescue.sqf b/Missionframework/scripts/server/secondary/search_and_rescue.sqf index 9964d31ac..9e072be1a 100644 --- a/Missionframework/scripts/server/secondary/search_and_rescue.sqf +++ b/Missionframework/scripts/server/secondary/search_and_rescue.sqf @@ -76,7 +76,7 @@ if ( KPLIB_enemyReadiness < 50 ) then { private _vehtospawn = []; private _spawnchances = [75,50,15]; {if (random 100 < _x) then {_vehtospawn pushBack (selectRandom _vehicle_pool);};} foreach _spawnchances; -{([(getpos _helowreck) getPos [30 + (random 30), random 360], _x, true] call KPLIB_fnc_spawnVehicle) addMPEventHandler ['MPKilled', {_this spawn kill_manager}]; } foreach _vehtospawn; +{([(getpos _helowreck) getPos [30 + (random 30), random 360], _x, true] call KPLIB_fnc_spawnVehicle) addEventHandler ["Killed", {["KPLIB_manageKills", _this] call CBA_fnc_serverEvent;}]; } foreach _vehtospawn; secondary_objective_position = getpos _helowreck; secondary_objective_position_marker = secondary_objective_position getPos [800, random 360]; From d5babab087394302f521054021acdc916d1a98b8 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Sat, 28 Oct 2023 17:58:44 +0200 Subject: [PATCH 6/8] Code formatting, remove unused variables --- .../functions/fn_createManagedUnit.sqf | 5 ++-- .../functions/fn_handlePlacedZeusObject.sqf | 14 +++++------ .../functions/fn_spawnVehicle.sqf | 20 ++++++++-------- Missionframework/init.sqf | 1 - .../scripts/client/build/do_build.sqf | 23 ++++++++++--------- .../scripts/client/init_client.sqf | 6 ++--- .../scripts/server/battlegroup/spawn_air.sqf | 18 ++++++++------- .../scripts/server/game/save_manager.sqf | 7 +++--- .../scripts/server/init_server.sqf | 10 ++++---- .../patrols/manage_one_civilian_patrol.sqf | 5 +++- .../server/patrols/send_paratroopers.sqf | 11 +++++---- .../server/secondary/search_and_rescue.sqf | 8 ++++++- .../scripts/shared/kill_manager.sqf | 3 +-- 13 files changed, 68 insertions(+), 63 deletions(-) diff --git a/Missionframework/functions/fn_createManagedUnit.sqf b/Missionframework/functions/fn_createManagedUnit.sqf index 2ac602127..17f028780 100644 --- a/Missionframework/functions/fn_createManagedUnit.sqf +++ b/Missionframework/functions/fn_createManagedUnit.sqf @@ -2,7 +2,7 @@ File: fn_createManagedUnit.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-10-04 - Last Update: 2019-12-04 + Last Update: 2023-10-28 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -35,8 +35,7 @@ isNil { _unit = _groupTemp createUnit [_type, _spawnPos, [], _placement, "FORM"]; _unit addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; }]; _unit setRank _rank; diff --git a/Missionframework/functions/fn_handlePlacedZeusObject.sqf b/Missionframework/functions/fn_handlePlacedZeusObject.sqf index cf7156780..05d8fe437 100644 --- a/Missionframework/functions/fn_handlePlacedZeusObject.sqf +++ b/Missionframework/functions/fn_handlePlacedZeusObject.sqf @@ -2,7 +2,7 @@ File: fn_handlePlacedZeusObject.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-11 - Last Update: 2020-05-10 + Last Update: 2023-10-28 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -33,10 +33,9 @@ if (_vehicle) then { // Add kill manager and object init to possible crew units { _x addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; - }]; + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + }]; [_x] call KPLIB_fnc_addObjectInit; } forEach (crew _obj); }; @@ -44,9 +43,8 @@ if (_vehicle) then { // Apply kill manager, if it's not a crate if !(_crate) then { _obj addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; }]; } else { // Otherwise apply all needed values/functionalities diff --git a/Missionframework/functions/fn_spawnVehicle.sqf b/Missionframework/functions/fn_spawnVehicle.sqf index b192da43a..7266d55e4 100644 --- a/Missionframework/functions/fn_spawnVehicle.sqf +++ b/Missionframework/functions/fn_spawnVehicle.sqf @@ -2,7 +2,7 @@ File: fn_spawnVehicle.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2019-12-03 - Last Update: 2020-05-15 + Last Update: 2023-10-28 License: MIT License - http://www.opensource.org/licenses/MIT Description: @@ -84,19 +84,19 @@ if (_classname in KPLIB_o_militiaVehicles) then { private _crew = units (createVehicleCrew _newvehicle); _crew joinSilent _grp; sleep 0.1; - {_x addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; - }];} forEach _crew; + { + _x addEventHandler ["Killed", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + }]; + } forEach _crew; }; // Add Killed and GetIn EHs and enable damage again _newvehicle addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; - }]; + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; +}]; sleep 0.1; _newvehicle allowDamage true; _newvehicle setDamage 0; diff --git a/Missionframework/init.sqf b/Missionframework/init.sqf index 21a2da89b..11c65b5ba 100644 --- a/Missionframework/init.sqf +++ b/Missionframework/init.sqf @@ -60,7 +60,6 @@ if ((isNil {player getVariable "bis_revive_ehHandleHeal"} || isDedicated) && !(b [] call bis_fnc_reviveInit; }; - KPLIB_init = true; // Notify clients that server is ready diff --git a/Missionframework/scripts/client/build/do_build.sqf b/Missionframework/scripts/client/build/do_build.sqf index 003f611f0..ec8d989f3 100644 --- a/Missionframework/scripts/client/build/do_build.sqf +++ b/Missionframework/scripts/client/build/do_build.sqf @@ -51,7 +51,7 @@ while { true } do { if ( manned ) then { _grp = createGroup KPLIB_side_player; }; - _classname createUnit [_pos, _grp,"this addEventHandler [""Killed"", {[""KPLIB_manageKills"", _this] call CBA_fnc_serverEvent;}]", 0.5, "private"]; + _classname createUnit [_pos, _grp,"this addEventHandler ['Killed', {['KPLIB_manageKills', _this] call CBA_fnc_serverEvent}]", 0.5, "private"]; build_confirmed = 0; } else { if ( buildtype == 8 ) then { @@ -64,9 +64,9 @@ while { true } do { if(_idx == 0) then { _unitrank = "sergeant"; }; if(_idx == 1) then { _unitrank = "corporal"; }; if (_classname isEqualTo KPLIB_b_squadPara) then { - _x createUnit [_pos, _grp,"this addEventHandler [""Killed"", {[""KPLIB_manageKills"", _this] call CBA_fnc_serverEvent;}]; removeBackpackGlobal this; this addBackpackGlobal ""B_parachute""", 0.5, _unitrank]; + _x createUnit [_pos, _grp,"this addEventHandler ['Killed', {['KPLIB_manageKills', _this] call CBA_fnc_serverEvent}]; removeBackpackGlobal this; this addBackpackGlobal 'B_parachute'", 0.5, _unitrank]; } else { - _x createUnit [_pos, _grp,"this addEventHandler [""Killed"", {[""KPLIB_manageKills"", _this] call CBA_fnc_serverEvent;}];", 0.5, _unitrank]; + _x createUnit [_pos, _grp,"this addEventHandler ['Killed', {['KPLIB_manageKills', _this] call CBA_fnc_serverEvent}];", 0.5, _unitrank]; }; _idx = _idx + 1; @@ -333,15 +333,16 @@ while { true } do { if(buildtype != 6) then { _vehicle addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + }]; - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; - }]; - { _x addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; - }]; } foreach (crew _vehicle); + { + _x addEventHandler ["Killed", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + }]; + } foreach (crew _vehicle); }; }; diff --git a/Missionframework/scripts/client/init_client.sqf b/Missionframework/scripts/client/init_client.sqf index 1fc50a7aa..41d8cff04 100644 --- a/Missionframework/scripts/client/init_client.sqf +++ b/Missionframework/scripts/client/init_client.sqf @@ -35,9 +35,9 @@ execVM "scripts\client\ui\tutorial_manager.sqf"; execVM "scripts\client\markers\update_production_sites.sqf"; player addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; - }]; + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; +}]; player addEventHandler ["GetInMan", {[_this select 2] spawn kp_fuel_consumption;}]; player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehiclesSeized;}]; player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehicleCaptured;}]; diff --git a/Missionframework/scripts/server/battlegroup/spawn_air.sqf b/Missionframework/scripts/server/battlegroup/spawn_air.sqf index 96f550783..e03f3b99a 100644 --- a/Missionframework/scripts/server/battlegroup/spawn_air.sqf +++ b/Missionframework/scripts/server/battlegroup/spawn_air.sqf @@ -18,17 +18,19 @@ for "_i" from 1 to _planes_number do { _plane = createVehicle [_class, _spawnPos, [], 0, "FLY"]; createVehicleCrew _plane; _plane flyInHeight (120 + (random 180)); - _plane addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; + [_plane] call KPLIB_fnc_addObjectInit; - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + _plane addEventHandler ["Killed", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; }]; - [_plane] call KPLIB_fnc_addObjectInit; - {_x addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; + { + _x addEventHandler ["Killed", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + }]; + } forEach (crew _plane); - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; - }];} forEach (crew _plane); (crew _plane) joinSilent _grp; sleep 1; }; diff --git a/Missionframework/scripts/server/game/save_manager.sqf b/Missionframework/scripts/server/game/save_manager.sqf index 9cdaaa6d3..0c3497b61 100644 --- a/Missionframework/scripts/server/game/save_manager.sqf +++ b/Missionframework/scripts/server/game/save_manager.sqf @@ -357,10 +357,9 @@ if (!isNil "_saveData") then { // Apply kill manager handling, if not excluded if !((toLower _class) in _noKillHandler) then { _object addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; - }]; + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + }]; }; // Set enemy vehicle as captured diff --git a/Missionframework/scripts/server/init_server.sqf b/Missionframework/scripts/server/init_server.sqf index da5ff35cf..1ddbae141 100644 --- a/Missionframework/scripts/server/init_server.sqf +++ b/Missionframework/scripts/server/init_server.sqf @@ -117,12 +117,10 @@ execVM "scripts\server\asymmetric\init_module.sqf"; execVM "scripts\server\offloading\group_diag.sqf"; // Server event(s) -["KPLib_manageKills", -{ - params ["_unit","_killer"]; - [_unit,_killer] call kill_manager; -} -] call CBA_fnc_addEventHandler; +["KPLib_manageKills", { + params ["_unit", "_killer"]; + [_unit, _killer] call kill_manager; +}] call CBA_fnc_addEventHandler; { diff --git a/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf b/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf index 63448e7c7..5465e35ff 100644 --- a/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf +++ b/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf @@ -42,7 +42,10 @@ while { KPLIB_endgame == 0 } do { [selectRandom KPLIB_c_units, _spawnpos, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; _civveh = (selectRandom KPLIB_c_vehicles) createVehicle _spawnpos; _civveh setpos _spawnpos; - _civveh addEventHandler ["Killed", {["KPLIB_manageKills", _this] call CBA_fnc_serverEvent;}]; + _civveh addEventHandler ["Killed", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + }]; _civveh addEventHandler ["HandleDamage", { private [ "_damage" ]; if (( side (_this select 3) != KPLIB_side_player ) && ( side (_this select 3) != KPLIB_side_enemy )) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; ((units _grp) select 0) moveInDriver _civveh; ((units _grp) select 0) disableAI "FSM"; diff --git a/Missionframework/scripts/server/patrols/send_paratroopers.sqf b/Missionframework/scripts/server/patrols/send_paratroopers.sqf index 87654bd35..320a8f5b6 100644 --- a/Missionframework/scripts/server/patrols/send_paratroopers.sqf +++ b/Missionframework/scripts/server/patrols/send_paratroopers.sqf @@ -31,11 +31,12 @@ if (isNull _chopper_type) then { ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; }]; - {_x addEventHandler ["Killed", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; - }];} forEach (crew _newvehicle); + { + _x addEventHandler ["Killed", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + }]; + } forEach (crew _newvehicle); } else { _newvehicle = _chopper_type; _pilot_group = group _newvehicle; diff --git a/Missionframework/scripts/server/secondary/search_and_rescue.sqf b/Missionframework/scripts/server/secondary/search_and_rescue.sqf index 9e072be1a..e04f6999a 100644 --- a/Missionframework/scripts/server/secondary/search_and_rescue.sqf +++ b/Missionframework/scripts/server/secondary/search_and_rescue.sqf @@ -76,7 +76,13 @@ if ( KPLIB_enemyReadiness < 50 ) then { private _vehtospawn = []; private _spawnchances = [75,50,15]; {if (random 100 < _x) then {_vehtospawn pushBack (selectRandom _vehicle_pool);};} foreach _spawnchances; -{([(getpos _helowreck) getPos [30 + (random 30), random 360], _x, true] call KPLIB_fnc_spawnVehicle) addEventHandler ["Killed", {["KPLIB_manageKills", _this] call CBA_fnc_serverEvent;}]; } foreach _vehtospawn; +{ + private _vehicle = [(getpos _helowreck) getPos [30 + (random 30), random 360], _x, true] call KPLIB_fnc_spawnVehicle; + _vehicle addEventHandler ["Killed", { + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + }]; +} foreach _vehtospawn; secondary_objective_position = getpos _helowreck; secondary_objective_position_marker = secondary_objective_position getPos [800, random 360]; diff --git a/Missionframework/scripts/shared/kill_manager.sqf b/Missionframework/scripts/shared/kill_manager.sqf index e580212cb..429250feb 100644 --- a/Missionframework/scripts/shared/kill_manager.sqf +++ b/Missionframework/scripts/shared/kill_manager.sqf @@ -145,11 +145,10 @@ params ["_unit", "_killer"]; }; // Body/wreck cleanup - if (!isPlayer _unit) then { [{ params ["_unit"]; - if (_unit isKindOf "CAManBase") exitwith { + if (_unit isKindOf "CAManBase") exitWith { hideBody _unit; }; deleteVehicle _unit; From f83a8077db4a0d4972a6eff63bc9de83aca5f6a6 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Sat, 28 Oct 2023 18:11:10 +0200 Subject: [PATCH 7/8] Revert to MPKilled, use localEvent --- .../functions/fn_createManagedUnit.sqf | 4 ++-- .../functions/fn_handlePlacedZeusObject.sqf | 8 ++++---- Missionframework/functions/fn_spawnVehicle.sqf | 8 ++++---- Missionframework/scripts/client/build/do_build.sqf | 14 +++++++------- Missionframework/scripts/client/init_client.sqf | 4 ++-- .../scripts/server/battlegroup/spawn_air.sqf | 8 ++++---- .../scripts/server/game/save_manager.sqf | 4 ++-- .../server/patrols/manage_one_civilian_patrol.sqf | 4 ++-- .../scripts/server/patrols/send_paratroopers.sqf | 8 ++++---- .../scripts/server/secondary/search_and_rescue.sqf | 4 ++-- 10 files changed, 33 insertions(+), 33 deletions(-) diff --git a/Missionframework/functions/fn_createManagedUnit.sqf b/Missionframework/functions/fn_createManagedUnit.sqf index 17f028780..484b3ab6c 100644 --- a/Missionframework/functions/fn_createManagedUnit.sqf +++ b/Missionframework/functions/fn_createManagedUnit.sqf @@ -34,8 +34,8 @@ isNil { private _groupTemp = createGroup [CIVILIAN, true]; _unit = _groupTemp createUnit [_type, _spawnPos, [], _placement, "FORM"]; - _unit addEventHandler ["Killed", { - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + _unit addMPEventHandler ["MPKilled", { + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; _unit setRank _rank; diff --git a/Missionframework/functions/fn_handlePlacedZeusObject.sqf b/Missionframework/functions/fn_handlePlacedZeusObject.sqf index 05d8fe437..2bda2e60a 100644 --- a/Missionframework/functions/fn_handlePlacedZeusObject.sqf +++ b/Missionframework/functions/fn_handlePlacedZeusObject.sqf @@ -32,9 +32,9 @@ if (_vehicle) then { // Add kill manager and object init to possible crew units { - _x addEventHandler ["Killed", { + _x addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; [_x] call KPLIB_fnc_addObjectInit; } forEach (crew _obj); @@ -42,9 +42,9 @@ if (_vehicle) then { // Apply kill manager, if it's not a crate if !(_crate) then { - _obj addEventHandler ["Killed", { + _obj addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; } else { // Otherwise apply all needed values/functionalities diff --git a/Missionframework/functions/fn_spawnVehicle.sqf b/Missionframework/functions/fn_spawnVehicle.sqf index 7266d55e4..4749a7a02 100644 --- a/Missionframework/functions/fn_spawnVehicle.sqf +++ b/Missionframework/functions/fn_spawnVehicle.sqf @@ -85,17 +85,17 @@ if (_classname in KPLIB_o_militiaVehicles) then { _crew joinSilent _grp; sleep 0.1; { - _x addEventHandler ["Killed", { + _x addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; } forEach _crew; }; // Add Killed and GetIn EHs and enable damage again -_newvehicle addEventHandler ["Killed", { +_newvehicle addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; sleep 0.1; _newvehicle allowDamage true; diff --git a/Missionframework/scripts/client/build/do_build.sqf b/Missionframework/scripts/client/build/do_build.sqf index ec8d989f3..82b362e34 100644 --- a/Missionframework/scripts/client/build/do_build.sqf +++ b/Missionframework/scripts/client/build/do_build.sqf @@ -51,7 +51,7 @@ while { true } do { if ( manned ) then { _grp = createGroup KPLIB_side_player; }; - _classname createUnit [_pos, _grp,"this addEventHandler ['Killed', {['KPLIB_manageKills', _this] call CBA_fnc_serverEvent}]", 0.5, "private"]; + _classname createUnit [_pos, _grp,"this addMpEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}]", 0.5, "private"]; build_confirmed = 0; } else { if ( buildtype == 8 ) then { @@ -64,9 +64,9 @@ while { true } do { if(_idx == 0) then { _unitrank = "sergeant"; }; if(_idx == 1) then { _unitrank = "corporal"; }; if (_classname isEqualTo KPLIB_b_squadPara) then { - _x createUnit [_pos, _grp,"this addEventHandler ['Killed', {['KPLIB_manageKills', _this] call CBA_fnc_serverEvent}]; removeBackpackGlobal this; this addBackpackGlobal 'B_parachute'", 0.5, _unitrank]; + _x createUnit [_pos, _grp,"this addMpEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}]; removeBackpackGlobal this; this addBackpackGlobal 'B_parachute'", 0.5, _unitrank]; } else { - _x createUnit [_pos, _grp,"this addEventHandler ['Killed', {['KPLIB_manageKills', _this] call CBA_fnc_serverEvent}];", 0.5, _unitrank]; + _x createUnit [_pos, _grp,"this addMpEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}];", 0.5, _unitrank]; }; _idx = _idx + 1; @@ -332,15 +332,15 @@ while { true } do { _vehicle setDamage 0; if(buildtype != 6) then { - _vehicle addEventHandler ["Killed", { + _vehicle addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; { - _x addEventHandler ["Killed", { + _x addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; } foreach (crew _vehicle); }; diff --git a/Missionframework/scripts/client/init_client.sqf b/Missionframework/scripts/client/init_client.sqf index 41d8cff04..f2f1acca2 100644 --- a/Missionframework/scripts/client/init_client.sqf +++ b/Missionframework/scripts/client/init_client.sqf @@ -34,9 +34,9 @@ execVM "scripts\client\ui\ui_manager.sqf"; execVM "scripts\client\ui\tutorial_manager.sqf"; execVM "scripts\client\markers\update_production_sites.sqf"; -player addEventHandler ["Killed", { +player addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; player addEventHandler ["GetInMan", {[_this select 2] spawn kp_fuel_consumption;}]; player addEventHandler ["GetInMan", {[_this select 2] call KPLIB_fnc_setVehiclesSeized;}]; diff --git a/Missionframework/scripts/server/battlegroup/spawn_air.sqf b/Missionframework/scripts/server/battlegroup/spawn_air.sqf index e03f3b99a..f32a55247 100644 --- a/Missionframework/scripts/server/battlegroup/spawn_air.sqf +++ b/Missionframework/scripts/server/battlegroup/spawn_air.sqf @@ -20,14 +20,14 @@ for "_i" from 1 to _planes_number do { _plane flyInHeight (120 + (random 180)); [_plane] call KPLIB_fnc_addObjectInit; - _plane addEventHandler ["Killed", { + _plane addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; { - _x addEventHandler ["Killed", { + _x addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_localEvent; }]; } forEach (crew _plane); diff --git a/Missionframework/scripts/server/game/save_manager.sqf b/Missionframework/scripts/server/game/save_manager.sqf index 0c3497b61..c6cb31cbf 100644 --- a/Missionframework/scripts/server/game/save_manager.sqf +++ b/Missionframework/scripts/server/game/save_manager.sqf @@ -356,9 +356,9 @@ if (!isNil "_saveData") then { // Apply kill manager handling, if not excluded if !((toLower _class) in _noKillHandler) then { - _object addEventHandler ["Killed", { + _object addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; }; diff --git a/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf b/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf index 5465e35ff..4d315cebe 100644 --- a/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf +++ b/Missionframework/scripts/server/patrols/manage_one_civilian_patrol.sqf @@ -42,9 +42,9 @@ while { KPLIB_endgame == 0 } do { [selectRandom KPLIB_c_units, _spawnpos, _grp, "PRIVATE", 0.5] call KPLIB_fnc_createManagedUnit; _civveh = (selectRandom KPLIB_c_vehicles) createVehicle _spawnpos; _civveh setpos _spawnpos; - _civveh addEventHandler ["Killed", { + _civveh addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; _civveh addEventHandler ["HandleDamage", { private [ "_damage" ]; if (( side (_this select 3) != KPLIB_side_player ) && ( side (_this select 3) != KPLIB_side_enemy )) then { _damage = 0 } else { _damage = _this select 2 }; _damage } ]; ((units _grp) select 0) moveInDriver _civveh; diff --git a/Missionframework/scripts/server/patrols/send_paratroopers.sqf b/Missionframework/scripts/server/patrols/send_paratroopers.sqf index 320a8f5b6..b93e6d519 100644 --- a/Missionframework/scripts/server/patrols/send_paratroopers.sqf +++ b/Missionframework/scripts/server/patrols/send_paratroopers.sqf @@ -26,15 +26,15 @@ if (isNull _chopper_type) then { _pilot_group = createGroup [KPLIB_side_enemy, true]; (crew _newvehicle) joinSilent _pilot_group; - _newvehicle addEventHandler ["Killed", { + _newvehicle addMPEventHandler ["MPKilled", { params ["_unit", "_killer", "_instigator", "_useEffects"]; - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_localEvent; }]; { - _x addEventHandler ["Killed", { + _x addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; } forEach (crew _newvehicle); } else { diff --git a/Missionframework/scripts/server/secondary/search_and_rescue.sqf b/Missionframework/scripts/server/secondary/search_and_rescue.sqf index e04f6999a..4f31ca022 100644 --- a/Missionframework/scripts/server/secondary/search_and_rescue.sqf +++ b/Missionframework/scripts/server/secondary/search_and_rescue.sqf @@ -78,9 +78,9 @@ private _spawnchances = [75,50,15]; {if (random 100 < _x) then {_vehtospawn pushBack (selectRandom _vehicle_pool);};} foreach _spawnchances; { private _vehicle = [(getpos _helowreck) getPos [30 + (random 30), random 360], _x, true] call KPLIB_fnc_spawnVehicle; - _vehicle addEventHandler ["Killed", { + _vehicle addMPEventHandler ["MPKilled", { params ["_unit", "_killer"]; - ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_serverEvent; + ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; } foreach _vehtospawn; From 0124e3cb7e09b50bb531669588240e3a62bb9d13 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Sat, 28 Oct 2023 18:22:01 +0200 Subject: [PATCH 8/8] Add missing params, minor formatting --- Missionframework/functions/fn_createManagedUnit.sqf | 1 + Missionframework/scripts/client/build/do_build.sqf | 6 +++--- .../scripts/server/patrols/send_paratroopers.sqf | 5 ++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Missionframework/functions/fn_createManagedUnit.sqf b/Missionframework/functions/fn_createManagedUnit.sqf index 484b3ab6c..1d744568f 100644 --- a/Missionframework/functions/fn_createManagedUnit.sqf +++ b/Missionframework/functions/fn_createManagedUnit.sqf @@ -35,6 +35,7 @@ isNil { _unit = _groupTemp createUnit [_type, _spawnPos, [], _placement, "FORM"]; _unit addMPEventHandler ["MPKilled", { + params ["_unit", "_killer"]; ["KPLIB_manageKills", [_unit, _killer]] call CBA_fnc_localEvent; }]; diff --git a/Missionframework/scripts/client/build/do_build.sqf b/Missionframework/scripts/client/build/do_build.sqf index 82b362e34..9b7132bc1 100644 --- a/Missionframework/scripts/client/build/do_build.sqf +++ b/Missionframework/scripts/client/build/do_build.sqf @@ -51,7 +51,7 @@ while { true } do { if ( manned ) then { _grp = createGroup KPLIB_side_player; }; - _classname createUnit [_pos, _grp,"this addMpEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}]", 0.5, "private"]; + _classname createUnit [_pos, _grp,"this addMPEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}]", 0.5, "private"]; build_confirmed = 0; } else { if ( buildtype == 8 ) then { @@ -64,9 +64,9 @@ while { true } do { if(_idx == 0) then { _unitrank = "sergeant"; }; if(_idx == 1) then { _unitrank = "corporal"; }; if (_classname isEqualTo KPLIB_b_squadPara) then { - _x createUnit [_pos, _grp,"this addMpEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}]; removeBackpackGlobal this; this addBackpackGlobal 'B_parachute'", 0.5, _unitrank]; + _x createUnit [_pos, _grp,"this addMPEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}]; removeBackpackGlobal this; this addBackpackGlobal 'B_parachute'", 0.5, _unitrank]; } else { - _x createUnit [_pos, _grp,"this addMpEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}];", 0.5, _unitrank]; + _x createUnit [_pos, _grp,"this addMPEventHandler ['MPKilled', {['KPLIB_manageKills', _this] call CBA_fnc_localEvent}]", 0.5, _unitrank]; }; _idx = _idx + 1; diff --git a/Missionframework/scripts/server/patrols/send_paratroopers.sqf b/Missionframework/scripts/server/patrols/send_paratroopers.sqf index b93e6d519..a10c86a68 100644 --- a/Missionframework/scripts/server/patrols/send_paratroopers.sqf +++ b/Missionframework/scripts/server/patrols/send_paratroopers.sqf @@ -27,9 +27,8 @@ if (isNull _chopper_type) then { (crew _newvehicle) joinSilent _pilot_group; _newvehicle addMPEventHandler ["MPKilled", { - params ["_unit", "_killer", "_instigator", "_useEffects"]; - - ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_localEvent; + params ["_unit", "_killer"]; + ["KPLIB_manageKills", [_unit,_killer]] call CBA_fnc_localEvent; }]; { _x addMPEventHandler ["MPKilled", {