params ["_type"]; // string of the object's classname if (!(_type isKindOf "CAManBase")) exitWith {}; if ( (localNamespace getVariable ["milsim_respawn_fileForReinsertClassesAdded", []]) find _type != -1 ) exitWith {}; private _fileForReinsertAction = [ "milsim_respawn_fileReinsertRequest", "File Re-insert Request", "\A3\ui_f\data\igui\cfg\simpleTasks\types\takeoff_ca.paa", { // statement params ["_target", "_player", "_params"]; // find nearest base or location private _base = [_player] call milsim_respawn_fnc_getNearestBase; private _baseName = [_base] call milsim_respawn_fnc_getBaseName; // send event to server ["milsim_respawn_fileReinsertRequest", [_player, _base]] call CBA_fnc_serverEvent; // notify player their request was filed [["Re-insert Request Filed"], [format["Location: %1", _baseName]]] call CBA_fnc_notify; }, { // condition params ["_target", "_player", "_params"]; // find nearest base or location private _base = [_player] call milsim_respawn_fnc_getNearestBase; private _baseDistance = _player distance _base; private _maxRangeToReady = missionNamespace getVariable ["milsim_respawn_setting_reinsertion_maxRangeToReady", 400]; private _existingQueue = missionNamespace getVariable ["milsim_respawn_reinsertionQueue", []]; // check if module is enabled, player is near a base, and player is not already in the queue // (serverTime - milsim_respawn_missionStartServerTime) > 60*5 && // only allow after 15 minutes missionNamespace getVariable ["milsim_respawn_setting_reinsertion_enabled", true] && (_baseDistance < _maxRangeToReady) && not (_player in (_existingQueue apply {_x#0})) } ] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _fileForReinsertAction, true] call ace_interact_menu_fnc_addActionToClass; private _removeFileForReinsertAction = [ "milsim_respawn_removeReinsertRequest", "Remove Re-insert Request", "\A3\ui_f\data\igui\cfg\simpleTasks\types\land_ca.paa", { // statement params ["_target", "_player", "_params"]; // send event to server ["milsim_respawn_removeReinsertRequest", [_player]] call CBA_fnc_serverEvent; // notify player their request was rescinded "Re-insert Request Rescinded" call CBA_fnc_notify; }, { // condition params ["_target", "_player", "_params"]; private _existingQueue = missionNamespace getVariable ["milsim_respawn_reinsertionQueue", []]; // check if module is enabled, player is in the queue // (serverTime - milsim_respawn_missionStartServerTime) > 60*5 && // only allow after 15 minutes missionNamespace getVariable ["milsim_respawn_setting_reinsertion_enabled", true] && (_player in (_existingQueue apply {_x#0})) } ] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _removeFileForReinsertAction, true] call ace_interact_menu_fnc_addActionToClass; private _classesActionsAddedTo = (localNamespace getVariable ["milsim_respawn_fileForReinsertClassesAdded", []]); _classesActionsAddedTo pushBackUnique _type; localNamespace setVariable ["milsim_respawn_fileForReinsertClassesAdded", _classesActionsAddedTo];