stuzer05
61de8f76f3
Closes #15 Reviewed-on: #16 Co-authored-by: stuzer05 <stuzer05@stuzer.link> Co-committed-by: stuzer05 <stuzer05@stuzer.link>
215 lines
7.9 KiB
Plaintext
Executable File
215 lines
7.9 KiB
Plaintext
Executable File
// Add UIDs and names of Admins and Mods Here. If an admin or mod wants to play with no admin tools, change name in profile.
|
|
#define SUPER_ADMIN_LIST ["76561198180152023","76500000000000000","76500000000000000"]
|
|
#define SUPER_ADMIN_NAMES ["stuzer05","SuperAdminName","SuperAdminName"]
|
|
#define ADMIN_LIST ["76500000000000000","76500000000000000","76500000000000000"]
|
|
#define ADMIN_NAMES ["AdminName","AdminName","AdminName"]
|
|
#define MOD_LIST ["76500000000000000","76500000000000000","76500000000000000"]
|
|
#define MOD_NAMES ["ModeratorName","ModeratorName","ModeratorName"]
|
|
|
|
// These variables are used in the AI spawner. You can adjust them.
|
|
EAT_HumanityGainLoss = 25;
|
|
EAT_aiDeleteTimer = 600;
|
|
|
|
// DO NOT EDIT BELOW THIS LINE
|
|
|
|
"EAT_clientToServer" addPublicVariableEventHandler {
|
|
private ["_array","_type","_activatingPlayer","_playerUID"];
|
|
_array = _this select 1;
|
|
_type = _array select 0;
|
|
_activatingPlayer = _array select 1;
|
|
_playerUID = getPlayerUID _activatingPlayer;
|
|
|
|
if ((count _array == 2) && (_type == "login")) then {
|
|
{
|
|
if (_playerUID == getPlayerUID _x) exitWith {
|
|
call
|
|
{
|
|
if ((getPlayerUID _x) in SUPER_ADMIN_LIST && (name _x) in SUPER_ADMIN_NAMES) exitWith {
|
|
EAT_login = {
|
|
#include "\z\addons\dayz_server\AdminTools\SuperAdmin\activate.sqf"
|
|
};
|
|
(owner _x) publicVariableClient "EAT_login";
|
|
};
|
|
|
|
if ((getPlayerUID _x) in ADMIN_LIST && (name _x) in ADMIN_NAMES) exitWith {
|
|
EAT_login = {
|
|
#include "\z\addons\dayz_server\AdminTools\Admin\activate.sqf"
|
|
};
|
|
(owner _x) publicVariableClient "EAT_login";
|
|
};
|
|
|
|
if ((getPlayerUID _x) in MOD_LIST && (name _x) in MOD_NAMES) exitWith {
|
|
EAT_login = {
|
|
#include "\z\addons\dayz_server\AdminTools\Mod\activate.sqf"
|
|
};
|
|
(owner _x) publicVariableClient "EAT_login";
|
|
};
|
|
|
|
EAT_login = {
|
|
#include "\z\addons\dayz_server\adminTools\AntiCheat\antiCheat.sqf"
|
|
};
|
|
(owner _x) publicVariableClient "EAT_login";
|
|
};
|
|
};
|
|
} count playableUnits;
|
|
};
|
|
|
|
|
|
if (count _array > 2) then {
|
|
|
|
_params = _array select 2;
|
|
_clientKey = _array select 3;
|
|
|
|
// First line of defense
|
|
if (!((_playerUID) in SUPER_ADMIN_LIST) && !((_playerUID) in ADMIN_LIST) && !((_playerUID) in MOD_LIST)) exitWith {diag_log format["ADMIN TOOLS: unauthorized use by %1, %2",_playerUID, (name _activatingPlayer)];};
|
|
|
|
if (_type == "tempVeh") exitWith {
|
|
#include "\z\addons\dayz_server\adminTools\ServerFunctions\vehSpawn.sqf"
|
|
};
|
|
if (_type == "addAI") exitWith {
|
|
#include "\z\addons\dayz_server\adminTools\ServerFunctions\aiSpawn.sqf"
|
|
};
|
|
if (_type == "crate") exitWith {
|
|
#include "\z\addons\dayz_server\adminTools\ServerFunctions\crateSpawn.sqf"
|
|
};
|
|
if (_type == "invisibility") exitWith {
|
|
private ["_hide","_position","_isActive"];
|
|
_isActive = _params select 0;
|
|
_position = _params select 1;
|
|
|
|
_exitReason = [_this,"EAT_invisibility",_position,_clientKey,_playerUID,_activatingPlayer] call server_verifySender;
|
|
if (_exitReason != "") exitWith {diag_log _exitReason};
|
|
|
|
_activatingPlayer setVehicleInit format["this hideObject %1;",_isActive];
|
|
processInitCommands;
|
|
clearVehicleInit _activatingPlayer;
|
|
};
|
|
// Have the server spawn the transparent red globes to avoid BattlEye kicks
|
|
if (_type == "Base Manager") exitWith {
|
|
local _radius = _params select 0;
|
|
local _center = _params select 1;
|
|
local _pos = _params select 2;
|
|
|
|
_exitReason = [_this,"Base Manager",_pos,_clientKey,_playerUID,_activatingPlayer] call server_verifySender;
|
|
if (_exitReason != "") exitWith {diag_log _exitReason};
|
|
|
|
[_radius,_center, _pos] spawn {
|
|
private ["_obj","_center","_a","_b","_radius","_angle","_count","_objects","_isWater"];
|
|
_radius = _this select 0;
|
|
_center = _this select 1;
|
|
_angle = 0;
|
|
_count = round((2 * pi * _radius) / 2);
|
|
_objects = [];
|
|
_isWater = surfaceIsWater (_this select 2);
|
|
for "_x" from 0 to _count do
|
|
{
|
|
_a = (_center select 0) + (sin(_angle)*_radius);
|
|
_b = (_center select 1) + (cos(_angle)*_radius);
|
|
_obj = "Sign_sphere100cm_EP1" createVehicle [0,0,0];
|
|
if (_isWater) then {
|
|
_obj setPosASL [_a, _b, _center select 2];
|
|
} else {
|
|
_obj setPosATL [_a, _b, _center select 2];
|
|
};
|
|
//_obj setPosASL [_a, _b, _center select 2];
|
|
_objects set [count _objects, _obj];
|
|
_angle = _angle + (360/_count);
|
|
};
|
|
|
|
for "_x" from 0 to _count do
|
|
{
|
|
_a = (_center select 0) + (sin(_angle)*_radius);
|
|
_b = (_center select 2) + (cos(_angle)*_radius);
|
|
_obj = "Sign_sphere100cm_EP1" createVehicle [0,0,0];
|
|
//_obj setPosASL [_a, _center select 1, _b];
|
|
if (_isWater) then {
|
|
_obj setPosASL [_a, _center select 1, _b];
|
|
} else {
|
|
_obj setPosATL [_a, _center select 1, _b];
|
|
};
|
|
_objects set [count _objects, _obj];
|
|
_angle = _angle + (360/_count);
|
|
};
|
|
|
|
for "_x" from 0 to _count do
|
|
{
|
|
_a = (_center select 1) + (sin(_angle)*_radius);
|
|
_b = (_center select 2) + (cos(_angle)*_radius);
|
|
_obj = "Sign_sphere100cm_EP1" createVehicle [0,0,0];
|
|
//_obj setPosASL [_center select 0, _a, _b];
|
|
if (_isWater) then {
|
|
_obj setPosASL [_center select 0, _a, _b];
|
|
} else {
|
|
_obj setPosATL [_center select 0, _a, _b];
|
|
};
|
|
_objects set [count _objects, _obj];
|
|
_angle = _angle + (360/_count);
|
|
};
|
|
|
|
uiSleep 30;
|
|
{deleteVehicle _x; true } count _objects;
|
|
};
|
|
};
|
|
if (_type == "ServerMessage") exitWith {
|
|
private ["_message","_args"];
|
|
_message = _params select 0;
|
|
_message = format["ADMIN:%1",_message];
|
|
|
|
_exitReason = [_this,"ServerMessage",getPos _activatingPlayer,_clientKey,_playerUID,_activatingPlayer] call server_verifySender;
|
|
if (_exitReason != "") exitWith {diag_log _exitReason};
|
|
|
|
_args = ["0.40","#FFFFFF","0.70","#990000",0,-.3,10,0.5];
|
|
RemoteMessage = ["dynamic_text",["",_message],_args];
|
|
publicVariable "RemoteMessage";
|
|
};
|
|
if (_type == "Date") exitWith {
|
|
private ["_moon","_time"];
|
|
_moon = _params select 0;
|
|
_time = _params select 1;
|
|
_exitReason = [_this,"SetDate",getPos _activatingPlayer,_clientKey,_playerUID,_activatingPlayer] call server_verifySender;
|
|
if (_exitReason != "") exitWith {diag_log _exitReason};
|
|
dayzSetDate = [2012,6,_moon,_time,1];
|
|
publicVariable "dayzSetDate";
|
|
setDate dayzSetDate;
|
|
};
|
|
if (_type == "Fog") exitWith {
|
|
private ["_value","_time"];
|
|
_value = _params select 0;
|
|
_time = _params select 1;
|
|
|
|
_exitReason = [_this,"SetFog",getPos _activatingPlayer,_clientKey,_playerUID,_activatingPlayer] call server_verifySender;
|
|
if (_exitReason != "") exitWith {diag_log _exitReason};
|
|
|
|
drn_DynamicWeatherEventArgs = [overcast,fog,rain,"FOG",_value,_time,-1,-1];
|
|
publicVariable "drn_DynamicWeatherEventArgs";
|
|
drn_DynamicWeatherEventArgs call drn_fnc_DynamicWeather_SetWeatherLocal;
|
|
};
|
|
//[current overcast, current fog, current rain, current weather change ("OVERCAST", "FOG" or ""), target weather value, time until weather completion (in seconds), current wind x, current wind z]
|
|
if (_type == "Cloud") exitWith {
|
|
private ["_value","_time"];
|
|
_value = _params select 0;
|
|
_time = _params select 1;
|
|
|
|
_exitReason = [_this,"SetWeather",getPos _activatingPlayer,_clientKey,_playerUID,_activatingPlayer] call server_verifySender;
|
|
if (_exitReason != "") exitWith {diag_log _exitReason};
|
|
|
|
drn_DynamicWeatherEventArgs = [overcast,fog,rain,"OVERCAST",_value,_time,-1,-1];
|
|
publicVariable "drn_DynamicWeatherEventArgs";
|
|
drn_DynamicWeatherEventArgs call drn_fnc_DynamicWeather_SetWeatherLocal;
|
|
};
|
|
};
|
|
};
|
|
|
|
// This variable is used for crate spawning. DO NOT CHANGE IT.
|
|
EAT_isOverPoch = isClass (configFile >> "CfgWeapons" >> "USSR_cheytacM200");
|
|
|
|
// Log tool usage to .txt file
|
|
"EAT_PVEH_usageLogger" addPublicVariableEventHandler {
|
|
"EATadminLogger" callExtension (_this select 1);
|
|
};
|
|
|
|
// Export base to .sqf
|
|
"EAT_PVEH_baseExporter" addPublicVariableEventHandler {
|
|
"EATbaseExporter" callExtension (_this select 1);
|
|
};
|