initial files

This commit is contained in:
Samuele Lorefice
2025-05-24 16:17:33 +02:00
commit 9e023649ac
477 changed files with 118566 additions and 0 deletions

View File

@@ -0,0 +1,115 @@
/*
File: fn_initCuratorHandlers.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2020-08-07
Last Update: 2020-08-30
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Initialize curator handlers.
Parameter(s):
NONE
Returns:
Function reached the end [BOOL]
*/
#define ZEUSVAR(var) (format ["KPLIB_zeus_%1", var])
if (isServer) then {
// delete old Liberation mission placed Zeus module
deleteVehicle zm1;
// add curator assign EventHandler
[true, "KPLIB_createZeus", {
params [
["_player", objNull, [objNull]],
["_limited", false, [true]]
];
if (isNull _player) exitWith {};
private _uid = getPlayerUID _player;
// check if there's already a managed zeus module for this player, if so we can just reassign
private _oldManagedZeus = missionNamespace getVariable [ZEUSVAR(_uid), objNull];
if (!isNull _oldManagedZeus && {_limited isEqualTo (_oldManagedZeus getVariable ["KPLIB_limited", -1])}) exitWith {
_player assignCurator _oldManagedZeus;
[true, "KPLIB_zeusAssigned", [_oldManagedZeus]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", _player];
};
// remove currently assigned curator
private _oldZeus = getAssignedCuratorLogic _player;
unassignCurator _oldZeus;
deleteVehicle _oldZeus;
private _group = createGroup [sideLogic, true];
private _zeus = _group createUnit ["ModuleCurator_F", [-7580, -7580, 0], [], 0, "NONE"];
missionNamespace setVariable [ZEUSVAR(_uid), _zeus];
if (_limited) then {
_zeus setVariable ["Addons", 0, true];
_zeus setVariable ["BIS_fnc_initModules_disableAutoActivation", false];
_zeus setCuratorCoef ["Place", -1e8];
_zeus setCuratorCoef ["Edit", -1e8];
_zeus setCuratorCoef ["Destroy", -1e8];
_zeus setCuratorCoef ["Delete", 0];
} else {
_zeus setVariable ["Addons", 3, true];
_zeus setVariable ["BIS_fnc_initModules_disableAutoActivation", false];
_zeus setCuratorCoef ["Place", 0];
_zeus setCuratorCoef ["Delete", 0];
removeAllCuratorAddons _zeus;
};
_zeus setVariable ["KPLIB_limited", _limited];
_player assignCurator _zeus;
[true, "KPLIB_zeusAssigned", [_zeus, _limited]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", _player];
}] call BIS_fnc_addScriptedEventHandler;
[true, "KPLIB_activateZeusAddons", {
params [
["_zeus", objNull, [objNull]],
["_addons", [], [[]]]
];
_zeus addCuratorAddons _addons;
}] call BIS_fnc_addScriptedEventHandler;
// remove the assigned curator on player disconnect
addMissionEventHandler ["HandleDisconnect", {
params ["", "", "_uid"];
private _zeus = missionNamespace getVariable ZEUSVAR(_uid);
if (!isNil "_zeus") then {
deleteVehicle _zeus;
missionNamespace setVariable [ZEUSVAR(_uid), nil];
};
}];
};
if (hasInterface) then {
[true, "KPLIB_zeusAssigned", {
params [
["_zeus", objNull, [objNull]],
["_limited", false, [true]]
];
if !(_zeus getVariable ["KPLIB_drawCuratorLocations", false]) then {
_zeus setVariable ["KPLIB_drawCuratorLocations", true];
[_zeus] call BIS_fnc_drawCuratorLocations;
};
if (!_limited) then {
private _allAddons = ("true" configClasses (configFile >> "CfgPatches")) apply {configName _x};
[true, "KPLIB_activateZeusAddons", [_zeus, _allAddons]] remoteExecCall ["BIS_fnc_callScriptedEventHandler", 2];
};
}] call BIS_fnc_addScriptedEventHandler;
};
true