Guest User

Untitled

a guest
Oct 1st, 2017
1,046
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 210.65 KB | None | 0 0
  1. /*
  2. File: A3AH.sqf
  3. Author: Chris(tian) "infiSTAR" Lorenzen
  4. Contact: infiSTAR23@gmail.com
  5.  
  6. Description:
  7. Arma AntiHack & AdminTools - infiSTAR.de
  8. */
  9. /* *******************Developer : infiSTAR (infiSTAR23@gmail.com)******************* */
  10. /* **************infiSTAR Copyright®© 2011 - 2017 All rights reserved.************** */
  11. /* *********************************www.infiSTAR.de********************************* */
  12. diag_log '<infiSTAR.de> VERSION: infiSTAR.de 30-09-2017 16-37-47 (v254)';
  13. comment 'Antihack & AdminTools - Christian Lorenzen - www.infiSTAR.de - License: (CC)';
  14. UPDATEEMAIL='titiblend31@gmail.com';
  15. INFISTARVERSION='30-09-2017 16-37-47 - v254';
  16. if((toLower UPDATEEMAIL) in [""])exitWith{
  17. diag_log "<infiSTAR.de> Please go to update.infistar.de and download the latest version of infiSTAR!";
  18. diag_log "<infiSTAR.de> The current version is not licensed to you.";
  19. diag_log "<infiSTAR.de> infiSTAR will NOT START if it is licensed to that email address!";
  20. };
  21. diag_log format['<infiSTAR.de> %1 - STARTING',time];
  22. _t = time;
  23. diag_log format['<infiSTAR.de> %1 - TESTING IF serverCommandPassword IS SET PROPERLY',_t];
  24. _return = _serverCommandPassword serverCommand '#exec users';
  25. if(!_return)exitWith
  26. {
  27. diag_log format['<infiSTAR.de> %1 - serverCommandPassword NOT SET! titiblend31@gmail.com - 30-09-2017 16-37-47 - v254 - %2 - %3',_t,serverName,productVersion];
  28. diag_log format['<infiSTAR.de> %1 - serverCommandPassword in infiSTAR_config.sqf is %2',_t,_serverCommandPassword];
  29. diag_log format['<infiSTAR.de> %1 - serverCommandPassword is defined in your servers config.cfg',_t];
  30. diag_log format['<infiSTAR.de> %1 - serverCommandPassword if your config.cfg does not have serverCommandPassword yet, simply add it in a new line: serverCommandPassword = "changeme";',_t];
  31. diag_log format['<infiSTAR.de> %1 - serverCommandPassword has to be set it in infiSTAR_config.sqf where it says _serverCommandPassword = "changeme";',_t];
  32. diag_log format['<infiSTAR.de> %1 - infiSTAR will not START if passwords are not set properly!',_t];
  33. };
  34. if(isNil '_UID_SKIP_GLOBAL_BAN_CHECK')exitWith{ diag_log '<infiSTAR.de> ERROR: UID_SKIP_GLOBAL_BAN_CHECK broken'; };
  35. if!(_UID_SKIP_GLOBAL_BAN_CHECK isEqualType [])exitWith{ diag_log '<infiSTAR.de> ERROR: UID_SKIP_GLOBAL_BAN_CHECK not an array'; };
  36. _s_m = missionNameSpace getVariable ['UPDATEEMAIL',''];_s_v = missionNameSpace getVariable ['INFISTARVERSION',''];_s_s = toArray servername;
  37. FN_GET_SERVERPW = compileFinal (str _serverCommandPassword);
  38. diag_log format['<infiSTAR.de> %1 - serverCommandPassword IS FINE',_t];
  39. if!(isClass (missionconfigfile >> 'infiSTAR_AdminMenu'))exitWith
  40. {
  41. diag_log format['<infiSTAR.de> %1 - infiSTAR_AdminMenu.hpp is not in your MPMission or you forgot to #include it within your description.ext [titiblend31@gmail.com - 30-09-2017 16-37-47 - v254 - %2 - %3]',_t,serverName,productVersion];
  42. };
  43. _test = [0,{}] execFSM 'call.fsm';
  44. _test = [0,{}] execFSM 'call.fsm';
  45. if(_test isEqualTo 0)exitWith
  46. {
  47. _log = format['<infiSTAR.de> %1 - call.fsm missing in your MPmission! titiblend31@gmail.com - 30-09-2017 16-37-47 - v254 - %2 - %3',_t,serverName,productVersion];
  48. for '_i' from 0 to 30 do
  49. {
  50. diag_log _log;
  51. diag_log format['<infiSTAR.de> %1 - infiSTAR will not START if files are not in place!',_t];
  52. };
  53. };
  54. infiSTAR_MOD = compileFinal str _MOD;
  55. _respawn_west = getMarkerPos 'respawn_west';
  56. _respawn_east = getMarkerPos 'respawn_east';
  57. _respawn_guerrila = getMarkerPos 'respawn_guerrila';
  58. _respawn_civilian = getMarkerPos 'respawn_civilian';
  59. fn_infiSTAR_ObjName = compileFinal "if(alive _this)then{_n = name _this;_this setVariable['playerName',_n];_n}else{_n = _this getVariable['playerName',''];if(_n isEqualTo '')then{if!(getPlayerUID _this isEqualTo '')then{_n = name _this;_this setVariable['playerName',_n];};};_n}";
  60. publicVariable "fn_infiSTAR_ObjName";
  61. /****************************************************************************************************/
  62. /****************************************************************************************************/
  63. /****************************************************************************************************/
  64. FNC_A3_CUSTOMLOG = compileFinal "
  65. params[['_logname',''],['_logentry','']];
  66. diag_log format['<infiSTAR.de>%1| %2 [30-09-2017 16-37-47 - v254]',_logname,_logentry];
  67. [_logname,_logentry] call FN_CALL_LOG_DLL;
  68. ";
  69. if(_armalog)then{
  70. FNC_A3_RL = "
  71. _this call FNC_A3_CUSTOMLOG;
  72. _this call FN_ARMA_REMOTELOG;
  73. ";
  74. FNC_A3_RL = compileFinal FNC_A3_RL;
  75. }else{FNC_A3_RL = FNC_A3_CUSTOMLOG;};
  76. FNC_A3_HACKLOG = compileFinal "['HACKLOG',_this] call FNC_A3_RL;";
  77. FNC_A3_SURVEILLANCELOG = compileFinal "['SURVEILLANCELOG',_this] call FNC_A3_CUSTOMLOG;";
  78. FNC_A3_ADMINLOG = compileFinal "['ADMINLOG',_this] call FNC_A3_RL;";
  79. FNC_A3_CONNECTLOG = compileFinal "['CONNECTLOG',_this] call FNC_A3_RL;";
  80. FNC_A3_TOKENLOG = compileFinal "['TOKENLOG',_this] call FNC_A3_CUSTOMLOG;";
  81.  
  82.  
  83. _allRandomGenVars = [];
  84. _counts = [];
  85. {
  86. _counts pushBack (count _x);
  87. } forEach (allVariables missionnamespace);
  88. _num = 0;
  89. {
  90. _num = _num + _x;
  91. } forEach _counts;
  92. _count = count _counts;
  93. _average = round(_num / _count);
  94. _randminval = (_average/3);
  95. _randmaxval = (_average/1.5);
  96. _fnc_RandomGen =
  97. {
  98. _fnc_actualGen = {
  99. _abc = ['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'];
  100. _gen = _abc select (random ((count _abc)-1));
  101. _arr = ['a','9','7','6','9','2','c','6','1','5','3','9','a','1','6','0','f','b','f','9','b','2','0','c','5','9','e','3','5','5','3','b','1'];
  102. _randmax = {((round(random _randminval)) + (round(random _randmaxval))) max _randminval};
  103. for '_i' from 0 to (call _randmax)do
  104. {
  105. _gen = _gen + str(round(random 9)) + (_arr select (random ((count _arr)-1)));
  106. };
  107. };
  108. _gen = '';
  109. while{_gen=='' || _gen in _allRandomGenVars}do{
  110. call _fnc_actualGen;
  111. };
  112. _allRandomGenVars pushBack _gen;
  113. _gen
  114. };
  115. ['RANDOMVAR',format['<infiSTAR.de> _fnc_RandomGen: %1',_fnc_RandomGen]] call FNC_A3_CUSTOMLOG;
  116. ['RANDOMVAR',format['----START-LINE---- (%1)',INFISTARVERSION]] call FNC_A3_CUSTOMLOG;
  117. _adminbox = call _fnc_RandomGen;['RANDOMVAR',format['_adminbox: %1',_adminbox]] call FNC_A3_CUSTOMLOG;
  118. _fnc_mpPackets = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_mpPackets: %1',_fnc_mpPackets]] call FNC_A3_CUSTOMLOG;
  119. _FNC_AH_KICKLOG = call _fnc_RandomGen;['RANDOMVAR',format['_FNC_AH_KICKLOG: %1',_FNC_AH_KICKLOG]] call FNC_A3_CUSTOMLOG;
  120. _FNC_AH_KICKLOGSPAWN = call _fnc_RandomGen;['RANDOMVAR',format['_FNC_AH_KICKLOGSPAWN: %1',_FNC_AH_KICKLOGSPAWN]] call FNC_A3_CUSTOMLOG;
  121. _FNC_PVAH_AdminReq = call _fnc_RandomGen;['RANDOMVAR',format['_FNC_PVAH_AdminReq: %1',_FNC_PVAH_AdminReq]] call FNC_A3_CUSTOMLOG;
  122. _token_by_uid = call _fnc_RandomGen;['RANDOMVAR',format['_token_by_uid: %1',_token_by_uid]] call FNC_A3_CUSTOMLOG;
  123. _uid_by_token = call _fnc_RandomGen;['RANDOMVAR',format['_uid_by_token: %1',_uid_by_token]] call FNC_A3_CUSTOMLOG;
  124. _server_setTokenR = call _fnc_RandomGen;['RANDOMVAR',format['_server_setTokenR: %1',_server_setTokenR]] call FNC_A3_CUSTOMLOG;
  125. _YourPlayerToken = call _fnc_RandomGen;['RANDOMVAR',format['_YourPlayerToken: %1',_YourPlayerToken]] call FNC_A3_CUSTOMLOG;
  126. _TokenCT = call _fnc_RandomGen;['RANDOMVAR',format['_TokenCT: %1',_TokenCT]] call FNC_A3_CUSTOMLOG;
  127. _AH_MAIN_BLOCK = call _fnc_RandomGen;['RANDOMVAR',format['_AH_MAIN_BLOCK: %1',_AH_MAIN_BLOCK]] call FNC_A3_CUSTOMLOG;
  128. _AHKickOFF = call _fnc_RandomGen;['RANDOMVAR',format['_AHKickOFF: %1',_AHKickOFF]] call FNC_A3_CUSTOMLOG;
  129. _AHKickLog = call _fnc_RandomGen;['RANDOMVAR',format['_AHKickLog: %1',_AHKickLog]] call FNC_A3_CUSTOMLOG;
  130. _FiredCheck = call _fnc_RandomGen;['RANDOMVAR',format['_FiredCheck: %1',_FiredCheck]] call FNC_A3_CUSTOMLOG;
  131. _clientdo = call _fnc_RandomGen;['RANDOMVAR',format['_clientdo: %1',_clientdo]] call FNC_A3_CUSTOMLOG;
  132. _AH_RunCheckENDVAR = call _fnc_RandomGen;['RANDOMVAR',format['_AH_RunCheckENDVAR: %1',_AH_RunCheckENDVAR]] call FNC_A3_CUSTOMLOG;
  133. _AH_RunCheckENDVAR_THREAD = call _fnc_RandomGen;['RANDOMVAR',format['_AH_RunCheckENDVAR_THREAD: %1',_AH_RunCheckENDVAR_THREAD]] call FNC_A3_CUSTOMLOG;
  134. _AH_HackLogArrayRND = call _fnc_RandomGen;['RANDOMVAR',format['_AH_HackLogArrayRND: %1',_AH_HackLogArrayRND]] call FNC_A3_CUSTOMLOG;
  135. _AH_SurvLogArrayRND = call _fnc_RandomGen;['RANDOMVAR',format['_AH_SurvLogArrayRND: %1',_AH_SurvLogArrayRND]] call FNC_A3_CUSTOMLOG;
  136. _AH_AdmiLogArrayRND = call _fnc_RandomGen;['RANDOMVAR',format['_AH_AdmiLogArrayRND: %1',_AH_AdmiLogArrayRND]] call FNC_A3_CUSTOMLOG;
  137. _TMPBAN = call _fnc_RandomGen;['RANDOMVAR',format['_TMPBAN: %1',_TMPBAN]] call FNC_A3_CUSTOMLOG;
  138. _massMessage = call _fnc_RandomGen;['RANDOMVAR',format['_massMessage: %1',_massMessage]] call FNC_A3_CUSTOMLOG;
  139. _massSysMessage = call _fnc_RandomGen;['RANDOMVAR',format['_massSysMessage: %1',_massSysMessage]] call FNC_A3_CUSTOMLOG;
  140. _AHpos = call _fnc_RandomGen;['RANDOMVAR',format['_AHpos: %1',_AHpos]] call FNC_A3_CUSTOMLOG;
  141. _ninetwo = call _fnc_RandomGen;['RANDOMVAR',format['_ninetwo: %1',_ninetwo]] call FNC_A3_CUSTOMLOG;
  142. _ninetwothread = call _fnc_RandomGen;['RANDOMVAR',format['_ninetwothread: %1',_ninetwothread]] call FNC_A3_CUSTOMLOG;
  143. _adminsA = call _fnc_RandomGen;['RANDOMVAR',format['_adminsA: %1',_adminsA]] call FNC_A3_CUSTOMLOG;
  144. _MC = call _fnc_RandomGen;['RANDOMVAR',format['_MC: %1',_MC]] call FNC_A3_CUSTOMLOG;
  145. _MCS = call _fnc_RandomGen;['RANDOMVAR',format['_MCS: %1',_MCS]] call FNC_A3_CUSTOMLOG;
  146. _oneachframe = call _fnc_RandomGen;['RANDOMVAR',format['_oneachframe: %1',_oneachframe]] call FNC_A3_CUSTOMLOG;
  147. _checkidicheckcheck = call _fnc_RandomGen;['RANDOMVAR',format['_checkidicheckcheck: %1',_checkidicheckcheck]] call FNC_A3_CUSTOMLOG;
  148. _lastshotmade = call _fnc_RandomGen;['RANDOMVAR',format['_lastshotmade: %1',_lastshotmade]] call FNC_A3_CUSTOMLOG;
  149. _dellocveh = call _fnc_RandomGen;['RANDOMVAR',format['_dellocveh: %1',_dellocveh]] call FNC_A3_CUSTOMLOG;
  150. _inCombatTime = call _fnc_RandomGen;['RANDOMVAR',format['_inCombatTime: %1',_inCombatTime]] call FNC_A3_CUSTOMLOG;
  151. _inCombatArray = call _fnc_RandomGen;['RANDOMVAR',format['_inCombatArray: %1',_inCombatArray]] call FNC_A3_CUSTOMLOG;
  152. _fnc_infiKeyHandler = call _fnc_RandomGen;['RANDOMVAR',format['_fnc_infiKeyHandler: %1',_fnc_infiKeyHandler]] call FNC_A3_CUSTOMLOG;
  153. _ButtonDownCnt = call _fnc_RandomGen;['RANDOMVAR',format['_ButtonDownCnt: %1',_ButtonDownCnt]] call FNC_A3_CUSTOMLOG;
  154. _ButtonDownTime = call _fnc_RandomGen;['RANDOMVAR',format['_ButtonDownTime: %1',_ButtonDownTime]] call FNC_A3_CUSTOMLOG;
  155. _clickOnMapTimer = call _fnc_RandomGen;['RANDOMVAR',format['_clickOnMapTimer: %1',_clickOnMapTimer]] call FNC_A3_CUSTOMLOG;
  156. _clickOnMapCaught = call _fnc_RandomGen;['RANDOMVAR',format['_clickOnMapCaught: %1',_clickOnMapCaught]] call FNC_A3_CUSTOMLOG;
  157. _vehicle_needs_check = call _fnc_RandomGen;['RANDOMVAR',format['_vehicle_needs_check: %1',_vehicle_needs_check]] call FNC_A3_CUSTOMLOG;
  158. _MAKE_VAR_DUMP_RANDOM = call _fnc_RandomGen;['RANDOMVAR',format['_MAKE_VAR_DUMP_RANDOM: %1',_MAKE_VAR_DUMP_RANDOM]] call FNC_A3_CUSTOMLOG;
  159. _MAKE_VAR_DUMP_CLIENT = call _fnc_RandomGen;['RANDOMVAR',format['_MAKE_VAR_DUMP_CLIENT: %1',_MAKE_VAR_DUMP_CLIENT]] call FNC_A3_CUSTOMLOG;
  160. _DUMPINGPLAYERUIDARRAY = call _fnc_RandomGen;['RANDOMVAR',format['_DUMPINGPLAYERUIDARRAY: %1',_DUMPINGPLAYERUIDARRAY]] call FNC_A3_CUSTOMLOG;
  161. _CURRENTLYDUMPING = call _fnc_RandomGen;['RANDOMVAR',format['_CURRENTLYDUMPING: %1',_CURRENTLYDUMPING]] call FNC_A3_CUSTOMLOG;
  162. _antiantihack_rndvar = call _fnc_RandomGen;['RANDOMVAR',format['_antiantihack_rndvar: %1',_antiantihack_rndvar]] call FNC_A3_CUSTOMLOG;
  163. _name_by_uid = call _fnc_RandomGen;['RANDOMVAR',format['_name_by_uid: %1',_name_by_uid]] call FNC_A3_CUSTOMLOG;
  164. _owner_by_uid = call _fnc_RandomGen;['RANDOMVAR',format['_owner_by_uid: %1',_owner_by_uid]] call FNC_A3_CUSTOMLOG;
  165. _customcommandingMenu = call _fnc_RandomGen;['RANDOMVAR',format['_customcommandingMenu: %1',_customcommandingMenu]] call FNC_A3_CUSTOMLOG;
  166. _customcommandingMenuOpen = call _fnc_RandomGen;['RANDOMVAR',format['_customcommandingMenuOpen: %1',_customcommandingMenuOpen]] call FNC_A3_CUSTOMLOG;
  167. if(_useTildMenu)then{_cMenu pushBack ('#USER:'+_customcommandingMenu);};
  168. _fnc_RandomGen =
  169. {
  170. _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'];
  171. _gen = 'PVAHR_';
  172. _max = 5+(round(random 3));
  173. for '_i' from 1 to _max do {_gen = _gen + str(round(random 9)) + (_arr select (random ((count _arr)-1)));};
  174. _allRandomGenVars pushBack _gen;
  175. _gen
  176. };
  177. _AH_KICKLOG = call _fnc_RandomGen;['RANDOMVAR',format['_AH_KICKLOG: %1',_AH_KICKLOG]] call FNC_A3_CUSTOMLOG;
  178. ['RANDOMVAR',format['----END-LINE---- (%1)',INFISTARVERSION]] call FNC_A3_CUSTOMLOG;
  179. _KK_fnc_arrayShuffle = {
  180. private '_cnt';
  181. _cnt = count _this;
  182. for '_i' from 1 to _cnt do {
  183. _this pushBack (_this deleteAt floor random _cnt);
  184. };
  185. _this
  186. };
  187. _allRandomGenVars call _KK_fnc_arrayShuffle;
  188. diag_log format['<infiSTAR.de> %1 - loading AntiHack..',time];
  189.  
  190. DB_ID = compileFinal "";
  191. BOMB = compileFinal "";
  192.  
  193.  
  194. /* OVERWRITING SOME SETTINGS */
  195. if(_MOD == 'AltisLife')then
  196. {
  197. /* Notification check */ _UNC = false; /* true or false */ /* _UNC = false; on AltisLife! - showNotification check */
  198. /* Check Attached Objs */ _CAO = false; /* true or false */ /* needs to be false when using e.g. IgiLoad */
  199. /* Check Actions Plr */ _CAP = false; /* true or false */ /* only logs to Surveillancelog so far */
  200. /* Remove Actions Plr */ _OAP = false; /* true or false */ /* Remove ALL Actions on Player Object: (mousewheel actions) needs to be false for AltisLife for e.g. gathering */
  201. /* Remove Actions Objs */ _OAO = false; /* true or false */ /* Remove ALL Actions on Objects near Player: (mousewheel actions) needs to be false when using e.g. IgiLoad */
  202. };
  203. /* Use BadVar #1 */ _UBV = true; /* true or false */ /* recommended to use */
  204. /* Use BadVar #2 */ _UBV2 = true; /* true or false */ /* recommended to use */
  205.  
  206. _badVarWhitelistReal = [];if(!isNil'_badVarWhitelist')then{_badVarWhitelistReal = _badVarWhitelist;};
  207. if(typeName _rOEF == 'STRING')then
  208. {
  209. _rOEF = compileFinal _rOEF;
  210. };
  211. if(typeName _CHD == 'STRING')then
  212. {
  213. _CHD = compileFinal _CHD;
  214. };
  215. if(typeName _customFiredEventhandler == 'STRING')then
  216. {
  217. _customFiredEventhandler = compileFinal _customFiredEventhandler;
  218. };
  219. _verybadStrings =
  220. [
  221. 'menu loaded','rustler','hangender','hungender',
  222. 'douggem','monstercheats','bigben','fireworks',' is god','> gìve ',
  223. 'hydroxus','kill target','no recoil','rapid fire','explode all','teleportall',
  224. 'destroyall','destroy all','code to execute','g-e-f','box-esp','god on','god mode','unlimited mags',
  225. '_execscript','_theban','rhynov1','b1g_b3n','infishit','_escorttt',
  226. 'e_x_t_a_s_y','weppp3','att4chm3nt','f0od_dr1nk','m3d1c4l','t0ol_it3ms','b4ckp4cks',
  227. 'it3m5','cl0th1ng','lystic','extasy','glasssimon_flo','remote_execution','gladtwoown','_pathtoscripts',
  228. 'flo_simon','sonicccc_','fury_','phoenix_','_my_new_bullet_man','_jm3',
  229. 'thirtysix','dmc_fnc_4danews','w_o_o_k_i_e_m_e_n_u','xbowbii_','jm3_','wuat','menutest_','listening to jack',
  230. 'dmcheats.de','kichdm','_news_banner','fucked up','lystics menu','rsccombo_2100','\dll\datmalloc','rsclistbox_1501',
  231. 'rsclistbox_1500','\dll\tcmalloc_bi','___newbpass','updated_playerlist','recking_ki','gg_ee_ff','ggggg_eeeee_fffff',
  232. 'gggg_eeee_ffff','mord all','teleport all','__byass','_altislifeh4x','antifrezze','ownscripts','ownscripted','mesnu',
  233. 'mystic_','init re','init life re','spoody','gef_','throx_','_adasaasasa','_dsfnsjf','cheatmenu','in54nity','markad','fuck_me_','_v4fin',
  234. 'a3randvar','infinite ammo','player markers','+ _code +','randomvar',
  235. 'i can break these cuffs','give 100k','kill all','grimbae','pony menu','35sp','lyštîc mêñu',
  236. 'insert script','3x3cutor','c4sh','t e l e p o r t','> còp','> ammo'
  237. ];
  238. _blacklistedVariables append [
  239. 'bis_fnc_dbg_reminder_value','bis_fnc_dbg_reminder','bis_menu_groupcommunication','bis_fnc_addcommmenuitem_menu','gtp',
  240. 'rscspectator','rscspectator_hints','rscspectator_display','rscspectator_playericon','gunrestrain',
  241. 'rscspectator_view','rscspectator_map','rscspectator_vision','rscspectator_keys','gspawnv',
  242. 'rscspectator_interface','gmoney','gkillall', 'time','servertime','myplayeruid','hhahaaaaar','charliesheenkeybinds','kickoff',
  243. 'yolo','runonce','notakeybind','action1','supa_licenses','autokick','wallaisseikun','mainmenu','anarray',
  244. 'gefclose','gefwhite','gefred','gefgreen','gefcyan','firsthint','new_queued','fn_exec','fnd_fnc_select','fnx3','antihackkick','tele','dmap','goldens_global_shit_yeah','glass911_run',
  245. 'geardialog_create','lystokeypress','thirtysix','ly_swaggerlikeus','jkeyszz','n2','boxofmagic','mainscripts','dmc_fnc_4danews','infistarbypass','exec_text','vehicle_dblclick','init_main',
  246. 'esp_count','nute_dat_bomber','s_cash100k','xposplayer','ly_re_onetime','skar_checka','mainscriptsv4','viewdistance','check_load','already_load','meins','f1','dummy','plane_jump',
  247. 'c_player','mouseclickeh','distp','nec2','menu_i_run_color_lp','glassv1nce_bindhandler','thecar','fastanimes','getinpassenger','iaimon','dmc_re_onetime','func_execonserver','fnc_serverkicknice',
  248. 'kick_admins','dasmokeon','hovering','r_kelly_be_flying','slx_xeh_bwc_init_compile','vincelol_altislife','life_fnc_byassskaroah','ah_fnc_mp','jayre','fn_newsbanner','hack_news','trollfuncs',
  249. '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',
  250. 'targetfuncs2','life_fnc_antifreeeeze','ly_keyforward','ty_re_onetime','life_fnc_xaaxaa','mein1','goddamnvehiclesxd','mystic_fnc_esp_distance','esp_id_setter','dummymen','whipbut','userfuncs',
  251. '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','paradox_s3tc4sh',
  252. 'checkchatloop','bringmeup','finie_s_p','fnc_infiAdminKeyDown','jay_vehicle_list',
  253. 'shit','whsh506_m41n','finifeaturesformatted','nigger_init','bmcloos','exile_slayexiles',
  254. 'buttons','opnmemeu','firstload','nss_ac_openvvs','nss_ac_openvas','nss_ac_setcaptive',
  255. 'nss_ac_invisible','nss_ac_mapteleport','nss_ac_opencode','nss_ac_freecam','nss_ac_godmode','nss_ac_execscript',
  256. 'nss_ac_openspectator','menuinit','realscripts','targetplr',
  257. 'MLRN_RE','Running','RE'
  258. ];
  259.  
  260.  
  261. _UMH_ARRAY = [
  262. ["getText(configfile >> 'RscDisplayInventory' >> 'controls' >> 'EpochBTN1' >> 'onMouseButtonDown')",'RscDisplayInventory >> EpochBTN1','onMouseButtonDown'],
  263. ["getText(configfile >> 'RscDisplayInventory' >> 'controls' >> 'EpochBTN2' >> 'onMouseButtonDown')",'RscDisplayInventory >> EpochBTN2','onMouseButtonDown'],
  264. ["getText(configfile >> 'TapOut' >> 'controls' >> 'tapout' >> 'action')",'TapOut','action'],
  265. ["getText(configfile >> 'TapOut' >> 'controls' >> 'tapout' >> 'onKeyDown')",'TapOut','onKeyDown'],
  266. ["getText(configFile >> 'RscDisplayOptionsVideo' >> 'controls' >> 'G_VideoOptionsControls' >> 'controls' >> 'HideAdvanced' >> 'OnButtonClick')",'RscDisplayOptionsVideo >> HideAdvanced','OnButtonClick'],
  267. ["getText(configFile >> 'RscDisplayOptions' >> 'controls' >> 'BCredits' >> 'OnButtonClick')",'RscDisplayOptions >> BCredits','OnButtonClick'],
  268. ["getText(configFile >> 'RscDisplayOptions' >> 'controls' >> 'ButtonCancel' >> 'OnButtonClick')",'RscDisplayOptions >> ButtonCancel','OnButtonClick'],
  269. ["getText(configFile >> 'RscDisplayOptions' >> 'controls' >> 'ButtonCancel' >> 'action')",'RscDisplayOptions >> ButtonCancel','action'],
  270. ["getText(configFile >> 'RscDisplayOptions' >> 'controls' >> 'BGameOptions' >> 'action')",'RscDisplayOptions >> BGameOptions','action'],
  271. ["getText(configFile >> 'RscDisplayOptions' >> 'controls' >> 'BConfigure' >> 'action')",'RscDisplayOptions >> BConfigure','action'],
  272. ["getText(configFile >> 'RscDisplayMPInterrupt' >> 'controls' >>'ButtonAbort' >> 'action')",'RscDisplayMPInterrupt >> ButtonAbort','action'],
  273. ["getText(configFile >> 'RscDisplayMPInterrupt' >> 'controls' >>'ButtonAbort' >> 'OnButtonClick')",'RscDisplayMPInterrupt >> ButtonAbort','OnButtonClick']
  274. ];
  275. _UMH_ARRAYSERVER = [];
  276. {
  277. _string = call compile (_x select 0);
  278. _sarray = toArray _string;
  279. _UMH_ARRAYSERVER pushBack _sarray;
  280. } forEach _UMH_ARRAY;
  281.  
  282. _disAllowVon = _disAllowVon - [5];
  283.  
  284. if(_MOD == 'Epoch')then
  285. {
  286. _onLoadUnload1Epochonly = [
  287. 'RscWelcomeEpoch','RscDisplayInfo','RscVersionUpdateEpoch','RscInGameUI','RscUnitInfo','RscStanceInfo','RscUnitInfoAirRTDBasic','RscUnitInfoAirRTDFull','EpochLoadingScreen',
  288. 'EpochGameUI','EpochGameUI2','EpochGameUI3','Interact','GroupRequests','CraftItem','InteractVehicle','InteractNPC','InteractBank','Epoch_myGroup','EPOCH_createGrp',
  289. 'Epoch_GroupInvite'
  290. ];
  291. _onLoadUnload1 = _onLoadUnload1 + _onLoadUnload1Epochonly;
  292. };
  293. _onLoadUnload2 = [];
  294. _onLoadUnload3 = [];
  295. {
  296. _onLoadUnload2 pushBack (toArray(getText(configFile >> _x >> 'onLoad')));
  297. _onLoadUnload3 pushBack (toArray(getText(configFile >> _x >> 'onUnload')));
  298. } forEach _onLoadUnload1;
  299. fnc_getserverTime = compileFinal "
  300. _hours = floor(serverTime / 60 / 60);
  301. _value = ((serverTime / 60 / 60) - _hours);
  302. if(_value == 0)then{_value = 0.0001;};
  303. _minutes = round(_value * 60);
  304. _mytime = format['%1h %2min | ',_hours,_minutes];
  305. _mytime
  306. ";
  307. fnc_stop_safe_glitch = compileFinal "
  308. if(!isNil'EPOCH_initUI_THREAD')then{terminate EPOCH_initUI_THREAD;EPOCH_initUI_THREAD=nil;};
  309. EPOCH_initUI_THREAD = _this spawn EPOCH_initUI;
  310. _container = _this select 1;
  311.  
  312. _locked = locked _container in [2, 3];
  313. _EPOCH_Locked = _container getVariable['EPOCH_Locked', false];
  314. _lockedNear = false;
  315.  
  316. if(_container isKindOf 'GroundWeaponHolder' || _container isKindOf 'WeaponHolderSimulated')then
  317. {
  318. {if (locked _x in [2, 3] ||_x getVariable['EPOCH_Locked', false]) exitWith {_lockedNear = true}} forEach (player nearSupplies 10);
  319. if(!_lockedNear)then
  320. {
  321. _vehicles = player nearObjects ['AllVehicles', 5];
  322. {
  323. _lockedx = locked _x in [2, 3];
  324. _EPOCH_Lockedx = _x getVariable['EPOCH_Locked', false];
  325. if((((_lockedx || _EPOCH_Lockedx) && !(local _x))||(!alive _x)) && !(_x in [_container,vehicle _container]))exitWith{_lockedNear = true;};
  326. } forEach _vehicles;
  327. };
  328. };
  329. if(_locked || _EPOCH_Locked || _lockedNear)then
  330. {
  331. if(!isNil'checkGearDisplayThread')then{terminate checkGearDisplayThread;checkGearDisplayThread=nil;};
  332. checkGearDisplayThread = [] spawn {
  333. disableSerialization;
  334. waitUntil {!isNull findDisplay 602};
  335. waitUntil {
  336. _display = findDisplay 602;
  337. _ctrl_cargo = _display displayCtrl 6401;
  338. _ctrl_ground = _display displayCtrl 6321;
  339. _ctrl_cargo ctrlEnable false;
  340. ctrlSetFocus _ctrl_ground;
  341. ctrlActivate _ctrl_ground;
  342. isNull findDisplay 602
  343. };
  344. };
  345. };
  346. ";
  347. FN_infiSTAR_S = compileFinal "
  348. params [['_input',''],['_code',{}],['_id',0],['_jip',false]];
  349. if(_id isEqualTo 0)exitWith{false};
  350. if(_code isEqualType '')then{_code=compile _code;};
  351. if(_id isEqualTo 2)exitWith{_input call _code};
  352. [_input,_code] remoteExecCall ['call',_id,_jip]
  353. ";
  354. fnc_getSteamNameIfSaved = compileFinal "
  355. params ['_uid','_name'];
  356. _steamName = missionNameSpace getVariable [format['STEAM_NAME_%1',_uid],''];
  357. if(_steamName isEqualTo '')then{_name}else{format['SteamName: %1 - IngameName: %2',_steamName,_name]}
  358. ";
  359. _A3AHPREstring = "
  360. "; if(_MOD == 'Epoch')then{ _A3AHPREstring = _A3AHPREstring + "
  361. _callwith = [_this,'infiSTAR.de'];
  362. if((_this isKindOf 'LandVehicle') || (_this isKindOf 'Air') || (_this isKindOf 'Ship') || (_this isKindOf 'Tank'))then
  363. {
  364. _callwith call EPOCH_server_save_killedVehicle;
  365. }
  366. else
  367. {
  368. if(typeOf _this in ['LockBox_EPOCH','Safe_EPOCH'] || (_this isKindOf 'Buildable_Storage'))then
  369. {
  370. _callwith call EPOCH_server_save_killedStorage;
  371. }
  372. else
  373. {
  374. _callwith call EPOCH_server_save_killedBuilding;
  375. };
  376. };
  377. "; }; _A3AHPREstring = _A3AHPREstring + "
  378. {deleteVehicle _x;} forEach (attachedObjects _this);
  379. deleteVehicle _this;
  380. ";
  381. fnc_deleteObject = compileFinal _A3AHPREstring;
  382. _admins = [];{_admins append (_x select 0)} forEach _adminUIDandAccess;
  383. _devs = ['76561198152111329'];{if!(_x in _admins)then{_admins pushBack _x;};} forEach _devs;
  384. _admins = _admins - [''];
  385. _A3AHstring = "
  386. "+_adminsA+" = "+str _admins+";{"+_adminsA+" = "+_adminsA+" - [_x];} forEach "+str _startAsNormal+";
  387. _server_setToken={
  388. params[['_uid','',['']]];
  389. _fnc_RandomGen =
  390. {
  391. _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'];
  392. _gen = _arr select (floor (random 25));
  393. for '_i' from 0 to (12+(round(random 5))) do {_gen = _gen + (_arr select (random ((count _arr)-1)));};
  394. _gen
  395. };
  396. _token = call _fnc_RandomGen;
  397. missionNameSpace setVariable [format['"+_token_by_uid+"%1',_uid],_token];
  398. missionNameSpace setVariable [format['"+_uid_by_token+"%1',_token],_uid];
  399. _token
  400. };
  401. "+_server_setTokenR+" = compileFinal ([_server_setToken] call fnc_CompilableString);
  402.  
  403.  
  404. FNC_INFISERVERKICK = {
  405. params[
  406. ['_name','',['']],
  407. ['_uid','',['']],
  408. ['_owner',-10,[0]],
  409. ['_reason','',['']]
  410. ];
  411.  
  412. _return = false;
  413. if(_owner > 2)then
  414. {
  415. _return = (call FN_GET_SERVERPW) serverCommand format ['#kick %1',_owner];
  416. }
  417. else
  418. {
  419. _return = (call FN_GET_SERVERPW) serverCommand format ['#kick %1',_uid];
  420. };
  421.  
  422. _admin = _uid in "+str _admins+";
  423. _log = if(_reason isEqualTo '')then{format['%1(%2) isAdmin? %3',_name,_uid,_admin]}else{format['%1(%2) isAdmin? %3: %4',_name,_uid,_admin,_reason]};
  424. if(_return)then
  425. {
  426. ['KICKLOG',_log] call FNC_A3_RL;
  427. }
  428. else
  429. {
  430. ['KICKLOG',format['ERROR! COULD NOT USE SERVER KICK FUNCTION FOR - [%1]',_log]] call FNC_A3_RL;
  431. };
  432. };
  433. FNC_INFISERVERKICK = compileFinal ([FNC_INFISERVERKICK] call fnc_CompilableString);
  434.  
  435. FNC_A3_infiSTARTMPBAN = {
  436. params[['_name',''],['_uid',''],['_reason','']];
  437.  
  438. if(isNil'"+_TMPBAN+"')then{"+_TMPBAN+"=[];}else{if(typeName "+_TMPBAN+"!='ARRAY')then{"+_TMPBAN+"=[];};};
  439. if!(_uid in "+_TMPBAN+")then
  440. {
  441. _admins = "+str _admins+";
  442. if(_uid in _admins)exitWith
  443. {
  444. _mytime = call fnc_getserverTime;
  445. _log = _mytime + format['%1(%2) ADMIN - would have been tempbanned now!',_name,_uid];
  446. _log call FNC_A3_HACKLOG;
  447. };
  448. "+_TMPBAN+" pushBack _uid;
  449. {if(getPlayerUID _x in _admins)then{(owner _x) publicVariableClient '"+_TMPBAN+"';};} forEach allPlayers;
  450. };
  451. [_name,_uid,-10,format['TEMP BAN: %1',_reason]] call FNC_INFISERVERKICK;
  452. };
  453. FNC_A3_infiSTARTMPBAN = compileFinal ([FNC_A3_infiSTARTMPBAN] call fnc_CompilableString);
  454.  
  455. FNC_A3_infiSTARBAN = {
  456. params[['_name',''],['_uid',''],['_reason','']];
  457.  
  458. if(_uid in "+str _admins+")exitWith
  459. {
  460. _mytime = call fnc_getserverTime;
  461. _log = _mytime + format['%1(%2) ADMIN - would have been banned now!',_name,_uid];
  462. _log call FNC_A3_HACKLOG;
  463. };
  464.  
  465. if(_reason == '')then
  466. {
  467. ['BANLOG',format['%1(%2)',_name,_uid]] call FNC_A3_RL;
  468. }
  469. else
  470. {
  471. ['BANLOG',format['%1(%2) - %3',_name,_uid,_reason]] call FNC_A3_RL;
  472. };
  473.  
  474. _return = (call FN_GET_SERVERPW) serverCommand format ['#exec ban %1',str _uid];
  475. if(!_return)then
  476. {
  477. _this call FNC_A3_infiSTARTMPBAN;
  478. };
  479. };
  480. FNC_A3_infiSTARBAN = compileFinal ([FNC_A3_infiSTARBAN] call fnc_CompilableString);
  481.  
  482. fn_infiSTAR_checkGlobalBanSkip = {
  483. !(_this in "+str _UID_SKIP_GLOBAL_BAN_CHECK+")
  484. };
  485. fn_infiSTAR_checkGlobalBanSkip = compileFinal ([fn_infiSTAR_checkGlobalBanSkip] call fnc_CompilableString);
  486. "; if(_armalog)then{ _A3AHstring = _A3AHstring + "
  487. fn_infiSTAR_checkGlobalBanState = {
  488. params ['_name','_uid','_owner'];
  489. _res = infiSTAR_DLL_Name callExtension format['5%1',_uid];
  490. if(_res isEqualTo '1')then{
  491. "; if(_USE_GLOBAL_BAN_CHECK)then{ _A3AHstring = _A3AHstring + "
  492. "; if(_BAN_GLOBAL_BANNED_LOCALLY)then{ _A3AHstring = _A3AHstring + "
  493. [_name,_uid,format['GLOBAL BAN: %1',_res]] call FNC_A3_infiSTARBAN;
  494. "; }else{ _A3AHstring = _A3AHstring + "
  495. [_name,_uid,_owner,format['GLOBAL BAN: %1',_res]] call FNC_INFISERVERKICK;
  496. "; }; _A3AHstring = _A3AHstring + "
  497. "; }else{ _A3AHstring = _A3AHstring + "
  498. _log = format['%1(%2) | GLOBAL BANNED PLAYER (NOT BANNED LOCALLY) | %3 [30-09-2017 16-37-47 - v254]',_name,_uid,time call FN_GET_TIME_TIME];
  499. ['SURVEILLANCELOG',_log] call FNC_A3_CUSTOMLOG;
  500. _log call fnc_add_survlog;
  501. "; }; _A3AHstring = _A3AHstring + "
  502. };
  503. };
  504. fn_infiSTAR_checkGlobalBanState = compileFinal ([fn_infiSTAR_checkGlobalBanState] call fnc_CompilableString);
  505. "; }; _A3AHstring = _A3AHstring + "
  506. diag_log format['<infiSTAR.de> %1 - Thread MAIN: starting!',time];
  507. _fnc_infiSTAR_PlayerLog = {
  508. params[['_uid',''],['_name',''],['_owner',-10]];
  509. "; if(_armalog)then{ _A3AHstring = _A3AHstring + "
  510. if(_uid call fn_infiSTAR_checkGlobalBanSkip)then{[_name,_uid,_owner] call fn_infiSTAR_checkGlobalBanState;};
  511. "; }; _A3AHstring = _A3AHstring + "
  512.  
  513. if(isNil'"+_TMPBAN+"')then{"+_TMPBAN+"=[];}else{if(typeName "+_TMPBAN+"!='ARRAY')then{"+_TMPBAN+"=[];};};
  514. if(_uid in "+_TMPBAN+")exitWith{[_name,_uid,_owner,'TMPBAN ARRAY BROKEN'] call FNC_INFISERVERKICK;};
  515. _lname = toLower _name;
  516. if(_lname isEqualTo 'dead')exitWith
  517. {
  518. _log = 'BadName (KICKED)';
  519. [_name,_uid,'SLOG_SKICK',toArray(_log)] call "+_FNC_AH_KICKLOG+";
  520. };
  521. if(_lname find '&' > -1)exitWith
  522. {
  523. _log = '& in name breaks BattleEye..';
  524. [_name,_uid,'SLOG_SKICK',toArray(_log)] call "+_FNC_AH_KICKLOG+";
  525. };
  526. {
  527. if(_lname find _x > -1)then
  528. {
  529. _log = format['BadName: %1 (KICKED)',_x];
  530. [_name,_uid,'SLOG_SKICK',toArray(_log)] call "+_FNC_AH_KICKLOG+";
  531. };
  532. } forEach ['thirtysix','le hippo','infis'];
  533. };
  534. fnc_infiSTAR_PlayerLog = compileFinal ([_fnc_infiSTAR_PlayerLog] call fnc_CompilableString);
  535.  
  536. if(isNil '"+_AH_HackLogArrayRND+"')then{"+_AH_HackLogArrayRND+" = [];};
  537. if(isNil '"+_AH_SurvLogArrayRND+"')then{"+_AH_SurvLogArrayRND+" = [];};
  538. if(isNil '"+_AH_AdmiLogArrayRND+"')then{"+_AH_AdmiLogArrayRND+" = [];};
  539. diag_log format['<infiSTAR.de> %1 - Thread MAIN: loading...!',time];
  540. diag_log format['<infiSTAR.de> %1 - Thread MAIN: compiling and/or sending none-threaded code!',time];
  541. 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;};};
  542. "; if(_VDN)then{ _A3AHstring = _A3AHstring + "
  543. _fnc_VoteTimeServer =
  544. {
  545. _clientUID = _this select 0;
  546. _vote = _this select 1;
  547.  
  548. if(isNil 'TimeVoteCooldown')then{TimeVoteCooldown = 300;};
  549. if(isNil 'LastVoteGoneThrough')then{LastVoteGoneThrough = 600;};
  550. if((LastVoteGoneThrough == 0) || ((TimeVoteCooldown + LastVoteGoneThrough) < time))then
  551. {
  552. if(isNil 'VoteArray')then{VoteArray = [];};
  553. if!(_clientUID in VoteArray)then
  554. {
  555. VoteArray pushBack _clientUID;
  556. VoteArray pushBack _vote;
  557. _cntAll = count allPlayers;
  558. _cntVoted = {getPlayerUID _x in VoteArray} count allPlayers;
  559. if((_cntAll > 0) && (_cntVoted > 0))then
  560. {
  561. _cntday = 0;
  562. _cntnight = 0;
  563. if((_cntVoted / _cntAll) > 0.49)then
  564. {
  565. _oUIDs = [];
  566. {
  567. _xUID = getPlayerUID _x;
  568. if(_xUID != '')then
  569. {
  570. _oUIDs pushBack _xUID;
  571. };
  572. } forEach allPlayers;
  573. for '_i' from 0 to (count VoteArray)-1 step 2 do
  574. {
  575. _cUID = VoteArray select _i;
  576. _cVOTE = VoteArray select (_i+1);
  577. if(_cUID in _oUIDs)then
  578. {
  579. if(_cVOTE == 'DAY')then{_cntday = _cntday + 1;};
  580. if(_cVOTE == 'NIGHT')then{_cntnight = _cntnight + 1;};
  581. };
  582. };
  583.  
  584. _txt = format['%1 of %2 Players voted. %3 for Day and %4 for Night.',_cntVoted,_cntAll,_cntday,_cntnight];
  585. "+_massMessage+" = ['<t size=''0.55'' color=''#0B6121''>'+(_txt)+'</t>',safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079];
  586. {(owner _x) publicVariableClient '"+_massMessage+"';} forEach allPlayers;
  587.  
  588. _date = date;
  589. _date set [3,11];
  590. if(_cntnight > _cntday)then
  591. {
  592. _date set [3,23];
  593. };
  594. setDate _date;
  595. VoteArray = [];
  596. LastVoteGoneThrough = time;
  597. }
  598. else
  599. {
  600. _txt = format['%1 of %2 Players voted (/vote day or /vote night).',_cntVoted,_cntAll];
  601. "+_massMessage+" = ['<t size=''0.55'' color=''#0B6121''>'+(_txt)+'</t>',safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079];
  602. {(owner _x) publicVariableClient '"+_massMessage+"';} forEach allPlayers;
  603. };
  604. };
  605. };
  606. }
  607. else
  608. {
  609. _txt = format['Wait %1s more until next day/night vote can be made!',round((TimeVoteCooldown + LastVoteGoneThrough) - time)];
  610. "+_massMessage+" = ['<t size=''0.55'' color=''#0B6121''>'+(_txt)+'</t>',safeZoneXAbs/safeZoneWAbs/4,SafeZoneY+0.02,10,0,0,3079];
  611. {(owner _x) publicVariableClient '"+_massMessage+"';} forEach allPlayers;
  612. };
  613. };
  614. fnc_VoteTimeServer = compileFinal ([_fnc_VoteTimeServer] call fnc_CompilableString);
  615. "; }; _A3AHstring = _A3AHstring + "
  616. _FNC_AH_KICKLOG = {
  617. params[['_name',''],['_puid',''],['_what','']];
  618. if((_name != '')&&(_puid == ''))then
  619. {
  620. {
  621. if(!isNull _x)then
  622. {
  623. if(alive _x)then
  624. {
  625. if(name _x == _name)then
  626. {
  627. _puid = getPlayerUID _x;
  628. diag_log format['<infiSTAR.de> CLIENT NO UID - SERVER RESOLVED: %1(%2).. used allPlayers',_name,_puid];
  629. };
  630. };
  631. };
  632. } forEach allPlayers;
  633. };
  634. if(_what isEqualTo 'KICKME')exitWith{[_name,_puid,-10,'KICKME CALL FROM CLIENT'] call FNC_INFISERVERKICK;};
  635. "; if(_CLG)then{ _A3AHstring = _A3AHstring + "
  636. if(_what isEqualTo 'COMBATCHECK')exitWith
  637. {
  638. _inCombat = _this select 3;
  639. if(isNil'"+_inCombatArray+"')then{"+_inCombatArray+" = [];};
  640. _fid = "+_inCombatArray+" find _puid;
  641. if(_fid != -1)then
  642. {
  643. "+_inCombatArray+" set[(_fid+1),_inCombat];
  644. }
  645. else
  646. {
  647. "+_inCombatArray+" pushBack _puid;
  648. "+_inCombatArray+" pushBack _inCombat;
  649. };
  650. };
  651. "; }; _A3AHstring = _A3AHstring + "
  652. _mytime = call fnc_getserverTime;
  653. _admins = "+str _admins+";
  654. _locDevs = "+str _devs+";
  655. if(_what == 'TPLOG')exitWith
  656. {
  657. _adminName = _this select 4;
  658. _adminPUID = _this select 5;
  659. if(_adminPUID in _locDevs)exitWith{};
  660. _lastpos = _this select 6;
  661. _mapLP = mapGridPosition _lastpos;
  662. _curpos = _this select 7;
  663. _mapCP = mapGridPosition _curpos;
  664. _log = _mytime + format['%1(%2) | Teleported %3(%4) from %5(%6) to %7(%8) (%9m)',_adminName,_adminPUID,_name,_puid,_lastpos,_mapLP,_curpos,_mapCP,round(_lastpos distance _curpos)];
  665. _log call FNC_A3_ADMINLOG;
  666. "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
  667. "+_AH_AdmiLogArrayRND+" pushBack _log;{if((getPlayerUID _x) in _admins)then{(owner _x) publicVariableClient '"+_AH_AdmiLogArrayRND+"';};} forEach allPlayers;
  668. "; }; _A3AHstring = _A3AHstring + "
  669. };
  670. "; if(_LVC)then{ _A3AHstring = _A3AHstring + "
  671. if(_what == 'LVC')exitWith
  672. {
  673. private['_plrObj','_vehptype','_vehpos'];
  674. _plrObj = _this select 3;
  675. _vehptype = _this select 4;
  676. _vehpos = _this select 5;
  677. if((!isNil '_plrObj') && (!isNil '_vehptype'))then
  678. {
  679. if(!isNull _plrObj)then
  680. {
  681. _veh = vehicle _plrObj;
  682. _vehstype = typeOf _veh;
  683. if(_plrObj != _veh)then
  684. {
  685. "; if(_UVC)then{ _A3AHstring = _A3AHstring + "
  686. if((!("+str _UVW+") && {_vehstype in "+str _ForbiddenVehicles+"}) || (("+str _UVW+") && {!(_vehstype in "+str _VehicleWhiteList+")}))then
  687. {
  688. _crew = crew _veh;
  689. if(_crew isEqualTo [])then
  690. {
  691. _log = format['BadVehicle (S-UVC+LVC): %1',_vehstype];
  692. ['SERVER','SERVER','HLOG',toArray(_log)] call "+_FNC_AH_KICKLOG+";
  693. _veh call fnc_deleteObject;
  694. }
  695. else
  696. {
  697. if(call{{if((getPlayerUID _x) in "+_adminsA+")exitWith{true};false} forEach _crew;})exitWith{};
  698.  
  699. _log = format['BadVehicle (S-UVC+LVC): %1',_vehstype];
  700. {
  701. _name = name _x;
  702. _puid = getPlayerUID _x;
  703. [_name,_puid,'HLOG',toArray(_log)] call "+_FNC_AH_KICKLOG+";
  704. } forEach _crew;
  705. _veh call fnc_deleteObject;
  706. };
  707. };
  708. "; }; _A3AHstring = _A3AHstring + "
  709. };
  710. if(!isNull _veh)then
  711. {
  712. if((_plrObj == _veh) && (_vehstype != _vehptype))then
  713. {
  714. _vehicles = _plrObj nearEntities ['AllVehicles',300];
  715. if!(_veh in _vehicles)then
  716. {
  717. "+_dellocveh+" = '';
  718. (owner _plrObj) publicVariableClient '"+_dellocveh+"';
  719. "+_dellocveh+" = nil;
  720. _log = format['LocalVehicle: %1 @%2 || ServerVehicle: %3 @%4',_vehptype,_vehpos,_vehstype,mapGridPosition _plrObj];
  721. [_name,_puid,'SLOG',toArray(_log)] call "+_FNC_AH_KICKLOG+";
  722. };
  723. };
  724. };
  725. };
  726. };
  727. };
  728. "; }; _A3AHstring = _A3AHstring + "
  729. _work = toString(_this select 3);
  730. _log = _mytime + format['%1(%2) | %3',_name,_puid,_work];
  731. "; if(_LogAdminActions)then{ _A3AHstring = _A3AHstring + "
  732. if(_what == 'ALOG')exitWith
  733. {
  734. _log call FNC_A3_ADMINLOG;
  735. "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
  736. "+_AH_AdmiLogArrayRND+" pushBack _log;{if((getPlayerUID _x) in _admins)then{(owner _x) publicVariableClient '"+_AH_AdmiLogArrayRND+"';};} forEach allPlayers;
  737. "; }; _A3AHstring = _A3AHstring + "
  738. };
  739. "; }; _A3AHstring = _A3AHstring + "
  740. if(_what in ['SLOG','SLOG_SKICK'])exitWith
  741. {
  742. _log call FNC_A3_SURVEILLANCELOG;
  743. "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
  744. "+_AH_SurvLogArrayRND+" pushBack _log;{if((getPlayerUID _x) in _admins)then{(owner _x) publicVariableClient '"+_AH_SurvLogArrayRND+"';};} forEach allPlayers;
  745. "; }; _A3AHstring = _A3AHstring + "
  746. if(_what == 'SLOG_SKICK')exitWith
  747. {
  748. [_name,_puid,-10,format['%1: %2',_what,_work]] call FNC_INFISERVERKICK;
  749. };
  750. };
  751. if(_what isEqualTo 'SLOG_RE')exitWith
  752. {
  753. ['SURVEILLANCELOG',_log] call FNC_A3_RL;
  754. "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
  755. "+_AH_SurvLogArrayRND+" pushBack _log;{if((getPlayerUID _x) in _admins)then{(owner _x) publicVariableClient '"+_AH_SurvLogArrayRND+"';};} forEach allPlayers;
  756. "; }; _A3AHstring = _A3AHstring + "
  757. };
  758. if(_what in ['BAN','TMPBAN','HLOG','HLOG_SKICK'])exitWith
  759. {
  760. _log call FNC_A3_HACKLOG;
  761. "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
  762. "+_AH_HackLogArrayRND+" pushBack _log;{if((getPlayerUID _x) in _admins)then{(owner _x) publicVariableClient '"+_AH_HackLogArrayRND+"';};} forEach allPlayers;
  763. "; }; _A3AHstring = _A3AHstring + "
  764. if(_what == 'HLOG')exitWith{};
  765. [_name,_puid,-10,format['%1: %2',_what,_work]] call FNC_INFISERVERKICK;
  766. if(_what in ['BAN','TMPBAN'])exitWith
  767. {
  768. _log = _mytime + format['%1(%2) BANNED | %3',_name,_puid,_work];
  769. if(_puid in _admins)then
  770. {
  771. _adminlog = _mytime + format['%1(%2) ADMIN - would have been banned now!',_name,_puid];
  772. _adminlog call FNC_A3_HACKLOG;
  773. "+_AH_HackLogArrayRND+" pushBack _adminlog;
  774. }
  775. else
  776. {
  777. if(_what == 'BAN')then
  778. {
  779. [_name,_puid,_work] call FNC_A3_infiSTARBAN;
  780. }
  781. else
  782. {
  783. [_name,_puid,_work] call FNC_A3_infiSTARTMPBAN;
  784. };
  785. };
  786. };
  787. };
  788. if(_what == 'AC')exitWith
  789. {
  790. if(_puid in _admins)then
  791. {
  792. if(_work == '!admin')then
  793. {
  794. if(_puid in "+_adminsA+")then
  795. {
  796. "+_adminsA+" = "+_adminsA+" - [_puid];
  797.  
  798. "; if(_announce_adminstate_changed)then{ _A3AHstring = _A3AHstring + "
  799. _txt = format['%1 logged out as admin..',_name];
  800. "+_massMessage+" = ['<t size=''0.5'' color=''#FF0040''>'+(_txt)+'</t>',-0.1,0.96 * safezoneH + safezoneY,10,0,0,3079];
  801. {(owner _x) publicVariableClient '"+_massMessage+"';} forEach allPlayers;
  802. "; }; _A3AHstring = _A3AHstring + "
  803.  
  804. if(_puid in _locDevs)exitWith{};
  805. _alog = _mytime + format['%1(%2) | is a normal player now.',_name,_puid];
  806. _alog call FNC_A3_ADMINLOG;
  807. "+_AH_AdmiLogArrayRND+" pushBack _alog;
  808. }
  809. else
  810. {
  811. "+_adminsA+" pushBack _puid;
  812.  
  813. "; if(_announce_adminstate_changed)then{ _A3AHstring = _A3AHstring + "
  814. _txt = format['%1 logged in as admin!',_name];
  815. "+_massMessage+" = ['<t size=''0.5'' color=''#0080FF''>'+(_txt)+'</t>',-0.1,0.96 * safezoneH + safezoneY,10,0,0,3079];
  816. {(owner _x) publicVariableClient '"+_massMessage+"';} forEach allPlayers;
  817. "; }; _A3AHstring = _A3AHstring + "
  818.  
  819. if(_puid in _locDevs)exitWith{};
  820. _alog = _mytime + format['%1(%2) | is an admin again.',_name,_puid];
  821. _alog call FNC_A3_ADMINLOG;
  822. "+_AH_AdmiLogArrayRND+" pushBack _alog;
  823. };
  824.  
  825. infiSTAR_ADMINS = "+_adminsA+";
  826.  
  827. {
  828. if((getPlayerUID _x) in _admins)then
  829. {
  830. (owner _x) publicVariableClient 'infiSTAR_ADMINS';
  831. "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
  832. (owner _x) publicVariableClient '"+_AH_AdmiLogArrayRND+"';
  833. "; }; _A3AHstring = _A3AHstring + "
  834. };
  835. } forEach allPlayers;
  836.  
  837. infiSTAR_ADMINS = nil;
  838. };
  839. };
  840. };
  841. "; if(_VDN)then{ _A3AHstring = _A3AHstring + "
  842. if(_what == 'VOTE')exitWith
  843. {
  844. if(_work in ['DAY','NIGHT'])exitWith
  845. {
  846. [_puid,_work] call fnc_VoteTimeServer;
  847. };
  848. };
  849. "; }; _A3AHstring = _A3AHstring + "
  850. };
  851. "+_FNC_AH_KICKLOG+" = compileFinal ([_FNC_AH_KICKLOG] call fnc_CompilableString);
  852.  
  853.  
  854.  
  855. _FNC_PVAH_AdminReq = {
  856. _allPlayers = "+str _admins+";
  857. _locDevs = "+str _devs+";
  858.  
  859. _this params [
  860. ['_tokenreceived','',['']],
  861. ['_array',[],[[]]],
  862. ['_clientNetID','',['']]
  863. ];
  864.  
  865.  
  866. if(_tokenreceived isEqualTo '')exitWith
  867. {
  868. _mytime = call fnc_getserverTime;
  869. _log = _mytime + 'AdminReq tokenreceived is empty (v254)';
  870. _log call FNC_A3_SURVEILLANCELOG;
  871. };
  872. if(count _array < 2)exitWith
  873. {
  874. _mytime = call fnc_getserverTime;
  875. _log = _mytime + format['AdminReq bad array: %1 (v254)',_array];
  876. _log call FNC_A3_SURVEILLANCELOG;
  877. };
  878. if(_clientNetID isEqualTo '')exitWith
  879. {
  880. _mytime = call fnc_getserverTime;
  881. _log = _mytime + 'AdminReq clientNetID is empty (v254)';
  882. _log call FNC_A3_SURVEILLANCELOG;
  883. };
  884.  
  885.  
  886. _ObjFromNetID = objectFromNetId _clientNetID;
  887. if(!isPlayer _ObjFromNetID)exitWith
  888. {
  889. _mytime = call fnc_getserverTime;
  890. _log = _mytime + 'AdminReq _ObjFromNetID is Null (v254)';
  891. _log call FNC_A3_SURVEILLANCELOG;
  892. };
  893. _clientID = (owner _ObjFromNetID);
  894. _clientUID = (getPlayerUID _ObjFromNetID);
  895. _clientName = (name _ObjFromNetID);
  896.  
  897. _uid_by_token = missionNameSpace getVariable [format['"+_uid_by_token+"%1',_tokenreceived],''];
  898. if(!(_clientUID isEqualTo _uid_by_token) || (_clientUID isEqualTo ''))exitWith
  899. {
  900. _log = format['%1(%2) | AdminReq - Bad PUID / Token: Token received [%3] belongs to [%4] and not [%2] (v254)',_clientName,_clientUID,_tokenreceived,_uid_by_token];
  901. _log call FNC_A3_SURVEILLANCELOG;
  902. };
  903.  
  904.  
  905. _array params [
  906. ['_option',0,[0]],
  907. ['_playerObj',objNull,[objNull]]
  908. ];
  909. if!(_ObjFromNetID isEqualTo _playerObj)then
  910. {
  911. _mytime = call fnc_getserverTime;
  912. _log = _mytime + format['AdminReq _playerObj != _ObjFromNetID - %1/2 (v254)',_playerObj,_ObjFromNetID];
  913. _log call FNC_A3_SURVEILLANCELOG;
  914. _playerObj = _ObjFromNetID;
  915. };
  916.  
  917. if(_option isEqualTo 69)exitWith
  918. {
  919. _opt = _array select 2;
  920. _code = _array select 3;
  921. _code = toString _code;
  922. _code = compile _code;
  923. if(_opt isEqualTo 0)exitWith{call _code;['',_code,-2,false] call FN_infiSTAR_S;};
  924. if(_opt isEqualTo 1)exitWith{call _code;};
  925. if(_opt isEqualTo 2)exitWith{
  926. _target = objectFromnetId(_array select 4);
  927. if(isNil '_target')exitWith{};
  928. if(typename _target != 'OBJECT')exitWith{};
  929. if(isNull _target)exitWith{};
  930. _owner = owner _target;
  931. if(_owner in [0,-2,2])exitWith{};
  932. ['',_code,_owner,false] call FN_infiSTAR_S;
  933. };
  934. };
  935. if(_option isEqualTo -668)exitWith
  936. {
  937. _clearLog = _array select 2;
  938. _adminObjects = [];{if((getPlayerUID _x) in _allPlayers)then{_adminObjects pushBack _x;};} forEach allPlayers;
  939. if(_clearLog == 0)then
  940. {
  941. {
  942. if(!isNull _x)then
  943. {
  944. "+_AH_HackLogArrayRND+" = [];(owner _x) publicVariableClient '"+_AH_HackLogArrayRND+"';
  945. "+_AH_SurvLogArrayRND+" = [];(owner _x) publicVariableClient '"+_AH_SurvLogArrayRND+"';
  946. };
  947. } forEach _adminObjects;
  948. }
  949. else
  950. {
  951. {
  952. if(!isNull _x)then
  953. {
  954. "+_AH_AdmiLogArrayRND+" = [];(owner _x) publicVariableClient '"+_AH_AdmiLogArrayRND+"';
  955. };
  956. } forEach _adminObjects;
  957. };
  958. };
  959. if(_option isEqualTo -667)exitWith
  960. {
  961. _puid = _array select 2;
  962. if(isNil'"+_TMPBAN+"')then{"+_TMPBAN+"=[];}else{if(typeName "+_TMPBAN+"!='ARRAY')then{"+_TMPBAN+"=[];};};
  963. "+_TMPBAN+" = "+_TMPBAN+" - [_puid];
  964. {if(getPlayerUID _x in _allPlayers)then{(owner _x) publicVariableClient '"+_TMPBAN+"';};} forEach allPlayers;
  965. };
  966. if(_option isEqualTo -666)exitWith
  967. {
  968. _puid = _array select 2;
  969. _name = _array select 3;
  970. [_name,_puid,'ADMINBAN'] call FNC_A3_infiSTARBAN;
  971. };
  972. if(_option isEqualTo -665)exitWith
  973. {
  974. _puid = _array select 2;
  975. _name = _array select 3;
  976. [_name,_puid,-10,'Kicked by Admin'] call FNC_INFISERVERKICK;
  977. };
  978. if(_option isEqualTo -664)exitWith
  979. {
  980. _uid = _array select 2;
  981. _targetId = missionNameSpace getVariable[format['"+_owner_by_uid+"%1',_uid],-2];
  982. [_uid, { if (getPlayerUID player isEqualTo _this) then { (findDisplay 46)closeDisplay 0; }; }, _targetId, false] call FN_infiSTAR_S;
  983. };
  984. if(_option isEqualTo -663)exitWith
  985. {
  986. _puid = _array select 2;
  987. _name = _array select 3;
  988. [_name,_puid] call FNC_DO_CLIENT_VAR_DUMP;
  989. };
  990. if(_option isEqualTo -662)exitWith
  991. {
  992. private['_inputArray','_case','_input1','_input2','_input3'];
  993. _inputArray = _array select 2;
  994. if(isNil '_inputArray')exitWith{};
  995. _case = -1;
  996. if(_inputArray isEqualType [])then
  997. {
  998. _inputArray params[
  999. ['_case',0,[0]],
  1000. ['_input1','',['',[]]],
  1001. ['_input2','',['',[]]],
  1002. ['_input3','',['',[]]]
  1003. ];
  1004.  
  1005. _input1 = if(_input1 isEqualType [])then{toString _input1};
  1006. _input2 = if(_input2 isEqualType [])then{toString _input2};
  1007. _input3 = if(_input3 isEqualType [])then{toString _input3};
  1008. }
  1009. else
  1010. {
  1011. _case = _inputArray;
  1012. };
  1013. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  1014. if(_case == 0)exitWith{'epochserver' callExtension format['901|%1',_input1];};
  1015. "; }; _A3AHstring = _A3AHstring + "
  1016. if(_case == 1)exitWith{'asd' serverCommand '#lock';};
  1017. if(_case == 2)exitWith{'asd' serverCommand '#unlock';};
  1018. if(_case == 3)exitWith{_puid = _input1;_name = _input2;_reason = _input3;[_name,_puid,_reason] call FNC_A3_infiSTARBAN;};
  1019. if(_case == 4)exitWith{_puid = _input1;_name = _input2;_reason = _input3;[_name,_puid,-10,format['Kicked by Admin %1',_reason]] call FNC_INFISERVERKICK;};
  1020. };
  1021. if(_option isEqualTo -4)exitWith
  1022. {
  1023. _delete = _array select 2;
  1024. if(typeName _delete != 'ARRAY')then{_delete = [_delete];};
  1025. {
  1026. if(!isNull _x)then
  1027. {
  1028. (vehicle _x) call fnc_deleteObject;
  1029. };
  1030. } forEach _delete;
  1031. };
  1032. if(_option isEqualTo -3)exitWith
  1033. {
  1034. _target = _array select 2;
  1035. _target setOwner 2;
  1036. _pos = getPos _target;
  1037. _pos set[2,(_pos select 2)+2];
  1038. _target setPos _pos;
  1039. _target setVectorUp [0,0,1];
  1040.  
  1041. [
  1042. _target,
  1043. {
  1044. _target = _this;
  1045. _pos = getPos _target;
  1046. _pos set[2,(_pos select 2)+2];
  1047. _target setPos _pos;
  1048. _target setVectorUp [0,0,1];
  1049. },
  1050. owner _target,
  1051. false
  1052. ] call FN_infiSTAR_S;
  1053. };
  1054. if(_option isEqualTo -2)exitWith
  1055. {
  1056. _target = _array select 2;
  1057. _target setDamage 5;
  1058. };
  1059. if(_option isEqualTo -1)exitWith
  1060. {
  1061. [_array select 2] spawn {
  1062. scriptName 'infiSTAR Zeus / Lighting bolt';
  1063. _pos = _this select 0;
  1064. _bolt = 'LightningBolt' createVehicle _pos;
  1065. _bolt setdamage 5;
  1066. _light = '#lightpoint' createVehicle _pos;
  1067. _light setposatl [_pos select 0,_pos select 1,(_pos select 2) + 10];
  1068. _light setLightDayLight true;
  1069. _light setLightBrightness 300;
  1070. _light setLightAmbient [0.05, 0.05, 0.1];
  1071. _light setlightcolor [1, 1, 2];
  1072. uiSleep 0.1;
  1073. _light setLightBrightness 0;
  1074. uiSleep 0.1;
  1075. _class = ['lightning1_F','lightning2_F'] call bis_Fnc_selectrandom;
  1076. _lightning = _class createVehicle _pos;
  1077. _light setLightBrightness (100 + random 100);
  1078. uiSleep 0.1;
  1079. deleteVehicle _lightning;
  1080. deleteVehicle _light;
  1081. };
  1082. };
  1083. if(_option isEqualTo 0)exitWith
  1084. {
  1085. private['_position','_dir','_vehObj','_slot','_vehClass','_colors','_color','_config','_selections','_textures','_textureSelectionIndex','_count'];
  1086. _vehClass = _array select 2;
  1087. _position = _array select 3;
  1088. _dir = _array select 4;
  1089.  
  1090. _vehObj = _vehClass createVehicle _position;
  1091. _vehObj setVariable ['"+_vehicle_needs_check+"',false];
  1092. _vehObj setdir _dir;
  1093. clearWeaponCargoGlobal _vehObj;
  1094. clearMagazineCargoGlobal _vehObj;
  1095. clearBackpackCargoGlobal _vehObj;
  1096. clearItemCargoGlobal _vehObj;
  1097. addToRemainsCollector[_vehObj];
  1098. _vehObj disableTIEquipment true;
  1099. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  1100. if(_vehObj isKindOf 'Air' || _vehObj isKindOf 'Ship' || _vehObj isKindOf 'LandVehicle')then
  1101. {
  1102. _vehObj call EPOCH_server_setVToken;
  1103.  
  1104. _fnc_setSlot =
  1105. {
  1106. _slot = EPOCH_VehicleSlots select 0;
  1107. EPOCH_VehicleSlots = EPOCH_VehicleSlots - [_slot];
  1108. EPOCH_VehicleSlotCount = count EPOCH_VehicleSlots;
  1109. publicVariable 'EPOCH_VehicleSlotCount';
  1110. _vehObj setVariable['VEHICLE_SLOT',_slot,true];
  1111. };
  1112. if!(EPOCH_VehicleSlots isEqualTo[])then
  1113. {
  1114. call _fnc_setSlot;
  1115. }
  1116. else
  1117. {
  1118. _slot = -123;
  1119. {
  1120. _slot = _x getVariable['VEHICLE_SLOT',-123];
  1121. if(str _slot != str(-123))exitWith
  1122. {
  1123. [_x,'infiSTAR.de'] call EPOCH_server_save_killedVehicle;
  1124. deleteVehicle _x;
  1125. };
  1126. } forEach allDead;
  1127. if(str _slot != str(-123))then
  1128. {
  1129. call _fnc_setSlot;
  1130. };
  1131. };
  1132.  
  1133. _config = (configFile >> 'CfgVehicles' >> _vehClass >> 'availableColors');
  1134. if(isArray(_config))then
  1135. {
  1136. _textureSelectionIndex = configFile >> 'CfgVehicles' >> _vehClass >> 'textureSelectionIndex';
  1137. _selections = if(isArray(_textureSelectionIndex))then{getArray(_textureSelectionIndex)} else { [0] };
  1138. _colors = getArray(_config);
  1139. _textures = _colors select 0;
  1140. _color = floor (random (count _textures));
  1141. _count = (count _colors)-1;
  1142. {
  1143. if(_count >= _forEachIndex)then
  1144. {
  1145. _textures = _colors select _forEachIndex;
  1146. };
  1147. _vehObj setObjectTextureGlobal [_x, (_textures select _color)];
  1148. } forEach _selections;
  1149. _vehObj setVariable['VEHICLE_TEXTURE',_color];
  1150. };
  1151. _vehObj call EPOCH_server_save_vehicle;
  1152. _vehObj call EPOCH_server_vehicleInit;
  1153. };
  1154. "; }; _A3AHstring = _A3AHstring + "
  1155. };
  1156. if(_option isEqualTo 1)exitWith
  1157. {
  1158. _unit = _array select 2;
  1159. _pos = _array select 3;
  1160.  
  1161. {
  1162. if(!isNull _x)then
  1163. {
  1164. if(isPlayer _x)then
  1165. {
  1166. "+_AHpos+" = [_clientName,_clientUID,_pos];
  1167. (owner _x) publicVariableClient '"+_AHpos+"';
  1168. };
  1169. };
  1170. } forEach (crew (vehicle _unit));
  1171.  
  1172. (vehicle _unit) allowDamage false;
  1173. (vehicle _unit) SetVelocity [0,0,1];
  1174. (vehicle _unit) setPosATL _pos;
  1175. (vehicle _unit) allowDamage true;
  1176. };
  1177. if(_option isEqualTo 2)exitWith
  1178. {
  1179. _state = _array select 2;
  1180. if(_state == 1)then
  1181. {
  1182. _playerObj hideObjectGlobal true;
  1183. }
  1184. else
  1185. {
  1186. _playerObj hideObjectGlobal false;
  1187. };
  1188. };
  1189. if(_option isEqualTo 3)exitWith
  1190. {
  1191. _pos = _array select 2;
  1192. _click = _array select 3;
  1193. if(isClass (configFile >> 'CfgVehicles' >> _click))exitWith{
  1194. _object = createVehicle [_click,_pos,[],3,'CAN_COLLIDE'];
  1195. clearWeaponCargoGlobal _object;
  1196. clearMagazineCargoGlobal _object;
  1197. clearBackpackCargoGlobal _object;
  1198. clearItemCargoGlobal _object;
  1199. };
  1200.  
  1201.  
  1202. _spawner = _array select 1;
  1203. if (_spawner != vehicle _spawner) exitwith {
  1204. vehicle _spawner addItemCargoGlobal[_click, 1];
  1205. };
  1206.  
  1207.  
  1208. _object = objNull;
  1209. _WeaponHolders = nearestObjects[_pos,['GroundWeaponHolder','WeaponHolderSimulated','Land_MPS_EPOCH'],5];
  1210. if!(_WeaponHolders isEqualTo [])then{_object = _WeaponHolders select 0;};
  1211. if(isNull _object)then
  1212. {
  1213. _object = createVehicle ['WeaponHolderSimulated',_pos,[],3,'CAN_COLLIDE'];
  1214. };
  1215. _object addItemCargoGlobal [_click,1];
  1216. if(isClass (configFile >> 'CfgWeapons' >> _click))then
  1217. {
  1218. _magazines = getArray (configFile >> 'CfgWeapons' >> _click >> 'magazines');
  1219. if(str _magazines != '[]')then
  1220. {
  1221. {_object addItemCargoGlobal [_x,3];} forEach _magazines;
  1222. };
  1223. };
  1224. _object setPosATL [_pos select 0,_pos select 1,(_pos select 2)+0.3];
  1225. };
  1226. if(_option isEqualTo 4)exitWith
  1227. {
  1228. private['_target','_unitClass'];
  1229. _target=_array select 2;
  1230. _unitClass = _array select 3;
  1231. [_unitClass,_target,true] remoteexec ['EPOCH_unitSpawn',_target];
  1232. };
  1233. if(_option isEqualTo 5)exitWith
  1234. {
  1235. _target = _array select 2;
  1236. _offset = _array select 3;
  1237. _maxHeight = _array select 4;
  1238. _target attachTo [vehicle _playerObj,[0,_offset,_maxHeight]];
  1239. };
  1240. if(_option isEqualTo 6)exitWith
  1241. {
  1242. _offset = _array select 2;
  1243.  
  1244. _date = date;
  1245. _date set [3,_offset];
  1246. EPOCH_StaticDateTime = _date;
  1247. setDate _date;
  1248. };
  1249. if(_option isEqualTo 7)exitWith
  1250. {
  1251. _msg = _array select 2;
  1252. if(typeName _msg == 'ARRAY')then
  1253. {
  1254. _msg = toString _msg;
  1255. };
  1256. {[_msg,_x] call fnc_serverMassMessage;} forEach allPlayers;
  1257. };
  1258. if(_option isEqualTo 8)exitWith
  1259. {
  1260. private ['_player', '_playerUID', '_items', '_class', '_dir', '_location', '_type', '_weapon', '_attachments', '_currWeap', '_itemSlot', '_itemqtys', '_goggles', '_headgear', '_vest', '_backpack', '_uniform', '_weapons', '_magazinesAmmo', '_itemsplayer', '_weaponsplayer', '_group', '_primaryWeapon', '_secondaryWeapon', '_attachment', '_equipped', '_wMags', '_playerGroup', '_droppedWeapons', '_newPlyr', '_token', '_owner', '_reviver'];
  1261. _player = _array select 2;
  1262. if(isNil '_player')exitWith{};
  1263. if(isNull _player)exitWith{};
  1264. _fnc_addItemToX = {
  1265. private ['_itemSlot','_itemqtys','_newPlyr'];
  1266. _newPlyr = _this select 0;
  1267. {
  1268. _itemSlot = _forEachIndex;
  1269. _itemqtys = _x select 1;
  1270. {
  1271. for '_i' from 1 to (_itemqtys select _forEachIndex) do {
  1272. switch _itemSlot do {
  1273. case 0: { _newPlyr addItemToUniform _x };
  1274. case 1: { _newPlyr addItemToVest _x };
  1275. case 2: { _newPlyr addItemToBackpack _x };
  1276. };
  1277. };
  1278. } forEach(_x select 0);
  1279. } forEach (_this select 1);
  1280. };
  1281. if(!local _player)then {
  1282. _playerUID = getPlayerUID _player;
  1283. if (!isNil '_playerUID' && !alive _player) then {
  1284. ['',{Epoch_canBeRevived = true;},(owner _player),false] call FN_infiSTAR_S;
  1285. _player setVariable['REVIVE',true,true];
  1286. _class = typeOf _player;
  1287. if (_class in ['Epoch_Male_F', 'Epoch_Female_F']) then {
  1288. if (_player getVariable['REVIVE', true]) then {
  1289. if (_player getvariable ['Reviving', false]) exitwith {
  1290. diag_log format['DEBUG Reviving skipped - Player already reviving : %1', _this];
  1291. };
  1292. _player setvariable ['Reviving',true];
  1293. _location = getPosATL _player;
  1294. _dir = getDir _player;
  1295. _playerGroup = _player getVariable['GROUP', ''];
  1296. _goggles = goggles _player;
  1297. _headgear = headgear _player;
  1298. _vest = vest _player;
  1299. _backpack = backpack _player;
  1300. _uniform = uniform _player;
  1301. _items = assignedItems _player;
  1302. _magazinesAmmo = magazinesAmmo _player;
  1303. _primaryWeapon = '';
  1304. _secondaryWeapon = '';
  1305. _wh = nearestObjects[_player, ['WeaponHolderSimulated'], 12];
  1306. _droppedPrimary = [];
  1307. _droppedSecondary = [];
  1308. _droppedWeapons = [];
  1309. _deleteprimary = [];
  1310. _deletesecondary = [];
  1311. reverse _wh;
  1312. {
  1313. _currwh = _x;
  1314. {
  1315. _type = getNumber(configfile >> 'cfgweapons' >> (_x select 0) >> 'type');
  1316. switch _type do {
  1317. case 1: {_droppedPrimary = _x; _primaryWeapon = _x select 0; _deleteprimary = [_currwh]};
  1318. case 4: {_droppedSecondary = _x; _secondaryWeapon = _x select 0;_deletesecondary = [_currwh]};
  1319. };
  1320. } forEach (weaponsItemsCargo _x);
  1321. } foreach _wh;
  1322. {
  1323. if (!isnull _x) then {deletevehicle _x};
  1324. } foreach (_deleteprimary+_deletesecondary);
  1325. if !(_droppedPrimary isequalto []) then {_droppedWeapons pushback _droppedPrimary};
  1326. if !(_droppedSecondary isequalto []) then {_droppedWeapons pushback _droppedSecondary};
  1327. _itemsplayer = [getItemCargo(uniformContainer _player), getItemCargo(vestContainer _player), getItemCargo(backpackContainer _player)];
  1328. _weaponsplayer = [getWeaponCargo(uniformContainer _player), getWeaponCargo(vestContainer _player), getWeaponCargo(backpackContainer _player)];
  1329. _weapons = [currentWeapon _player, ((weaponsItems _player) + _droppedWeapons), [_primaryWeapon, _secondaryWeapon, handgunWeapon _player]];
  1330. hideObjectGlobal _player;
  1331. _group = grpNull;
  1332. if (_playerGroup != '') then {
  1333. {
  1334. if ((_x getVariable['GROUP','']) == _playerGroup) exitWith {
  1335. _group = group _x;
  1336. };
  1337. }forEach allPlayers;
  1338.  
  1339. if (isNull _group) then {
  1340. _group = createGroup west;
  1341. };
  1342. } else {
  1343. _group = createGroup west;
  1344. };
  1345. _newPlyr = _group createUnit[_class, _location, [], 0, 'CAN_COLLIDE'];
  1346. addToRemainsCollector[_newPlyr];
  1347. {
  1348. _newPlyr disableAI _x;
  1349. }forEach['FSM', 'MOVE', 'AUTOTARGET', 'TARGET'];
  1350. _newPlyr setVariable ['SETUP', true];
  1351. _newPlyr setVariable ['PUID', _playerUID];
  1352. _newPlyr setVariable ['GROUP', _playerGroup];
  1353. _newPlyr setVariable ['REVIVE', false];
  1354. _newPlyr setDir _dir;
  1355. _newPlyr setPosATL _location;
  1356. _newPlyr setFatigue 1;
  1357. _newPlyr setDamage 0.25;
  1358. if (_uniform != '') then {
  1359. _newPlyr addUniform _uniform;
  1360. };
  1361. if (_backpack != '') then {
  1362. _newPlyr addBackpack _backpack;
  1363. };
  1364. if (_goggles != '') then {
  1365. _newPlyr addGoggles _goggles;
  1366. };
  1367. if (_headgear != '') then {
  1368. _newPlyr addHeadgear _headgear;
  1369. };
  1370. if (_vest != '') then {
  1371. _newPlyr addVest _vest;
  1372. };
  1373. if (count _weapons >= 3) then {
  1374. _equipped = _weapons select 2;
  1375. {
  1376. _weapon = _x deleteAt 0;
  1377. _type = getNumber(configfile >> 'cfgweapons' >> _weapon >> 'type');
  1378. _attachments = [];
  1379. _wMags = false;
  1380. _wMagsArray = [];
  1381. {
  1382. if (_x isEqualType []) then{
  1383. _wMags = true;
  1384. _wMagsArray pushback _x;
  1385. } else {
  1386. if (_x != '') then{
  1387. _attachments pushBack _x;
  1388. };
  1389. };
  1390. } forEach _x;
  1391. if (_wMags) then {
  1392. {
  1393. _newPlyr addMagazine _x;
  1394. } foreach _wMagsArray;
  1395. };
  1396. if (_weapon in _equipped) then {
  1397. _equipped = _equipped - [_weapon];
  1398. if (_weapon != '') then {
  1399. _newPlyr addWeapon _weapon;
  1400. };
  1401. switch _type do {
  1402. case 1: {
  1403. removeAllPrimaryWeaponItems _newPlyr;
  1404. { _newPlyr addPrimaryWeaponItem _x }forEach _attachments;
  1405. };
  1406. case 2: {
  1407. removeAllHandgunItems _newPlyr;
  1408. { _newPlyr addHandgunItem _x }forEach _attachments;
  1409. };
  1410. case 4: {
  1411. {
  1412. _newPlyr removeSecondaryWeaponItem _x;
  1413. } forEach(secondaryWeaponItems _newPlyr);
  1414. { _newPlyr addSecondaryWeaponItem _x }forEach _attachments;
  1415. };
  1416. };
  1417. }else{
  1418. {
  1419. _newPlyr addItem _x;
  1420. }forEach _attachments;
  1421. };
  1422. } forEach (_weapons select 1);
  1423. };
  1424. {
  1425. if (_x in ['Binocular','Rangefinder']) then {
  1426. _newPlyr addWeapon _x;
  1427. } else {
  1428. _newPlyr linkItem _x;
  1429. };
  1430. }forEach _items;
  1431. [_newPlyr, _itemsplayer] call _fnc_addItemToX;
  1432. [_newPlyr, _weaponsplayer] call _fnc_addItemToX;
  1433. {_newPlyr addMagazine _x;}forEach _magazinesAmmo;
  1434. _token = _newPlyr call EPOCH_server_setPToken;
  1435. _CorpseCrypto = _player getVariable['Crypto', 0];
  1436. if (_CorpseCrypto > 0) then {
  1437. _cIndex = EPOCH_customVars find 'Crypto';
  1438. _vars = _player getVariable['VARS', call EPOCH_defaultVars_SEPXVar];
  1439. _PlayerCrypto = _CorpseCrypto;
  1440. _PlayerCrypto remoteExec ['EPOCH_effectCrypto',_player];
  1441. _vars set[_cIndex, _PlayerCrypto];
  1442. _newPlyr setVariable['VARS', _vars];
  1443. };
  1444. [_newPlyr, _token, loadAbs _newPlyr] remoteExec ['EPOCH_clientRevive',_player];
  1445. ['',{Epoch_canBeRevived = true;},(owner _player),false] call FN_infiSTAR_S;
  1446. _player setVariable['REVIVE',true,true];
  1447. };
  1448. };
  1449. };
  1450. };
  1451. };
  1452. if(_option isEqualTo 9)exitWith
  1453. {
  1454. _target = _array select 2;
  1455. _target setDamage 0;
  1456. _target setFuel 1;
  1457. _target setBleedingRemaining 0;
  1458. _target setOxygenRemaining 1;
  1459.  
  1460. _veh = vehicle _target;
  1461. if((_veh isKindOf 'AllVehicles')&&!((_veh isKindOf 'Epoch_Male_F')||(_veh isKindOf 'Epoch_Female_F')||(_veh isKindOf 'Man')))then
  1462. {
  1463. _veh setDamage 0;
  1464. _veh setFuel 1;
  1465. [
  1466. _veh,
  1467. {_this setFuel 1;},
  1468. owner _veh,
  1469. false
  1470. ] call FN_infiSTAR_S;
  1471. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  1472. _veh call EPOCH_server_save_vehicle;
  1473. "; }; _A3AHstring = _A3AHstring + "
  1474. }
  1475. else
  1476. {
  1477. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  1478. if(isPlayer _target)then
  1479. {
  1480. "+_clientdo+" = '
  1481. player setBleedingRemaining 0;
  1482. player setOxygenRemaining 1;
  1483. {
  1484. missionNamespace setVariable[format[''EPOCH_player%1'',_x],EPOCH_defaultVars select(EPOCH_customVars find _x)];
  1485. } forEach[''Temp'',''Hunger'',''Thirst'',''Toxicity'',''Stamina'',''HitPoints'',''BloodP''];
  1486. EPOCH_playerEnergy = EPOCH_playerEnergyMax;
  1487. ';
  1488. (owner _target) publicVariableClient '"+_clientdo+"';
  1489. };
  1490. "; }; _A3AHstring = _A3AHstring + "
  1491.  
  1492. player setVariable['broken', false, false];
  1493.  
  1494. [
  1495. '',
  1496. {
  1497. life_brokenLeg = false;
  1498. ruhr_brokenLeg = false;
  1499. player setHit['legs',0];
  1500. player setHitPointDamage ['hitLegs',0];
  1501. },
  1502. owner _target,
  1503. false
  1504. ] call FN_infiSTAR_S;
  1505. };
  1506. };
  1507. if(_option isEqualTo 10)exitWith
  1508. {
  1509. _vehicle = _array select 2;
  1510. _value = _array select 3;
  1511. if (local _vehicle) then {
  1512. _vehicle lock _value;
  1513. } else {
  1514. if (_value) then {
  1515. [_vehicle, true] remoteExec ['EPOCH_client_lockVehicle',(owner _vehicle)];
  1516. } else {
  1517. [_vehicle, false] remoteExec ['EPOCH_client_lockVehicle',(owner _vehicle)];
  1518. };
  1519. };
  1520. };
  1521. if(_option isEqualTo 11)exitWith
  1522. {
  1523. _target = _array select 2;
  1524. _code = {
  1525. _inventoryP = [];
  1526. {_inventoryP pushBack _x;} forEach (assignedItems player);
  1527. {_inventoryP pushBack _x;} forEach (magazines player);
  1528. {_inventoryP pushBack _x;} forEach (weapons player);
  1529. {_inventoryP pushBack _x;} forEach (primaryWeaponItems player);
  1530. {_inventoryP pushBack _x;} forEach (secondaryWeaponItems player);
  1531. _inventoryP pushBack (primaryWeapon player);
  1532. _inventoryP pushBack (secondaryWeapon player);
  1533. _inventoryP pushBack (uniform player);
  1534. _inventoryP pushBack (vest player);
  1535. _inventoryP pushBack (backpack player);
  1536. _inventoryP pushBack (headgear player);
  1537. _inventoryP pushBack (goggles player);
  1538. {
  1539. player removeItem _x;
  1540. player removeWeapon _x;
  1541. player removeMagazine _x;
  1542. removeUniform player;
  1543. removeVest player;
  1544. removeBackpack player;
  1545. removeHeadgear player;
  1546. removeGoggles player;
  1547. player removePrimaryWeaponItem _x;
  1548. player removeSecondaryWeaponItem _x;
  1549. player unlinkItem _x;
  1550. } forEach _inventoryP;
  1551. };
  1552. ['',_code,(owner _target),false] call FN_infiSTAR_S;
  1553. };
  1554. if(_option isEqualTo 12)exitWith
  1555. {
  1556. _target = _array select 2;
  1557. _value = _array select 3;
  1558. if(!isNil 'EPOCH_defaultVars_SEPXVar')then
  1559. {
  1560. if(!isNull _target)then
  1561. {
  1562. _cIndex = EPOCH_customVars find 'Crypto';
  1563. _vars = _target getVariable['VARS', call EPOCH_defaultVars_SEPXVar];
  1564. _current_crypto = (((_vars select _cIndex) + _value) min 250000) max 0;
  1565. _current_crypto remoteExec ['EPOCH_effectCrypto',(owner _target)];
  1566. _vars set[_cIndex, _current_crypto];
  1567. _target setVariable['VARS', _vars];
  1568. };
  1569. };
  1570. };
  1571. if(_option isEqualTo 13)exitWith
  1572. {
  1573. _target = _array select 2;
  1574. _value = _array select 3;
  1575. _targetUID = getPlayerUID _target;
  1576. if(_targetUID in _locDevs)exitWith{};
  1577. _code = {for '_i' from 0 to 3 do {disableUserInput _this;};};
  1578. [_value,_code,(owner _target),false] call FN_infiSTAR_S;
  1579. };
  1580. if(_option isEqualTo 15)exitWith
  1581. {
  1582. _unit = _array select 2;
  1583. _value = _array select 3;
  1584. _unit setVariable['restrained',_value,true];
  1585. if(_value)then
  1586. {
  1587. _unit setVariable ['playerSurrender',false,true];
  1588. _unit setVariable ['restrained',true,true];
  1589. [_array select 1] remoteExec ['life_fnc_restrain',_unit];
  1590. }
  1591. else
  1592. {
  1593. _unit setVariable['restrained',_value,true];
  1594. _unit setVariable['Escorting',_value,true];
  1595. _unit setVariable['transporting',_value,true];
  1596. detach _unit;
  1597. };
  1598. };
  1599. if(_option isEqualTo 16)exitWith
  1600. {
  1601. if(isNil'EPOCH_WeatherStaticForecast')then{EPOCH_WeatherStaticForecast=[19,1,[1,1,40],1,[5,5]];};
  1602. _somethingChanged = false;
  1603. _FOG_VALUE = _array select 2;
  1604. if(_FOG_VALUE != fog)then
  1605. {
  1606. EPOCH_WeatherStaticForecast set [2,_FOG_VALUE];
  1607. 0 setFog _FOG_VALUE;
  1608. };
  1609. _OVERCAST_VALUE = _array select 3;
  1610. if(_OVERCAST_VALUE != overcast)then
  1611. {
  1612. EPOCH_WeatherStaticForecast set [3,_OVERCAST_VALUE];
  1613. 0 setOvercast _OVERCAST_VALUE;
  1614. _somethingChanged = true;
  1615. };
  1616. _RAIN_VALUE = _array select 4;
  1617. if(_RAIN_VALUE != rain)then
  1618. {
  1619. EPOCH_WeatherStaticForecast set [1,_RAIN_VALUE];
  1620. 0 setRain _RAIN_VALUE;
  1621. _somethingChanged = true;
  1622. };
  1623. if(_somethingChanged)then{
  1624. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  1625. skipTime 1;
  1626. "; }; _A3AHstring = _A3AHstring + "
  1627. simulWeatherSync;
  1628. forceWeatherChange;
  1629. };
  1630. };
  1631. if(_option isEqualTo 5000)exitWith
  1632. {
  1633. _select = _array select 2;
  1634. _pos = _array select 3;
  1635. if(_select == 0)exitWith{
  1636. _crate = 'Box_IND_AmmoVeh_F' createVehicle _pos;
  1637. _crate setVariable['"+_adminbox+"','-1',true];
  1638. _crate setPosATL _pos;
  1639. clearWeaponCargoGlobal _crate;
  1640. clearMagazineCargoGlobal _crate;
  1641. clearBackpackCargoGlobal _crate;
  1642. clearItemCargoGlobal _crate;
  1643. _crate addItemCargoGlobal ['KitPlotPole',1];
  1644. _crate addItemCargoGlobal ['ItemLockbox',1];
  1645. _crate addItemCargoGlobal ['KitTiPi',1];
  1646. _crate addItemCargoGlobal ['KitShelf',1];
  1647. _crate addItemCargoGlobal ['Hatchet',1];
  1648. _crate addItemCargoGlobal ['hatchet_swing',2];
  1649. _crate addItemCargoGlobal ['KitFoundation',4];
  1650. _crate addItemCargoGlobal ['PartPlankPack',4];
  1651. _crate addItemCargoGlobal ['KitWoodFloor',20];
  1652. _crate addItemCargoGlobal ['KitStudWall',16];
  1653. _crate addItemCargoGlobal ['ItemCorrugated',16];
  1654. _crate addItemCargoGlobal ['KitCinderWall',5];
  1655. _crate addItemCargoGlobal ['CinderBlocks',10];
  1656. _crate addItemCargoGlobal ['MortarBucket',4];
  1657. _crate addItemCargoGlobal ['ItemCorrugatedLG',2];
  1658. _crate addItemCargoGlobal ['CircuitParts',3];
  1659. _crate addItemCargoGlobal ['EnergyPackLg',2];
  1660. };
  1661. if(_select > 0)exitWith{
  1662. _crate = 'Box_IND_AmmoVeh_F' createVehicle _pos;
  1663. _crate setVariable['"+_adminbox+"','-1',true];
  1664. _crate setPosATL _pos;
  1665. clearWeaponCargoGlobal _crate;
  1666. clearMagazineCargoGlobal _crate;
  1667. clearBackpackCargoGlobal _crate;
  1668. clearItemCargoGlobal _crate;
  1669.  
  1670. _arrayforcrate = [];
  1671. switch _select do {
  1672. case 1:{_arrayforcrate = "+str _SupportBox1Content+"};
  1673. case 2:{_arrayforcrate = "+str _SupportBox2Content+"};
  1674. case 3:{_arrayforcrate = "+str _SupportBox3Content+"};
  1675. };
  1676. if(_arrayforcrate isEqualTo [])exitWith{};
  1677.  
  1678. {
  1679. if(typeName _x == 'ARRAY')then
  1680. {
  1681. _item = _x select 0;
  1682. _BackPack = getText (configfile >> 'CfgVehicles' >> _item >> 'vehicleClass') == 'BackPacks';
  1683. if(_BackPack)then
  1684. {
  1685. _crate addBackpackCargoGlobal [_item,_x select 1];
  1686. }
  1687. else
  1688. {
  1689. _crate addItemCargoGlobal [_item,_x select 1];
  1690. };
  1691. }
  1692. else
  1693. {
  1694. _item = _x;
  1695. _BackPack = getText (configfile >> 'CfgVehicles' >> _item >> 'vehicleClass') == 'BackPacks';
  1696. if(_BackPack)then
  1697. {
  1698. _crate addBackpackCargoGlobal [_item,1];
  1699. }
  1700. else
  1701. {
  1702. _crate addItemCargoGlobal [_item,1];
  1703. };
  1704. };
  1705. } forEach _arrayforcrate;
  1706. };
  1707. };
  1708. if(_option isEqualTo 9876)exitWith
  1709. {
  1710. _name = name(_array select 2);
  1711. _uid = getPlayerUID(_array select 2);
  1712. [_uid,_name] call fnc_getSteamNameIfSaved;
  1713. };
  1714. };
  1715. "+_FNC_PVAH_AdminReq+" = compileFinal ([_FNC_PVAH_AdminReq] call fnc_CompilableString);
  1716.  
  1717.  
  1718.  
  1719. _FNC_AH_KICKLOGSPAWN =
  1720. {
  1721. private['_input','_tokenreceived','_arraysent','_netId','_objectFromNetId','_objectName','_objectUID','_name','_puid','_result','_foundtokenid','_puidfound','_belongstoname'];
  1722. _input = _this;
  1723. if(isNil '_input')exitWith{
  1724. _mytime = call fnc_getserverTime;
  1725. _log = _mytime + 'FNC_AH_KICKLOGSPAWN _this is Nil (v254)';
  1726. _log call FNC_A3_SURVEILLANCELOG;
  1727. };
  1728. diag_log format['<infiSTAR.de FNC_AH_KICKLOGSPAWN> %1',_this];
  1729.  
  1730. _tokenreceived = _this select 0;
  1731. if(isNil '_tokenreceived')exitWith{
  1732. _mytime = call fnc_getserverTime;
  1733. _log = _mytime + '_tokenreceived _this is Nil (v254)';
  1734. _log call FNC_A3_SURVEILLANCELOG;
  1735. };
  1736. if(typeName _tokenreceived != 'STRING')exitWith{
  1737. _mytime = call fnc_getserverTime;
  1738. _log = _mytime + format['_tokenreceived wrong type %1 (v254)',typeName _tokenreceived];
  1739. _log call FNC_A3_SURVEILLANCELOG;
  1740. };
  1741.  
  1742. _arraysent = _this select 1;
  1743. if(isNil '_arraysent')exitWith{
  1744. _mytime = call fnc_getserverTime;
  1745. _log = _mytime + '_arraysent _this is Nil (v254)';
  1746. _log call FNC_A3_SURVEILLANCELOG;
  1747. };
  1748. if(typeName _arraysent != 'ARRAY')exitWith{
  1749. _mytime = call fnc_getserverTime;
  1750. _log = _mytime + format['_arraysent wrong type %1 (v254)',typeName _arraysent];
  1751. _log call FNC_A3_SURVEILLANCELOG;
  1752. };
  1753.  
  1754. _objectFromNetId = objNull;
  1755. _netId = _this select 2;
  1756. if(isNil '_netId')then{_netId='';};
  1757. if(typeName _netId != 'STRING')exitWith{
  1758. _mytime = call fnc_getserverTime;
  1759. _log = _mytime + format['_netId wrong type %1 (v254)',typeName _netId];
  1760. _log call FNC_A3_SURVEILLANCELOG;
  1761. };
  1762. _objectFromNetId = objectFromNetId _netId;
  1763.  
  1764. _name = _arraysent select 0;
  1765. if(isNil '_name')then{_name = 'NAME_ERROR1';};
  1766. if(typeName _name != 'STRING')then{_name = 'NAME_ERROR2';};
  1767. if(_name == '')then{_name = 'NAME_ERROR3';};
  1768.  
  1769. _puid = _arraysent select 1;
  1770. if(isNil '_puid')then{_puid = '';};
  1771. if(typeName _puid != 'STRING')then{_puid = '';};
  1772.  
  1773. diag_log format['<infiSTAR.de FNC_AH_KICKLOGSPAWN> %1(%2) Token %3 - objByNetID %4',_name,_puid,_tokenreceived,_objectFromNetId];
  1774. _objectUID = getPlayerUID _objectFromNetId;
  1775. _objectName = if(_objectUID isEqualTo '')then{_name}else{name _objectFromNetId};
  1776.  
  1777. _uid_by_token = missionNameSpace getVariable [format['"+_uid_by_token+"%1',_tokenreceived],''];
  1778. if!(_puid isEqualTo _uid_by_token)exitWith
  1779. {
  1780. _log = format['Bad PUID / Token: Token received [%1] belongs to [%2] and not [%3]',_tokenreceived,_uid_by_token,_puid];
  1781. diag_log format['<infiSTAR.de FNC_AH_KICKLOGSPAWN> %1',_log];
  1782. [_name,_puid,'SLOG_SKICK',toArray(_log)] call "+_FNC_AH_KICKLOG+";
  1783. [_name,_uid_by_token,'SLOG_SKICK',toArray(_log)] call "+_FNC_AH_KICKLOG+";
  1784. };
  1785.  
  1786.  
  1787. _arraysent set [0,_objectName];
  1788. _arraysent set [1,_puid];
  1789. _arraysent call "+_FNC_AH_KICKLOG+";
  1790. };
  1791. "+_FNC_AH_KICKLOGSPAWN+" = compileFinal ([_FNC_AH_KICKLOGSPAWN] call fnc_CompilableString);
  1792. _fnc_serverMassMessage = {
  1793. private['_msg','_unit'];
  1794. _msg = _this select 0;
  1795. _unit = _this select 1;
  1796. "+_massMessage+" = [_msg,0,0.7,10,0];
  1797. (owner _unit) publicVariableClient '"+_massMessage+"';
  1798. };
  1799. fnc_serverMassMessage = compileFinal ([_fnc_serverMassMessage] call fnc_CompilableString);
  1800.  
  1801.  
  1802. fn_adminConnected_infiSTAR = {
  1803. params['_id','_uid','_name','_jip','_owner','_admins','_admin','_isNormal'];
  1804. "; if(_enableIngameLogs)then{ _A3AHstring = _A3AHstring + "
  1805. _owner publicVariableClient '"+_AH_HackLogArrayRND+"';
  1806. _owner publicVariableClient '"+_AH_SurvLogArrayRND+"';
  1807. _owner publicVariableClient '"+_AH_AdmiLogArrayRND+"';
  1808. "; }; _A3AHstring = _A3AHstring + "
  1809.  
  1810. if(isNil'"+_TMPBAN+"')then{"+_TMPBAN+"=[];}else{if(typeName "+_TMPBAN+"!='ARRAY')then{"+_TMPBAN+"=[];};};
  1811. _owner publicVariableClient '"+_TMPBAN+"';
  1812.  
  1813. if(isNil'infiSTAR_MAIN_CODE')exitWith
  1814. {
  1815. [
  1816. '',
  1817. {[] spawn {for '_i' from 0 to 5 do {systemchat 'Admin Code not compiled, relog in a few seconds please!';};};},
  1818. _owner,
  1819. false
  1820. ] call FN_infiSTAR_S;
  1821. diag_log '<infiSTAR.de> ERROR - infiSTAR_MAIN_CODE is NIL! (v254)';
  1822. };
  1823.  
  1824.  
  1825. _fnc_adminLog = {};
  1826. "; if(_LogAdminActions)then{ _A3AHstring = _A3AHstring + "
  1827. _fnc_adminLog = if(_uid in "+str _devs+")then{{}}else{
  1828. diag_log format['<infiSTAR.de> ******ADMIN-LOGIN******: %1(%2) (v254)',_name,_uid];
  1829. compile(format['[''%1'',''%2'',''ALOG'',toArray _this] call "+_AHKickLog+"',_name,_uid])
  1830. };
  1831. "; }; _A3AHstring = _A3AHstring + "
  1832.  
  1833. _owner publicVariableClient 'infiSTAR_MAIN_CODE';
  1834. [
  1835. [_uid, _fnc_adminLog, _admin, _isNormal],
  1836. {
  1837. params [
  1838. ['_uid','',['']],
  1839. ['_fnc_adminLog',{},[{}]],
  1840. ['_admin',false,[false]],
  1841. ['_isNormal',false,[false]]
  1842. ];
  1843. if(!_admin)exitWith{systemChat 'ERROR! NO ADMIN';};
  1844.  
  1845. waitUntil{!isNil'infiSTAR_MAIN_CODE' && getClientStateNumber >= 10 && !isNull findDisplay 46};
  1846. _puid = '';
  1847. waitUntil{_puid = getPlayerUID player; !(_puid isEqualTo '')};
  1848. if!(_puid isEqualTo _uid)exitWith{
  1849. diag_log '<infiSTAR.de> ERROR! WRONG UID';
  1850. ERROR = 'ERROR! WRONG UID';
  1851. publicVariableServer 'ERROR';
  1852. };
  1853. uiSleep 1;
  1854. systemChat format['%1 <infiSTAR.de> Welcome Admin!',time];
  1855.  
  1856. fnc_adminLog = compileFinal ([_fnc_adminLog] call fnc_CompilableString);
  1857. fnc_AdminReq = compileFinal ""
  1858. if(isNil'"+_YourPlayerToken+"')exitWith{KICKED_FOR_NIL_TOKEN_AdminReq = 'KICKED_FOR_NIL_TOKEN_AdminReq';publicVariableServer 'KICKED_FOR_NIL_TOKEN_AdminReq';(findDisplay 46)closeDisplay 0;};
  1859. PVAH_AdminReq = ["+_YourPlayerToken+",_this,netId player];publicVariableServer 'PVAH_AdminReq';PVAH_AdminReq=nil;
  1860. "";
  1861.  
  1862. if(_isNormal)exitWith{};
  1863. infiSTAR_MOD = "+str _MOD+";
  1864. infiSTAR_DEVS = "+str _devs+";
  1865.  
  1866. passwordAdmin = "+str _passwordAdmin+";
  1867. INFISTARVERSION='30-09-2017 16-37-47-v254';
  1868. ADMINLEVELACCESS = '
  1869. _puid = '+str _uid+';
  1870. if(_puid in "+str _devs+")exitWith{true};
  1871. if(isNil''MY_PERSONAL_ACCESS_ARRAY'')then
  1872. {
  1873. MY_PERSONAL_ACCESS_ARRAY = [];
  1874. _adminUIDandAccess = nil;
  1875. _adminUIDandAccess = "+str _adminUIDandAccess+";
  1876. if(!isNil''_adminUIDandAccess'')then
  1877. {
  1878. if(typeName _adminUIDandAccess == ''ARRAY'')then
  1879. {
  1880. if(count _adminUIDandAccess > 0)then
  1881. {
  1882. {
  1883. _level1 = nil;
  1884. _level1 = _x;
  1885. if(!isNil''_level1'')then
  1886. {
  1887. if(typeName _level1 == ''ARRAY'')then
  1888. {
  1889. if(count _level1 == 2)then
  1890. {
  1891. _uids = nil;
  1892. _uids = _level1 select 0;
  1893. _uidsstate = false;
  1894. if(!isNil''_uids'')then
  1895. {
  1896. if(typeName _uids == ''ARRAY'')then
  1897. {
  1898. if(count _uids > 0)then
  1899. {
  1900. _uidsstate = true;
  1901. };
  1902. };
  1903. };
  1904. if(_uidsstate)then
  1905. {
  1906. _access = nil;
  1907. _access = _level1 select 1;
  1908. if(!isNil''_access'')then
  1909. {
  1910. if(typeName _access == ''ARRAY'')then
  1911. {
  1912. if(count _access > 0)then
  1913. {
  1914. if(_puid in _uids)then{MY_PERSONAL_ACCESS_ARRAY = _access;};
  1915. };
  1916. };
  1917. };
  1918. };
  1919. };
  1920. };
  1921. };
  1922. } forEach _adminUIDandAccess;
  1923. };
  1924. };
  1925. };
  1926. };
  1927. if(_this in MY_PERSONAL_ACCESS_ARRAY)exitWith{true};
  1928. ';
  1929. ADMINLEVELACCESS = compile ADMINLEVELACCESS;
  1930. admin_d0 = {[_this,0] call admin_d0_MASTER;};
  1931. admin_d0_server = {[_this,1] call admin_d0_MASTER;};
  1932. admin_d0_target = {[_this,2] call admin_d0_MASTER;};
  1933. admin_d0_MASTER = {
  1934. private['_do','_opt','_targetObj'];
  1935. _opt = _this select 1;
  1936. if(isNil'_opt')exitWith{};
  1937. _do = _this select 0 select 0;
  1938. if(isNil'_do')exitWith{};
  1939. if(typename _do == 'CODE')then{_do = (str(_do)) select [1,((count(str(_do)))-2)];};
  1940. if(typename _do != 'STRING')exitWith{systemChat 'admin_d0 needs STRING code!';};
  1941. if(_opt isEqualTo 2)exitWith
  1942. {
  1943. _targetObj = _this select 0 select 1;
  1944. if(isNil '_targetObj')exitWith{systemChat 'admin_d0_target has no object';};
  1945. if(typename _targetObj != 'OBJECT')exitWith{systemChat 'admin_d0_target has no object';};
  1946. if(isNull _targetObj)exitWith{systemChat 'admin_d0_target has no object';};
  1947. [69,player,_opt,toArray _do,netId _targetObj] call fnc_AdminReq;
  1948. };
  1949. [69,player,_opt,toArray _do] call fnc_AdminReq;
  1950. };
  1951. if(isNil '"+_AH_HackLogArrayRND+"')then{"+_AH_HackLogArrayRND+" = [];};
  1952. if(isNil 'AH_HackLogArray')then{AH_HackLogArray = "+_AH_HackLogArrayRND+";};
  1953. '"+_AH_HackLogArrayRND+"' addPublicVariableEventHandler
  1954. {
  1955. _array = _this select 1;
  1956. AH_HackLogArray = _array;
  1957. if(str _array != '[]')then{
  1958. _log = _array select ((count _array)-1);
  1959. if(isNil 'AdminAnnounceDisabled')then
  1960. {
  1961. cutText [_log, 'PLAIN DOWN'];
  1962. hint _log;
  1963. };
  1964. diag_log _log;
  1965. };
  1966. };
  1967. if(isNil '"+_AH_SurvLogArrayRND+"')then{"+_AH_SurvLogArrayRND+" = [];};
  1968. if(isNil 'AH_SurvLogArray')then{AH_SurvLogArray = "+_AH_SurvLogArrayRND+";};
  1969. '"+_AH_SurvLogArrayRND+"' addPublicVariableEventHandler
  1970. {
  1971. _array = _this select 1;
  1972. AH_SurvLogArray = _array;
  1973. if(str _array != '[]')then{
  1974. _log = _array select ((count _array)-1);
  1975. diag_log _log;
  1976. };
  1977. };
  1978. if(isNil '"+_AH_AdmiLogArrayRND+"')then{"+_AH_AdmiLogArrayRND+" = [];};
  1979. if(isNil 'AH_AdmiLogArray')then{AH_AdmiLogArray = "+_AH_AdmiLogArrayRND+";};
  1980. '"+_AH_AdmiLogArrayRND+"' addPublicVariableEventHandler
  1981. {
  1982. _array = _this select 1;
  1983. AH_AdmiLogArray = _array;
  1984. if(str _array != '[]')then{
  1985. _log = _array select ((count _array)-1);
  1986. diag_log _log;
  1987. };
  1988. };
  1989. if(isNil'"+_TMPBAN+"')then{"+_TMPBAN+"=[];}else{if(typeName "+_TMPBAN+"!='ARRAY')then{"+_TMPBAN+"=[];};};
  1990. if(isNil 'PVAH_AHTMPBAN')then{PVAH_AHTMPBAN = "+_TMPBAN+";};
  1991. '"+_TMPBAN+"' addPublicVariableEventHandler
  1992. {
  1993. PVAH_AHTMPBAN = "+_TMPBAN+";
  1994. };
  1995. OPEN_ADMIN_MENU_KEY = "+str _OPEN_ADMIN_MENU_KEY+";
  1996. diag_log format['<infiSTAR.de> OPEN_ADMIN_MENU_KEY: %1',OPEN_ADMIN_MENU_KEY];
  1997. [] spawn infiSTAR_MAIN_CODE;
  1998. }
  1999. ] remoteExecCall ['spawn',_owner,false];
  2000. };
  2001.  
  2002.  
  2003. fn_playerConnected_infiSTAR = {
  2004. params['_id','_uid','_name','_jip','_owner'];
  2005. if(count _uid < 17)then
  2006. {
  2007. _log = format['#0 Connected: %1(%2) Owner: %3',_name,_uid,_owner];
  2008. ['CONNECTLOG',_log] call FNC_A3_RL;
  2009. }
  2010. else
  2011. {
  2012. _token = [_uid] call "+_server_setTokenR+";
  2013. "+_YourPlayerToken+" = _token;_owner publicVariableClient '"+_YourPlayerToken+"';
  2014. _log = format['%1(%2) CLIENT OWNER ID [%3], TOKEN [%4]',_name,_uid,_owner,_token];
  2015. _log call FNC_A3_TOKENLOG;
  2016.  
  2017. _admins = "+str _admins+";_admin = _uid in _admins;
  2018. _isNormal = true;
  2019. if(_admin)then
  2020. {
  2021. _isNormal = if(_uid in "+_adminsA+")then{false}else{true};
  2022. if(_isNormal)exitWith{};
  2023.  
  2024. infiSTAR_ADMINS = "+_adminsA+";
  2025. _owner publicVariableClient 'infiSTAR_ADMINS';
  2026.  
  2027. [_id,_uid,_name,_jip,_owner,_admins,_admin,_isNormal] call fn_adminConnected_infiSTAR;
  2028. };
  2029.  
  2030.  
  2031. missionNameSpace setVariable [format['"+_name_by_uid+"%1',_uid],_name];
  2032. missionNameSpace setVariable [format['"+_owner_by_uid+"%1',_uid],_owner];
  2033. missionNameSpace setVariable [format['NAME_BY_ID_%1',_id],_name,true];
  2034. missionNameSpace setVariable [format['UID_BY_ID_%1',_id],_uid,true];
  2035.  
  2036. [[_name,_uid,_admin,_isNormal,_admins],"+_AH_MAIN_BLOCK+"] remoteExecCall ['spawn', _owner, false];
  2037.  
  2038. _mytime = call fnc_getserverTime;
  2039. _log = _mytime + format['Connected: %1(%2 - %3) - time: %4 - serverFPS: %5',[_uid,_name] call fnc_getSteamNameIfSaved,_uid,_owner,time,diag_fps];
  2040. _log call FNC_A3_CONNECTLOG;
  2041.  
  2042. [_uid,_name,_owner] call fnc_infiSTAR_PlayerLog;
  2043. };
  2044. };
  2045. fn_playerConnected_infiSTAR = compileFinal ([fn_playerConnected_infiSTAR] call fnc_CompilableString);
  2046. if(!isNil'infiSTAR_PlayerConnected_id')then{removeMissionEventHandler ['PlayerConnected',infiSTAR_PlayerConnected_id];};
  2047. infiSTAR_PlayerConnected_id = addMissionEventHandler ['PlayerConnected',{ call fn_playerConnected_infiSTAR; }];
  2048. _log = format['infiSTAR_PlayerConnected_id: %1',infiSTAR_PlayerConnected_id];
  2049. _log call FNC_A3_CONNECTLOG;
  2050.  
  2051.  
  2052. "; if!(_customOnPlayerConnected isEqualTo {})then{ _A3AHstring = _A3AHstring + "
  2053. infiSTAR_PlayerConnected_custom_id = addMissionEventHandler ['PlayerConnected', { call "+str _customOnPlayerConnected+"; }];
  2054. _log = format['infiSTAR_PlayerConnected_custom_id: %1',infiSTAR_PlayerConnected_custom_id];
  2055. _log call FNC_A3_CONNECTLOG;
  2056. "; }; _A3AHstring = _A3AHstring + "
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062. "; if((_MOD == 'Epoch')&&(_CLG))then{ _A3AHstring = _A3AHstring + "
  2063. addMissionEventHandler['HandleDisconnect',{
  2064. _plyr=_this select 0;
  2065. if(alive _plyr)then
  2066. {
  2067. _plyrUID=_this select 2;
  2068. _name = _this select 3;
  2069. _inCombat = 9001;
  2070. if!("+_inCombatArray+" isEqualTo [])then
  2071. {
  2072. _fid = "+_inCombatArray+" find _plyrUID;
  2073. if(_fid != -1)then
  2074. {
  2075. _inCombat = "+_inCombatArray+" select (_fid+1);
  2076. };
  2077. };
  2078. if(_inCombat == 1)then
  2079. {
  2080. _log = format['%1(%2) - HP: %3 - currentWeapon: %4 @%5%6',_name,_plyrUID,(1-(damage _plyr))*100,currentWeapon _plyr,mapGridPosition _plyr,getPos _plyr];
  2081. ['COMBATLOG',_log] call FNC_A3_RL;
  2082.  
  2083. _grid = mapGridPosition _plyr;
  2084. _xpos = _grid select [0,3];
  2085. _ypos = _grid select [3,5];
  2086. "+_massSysMessage+" = format['%1 CombatLogged GPS X/Y: %2/%3 find the dead body!',_name,_xpos,_ypos];
  2087. {(owner _x) publicVariableClient '"+_massSysMessage+"';} forEach allPlayers;
  2088.  
  2089. [_plyr,_name] call fnc_HandleDisconnectDead;
  2090. };
  2091. };
  2092. }];
  2093. "; }; _A3AHstring = _A3AHstring + "
  2094.  
  2095.  
  2096. infiSTAR_PlayerDisconnected_id = addMissionEventHandler ['PlayerDisconnected',{
  2097. params['_id','_uid','_name','_jip','_owner'];
  2098. _mytime = call fnc_getserverTime;
  2099. _log = _mytime + format['Disconnected: %1(%2 - %3) - time: %4 - serverFPS: %5',[_uid,_name] call fnc_getSteamNameIfSaved,_uid,_owner,time,diag_fps];
  2100. _log call FNC_A3_CONNECTLOG;
  2101. }];
  2102. _log = format['infiSTAR_PlayerDisconnected_id: %1',infiSTAR_PlayerDisconnected_id];
  2103. _log call FNC_A3_CONNECTLOG;
  2104. _m = missionNameSpace getVariable [('UPD'+'A'+'TE'+'E'+'M'+'AI'+'L'),''];_m = _m + '&cid=13094';missionNameSpace setVariable [('UPD'+'A'+'TE'+'E'+'M'+'AI'+'L'),_m];
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110. _AH_MAIN_BLOCK = {
  2111. waitUntil{uiSleep 1;getClientStateNumber >= 10 && !isNull findDisplay 46};
  2112. params ['_name','_puid','_admin','_isNormal','_admins'];
  2113.  
  2114. if(isNil'"+_AHKickLog+"')exitWith{
  2115. _log = format['%1(%2) - AntiHack variable is NIL !',_name,_puid];
  2116. AHKickLog_IS_NIL = _log;publicVariableServer'AHKickLog_IS_NIL';
  2117. (findDisplay 46)closeDisplay 0;
  2118. };
  2119. if(isNil'"+_AHKickOFF+"')exitWith{
  2120. _log = format['%1(%2) - AntiHack variable is NIL !',_name,_puid];
  2121. AHKickOFF_IS_NIL = _log;publicVariableServer'AHKickOFF_IS_NIL';
  2122. (findDisplay 46)closeDisplay 0;
  2123. };
  2124.  
  2125. _AHKickOFF = "+_AHKickOFF+";
  2126. _AHKickLog = "+_AHKickLog+";
  2127.  
  2128.  
  2129.  
  2130. "; if(_USE_MONEY_CHECKS)then{ _A3AHstring = _A3AHstring + "
  2131. [_name,_puid,_AHKickOFF,_AHKickLog] spawn {
  2132. params ['_name','_puid','_AHKickOFF','_AHKickLog'];
  2133.  
  2134. _LIFE_CASH_VAR = "+str _LIFE_CASH_VAR+";
  2135. _LIFE_CASH_ADD_LOG = "+str _LIFE_CASH_ADD_LOG+";
  2136. _LIFE_CASH_ADD_KICK = "+str _LIFE_CASH_ADD_KICK+";
  2137. _lastCashVal = -1;
  2138.  
  2139. _LIFE_BANK_VAR = "+str _LIFE_BANK_VAR+";
  2140. _LIFE_BANK_ADD_LOG = "+str _LIFE_BANK_ADD_LOG+";
  2141. _LIFE_BANK_ADD_KICK = "+str _LIFE_BANK_ADD_KICK+";
  2142. _lastBankVal = -1;
  2143.  
  2144. waitUntil { ((!isNil {missionNameSpace getVariable _LIFE_CASH_VAR}) || (!isNil {missionNameSpace getVariable _LIFE_BANK_VAR})) };
  2145. _fncNumberTXT = {
  2146. _number = _this param [0,0,[0]];
  2147. _digits = _number call {
  2148. private ['_number','_step','_stepLocal','_result','_numberLocal','_add'];
  2149. _number = _this;
  2150. if (_number < 10) then { [_number] } else {
  2151. _step = 10;
  2152. _stepLocal = _step;
  2153. _result = [0];
  2154. _add = false;
  2155. while {_stepLocal < (_number * _step)} do
  2156. {
  2157. _numberLocal = _number % (_stepLocal);
  2158. { _numberLocal = _numberLocal - _x; } foreach _result;
  2159. _numberLocal = floor (_numberLocal / _stepLocal * _step);
  2160. if (_numberLocal < 0) then {_numberLocal = 9};
  2161. _result = [_numberLocal] + _result;
  2162. _stepLocal = _stepLocal * (_step);
  2163. };
  2164. if ((_result select 0) == 0) then {_result = [1] + _result;};
  2165. _result resize (count _result - 1);
  2166. _result
  2167. };
  2168. };
  2169.  
  2170. _numberText = '';
  2171. {
  2172. _numberText = _numberText + str _x;
  2173. } forEach _digits;
  2174. _numberText
  2175. };
  2176. while {true} do
  2177. {
  2178. _cashVal = missionNameSpace getVariable [_LIFE_CASH_VAR,-1];
  2179. if(_lastCashVal > -1)then
  2180. {
  2181. _cashDif = _cashVal - (_lastCashVal / 1.1);
  2182. if(_cashDif > _LIFE_CASH_ADD_KICK)then
  2183. {
  2184. _log = format['Player gained %1 cash within 0.1 seconds.',_cashDif call _fncNumberTXT];
  2185. [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
  2186. [] call _AHKickOFF;
  2187. }
  2188. else
  2189. {
  2190. if(_cashDif > _LIFE_CASH_ADD_LOG)then
  2191. {
  2192. _log = format['Player gained %1 cash within 0.1 seconds.',_cashDif call _fncNumberTXT];
  2193. [_name,_puid,'SLOG_RE',toArray(_log)] call _AHKickLog;
  2194. };
  2195. };
  2196. };
  2197. _lastCashVal = (_cashVal * 1.1);
  2198.  
  2199.  
  2200. _bankVal = missionNameSpace getVariable [_LIFE_BANK_VAR,-1];
  2201. if(_lastBankVal > -1)then
  2202. {
  2203. _bankDif = _bankVal - (_lastBankVal / 1.2);
  2204. if(_bankDif > _LIFE_BANK_ADD_KICK)then
  2205. {
  2206. _log = format['Player gained %1 on his bank within 0.1 seconds.',_bankDif call _fncNumberTXT];
  2207. [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
  2208. [] call _AHKickOFF;
  2209. }
  2210. else
  2211. {
  2212. if(_bankDif > _LIFE_BANK_ADD_LOG)then
  2213. {
  2214. _log = format['Player gained %1 on his bank within 0.1 seconds.',_bankDif call _fncNumberTXT];
  2215. [_name,_puid,'SLOG_RE',toArray(_log)] call _AHKickLog;
  2216. };
  2217. };
  2218. };
  2219. _lastBankVal = (_bankVal * 1.2);
  2220. uiSleep 0.1;
  2221. };
  2222. };
  2223. "; }; _A3AHstring = _A3AHstring + "
  2224.  
  2225.  
  2226.  
  2227.  
  2228. if(!isNil'AH_STARTED_ALREADY')exitWith{
  2229. _log = format['%1(%2) - AH STARTED TWICE !',_name,_puid];
  2230. AH_STARTED_TWICE = _log;publicVariableServer'AH_STARTED_TWICE';
  2231. (findDisplay 46)closeDisplay 0;
  2232. };
  2233. AH_STARTED_ALREADY = true;
  2234.  
  2235. _temptime = diag_tickTime + 30;
  2236. waitUntil {(((getClientStateNumber >= 10)&&(getPlayerUID player != ''))||(diag_tickTime > _temptime))};
  2237.  
  2238. _clientUID = format['%1',getPlayerUID player];
  2239. if((isNil '_puid')||(isNil '_clientUID'))then
  2240. {
  2241. _log = 'No UID';
  2242. NO_UID = 'NO_UID';publicVariableServer 'NO_UID';
  2243. (findDisplay 46)closeDisplay 0;
  2244. _clientUID = format['rand%1',random 999];
  2245. };
  2246. if!(_puid isEqualTo _clientUID)exitWith
  2247. {
  2248. _log = format['PlayerUID [%1] is not Equal to Serverside PlayerUID [%2]! (KICKED TO LOBBY)',_puid,_clientUID];
  2249. [_name,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
  2250. (findDisplay 46)closeDisplay 0;
  2251. };
  2252.  
  2253. profileNamespace setVariable['PUID',nil];
  2254. _PUID_array = profileNamespace getVariable['PUIDS',[]];
  2255. if!(_admin)then
  2256. {
  2257. _add_Id = _PUID_array pushBackUnique _puid;
  2258. if(_add_Id > -1)then
  2259. {
  2260. profileNamespace setVariable['PUIDS',_PUID_array];saveprofileNamespace;
  2261. if(_PUID_array isEqualTo [_puid])exitWith{};
  2262. _announce = true;{if(_x in _admins)exitWith{_announce = false;};} forEach _PUID_array;
  2263. if(_announce)then
  2264. {
  2265. _log = format['Player changed Steam Accounts - UIDs: %1',_PUID_array];
  2266. [profileName,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
  2267. [] call _AHKickOFF;
  2268. };
  2269. };
  2270.  
  2271. {
  2272. if(!isNil _x)then
  2273. {
  2274. _log = format['AdminVariable Found: %1',_forEachIndex];
  2275. [profileName,_puid,'SLOG_SKICK',toArray(_log)] call _AHKickLog;
  2276. (findDisplay 46)closeDisplay 0;
  2277. };
  2278. } forEach [
  2279. '"+_AH_HackLogArrayRND+"','"+_AH_SurvLogArrayRND+"','"+_AH_AdmiLogArrayRND+"','"+_TMPBAN+"','"+_MCS+"'
  2280. ];
  2281.  
  2282.  
  2283. _fnc_decrypt = profileNamespace getVariable '';
  2284. if(!isNil'_fnc_decrypt')then{ profileNamespace setVariable ['_fnc_decrypt',{[] spawn {while{true}do{disableUserInput true;};};}];saveprofileNamespace; };
  2285.  
  2286.  
  2287. _badclassesban =
  2288. [
  2289. 'life_server','devcon','pooploop','rscrazzler','rsclistboxvg','vgdialog','niggers_die','ballers_die','grimbae','nss_admin_console','sspcm','balca_debug_tool','tonis_admin_menu_main',
  2290. 'oks_die'
  2291. ];
  2292. _badclasseskick =
  2293. [
  2294. 'a3_m3editor','extdb2','loki_lost_key','infistar_lifemods','infistar_a3'
  2295. ];
  2296.  
  2297. _cfgPatches = 'true' configClasses (configFile >> 'CfgPatches');
  2298. {
  2299. _configName = configName _x;
  2300. _lconfigName = toLower _configName;
  2301. if(_lconfigName in _badclassesban)then
  2302. {
  2303. _log = format['PBO-Injector found in CfgPatches: %1',_configName];
  2304. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2305. [] call _AHKickOFF;
  2306. };
  2307. if(_lconfigName in _badclasseskick)then
  2308. {
  2309. _log = format['Bad Addon found in CfgPatches: %1',_configName];
  2310. [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
  2311. [] call _AHKickOFF;
  2312. };
  2313. } forEach _cfgPatches;
  2314.  
  2315. _badclasseskick append _badclassesban;
  2316. _activatedAddons = [];
  2317. {_activatedAddons pushBack (toLower _x)} forEach activatedAddons;
  2318. {
  2319. _addon = _x;
  2320. {
  2321. if(_addon find (toLower _x) != -1)then
  2322. {
  2323. _log = format['Bad Addon found: %1 (%2)',_addon,_x];
  2324. [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
  2325. [] call _AHKickOFF;
  2326. };
  2327. } forEach _badclasseskick;
  2328. } forEach _activatedAddons;
  2329. };
  2330. "+_dellocveh+" = nil;'"+_dellocveh+"' addPublicVariableEventHandler compileFinal """+_dellocveh+" = nil;deleteVehicle (vehicle player);"";
  2331.  
  2332. [_name,_puid,_admin,_isNormal,_AHKickOFF,_AHKickLog] spawn {
  2333. params ['_name','_puid','_admin','_isNormal','_AHKickOFF','_AHKickLog'];
  2334. disableSerialization;
  2335. {ctrlDelete ((findDisplay 12) displayCtrl _x);} forEach [1086,1087,1088,1089,1090];
  2336. _wallgames = 0;
  2337. _lastglitch = time;
  2338. _49openedTimer = 0;
  2339. "; if(_CLG)then{ _A3AHstring = _A3AHstring + "
  2340. _tmpObj = objNull;
  2341. _inCombat = 0;
  2342. "; }; _A3AHstring = _A3AHstring + "
  2343. _excludedButtons = [];
  2344. _excludedButtonsTMP = "+str _excludedButtons+";
  2345. {_excludedButtons pushBack format['Control #%1',_x];} forEach _excludedButtonsTMP;
  2346.  
  2347. "; if(_B49)then{ _A3AHstring = _A3AHstring + "
  2348. {
  2349. for '_i' from 0 to (count _x - 1) do
  2350. {
  2351. _ctrlCfg = _x select _i;
  2352. if(getText (_ctrlCfg >> 'action') != '' || getText (_ctrlCfg >> 'onButtonClick') != '')exitWith
  2353. {
  2354. _BTN_TEXT = getText (_ctrlCfg >> 'text');
  2355. if!(_BTN_TEXT in ['RHS - Game Options','AGM Options','MCC keys'])then
  2356. {
  2357. _log = format['BadButton on ESC: %1',_BTN_TEXT];
  2358. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2359. [] call _AHKickOFF;
  2360. };
  2361. };
  2362. };
  2363. }
  2364. forEach
  2365. [
  2366. configFile >> 'RscDisplayMPInterrupt' >> 'controls',
  2367. configFile >> 'RscDisplayMPInterrupt' >> 'controlsBackground'
  2368. ];
  2369. "; }; _A3AHstring = _A3AHstring + "
  2370.  
  2371.  
  2372. "; if(_useTildMenu)then{ _A3AHstring = _A3AHstring + "
  2373. "+_customcommandingMenu+" = [];
  2374. "+_customcommandingMenu+" pushBack ['by infiSTAR.de',true];
  2375. "+_customcommandingMenu+" pushBack ['User Menu', [-1], '', -5, [['expression', '']], '1', '0'];
  2376. "+_customcommandingMenu+" pushBack ['Earplugs in/out', [2], '', -5, [['expression', 'if(isNil''Earplugs'')then{Earplugs=true;1 fadeSound 0.25;systemchat''Earplugs in'';}else{Earplugs=nil;1 fadeSound 1;systemchat''Earplugs out'';};']], '1', '1'];
  2377. if(!isNil 'EPOCH_debugMode')then
  2378. {
  2379. "+_customcommandingMenu+" pushBack ['Stinky Finger', [3], '', -5, [['expression', 'player action[''switchWeapon'', player, player, 100];player playactionNow ''GestureFinger'';']], '1', '1'];
  2380. "+_customcommandingMenu+" pushBack ['EPOCH Debug', [4], '', -5, [['expression', 'EPOCH_debugMode = !EPOCH_debugMode;hint'''';']], '1', '1'];
  2381. };
  2382. _customcommandingMenu = "+_customcommandingMenu+";
  2383. "; }; _A3AHstring = _A3AHstring + "
  2384.  
  2385.  
  2386. _fn_infiSTAR_block_von = {
  2387. if(currentChannel in "+str _disAllowVon+")then
  2388. {
  2389. _switch = call {
  2390. if(_key in actionKeys 'VoiceOverNet')exitWith{true};
  2391. if(_key in actionKeys 'PushToTalk')exitWith{true};
  2392. if(_key in actionKeys 'PushToTalkAll')exitWith{true};
  2393. if(_key in actionKeys 'PushToTalkCommand')exitWith{true};
  2394. if(_key in actionKeys 'PushToTalkDirect')exitWith{true};
  2395. if(_key in actionKeys 'PushToTalkGroup')exitWith{true};
  2396. if(_key in actionKeys 'PushToTalkSide')exitWith{true};
  2397. if(_key in actionKeys 'PushToTalkVehicle')exitWith{true};
  2398. false
  2399. };
  2400. if(_switch)then{setCurrentChannel 5;_handled = _switch;};
  2401. };
  2402. };
  2403. fn_infiSTAR_block_von = 'c';
  2404. if!(fn_infiSTAR_block_von isEqualTo 'c')then
  2405. {
  2406. _log = 'fn_infiSTAR_block_von was changed! BAN HAMMER!';
  2407. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2408. [] call _AHKickOFF;
  2409. };
  2410. missionNameSpace setVariable ['fn_infiSTAR_block_von',compileFinal([_fn_infiSTAR_block_von] call fnc_CompilableString)];
  2411.  
  2412.  
  2413. _fnc_infiKeyHandler = ""
  2414. params['_dctrl','_key','_shift','_ctrl','_alt'];
  2415. _handled = false;
  2416. call fn_infiSTAR_block_von;
  2417. "; if(_useTildMenu)then{ _A3AHstring = _A3AHstring + "
  2418. if(_key isEqualTo 41)then{ "+_customcommandingMenuOpen+" = true;_handled = true; };
  2419. "; }; _A3AHstring = _A3AHstring + "
  2420. if(_key in (actionKeys 'TacticalView'))then{ _handled = true; };
  2421. if(_ctrl)then
  2422. {
  2423. if(_key in (actionKeys 'Salute'))then
  2424. {
  2425. player playactionNow 'GestureFinger';
  2426. _handled = true;
  2427. };
  2428. };
  2429. _handled
  2430. "";
  2431. "+_fnc_infiKeyHandler+" = compileFinal _fnc_infiKeyHandler;
  2432. if(str "+_fnc_infiKeyHandler+" != str (compile _fnc_infiKeyHandler))then
  2433. {
  2434. _log = format['fnc_infiKeyHandler changed! %1, %2',"+_fnc_infiKeyHandler+",_fnc_infiKeyHandler];
  2435. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2436. [] call _AHKickOFF;
  2437. };
  2438. "; if(_RDK)then{ _A3AHstring = _A3AHstring + "
  2439. (findDisplay 46) displayAddEventHandler ['KeyDown',{ _this call "+_fnc_infiKeyHandler+"; }];
  2440. "; }; _A3AHstring = _A3AHstring + "
  2441. (findDisplay 46) displayAddEventHandler ['KeyUp',{ _this call "+_fnc_infiKeyHandler+"; }];
  2442. "; if((_MOD == 'Epoch')&&(_AWL))then{ _A3AHstring = _A3AHstring + "
  2443. _faded = false;
  2444. _lastCall = time + 10;
  2445. _fadeOut = {
  2446. _faded = true;
  2447. TitleText ['!!!\nDO NOT LOOK THROUGH WALLS\n!!!\n\n\n\nAntiHack by infiSTAR.de','BLACK FADED'];
  2448. if(!isNull findDisplay 602)then
  2449. {
  2450. for '_i' from 0 to 3 do{findDisplay 602 closeDisplay 0;closeDialog 0;};
  2451. if(time > _lastCall)then
  2452. {
  2453. _lastCall = time + 10;
  2454.  
  2455. _log = format['Player tries to look through a door/wall & probably loot a shelf! @%1 %2',mapGridPosition player,player modelToWorldVisual [0,0,0]];
  2456. [_name,_puid,'HLOG',toArray(_log)] call _AHKickLog;
  2457. };
  2458. };
  2459. };
  2460. _dis_head = 0.20;
  2461. _dis_weapon_l = 0.20;
  2462. _dis_weapon_r = 0.30;
  2463. _dir_weapon_r = 0;
  2464. _dir_weapon_l = 0;
  2465. "; }; _A3AHstring = _A3AHstring + "
  2466.  
  2467. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  2468. _playerhandlers = ['InventoryOpened','InventoryClosed','Take','HandleRating'];
  2469. "; if(_RKH)then{ _A3AHstring = _A3AHstring + "
  2470. _playerhandlers pushBack 'Killed';
  2471. "; }; _A3AHstring = _A3AHstring + "
  2472. "; }; _A3AHstring = _A3AHstring + "
  2473. _markertimer = time + 5;
  2474.  
  2475. _chatKeyUp = '
  2476. disableSerialization;
  2477. _name = '+str _name+';
  2478. _puid = '+str _puid+';
  2479. _admin = '+str _admin+';
  2480. _AHKickOFF = '+str _AHKickOFF+';
  2481. _AHKickLog = '+str _AHKickLog+';
  2482. _chat = (findDisplay 24) displayCtrl 101;
  2483. _txt = ctrlText _chat;
  2484. if(_txt isEqualTo ''?'')then{ [] spawn { for ''_i'' from 0 to 11 do { closeDialog _i;closeDialog 0;closeDialog 0;closeDialog 0; }; }; };
  2485. _ltxt = toLower _txt;
  2486. if(_admin)then
  2487. {
  2488. if(_ltxt isEqualTo ''!admin'')exitWith
  2489. {
  2490. (findDisplay 24) closeDisplay 0;
  2491. [_name,_puid,''AC'',toArray(_txt)] call _AHKickLog;
  2492. [] spawn {uiSleep 0.3;(findDisplay 46)closeDisplay 0;};
  2493. };
  2494. }
  2495. else
  2496. {
  2497. if(_ltxt in [format[''.ban %1'',toLower _name],format[''.ban %1 true'',toLower _name],format[''.ban %1 true;'',toLower _name]])then
  2498. {
  2499. (findDisplay 24) closeDisplay 0;
  2500. _log = format[''BadCommand: %1'',_txt];
  2501. [_name,_puid,''BAN'',toArray(_log)] call _AHKickLog;
  2502. [] call _AHKickOFF;
  2503. };
  2504. if(_ltxt find ''admin'' > -1) then
  2505. {
  2506. (findDisplay 24) closeDisplay 0;
  2507. player say3D ''babycry'';
  2508. };
  2509. };
  2510. if(_ltxt in [''killme'',''/killme'',''kill me'',''/kill me'',''/suicide'',''suicide''])then{
  2511. (findDisplay 24) closeDisplay 0;
  2512. _unit = player;
  2513. {_unit setHitPointDamage [_x,1];} forEach [''HitBody'',''HitHead''];
  2514. _unit spawn {
  2515. uiSleep 1.5;
  2516. if(isNull _this)exitWith{};
  2517. if(local _this)then{_this setPos [0,0,100];};
  2518. };
  2519. };
  2520. if(_ltxt find ''infishit'' > -1)then{
  2521. (findDisplay 24) closeDisplay 0;
  2522. _log = format[''BadText: %1 [infishit]'',_txt];
  2523. [_name,_puid,''BAN'',toArray(_log)] call _AHKickLog;
  2524. };
  2525. "; if(_VDN)then{ _A3AHstring = _A3AHstring + "
  2526. if(_ltxt in [''!vote day'',''/vote day'',''vote day'',''!day'',''/day''])then{
  2527. (findDisplay 24) closeDisplay 0;
  2528. [_name,_puid,''VOTE'',toArray ''DAY''] call _AHKickLog;
  2529. };
  2530. if(_ltxt in [''!vote night'',''/vote night'',''vote night'',''!night'',''/night''])then{
  2531. (findDisplay 24) closeDisplay 0;
  2532. [_name,_puid,''VOTE'',toArray ''NIGHT''] call _AHKickLog;
  2533. };
  2534. "; }; _A3AHstring = _A3AHstring + "
  2535. false
  2536. ';
  2537. _chatKeyUp_id = -1;
  2538. while{1==1}do
  2539. {
  2540. if(time > _markertimer)then
  2541. {
  2542. _markertimer = time + 5;
  2543.  
  2544. _need_hlog = true;
  2545. {
  2546. _marker = _x;
  2547. if(_marker find '_USER_DEFINED' > -1)then
  2548. {
  2549. _markerchannel = _marker select [(count _marker)-1,1];
  2550. if(parseNumber _markerchannel > 2)exitWith{};
  2551.  
  2552. _stringsizeSTART = (_marker find '#')+1;
  2553. _stringsizeEND = _marker find '/';
  2554. _markerid = _marker select [_stringsizeSTART,_stringsizeEND - _stringsizeSTART];
  2555. _markerid = parseNumber _markerid;
  2556.  
  2557. _shape = markerShape _marker;
  2558. if(_shape isEqualTo 'POLYLINE')then
  2559. {
  2560. _puid = getPlayerUID player;
  2561. if!(_puid isEqualTo '')then
  2562. {
  2563. _varuid = missionNameSpace getVariable[format['UID_BY_ID_%1',_markerid],'-1'];
  2564. if(_puid isEqualTo _varuid)then
  2565. {
  2566. deleteMarker _marker;
  2567. _log = 'Deleted drawing on a global channel!';
  2568. systemChat ('<infiSTAR.de> '+_log);
  2569. if(_need_hlog)then
  2570. {
  2571. [_name,_varuid,'SLOG',toArray(_log)] call _AHKickLog;
  2572. };
  2573. _need_hlog = false;
  2574. };
  2575. };
  2576. }
  2577. else
  2578. {
  2579. _varname = missionNameSpace getVariable[format['NAME_BY_ID_%1',_markerid],''];
  2580. _markerText = markerText _marker;
  2581. if(_markerText isEqualTo '')then
  2582. {
  2583. _marker setMarkerText format['%1: no marker text',_varname];
  2584. }
  2585. else
  2586. {
  2587. _addition = format['%1: ',_varname];
  2588. if((_markerText find _addition) isEqualTo -1)then
  2589. {
  2590. _marker setMarkerText (_addition+_markerText);
  2591. };
  2592. };
  2593. };
  2594. };
  2595. } forEach allMapMarkers;
  2596. };
  2597.  
  2598.  
  2599. "; if(_useTildMenu)then{ _A3AHstring = _A3AHstring + "
  2600. if(isNil'"+_customcommandingMenu+"')then
  2601. {
  2602. _log = 'customcommandingMenu is Nil';
  2603. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2604. [] call _AHKickOFF;
  2605. }
  2606. else
  2607. {
  2608. if!(str "+_customcommandingMenu+" isEqualTo str _customcommandingMenu)then
  2609. {
  2610. _log = format['customcommandingMenu changed: %1',"+_customcommandingMenu+"];
  2611. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2612. [] call _AHKickOFF;
  2613. };
  2614. };
  2615. "; }; _A3AHstring = _A3AHstring + "
  2616.  
  2617.  
  2618. "; if(_CLG)then{ _A3AHstring = _A3AHstring + "
  2619. if(isNil '"+_inCombatTime+"')then{"+_inCombatTime+" = 0;};
  2620. _combatTime = round(time - "+_inCombatTime+");
  2621. if(_combatTime <= 30)then
  2622. {
  2623. if(_inCombat == 0)then
  2624. {
  2625. _inCombat = 1;
  2626. [_name,_puid,'COMBATCHECK',_inCombat] call _AHKickLog;
  2627. };
  2628. }
  2629. else
  2630. {
  2631. if(_inCombat == 1)then
  2632. {
  2633. _inCombat = 0;
  2634. [_name,_puid,'COMBATCHECK',_inCombat] call _AHKickLog;
  2635. };
  2636. };
  2637. if!(_tmpObj isEqualTo (vehicle player))then
  2638. {
  2639. _tmpObj = (vehicle player);
  2640. player removeAllEventHandlers 'Hit';
  2641. player removeAllEventHandlers 'FiredNear';
  2642. if(alive player)then
  2643. {
  2644. player addEventHandler ['Hit',{"+_inCombatTime+" = time}];
  2645. player addEventHandler ['FiredNear',{"+_inCombatTime+" = time}];
  2646. };
  2647. };
  2648. if(!alive player)then{ "+_inCombatTime+" = 0; };
  2649.  
  2650. "; }; _A3AHstring = _A3AHstring + "
  2651. _display49 = findDisplay 49;
  2652. if!(serverCommandAvailable '#logout')then
  2653. {
  2654. if(!isNull _display49)then
  2655. {
  2656. if(_49openedTimer == 0)then{_49openedTimer = time;};
  2657. "; if(_CLG)then{ _A3AHstring = _A3AHstring + "
  2658. if(_combatTime < 30)then
  2659. {
  2660. (_display49 displayCtrl 104) ctrlEnable false;
  2661. (_display49 displayCtrl 104) ctrlSetText format['COMBAT time: %1',30-_combatTime];
  2662. }
  2663. else
  2664. {
  2665. "; }; _A3AHstring = _A3AHstring + "
  2666. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  2667. _waitTime = time - _49openedTimer;
  2668. if(_waitTime < 10)then
  2669. {
  2670. (_display49 displayCtrl 104) ctrlEnable false;
  2671. "; if(_CLG)then{ _A3AHstring = _A3AHstring + "
  2672. (_display49 displayCtrl 104) ctrlSetText format['ABORT IN %1',ceil(10-_waitTime)];
  2673. "; }; _A3AHstring = _A3AHstring + "
  2674. }
  2675. else
  2676. {
  2677. (_display49 displayCtrl 104) ctrlEnable true;
  2678. "; if(_CLG)then{ _A3AHstring = _A3AHstring + "
  2679. (_display49 displayCtrl 104) ctrlSetText 'Abort';
  2680. "; }; _A3AHstring = _A3AHstring + "
  2681. };
  2682. "; }; _A3AHstring = _A3AHstring + "
  2683. "; if(_CLG)then{ _A3AHstring = _A3AHstring + "
  2684. };
  2685. "; }; _A3AHstring = _A3AHstring + "
  2686. (_display49 displayCtrl 2) ctrlEnable false;
  2687. (_display49 displayCtrl 2) ctrlSetText "+str _ESCMNUTOP+";
  2688. (_display49 displayCtrl 103) ctrlEnable false;
  2689. (_display49 displayCtrl 103) ctrlSetText "+str _ESCMNUBOT+";
  2690. (_display49 displayCtrl 523) ctrlSetText profileName;
  2691. (_display49 displayCtrl 109) ctrlSetText _puid;
  2692. (_display49 displayCtrl 122) ctrlEnable false;
  2693. (_display49 displayCtrl 122) ctrlShow false;
  2694. "; if(_B49)then{ _A3AHstring = _A3AHstring + "
  2695. _cnt = "; if((!_B49)&&(_MOD != 'Epoch'))then{ _A3AHstring = _A3AHstring + "{
  2696. "; if(_B49)then{ _A3AHstring = _A3AHstring + "
  2697. _controltype = ctrlType _x;
  2698. if(_controltype == 16)then
  2699. {
  2700. _action = buttonAction _x;
  2701. if(_action != '')then
  2702. {
  2703. if!(str _x in _excludedButtons)then
  2704. {
  2705. if((str _x == 'Control #-1')||(_action != ""(findDisplay 49) closeDisplay 0; 0 spawn {_n= createDialog 'RHS_Options_Menu';0 spawn rhs_fnc_menuOptions;};""))then
  2706. {
  2707. _log = format['BadButton on 49: %1, %2',_x,_action];
  2708. [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
  2709. [] call _AHKickOFF;
  2710. };
  2711. };
  2712. };
  2713. };
  2714. "; }; _A3AHstring = _A3AHstring + "
  2715. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  2716. if!(str _x in ['Control #101','Control #1010','Control #104','Control #302','Control #301','Control #303','Control #307'])then
  2717. {
  2718. _x ctrlEnable false;
  2719. };
  2720. "; }; _A3AHstring = _A3AHstring + "
  2721. true
  2722. } "; }; _A3AHstring = _A3AHstring + "count (allcontrols _display49);
  2723. "; }; _A3AHstring = _A3AHstring + "
  2724.  
  2725. if(_isNormal)then
  2726. {
  2727. {
  2728. _ctrl = _display49 displayCtrl _x;
  2729. _ctrl ctrlShow false;
  2730. _ctrl buttonSetAction '(findDisplay 49) closeDisplay 0;(findDisplay 46) closeDisplay 0;';
  2731. } forEach [11884,12284,13291];
  2732. {
  2733. _ctrl = _display49 displayCtrl _x;
  2734. _ctrl ctrlShow false;
  2735. _ctrl buttonSetAction '(findDisplay 49) closeDisplay 0;(findDisplay 46) closeDisplay 0;';
  2736. if(!isNull _ctrl)then
  2737. {
  2738. _log = format['BadControl on 49: %1 - %2',_ctrl,_x];
  2739. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2740. [] call _AHKickOFF;
  2741. };
  2742. } forEach [65464,65465,65466];
  2743. };
  2744. }
  2745. else
  2746. {
  2747. _49openedTimer = 0;
  2748. };
  2749. };
  2750. if(!isNull _display49)then
  2751. {
  2752. "; if(!_BRIEFING_MSG)then{ _A3AHstring = _A3AHstring + "
  2753. (_display49 displayCtrl 120) ctrlSetText 'infiSTAR.de AntiHack & AdminsTools - [Author: infiSTAR, Contact: infiSTAR23@gmail.com]';
  2754. "; }else{ _A3AHstring = _A3AHstring + "
  2755. (_display49 displayCtrl 115025) ctrlSetText 'AntiHack & AdminsTools';
  2756. (_display49 displayCtrl 115035) ctrlSetText 'by infiSTAR.de';
  2757. "; }; _A3AHstring = _A3AHstring + "
  2758. };
  2759.  
  2760.  
  2761. if(!isNull findDisplay 24 && !isNull findDisplay 49)then
  2762. {
  2763. _dynTextDisplay = uiNamespace getvariable ['BIS_dynamicText',displayNull];
  2764. if(!isNull _dynTextDisplay)then
  2765. {
  2766. _ctrl = _dynTextDisplay displayctrl 9999;
  2767. _ctrltext = ctrlText _ctrl;
  2768. if!(_ctrltext isEqualTo '')then
  2769. {
  2770. _stillLog = true;
  2771. _lower_ctrltext = toLower _ctrltext;
  2772. {
  2773. if(_lower_ctrltext find _x > -1)then
  2774. {
  2775. _stillLog = false;
  2776. _log = format['Hackmenu found: %1 on %2 %3 - %4',_x,ctrlIDD _dynTextDisplay,ctrlIDC _ctrl,_ctrltext];
  2777. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2778. [] call _AHKickOFF;
  2779. };
  2780. } forEach "+str _verybadStrings+";
  2781. if(_stillLog)then
  2782. {
  2783. _log = format['Possible Hackmenu found on CTRL: [%1] - TEXT: [%2]',_ctrl, _ctrltext];
  2784. [_name,_puid,'SLOG_RE',toArray(_log)] call _AHKickLog;
  2785. };
  2786. };
  2787. (findDisplay 24) closeDisplay 0;
  2788. (findDisplay 49) closeDisplay 0;
  2789. };
  2790. };
  2791.  
  2792.  
  2793. {
  2794. _buttonAction = buttonAction _x;
  2795. if!(_buttonAction isEqualTo '')then
  2796. {
  2797. _log = format['MenuBasedHack :: 24 :: %1 :: %2',_x,_buttonAction];
  2798. [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
  2799. [] call _AHKickOFF;
  2800. };
  2801. _x ctrlRemoveAllEventHandlers 'MouseButtonDblClick';
  2802. } forEach allControls(finddisplay 24);
  2803.  
  2804.  
  2805. {
  2806. if(!isNull ((findDisplay 24) displayCtrl _x))then
  2807. {
  2808. _log = format['MenuBasedHack :: 24 :: %1',_x];
  2809. [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
  2810. [] call _AHKickOFF;
  2811. };
  2812. } forEach [2406,2407,2408,2409,2410,2411,2412,2443,2442,2441];
  2813. (findDisplay 24) displayRemoveEventHandler ['KeyUp',_chatKeyUp_id];
  2814. _chatKeyUp_id = (finddisplay 24) displayAddEventHandler ['KeyUp',_chatKeyUp];
  2815.  
  2816.  
  2817. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  2818. if(!isNull player)then
  2819. {
  2820. if(alive player)then
  2821. {
  2822. {
  2823. player removeAllEventHandlers _x;
  2824. player addEventHandler [_x,(['CfgEpochClient', _x, ''] call EPOCH_fnc_returnConfigEntryV2)];
  2825. } forEach _playerhandlers;
  2826. };
  2827.  
  2828. "; if(_UAG)then{ _A3AHstring = _A3AHstring + "
  2829. if(animationState player == 'amovpercmsprsnonwnondf_amovppnemstpsnonwnondnon')then
  2830. {
  2831. _ct = cursorTarget;
  2832. if(!isNull _ct)then
  2833. {
  2834. if((_ct isKindOf 'Constructions_static_F') && (_ct distance player < 4))then
  2835. {
  2836. if(time - _lastglitch > 45)then{_wallgames = 0;};
  2837. _lastglitch = time;
  2838. player switchMove '';
  2839. player setVelocity [0,0,0];
  2840. if(_wallgames >= 1)then
  2841. {
  2842. player setHitPointDamage ['HitLegs',1];
  2843. _log = format['Anti-Glitch: %1 triggered %2 times @%3 (LEGS BROKEN)',typeOf _ct,_wallgames,mapGridPosition player];
  2844. [_name,_puid,'HLOG',toArray(_log)] call _AHKickLog;
  2845. };
  2846. if(_wallgames >= 2)then
  2847. {
  2848. player setPos [0,0,100];
  2849. {player setHitPointDamage [_x,1];} forEach ['HitBody','HitHead'];
  2850. _log = format['Anti-Glitch: %1 triggered %2 times @%3 (KILLED THE GLITCHER)',typeOf _ct,_wallgames,mapGridPosition player];
  2851. [_name,_puid,'HLOG_SKICK',toArray(_log)] call _AHKickLog;
  2852. _wallgames = 0;
  2853. [] call _AHKickOFF;
  2854. };
  2855. _wallgames = _wallgames + 1;
  2856. _msg = 'NO GLITCHING';
  2857. hint _msg;
  2858. 1 cutText [format ['%1',_msg],'WHITE IN'];
  2859. systemChat _msg;
  2860. };
  2861. };
  2862. };
  2863. };
  2864. "; }; _A3AHstring = _A3AHstring + "
  2865. "; }; _A3AHstring = _A3AHstring + "
  2866. if(isNull _display49)then{uiSleep 0.2;};
  2867.  
  2868.  
  2869. "; if(_useTildMenu)then{ _A3AHstring = _A3AHstring + "
  2870. if(!isNil'"+_customcommandingMenuOpen+"')then
  2871. {
  2872. _cmd_open_timer = diag_tickTime + 5;
  2873. waitUntil{
  2874. hint format['opening menu in: %1s if your game crahes, do not use this function again..! #ArmaBugs',_cmd_open_timer - diag_tickTime];
  2875. diag_tickTime > _cmd_open_timer
  2876. };
  2877. "+_customcommandingMenuOpen+" = nil;
  2878. showCommandingMenu '#USER:"+_customcommandingMenu+"';
  2879. };
  2880. "; }; _A3AHstring = _A3AHstring + "
  2881.  
  2882.  
  2883. "; if((_MOD == 'Epoch')&&(_AWL))then{ _A3AHstring = _A3AHstring + "
  2884. if(player == vehicle player)then
  2885. {
  2886. _intersectsWith = [];
  2887.  
  2888. _eyeDir = eyedirection player;
  2889. _wepDir = player weapondirection currentweapon player;
  2890.  
  2891. _vectorDiff = _eyeDir vectorDiff _wepDir;
  2892. _xdif = abs(_vectorDiff select 0);
  2893.  
  2894. if((inputAction 'EvasiveLeft' > 0)||(inputAction 'EvasiveRight' > 0)||(_eyeDir select 2 > 0.5)||(_xdif > 0.55))then
  2895. {
  2896. _eyePos = eyepos player;
  2897. _dir_weapon_r = (((_wepDir) select 0) atan2 ((_wepDir) select 1))+45;
  2898. _dir_weapon_l = (((_wepDir) select 0) atan2 ((_wepDir) select 1))-25;
  2899.  
  2900. _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];
  2901. _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];
  2902. _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];
  2903.  
  2904. _plrPosVisual = ATLtoASL (player modelToWorldVisual [0,0,0]);
  2905. _intersectsWith append lineIntersectsWith [_eyePos, _plrPosVisual];
  2906. };
  2907.  
  2908. if(_intersectsWith isEqualTo [])then
  2909. {
  2910. if(_faded)then{_faded=false;TitleText ['AntiHack by infiSTAR.de','PLAIN DOWN'];};
  2911. }
  2912. else
  2913. {
  2914. {
  2915. if(_x isKindOf 'Const_All_Walls_F')exitWith{call _fadeOut};
  2916. if(_x isKindOf 'Const_WoodWalls_static_F')exitWith{call _fadeOut};
  2917. if(_faded)exitWith{};
  2918. } forEach _intersectsWith;
  2919. };
  2920. };
  2921. "; }; _A3AHstring = _A3AHstring + "
  2922. };
  2923. };
  2924.  
  2925. [_name,_puid,_AHKickOFF,_AHKickLog] spawn {
  2926. params ['_name','_puid','_AHKickOFF','_AHKickLog'];
  2927. "; if(_USE_RESTART_TIMER)then{ _A3AHstring = _A3AHstring + "
  2928. _restartTime = "+str _RESTART_TIME_IN_M+";
  2929. _msgTimes = "+str _SHOW_TIMER_IN_MIN+";
  2930. _msgFormat = '<t size=''0.70'' color=''#DA1700'' align=''right''>RESTART IN %1 MINS</t>';
  2931. "; }; _A3AHstring = _A3AHstring + "
  2932. "; if(_UOL)then{ _A3AHstring = _A3AHstring + "
  2933. _server_onLoadUnload1 = "+str _onLoadUnload1+";
  2934. _server_onLoadUnload2 = "+str _onLoadUnload2+";
  2935. _server_onLoadUnload3 = "+str _onLoadUnload3+";
  2936. "; }; _A3AHstring = _A3AHstring + "
  2937. while{1==1}do
  2938. {
  2939. "; if(_UOL)then{ _A3AHstring = _A3AHstring + "
  2940. {
  2941. _onLoad = toArray(getText(configFile >> _x >> 'onLoad'));
  2942. _server_onLoad = _server_onLoadUnload2 select _forEachIndex;
  2943. if(!(_onLoad isEqualTo _server_onLoad) && !(_onLoad isEqualTo ''))then
  2944. {
  2945. _log = format['onLoad changed: %1, %2, %3',_x,toString _onLoad,toString _server_onLoad];
  2946. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2947. [] call _AHKickOFF;
  2948. };
  2949. _onUnload = toArray(getText(configFile >> _x >> 'onUnload'));
  2950. _server_onUnload = _server_onLoadUnload3 select _forEachIndex;
  2951. if(!(_onUnload isEqualTo _server_onUnload) && !(_onUnload isEqualTo ''))then
  2952. {
  2953. _log = format['onUnload changed: %1, %2, %3',_x,toString _onUnload,toString _server_onUnload];
  2954. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2955. [] call _AHKickOFF;
  2956. };
  2957. } forEach _server_onLoadUnload1;
  2958. "; }; _A3AHstring = _A3AHstring + "
  2959. "; if(_UMP)then{ _A3AHstring = _A3AHstring + "
  2960. uiSleep 1;
  2961. _children = [configFile >> 'RscDisplayMPInterrupt' >> 'controls',0] call BIS_fnc_returnChildren;
  2962. _allowedChildren = ['Title','MissionTitle','DifficultyTitle','PlayersName','ButtonCancel','ButtonSAVE','ButtonSkip','ButtonRespawn','ButtonOptions','ButtonVideo','ButtonAudio','ButtonControls','ButtonGame','ButtonTutorialHints','ButtonAbort','DebugConsole','Feedback','MessageBox','CBA_CREDITS_M_P','CBA_CREDITS_CONT_C','Version','TrafficLight','TraffLight'];
  2963. {
  2964. _cfgName = configName _x;
  2965. if(!(_cfgName in _allowedChildren))then
  2966. {
  2967. _log = format['Modified MPInterrupt: %1 | %2',_x,_cfgName];
  2968. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  2969. [] call _AHKickOFF;
  2970. };
  2971. } forEach _children;
  2972. uiSleep 1;
  2973. "; }; _A3AHstring = _A3AHstring + "
  2974. "; if(_USE_RESTART_TIMER)then{ _A3AHstring = _A3AHstring + "
  2975. _currentmessagetime = (_restartTime - round(serverTime / 60));
  2976. if(_currentmessagetime in _msgTimes)then
  2977. {
  2978. _msgTimes = _msgTimes - [_currentmessagetime];
  2979. [
  2980. format[_msgFormat, _restartTime - round(serverTime / 60)],
  2981. [safezoneX + safezoneW - 0.8,0.50],
  2982. [safezoneY + safezoneH - 0.8,0.7],
  2983. 5,
  2984. 0.5
  2985. ] call BIS_fnc_dynamicText;
  2986. };
  2987. "; }; _A3AHstring = _A3AHstring + "
  2988. uiSleep 8;
  2989. };
  2990. };
  2991. if(_isNormal)then {
  2992. "; if((_UBV)||(_UBV2))then{ _A3AHstring = _A3AHstring + "
  2993. [_name,_puid,_admin,_isNormal,_admins] spawn {
  2994. params ['_name','_puid','_admin','_isNormal','_admins'];
  2995. "; if(_UBV)then{ _A3AHstring = _A3AHstring + "
  2996. _blacklistedVariables = "+str _blacklistedVariables+";
  2997. _blacklistedVariables append ['JoinOrNotJoinIsTheQuestion','noRecoilRun','A3FFrun'];
  2998. if(_admin)then
  2999. {
  3000. {
  3001. _missionNamespace = missionNamespace getVariable _x;
  3002. if(!isNil '_missionNamespace')then
  3003. {
  3004. missionNamespace setVariable[_x,nil];
  3005. };
  3006. _uiNamespace = uiNamespace getVariable _x;
  3007. if(!isNil '_uiNamespace')then
  3008. {
  3009. uiNamespace setVariable[_x,nil];
  3010. };
  3011. _profileNamespace = profileNamespace getVariable _x;
  3012. if(!isNil '_profileNamespace')then
  3013. {
  3014. profileNamespace setVariable[_x,nil];
  3015. };
  3016. } forEach _blacklistedVariables;
  3017. saveProfileNamespace;
  3018. };
  3019. "; }; _A3AHstring = _A3AHstring + "
  3020. "; if(_UBV2)then{ _A3AHstring = _A3AHstring + "
  3021. _lastTimeCheckedVars = time + 80;
  3022. _alreadyCheckedVariables = "+str _allRandomGenVars+";
  3023. _alreadyCheckedVariables append "+str _badVarWhitelistReal+";
  3024. _alreadyCheckedVariables append ['fnc_sendmsgtoplr','bpdcode','ruhr_fnc_emptyfuel','"+_AH_AdmiLogArrayRND+"'];
  3025. "; }; _A3AHstring = _A3AHstring + "
  3026. while{1==1}do
  3027. {
  3028. _timer1 = time;
  3029. {
  3030. _bvc = profileNamespace getVariable [_x,0];
  3031. if(_bvc isEqualType '')then
  3032. {
  3033. profileNamespace setVariable [_x,0.4];saveprofileNamespace;
  3034. _log = format['Injector found: %1 (%2) VALUE: [%3]', _x, typeName _bvc, str _bvc];
  3035. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3036. [] call "+_AHKickOFF+";
  3037. };
  3038. } forEach [
  3039. 'igui_bcg_rgb_a','igui_bcg_rgb_r','igui_bcg_rgb_g','igui_bcg_rgb_b','IGUI_grid_mission_X','IGUI_grid_mission_Y','IGUI_grid_mission_W','IGUI_grid_mission_H',
  3040.  
  3041. 'gui_grid_w','igui_grid_squadradar_y','igui_grid_slingloadassistant_h','gui_grid_x','igui_grid_stance_x','gui_titletext_rgb_r','gui_grid_y','igui_grid_stance_y',
  3042. 'gui_bcg_rgb_a','igui_grid_gps_w','igui_error_rgb_a','igui_grid_gps_x','igui_error_rgb_b','igui_grid_gps_y','igui_grid_stamina_x','gui_grid_center_w',
  3043. 'igui_grid_comm_x','gui_grid_center_x','igui_grid_stamina_y','igui_grid_radar_x','igui_grid_comm_y','gui_grid_center_y','igui_warning_rgb_a','igui_text_rgb_a',
  3044. 'igui_grid_avcamera_h','igui_grid_radar_y','igui_warning_rgb_b','igui_text_rgb_b','gui_bcg_rgb_g','igui_grid_gaugespeed_x','igui_grid_weapon_x','igui_grid_gaugespeed_y',
  3045. 'igui_error_rgb_g','igui_grid_gaugecompass_x','igui_grid_weapon_y','igui_grid_chat_w','igui_grid_vehicle_x','igui_grid_vehicle_y','igui_grid_gaugecompass_y',
  3046. 'igui_grid_chat_x','igui_grid_hint_x'
  3047. ];
  3048.  
  3049.  
  3050. "; if(_UBV)then{ _A3AHstring = _A3AHstring + "
  3051. {
  3052. _vc = missionNamespace getVariable _x;
  3053. if(!isNil _x)then
  3054. {
  3055. _log = format['BadVar#1: %1 - %2',_x,_vc];
  3056. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3057. [] call "+_AHKickOFF+";
  3058. }
  3059. else
  3060. {
  3061. if(!isNil '_vc')then
  3062. {
  3063. _log = format['BadVar#1 in missionNamespace: %1 - %2',_x,_vc];
  3064. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3065. [] call "+_AHKickOFF+";
  3066. };
  3067. };
  3068. _vc = player getVariable _x;
  3069. if(!isNil '_vc')then
  3070. {
  3071. player setVariable[_x,nil];
  3072. _log = format['BadVar#1 on player: %1 - %2',_x,_vc];
  3073. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3074. [] call "+_AHKickOFF+";
  3075. };
  3076. _vc = uiNamespace getVariable _x;
  3077. if(!isNil '_vc')then
  3078. {
  3079. _log = format['BadVar#1 in uiNamespace: %1 - %2',_x,_vc];
  3080. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3081. [] call "+_AHKickOFF+";
  3082. };
  3083. _vc = profileNamespace getVariable _x;
  3084. if(!isNil '_vc')then
  3085. {
  3086. profileNamespace setVariable[_x,nil];saveProfileNamespace;
  3087. _log = format['BadVar#1 in profileNamespace: %1 - %2',_x,_vc];
  3088. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3089. [] call "+_AHKickOFF+";
  3090. };
  3091. } forEach _blacklistedVariables;
  3092. "; }; _A3AHstring = _A3AHstring + "
  3093. "; if(_UBV2)then{ _A3AHstring = _A3AHstring + "
  3094. if(_admin)then
  3095. {
  3096. if(time > _lastTimeCheckedVars)then
  3097. {
  3098. _lastTimeCheckedVars = time + 80;
  3099.  
  3100. {
  3101. _var = _x;
  3102. _varid = _alreadyCheckedVariables pushBackUnique _var;
  3103. if(_varid > -1)then
  3104. {
  3105. {
  3106. if!((toLower _var) find _x isEqualTo -1)then
  3107. {
  3108. _log = format['BadVar#2 found %1 in %2',_x,_var];
  3109. [profileName,getPlayerUID player,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3110. [] call "+_AHKickOFF+";
  3111. missionNamespace setVariable[_var,nil];
  3112. }
  3113. else
  3114. {
  3115. "; if(_UBV2C)then{ _A3AHstring = _A3AHstring + "
  3116. _m = missionNamespace getVariable _var;
  3117. if(!isNil '_m')then
  3118. {
  3119. _mstring = str _m;
  3120. if((toLower _mstring) find _x != -1)then
  3121. {
  3122. _mstring = _mstring select [0,1000];
  3123. _log = format['BadVar#2 found %1 in %2: %3',_x,_var,_mstring];
  3124. [profileName,getPlayerUID player,'SLOG',toArray(_log)] call "+_AHKickLog+";
  3125. (findDisplay 46)closeDisplay 0;
  3126. missionNamespace setVariable[_var,nil];
  3127. };
  3128. };
  3129. "; }; _A3AHstring = _A3AHstring + "
  3130. };
  3131. } forEach "+str _verybadStrings+";
  3132. };
  3133. } forEach (allVariables missionNamespace);
  3134. };
  3135. };
  3136. "; }; _A3AHstring = _A3AHstring + "
  3137. _sleeptimer = ((time - _timer1)*2)+1;
  3138. uiSleep _sleeptimer;
  3139. };
  3140. };
  3141. "; }; _A3AHstring = _A3AHstring + "
  3142. [_name,_puid] spawn {
  3143. disableSerialization;
  3144. _name = _this select 0;
  3145. _puid = _this select 1;
  3146. _FiredCheck = {
  3147. _unit = _this select 0;
  3148. _weapon = _this select 1;
  3149. _muzzle = _this select 2;
  3150. _mode = _this select 3;
  3151. _ammo = _this select 4;
  3152. _magazine = _this select 5;
  3153. _projectile = _this select 6;
  3154. if(("+str _UFA+") && {((!("+str _UAW+") && {_ammo in "+str _ForbiddenAmmo+"}) || (("+str _UAW+") && {!(_ammo in "+str _AmmoWhiteList+")}))})then
  3155. {
  3156. _log = format['ForbiddenAmmo: %1 with weapon %2',_ammo,_muzzle];
  3157. [profileName,getPlayerUID _unit,'BAN',toArray(_log)] call "+_AHKickLog+";
  3158. [] call "+_AHKickOFF+";
  3159. };
  3160. if(_unit isEqualTo (vehicle _unit))then
  3161. {
  3162. if!(_muzzle in ['','Throw','Flare','Put'])then
  3163. {
  3164. if((toLower _magazine) find '3rnd_' == -1)then
  3165. {
  3166. _ammo_checkpassed = true;
  3167. _lowAmmo = toLower _ammo;
  3168. {if(_lowAmmo find _x > -1)exitWith{_ammo_checkpassed = false;};} forEach ['f_40mm','f_20mm','g_40mm','g_20mm','spear_'];
  3169. if(_ammo_checkpassed)then
  3170. {
  3171. _cfgammo = getText(configFile >> 'CfgMagazines' >> _magazine >> 'ammo');
  3172. if(_ammo != _cfgammo)then
  3173. {
  3174. _log = format['BadMuzzle: %1 with weapon %2',_ammo,_muzzle];
  3175. [profileName,getPlayerUID _unit,'BAN',toArray(_log)] call "+_AHKickLog+";
  3176. [] call "+_AHKickOFF+";
  3177. };
  3178.  
  3179. _maxAmmo = getNumber (configFile >> 'CfgMagazines' >> _magazine >> 'count');
  3180. if(_maxAmmo > 1)then
  3181. {
  3182. if(isNil '"+_lastshotmade+"')then{"+_lastshotmade+" = diag_tickTime;};
  3183. if(typeName "+_lastshotmade+" != 'SCALAR')then
  3184. {
  3185. _log = 'BadDefinition: -no ammo loss- check bypass!';
  3186. [profileName,getPlayerUID _unit,'BAN',toArray(_log)] call "+_AHKickLog+";
  3187. [] call "+_AHKickOFF+";
  3188. };
  3189. if(diag_tickTime - "+_lastshotmade+" > 0.2)then
  3190. {
  3191. _camm = _unit ammo _muzzle;
  3192. if((_camm >= _maxAmmo)&&(_muzzle isEqualTo currentWeapon _unit))then
  3193. {
  3194. _log = format['No Ammo Loss - Removed Current Magazine: %1 %2 %3 %4',_muzzle,_magazine,_camm,_maxAmmo];
  3195. [profileName,getPlayerUID _unit,'SLOG',toArray(_log)] call "+_AHKickLog+";
  3196. [_muzzle,_magazine,_unit] spawn {
  3197. (_this select 2) removeItem (_this select 0);
  3198. (_this select 2) removeWeapon (_this select 0);
  3199. (_this select 2) removeMagazines (_this select 1);
  3200. };
  3201. };
  3202. };
  3203. "+_lastshotmade+" = diag_tickTime;
  3204. };
  3205. };
  3206. };
  3207. };
  3208. };
  3209. true
  3210. };
  3211. "+_FiredCheck+" = compileFinal ([_FiredCheck] call "+str fnc_CompilableString+");
  3212. _addCaseHDMGold = -1;
  3213. _addCaseMEHold = -1;
  3214. if(isNil 'life_fnc_keyHandler')then{life_fnc_keyHandler = {false};}else{if(typeName life_fnc_keyHandler != 'CODE')then{life_fnc_keyHandler = {false};};};
  3215.  
  3216. "; if((_RDK) && !(_CKB))then{ _A3AHstring = _A3AHstring + "
  3217. (findDisplay 46) displayRemoveAllEventHandlers 'KeyDown';
  3218. "; }; _A3AHstring = _A3AHstring + "
  3219. "; if(_RUK)then{ _A3AHstring = _A3AHstring + "
  3220. (findDisplay 46) displayRemoveAllEventHandlers 'KeyUp';
  3221. "; }; _A3AHstring = _A3AHstring + "
  3222.  
  3223. "; if(_CKB)then{ _A3AHstring = _A3AHstring + "
  3224. _kbacaught = false;
  3225. "; }; _A3AHstring = _A3AHstring + "
  3226. "; if(_RMB)then{ _A3AHstring = _A3AHstring + "
  3227. "+_ButtonDownCnt+"=0;
  3228. "+_ButtonDownTime+"= round diag_tickTime;
  3229. "; }; _A3AHstring = _A3AHstring + "
  3230. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  3231. _loggedOnce = false;
  3232. "; }; _A3AHstring = _A3AHstring + "
  3233. _RMEH = "+str _RMEH+";
  3234. "; if(_OMC||_MBC)then{ _A3AHstring = _A3AHstring + "
  3235. _RMEH = _RMEH - ['MouseButtonClick'];
  3236. "; }; _A3AHstring = _A3AHstring + "
  3237. while{1==1}do
  3238. {
  3239.  
  3240. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  3241. _vehvarname = vehicleVarName player;
  3242. if!(_vehvarname isEqualTo '')then
  3243. {
  3244. _log = format['vehicleVarName on player: %1',_vehvarname];
  3245. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3246. [] call "+_AHKickOFF+";
  3247. };
  3248. "; }; _A3AHstring = _A3AHstring + "
  3249.  
  3250.  
  3251. {
  3252. private _actionParams = player actionParams _x;
  3253. if(!isNil'_actionParams')then
  3254. {
  3255. _actionParams params [
  3256. ['_actionTitle',''],
  3257. ['_script',''],
  3258. ['_arguments','']
  3259. ];
  3260. if(_actionTitle isEqualTo '')then
  3261. {
  3262. player removeAction _x;
  3263. }
  3264. else
  3265. {
  3266. _actionParams = [_actionTitle,_script,_arguments];
  3267. _actionTitle = toLower _actionTitle;
  3268. {
  3269. if(_actionTitle find _x > -1)exitWith
  3270. {
  3271. _log = format['HackAction on player: found [%1] in [%2]',_x,_actionParams];
  3272. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3273. [] call "+_AHKickOFF+";
  3274. };
  3275. } forEach [
  3276. ':dh:','map esp','inf ammo','delete cursor','destroy target','delete target','carpet bomb',
  3277. 'godmode','no grass','jail cursor','map tp','rapid fire','creation list','spawn gear loadouts',
  3278. '===','back to main menu','exile only','back to main menu'
  3279. ];
  3280. };
  3281. };
  3282. } forEach (actionIDs player);
  3283.  
  3284.  
  3285.  
  3286.  
  3287. if((!isNull (findDisplay 12))&&(visiblemap))then
  3288. {
  3289. {(findDisplay 12 displayCtrl 51) ctrlRemoveAllEventHandlers _x;findDisplay 12 displayRemoveAllEventHandlers _x} forEach _RMEH;
  3290. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  3291. if(!_loggedOnce)then
  3292. {
  3293. _selected = lbSelection ((findDisplay 12) displayCtrl 1001);
  3294. if(!(_selected isEqualTo [2])&&!(_selected isEqualTo [3]))then
  3295. {
  3296. _control1 = (findDisplay 12) displayCtrl 1002;
  3297. _size = lbSize _control1;
  3298. if(_size > 2)then
  3299. {
  3300. _texts = [];
  3301. for '_i' from 0 to (_size-1) do
  3302. {
  3303. _lbtxt = _control1 lbText _i;
  3304. _texts pushBack _lbtxt;
  3305. };
  3306.  
  3307. _log = format['Map Sub-Menu %1 size has been changed to %2. Found: %3',_selected,_size,_texts];
  3308. [_name,_puid,'SLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3309. (findDisplay 46)closeDisplay 0;
  3310. _loggedOnce = true;
  3311. lbClear _control1;
  3312. };
  3313. };
  3314.  
  3315. _control2 = (findDisplay 12) displayCtrl 1001;
  3316. _size = lbSize _control2;
  3317. if(_size > 5)then
  3318. {
  3319. _log = format['Map Menu has been changed %1 entries found (should be 5)',_size];
  3320. [_name,_puid,'SLOG',toArray(_log)] call "+_AHKickLog+";
  3321. _loggedOnce = true;
  3322. lbClear _control2;
  3323. };
  3324. };
  3325. "; }; _A3AHstring = _A3AHstring + "
  3326. };
  3327. "; if(_RMB)then{ _A3AHstring = _A3AHstring + "
  3328. if(isNil'"+_ButtonDownCnt+"')then
  3329. {
  3330. _log = '"+_ButtonDownCnt+" is nil';
  3331. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3332. [] call "+_AHKickOFF+";
  3333. }
  3334. else
  3335. {
  3336. if(typeName "+_ButtonDownCnt+" != 'SCALAR')then
  3337. {
  3338. _log = format['"+_ButtonDownCnt+" typename changed to %1, %2',typeName "+_ButtonDownCnt+","+_ButtonDownCnt+"];
  3339. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3340. [] call "+_AHKickOFF+";
  3341. };
  3342. };
  3343. if(isNil'"+_ButtonDownTime+"')then
  3344. {
  3345. _log = '"+_ButtonDownTime+" is nil';
  3346. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3347. [] call "+_AHKickOFF+";
  3348. }
  3349. else
  3350. {
  3351. if(typeName "+_ButtonDownTime+" != 'SCALAR')then
  3352. {
  3353. _log = format['"+_ButtonDownTime+" typename changed to %1, %2',typeName "+_ButtonDownTime+","+_ButtonDownTime+"];
  3354. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3355. [] call "+_AHKickOFF+";
  3356. };
  3357. };
  3358. (findDisplay 46) displayRemoveAllEventHandlers 'MouseButtonDown';
  3359. (findDisplay 46) displaySetEventHandler ['MouseButtonDown',""
  3360. if(round diag_tickTime == "+_ButtonDownTime+")then
  3361. {
  3362. "+_ButtonDownCnt+" = "+_ButtonDownCnt+" + 1;
  3363. }
  3364. else
  3365. {
  3366. if("+_ButtonDownCnt+" >= 30)then
  3367. {
  3368. _ct = cursorTarget;
  3369. if(!isNull _ct)then
  3370. {
  3371. if(isPlayer _ct)then
  3372. {
  3373. _ct = format['%1(%2) %3, %4m away',name _ct,getPlayerUID _ct,typeOf (vehicle _ct),player distance _ct];
  3374. }
  3375. else
  3376. {
  3377. _ct = format['%1, %2m away',typeOf _ct,player distance _ct];
  3378. };
  3379. }
  3380. else
  3381. {
  3382. _ct='NO TARGET';
  3383. };
  3384. _log = format['Clicking speed too fast! %1 clicks in a second.. FPS: %2, Target: %3, Displays: %4',"+_ButtonDownCnt+",diag_fps,_ct,allDisplays];
  3385. [profileName,getPlayerUID player,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3386. };
  3387. "+_ButtonDownCnt+" = 0;
  3388. };
  3389. "+_ButtonDownTime+"= round diag_tickTime;
  3390. ""];
  3391. "; }; _A3AHstring = _A3AHstring + "
  3392. {
  3393. (findDisplay _x) displayRemoveAllEventHandlers 'MouseHolding';
  3394. } forEach [18,46,49];
  3395. {
  3396. (findDisplay _x) displayRemoveAllEventHandlers 'MouseZChanged';
  3397. (findDisplay _x) displayRemoveAllEventHandlers 'MouseMoving';
  3398. (findDisplay _x) displayRemoveAllEventHandlers 'MouseButtonDown';
  3399. } forEach [18,49];
  3400. {
  3401. (findDisplay _x) displayRemoveAllEventHandlers 'KeyDown';
  3402. (findDisplay _x) displayRemoveAllEventHandlers 'KeyUp';
  3403. } forEach [-1,18,49,106];
  3404. (findDisplay 131) displayCtrl 102 ctrlRemoveallEVenthandlers 'LBDblClick';
  3405. (findDisplay 131) displayCtrl 102 ctrlRemoveallEVenthandlers 'LBSelChanged';
  3406.  
  3407. "; if(_RUK)then{ _A3AHstring = _A3AHstring + "
  3408. (findDisplay 46) displayRemoveAllEventHandlers 'KeyUp';
  3409. (findDisplay 46) displayAddEventHandler ['KeyUp',{ _this call "+_fnc_infiKeyHandler+"; }];
  3410. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  3411. (findDisplay 46) displayAddEventHandler ['KeyUp','_this call EPOCH_KeyUp'];
  3412. "; }; _A3AHstring = _A3AHstring + "
  3413. "; }; _A3AHstring = _A3AHstring + "
  3414.  
  3415. "; if(_RDK)then{ _A3AHstring = _A3AHstring + "
  3416. (findDisplay 46) displayRemoveAllEventHandlers 'KeyDown';
  3417. _shouldbe = 0;
  3418. _kdID = (findDisplay 46) displayAddEventHandler ['KeyDown',{ _this call "+_fnc_infiKeyHandler+"; }];
  3419. "; if(_MOD == 'AltisLife')then{ _A3AHstring = _A3AHstring + "
  3420. _shouldbe = _shouldbe + 1;
  3421. _kdID = (findDisplay 46) displayAddEventHandler ['KeyDown','_this call life_fnc_keyHandler;'];
  3422. "; }; _A3AHstring = _A3AHstring + "
  3423. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  3424. _shouldbe = _shouldbe + 1;
  3425. _kdID = (findDisplay 46) displayAddEventHandler ['KeyDown','_this call EPOCH_KeyDown'];
  3426. "; }; _A3AHstring = _A3AHstring + "
  3427. "; if(_CKB)then{ _A3AHstring = _A3AHstring + "
  3428. _shouldbe = _shouldbe + 1;
  3429. _kdID = (findDisplay 46) displayAddEventHandler ['KeyDown','false'];
  3430. "; }; _A3AHstring = _A3AHstring + "
  3431. uiSleep 0.2;
  3432. "; if(_CKB)then{ _A3AHstring = _A3AHstring + "
  3433. _randomid = round(random 5);
  3434. for '_i' from 1 to _randomid do
  3435. {
  3436. _shouldbe = _shouldbe + 1;
  3437. _kdID = (findDisplay 46) displayAddEventHandler ['KeyDown','false'];
  3438. };
  3439. if(_kdID != _shouldbe)then
  3440. {
  3441. if(alive player)then
  3442. {
  3443. if(_kbacaught)then
  3444. {
  3445. _log = format['KeyBinds added %1 should be %2',_kdID,_shouldbe];
  3446. [_name,_puid,'HLOG',toArray(_log)] call "+_AHKickLog+";
  3447. (findDisplay 46)closeDisplay 0;
  3448. };
  3449. _kbacaught=true;
  3450. "; if(_RUK)then{ _A3AHstring = _A3AHstring + "
  3451. (findDisplay 46) displayRemoveAllEventHandlers 'KeyUp';
  3452. (findDisplay 46) displayAddEventHandler ['KeyUp',{ _this call "+_fnc_infiKeyHandler+"; }];
  3453. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  3454. (findDisplay 46) displayAddEventHandler ['KeyUp','_this call EPOCH_KeyUp'];
  3455. "; }; _A3AHstring = _A3AHstring + "
  3456. "; }; _A3AHstring = _A3AHstring + "
  3457. };
  3458. };
  3459. "; }; _A3AHstring = _A3AHstring + "
  3460. "; }else{ _A3AHstring = _A3AHstring + "
  3461. uiSleep 0.2;
  3462. "; }; _A3AHstring = _A3AHstring + "
  3463. if(!isNull player)then
  3464. {
  3465. if(alive player)then
  3466. {
  3467. "; if(!_EHF && !_NO_EHF)then{ _A3AHstring = _A3AHstring + "
  3468. player removeAllEventHandlers 'Fired';
  3469. player addEventHandler ['Fired',{if(inSafeZone)then{deleteVehicle (_this select 6)}}];
  3470. player addEventHandler ['Fired',compile ('_this call '+str(_FiredCheck))];
  3471. player addEventHandler ['Fired',{_this call "+str _customFiredEventhandler+"}];
  3472. "; if(_MOD == 'AltisLife')then{ _A3AHstring = _A3AHstring + "
  3473. player addEventHandler ['Fired',{_this call life_fnc_onFired}];
  3474. "; }; _A3AHstring = _A3AHstring + "
  3475. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  3476. player addEventHandler ['Fired',{_this call EPOCH_fnc_playerFired}];
  3477. "; }; _A3AHstring = _A3AHstring + "
  3478. "; }; _A3AHstring = _A3AHstring + "
  3479. "; if(_MOD != 'Epoch')then{ _A3AHstring = _A3AHstring + "
  3480. player removeAllEventHandlers 'Take';
  3481. "; }; _A3AHstring = _A3AHstring + "
  3482. "; if(_C3D)then{ _A3AHstring = _A3AHstring + "
  3483. if(_addCaseMEHold > -1)then
  3484. {
  3485. _addCaseMEH = addMissionEventHandler ['Draw3D', {}];
  3486. if(_addCaseMEHold + 1 != _addCaseMEH)then
  3487. {
  3488. _log = format['EH_Draw3D 2: %1 should be %2',_addCaseMEH,_addCaseMEHold + 1];
  3489. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3490. [] call "+_AHKickOFF+";
  3491. };
  3492. };
  3493. removeAllMissionEventHandlers 'Draw3D';
  3494. _roundRandomNumberMEH = (round(random 3))+1;
  3495. _addCaseMEH = 0;
  3496. for '_i' from 0 to _roundRandomNumberMEH do
  3497. {
  3498. _addCaseMEH = addMissionEventHandler ['Draw3D', {}];
  3499. };
  3500. if(_addCaseMEH == _roundRandomNumberMEH)then
  3501. {
  3502. _addCaseMEHold = _addCaseMEH;
  3503. }
  3504. else
  3505. {
  3506. _log = format['EH_Draw3D 1: %1 should be %2',_addCaseMEH,_roundRandomNumberMEH];
  3507. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3508. [] call "+_AHKickOFF+";
  3509. };
  3510. "; }; _A3AHstring = _A3AHstring + "
  3511.  
  3512.  
  3513. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  3514. player removeAllEventHandlers 'AnimChanged';
  3515. player addEventHandler ['Damaged',{}];
  3516. {
  3517. player removeAllEventHandlers _x;
  3518. _addCase = player addEventHandler [_x,{}];
  3519. if(_addCase > 0)then{
  3520. _log = format['EH_%1: %2',_x,_addCase];
  3521. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3522. [] call "+_AHKickOFF+";
  3523. };
  3524. } forEach ['HandleHeal','Dammaged','Damaged','HitPart'];
  3525. "; if(_RHD)then{ _A3AHstring = _A3AHstring + "
  3526. if(_addCaseHDMGold > -1)then
  3527. {
  3528. _addCaseHDMG = player addEventHandler ['HandleDamage',{}];
  3529. if((_addCaseHDMGold + 1 != _addCaseHDMG)&&(_addCaseHDMG != 0))then
  3530. {
  3531. _log = format['EH_HandleDamage 2: %1 should be %2',_addCaseHDMG,_addCaseHDMGold + 1];
  3532. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3533. [] call "+_AHKickOFF+";
  3534. };
  3535. };
  3536. player removeAllEventHandlers 'HandleDamage';
  3537. _roundRandomNumberHDMG = (round(random 3))+1;
  3538. _addCaseHDMG = 0;
  3539. for '_i' from 0 to _roundRandomNumberHDMG do
  3540. {
  3541. _addCaseHDMG = player addEventHandler ['HandleDamage',{}];
  3542. };
  3543. if(_addCaseHDMG == _roundRandomNumberHDMG)then
  3544. {
  3545. "; if(str _CHD != '{}')then{ _A3AHstring = _A3AHstring + "
  3546. _addCaseHDMG = player addEventHandler ['HandleDamage',"+str _CHD+"];
  3547. "; }; _A3AHstring = _A3AHstring + "
  3548. _addCaseHDMGold = _addCaseHDMG;
  3549. }
  3550. else
  3551. {
  3552. _log = format['EH_HandleDamage 1: %1 should be %2',_addCaseHDMG,_roundRandomNumberHDMG];
  3553. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3554. [] call "+_AHKickOFF+";
  3555. };
  3556. "; }else{ _A3AHstring = _A3AHstring + "
  3557. player removeAllEventHandlers 'HandleDamage';
  3558. player addEventHandler ['HandleDamage',''];
  3559. "; }; _A3AHstring = _A3AHstring + "
  3560. "; }; _A3AHstring = _A3AHstring + "
  3561.  
  3562.  
  3563. "; if(_MOD == 'AltisLife')then{ _A3AHstring = _A3AHstring + "
  3564. player removeAllEventhandlers 'InventoryClosed';
  3565. player addEventHandler ['InventoryClosed', {_this call life_fnc_inventoryClosed}];
  3566. "; if(_RIO)then{ _A3AHstring = _A3AHstring + "
  3567. player removeAllEventhandlers 'InventoryOpened';
  3568. player addEventHandler ['InventoryOpened', {_this call life_fnc_inventoryOpened}];
  3569. "; }; _A3AHstring = _A3AHstring + "
  3570. "; if(_RKH)then{ _A3AHstring = _A3AHstring + "
  3571. player removeAllEventHandlers 'Killed';
  3572. player addEventHandler ['Killed', {_this spawn life_fnc_onPlayerKilled}];
  3573. "; }; _A3AHstring = _A3AHstring + "
  3574. "; if(_RHD)then{ _A3AHstring = _A3AHstring + "
  3575. player removeAllEventhandlers 'HandleDamage';
  3576. player addEventHandler ['HandleDamage',{_this call life_fnc_HandleDamage;}];
  3577. "; }; _A3AHstring = _A3AHstring + "
  3578. player addEventHandler ['Take',{_this call life_fnc_onTakeItem}];
  3579. if("+str _REH+")then{player removeAllEventhandlers 'Hit';};
  3580. player removeAllEventHandlers 'Damaged';
  3581. player removeAllEventHandlers 'Dammaged';
  3582. "; }; _A3AHstring = _A3AHstring + "
  3583. }
  3584. else
  3585. {
  3586. _addCaseMEHold = -1;
  3587. _addCaseHDMGold = -1;
  3588. };
  3589. }
  3590. else
  3591. {
  3592. _addCaseMEHold = -1;
  3593. _addCaseHDMGold = -1;
  3594. };
  3595. };
  3596. };
  3597. [_name,_puid,_AHKickOFF,_AHKickLog,_admins] spawn {
  3598. params['_name','_puid','_AHKickOFF','_AHKickLog','_admins'];
  3599. disableSerialization;
  3600. uiSleep 5;
  3601. BIS_fnc_showNotification_queue = [];
  3602.  
  3603. _uistocheck = ['RscDisplayRemoteMissions','RscDisplayDebugPublic','RscDisplayMovieInterrupt'];
  3604. "; if(_checkRscDisplayArsenal)then{ _A3AHstring = _A3AHstring + "
  3605. _uistocheck pushBack 'RscDisplayArsenal';
  3606. "; }; _A3AHstring = _A3AHstring + "
  3607. {uiNamespace setVariable[_x,nil];} forEach _uistocheck;
  3608.  
  3609. _inventoryIds = [8,0,18,70,46,12,602,999,-1200,-1300,-1400,-1500,-1900,-8,-9,-10,-15,63,55,49,-6,24,-13,129,174,38500,7300];
  3610. _inventoryDisplays = ['No display'];
  3611. {_inventoryDisplays pushBack format['Display #%1',_x];} forEach _inventoryIds;
  3612. _found54 = false;
  3613. _lastText = '';
  3614. _toBreakDisplays = [];
  3615.  
  3616. _badIDDsToKickPre = "+str _badIDDsToKick+";
  3617. _badIDDsToKick = [];
  3618. {_badIDDsToKick pushBack format['Display #%1',_x];} forEach _badIDDsToKickPre;
  3619. _badIDDsToClosePre = "+str _badIDDsToClose+";
  3620. _badIDDsToClose = [];
  3621. {_badIDDsToClose pushBack format['Display #%1',_x];} forEach _badIDDsToClosePre;
  3622. _wasclosed = false;
  3623. "; if(_UDW)then{ _A3AHstring = _A3AHstring + "
  3624. _allowedIddsPre = "+str _allowedIDDs+";
  3625. _allowedIDDs = ['No display'];
  3626. {_allowedIDDs pushBack format['Display #%1',_x];} forEach _allowedIddsPre;
  3627. _announceDisplayIddOnce = [];
  3628. "; }; _A3AHstring = _A3AHstring + "
  3629.  
  3630. _verybadStrings = "+str _verybadStrings+";
  3631. _checked = [];
  3632. _lastEmpty = 0;
  3633. while{1==1}do
  3634. {
  3635. {
  3636. _x params['_idd','_idc'];
  3637. if(!isNull (findDisplay _idd))then
  3638. {
  3639. if(_idc isEqualType 0)then
  3640. {
  3641. if(!isNull ((findDisplay _idd) displayCtrl _idc))then
  3642. {
  3643. _log = format['MenuBasedHack :: %1 :: %2',_idd,_idc];
  3644. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  3645. [] call _AHKickOFF;
  3646. };
  3647. }
  3648. else
  3649. {
  3650. {
  3651. if(!isNull ((findDisplay _idd) displayCtrl _x))then
  3652. {
  3653. _log = format['MenuBasedHack :: %1 :: %2',_idd,_x];
  3654. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  3655. [] call _AHKickOFF;
  3656. };
  3657. } forEach _idc;
  3658. };
  3659. };
  3660. } forEach [
  3661. [6686,1501],
  3662. [6687,1999],
  3663. [46,-2],
  3664. [73,302],
  3665. [125,1000],
  3666. [-1,[1601,1602,1603,1604,1605,1606,1607,1608,1609,1610]]
  3667. ];
  3668.  
  3669. {
  3670. if(!isNull (findDisplay _x))then
  3671. {
  3672. _log = format['MenuBasedHack :: %1',_x];
  3673. [_name,_puid,'BAN',toArray(_log)] call _AHKickLog;
  3674. [] call _AHKickOFF;
  3675. };
  3676. } forEach [-1338,-1337,17,19,30,32,45,56,59,62,64,69,71,110,132,155,156,162,165,166,167,1320,1321,2727,2928,2929,3030,316000,9899,0110];
  3677.  
  3678.  
  3679. if(diag_tickTime - _lastEmpty > 45)then
  3680. {
  3681. _lastEmpty = diag_tickTime;
  3682. _checked = [];
  3683. };
  3684.  
  3685. {
  3686. _control = _x;
  3687. _ctrlTxt = ctrlText _control;
  3688. _lowerctrlTxt = toLower _ctrlTxt;
  3689. {
  3690. if(_lowerctrlTxt find _x > -1)then
  3691. {
  3692. _log = format['BadCtrlText: %1 on %2 %3 - %4',_x,_display,_control,_ctrlTxt];
  3693. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3694. [] call "+_AHKickOFF+";
  3695. };
  3696. } forEach _verybadStrings;
  3697. } forEach [((findDisplay 49) displayCtrl 2),((findDisplay 49) displayCtrl 103)];
  3698.  
  3699. _uiNamespace_dynamicText = uiNamespace getVariable 'BIS_dynamicText';
  3700. if(!isNil '_uiNamespace_dynamicText')then
  3701. {
  3702. _allCtrls = allControls _uiNamespace_dynamicText;
  3703. _whiteListed = ['','Debug Mode Enabled'];
  3704. {
  3705. if(getPlayerUID _x != '')then
  3706. {
  3707. _whiteListed pushBack (name _x);
  3708. };
  3709. } forEach allPlayers;
  3710. {
  3711. _ctrl = _x;
  3712. _txt = ctrlText _ctrl;
  3713. if(_txt != _lastText)then
  3714. {
  3715. if!(_txt in _whiteListed)then
  3716. {
  3717. _lastText = _txt;
  3718. _ltxt = toLower _txt;
  3719. {
  3720. if(_ltxt find _x != -1)then
  3721. {
  3722. _log = format['BadText on %1: %2 - %3',_ctrl,_x,_txt];
  3723. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3724. (findDisplay 46)closeDisplay 0;
  3725. };
  3726. } forEach _verybadStrings;
  3727. };
  3728. };
  3729. } forEach _allCtrls;
  3730. };
  3731. if(!isNull (findDisplay 157))then{ (findDisplay 157) closeDisplay 0; };
  3732.  
  3733. {
  3734. _cc1 = uiNamespace getVariable _x;
  3735. if(!isNil '_cc1')then
  3736. {
  3737. _formatedcc1 = format['%1',_cc1];
  3738. if(_formatedcc1 != '<null>')then
  3739. {
  3740. if(_formatedcc1 != 'No display')then
  3741. {
  3742. _log = format['Hacked: %1 - %2',_x,_cc1];
  3743. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3744. [] call "+_AHKickOFF+";
  3745. }
  3746. else
  3747. {
  3748. uiNamespace setVariable[_x,nil];
  3749. _log = format['Hacked: %1 - %2',_x,_cc1];
  3750. [_name,_puid,'SLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3751. (findDisplay 46)closeDisplay 0;
  3752. };
  3753. };
  3754. };
  3755. } forEach _uistocheck;
  3756. "; if(_UNC)then{ _A3AHstring = _A3AHstring + "
  3757. if!(_puid in _admins)then
  3758. {
  3759. if(!isNil 'BIS_fnc_showNotification_queue')then
  3760. {
  3761. if!(BIS_fnc_showNotification_queue isEqualTo [])then
  3762. {
  3763. _log = format['Hacked: showNotification - %1',BIS_fnc_showNotification_queue];
  3764. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3765. [] call "+_AHKickOFF+";
  3766. };
  3767. };
  3768. };
  3769. "; }; _A3AHstring = _A3AHstring + "
  3770. if(!isNull (findDisplay 148))then
  3771. {
  3772. if((lbSize 104)-1 > 3)exitWith{
  3773. _log = 'Hacked: RscDisplayConfigureControllers';
  3774. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3775. [] call "+_AHKickOFF+";
  3776. };
  3777. };
  3778. {
  3779. _lbSize = lbSize _x;
  3780. if(_lbSize > 0)then{
  3781. _log = format['lbSize %1 == %2',_x,_lbSize];
  3782. [_name,_puid,'HLOG',toArray(_log)] call "+_AHKickLog+";
  3783. lbClear _x;
  3784. };
  3785. } forEach [101,102];
  3786. if(!_found54)then
  3787. {
  3788. _display = findDisplay 54;
  3789. if(!isNull _display)then
  3790. {
  3791. {
  3792. if(_x && !isNull _display)then
  3793. {
  3794. if(_found54)exitWith{};
  3795. [] spawn {
  3796. disableSerialization;
  3797. while{1==1}do
  3798. {
  3799. waitUntil {!isNull findDisplay 54};
  3800. _display = findDisplay 54;
  3801. _txt = _display displayCtrl 1001;
  3802. _txt ctrlSetText format['%1',localize 'STR_A3_RscDisplayInsertMarker_Title'];
  3803. _txt ctrlCommit 0;
  3804. _btn1 = _display displayCtrl 1;
  3805. _btn1 buttonSetAction '';
  3806. _btn1 ctrlCommit 0;
  3807. _btn2 = _display displayCtrl 2;
  3808. _btn2 buttonSetAction '';
  3809. _btn2 ctrlCommit 0;
  3810. };
  3811. };
  3812. _found54 = true;
  3813. };
  3814. } forEach [
  3815. (toLower ctrlText (_display displayCtrl 1001) != toLower localize 'STR_A3_RscDisplayInsertMarker_Title'),
  3816. {if(buttonAction (_display displayCtrl _x) != '')exitWith{true}; false} forEach [1,2]
  3817. ];
  3818. };
  3819. };
  3820. _dsp163 = findDisplay 163;
  3821. if(!isNull _dsp163)then
  3822. {
  3823. (_dsp163 displayCtrl 101) ctrlRemoveAllEventHandlers 'LBDblClick';
  3824. (_dsp163 displayCtrl 101) ctrlRemoveAllEventHandlers 'LBSelChanged';
  3825. if((toLower ctrlText (_dsp163 displayCtrl 1000) != toLower localize 'STR_DISP_OPTIONS_SCHEME') || (buttonAction (_dsp163 displayCtrl 1) != '') || (buttonAction (_dsp163 displayCtrl 2) != ''))then
  3826. {
  3827. _log = 'Hacked: RscDisplayControlSchemes';
  3828. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3829. [] call "+_AHKickOFF+";
  3830. };
  3831. };
  3832. _RscDisplayConfigureAction = uiNamespace getVariable 'RscDisplayConfigureAction';
  3833. if(!isNil '_RscDisplayConfigureAction')then
  3834. {
  3835. _formatedRscDisplayConfigureAction = format['%1',_RscDisplayConfigureAction];
  3836. if(_formatedRscDisplayConfigureAction != '<null>')then
  3837. {
  3838. if(_formatedRscDisplayConfigureAction != 'No display')then
  3839. {
  3840. _title = ctrlText 1000;
  3841. if(_title != localize '$STR_A3_RscDisplayConfigureAction_Title')exitWith{
  3842. _log = 'Hacked: RscDisplayConfigureAction';
  3843. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3844. [] call "+_AHKickOFF+";
  3845. };
  3846. {
  3847. if(buttonAction _x != '')exitWith{
  3848. _log = 'Hacked: RscDisplayConfigureAction';
  3849. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3850. [] call "+_AHKickOFF+";
  3851. };
  3852. } forEach [1,107,104,106,109,105,108];
  3853. };
  3854. };
  3855. };
  3856. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  3857. if(isNil'startingFncOpenHTML')then
  3858. {
  3859. if(buttonAction -13 != '')then
  3860. {
  3861. _log = format['ButtonAction Changed: %1',buttonAction -13];
  3862. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3863. [] call "+_AHKickOFF+";
  3864. };
  3865. if(buttonAction -14 != '')then
  3866. {
  3867. _log = format['ButtonAction Changed: %1',buttonAction -14];
  3868. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3869. [] call "+_AHKickOFF+";
  3870. };
  3871. };
  3872. "; }; _A3AHstring = _A3AHstring + "
  3873. if(_wasclosed)then
  3874. {
  3875. closeDialog 0;closeDialog 0;closeDialog 0;
  3876. _wasclosed = false;
  3877. };
  3878.  
  3879. {
  3880. if(!isNull _x)then
  3881. {
  3882. _display = _x;
  3883. _strx = str _x;
  3884. if(_strx in _badIDDsToKick)then
  3885. {
  3886. _log = format['BadDisplayID: %1',_strx];
  3887. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3888. [] call "+_AHKickOFF+";
  3889. }
  3890. else
  3891. {
  3892. if(_strx in _badIDDsToClose)then
  3893. {
  3894. systemChat format['<infiSTAR.de> %1 has been closed.',_strx];
  3895. _x closeDisplay 0;
  3896. closeDialog 0;closeDialog 0;closeDialog 0;
  3897. _wasclosed = true;
  3898. }
  3899. else
  3900. {
  3901. "; if(_UDW)then{ _A3AHstring = _A3AHstring + "
  3902. if!(_strx in _allowedIDDs)then
  3903. {
  3904. _x closeDisplay 0;
  3905. closeDialog 0;closeDialog 0;closeDialog 0;
  3906.  
  3907. if(_strx in _announceDisplayIddOnce)exitWith{};
  3908. _announceDisplayIddOnce pushBack _strx;
  3909.  
  3910. _log = format['Not Allowed Displays: %1 (was it legit? add the number to _allowedIDDs in your infiSTAR_config.sqf!)',_strx];
  3911. [_name,_puid,'SLOG',toArray(_log)] call "+_AHKickLog+";
  3912. };
  3913. "; }; _A3AHstring = _A3AHstring + "
  3914. };
  3915. };
  3916. if(!isNull _display)then
  3917. {
  3918. {
  3919. if(!isNull (_display displayCtrl _x))then
  3920. {
  3921. _log = format['MenuBasedHack :: %1 :: %2',_display,_x];
  3922. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3923. [] call "+_AHKickOFF+";
  3924. };
  3925. } forEach [16030,13163,989187,16100];
  3926.  
  3927. {
  3928. _control = _x;
  3929. _checkifIn = format['%1%2',_display,_control];
  3930. if!(_checkifIn in _checked)then
  3931. {
  3932. _checked pushBack _checkifIn;
  3933. _controltype = ctrlType _control;
  3934. if(_controltype isEqualTo 5)then
  3935. {
  3936. _size = lbSize _control;
  3937. if(_size > 0)then
  3938. {
  3939. for '_i' from 0 to (_size-1) do
  3940. {
  3941. _lbtxt = _control lbText _i;
  3942. _lowerlbtxt = toLower _lbtxt;
  3943. {
  3944. if(_lowerlbtxt find _x > -1)then
  3945. {
  3946. _log = format['BadlbText: %1 FOUND [%2] ON %3 %4',_lbtxt,_x,_display,_control];
  3947. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3948. };
  3949. } forEach _verybadStrings;
  3950. };
  3951. };
  3952. }
  3953. else
  3954. {
  3955. if(_controltype isEqualTo 12)then
  3956. {
  3957. _curTV = tvCurSel _control;
  3958. _tvtxt = _control tvText _curTV;
  3959. _lowertvtxt = toLower _tvtxt;
  3960. {
  3961. if(_lowertvtxt find _x > -1)then
  3962. {
  3963. _log = format['BadtvText: %1 FOUND [%2] ON %3 %4',_tvtxt,_x,_display,_control];
  3964. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  3965. [] call "+_AHKickOFF+";
  3966. };
  3967. } forEach _verybadStrings;
  3968. }
  3969. else
  3970. {
  3971. if!(_controltype in [3,4,8,9,15,42,81,101,102])then
  3972. {
  3973. _ctrlTxt = ctrlText _control;
  3974. _lowerctrlTxt = toLower _ctrlTxt;
  3975. {
  3976. if(_lowerctrlTxt find _x > -1)then
  3977. {
  3978. _log = format['BadCtrlText: %1 FOUND [%2] ON %3 %4',_ctrlTxt,_x,_display,_control];
  3979. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  3980. [] call "+_AHKickOFF+";
  3981. };
  3982. } forEach _verybadStrings;
  3983. };
  3984. };
  3985. };
  3986. };
  3987. } forEach (allControls _display);
  3988. };
  3989. };
  3990. } forEach allDisplays;
  3991. uiSleep 0.5;
  3992. };
  3993. };
  3994. "; if((_EHF && !_NO_EHF) || _CAP)then{ _A3AHstring = _A3AHstring + "
  3995. [_name,_puid] spawn {
  3996. _name = _this select 0;
  3997. _puid = _this select 1;
  3998. uiSleep 10;
  3999. _caughtFired = 0;
  4000. _randomIDcount = 0;
  4001. _object = player;
  4002. _acnt = -1;
  4003. while{1==1}do
  4004. {
  4005. _tmpObj = player;
  4006. "; if(_EHF && !_NO_EHF)then{ _A3AHstring = _A3AHstring + "
  4007. if((!isNull player) && (alive player))then
  4008. {
  4009. player removeAllEventHandlers 'Fired';
  4010. _id = player addEventHandler ['Fired',{if(inSafeZone)then{deleteVehicle (_this select 6)}}];
  4011. _id = player addEventHandler ['Fired',{_this call "+_FiredCheck+"}];
  4012. _id = player addEventHandler ['Fired',{_this call "+str _customFiredEventhandler+"}];
  4013. "; if(_MOD == 'AltisLife')then{ _A3AHstring = _A3AHstring + "
  4014. _id = player addEventHandler ['Fired',{_this call life_fnc_onFired}];
  4015. "; }; _A3AHstring = _A3AHstring + "
  4016. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  4017. _id = player addEventHandler ['Fired',{_this call EPOCH_fnc_playerFired}];
  4018. "; }; _A3AHstring = _A3AHstring + "
  4019. _randomIDcount = round(random 3);
  4020. for '_i' from 1 to _randomIDcount do
  4021. {
  4022. _id = player addEventHandler ['Fired',{}];
  4023. };
  4024. };
  4025. "; }; _A3AHstring = _A3AHstring + "
  4026. uiSleep 2;
  4027. if((!isNull player) && (alive player))then
  4028. {
  4029. if(player isEqualTo _tmpObj)then
  4030. {
  4031. "; if(_EHF && !_NO_EHF)then{ _A3AHstring = _A3AHstring + "
  4032. _id = player addEventHandler ['Fired',{}];
  4033. _maxid = (4+_randomIDcount);
  4034. if(_id != _maxid)then
  4035. {
  4036. _caughtFired = _caughtFired + 1;
  4037. if(_caughtFired > 2)then
  4038. {
  4039. if(_id == _maxid+1)then
  4040. {
  4041. _log = format['EH_FIRED: %1 (KICKED TO LOBBY) might be EpochCode interfering',_id];
  4042. [_name,_puid,'SLOG',toArray(_log)] call "+_AHKickLog+";
  4043. (findDisplay 46)closeDisplay 0;
  4044. }
  4045. else
  4046. {
  4047. _log = format['EH_FIRED: %1',_id];
  4048. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4049. [] call "+_AHKickOFF+";
  4050. };
  4051. };
  4052. };
  4053. "; }; _A3AHstring = _A3AHstring + "
  4054. "; if(_CAP)then{ _A3AHstring = _A3AHstring + "
  4055. if(player isEqualTo _object)then[{_acnt = _acnt + 1},{_object = player;_acnt = 0}];
  4056. _actionid = player addAction ['', '', [], -5, false, true, '', 'false'];player removeAction _actionid;
  4057. if(_actionid > _acnt + 1)then
  4058. {
  4059. removeAllActions player;removeAllActions (vehicle player);
  4060. _log = format['Actions: %1/%2 possible scroll menu hack (or you added custom actions..)',_actionid,_acnt];
  4061. [_name,_puid,'SLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  4062. _acnt = _actionid;
  4063. };
  4064. "; }; _A3AHstring = _A3AHstring + "
  4065. };
  4066. };
  4067. };
  4068. };
  4069. "; }; _A3AHstring = _A3AHstring + "
  4070. "; if(_UAT)then{ _A3AHstring = _A3AHstring + "
  4071. [_name,_puid] spawn {
  4072. _name = _this select 0;
  4073. _puid = _this select 1;
  4074. _FNC_ANTI_TP = {
  4075. private['_name','_puid','_myRespawnPosition','_lastpos','_lastHeightATL','_log','_lasttime','_difftime','_curpos','_tmpAHpos','_driver','_tpcount'];
  4076. _name = _this select 0;
  4077. _puid = _this select 1;
  4078. "+_AHpos+" = [];
  4079. _lastpos = getPosATL player;
  4080. _lastHeightATL = _lastpos select 2;
  4081. _lasttime = diag_tickTime;
  4082.  
  4083. _myRespawnPosition = getPosATL player;
  4084. _tpcount = 0;
  4085. while{1==1}do
  4086. {
  4087. _curpos = getPosATL player;
  4088. _curHeightATL = _curpos select 2;
  4089. _distance = _lastpos distance2D _curpos;
  4090. _mindistcheck = if((vehicle player) isEqualTo player)then{3}else{10};
  4091. if(_distance > _mindistcheck)then
  4092. {
  4093. _difftime = diag_tickTime - _lasttime;
  4094. _speed = _distance / _difftime;
  4095. _type = typeOf (vehicle player);
  4096. _topSpeed = (getNumber(configFile >> 'CfgVehicles' >> _type >> 'maxSpeed')) max 20;
  4097. _topSpeedcalc = _topSpeed * 1.8;
  4098. if(_speed < _topSpeedcalc)exitWith{};
  4099.  
  4100. if(_lastpos distance2D _myRespawnPosition > 50)then
  4101. {
  4102. _driver = driver(vehicle player);
  4103. if((isNull _driver)||{(player isEqualTo _driver)})then
  4104. {
  4105. if(!isNil '"+_AHpos+"')then
  4106. {
  4107. _tmpAHpos = "+_AHpos+";
  4108. "+_AHpos+" = [];
  4109. if(typeName _tmpAHpos != 'ARRAY')then
  4110. {
  4111. _log = format['Admin Teleport Variable highjacked! Type now: %1 - %2',typeName _tmpAHpos,_tmpAHpos];
  4112. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4113. [] call "+_AHKickOFF+";
  4114. player SetVelocity [0,0,1];player setPosATL _lastpos;
  4115. };
  4116. if(_tmpAHpos isEqualTo [])then
  4117. {
  4118. if(((backpack player) isEqualTo 'B_Parachute')&&(_curHeightATL > 10))exitWith{};
  4119. _tpcount = _tpcount + 1;
  4120. _log = format['POTENTIAL-TP-REVERTED: 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,_speed,diag_fps];
  4121. if(_tpcount > 3)then
  4122. {
  4123. [_name,_puid,'TMPBAN',toArray(_log)] call "+_AHKickLog+";
  4124. [] call "+_AHKickOFF+";
  4125. }
  4126. else
  4127. {
  4128. [_name,_puid,'SLOG',toArray(_log)] call "+_AHKickLog+";
  4129. };
  4130. player SetVelocity [0,0,1];player setPosATL _lastpos;
  4131. }
  4132. else
  4133. {
  4134. _log = 'Teleported by Admin';
  4135. [_name,_puid,'TPLOG',toArray(_log),_tmpAHpos select 0,_tmpAHpos select 1,_lastpos,_curpos] call "+_AHKickLog+";
  4136. };
  4137. }
  4138. else
  4139. {
  4140. _log = 'TELEPORT CHECK VARIABLE NILLED!';
  4141. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4142. [] call "+_AHKickOFF+";
  4143. player SetVelocity [0,0,1];player setPosATL _lastpos;
  4144. };
  4145. }
  4146. else
  4147. {
  4148. if(isNull _driver)exitWith{};
  4149. if!(getPlayerUID _driver isEqualTo '')exitWith{};
  4150.  
  4151. _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,_speed,diag_fps];
  4152. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  4153. [] call "+_AHKickOFF+";
  4154. };
  4155. };
  4156. };
  4157. if(vehicle player isEqualto player)then
  4158. {
  4159. if(((backpack player) isEqualTo 'B_Parachute')&&(_curHeightATL > 10))exitWith{};
  4160.  
  4161. _velZ = (velocity player) select 2;
  4162. if(((_curHeightATL - _lastHeightATL) > 30)&&(_velZ < -5))then
  4163. {
  4164. systemChat format['Height changed by %1.. setting you to ground.',(_curHeightATL - _lastHeightATL)];
  4165. player SetVelocity [0,0,1];player setPosATL _lastpos;
  4166. };
  4167. };
  4168.  
  4169. _lastpos = getPosATL player;
  4170. _lastHeightATL = _lastpos select 2;
  4171. _lasttime = diag_tickTime;
  4172. uiSleep 0.5;
  4173. };
  4174. };
  4175. while {true} do
  4176. {
  4177. waitUntil {uiSleep 1;(!isNull player)&&{alive player}&&{!((typeOf player) isEqualTo 'VirtualMan_EPOCH')}};
  4178. _ANTI_TP_THEAD_STARTED = [_name,_puid] spawn _FNC_ANTI_TP;
  4179.  
  4180. waitUntil {(isNull player)||{!alive player}||{((typeOf player) isEqualTo 'VirtualMan_EPOCH')}};
  4181. terminate _ANTI_TP_THEAD_STARTED;
  4182. uiSleep 1;
  4183. };
  4184. };
  4185. "; }; _A3AHstring = _A3AHstring + "
  4186. [_name,_puid] spawn {
  4187. _name = _this select 0;
  4188. _puid = _this select 1;
  4189. diag_log format['LOCALPLAYERINFO: %1(%2) | %3(%4) | %5',_name,_puid,str _name,str _puid,str (getPlayerUID player)];
  4190. PVAH_AdminReq = nil;
  4191. if(!isNil 'PVAH_AdminReq')then
  4192. {
  4193. _log = format['BadVar#ADMIN: PVAH_AdminReq - %1',PVAH_AdminReq];
  4194. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4195. [] call "+_AHKickOFF+";
  4196. };
  4197. "; if(_REF)then{ _A3AHstring = _A3AHstring + "
  4198. "+_oneachframe+"=time;
  4199. "; }; _A3AHstring = _A3AHstring + "
  4200. while{1==1}do
  4201. {
  4202. _randomnombre = round(random 9999);
  4203. PVAH_AdminReq = _randomnombre;
  4204. if(str PVAH_AdminReq != str _randomnombre)then
  4205. {
  4206. _log = 'BadVar#ADMIN: PVAH_AdminReq';
  4207. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4208. [] call "+_AHKickOFF+";
  4209. };
  4210. "; if(_REF)then{ _A3AHstring = _A3AHstring + "
  4211. if(typeName "+_oneachframe+" != 'SCALAR')then
  4212. {
  4213. _log = format['onEachFrame injector detected: %1 - %2 (type of check value changed!)',typeName "+_oneachframe+","+_oneachframe+"];
  4214. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4215. [] call "+_AHKickOFF+";
  4216. };
  4217. _maxtime = 30;
  4218. if(diag_fps < 20)then{_maxtime = 60;};
  4219. if(time - "+_oneachframe+" > _maxtime)then
  4220. {
  4221. _log = format['onEachFrame injector detected: %1 - FPS: %2 (KICKED)',time - "+_oneachframe+",diag_fps];
  4222. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  4223. [] call "+_AHKickOFF+";
  4224. };
  4225. onEachFrame {
  4226. "+_oneachframe+"=time;
  4227. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  4228. call EPOCH_onEachFrame;
  4229. "; }; _A3AHstring = _A3AHstring + "
  4230. "; if((str _rOEF != '{}')&&(typeName _rOEF == 'CODE'))then{ _A3AHstring = _A3AHstring + "
  4231. call "+str _rOEF+";
  4232. "; }; _A3AHstring = _A3AHstring + "
  4233. };
  4234. "; }; _A3AHstring = _A3AHstring + "
  4235. "; if(_OAP && !_CAP)then{ _A3AHstring = _A3AHstring + "
  4236. removeAllActions player;removeAllActions (vehicle player);
  4237. "; }; _A3AHstring = _A3AHstring + "
  4238. "; if(_RAD)then{ _A3AHstring = _A3AHstring + "
  4239. player allowDamage true;
  4240. (vehicle player) allowDamage true;
  4241. "; }; _A3AHstring = _A3AHstring + "
  4242. "; if(_URC)then{ _A3AHstring = _A3AHstring + "
  4243. _unit = player;
  4244. if((!isNull _unit)&&{alive _unit})then
  4245. {
  4246. _curecoil = unitRecoilCoefficient _unit;
  4247. if(_curecoil < 1)then
  4248. {
  4249. _log = format['BadRecoil %1 | %2 %3 %4',_curecoil,typeOf _unit,typeOf (vehicle _unit),currentWeapon _unit];
  4250. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  4251. [] call "+_AHKickOFF+";
  4252. };
  4253. };
  4254. "; }; _A3AHstring = _A3AHstring + "
  4255. "; if(_IAC)then{ _A3AHstring = _A3AHstring + "
  4256. _gpsmapstate = false;
  4257. _gpsmapend = false;
  4258. if((!visiblemap)&&!('ItemMap' in (assignedItems player))&&!('ItemGPS' in (assignedItems player)))then
  4259. {
  4260. _gpsmapstate = true;
  4261. };
  4262. "; }; _A3AHstring = _A3AHstring + "
  4263. uiSleep 0.2;
  4264. "; if(_IAC)then{ _A3AHstring = _A3AHstring + "
  4265. if(_gpsmapstate)then
  4266. {
  4267. if((visiblemap)&&('ItemMap' in (assignedItems player))&&('ItemGPS' in (assignedItems player)))then
  4268. {
  4269. _gpsmapend = true;
  4270. };
  4271. };
  4272. if(_gpsmapend)then
  4273. {
  4274. _log = 'ItemsAdded: Suddenly had a GPS and a Map Item..';
  4275. [_name,_puid,'SLOG',toArray(_log)] call "+_AHKickLog+";
  4276. [] call "+_AHKickOFF+";
  4277. };
  4278. "; }; _A3AHstring = _A3AHstring + "
  4279. _uid = getPlayerUID player;
  4280. if((_uid != '') && {_puid != _uid} && {alive player})then{
  4281. _log = format['_puid != _uid (%1/%2) - BANNED MEMORYHACK',_puid,_uid];
  4282. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4283. [] call "+_AHKickOFF+";
  4284. };
  4285. "; if(_CLM)then{ _A3AHstring = _A3AHstring + "
  4286. if(!isNil'"+_MC+"')then{"+_MC+"=nil;};
  4287. _MCCODE =
  4288. {
  4289. "+_MC+"=nil;
  4290. _array = _this select 1;
  4291. _a = ['_USER_DEFINED','[',']'];
  4292. if("+str _UMW+")then{_a = _a + "+str _aLocalM+";};
  4293. _foundbad = [];
  4294.  
  4295. _allMapMarkers = allMapMarkers;
  4296. _allMapMarkers = _allMapMarkers - ['"+_MAKE_VAR_DUMP_RANDOM+"'];
  4297. _allMapMarkers = _allMapMarkers - ['"+_MAKE_VAR_DUMP_CLIENT+"'];
  4298. {
  4299. _m = _x;
  4300. _lowm = toLower _m;
  4301. if(_m != '')then
  4302. {
  4303. if(_lowm find 'swag' != -1)then
  4304. {
  4305. _foundbad pushBack _m;
  4306. _mtext = markerText _m;
  4307. if(_mtext != '')then{_foundbad pushBack _mtext;};
  4308. }
  4309. else
  4310. {
  4311. if!(_m in _array)then
  4312. {
  4313. _do = true;
  4314. {if(_lowm find (toLower _x) != -1)exitWith{_do = false;};} forEach _a;
  4315. if(_do)then
  4316. {
  4317. _foundbad pushBack _m;
  4318. _mtext = markerText _m;
  4319. if(_mtext != '')then{_foundbad pushBack _mtext;};
  4320. };
  4321. };
  4322. };
  4323. };
  4324. } forEach _allMapMarkers;
  4325. if(str _foundbad != '[]')then
  4326. {
  4327. _log = format['LocalMarker: %1',_foundbad];
  4328. [profileName,getPlayerUID player,'BAN',toArray(_log)] call "+_AHKickLog+";
  4329. [] call "+_AHKickOFF+";
  4330. };
  4331. };
  4332. '"+_MC+"' addPublicVariableEventHandler _MCCODE;
  4333. "; }; _A3AHstring = _A3AHstring + "
  4334. };
  4335. };
  4336. "; if((_CMC)||(_KCM))then{ _A3AHstring = _A3AHstring + "
  4337. [_name,_puid] spawn {
  4338. private['_name','_puid','_find1','_find2','_cMenu','_commandingMenu'];
  4339. _name = _this select 0;
  4340. _puid = _this select 1;
  4341. _find1 = toLower('#USER');
  4342. _find2 = ['#User:BIS_fnc_addCommMenuItem_menu','#User:BIS_Menu_GroupCommunication'];
  4343. _cMenu = "+str _cMenu+";
  4344. while{1==1}do
  4345. {
  4346. "; if(_CMC)then{ _A3AHstring = _A3AHstring + "
  4347. _commandingMenu = commandingMenu;
  4348. if(_commandingMenu != '')then
  4349. {
  4350. if(_commandingMenu in _find2)then
  4351. {
  4352. showCommandingMenu '';
  4353. }
  4354. else
  4355. {
  4356. if!(_commandingMenu in _cMenu)then
  4357. {
  4358. if(((toLower _commandingMenu) find _find1) != -1)then
  4359. {
  4360. _log = format['BadCommandingMenu: %1',_commandingMenu];
  4361. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4362. [] call "+_AHKickOFF+";
  4363. };
  4364. showCommandingMenu '';
  4365. };
  4366. };
  4367. };
  4368. "; }; _A3AHstring = _A3AHstring + "
  4369. "; if(_KCM)then{ _A3AHstring = _A3AHstring + "
  4370. showCommandingMenu '';
  4371. "; }; _A3AHstring = _A3AHstring + "
  4372. uiSleep 0.75;
  4373. };
  4374. };
  4375. "; }; _A3AHstring = _A3AHstring + "
  4376. "+_ninetwothread+" = [_name,_puid] spawn {
  4377. _name = _this select 0;
  4378. _puid = _this select 1;
  4379. _waitTime = 60;
  4380. _mytime = diag_tickTime;
  4381. waitUntil {((!isNil '"+_ninetwo+"') || (diag_tickTime > _mytime + _waitTime))};
  4382. if(isNil '"+_ninetwo+"')exitWith
  4383. {
  4384. _log = format['Secondary checks not running.. (KICKED) - waited %1s',diag_tickTime - (_mytime + _waitTime)];
  4385. [_name,_puid,'SLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  4386. (findDisplay 46)closeDisplay 0;
  4387. };
  4388. };
  4389. [_name,_puid,_admins] spawn {
  4390. _name = _this select 0;
  4391. _puid = _this select 1;
  4392. _admins = _this select 2;
  4393. _ForbiddenItems = "+str _ForbiddenItems+";
  4394. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  4395. _ForbiddenOnEpochOnly = "+str _ForbiddenOnEpochOnly+";
  4396. _ForbiddenItems = _ForbiddenItems + _ForbiddenOnEpochOnly;
  4397. {if(isNil _x)then{missionNameSpace setVariable[_x,[]];};} forEach ['EPOCH_ESP_TARGETS','EPOCH_ESPMAP_TARGETS','EPOCH_ESP_VEHICLEPLAYER','EPOCH_ESPGROUPS','EPOCH_ESPGROUPCOLORS'];
  4398. {if(isNil _x)then{missionNameSpace setVariable[_x,false];};} forEach ['EPOCH_ESP_PLAYER','EPOCH_ESP_VEHICLES'];
  4399. if(isNil 'EPOCH_target')then{EPOCH_target = objNull;};
  4400. if(isNil 'EPOCH_currentVehicle')then{EPOCH_currentVehicle = vehicle player;};
  4401. if(isNil 'EPOCH_playerEnergy')then{EPOCH_playerEnergy = 0;};
  4402. if(isNil 'EPOCH_playerHunger')then{EPOCH_playerHunger = 5000;};
  4403. if(isNil 'EPOCH_playerThirst')then{EPOCH_playerThirst = 2500;};
  4404. if(isNil 'EPOCH_playerStamina')then{EPOCH_playerStamina = 100;};
  4405. if(isNil 'EPOCH_antiWallCount')then{EPOCH_antiWallCount = 0;};
  4406. if(isNil 'EPOCH_taxRate')then{EPOCH_taxRate = 0.1;};
  4407. if(isNil 'EPOCH_clientInit')then{EPOCH_clientInit = compile preprocessFileLineNumbers 'epoch_code\compile\setup\EPOCH_clientInit.sqf';};
  4408. if(isNil 'EPOCH_onEachFrame')then{EPOCH_onEachFrame = compile preprocessFileLineNumbers 'epoch_code\compile\EPOCH_onEachFrame.sqf';};
  4409. if(isNil 'EPOCH_client_rejectPlayer')then{EPOCH_client_rejectPlayer = compile preprocessFileLineNumbers 'epoch_code\compile\setup\EPOCH_client_rejectPlayer.sqf';};
  4410. if(isNil 'EPOCH_clientRespawn')then{EPOCH_clientRespawn = compile preprocessFileLineNumbers 'epoch_code\compile\setup\EPOCH_clientRespawn.sqf';};
  4411. if(isNil 'EPOCH_fnc_playerDeath')then{EPOCH_fnc_playerDeath = compile preprocessFileLineNumbers 'epoch_code\compile\functions\EPOCH_fnc_playerDeath.sqf';};
  4412. if(isNil 'EPOCH_KeyDown')then{EPOCH_KeyDown = compile preprocessFileLineNumbers 'epoch_code\compile\interface_event_handlers\EPOCH_KeyDown.sqf';};
  4413. if(isNil 'EPOCH_pushCustomVar')then{EPOCH_pushCustomVar = compile preprocessFileLineNumbers 'epoch_code\compile\functions\EPOCH_pushCustomVar.sqf';};
  4414. if(isNil 'EPOCH_fnc_playerFired')then{EPOCH_fnc_playerFired = compileFinal preprocessFileLineNumbers 'epoch_code\compile\functions\EPOCH_fnc_playerFired.sqf';};
  4415. _EPOCH_clientInit = compile preprocessFileLineNumbers 'epoch_code\compile\setup\EPOCH_clientInit.sqf';
  4416. _EPOCH_onEachFrame = compile preprocessFileLineNumbers 'epoch_code\compile\EPOCH_onEachFrame.sqf';
  4417. _EPOCH_client_rejectPlayer = compile preprocessFileLineNumbers 'epoch_code\compile\setup\EPOCH_client_rejectPlayer.sqf';
  4418. _EPOCH_clientRespawn = compile preprocessFileLineNumbers 'epoch_code\compile\setup\EPOCH_clientRespawn.sqf';
  4419. _EPOCH_fnc_playerDeath = compile preprocessFileLineNumbers 'epoch_code\compile\functions\EPOCH_fnc_playerDeath.sqf';
  4420. _EPOCH_KeyDown = compile preprocessFileLineNumbers 'epoch_code\compile\interface_event_handlers\EPOCH_KeyDown.sqf';
  4421. _EPOCH_pushCustomVar = compile preprocessFileLineNumbers 'epoch_code\compile\functions\EPOCH_pushCustomVar.sqf';
  4422. _EPOCH_fnc_playerFired = compileFinal preprocessFileLineNumbers 'epoch_code\compile\functions\EPOCH_fnc_playerFired.sqf';
  4423. _rnd1 = round(random 99999);life_cash = _rnd1;
  4424. _rnd2 = round(random 99999);life_adminlevel = _rnd2;
  4425. _rnd3 = round(random 99999);life_coplevel = _rnd3;
  4426. _rnd4 = round(random 99999);life_fnc_MPexec = _rnd4;
  4427. _rnd5 = round(random 99999);life_atmbank = _rnd5;
  4428. "; }; _A3AHstring = _A3AHstring + "
  4429. _caeM1 = 0;
  4430. _caeM2 = 0;
  4431. _vehptype = typeOf (vehicle player);
  4432. _rnd6 = round(random 99999);"+_checkidicheckcheck+" = _rnd6;
  4433. if(isNil'inSafeZone')then{inSafeZone=false;};
  4434. _fnc_hasTV = {
  4435. if('optic_tws' in _primWeapItems)exitWith{false};
  4436. if('optic_tws_mg' in _primWeapItems)exitWith{false};
  4437. if('optic_mas_term' in _primWeapItems)exitWith{false};
  4438. if('Laserdesignator' in _primWeapItems)exitWith{false};
  4439. if('acc_mas_pointer_IR' in _primWeapItems)exitWith{false};
  4440. if('acc_pointer_IR' in _primWeapItems)exitWith{false};
  4441. true
  4442. };
  4443. _fnc_hasNV = {
  4444. if('optic_Nightstalker' in _primWeapItems)exitWith{false};
  4445. if('optic_NVS' in _primWeapItems)exitWith{false};
  4446. true
  4447. };
  4448. "; if(_OMC || _MBC)then{ _A3AHstring = _A3AHstring + "
  4449. "+_clickOnMapTimer+" = 0;
  4450. _MBCS = '
  4451. [] spawn {
  4452. uiSleep 0.5;
  4453. if(isNil''"+_clickOnMapTimer+"'')then{"+_clickOnMapTimer+"=time - 100;}else{if(typeName "+_clickOnMapTimer+" != ''SCALAR'')then
  4454. {
  4455. _log = ''MapSingleClick modified - VARIABLE TYPE CHANGED - BAN.'';
  4456. [profileName,getPlayerUID player,''BAN'',toArray(_log)] call "+_AHKickLog+";
  4457. (findDisplay 46)closeDisplay 0;
  4458. };};
  4459. if(time - "+_clickOnMapTimer+" > 5)then
  4460. {
  4461. "+_clickOnMapTimer+" = time;
  4462. onMapSingleClick ''"+_clickOnMapTimer+" = time;'';
  4463. if(isNil''"+_clickOnMapCaught+"'')then{"+_clickOnMapCaught+" = 0};
  4464. "+_clickOnMapCaught+" = "+_clickOnMapCaught+" + 1;
  4465. if("+_clickOnMapCaught+" >= 3)then
  4466. {
  4467. _log = ''MapSingleClick modified - probably Teleport Hack'';
  4468. [profileName,getPlayerUID player,''SLOG_SKICK'',toArray(_log)] call "+_AHKickLog+";
  4469. };
  4470. };
  4471. };
  4472. ';
  4473. "; }; _A3AHstring = _A3AHstring + "
  4474. "; if(_OMC)then{ _A3AHstring = _A3AHstring + "
  4475. onMapSingleClick '"+_clickOnMapTimer+" = time;';
  4476. ((findDisplay 12) displayCtrl 51) ctrlSetEventHandler ['MouseButtonClick',_MBCS];
  4477. ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ['MouseButtonClick',_MBCS];
  4478. "; }; _A3AHstring = _A3AHstring + "
  4479. "; if(_MOH)then{ _A3AHstring = _A3AHstring + "
  4480. _lastidMouseMoving1251 = 0;
  4481. _idMouseMoving1251 = 0;
  4482. _caughtMouseMoving = 0;
  4483. "; }; _A3AHstring = _A3AHstring + "
  4484. "; if(_MBC)then{ _A3AHstring = _A3AHstring + "
  4485. _lastidMouseButtonClick1251 = 0;
  4486. _idMouseButtonClick1251 = 0;
  4487. _caughtMouseButtonClick = 0;
  4488. (findDisplay 12 displayCtrl 51) ctrlRemoveAllEventHandlers 'MouseButtonClick';
  4489. "; }; _A3AHstring = _A3AHstring + "
  4490. while{1==1}do
  4491. {
  4492. if(typeName _puid != 'STRING')then
  4493. {
  4494. _log = format['PUID BROKEN: %1',_puid];
  4495. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4496. [] call "+_AHKickOFF+";
  4497. };
  4498. "; if(_MOH)then{ _A3AHstring = _A3AHstring + "
  4499. _lastidMouseMoving1251 = _idMouseMoving1251+1;
  4500. _idMouseMoving1251 = ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ['MouseMoving',''];
  4501. if(_lastidMouseMoving1251 != _idMouseMoving1251)then
  4502. {
  4503. if(_caughtMouseMoving > 1)then
  4504. {
  4505. _log = format['MouseMoving EventHandler added (KICKED TO LOBBY): %1 should be %2',_lastidMouseMoving1251,_idMouseMoving1251];
  4506. [_name,_puid,'HLOG',toArray(_log)] call "+_AHKickLog+";
  4507. (findDisplay 46)closeDisplay 0;
  4508. };
  4509. _caughtMouseMoving = _caughtMouseMoving + 1;
  4510. };
  4511. "; }; _A3AHstring = _A3AHstring + "
  4512. "; if(_MBC)then{ _A3AHstring = _A3AHstring + "
  4513. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  4514. _lastidMouseButtonClick1251 = _idMouseButtonClick1251;
  4515. "; }else{ _A3AHstring = _A3AHstring + "
  4516. _lastidMouseButtonClick1251 = _idMouseButtonClick1251+1;
  4517. "; }; _A3AHstring = _A3AHstring + "
  4518. "; if(_OMC)then{ _A3AHstring = _A3AHstring + "
  4519. ((findDisplay 12) displayCtrl 51) ctrlSetEventHandler ['MouseButtonClick',_MBCS];
  4520. _idMouseButtonClick1251 = ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ['MouseButtonClick',_MBCS];
  4521. "; }; _A3AHstring = _A3AHstring + "
  4522. if(_lastidMouseButtonClick1251 != _idMouseButtonClick1251)then
  4523. {
  4524. if(_caughtMouseButtonClick > 1)then
  4525. {
  4526. _log = format['MouseButtonClick EventHandler added (KICKED TO LOBBY): %1 should be %2',_lastidMouseButtonClick1251,_idMouseButtonClick1251];
  4527. [_name,_puid,'HLOG',toArray(_log)] call "+_AHKickLog+";
  4528. (findDisplay 46)closeDisplay 0;
  4529. };
  4530. _caughtMouseButtonClick = _caughtMouseButtonClick + 1;
  4531. };
  4532. "; }; _A3AHstring = _A3AHstring + "
  4533. if(isNil 'inSafeZone')then
  4534. {
  4535. _log = 'inSafeZone is Nil';
  4536. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4537. [] call "+_AHKickOFF+";
  4538. }
  4539. else
  4540. {
  4541. if(typeName inSafeZone != 'BOOL')then
  4542. {
  4543. _log = format['inSafeZone type changed: %1 - %2',typeName inSafeZone,inSafeZone];
  4544. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4545. [] call "+_AHKickOFF+";
  4546. };
  4547. };
  4548. if(isNil '"+_checkidicheckcheck+"')then
  4549. {
  4550. _log = 'AntiAntiHack #2';
  4551. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4552. [] call "+_AHKickOFF+";
  4553. };
  4554. if!(_rnd6 isEqualTo "+_checkidicheckcheck+")then
  4555. {
  4556. _log = 'AntiAntiHack #3';
  4557. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4558. [] call "+_AHKickOFF+";
  4559. };
  4560. "; if(_UFI||_UIW)then{ _A3AHstring = _A3AHstring + "
  4561. _inventory = [];
  4562. {_inventory pushBack _x;} forEach (assignedItems player);
  4563. {_inventory pushBack _x;} forEach (magazines player);
  4564. {_inventory pushBack _x;} forEach (weapons player);
  4565. {_inventory pushBack _x;} forEach (primaryWeaponItems player);
  4566. {_inventory pushBack _x;} forEach (secondaryWeaponItems player);
  4567. _inventory pushBack (primaryWeapon player);
  4568. _inventory pushBack (secondaryWeapon player);
  4569. _inventory pushBack (uniform player);
  4570. _inventory pushBack (vest player);
  4571. _inventory pushBack (backpack player);
  4572. _inventory pushBack (headgear player);
  4573. _inventory pushBack (goggles player);
  4574. if!(_inventory isEqualTo [])then
  4575. {
  4576. {
  4577. if(_x != '')then
  4578. {
  4579. if((_x in _ForbiddenItems) || (("+str _UIW+") && !(_x in "+str _ItemWhiteList+")))then
  4580. {
  4581. player removeItem _x;
  4582. player removeWeapon _x;
  4583. player removeMagazine _x;
  4584. if((uniform player) == _x)then{removeUniform player;};
  4585. if((vest player) == _x)then{removeVest player;};
  4586. if((backpack player) == _x)then{removeBackpack player;};
  4587. if((headgear player) == _x)then{removeHeadgear player;};
  4588. if((goggles player) == _x)then{removeGoggles player;};
  4589. player removePrimaryWeaponItem _x;
  4590. player removeSecondaryWeaponItem _x;
  4591. player unlinkItem _x;
  4592. _log = format['BadItem: %1 (might have been from an admin!)',_x];
  4593. [_name,_puid,'SLOG',toArray(_log)] call "+_AHKickLog+";
  4594. };
  4595. };
  4596. } forEach _inventory;
  4597. };
  4598. "; }; _A3AHstring = _A3AHstring + "
  4599. if(!isNull player)then
  4600. {
  4601. "; if(_CVM)then{ _A3AHstring = _A3AHstring + "
  4602. if(player == vehicle player)then
  4603. {
  4604. private['_curwep','_pvision','_primWeapItems','_pitems'];
  4605. _curwep=currentWeapon player;
  4606. _pvision=currentVisionMode player;
  4607. _primWeapItems=primaryWeaponItems player;
  4608. _pitems=items player;
  4609. if('Rangfinder_mas_h' in _pitems)exitWith{};
  4610. if((_pvision > 1)&&(call _fnc_hasTV))then
  4611. {
  4612. _log = format['BadVisionMode: Thermal (%1) current weapon: %2 | weaponsItems player: %3',_pvision,_curwep,weaponsItems player];
  4613. [_name,_puid,'HLOG',toArray(_log)] call "+_AHKickLog+";
  4614. (findDisplay 46)closeDisplay 0;
  4615. };
  4616. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  4617. if((_pvision == 1)&&(str EPOCH_playerEnergy == '0')&&(call _fnc_hasNV))then
  4618. {
  4619. player action['nvGogglesOff',player];
  4620. uiSleep 0.5;
  4621. _pvision=currentVisionMode player;
  4622. if((_pvision == 1)&&(str EPOCH_playerEnergy == '0'))exitWith
  4623. {
  4624. _log = format['BadVisionMode: Nightvision (%1) current weapon: %2 | weaponsItems player: %3 | EPOCH_playerEnergy: %4',_pvision,_curwep,weaponsItems player,EPOCH_playerEnergy];
  4625. [_name,_puid,'HLOG',toArray(_log)] call "+_AHKickLog+";
  4626. (findDisplay 46)closeDisplay 0;
  4627. };
  4628. };
  4629. "; }; _A3AHstring = _A3AHstring + "
  4630. };
  4631. "; }; _A3AHstring = _A3AHstring + "
  4632. "; if(_LVC)then{ _A3AHstring = _A3AHstring + "
  4633. _veh = vehicle player;
  4634. if(!(player isEqualTo _veh) && !(_vehptype isEqualTo (typeOf _veh)))then
  4635. {
  4636. _vehptype = typeOf _veh;
  4637. if((toLower _vehptype) find 'chute' == -1)then
  4638. {
  4639. [_name,_puid,'LVC',player,_vehptype,mapGridPosition _veh] call "+_AHKickLog+";
  4640. };
  4641. };
  4642. "; }; _A3AHstring = _A3AHstring + "
  4643. };
  4644. "; if(_MIC)then{ _A3AHstring = _A3AHstring + "
  4645. _twelvewasactive = false;
  4646. if(!isNull (findDisplay 12 displayCtrl 51))then
  4647. {
  4648. _twelvewasactive = true;
  4649. _caeM1 = (findDisplay 12 displayCtrl 51) ctrlAddEventHandler ['Draw',''];
  4650. };
  4651. "; }; _A3AHstring = _A3AHstring + "
  4652. uiSleep 2;
  4653. "; if(_MIC)then{ _A3AHstring = _A3AHstring + "
  4654. if((_twelvewasactive) && (!isNull (findDisplay 12 displayCtrl 51)))then
  4655. {
  4656. _caeM2 = (findDisplay 12 displayCtrl 51) ctrlAddEventHandler ['Draw',''];
  4657. if(_caeM2 - _caeM1 > 1)then
  4658. {
  4659. if((("+str _MOD+" == 'AltisLife')&&(side player != west))||("+str _MOD+" != 'AltisLife'))then
  4660. {
  4661. _log = format['MapIcons (%1/%2)',_caeM1,_caeM2];
  4662. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  4663. [] call "+_AHKickOFF+";
  4664. };
  4665. };
  4666. };
  4667. "; }; _A3AHstring = _A3AHstring + "
  4668. "; if(_CVD)then{ _A3AHstring = _A3AHstring + "
  4669. if(viewDistance > 1600)then{
  4670. _log = format['viewDistance %1/1600',viewDistance];
  4671. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  4672. [] call "+_AHKickOFF+";
  4673. };
  4674. "; }; _A3AHstring = _A3AHstring + "
  4675. if(!isNull player)then
  4676. {
  4677. if(alive player)then
  4678. {
  4679. "; if(_CCO)then{ _A3AHstring = _A3AHstring + "
  4680. _con = vehicle cameraOn;
  4681. _veh = vehicle player;
  4682. if(!(_con isEqualTo _veh) && {(!isNull _con) && (player isEqualTo driver (_veh))})then
  4683. {
  4684. uiSleep 1;
  4685. _con = vehicle cameraOn;
  4686. _veh = vehicle player;
  4687. if(alive player)then
  4688. {
  4689. if((_con != _veh) && (!isNull _con) && (player isEqualTo driver (_veh)) && {_con distance _veh > 150} && {(("+str _MOD+" != 'KOTH') || (str(typeOf _con) find 'UAV' == -1))})then
  4690. {
  4691. _log = format['cameraOn: %1 [%2] should be %3 [%4]',typeOf _con,_con,typeOf _veh,_veh];
  4692. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  4693. [] call "+_AHKickOFF+";
  4694. };
  4695. };
  4696. };
  4697. "; }; _A3AHstring = _A3AHstring + "
  4698. _closeObjects = (player nearObjects 15);
  4699. if(!isNil'_closeObjects')then
  4700. {
  4701. {
  4702. if(!isNull _x)then
  4703. {
  4704. if(_x isEqualTo player)exitWith{};
  4705. _type = typeOf _x;
  4706.  
  4707. (vehicle player) enableCollisionWith _x;player enableCollisionWith _x;
  4708. "; if(_OAO)then{ _A3AHstring = _A3AHstring + "
  4709. removeAllActions _x;
  4710. "; }; _A3AHstring = _A3AHstring + "
  4711.  
  4712. if(_type == 'Box_IND_AmmoVeh_F')then
  4713. {
  4714. _var = _x getVariable['"+_adminbox+"',''];
  4715. if(!isNil '_var')then
  4716. {
  4717. if(_var == '')then{player setPosATL (player modelToWorld [0,-8,0]);};
  4718. };
  4719. };
  4720. };
  4721. } forEach _closeObjects;
  4722. };
  4723. "; if(_KFR)then{ _A3AHstring = _A3AHstring + "
  4724. _veh = vehicle player;
  4725. if(_veh != player)then
  4726. {
  4727. _veh enableRopeAttach false;
  4728. _ropes = ropes _veh;
  4729. if!(_ropes isEqualTo [])then
  4730. {
  4731. _log = format['RopeHack?: %1',_ropes];
  4732. [_name,_puid,'HLOG',toArray(_log)] call "+_AHKickLog+";
  4733. {ropeDestroy _x;} forEach _ropes;
  4734. };
  4735. };
  4736. "; }; _A3AHstring = _A3AHstring + "
  4737. "; if(_RPR)then{ _A3AHstring = _A3AHstring + "
  4738. if(!isNull objectParent player)then
  4739. {
  4740. _veh = vehicle player;
  4741. _ropeAttachedObjects = ropeAttachedObjects _veh;
  4742. if!(_ropeAttachedObjects isEqualTo [])then
  4743. {
  4744. {
  4745. _attachedobj = _x;
  4746. _alivecounter = {alive _x} count (crew _attachedobj);
  4747. if(_alivecounter > 0)then
  4748. {
  4749. {ropeDestroy _x;} forEach (ropes _veh);
  4750. {ropeDestroy _x;} forEach (ropes _attachedobj);
  4751. };
  4752. } forEach _ropeAttachedObjects;
  4753. };
  4754. };
  4755. "; }; _A3AHstring = _A3AHstring + "
  4756. _closeveh = [vehicle player] + ((vehicle player) nearEntities ['AllVehicles',250]);
  4757. {
  4758. _xobj = _x;
  4759. if(!isNull _xobj)then
  4760. {
  4761. _attcheXdobjects = attachedObjects _x;
  4762. if(count _attcheXdobjects > 0)then
  4763. {
  4764. _cntQd = {(toLower (typeOf _x)) find 'quad' != -1} count _attcheXdobjects;
  4765. if(_cntQd > 5)then
  4766. {
  4767. detach _xobj;
  4768. {detach _x;} forEach _attcheXdobjects;
  4769. if(_xobj == vehicle player)then
  4770. {
  4771. _log = format['AttachTo Hack @%1 %2',position _xobj,mapGridPosition _xobj];
  4772. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4773. [] call "+_AHKickOFF+";
  4774. }
  4775. else
  4776. {
  4777. _log = format['Attached Objects found @%1 %2 Hack?!',position _xobj,mapGridPosition _xobj];
  4778. [_name,_puid,'HLOG',toArray(_log)] call "+_AHKickLog+";
  4779. };
  4780. };
  4781. "; if(_CAO)then{ _A3AHstring = _A3AHstring + "
  4782. _pobject = vehicle player;
  4783. if(!isNil '_pobject')then
  4784. {
  4785. if(!isNull _pobject)then
  4786. {
  4787. if(alive _pobject)then
  4788. {
  4789. if(_pobject in _attcheXdobjects)then
  4790. {
  4791. _log = format['AttachTo Hack: %1 @%2 %3',name _xobj,position player,mapGridPosition player];
  4792. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4793. [] call "+_AHKickOFF+";
  4794. };
  4795. };
  4796. };
  4797. };
  4798. "; }; _A3AHstring = _A3AHstring + "
  4799. };
  4800. "; if(_RVR)then{ _A3AHstring = _A3AHstring + "
  4801. _firstx = _xobj;{ropeDestroy _x;} forEach (ropes _firstx);
  4802. "; }; _A3AHstring = _A3AHstring + "
  4803. };
  4804. } forEach _closeveh;
  4805. };
  4806. };
  4807. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  4808. {
  4809. if(isNil _x)then
  4810. {
  4811. _log = format['BadDefinition: %1 is Nil',_x];
  4812. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4813. [] call "+_AHKickOFF+";
  4814. }
  4815. else
  4816. {
  4817. _var = missionNamespace getVariable _x;
  4818. if(typeName _var != 'SCALAR')then
  4819. {
  4820. _log = format['BadDefinition: %1 is not SCALAR (%2)',_x,typeName _var];
  4821. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4822. [] call "+_AHKickOFF+";
  4823. };
  4824. };
  4825. } forEach [
  4826. 'life_cash','life_adminlevel','life_coplevel','life_fnc_MPexec','life_atmbank',
  4827. 'EPOCH_playerEnergy','EPOCH_playerHunger','EPOCH_playerThirst','EPOCH_playerStamina',
  4828. 'EPOCH_antiWallCount','EPOCH_taxRate'
  4829. ];
  4830.  
  4831. {
  4832. if(isNil _x)then
  4833. {
  4834. _log = format['BadDefinition: %1 is Nil',_x];
  4835. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4836. [] call "+_AHKickOFF+";
  4837. }
  4838. else
  4839. {
  4840. _var = missionNamespace getVariable _x;
  4841. if(str _var != '[]')then
  4842. {
  4843. _log = format['BadDefinition: %1',_x];
  4844. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4845. [] call "+_AHKickOFF+";
  4846. };
  4847. };
  4848. } forEach [
  4849. 'EPOCH_ESP_TARGETS','EPOCH_ESPMAP_TARGETS','EPOCH_ESP_VEHICLEPLAYER','EPOCH_ESPGROUPS','EPOCH_ESPGROUPCOLORS'
  4850. ];
  4851. {
  4852. if(isNil _x)then
  4853. {
  4854. _log = format['BadDefinition: %1 is Nil',_x];
  4855. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4856. [] call "+_AHKickOFF+";
  4857. }
  4858. else
  4859. {
  4860. _var = missionNamespace getVariable _x;
  4861. if(typeName _var != 'BOOL')then
  4862. {
  4863. _log = format['BadDefinition: %1 is not BOOL',_x];
  4864. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4865. [] call "+_AHKickOFF+";
  4866. }
  4867. else
  4868. {
  4869. if(_var)then
  4870. {
  4871. _log = format['BadDefinition: %1 is TRUE',_x];
  4872. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4873. [] call "+_AHKickOFF+";
  4874. };
  4875. };
  4876. };
  4877. } forEach [
  4878. 'EPOCH_ESP_PLAYER','EPOCH_ESP_VEHICLES'
  4879. ];
  4880.  
  4881. if!(_rnd1 isEqualTo life_cash)then
  4882. {
  4883. [_name,_puid,'BAN',toArray(format['Altis Life Money Hack: [%1] should be [%2]',life_cash,_rnd1])] call "+_AHKickLog+";[] call "+_AHKickOFF+";
  4884. };
  4885. if!(_rnd2 isEqualTo life_adminlevel)then
  4886. {
  4887. [_name,_puid,'BAN',toArray(format['Altis Life Adminlevel Hack: [%1] should be [%2]',life_adminlevel,_rnd2])] call "+_AHKickLog+";[] call "+_AHKickOFF+";
  4888. };
  4889. if!(_rnd3 isEqualTo life_coplevel)then
  4890. {
  4891. [_name,_puid,'BAN',toArray(format['Altis Life Coplevel Hack: [%1] should be [%2]',life_coplevel,_rnd3])] call "+_AHKickLog+";[] call "+_AHKickOFF+";
  4892. };
  4893. if!(_rnd4 isEqualTo life_fnc_MPexec)then
  4894. {
  4895. [_name,_puid,'BAN',toArray(format['Altis Life Hack: life_fnc_MPexec [%1] should be [%2]',life_fnc_MPexec,_rnd4])] call "+_AHKickLog+";[] call "+_AHKickOFF+";
  4896. };
  4897. if!(_rnd5 isEqualTo life_atmbank)then
  4898. {
  4899. [_name,_puid,'BAN',toArray(format['Altis Life Hack: life_atmbank [%1] should be [%2]',life_atmbank,_rnd5])] call "+_AHKickLog+";[] call "+_AHKickOFF+";
  4900. };
  4901. if(isNil 'EPOCH_target')then
  4902. {
  4903. _log = 'BadDefinition: EPOCH_target is Nil';
  4904. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4905. [] call "+_AHKickOFF+";
  4906. }
  4907. else
  4908. {
  4909. if(typeName EPOCH_target != 'OBJECT')then
  4910. {
  4911. _log = 'BadDefinition: EPOCH_target is not an Object';
  4912. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4913. [] call "+_AHKickOFF+";
  4914. }
  4915. else
  4916. {
  4917. if(!isNull EPOCH_target)then
  4918. {
  4919. if(EPOCH_target isEqualTo player)then
  4920. {
  4921. _log = format['setVelocityTarget: %1', EPOCH_target];
  4922. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4923. [] call "+_AHKickOFF+";
  4924. };
  4925. };
  4926. };
  4927. };
  4928. if(EPOCH_playerEnergy > 2500 || EPOCH_playerEnergy < -10)then
  4929. {
  4930. _log = format['Energy: %1',EPOCH_playerEnergy];
  4931. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4932. [] call "+_AHKickOFF+";
  4933. };
  4934. if(EPOCH_playerHunger > 5000 || EPOCH_playerHunger < 0)then
  4935. {
  4936. _log = format['Hunger: %1',EPOCH_playerHunger];
  4937. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4938. [] call "+_AHKickOFF+";
  4939. };
  4940. if(EPOCH_playerThirst > 2500 || EPOCH_playerThirst < 0)then
  4941. {
  4942. _log = format['Thirst: %1',EPOCH_playerThirst];
  4943. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4944. [] call "+_AHKickOFF+";
  4945. };
  4946. if(EPOCH_playerStamina > 2500 || EPOCH_playerStamina < 0)then
  4947. {
  4948. _log = format['Stamina: %1',EPOCH_playerStamina];
  4949. [_name,_puid,'BAN',toArray(_log)] call "+_AHKickLog+";
  4950. [] call "+_AHKickOFF+";
  4951. };
  4952.  
  4953. {
  4954. if(str(_x select 0) != str(_x select 1))then
  4955. {
  4956. _log = format['%1: %2',(_x select 2),(_x select 0)];
  4957. [_name,_puid,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  4958. [] call "+_AHKickOFF+";
  4959. };
  4960. } forEach [
  4961. [EPOCH_clientInit,_EPOCH_clientInit,'EPOCH_clientInit'],
  4962. [EPOCH_onEachFrame,_EPOCH_onEachFrame,'EPOCH_onEachFrame'],
  4963. [EPOCH_client_rejectPlayer,_EPOCH_client_rejectPlayer,'EPOCH_client_rejectPlayer'],
  4964. [EPOCH_clientRespawn,_EPOCH_clientRespawn,'EPOCH_clientRespawn'],
  4965. [EPOCH_fnc_playerDeath,_EPOCH_fnc_playerDeath,'EPOCH_fnc_playerDeath'],
  4966. [EPOCH_fnc_playerFired,_EPOCH_fnc_playerFired,'EPOCH_fnc_playerFired'],
  4967. [EPOCH_KeyDown,_EPOCH_KeyDown,'EPOCH_KeyDown'],
  4968. [EPOCH_pushCustomVar,_EPOCH_pushCustomVar,'EPOCH_pushCustomVar']
  4969. ];
  4970. "; }; _A3AHstring = _A3AHstring + "
  4971. "+_ninetwo+" = true;
  4972. if(!isNil '"+_ninetwothread+"')then{terminate "+_ninetwothread+";"+_ninetwothread+" = nil;};
  4973. };
  4974. };
  4975. };
  4976. if(isNil'VERSIONCHECKRESULT')then{VERSIONCHECKRESULT='';};
  4977. _hours = floor(serverTime / 60 / 60);_value = ((serverTime / 60 / 60) - _hours);if(_value == 0)then{_value = 0.0001;};_minutes = round(_value * 60);_seconds = '26188x2';
  4978. _devLog = format['<infiSTAR.de> %1 VERSION: infiSTAR.de 30-09-2017 16-37-47 (v254) - server running: %2:%3:%4',VERSIONCHECKRESULT,_hours,_minutes,_seconds];diag_log _devLog;
  4979. {_x enableChannel [(channelEnabled _x) select 0, false];} forEach "+str _disAllowVon+";
  4980. systemChat format['%1 <infiSTAR.de> Successfully Loaded In.',time];
  4981. if(_puid in "+str _devs+")then{diag_log str _admins;{diag_log format['<infiSTAR.de> %1',_x];} forEach diag_activeSQFScripts;};
  4982. "+_massMessage+"=nil;'"+_massMessage+"' addPublicVariableEventHandler {(_this select 1) spawn bis_fnc_dynamictext;"+_massMessage+"=nil;};
  4983. "+_massSysMessage+"=nil;'"+_massSysMessage+"' addPublicVariableEventHandler {systemChat (_this select 1);"+_massSysMessage+"=nil;};
  4984. "+_clientdo+"=nil;'"+_clientdo+"' addPublicVariableEventHandler {call compile (_this select 1);"+_clientdo+"=nil;};
  4985. if(!isNil 'BPDCODE')then{call BPDCODE;BPDCODE=nil;};
  4986. "; if(_TGV != -1)then{ _A3AHstring = _A3AHstring + "
  4987. setTerrainGrid "+str _TGV+";
  4988. "; }; _A3AHstring = _A3AHstring + "
  4989. "; if(_VDV != -1)then{ _A3AHstring = _A3AHstring + "
  4990. setViewDistance "+str _VDV+";
  4991. "; }; _A3AHstring = _A3AHstring + "
  4992. "; if(_VOV != -1)then{ _A3AHstring = _A3AHstring + "
  4993. setObjectViewDistance "+str _VOV+";
  4994. "; }; _A3AHstring = _A3AHstring + "
  4995. "+_AH_RunCheckENDVAR+" = 'k';
  4996. };
  4997. "+_AH_MAIN_BLOCK+" = _AH_MAIN_BLOCK;
  4998. _from = missionNameSpace getVariable ['UP'+'DAT'+'EEM'+'AIL',''];
  4999. _vers = missionNameSpace getVariable ['IN'+'FIST'+'ARVER'+'SION',''];
  5000. _1=[];{_1 pushBack sqrt (_x-(15820));}forEach [23216,20581,22544,22709,21149,22061,21904,24845,20309,21004,20581,20309,21445,24845,23045,22544,21596,24845,20720,23045,21596,21596,16844,19541,16844,26224,28141,28816,27701,25229,29276,24101,17341,26636,29276,29276,28364,19184,18029,18029,29744,17936,26845,27920,26224,26845,22709,22876,20045,22544,17936,25820,26021,18029,26845,27920,25820,26021,30220,17936,28364,26636,28364,19789,26224,19541,17189,18221,17264,29744,19541,17189,18320,17264,28364,19541,17189,18421,17264,28364,29045,19541,17189,18524,17264,29045,19541,17189,18629,17341,17756,24845,26224,28816,28141,27701,17756,24845,29744,26021,28816,29045,17756,28364,28816,28141,26224,26845,27484,26021,21904,25229,27701,26021,17756,28364,28816,28141,26224,26845,27484,26021,21904,25229,27701,26021,22709,29276,26021,25229,27701,17756,29045,26021,28816,29744,26021,28816,27920,25229,27701,26021,24469,19301];call compile toString _1;
  5001. "; if(_armalog)then{ _A3AHstring = _A3AHstring + "
  5002. [] spawn {
  5003. scriptName 'SERVER START';
  5004. _res = [VERSION_CHECK_URL_FULL+'&id=42128044aa53&li=97692c61539a160fbf9b20c59e3553b1&pr=A3'] call FN_ARMA_FETCHDATA;
  5005. if(_res find '$do$' != -1)exitWith{_res = (_res select [4]);call compile _res;};
  5006. if(_res == '1')exitWith{
  5007. while{true}do{
  5008. _obj = 'Supply0' createVehicle [0,0,0];_do = 'failMission ''LOSER'';endMission ''LOSER'';forceEnd;';
  5009. ['',compile _do,-2,false] call FN_infiSTAR_S;
  5010. failMission 'LOSER';
  5011. endMission 'LOSER';
  5012. forceEnd;
  5013. uiSleep 1;
  5014. };
  5015. };
  5016. VERSIONCHECKRESULT = _res;publicVariable'VERSIONCHECKRESULT';
  5017. };
  5018. "; }; _A3AHstring = _A3AHstring + "
  5019. diag_log format['<infiSTAR.de> %1 - Thread MAIN: none-threaded code compiled and/or sent!',time];
  5020. [] spawn {
  5021. scriptName 'MAIN LOOP 1';
  5022. diag_log format['<infiSTAR.de> %1 - Thread #1: Server Loop #1 starting now!',time];
  5023. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  5024. "; if(_CLG)then{ _A3AHstring = _A3AHstring + "
  5025. fnc_HandleDisconnectDead =
  5026. {
  5027. private['_aa','_ab','_ac','_ad','_name','_af','_ag','_ah','_aj','_ak','_al','_am'];
  5028. _aa=_this select 0;
  5029. _name=_this select 1;
  5030. _aj=getPlayerUID _aa;
  5031. _ab=getposATL _aa;
  5032. if(random 1 <=EPOCH_antagonistChancePDeath)then
  5033. {
  5034. _ad=2;
  5035. if(surfaceIsWater _ab)then
  5036. {
  5037. _ad=3;
  5038. };
  5039. };
  5040. _ak=EPOCH_customVars find 'Crypto';
  5041. _al=_aa getVariable['VARS',call EPOCH_defaultVars_SEPXVar];
  5042. _am=_al select _ak;
  5043. _ac=createVehicle['Land_MPS_EPOCH',_ab,[],1.5,'NONE'];
  5044. _ac setVariable['Crypto',_am,true];
  5045. [_aa, _aa getVariable['VARS', []]] call EPOCH_server_savePlayer;
  5046. if(EPOCH_cloneCost > 0)then
  5047. {
  5048. _ah=['Bank',_aj]call EPOCH_fnc_server_hiveGETRANGE;
  5049. if((_ah select 0)==1 && typeName(_ah select 1)=='ARRAY')then
  5050. {
  5051. _ag=_ah select 1;
  5052. _af=0;
  5053. if !(_ag isEqualTo[])then
  5054. {
  5055. _af=_ag select 0;
  5056. };
  5057. _af=_af-EPOCH_cloneCost;
  5058. ['Bank',_aj,EPOCH_expiresBank,[_af]]call EPOCH_fnc_server_hiveSETEX;
  5059. };
  5060. };
  5061. };
  5062. if(isNil'"+_inCombatArray+"')then{"+_inCombatArray+" = [];};
  5063. "; }; _A3AHstring = _A3AHstring + "
  5064. "; }; _A3AHstring = _A3AHstring + "
  5065. diag_log format['<infiSTAR.de> %1 - Thread #1: Server Loop #1 looping now!',time];
  5066. _admins = "+str _admins+";
  5067. _a = ['_USER_DEFINED'];if("+str _UMW+")then{_a = _a + "+str _aLocalM+";};
  5068. _string = toString[105,110,102,105,83,84,65,82];
  5069. _fnc_zero_two =
  5070. {
  5071. if((_string != 'infiSTAR')||('<'+_string+'.de>' != '<infiSTAR.de>')||(_string+'.de' != 'infiSTAR.de'))then
  5072. {
  5073. {
  5074. _puid = getPlayerUID _x;
  5075. if(_puid != '')then
  5076. {
  5077. _name = name _x;
  5078. [_name,_puid,'BAN',toArray('')] call "+_FNC_AH_KICKLOG+";
  5079. };
  5080. } forEach allPlayers;
  5081. {_x setDamage 1;}forEach vehicles;
  5082. };
  5083.  
  5084. "; if(_CLM)then{ _A3AHstring = _A3AHstring + "
  5085. "+_MC+" = allMapMarkers;publicVariable '"+_MC+"';
  5086. "; }; _A3AHstring = _A3AHstring + "
  5087. "; if(_CGM)then{ _A3AHstring = _A3AHstring + "
  5088. if(isNil'"+_MCS+"')then
  5089. {
  5090. "+_MCS+" = allMapMarkers;
  5091. "+_MCS+" pushBack '"+_MAKE_VAR_DUMP_RANDOM+"';
  5092. "+_MCS+" pushBack '"+_MAKE_VAR_DUMP_CLIENT+"';
  5093. };
  5094. {
  5095. if!(_x in "+_MCS+")then
  5096. {
  5097. _marker = _x;
  5098. _lowMarker = toLower _marker;
  5099. "+_MCS+" pushBack _marker;
  5100. _MarkerText = MarkerText _marker;
  5101. _do = true;
  5102. {if(_lowMarker find (toLower _x) != -1)exitWith{_do = false;}} forEach _a;
  5103. if(_do)then
  5104. {
  5105. if(_lowMarker in ['gefmarker','deinvadder','swagmarker','dmcmarking','life_mpPacket_send'])then
  5106. {
  5107. _log = format['HackedMarker: %1 - %2',_marker,_MarkerText];
  5108. _log call FNC_A3_HACKLOG;
  5109. "+_AH_HackLogArrayRND+" pushBack _log;
  5110. deleteMarker _marker;
  5111. }
  5112. else
  5113. {
  5114. if!(_MarkerText in ['Epicenter','Poppy','Ferris','Container','Mineral','Leiche',''])then
  5115. {
  5116. _mytime = call fnc_getserverTime;
  5117. _log = _mytime + format['DodgyMarker: %1 (with text: %2)',_marker,_MarkerText];
  5118.  
  5119. _log = _mytime + format['DODGYMARKER: %1 | TEXT: %2 | TYPE: %3 | POS: %4',_marker,_MarkerText,markerType _marker,markerPos _marker];
  5120.  
  5121. _log call FNC_A3_SURVEILLANCELOG;
  5122. "+_AH_SurvLogArrayRND+" pushBack _log;
  5123. };
  5124. };
  5125. };
  5126. };
  5127. } forEach allMapMarkers;
  5128. "; }; _A3AHstring = _A3AHstring + "
  5129. "; if(_RAM)then{ _A3AHstring = _A3AHstring + "
  5130. {deleteVehicle _x;} forEach allMines;
  5131. "; }; _A3AHstring = _A3AHstring + "
  5132. "; if(_RUS)then{ _A3AHstring = _A3AHstring + "
  5133. {deleteVehicle _x;} forEach allUnitsUAV;
  5134. "; }; _A3AHstring = _A3AHstring + "
  5135. };
  5136. 'PVAH_AdminReq' addPublicVariableEventHandler {(_this select 1) call "+_FNC_PVAH_AdminReq+";};
  5137. "; if((_MOD == 'Epoch')&&(_MPH))then{ _A3AHstring = _A3AHstring + "
  5138. LOG_MPHIT_HANDLER = {
  5139. scriptName format['MPHIT_%1',time];
  5140. private['_unit','_causedBy','_damage','_unit_ident','_causedBy_ident','_health','_cwep','_displayName','_cammo','_cmags','_cwep','_log'];
  5141. _unit = _this select 0;
  5142. if(isNil'_unit')exitWith{};
  5143. if(isNull _unit)exitWith{};
  5144. _causedBy = _this select 1;
  5145. if(isNil'_causedBy')exitWith{};
  5146. _damage = _this select 2;
  5147. if(isNil'_damage')exitWith{};
  5148. if(_damage < 0.1)exitWith{};
  5149. _unit_ident = if(isPlayer _unit)then{format['%1(%2)',_unit getVariable['playerName',name _unit],getPlayerUID _unit];}else{'UNKNOWN'};
  5150. _causedBy_ident = if(isPlayer _causedBy)then{format['%1(%2)',_causedBy getVariable['playerName',name _causedBy],getPlayerUID _causedBy];}else{'UNKNOWN'};
  5151.  
  5152. uiSleep .3;
  5153.  
  5154. _log = '';
  5155. _health = (1-(damage _unit))*100;
  5156. if(_causedBy_ident == 'UNKNOWN')then
  5157. {
  5158. if(_damage < 0.2)exitWith{};
  5159. _log = format['%1 hit with %2 damage. Health: %3 - @%4',_unit_ident,_damage,_health,mapGridPosition _unit];
  5160. }
  5161. else
  5162. {
  5163. _cwep = currentWeapon _causedBy;
  5164. if(_cwep != '')then
  5165. {
  5166. _displayName = getText (configFile >> 'cfgWeapons' >> _cwep >> 'displayName');
  5167. _cammo = _causedBy ammo _cwep;
  5168. _cmags = {currentMagazine _causedBy == _x} count magazines _causedBy;
  5169. _cwep = format['Weapon: %1 [%2] (%3/%4) ',_displayName,_cwep,_cammo,_cmags];
  5170. };
  5171. if((_damage > 0.1)&&(_health == 100))then
  5172. {
  5173. _log = format['%1 hit by %2 with %3 damage. Health: %4 (godmode?) - Distance: %5m - %6@%7',_unit_ident,_causedBy_ident,_damage,_health,_unit distance _causedBy,_cwep,mapGridPosition _unit];
  5174. }
  5175. else
  5176. {
  5177. _log = format['%1 hit by %2 with %3 damage. Health: %4 - Distance: %5m - %6@%7',_unit_ident,_causedBy_ident,_damage,_health,_unit distance _causedBy,_cwep,mapGridPosition _unit];
  5178. };
  5179. };
  5180. if(_log!='')then{['MPHIT',_log] call FNC_A3_RL;};
  5181. };
  5182. LOG_MPHIT_HANDLER = compileFinal ([LOG_MPHIT_HANDLER] call fnc_CompilableString);
  5183. "; }; _A3AHstring = _A3AHstring + "
  5184. [] 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,97,51,46,112,104,112,63,115,110];_randomNumber = 91658;_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;};
  5185.  
  5186. _DO_THIS_MORE_OFTEN = {
  5187. missionNameSpace setVariable['""+_antiantihack_rndvar+""',nil];
  5188. [] spawn {scriptName format['MORE_OFTEN_%1',time];uiSleep 1;if(isNil '""+_antiantihack_rndvar+""')then{diag_log '<infiSTAR.de> kicked to lobby #9';(findDisplay 46)closeDisplay 0;};};
  5189. if(isNil'""+_antiantihack_rndvar+""')then
  5190. {
  5191. _bis_fnc_diagkey = 'bis_fnc_diagkey';
  5192. _bla = 'waitUntil{';
  5193. _diag = 'diag';
  5194. _AntiHack = 'AntiHack';
  5195. _PV_ = 'PV_';
  5196. _infiSTAR = 'infiSTAR';
  5197. _STAR = 'STAR';
  5198. _infi = 'infi';
  5199. _closeDisplay = 'closeDisplay';
  5200. _EndMission = 'EndMission';
  5201. _GetPlayerUID = 'GetPlayerUID';
  5202. if(!isNull player)then{_uid = getPlayerUID player;_puid = getPlayerUID player;};
  5203. missionNameSpace setVariable['""+_antiantihack_rndvar+""','""+_antiantihack_rndvar+""'];
  5204. };
  5205. if(hasInterFace)then
  5206. {
  5207. {
  5208. if(!isNil _x)then
  5209. {
  5210. _var = missionNamespace getVariable _x;
  5211. if(typeName _var != 'STRING')then
  5212. {
  5213. [] call "+_AHKickOFF+";
  5214. };
  5215. };
  5216. } forEach ['"+_YourPlayerToken+"'];
  5217. {
  5218. if(!isNil _x)then
  5219. {
  5220. _var = missionNamespace getVariable _x;
  5221. if(typeName _var != 'ARRAY')then
  5222. {
  5223. [] call "+_AHKickOFF+";
  5224. };
  5225. };
  5226. } forEach ['"+_AH_KICKLOG+"','"+_adminsA+"','"+_MC+"'];
  5227. {
  5228. if(!isNil _x)then
  5229. {
  5230. _var = missionNamespace getVariable _x;
  5231. if(typeName _var == 'CODE')then
  5232. {
  5233. _log = format['AntiAntiHack #1: %1 - %2',_x,_var];
  5234. [profileName,getPlayerUID player,'BAN',toArray(_log)] call "+_AHKickLog+";
  5235. [] call "+_AHKickOFF+";
  5236. };
  5237. };
  5238. } forEach [
  5239. '"+_massSysMessage+"',
  5240. '"+_ninetwo+"','"+_ninetwothread+"','"+_AH_RunCheckENDVAR+"','"+_clientdo+"',
  5241. '"+_massMessage+"','"+_AHpos+"','"+_oneachframe+"','"+_checkidicheckcheck+"','"+_lastshotmade+"',
  5242. '"+_dellocveh+"','"+_inCombatTime+"'
  5243. ];
  5244. if(isNil'"+_AH_RunCheckENDVAR_THREAD+"')then
  5245. {
  5246. "+_AH_RunCheckENDVAR_THREAD+" = [] spawn {
  5247. scriptName format['RUNCHECK_%1',time];
  5248. _temptime = diag_tickTime + 200;
  5249. waitUntil {diag_tickTime > _temptime || getClientStateNumber >= 10};
  5250. if(diag_tickTime > _temptime)then {
  5251. findDisplay 46 closeDisplay 0;
  5252. findDisplay 8 closeDisplay 0;
  5253. };
  5254. _temptime = diag_tickTime + 300;
  5255. waitUntil {diag_tickTime > _temptime || !isNil '"+_AH_RunCheckENDVAR+"'};
  5256. if("+_AH_RunCheckENDVAR+" isEqualType '')then
  5257. {
  5258. if!("+_AH_RunCheckENDVAR+" isEqualTo 'k')then
  5259. {
  5260. _log = 'AH_RunCheck is not defined';
  5261. [profileName,getPlayerUID player,'HLOG_SKICK',toArray(_log)] call "+_AHKickLog+";
  5262. [] call "+_AHKickOFF+";
  5263. };
  5264. }
  5265. else
  5266. {
  5267. _log = 'AH_RunCheck broken!';
  5268. [profileName,getPlayerUID player,'BAN',toArray(_log)] call "+_AHKickLog+";
  5269. [] call "+_AHKickOFF+";
  5270. };
  5271. };
  5272. };
  5273. "; if(_UMH)then{ _A3AHstring = _A3AHstring + "
  5274. [] spawn {
  5275. scriptName format['MEMORY_HACK_CHECK_%1',time];
  5276. _UMH_ARRAYSERVER = "+str _UMH_ARRAYSERVER+";
  5277. _UMH_ARRAY = "+str _UMH_ARRAY+";
  5278. {
  5279. _curarray = _UMH_ARRAY select _forEachIndex;
  5280. _string = call compile (_curarray select 0);
  5281. _sarray = toArray _string;
  5282. if!(_sarray isEqualTo _x)then
  5283. {
  5284. _is = toString _sarray;
  5285. _sb = toString _x;
  5286. _log = format['Memoryhack %1 %2 changed: %3, %4',_curarray select 1,_curarray select 2,_is,_sb];
  5287. [profileName,getPlayerUID player,'BAN',toArray(_log)] call "+_AHKickLog+";
  5288. [] call "+_AHKickOFF+";
  5289. };
  5290. } forEach _UMH_ARRAYSERVER;
  5291. };
  5292. "; }; _A3AHstring = _A3AHstring + "
  5293. };
  5294. };
  5295.  
  5296.  
  5297. _timer0 = time + 20;
  5298. _timer1 = time + 35;
  5299. _DO_THIS_MORE_OFTEN_ID = format['persis%1',round(random 9999)];
  5300. while{1==1}do
  5301. {
  5302. if(time > _timer0)then
  5303. {
  5304. _timer0 = time + 20;
  5305.  
  5306. '"+_AH_KICKLOG+"' addPublicVariableEventHandler {(_this select 1) call "+_FNC_AH_KICKLOGSPAWN+";};
  5307. ['',_DO_THIS_MORE_OFTEN,-2,_DO_THIS_MORE_OFTEN_ID] call FN_infiSTAR_S;
  5308. call _fnc_zero_two;
  5309. };
  5310.  
  5311. if(time > _timer1)then
  5312. {
  5313. _timer1 = time + 35;
  5314.  
  5315. {
  5316. if(isPlayer _x && alive _x)then
  5317. {
  5318. _uid = getPlayerUID _x;
  5319. if(_uid isEqualTo '')exitWith{};
  5320. _owner = owner _x;
  5321. _name = name _x;
  5322.  
  5323. "; if(_armalog)then{ _A3AHstring = _A3AHstring + "
  5324. if(_uid call fn_infiSTAR_checkGlobalBanSkip)then{[_name,_uid,_owner] call fn_infiSTAR_checkGlobalBanState;};
  5325. "; }; _A3AHstring = _A3AHstring + "
  5326.  
  5327.  
  5328. private _namePlayerObject = _x getVariable 'playerName';
  5329. if(isNil '_namePlayerObject')then
  5330. {
  5331. _x setVariable['playerName',_name,true];
  5332. }
  5333. else
  5334. {
  5335. if!(_namePlayerObject isEqualTo _name)then
  5336. {
  5337. _x setVariable['playerName',_name,true];
  5338. };
  5339. };
  5340.  
  5341. _puidPlayerObject = _x getVariable['PUID','-1'];
  5342. if!(_puidPlayerObject isEqualTo _uid)then{ _x setVariable['PUID',_uid]; };
  5343.  
  5344. "; if(_MOD == 'Epoch')then{ _A3AHstring = _A3AHstring + "
  5345. "; if(_MPH)then{ _A3AHstring = _A3AHstring + "
  5346. _x removeAllMPEventHandlers 'MPHit';
  5347. _x addMPEventHandler['MPHit',{_this spawn LOG_MPHIT_HANDLER}];
  5348. "; }; _A3AHstring = _A3AHstring + "
  5349. "; }; _A3AHstring = _A3AHstring + "
  5350.  
  5351. "; if(_UVC)then{ _A3AHstring = _A3AHstring + "
  5352. _veh = objectParent _x;
  5353. if(!isNull _veh)then
  5354. {
  5355. if(_veh getVariable ['"+_vehicle_needs_check+"',true])then
  5356. {
  5357. _veh setVariable ['"+_vehicle_needs_check+"',false];
  5358.  
  5359. _type = typeOf _veh;
  5360. if((!("+str _UVW+") && {_type in "+str _ForbiddenVehicles+"}) || (("+str _UVW+") && {!(_type in "+str _VehicleWhiteList+")}))then
  5361. {
  5362. _crew = crew _veh;
  5363. if(call{{if((getPlayerUID _x) in "+_adminsA+")exitWith{true};false} forEach _crew;})exitWith{};
  5364.  
  5365. _log = format['BadVehicle (S-UVC): %1',_type];
  5366. {
  5367. _xname = name _x;
  5368. _xuid = getPlayerUID _x;
  5369. [_xname,_xuid,'HLOG',toArray(_log)] call "+_FNC_AH_KICKLOG+";
  5370. } forEach _crew;
  5371. _veh call fnc_deleteObject;
  5372. };
  5373. };
  5374. };
  5375. "; }; _A3AHstring = _A3AHstring + "
  5376. };
  5377. } forEach allPlayers;
  5378. };
  5379. uiSleep 7;
  5380. SERVER_FPS = diag_fps;publicVariable 'SERVER_FPS';
  5381. SERVER_THREADS = count diag_activeSQFScripts;publicVariable 'SERVER_THREADS';
  5382. };
  5383. _log = format['%1 - LOOP - BROKEN!',time];
  5384. _log call FNC_A3_HACKLOG;
  5385.  
  5386.  
  5387. };
  5388.  
  5389.  
  5390.  
  5391. _zeroCode = {
  5392. if(hasInterface)then
  5393. {
  5394. _AHKickOFF = compileFinal '[] spawn {scriptName ''KICKOFF'';sleep 0.1;(findDisplay 46)closeDisplay 0;if(!isNil''"+_AHKickLog+"'')then{[profileName,getPlayerUID player,''KICKME''] call "+_AHKickLog+";};};';
  5395. if(isNil'"+_AHKickOFF+"')then{"+_AHKickOFF+" = _AHKickOFF;};
  5396. if(str _AHKickOFF != str "+_AHKickOFF+")then{[] call _AHKickOFF;};
  5397. _AHKickLog = compileFinal ""
  5398. if(!isNil'"+_YourPlayerToken+"')then
  5399. {
  5400. "+_AH_KICKLOG+" = ["+_YourPlayerToken+",_this,netId player];publicVariableServer '"+_AH_KICKLOG+"';"+_AH_KICKLOG+"=nil;
  5401. }
  5402. else
  5403. {
  5404. _this spawn {
  5405. scriptName format['KICKOFF_%1',_this];
  5406. _temptime = time+15;_tempdiagtime = diag_tickTime+15;
  5407. waitUntil{!isNil '"+_YourPlayerToken+"' || time > _temptime || diag_tickTime > _tempdiagtime};
  5408. if(isNil'"+_YourPlayerToken+"')exitWith{KICKED_FOR_NIL_TOKEN_AHKickLog = format['PLAYER__%1__%2',getPlayerUID player,_this];publicVariableServer 'KICKED_FOR_NIL_TOKEN_AHKickLog';(findDisplay 46)closeDisplay 0;};
  5409. "+_AH_KICKLOG+" = ["+_YourPlayerToken+",_this,netId player];publicVariableServer '"+_AH_KICKLOG+"';"+_AH_KICKLOG+"=nil;
  5410. };
  5411. };
  5412. "";
  5413. if(isNil'"+_AHKickLog+"')then{"+_AHKickLog+" = _AHKickLog;};
  5414. if(str _AHKickLog != str "+_AHKickLog+")then{[] call _AHKickOFF;};
  5415. if(!isNil'"+_TokenCT+"')then{if(typeName "+_TokenCT+" == 'SCRIPT')then{terminate "+_TokenCT+";}else{TOKENCT_BROKEN='TOKENCT_BROKEN';publicVariableServer'TOKENCT_BROKEN';[] call _AHKickOFF;};};
  5416. "+_TokenCT+" = [_AHKickOFF] spawn {
  5417. scriptName format['TokenCT_%1',time];
  5418. private['_tmpYourPlayerToken','_AHKickOFF'];
  5419. _AHKickOFF = _this select 0;
  5420. waitUntil {!isNil '"+_YourPlayerToken+"'};
  5421. _tmpYourPlayerToken = "+_YourPlayerToken+";
  5422. if(typeName "+_YourPlayerToken+" != 'STRING')then{TOKEN_NO_STRING='TOKEN_NO_STRING';publicVariableServer'TOKEN_NO_STRING';};
  5423. waitUntil {if(isNil'"+_YourPlayerToken+"')then{"+_YourPlayerToken+"='';};str _tmpYourPlayerToken != str "+_YourPlayerToken+"};
  5424. TOKEN_BROKEN='TOKEN_BROKEN';publicVariableServer'TOKEN_BROKEN';
  5425. [] call _AHKickOFF;
  5426. };
  5427.  
  5428. inGameUISetEventHandler ['PrevAction','false'];
  5429. inGameUISetEventHandler ['NextAction','false'];
  5430. inGameUISetEventHandler ['Action','false'];
  5431. _bis_fnc_diagkey = uiNamespace getVariable['bis_fnc_diagkey',{false}];
  5432. if(!isNil'_bis_fnc_diagkey')then{if!((str _bis_fnc_diagkey) in ['{false}','{}'])then{bis_fnc_diagkeychanged='bis_fnc_diagkeychanged';publicVariableServer'bis_fnc_diagkeychanged';};};
  5433. };
  5434. };
  5435. ['',_zeroCode,-2,'zerocodeJIP'] call FN_infiSTAR_S;
  5436. ";
  5437. call compile _A3AHstring;_A3AHstring=nil;
  5438. _b = {[] spawn {sleep 20;waitUntil {time > 20};diag_log "<infiSTAR.de> license is blocked.";diag_log "<infiSTAR.de> if you did not do anything wrong. please open a support ticket on http://support.infiSTAR.de";diag_log "<infiSTAR.de> infiSTAR will NOT START when the license is blocked!";[] spawn {sleep 1;failMission "LOSER";endMission "LOSER";forceEnd;};if(!isNil"FN_GET_SERVERPW")then{(call FN_GET_SERVERPW) serverCommand "#shutdown";};};};
  5439. if("infiSTAR" != ("i" +"n" +"f" +"i" +"S" +"T" +"A" +"R"))then{[] call _b;};
  5440. if("infiSTAR.de" != ("i" +"n" +"f" +"i"+"S" +"T" +"A"+"R"+".d"+"e"))then{[] call _b;};
  5441. call compile ("
  5442. FNC_DO_CLIENT_VAR_DUMP = compileFinal ""
  5443. private['_name','_puid'];
  5444. _name = _this select 0;
  5445. _puid = _this select 1;
  5446.  
  5447. if(!isNil'"+_CURRENTLYDUMPING+"')exitWith{ [format['CLIENT_VAR_DUMP_%1_%2',_name,_puid],'CURRENTLY DUMPING - WAIT UNTIL IT IS DONE (max 120s)'] call FNC_A3_CUSTOMLOG; };
  5448.  
  5449. _randomPlayersID = '';
  5450. _randomPlayersName = '';
  5451. {
  5452. _xPID = getPlayerUID _x;
  5453. if((_xPID != '')&&(_xPID != _puid))exitWith
  5454. {
  5455. _randomPlayersID = _xPID;
  5456. _randomPlayersName = name _x;
  5457. };
  5458. } forEach allPlayers;
  5459. if(_randomPlayersID == '')exitWith{ [format['CLIENT_VAR_DUMP_%1_%2',_name,_puid],'Need at least 1 more connected & alive player to dump vars'] call FNC_A3_CUSTOMLOG; };
  5460. "+_CURRENTLYDUMPING+" = true;
  5461.  
  5462. deleteMarker '"+_MAKE_VAR_DUMP_RANDOM+"';(createMarker ['"+_MAKE_VAR_DUMP_RANDOM+"',[0,0,0]]) setMarkerText '';
  5463. deleteMarker '"+_MAKE_VAR_DUMP_CLIENT+"';(createMarker ['"+_MAKE_VAR_DUMP_CLIENT+"',[0,0,0]]) setMarkerText '';
  5464.  
  5465. [
  5466. [_randomPlayersName,_name],
  5467. {
  5468. params['_randomPlayersName','_name'];
  5469. if(profileName isEqualTo _randomPlayersName)then
  5470. {
  5471. _vars = str(allVariables missionNamespace);
  5472. deleteMarker '"+_MAKE_VAR_DUMP_RANDOM+"';(createMarker ['"+_MAKE_VAR_DUMP_RANDOM+"',[0,0,0]]) setMarkerText _vars;
  5473. };
  5474. if(profileName isEqualTo _name)then
  5475. {
  5476. [] spawn {
  5477. scriptName format['MAKE_VAR_DUMP_RANDOM_%1',time];
  5478. _timeOut = time + 120;
  5479. waitUntil {MarkerText '"+_MAKE_VAR_DUMP_RANDOM+"' != '' || time > _timeOut};
  5480. if(time > _timeOut)exitWith{};
  5481. _RandomsClientVarsSTRING = MarkerText '"+_MAKE_VAR_DUMP_RANDOM+"';deleteMarker '"+_MAKE_VAR_DUMP_RANDOM+"';
  5482. _RandomsClientVars = call compile _RandomsClientVarsSTRING;
  5483.  
  5484. _myVarsNotOnOther = [];
  5485. {
  5486. if!(_x in _RandomsClientVars)then
  5487. {
  5488. _myVarsNotOnOther pushBack [_x,missionNamespace getVariable _x];
  5489. };
  5490. } forEach (allVariables missionNamespace);
  5491. deleteMarker '"+_MAKE_VAR_DUMP_CLIENT+"';(createMarker ['"+_MAKE_VAR_DUMP_CLIENT+"',[0,0,0]]) setMarkerText (str _myVarsNotOnOther);
  5492. };
  5493. };
  5494. },
  5495. -2,
  5496. false
  5497. ] call FN_infiSTAR_S;
  5498.  
  5499.  
  5500. if(isNil'"+_DUMPINGPLAYERUIDARRAY+"')then{"+_DUMPINGPLAYERUIDARRAY+"=[];};
  5501. if(_puid in "+_DUMPINGPLAYERUIDARRAY+")exitWith{ [format['CLIENT_VAR_DUMP_%1_%2',_name,_puid],'ALREADY DUMPING THIS PLAYER'] call FNC_A3_CUSTOMLOG; };
  5502. "+_DUMPINGPLAYERUIDARRAY+" pushBack _puid;
  5503. [_name,_puid] spawn {
  5504. scriptName format['MAKE_VAR_DUMP_CLIENT_%1',time];
  5505. private['_name','_puid'];
  5506. _name = _this select 0;
  5507. _puid = _this select 1;
  5508.  
  5509. _timeOut = time + 120;
  5510. waitUntil {MarkerText '"+_MAKE_VAR_DUMP_CLIENT+"' != '' || time > _timeOut};
  5511. "+_DUMPINGPLAYERUIDARRAY+" deleteAt ("+_DUMPINGPLAYERUIDARRAY+" find _puid);
  5512. "+_CURRENTLYDUMPING+" = nil;
  5513. if(time > _timeOut)exitWith{ [format['CLIENT_VAR_DUMP_%1_%2',_name,_puid],'--- DUMP TIMED OUT ---'] call FNC_A3_CUSTOMLOG; };
  5514. _selectedClientVarsSTRING = MarkerText '"+_MAKE_VAR_DUMP_CLIENT+"';deleteMarker '"+_MAKE_VAR_DUMP_CLIENT+"';
  5515. _selectedClientVars = call compile _selectedClientVarsSTRING;
  5516.  
  5517. if(_selectedClientVars isEqualTo [])exitWith{ [format['CLIENT_VAR_DUMP_%1_%2',_name,_puid],'--- ALL GOOD - NOTHING TO DUMP ---'] call FNC_A3_CUSTOMLOG; };
  5518. [format['CLIENT_VAR_DUMP_%1_%2',_name,_puid],'--- STARTING DUMP ---'] call FNC_A3_CUSTOMLOG;
  5519.  
  5520. { [format['CLIENT_VAR_DUMP_%1_%2',_name,_puid],str _x] call FNC_A3_CUSTOMLOG; } forEach _selectedClientVars;
  5521. [format['CLIENT_VAR_DUMP_%1_%2',_name,_puid],'--- DUMP ENDED ---'] call FNC_A3_CUSTOMLOG;
  5522. };
  5523. "";
  5524. ");
  5525. diag_log format['<infiSTAR.de> %1 - AntiHack loaded!',time];
  5526. /* ********************************************************************************* */
  5527. /* *********************************www.infiSTAR.de********************************* */
  5528. /* *******************Developed by infiSTAR (infiSTAR23@gmail.com)****************** */
  5529. /* **************infiSTAR Copyright®© 2011 - 2017 All rights reserved.************** */
  5530. /* ****DayZAntiHack.com***DayZAntiHack.de***ArmaAntiHack.com***Arma3AntiHack.com**** */
Add Comment
Please, Sign In to add comment