Guest User

Untitled

a guest
Aug 1st, 2017
491
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 192.83 KB | None | 0 0
  1. /*
  2. File: A3AT.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. comment 'Antihack & AdminTools - Christian Lorenzen - www.infiSTAR.de - License: (CC)';
  13. VERSION_DATE_IS = '29-06-2017 08-25-35#6042';
  14. infiSTAR_MAIN_CODE = "
  15. fnc_admin_c = compileFinal 'compile _this';
  16. fnc_admin_cc = compileFinal 'call compile _this';
  17. fnc_admin_ccc = compileFinal 'if(!isNil {call compile _this})then{call compile _this}else{''ANY''}';
  18. fnc_createctrl = {
  19. params['_display','_type','_idc'];
  20. ctrlDelete (_display displayCtrl _idc);
  21. _ctrl = _display ctrlCreate[_type, _idc];
  22. _ctrl
  23. };
  24. FN_SHOW_LOGID = 554466;
  25. FN_SHOWN_LOGIDS = [];
  26. FN_SHOW_LOG = {
  27. disableSerialization;
  28. _del = {FN_SHOWN_LOGIDS = FN_SHOWN_LOGIDS - [_this];ctrlDelete _this;};
  29. {
  30. if(_forEachIndex < 3)then
  31. {
  32. if(count FN_SHOWN_LOGIDS > 40)then{_x call _del;};
  33. }
  34. else
  35. {
  36. if(ctrlFade _x > 0.9)then{_x call _del;};
  37. };
  38. } forEach FN_SHOWN_LOGIDS;
  39. _ctrl = [findDisplay 46,'RSCText',FN_SHOW_LOGID] call fnc_createctrl;
  40. FN_SHOW_LOGID = FN_SHOW_LOGID + 1;
  41. FN_SHOWN_LOGIDS pushBackUnique _ctrl;
  42. {
  43. _x ctrlSetPosition [
  44. 0,
  45. ((safeZoneY+0.3) + (_forEachIndex / 30)),
  46. 1.3,
  47. 0.2
  48. ];
  49. _x ctrlCommit 0;
  50. } forEach FN_SHOWN_LOGIDS;
  51. _ctrl ctrlSetText format['<infiSTAR.de> %1',_this];
  52. _ctrl ctrlSetFade 1;
  53. _ctrl ctrlCommit 5;
  54. };
  55. _log = format['%1 <infiSTAR.de> Loading Menu...',time];_log call FN_SHOW_LOG;diag_log _log;
  56. MYPUIDinfiESP = getPlayerUID player;
  57. ALT_IS_PRESSED=false;FILLMAINSTATE=0;LASTSUBBUTTON=1;
  58. SortAlphaPlease = true;SortGroupsPlease = nil;SortRangePlease = nil;
  59. infiSTAR_add_vehicles=true;
  60. SELECTED_TARGET_PLAYER = player;
  61. show_spectate_overlay = true;
  62. MAIN_DISPLAY_ID = -1338;LEFT_CTRL_ID = 1500;RIGHT_CTRL_ID = 1501;
  63. draw_infiESPIcon = getText(configfile >> 'cfgGroupIcons' >> 'Empty' >> 'icon');
  64. uiNamespace setVariable['A3MAPICONS_mainMap', nil];
  65. uiNamespace setVariable['A3MAPICONS_mainMap', findDisplay 12 displayCtrl 51];
  66. infiSTAR_HTML_LOAD = "+str _use_html_load_on_adminmenu+";
  67. if(isNil 'AH_HackLogArray')then{AH_HackLogArray = [];};
  68. if(isNil 'AH_SurvLogArray')then{AH_SurvLogArray = [];};
  69. if(isNil 'AH_AdmiLogArray')then{AH_AdmiLogArray = [];};
  70. if(isNil 'infiSTAR_toggled_A')then{infiSTAR_toggled_A = ['==== OnTarget ====','==== Toggleable ===='];};
  71. if(infiSTAR_MOD == 'Epoch')then
  72. {
  73. if(isNil 'infiSTAR_ALLOW_ON_EPOCH')then
  74. {
  75. infiSTAR_ALLOW_ON_EPOCH = ['Epoch','B_Parachute','Binocular','Rangefinder','Hatchet','MeleeSledge','ChainSaw','MultiGun','Rollins_F'];
  76. {
  77. infiSTAR_ALLOW_ON_EPOCH pushBack format['B_AssaultPack_%1',_x];
  78. } forEach ['cbr','dgtl','khk','mcamo','ocamo','rgr','sgg'];
  79. {
  80. infiSTAR_ALLOW_ON_EPOCH pushBack format['B_Carryall_%1',_x];
  81. } forEach ['cbr','khk','mcamo','ocamo','oli','oucamo'];
  82. {
  83. infiSTAR_ALLOW_ON_EPOCH pushBack format['B_FieldPack_%1',_x];
  84. } forEach ['blk','cbr','khk','ocamo','oli','oucamo'];
  85. {
  86. infiSTAR_ALLOW_ON_EPOCH pushBack format['B_Kitbag_%1',_x];
  87. } forEach ['cbr','mcamo','rgr','sgg'];
  88. {
  89. infiSTAR_ALLOW_ON_EPOCH pushBack format['B_TacticalPack_%1',_x];
  90. } forEach ['blk','mcamo','ocamo','oli','rgr'];
  91. {
  92. infiSTAR_ALLOW_ON_EPOCH pushBack format['smallbackpack_%1_epoch',_x];
  93. } forEach ['red','green','teal','pink'];
  94. {
  95. infiSTAR_ALLOW_ON_EPOCH pushBack format['%1_epoch',_x];
  96. } forEach ['ruger_pistol','speargun','1911_pistol','akm','m14','M14Grn','m16','m16Red','m107','m107Tan','m249','m249Tan','m4a3'];
  97. {
  98. infiSTAR_ALLOW_ON_EPOCH pushBack format['SMG_%1_F',_x];
  99. } forEach ['01','02'];
  100. {
  101. infiSTAR_ALLOW_ON_EPOCH pushBack format['SMG_%1_F',_x];
  102. } forEach ['01','02'];
  103. {
  104. infiSTAR_ALLOW_ON_EPOCH pushBack format['hgun_%1_F',_x];
  105. } forEach ['PDW2000','ACPC2','Rook40','P07','Pistol_heavy_01','Pistol_heavy_02','Pistol_Signal'];
  106. {
  107. infiSTAR_ALLOW_ON_EPOCH pushBack format['LMG_%1_F',_x];
  108. } forEach ['Mk200','Zafir'];
  109. {
  110. infiSTAR_ALLOW_ON_EPOCH pushBack format['srifle_%1_F',_x];
  111. } forEach ['EBR','GM6','LRR','DMR_01'];
  112. {
  113. infiSTAR_ALLOW_ON_EPOCH pushBack format['arifle_%1_F',_x];
  114. } forEach ['Katiba','Katiba_C','Katiba_GL','SDAR','TRG21','TRG20','TRG21_GL','Mk20','Mk20C','Mk20C_plain','Mk20_GL','Mk20_plain','Mk20_GL_plain'];
  115. {
  116. infiSTAR_ALLOW_ON_EPOCH pushBack format['arifle_%1_F',_x];
  117. } forEach ['MXC','MX','MX_GL','MXM','MXM_Black','MX_GL_Black','MX_Black','MXC_Black','MX_SW','MX_SW_Black'];
  118. {
  119. infiSTAR_ALLOW_ON_EPOCH pushBack (typeOf _x);
  120. } forEach vehicles;
  121. };
  122. fnc_infiSTAR_checkEpoch =
  123. {
  124. _stringtocheck = _this;
  125. _found = false;
  126. if(isClass(configfile >> 'CfgPricing' >> _stringtocheck))exitWith{_found = true;true};
  127. if(_stringtocheck in infiSTAR_ALLOW_ON_EPOCH)exitWith{_found = true;true};
  128. _found
  129. };
  130. };
  131. if(isNil 'ALL_BAGS_TO_SEARCH_C')then
  132. {
  133. ALL_BAGS_TO_SEARCH_C = [];ALL_BAGS_TO_SEARCH_EPOCH = [];ALL_BAGS_TO_SEARCH_NONEEPOCH = [];
  134. ALL_VEHS_TO_SEARCH_C = [];ALL_VEHS_TO_SEARCH_EPOCH = [];ALL_VEHS_TO_SEARCH_NONEEPOCH = [];
  135. ALL_OBJS_TO_SEARCH_C = [];ALL_OBJS_TO_SEARCH_EPOCH = [];ALL_OBJS_TO_SEARCH_NONEEPOCH = [];
  136. ALL_WEPS_TO_SEARCH_C = [];ALL_WEPS_TO_SEARCH_EPOCH = [];ALL_WEPS_TO_SEARCH_NONEEPOCH = [];
  137. ALL_MAGS_TO_SEARCH_C = [];ALL_MAGS_TO_SEARCH_EPOCH = [];ALL_MAGS_TO_SEARCH_NONEEPOCH = [];
  138. _cfg = configFile >> 'cfgVehicles';
  139. for '_j' from 0 to (count _cfg)-1 do
  140. {
  141. _c = _cfg select _j;
  142. if(isClass _c)then
  143. {
  144. _t = configName _c;
  145. if(toLower _t find '_base' isEqualTo -1)then
  146. {
  147. _BackPack = getText(configfile >> 'CfgVehicles' >> _t >> 'vehicleClass') == 'BackPacks';
  148. if(_BackPack)then
  149. {
  150. if(infiSTAR_MOD == 'Epoch')then{if(_t call fnc_infiSTAR_checkEpoch)then{ALL_BAGS_TO_SEARCH_EPOCH pushBack _t;} else {ALL_BAGS_TO_SEARCH_NONEEPOCH pushBack _t;};};
  151. ALL_BAGS_TO_SEARCH_C pushBack _t;
  152. }
  153. else
  154. {
  155. if((_t isKindOf 'Air') || (_t isKindOf 'LandVehicle') || (_t isKindOf 'Ship'))then
  156. {
  157. _pic = getText(_c >> 'picture');
  158. if!((toLower _pic) in ['','pictureheal','picturepapercar','picturething','picturestaticobject'])then
  159. {
  160. if(infiSTAR_MOD == 'Epoch')then{if(_t call fnc_infiSTAR_checkEpoch)then{ALL_VEHS_TO_SEARCH_EPOCH pushBack _t;} else {ALL_VEHS_TO_SEARCH_NONEEPOCH pushBack _t;};};
  161. ALL_VEHS_TO_SEARCH_C pushBack _t;
  162. };
  163. }
  164. else
  165. {
  166. if((_t isKindOf 'Building') || (_t isKindOf 'ThingX') || (_t isKindOf 'Constructions_static_F') || (_t isKindOf 'Constructions_foundation_F'))then
  167. {
  168. _lt = toLower _t;
  169. if((_lt find 'weapon' == -1) && (_lt find 'proxy' == -1))then
  170. {
  171. if(infiSTAR_MOD == 'Epoch')then{if(_t call fnc_infiSTAR_checkEpoch)then{ALL_OBJS_TO_SEARCH_EPOCH pushBack _t;} else {ALL_OBJS_TO_SEARCH_NONEEPOCH pushBack _t;};};
  172. ALL_OBJS_TO_SEARCH_C pushBack _t;
  173. };
  174. };
  175. };
  176. };
  177. };
  178. };
  179. };
  180. _cfg = configFile >> 'CfgWeapons';
  181. for '_i' from 0 to (count _cfg)-1 do
  182. {
  183. _c = _cfg select _i;
  184. if(isClass _c)then
  185. {
  186. _t = configName _c;
  187. if(toLower _t find '_base' isEqualTo -1)then
  188. {
  189. if((getText(_c >> 'displayName') != '') && {getText(_c >> 'picture') != ''} && {getNumber(_c >> 'scope') in [0,2]})then
  190. {
  191. if(infiSTAR_MOD == 'Epoch')then{if(_t call fnc_infiSTAR_checkEpoch)then{ALL_WEPS_TO_SEARCH_EPOCH pushBack _t;} else {ALL_WEPS_TO_SEARCH_NONEEPOCH pushBack _t;};};
  192. ALL_WEPS_TO_SEARCH_C pushBack _t;
  193. };
  194. };
  195. };
  196. };
  197. _cfg = configFile >> 'cfgmagazines';
  198. for '_i' from 0 to (count _cfg)-1 do
  199. {
  200. _c = _cfg select _i;
  201. if(isClass _c)then
  202. {
  203. _t = configName _c;
  204. if(toLower _t find '_base' isEqualTo -1)then
  205. {
  206. if((getText(_c >> 'displayName') != '') && {getText(_c >> 'picture') != ''} && {getNumber(_c >> 'scope') in [0,2]})then
  207. {
  208. if(infiSTAR_MOD == 'Epoch')then{if(_t call fnc_infiSTAR_checkEpoch)then{ALL_MAGS_TO_SEARCH_EPOCH pushBack _t;} else {ALL_MAGS_TO_SEARCH_NONEEPOCH pushBack _t;};};
  209. ALL_MAGS_TO_SEARCH_C pushBack _t;
  210. };
  211. };
  212. };
  213. };
  214. ALLC_TO_SEARCH = ALL_BAGS_TO_SEARCH_C+ALL_VEHS_TO_SEARCH_C+ALL_OBJS_TO_SEARCH_C+ALL_WEPS_TO_SEARCH_C+ALL_MAGS_TO_SEARCH_C;
  215. };
  216. "; if(_MOD == 'AltisLife')then{ infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  217. if(isNil'VIRTUAL_ITEMS_ARRAY')then
  218. {
  219. VIRTUAL_ITEMS_ARRAY = [];
  220. _cfg = missionconfigfile >> 'VirtualItems';
  221. for '_i' from 0 to (count _cfg)-1 do
  222. {
  223. _c = _cfg select _i;
  224. if(isClass _c)then
  225. {
  226. _t = configName _c;
  227. VIRTUAL_ITEMS_ARRAY pushBack _t;
  228. };
  229. };
  230. };
  231. "; }; infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  232. _log = '<infiSTAR.de> config data loaded...!';diag_log _log;
  233. fnc_setFocus = {
  234. disableSerialization;
  235. ctrlSetFocus ((findDisplay MAIN_DISPLAY_ID) displayCtrl LEFT_CTRL_ID);
  236. ctrlSetFocus ((findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_CTRL_ID);
  237. };
  238. fnc_MouseButtonDown = {
  239. if(_this select 1 == 0)then
  240. {
  241. _pos = ((_this select 0) posScreenToWorld [_this select 2, _this select 3]);
  242. if(ALT_IS_PRESSED)then
  243. {
  244. _veh = vehicle player;
  245. if(_veh == player)then
  246. {
  247. _veh setPosATL _pos;
  248. }
  249. else
  250. {
  251. if(_veh isKindOf 'AIR')then
  252. {
  253. _posObj = getPosATL _veh;
  254. _pos = [_pos select 0,_pos select 1,_posObj select 2];
  255. };
  256. [1,player,_veh,_pos] call fnc_AdminReq;
  257. };
  258. ALT_IS_PRESSED = false;
  259. format['Teleport to %1(GPS: %2)',_pos,mapGridPosition _pos] call fnc_adminLog;
  260. {player reveal _x;} foreach (_pos nearObjects 50);
  261. };
  262. if(!isNil 'CALLED_EMP')then
  263. {
  264. CALLED_EMP = nil;
  265. _pos call fnc_callEMP;
  266. };
  267. if(!isNil 'fnc_getParachutePos')then
  268. {
  269. _pos call fnc_getParachutePos;
  270. };
  271. };
  272. };
  273. fnc_addpic = {
  274. _status = call {
  275. if(isClass (configFile >> 'CfgWeapons' >> _this))exitWith{'CfgWeapons'};
  276. if(isClass (configFile >> 'CfgMagazines' >> _this))exitWith{'CfgMagazines'};
  277. if(isClass (configFile >> 'CfgVehicles' >> _this))exitWith{'CfgVehicles'};
  278. '';
  279. };
  280. if!(_status isEqualTo '')then
  281. {
  282. _pic = (getText (configFile >> _status >> _this >> 'picture'));
  283. if!(_pic isEqualTo '')then
  284. {
  285. _ctrl lbSetPicture [(lbsize _ctrl)-1,_pic];
  286. _ctrl lbSetPictureColor [(lbsize _ctrl)-1,[1, 1, 1, 1]];
  287. };
  288. };
  289. };
  290. fnc_search = {
  291. [
  292. _txt,
  293. {
  294. _txt = _this;
  295. if(_txt == lastSearched)exitWith{};
  296. disableSerialization;
  297. _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_CTRL_ID;
  298. lbClear _ctrl;
  299. if(LASTSUBBUTTON isEqualTo 0)then
  300. {
  301. if('==== Weapons ====' call ADMINLEVELACCESS)then
  302. {
  303. _ctrl lbAdd '==== Weapons ====';
  304. if(!isNil 'infiSTAR_add_weapons')then
  305. {
  306. if(infiSTAR_MOD == 'Epoch')then
  307. {
  308. _ctrl lbAdd ' ==== Epoch Weapons ====';
  309. {
  310. _displayName = getText(configFile >> 'CfgWeapons' >> _x >> 'displayName');
  311. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  312. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  313. _x call fnc_addpic;
  314. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  315. };
  316. } forEach ALL_WEPS_TO_SEARCH_EPOCH;
  317. _ctrl lbAdd ' ==== Other Weapons ====';
  318. {
  319. _displayName = getText(configFile >> 'CfgWeapons' >> _x >> 'displayName');
  320. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  321. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  322. _x call fnc_addpic;
  323. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  324. _ctrl lbSetColor [(lbsize _ctrl)-1,[1,0,0,1]];
  325. };
  326. } forEach ALL_WEPS_TO_SEARCH_NONEEPOCH;
  327. }
  328. else
  329. {
  330. {
  331. _displayName = getText(configFile >> 'CfgWeapons' >> _x >> 'displayName');
  332. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  333. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  334. _x call fnc_addpic;
  335. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  336. };
  337. } forEach ALL_WEPS_TO_SEARCH_C;
  338. };
  339. };
  340. };
  341. if('==== Magazines ====' call ADMINLEVELACCESS)then
  342. {
  343. _ctrl lbAdd '==== Magazines ====';
  344. if(!isNil 'infiSTAR_add_magazines')then
  345. {
  346. if(infiSTAR_MOD == 'Epoch')then
  347. {
  348. _ctrl lbAdd ' ==== Epoch Magazines ====';
  349. {
  350. _displayName = getText(configFile >> 'CfgMagazines' >> _x >> 'displayName');
  351. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  352. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  353. _x call fnc_addpic;
  354. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  355. };
  356. } forEach ALL_MAGS_TO_SEARCH_EPOCH;
  357. _ctrl lbAdd ' ==== Other Magazines ====';
  358. {
  359. _displayName = getText(configFile >> 'CfgMagazines' >> _x >> 'displayName');
  360. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  361. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  362. _x call fnc_addpic;
  363. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  364. _ctrl lbSetColor [(lbsize _ctrl)-1,[1,0,0,1]];
  365. };
  366. } forEach ALL_MAGS_TO_SEARCH_NONEEPOCH;
  367. }
  368. else
  369. {
  370. {
  371. _displayName = getText(configFile >> 'CfgMagazines' >> _x >> 'displayName');
  372. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  373. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  374. _x call fnc_addpic;
  375. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  376. };
  377. } forEach ALL_MAGS_TO_SEARCH_C;
  378. };
  379. };
  380. };
  381. if('==== Bags ====' call ADMINLEVELACCESS)then
  382. {
  383. _ctrl lbAdd '==== Bags ====';
  384. if(!isNil 'infiSTAR_add_bags')then
  385. {
  386. if(infiSTAR_MOD == 'Epoch')then
  387. {
  388. _ctrl lbAdd ' ==== Epoch Bags ====';
  389. {
  390. _displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');
  391. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  392. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  393. _x call fnc_addpic;
  394. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  395. };
  396. } forEach ALL_BAGS_TO_SEARCH_EPOCH;
  397. _ctrl lbAdd ' ==== Other Bags ====';
  398. {
  399. _displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');
  400. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  401. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  402. _x call fnc_addpic;
  403. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  404. _ctrl lbSetColor [(lbsize _ctrl)-1,[1,0,0,1]];
  405. };
  406. } forEach ALL_BAGS_TO_SEARCH_NONEEPOCH;
  407. }
  408. else
  409. {
  410. {
  411. _displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');
  412. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  413. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  414. _x call fnc_addpic;
  415. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  416. };
  417. } forEach ALL_BAGS_TO_SEARCH_C;
  418. };
  419. };
  420. };
  421. "; if(_MOD == 'AltisLife')then{ infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  422. _ctrl lbAdd '==== VirtualItems ====';
  423. if(!isNil 'infiSTAR_add_VirtualItems')then
  424. {
  425. {
  426. if((toLower _x) find _txt > -1)then
  427. {
  428. _ctrl lbAdd format['%1',_x];
  429. _ctrl lbSetPicture [(lbsize _ctrl)-1,(getText(missionconfigfile >> 'VirtualItems' >> _x >> 'icon'))];
  430. _ctrl lbSetPictureColor [(lbsize _ctrl)-1,[1, 1, 1, 1]];
  431. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  432. };
  433. } forEach VIRTUAL_ITEMS_ARRAY;
  434. };
  435. "; }; infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  436. };
  437. if(LASTSUBBUTTON isEqualTo 1)then
  438. {
  439. if('==== Vehicles ====' call ADMINLEVELACCESS)then
  440. {
  441. if(!isNil'EPOCH_VehicleSlotCount')then
  442. {
  443. _ctrl lbAdd format['vehicle slots: %1 (destroy/delete a vehicle to get a slot!)',EPOCH_VehicleSlotCount];
  444. };
  445. _ctrl lbAdd '==== Vehicles ====';
  446. if(!isNil 'infiSTAR_add_vehicles')then
  447. {
  448. if(infiSTAR_MOD == 'Epoch')then
  449. {
  450. _ctrl lbAdd ' ==== Epoch Vehicles (checked existing vehicles and config) ====';
  451. {
  452. _displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');
  453. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  454. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  455. _x call fnc_addpic;
  456. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  457. };
  458. } forEach ALL_VEHS_TO_SEARCH_EPOCH;
  459. _ctrl lbAdd ' ==== Other Vehicles ====';
  460. {
  461. _displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');
  462. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  463. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  464. _x call fnc_addpic;
  465. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  466. _ctrl lbSetColor [(lbsize _ctrl)-1,[1,0,0,1]];
  467. };
  468. } forEach ALL_VEHS_TO_SEARCH_NONEEPOCH;
  469. }
  470. else
  471. {
  472. {
  473. _displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');
  474. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  475. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  476. _x call fnc_addpic;
  477. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  478. };
  479. } forEach ALL_VEHS_TO_SEARCH_C;
  480. };
  481. };
  482. };
  483. };
  484. if(LASTSUBBUTTON isEqualTo 2)then
  485. {
  486. if('==== Objects ====' call ADMINLEVELACCESS)then
  487. {
  488. _ctrl lbAdd '==== Objects ====';
  489. if(!isNil 'infiSTAR_add_objects')then
  490. {
  491. if(infiSTAR_MOD == 'Epoch')then
  492. {
  493. _ctrl lbAdd ' ==== Epoch Objects ====';
  494. {
  495. _displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');
  496. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  497. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  498. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  499. };
  500. } forEach ALL_OBJS_TO_SEARCH_EPOCH;
  501. _ctrl lbAdd ' ==== Other Objects ====';
  502. {
  503. _displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');
  504. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  505. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  506. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  507. _ctrl lbSetColor [(lbsize _ctrl)-1,[1,0,0,1]];
  508. };
  509. } forEach ALL_OBJS_TO_SEARCH_NONEEPOCH;
  510. }
  511. else
  512. {
  513. _ctrl lbAdd ' ==== Objects ====';
  514. {
  515. _displayName = getText(configFile >> 'CfgVehicles' >> _x >> 'displayName');
  516. if(((toLower _x) find _txt > -1)||((toLower _displayName) find _txt > -1))then{
  517. _ctrl lbAdd format['%1 (%2)',_displayName,_x];
  518. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  519. };
  520. } forEach ALL_OBJS_TO_SEARCH_C;
  521. };
  522. };
  523. };
  524. };
  525. lastSearched = _txt;
  526. [] call fnc_colorizeMain;
  527. for '_i' from 0 to 10 do{_ctrl lbAdd '';};
  528. }
  529. ] execFSM 'call.fsm';
  530. };
  531. fnc_searchNfill = {
  532. if(isNil 'SEARCHLOOP')then{
  533. SEARCHLOOP = true;
  534. if(isNil 'lastSearched')then{lastSearched = '';};
  535. [] spawn {
  536. disableSerialization;
  537. while {true} do
  538. {
  539. if(isNull (findDisplay MAIN_DISPLAY_ID))exitWith{};
  540. if(!isNil 'stopthissearchplease')exitWith{stopthissearchplease=nil;};
  541. _txt = ctrlText((findDisplay MAIN_DISPLAY_ID) displayCtrl 100);
  542. if(_txt isEqualTo '')then
  543. {
  544. [] call fnc_fill_infiSTAR_Player;
  545. waitUntil {((ctrlText((findDisplay MAIN_DISPLAY_ID) displayCtrl 100) != '')||(isNull (findDisplay MAIN_DISPLAY_ID))||(!isNil 'stopthissearchplease'))};
  546. }
  547. else
  548. {
  549. _txt = toLower _txt;
  550. if(FILLMAINSTATE isEqualTo 1)then
  551. {
  552. call fnc_search;
  553. }
  554. else
  555. {
  556. _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl LEFT_CTRL_ID;
  557. lbclear _ctrl;
  558. {
  559. _PUIDX = getPlayerUID _x;
  560. _name = _x getVariable['realname',name _x];
  561. if((toLower _name) find _txt > -1)then
  562. {
  563. _side = side _x;
  564. _clr = _side call {
  565. if(_this isEqualTo civilian)exitWith{[0.67,0.97,0.97,1]};
  566. if(_this isEqualTo west)exitWith{[0.047,0.502,1,1]};
  567. if(_this isEqualTo resistance)exitWith{[0,0.65,0,1]};
  568. if(_this isEqualTo east)exitWith{[1,0.17,0.17,1]};
  569. [1,1,1,1]
  570. };
  571. _name = format['%1 [%2]',_name,_side];
  572. _index = _ctrl lbAdd _name;
  573. _ctrl lbSetData [(lbsize _ctrl)-1,'1'];
  574. _veh = vehicle _x;
  575. _xpic = getText (configFile >> 'CfgVehicles' >> (typeOf _veh) >> 'picture');
  576. if(alive _x)then
  577. {
  578. if(_x isEqualTo _veh)then
  579. {
  580. _wpnstate = weaponState _x;
  581. _cwep = _wpnstate select 0;
  582. if(_cwep != '')then
  583. {
  584. _xpic = getText (configFile >> 'CfgWeapons' >> _cwep >> 'picture');
  585. };
  586. };
  587. };
  588. if!(_xpic isEqualTo '')then
  589. {
  590. _ctrl lbSetPicture [_index,_xpic];
  591. _ctrl lbSetPictureColor [_index,[1, 1, 1, 1]];
  592. };
  593. _PUIDX = getPlayerUID _x;
  594. if(((_PUIDX in infiSTAR_ADMINS)&&!(_PUIDX in infiSTAR_DEVS))||((_PUIDX in infiSTAR_DEVS)&&(MYPUIDinfiESP in infiSTAR_DEVS))||(_PUIDX == MYPUIDinfiESP))then{_clr = [0,1,0,1];};
  595. if(_x isEqualTo SELECTED_TARGET_PLAYER)then{_clr = [1,0.7,0.15,1];};
  596. _ctrl lbSetColor [_index,_clr];
  597. };
  598. } forEach (call fnc_infiSTAR_get_LeftClicks);
  599. };
  600. };
  601. uiSleep 0.1;
  602. };
  603. SEARCHLOOP = nil;
  604. };
  605. };
  606. };
  607. fnc_SearchFieldButtons = {
  608. disableSerialization;
  609. _display = findDisplay MAIN_DISPLAY_ID;
  610. _others=false;
  611. if(FILLMAINSTATE == 1)then{_others = true;};
  612.  
  613. _editSearch = _display displayCtrl 100;
  614. _editSearch ctrlEnable true;
  615. _editSearch ctrlShow true;
  616. _editSearch ctrlSetTextColor [0.56,0.04,0.04,1];
  617. _editSearch ctrlSetText '';
  618.  
  619. _btnWep = _display displayCtrl 26;
  620. _btnWep ctrlEnable false;
  621. _btnWep ctrlShow false;
  622.  
  623. _btnMag = _display displayCtrl 27;
  624. _btnMag ctrlEnable false;
  625. _btnMag ctrlShow false;
  626.  
  627. _btnBackp = _display displayCtrl 28;
  628. _btnBackp ctrlEnable false;
  629. _btnBackp ctrlShow false;
  630.  
  631. _btnVest = _display displayCtrl 29;
  632. _btnVest ctrlEnable false;
  633. _btnVest ctrlShow false;
  634.  
  635. _btnUniform = _display displayCtrl 30;
  636. _btnUniform ctrlEnable false;
  637. _btnUniform ctrlShow false;
  638.  
  639. _btnTools = _display displayCtrl 31;
  640. _btnTools ctrlEnable false;
  641. _btnTools ctrlShow false;
  642.  
  643. _btnItems = _display displayCtrl 36;
  644. _btnItems ctrlEnable true;
  645. _btnItems ctrlShow true;
  646. _btnItems buttonSetAction '
  647. LASTSUBBUTTON = 0;FILLMAINSTATE=1;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;
  648. ';
  649.  
  650.  
  651. _ctrlL = _display displayCtrl LEFT_CTRL_ID;
  652. if(isNil 'ctrlposL')then{ctrlposL = ctrlPosition _ctrlL;};
  653. _ctrlLTMP = ctrlposL;
  654. if(isNil 'ctrlposeditSearch')then{ctrlposeditSearch = ctrlPosition _editSearch;};
  655. _ctrleditSearchTMP = ctrlposeditSearch;
  656. if(isNil 'ctrlposbtnItems')then{ctrlposbtnItems = ctrlPosition _btnItems;};
  657. _ctrlbtnItemsTMP = ctrlposbtnItems;
  658. if(FILLMAINSTATE in [0,3,4])then
  659. {
  660. _btnItems ctrlSetText 'Reset PlayerSearch';
  661. _btnItems buttonSetAction '
  662. ((findDisplay MAIN_DISPLAY_ID) displayCtrl 100) ctrlSetText '''';
  663. [] call fnc_fill_infiSTAR_Player;
  664. ';
  665.  
  666.  
  667. _ctrlLTMP = [(ctrlposL select 0),(ctrlposL select 1)+.165,(ctrlposL select 2),(ctrlposL select 3)-.165];
  668. _ctrleditSearchTMP = [SafeZoneX,(ctrlposeditSearch select 1)-0.045,(ctrlposL select 2),(ctrlposeditSearch select 3)*0.75];
  669. _ctrlbtnItemsTMP = [SafeZoneX,(ctrlposbtnItems select 1)-0.035,(ctrlposL select 2),(ctrlposbtnItems select 3)];
  670. };
  671. _ctrlL ctrlSetPosition _ctrlLTMP;
  672. _ctrlL ctrlCommit 0.3;
  673. _editSearch ctrlSetPosition _ctrleditSearchTMP;
  674. _editSearch ctrlCommit 0.3;
  675. _btnItems ctrlSetPosition _ctrlbtnItemsTMP;
  676. _btnItems ctrlCommit 0.3;
  677.  
  678. if(FILLMAINSTATE == 1)then{
  679. _btnItems ctrlSetText 'Items';
  680. _btnItems buttonSetAction '
  681. LASTSUBBUTTON = 0;FILLMAINSTATE=1;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;
  682. ';
  683. };
  684.  
  685. _btnVehs = _display displayCtrl 37;
  686. _btnVehs ctrlEnable _others;
  687. _btnVehs ctrlShow _others;
  688. _btnVehs buttonSetAction '
  689. LASTSUBBUTTON = 1;FILLMAINSTATE=1;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;
  690. ';
  691.  
  692. _btnMisc = _display displayCtrl 38;
  693. _btnMisc ctrlSetText 'Objects';
  694. _btnMisc ctrlEnable _others;
  695. _btnMisc ctrlShow _others;
  696. _btnMisc buttonSetAction '
  697. LASTSUBBUTTON = 2;FILLMAINSTATE=1;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;
  698. ';
  699.  
  700. call fnc_searchNfill;
  701. };
  702. fnc_cloneGear = {
  703. _unit = _this;
  704. if(isNil'_unit')exitWith{'_unit not defined' call FN_SHOW_LOG;};
  705. if(isNull _unit)exitWith{'_unit OBJECT-NULL' call FN_SHOW_LOG;};
  706. _export = '';
  707. _fnc_addMultiple = {
  708. _items = _this select 0;
  709. _expression = _this select 1;
  710. _itemsUsed = [];
  711. {
  712. _item = _x;
  713. _itemLower = tolower _x;
  714. if !(_itemLower in _itemsUsed)then{
  715. _itemsUsed set [count _itemsUsed,_itemLower];
  716. _itemCount = {_item == _x} count _items;
  717. _expressionLocal = _expression;
  718. if(_itemCount > 1)then{
  719. _expressionLocal = format ['for ''_i'' from 1 to %1 do {%2};',_itemCount,_expression];
  720. };
  721. _export = _export + format [_expressionLocal,_var,_x];
  722. };
  723. } foreach _items;
  724. };
  725. _export = _export + '_unit = player;';
  726. _var = '_unit';
  727. _export = _export + format ['removeAllWeapons %1;',_var];
  728. _export = _export + format ['removeAllItems %1;',_var];
  729. _export = _export + format ['removeAllAssignedItems %1;',_var];
  730. _export = _export + format ['removeUniform %1;',_var];
  731. _export = _export + format ['removeVest %1;',_var];
  732. _export = _export + format ['removeBackpack %1;',_var];
  733. _export = _export + format ['removeHeadgear %1;',_var];
  734. _export = _export + format ['removeGoggles %1;',_var];
  735. if(uniform _unit != '')then{
  736. _export = _export + format ['%1 forceAddUniform ''%2'';',_var,uniform _unit];
  737. [uniformitems _unit,'%1 addItemToUniform ''%2'';'] call _fnc_addMultiple;
  738. };
  739. if(vest _unit != '')then{
  740. _export = _export + format ['%1 addVest ''%2'';',_var,vest _unit];
  741. [vestitems _unit,'%1 addItemToVest ''%2'';'] call _fnc_addMultiple;
  742. };
  743. if(!isnull unitbackpack _unit)then{
  744. _export = _export + format ['%1 addBackpack ''%2'';',_var,typeof unitbackpack _unit];
  745. [backpackitems _unit,'%1 addItemToBackpack ''%2'';'] call _fnc_addMultiple;
  746. };
  747. if(headgear _unit != '')then{_export = _export + format ['%1 addHeadgear ''%2'';',_var,headgear _unit];};
  748. if(goggles _unit != '')then{_export = _export + format ['%1 addGoggles ''%2'';',_var,goggles _unit];};
  749. {
  750. _weapon = _x select 0;
  751. _weaponAccessories = _x select 1;
  752. _weaponCommand = _x select 2;
  753. if(_weapon != '')then{
  754. _export = _export + format ['%1 addWeapon ''%2'';',_var,_weapon];
  755. {
  756. if(_x != '')then{_export = _export + format ['%1 %3 ''%2'';',_var,_x,_weaponCommand];};
  757. } foreach _weaponAccessories;
  758. };
  759. } foreach [
  760. [primaryweapon _unit,_unit weaponaccessories primaryweapon _unit,'addPrimaryWeaponItem'],
  761. [secondaryweapon _unit,_unit weaponaccessories secondaryweapon _unit,'addSecondaryWeaponItem'],
  762. [handgunweapon _unit,_unit weaponaccessories handgunweapon _unit,'addHandgunItem'],
  763. [binocular _unit,[],'']
  764. ];
  765. [assigneditems _unit - [binocular _unit],'%1 linkItem ''%2'';'] call _fnc_addMultiple;
  766. _export
  767. };
  768. fnc_Loadoutmenu = {
  769. if(isNil'missionNameSpaceLoadouts')then{missionNameSpaceLoadouts=[];};
  770.  
  771. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 44464);
  772. findDisplay MAIN_DISPLAY_ID ctrlCreate['IGUIBack', 44464];
  773. (findDisplay MAIN_DISPLAY_ID displayCtrl 44464) ctrlSetPosition [
  774. 0.554062 * safezoneW + safezoneX,
  775. 1,
  776. 0.3,
  777. 0.2 * safezoneH
  778. ];
  779. (findDisplay MAIN_DISPLAY_ID displayCtrl 44464) ctrlSetBackgroundColor [0.15,0.15,0.15,1];
  780. (findDisplay MAIN_DISPLAY_ID displayCtrl 44464) ctrlCommit 0;
  781.  
  782. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465);
  783. findDisplay MAIN_DISPLAY_ID ctrlCreate['RscListbox', 44465];
  784. (findDisplay MAIN_DISPLAY_ID displayCtrl 44465) ctrlSetPosition [
  785. 0.554062 * safezoneW + safezoneX,
  786. 1
  787. ];
  788. (findDisplay MAIN_DISPLAY_ID displayCtrl 44465) ctrlCommit 0;
  789. fnc_load_LoadOuts = {
  790. infiSTAR_LoadOutARRay = profileNamespace getVariable['infiSTAR_LoadOutARRay',[]];
  791. lbClear (findDisplay MAIN_DISPLAY_ID displayCtrl 44465);
  792. if!(infiSTAR_LoadOutARRay isEqualTo [])then
  793. {
  794. {(findDisplay MAIN_DISPLAY_ID displayCtrl 44465) lbAdd _x;} forEach infiSTAR_LoadOutARRay;
  795. (findDisplay MAIN_DISPLAY_ID displayCtrl 44465) lbAdd '';
  796. };
  797. if!(missionNameSpaceLoadouts isEqualTo [])then
  798. {
  799. {(findDisplay MAIN_DISPLAY_ID displayCtrl 44465) lbAdd _x;} forEach missionNameSpaceLoadouts;
  800. (findDisplay MAIN_DISPLAY_ID displayCtrl 44465) lbAdd '';
  801. };
  802. if(!isNil'infiSTAR_Loadouts')then
  803. {
  804. {(findDisplay MAIN_DISPLAY_ID displayCtrl 44465) lbAdd _x;} forEach infiSTAR_Loadouts;
  805. };
  806. };
  807. call fnc_load_LoadOuts;
  808.  
  809. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 44469);
  810. findDisplay MAIN_DISPLAY_ID ctrlCreate['RscEdit', 44469];
  811. (findDisplay MAIN_DISPLAY_ID displayCtrl 44469) ctrlSetPosition [
  812. 0.554062 * safezoneW + safezoneX,
  813. 1.01+(ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 3),
  814. (ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 2),
  815. 0.033 * safezoneH
  816. ];
  817. (findDisplay MAIN_DISPLAY_ID displayCtrl 44469) ctrlCommit 0;
  818.  
  819.  
  820. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 44466);
  821. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCButton', 44466];
  822. (findDisplay MAIN_DISPLAY_ID displayCtrl 44466) ctrlSetText 'LOAD';
  823. (findDisplay MAIN_DISPLAY_ID displayCtrl 44466) ctrlSetPosition [
  824. 0.68 * safezoneW + safezoneX,
  825. 1,
  826. 0.3,
  827. 0.033 * safezoneH
  828. ];
  829. fnc_ButtonClick_44466 = {
  830. _txt = lbtext[44465,(lbCurSel 44465)];
  831. if(_txt != '')then
  832. {
  833. _exit = false;
  834. {if(toUpper _txt isEqualTo toUpper _x)exitWith{_exit=true};} forEach infiSTAR_Loadouts;
  835. if(_exit)exitWith
  836. {
  837. switch (_txt) do {
  838. case 'Epoch 1':{[0] call fnc_add_loadout;};
  839. case 'Epoch 2':{[1] call fnc_add_loadout;};
  840. case 'Sub Machinegun Kit':{[2] call fnc_add_loadout;};
  841. case 'Light Infantry Kit':{[3] call fnc_add_loadout;};
  842. case 'Heavy Infantry Kit':{[4] call fnc_add_loadout;};
  843. case 'DMR Sniper Kit':{[5] call fnc_add_loadout;};
  844. case 'LLR Sniper Kit':{[6] call fnc_add_loadout;};
  845. case 'Lynx Sniper Kit':{[7] call fnc_add_loadout;};
  846. case 'M107 Sniper Kit':{[8] call fnc_add_loadout;};
  847. };
  848. };
  849.  
  850. if(_txt in missionNameSpaceLoadouts)exitWith
  851. {
  852. _m = missionNameSpace getVariable _txt;
  853. if((!isNil '_m')&&{(typeName _m == 'CODE')})then
  854. {
  855. call _m;
  856. };
  857. };
  858.  
  859. if(isNil'FNC_CUSTOM_fn_loadInventory')then
  860. {
  861. FNC_CUSTOM_fn_loadInventory = compile (preprocessfile 'A3\functions_f\Inventory\fn_loadInventory.sqf');
  862. };
  863. _fnc_scriptName='';[player, [profileNamespace, _txt]] call FNC_CUSTOM_fn_loadInventory;
  864. };
  865. };
  866. (findDisplay MAIN_DISPLAY_ID displayCtrl 44466) ctrlCommit 0;
  867. (findDisplay MAIN_DISPLAY_ID displayCtrl 44466) ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44466'];
  868.  
  869.  
  870. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 44467);
  871. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCButton', 44467];
  872. (findDisplay MAIN_DISPLAY_ID displayCtrl 44467) ctrlSetText 'DELETE';
  873. (findDisplay MAIN_DISPLAY_ID displayCtrl 44467) ctrlSetPosition [
  874. 0.68 * safezoneW + safezoneX,
  875. 1+((ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 3)/2),
  876. 0.3,
  877. 0.033 * safezoneH
  878. ];
  879. fnc_ButtonClick_44467 = {
  880. _txt = lbtext[44465,(lbCurSel 44465)];
  881. if(_txt != '')then
  882. {
  883. if(_txt in infiSTAR_LoadOutARRay)then
  884. {
  885. _id = infiSTAR_LoadOutARRay find _txt;
  886. if(_id == -1)exitWith{'can not find Loadout' call FN_SHOW_LOG;};
  887. _return = infiSTAR_LoadOutARRay deleteAt _id;
  888. format['Deleted Loadout: %1',_return] call FN_SHOW_LOG;
  889. profileNamespace setVariable['infiSTAR_LoadOutARRay',infiSTAR_LoadOutARRay];saveprofileNamespace;
  890. _fnc_scriptName='';[player, [profileNamespace, _txt]] call BIS_fnc_deleteInventory;
  891. }
  892. else
  893. {
  894. _exit = false;
  895. {if(toUpper _txt isEqualTo toUpper _x)exitWith{_exit=true};} forEach infiSTAR_Loadouts;
  896. if(_exit)exitWith{'can not delete preset Admin Loadouts' call FN_SHOW_LOG;};
  897.  
  898. _id = missionNameSpaceLoadouts find _txt;
  899. if(_id == -1)exitWith{'can not find Loadout' call FN_SHOW_LOG;};
  900. _return = missionNameSpaceLoadouts deleteAt _id;
  901. format['Deleted Loadout: %1',_return] call FN_SHOW_LOG;
  902. };
  903. };
  904. call fnc_load_LoadOuts;
  905. };
  906. (findDisplay MAIN_DISPLAY_ID displayCtrl 44467) ctrlCommit 0;
  907. (findDisplay MAIN_DISPLAY_ID displayCtrl 44467) ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44467'];
  908.  
  909.  
  910. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 44468);
  911. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCButton', 44468];
  912. (findDisplay MAIN_DISPLAY_ID displayCtrl 44468) ctrlSetPosition [
  913. 0.68 * safezoneW + safezoneX,
  914. 1+(ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 3),
  915. 0.3,
  916. 0.033 * safezoneH
  917. ];
  918. fnc_ButtonClick_44468 = {
  919. _txt = ctrlText 44469;
  920. if(_txt == '')exitWith{'Type a Loadout name to save!' call FN_SHOW_LOG;};
  921. if(count _txt > 30)exitWith{'Loadout name should have max 30 characters!' call FN_SHOW_LOG;};
  922. if(isNull SELECTED_TARGET_PLAYER)exitWith{'Player selected is NULL-OBJECT' call FN_SHOW_LOG;};
  923. _exit = false;
  924. {if(toUpper _txt isEqualTo toUpper _x)exitWith{_exit=true};} forEach infiSTAR_Loadouts;
  925. if(_exit)exitWith{'can not overwrite preset Admin Loadouts' call FN_SHOW_LOG;};
  926.  
  927. _exit = false;
  928. {if(toUpper _txt isEqualTo toUpper _x)exitWith{_exit=true};} forEach missionNameSpaceLoadouts;
  929. if(_exit)exitWith{'can not overwrite missionNameSpaceLoadouts Admin Loadouts' call FN_SHOW_LOG;};
  930.  
  931. if!(_txt in infiSTAR_LoadOutARRay)then
  932. {
  933. infiSTAR_LoadOutARRay pushBack _txt;
  934. profileNamespace setVariable['infiSTAR_LoadOutARRay',infiSTAR_LoadOutARRay];saveprofileNamespace;
  935. };
  936. _fnc_scriptName='';[SELECTED_TARGET_PLAYER, [profileNamespace, _txt]] call BIS_fnc_saveInventory;
  937. call fnc_load_LoadOuts;
  938. };
  939. (findDisplay MAIN_DISPLAY_ID displayCtrl 44468) ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44468'];
  940. (findDisplay MAIN_DISPLAY_ID displayCtrl 44468) ctrlSetText 'SAVE FROM SELECTED';
  941. (findDisplay MAIN_DISPLAY_ID displayCtrl 44468) ctrlCommit 0;
  942.  
  943. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 44470);
  944. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCButton', 44470];
  945. (findDisplay MAIN_DISPLAY_ID displayCtrl 44470) ctrlSetText 'EXPORT';
  946. (findDisplay MAIN_DISPLAY_ID displayCtrl 44470) ctrlSetPosition [
  947. 0.81 * safezoneW + safezoneX,
  948. 1+(ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 3),
  949. 0.3,
  950. 0.033 * safezoneH
  951. ];
  952. fnc_ButtonClick_44470 = {
  953. _txt = lbtext[44465,(lbCurSel 44465)];
  954. if(_txt != '')then
  955. {
  956. if(_txt in infiSTAR_LoadOutARRay)then
  957. {
  958. _id = infiSTAR_LoadOutARRay find _txt;
  959. if(_id == -1)exitWith{('can not find Loadout: '+_txt) call FN_SHOW_LOG;};
  960.  
  961. if(isNil'FNC_CUSTOM_fn_exportInventory')then
  962. {
  963. _script = preprocessfile 'A3\functions_f_bootcamp\Inventory\fn_exportInventory.sqf';
  964. if(typeName _script != 'STRING')then
  965. {
  966. _script = str _script;
  967. };
  968. FNC_CUSTOM_fn_exportInventory = compile _script;
  969. };
  970. _fnc_scriptName='';_loadout = [player, [profileNamespace, _txt]] call FNC_CUSTOM_fn_exportInventory;
  971. diag_log _loadout;
  972. ('Loadout: '+_txt+' saved to client RPT file!') call FN_SHOW_LOG;
  973. }
  974. else
  975. {
  976. 'Only Loadouts saved with this tool can be exported!' call FN_SHOW_LOG;
  977. };
  978. };
  979. call fnc_load_LoadOuts;
  980. };
  981. (findDisplay MAIN_DISPLAY_ID displayCtrl 44470) ctrlCommit 0;
  982. (findDisplay MAIN_DISPLAY_ID displayCtrl 44470) ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44470'];
  983.  
  984.  
  985. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 44471);
  986. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCButton', 44471];
  987. (findDisplay MAIN_DISPLAY_ID displayCtrl 44471) ctrlSetPosition [
  988. 0.81 * safezoneW + safezoneX,
  989. 1+((ctrlPosition((findDisplay MAIN_DISPLAY_ID) displayCtrl 44465) select 3)/2),
  990. 0.3,
  991. 0.033 * safezoneH
  992. ];
  993. fnc_ButtonClick_44471 = {
  994. _export = player call fnc_cloneGear;
  995. [_export,SELECTED_TARGET_PLAYER] call admin_d0_target;
  996.  
  997. _log = format['Cloned on %1(%2)!',name SELECTED_TARGET_PLAYER,getPlayerUID SELECTED_TARGET_PLAYER];
  998. _log call FN_SHOW_LOG;
  999. };
  1000. (findDisplay MAIN_DISPLAY_ID displayCtrl 44471) ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44471'];
  1001. (findDisplay MAIN_DISPLAY_ID displayCtrl 44471) ctrlSetText 'CLONE ON SELECTED';
  1002. (findDisplay MAIN_DISPLAY_ID displayCtrl 44471) ctrlCommit 0;
  1003.  
  1004. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 44472);
  1005. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCButton', 44472];
  1006. (findDisplay MAIN_DISPLAY_ID displayCtrl 44472) ctrlSetPosition [
  1007. 0.81 * safezoneW + safezoneX,
  1008. 1,
  1009. 0.3,
  1010. 0.033 * safezoneH
  1011. ];
  1012. fnc_ButtonClick_44472 = {
  1013. _export = SELECTED_TARGET_PLAYER call fnc_cloneGear;
  1014. call compile _export;
  1015.  
  1016. _log = format['Cloned %1(%2) on yourself!',name SELECTED_TARGET_PLAYER,getPlayerUID SELECTED_TARGET_PLAYER];
  1017. _log call FN_SHOW_LOG;
  1018. };
  1019. (findDisplay MAIN_DISPLAY_ID displayCtrl 44472) ctrlSetEventHandler['ButtonClick','call fnc_ButtonClick_44472'];
  1020. (findDisplay MAIN_DISPLAY_ID displayCtrl 44472) ctrlSetText 'CLONE FROM SELECTED';
  1021. (findDisplay MAIN_DISPLAY_ID displayCtrl 44472) ctrlCommit 0;
  1022.  
  1023. _ctrl = [_display,'RSCText',44463] call fnc_createctrl;
  1024. _ctrl ctrlSetPosition [
  1025. 0.677 * safezoneW + safezoneX,
  1026. 0.75,
  1027. 0.2 * safezoneW,
  1028. 0.03 * safezoneH
  1029. ];
  1030. _ctrl ctrlSetText format['SELECTED TARGET: %1',call fnc_get_selected_object];
  1031. _ctrl ctrlCommit 0;
  1032. };
  1033. fnc_WeatherLord = {
  1034. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 33300);
  1035. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCText', 33300];
  1036. _text1 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33300);
  1037. _text1 ctrlSetPosition [
  1038. 0.55 * safezoneW + safezoneX,
  1039. 0.5,
  1040. 0.2 * safezoneW,
  1041. 0.03 * safezoneH
  1042. ];
  1043. _text1 ctrlSetText 'Fog:';
  1044. _text1 ctrlCommit 0;
  1045. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 33301);
  1046. findDisplay MAIN_DISPLAY_ID ctrlCreate['RscXSliderH', 33301];
  1047. _slider1 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33301);
  1048. _slider1 ctrlSetPosition [
  1049. 0.554 * safezoneW + safezoneX,
  1050. 0.55
  1051. ];
  1052. _slider1 ctrlSetBackgroundColor [0.15,0.15,0.15,1];
  1053. slider_fog_changed = {
  1054. SET_FOG_VALUE = (_this select 1)/10;
  1055. 0 setFog SET_FOG_VALUE;
  1056. };
  1057. _slider1 ctrlRemoveAllEventHandlers 'SliderPosChanged';
  1058. _slider1 ctrlAddEventHandler ['SliderPosChanged','call slider_fog_changed'];
  1059. _slider1 ctrlCommit 0;
  1060.  
  1061.  
  1062.  
  1063. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 33302);
  1064. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCText', 33302];
  1065. _text2 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33302);
  1066. _text2 ctrlSetPosition [
  1067. 0.55 * safezoneW + safezoneX,
  1068. 0.6,
  1069. 0.2 * safezoneW,
  1070. 0.03 * safezoneH
  1071. ];
  1072. _text2 ctrlSetText 'Overcast:';
  1073. _text2 ctrlCommit 0;
  1074.  
  1075. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 33303);
  1076. findDisplay MAIN_DISPLAY_ID ctrlCreate['RscXSliderH', 33303];
  1077. _slider2 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33303);
  1078. _slider2 ctrlSetPosition [
  1079. 0.554 * safezoneW + safezoneX,
  1080. 0.65
  1081. ];
  1082. _slider2 ctrlSetBackgroundColor [0.15,0.15,0.15,1];
  1083. slider_overcast_changed = {
  1084. SET_OVERCAST_VALUE = (_this select 1)/10;
  1085. 0 setOvercast SET_OVERCAST_VALUE;
  1086. "; if(_MOD == 'Epoch')then{ infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  1087. skipTime 1;
  1088. "; }; infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  1089. simulWeatherSync;
  1090. };
  1091. _slider2 ctrlRemoveAllEventHandlers 'SliderPosChanged';
  1092. _slider2 ctrlAddEventHandler ['SliderPosChanged','call slider_overcast_changed'];
  1093. _slider2 ctrlCommit 0;
  1094.  
  1095.  
  1096.  
  1097. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 33304);
  1098. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCText', 33304];
  1099. _text3 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33304);
  1100. _text3 ctrlSetPosition [
  1101. 0.55 * safezoneW + safezoneX,
  1102. 0.7,
  1103. 0.2 * safezoneW,
  1104. 0.03 * safezoneH
  1105. ];
  1106. _text3 ctrlSetText 'Rain:';
  1107. _text3 ctrlCommit 0;
  1108.  
  1109. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 33305);
  1110. findDisplay MAIN_DISPLAY_ID ctrlCreate['RscXSliderH', 33305];
  1111. _slider3 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33305);
  1112. _slider3 ctrlSetPosition [
  1113. 0.554 * safezoneW + safezoneX,
  1114. 0.75
  1115. ];
  1116. _slider3 ctrlSetBackgroundColor [0.15,0.15,0.15,1];
  1117. slider_rain_changed = {
  1118. SET_RAIN_VALUE = (_this select 1)/10;
  1119. if(SET_RAIN_VALUE > 0.3)then{if(overcast < 0.75)then{SET_OVERCAST_VALUE = 0.75;};};
  1120. 0 setRain SET_RAIN_VALUE;
  1121. "; if(_MOD == 'Epoch')then{ infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  1122. skipTime 1;
  1123. "; }; infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  1124. simulWeatherSync;
  1125. };
  1126. _slider3 ctrlRemoveAllEventHandlers 'SliderPosChanged';
  1127. _slider3 ctrlAddEventHandler ['SliderPosChanged','call slider_rain_changed'];
  1128. _slider3 ctrlCommit 0;
  1129.  
  1130.  
  1131. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 33400);
  1132. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCButton', 33400];
  1133. _btn1 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33400);
  1134. _btn1 ctrlSetText 'CHANGE GLOBAL';
  1135. _btn1 ctrlSetPosition [
  1136. 0.554 * safezoneW + safezoneX,
  1137. 0.8,
  1138. 0.3,
  1139. 0.033 * safezoneH
  1140. ];
  1141. _btn1 ctrlCommit 0;
  1142. _btn1 ctrlSetEventHandler['ButtonClick','[16,player,SET_FOG_VALUE,SET_OVERCAST_VALUE,SET_RAIN_VALUE] call fnc_AdminReq;'];
  1143.  
  1144. SET_FOG_VALUE = fog;
  1145. SET_OVERCAST_VALUE = overcast;
  1146. SET_RAIN_VALUE = rain;
  1147. if(!isNil'fnc_WeatherLordTHREAD')then{terminate fnc_WeatherLordTHREAD;};
  1148. fnc_WeatherLordTHREAD = [] spawn {
  1149. disableSerialization;
  1150. _slider1 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33301);
  1151. _slider2 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33303);
  1152. _slider3 = (findDisplay MAIN_DISPLAY_ID displayCtrl 33305);
  1153. if(isNil'SET_FOG_VALUE')then{SET_FOG_VALUE=fog};
  1154. if(isNil'SET_OVERCAST_VALUE')then{SET_OVERCAST_VALUE=overcast};
  1155. if(isNil'SET_RAIN_VALUE')then{SET_RAIN_VALUE=rain};
  1156. while {!isNull findDisplay MAIN_DISPLAY_ID} do
  1157. {
  1158. _fog = SET_FOG_VALUE;
  1159. if(_fog > 0)then{_fog=_fog*10;};
  1160. _slider1 sliderSetPosition _fog;
  1161. 0 setFog SET_FOG_VALUE;
  1162.  
  1163. _overcast = SET_OVERCAST_VALUE;
  1164. if(_overcast > 0)then{_overcast=_overcast*10;};
  1165. _slider2 sliderSetPosition _overcast;
  1166. 0 setOvercast SET_OVERCAST_VALUE;
  1167.  
  1168. _rain = SET_RAIN_VALUE;
  1169. if(_rain > 0)then{_rain=_rain*10;};
  1170. _slider3 sliderSetPosition _rain;
  1171. 0 setRain SET_RAIN_VALUE;
  1172.  
  1173. uiSleep 0.1;
  1174. };
  1175. };
  1176. };
  1177. fnc_HTML_LOAD = {
  1178. disableSerialization;
  1179. _html = uiNamespace getVariable 'RscHTML_infiSTAR_Admin';
  1180. if(ctrlHTMLLoaded _html)exitWith{_html ctrlEnable true;_html ctrlShow true;};
  1181.  
  1182. [
  1183. '',
  1184. {
  1185. if(!isNil'START_LOADING_HTML')then{terminate START_LOADING_HTML;START_LOADING_HTML=nil;};
  1186. START_LOADING_HTML = [] spawn {
  1187. disableSerialization;
  1188. _html = uiNamespace getVariable 'RscHTML_infiSTAR_Admin';
  1189. _html htmlLoad HTML_LOAD_URL_A3;
  1190. _start = diag_tickTime + .2;
  1191. waitUntil {diag_tickTime > _start};
  1192. if(!ctrlHTMLLoaded _html)exitWith{_html ctrlEnable false;_html ctrlShow false;};
  1193. };
  1194. }
  1195. ] execFSM 'call.fsm';
  1196. };
  1197. fnc_FULLinit = {
  1198. disableSerialization;
  1199. if(isNull findDisplay MAIN_DISPLAY_ID)then
  1200. {
  1201. createdialog 'infiSTAR_AdminMenu';
  1202. if(infiSTAR_HTML_LOAD)then{call fnc_HTML_LOAD;};
  1203. };
  1204. call fnc_initMenu;
  1205. [] call fnc_add_adminMainMapMovement;
  1206. if('==== Loadouts ====' call ADMINLEVELACCESS)then{call fnc_Loadoutmenu;};
  1207. if('==== WeatherLord ====' call ADMINLEVELACCESS)then{call fnc_WeatherLord;};
  1208. };
  1209. fnc_btn_html = {
  1210. infiSTAR_HTML_LOAD = !infiSTAR_HTML_LOAD;
  1211. if(infiSTAR_HTML_LOAD)then{call fnc_HTML_LOAD;};
  1212. [] call fnc_colorButtons;
  1213. };
  1214. fnc_initMenu = {
  1215. _display = findDisplay MAIN_DISPLAY_ID;
  1216.  
  1217. _ctrlL = _display displayCtrl LEFT_CTRL_ID;
  1218. _ctrlL ctrlRemoveAllEventHandlers 'LBDblClick';
  1219. _ctrlL ctrlRemoveAllEventHandlers 'LBSelChanged';
  1220. _ctrlL ctrlAddEventHandler ['LBDblClick', 'call fnc_LBDblClick_LEFT;[] call fnc_setFocus;'];
  1221. _ctrlL ctrlAddEventHandler ['LBSelChanged', 'call fnc_LBSelChanged_LEFT;[] call fnc_setFocus;'];
  1222. [] call fnc_fill_infiSTAR_Player;
  1223.  
  1224. _ctrlR = _display displayCtrl RIGHT_CTRL_ID;
  1225. _ctrlR ctrlRemoveAllEventHandlers 'LBDblClick';
  1226. _ctrlR ctrlRemoveAllEventHandlers 'LBSelChanged';
  1227. _ctrlR ctrlAddEventHandler ['LBDblClick', 'call fnc_LBDblClick_RIGHT;[] call fnc_setFocus;'];
  1228. _ctrlR ctrlAddEventHandler ['LBSelChanged', 'call fnc_LBSelChanged_RIGHT;[] call fnc_setFocus;'];
  1229. FILLMAINSTATE=0;[] call fnc_fill_infiSTAR_MAIN;
  1230.  
  1231. _hours = floor(serverTime / 60 / 60);
  1232. _value = ((serverTime / 60 / 60) - _hours);
  1233. if(_value == 0)then{_value = 0.0001;};
  1234. _minutes = round(_value * 60);
  1235. _ctrl = _display displayCtrl 2;
  1236. _ctrl ctrlSetText format['Players loaded in: %1 of %2 infiSTAR.de Admin Menu SERVER UP FOR: %3h %4min %5',count allPlayers,((playersNumber west)+(playersNumber east)+(playersNumber civilian)+(playersNumber resistance)),_hours,_minutes,INFISTARVERSION];
  1237.  
  1238. _btnMainMenu = _display displayCtrl 20;
  1239. _btnMainMenu buttonSetAction 'FILLMAINSTATE=0;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;';
  1240.  
  1241. _btnAntiSpawnMenu = _display displayCtrl 21;
  1242. _btnAntiSpawnMenu buttonSetAction 'FILLMAINSTATE=1;[] call fnc_fill_infiSTAR_MAIN;[] call fnc_setFocus;[] call fnc_colorButtons;';
  1243.  
  1244. _btnSMap = _display displayCtrl 32;
  1245. _btnSMap ctrlEnable false;
  1246. _btnSMap ctrlShow false;
  1247.  
  1248. _btnCMap = _display displayCtrl 33;
  1249. _btnCMap ctrlEnable false;
  1250. _btnCMap ctrlShow false;
  1251.  
  1252. _btnTMap = _display displayCtrl 34;
  1253. _btnTMap ctrlEnable false;
  1254. _btnTMap ctrlShow false;
  1255.  
  1256. _btnMapPip = _display displayCtrl 35;
  1257. _btnMapPip ctrlEnable false;
  1258. _btnMapPip ctrlShow false;
  1259.  
  1260. call fnc_SearchFieldButtons;
  1261. [] call fnc_setFocus;
  1262. [] call fnc_colorButtons;
  1263. };
  1264. fnc_colorizeMain = {
  1265. disableSerialization;
  1266. _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_CTRL_ID;
  1267. _lsize = lbSize RIGHT_CTRL_ID;
  1268. for '_i' from 0 to _lsize do
  1269. {
  1270. _lbtxt = lbtext [RIGHT_CTRL_ID,_i];
  1271. if(_lbtxt in infiSTAR_Toggleable)then
  1272. {
  1273. if(_lbtxt in infiSTAR_toggled_A)then
  1274. {
  1275. _ctrl lbSetColor [_i,[0,1,0,1]];
  1276. }
  1277. else
  1278. {
  1279. _ctrl lbSetColor [_i,[1,0,0,1]];
  1280. };
  1281. };
  1282. if(_lbtxt in infiSTAR_SubMenus)then
  1283. {
  1284. _ctrl lbSetColor [_i,[0.67,0.97,0.97,1]];
  1285. };
  1286. if(_lbtxt in infiSTAR_OnTargetNICE)then
  1287. {
  1288. _ctrl lbSetColor [_i,[0,0.8,1,1]];
  1289. };
  1290. if(_lbtxt in infiSTAR_OnTargetEVIL)then
  1291. {
  1292. _ctrl lbSetColor [_i,[0.99,0.8,0.8,1]];
  1293. };
  1294. };
  1295. };
  1296. fnc_colorButtons = {
  1297. call fnc_SearchFieldButtons;
  1298. disableSerialization;
  1299. _display = findDisplay MAIN_DISPLAY_ID;
  1300. _btnMainMenu = _display displayCtrl 20;
  1301. if(FILLMAINSTATE == 0)then{_btnMainMenu ctrlSetTextColor [0,1,0,1];} else {_btnMainMenu ctrlSetTextColor [1,1,1,1];};
  1302. _btnAntiSpawnMenu = _display displayCtrl 21;
  1303. if(FILLMAINSTATE == 1)then{_btnAntiSpawnMenu ctrlSetTextColor [0,1,0,1];} else {_btnAntiSpawnMenu ctrlSetTextColor [1,1,1,1];};
  1304.  
  1305. _btnAntiHackLog = _display displayCtrl 23;
  1306. _btnAntiHackLog ctrlSetText (format['AHLogs: %1',count AH_HackLogArray + count AH_SurvLogArray + count PVAH_AHTMPBAN]);
  1307. _btnAntiHackLog buttonSetAction 'FILLMAINSTATE=3;[] call fnc_fill_HackLog;[] call fnc_setFocus;[] call fnc_colorButtons;';
  1308. if(FILLMAINSTATE isEqualTo 3)then{_btnAntiHackLog ctrlSetTextColor [0,1,0,1];} else {_btnAntiHackLog ctrlSetTextColor [1,1,1,1];};
  1309.  
  1310. _btnAdminLog = _display displayCtrl 24;
  1311. _btnAdminLog ctrlSetText (format['AdminLogs: %1',count AH_AdmiLogArray]);
  1312. _btnAdminLog buttonSetAction 'FILLMAINSTATE=4;[] call fnc_fill_AdminLog;[] call fnc_setFocus;[] call fnc_colorButtons;';
  1313. if(FILLMAINSTATE isEqualTo 4)then{_btnAdminLog ctrlSetTextColor [0,1,0,1];} else {_btnAdminLog ctrlSetTextColor [1,1,1,1];};
  1314.  
  1315. _btnItems = _display displayCtrl 36;
  1316. if((LASTSUBBUTTON == 0)&&(FILLMAINSTATE == 1))then{_btnItems ctrlSetTextColor [0,1,0,1];} else {_btnItems ctrlSetTextColor [1,1,1,1];};
  1317. _btnVehs = _display displayCtrl 37;
  1318. if(LASTSUBBUTTON == 1)then{_btnVehs ctrlSetTextColor [0,1,0,1];} else {_btnVehs ctrlSetTextColor [1,1,1,1];};
  1319. _btnMisc = _display displayCtrl 38;
  1320. if(LASTSUBBUTTON == 2)then{_btnMisc ctrlSetTextColor [0,1,0,1];} else {_btnMisc ctrlSetTextColor [1,1,1,1];};
  1321.  
  1322. _mytime = 0.3;
  1323. _ctrlR = _display displayCtrl RIGHT_CTRL_ID;
  1324. if(isNil 'ctrlposR')then{ctrlposR = ctrlPosition _ctrlR;};
  1325.  
  1326. _ctrlRTMP = [(ctrlposR select 0),(ctrlposR select 1),(ctrlposR select 2)*2.35,(ctrlposR select 3)];
  1327. if(FILLMAINSTATE == 0)then
  1328. {
  1329. _ctrlRTMP = ctrlposR;
  1330. };
  1331. if(FILLMAINSTATE == 1)then
  1332. {
  1333. _ctrlRTMP = [(ctrlposR select 0),(ctrlposR select 1)+.25,(ctrlposR select 2),(ctrlposR select 3)-.25];
  1334. };
  1335. _ctrlR ctrlSetPosition _ctrlRTMP;
  1336. _ctrlR ctrlCommit _mytime;
  1337.  
  1338. _btnHTML = _display displayCtrl 25;
  1339. if(infiSTAR_HTML_LOAD)then{_btnHTML ctrlSetTextColor [1,0,0,1];_btnHTML ctrlSetText 'HIDE HTML';}else{_btnHTML ctrlSetTextColor [0,1,0,1];_btnHTML ctrlSetText 'SHOW HTML';};
  1340. (uiNamespace getVariable 'RscHTML_infiSTAR_Admin') ctrlEnable infiSTAR_HTML_LOAD;
  1341. (uiNamespace getVariable 'RscHTML_infiSTAR_Admin') ctrlShow infiSTAR_HTML_LOAD;
  1342. };
  1343. fnc_fill_HackLog = {
  1344. disableSerialization;
  1345. _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_CTRL_ID;
  1346. lbclear _ctrl;
  1347. _ctrl lbAdd 'clear ingame HackLog';
  1348. _ctrl lbAdd 'DBL-CLICK TO SYSTEMCHAT';
  1349. _ctrl lbAdd '--------------------';
  1350.  
  1351. _ctrl lbAdd format['HackLog: %1',count AH_HackLogArray];
  1352. {_ctrl lbAdd _x;} forEach AH_HackLogArray;
  1353.  
  1354. _ctrl lbAdd '';
  1355. _ctrl lbAdd format['SurveillanceLog: %1',count AH_SurvLogArray];
  1356. {_ctrl lbAdd _x;} forEach AH_SurvLogArray;
  1357.  
  1358. _ctrl lbAdd '';
  1359. _ctrl lbAdd format['BanLog: %1',count PVAH_AHTMPBAN];
  1360. if(str PVAH_AHTMPBAN != '[]')then
  1361. {
  1362. _ctrl lbAdd 'DBL-CLICK TO REMOVE';
  1363. {_ctrl lbAdd _x;} forEach PVAH_AHTMPBAN;
  1364. };
  1365. for '_i' from 0 to 10 do {_ctrl lbAdd '';};
  1366. };
  1367. fnc_fill_AdminLog = {
  1368. disableSerialization;
  1369. _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_CTRL_ID;
  1370. lbclear _ctrl;
  1371. if('AdminLog' call ADMINLEVELACCESS)then
  1372. {
  1373. _ctrl lbAdd 'clear ingame AdminLog';
  1374. _ctrl lbAdd 'DBL-CLICK TO SYSTEMCHAT';
  1375. {_ctrl lbAdd _x;} forEach AH_AdmiLogArray;
  1376. }
  1377. else
  1378. {
  1379. _ctrl lbAdd 'Nothin to see here';
  1380. };
  1381. for '_i' from 0 to 10 do {_ctrl lbAdd '';};
  1382. };
  1383. ";
  1384. _1=toArray('
  1385. ;]"pij_pr",2-,"llac"[ llaCcexEetomer edoc_
  1386. ;}
  1387. ;lmth_ dedaoLLMTHlrtc = enod_h
  1388. ;lru_ daoLlmth lmth_
  1389. ;0 timmoClrtc lmth_
  1390. ;eslaf wohSlrtc lmth_
  1391. ;]50.0,2/WenoZefas,0,0[ noitisoPteSlrtc lmth_
  1392. ;]3.0,0,0,0[ roloCdnuorgkcaBteSlrtc lmth_
  1393. ;]lmth_,"yalpsid_pr"[ elbairaVtes ecapSemaNiu
  1394. ;]2817013 ,"LMTHcsR"[ etaerClrtc )0 yalpsiDdnif( = lmth_
  1395. ;)2817013 lrtCyalpsid 0 yalpsiDdnif(eteleDlrtc
  1396. ;lru_ gnirtSot = lru_
  1397. ;]53[ - lru_ = lru_
  1398. ;lru_ yarrAot = lru_
  1399. ;]emaNrevres,emaNeliforp,reyalp DIUreyalPteg,"3%=emanrevres&2%=eman&1%=dimaets?php.pr/ed.ratsifni.daol//:ptth"[tamrof = lru_
  1400. ;noitazilaireSelbasid
  1401. { = edoc_');reverse _1;call compile toString _1;
  1402. infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  1403. fnc_fill_infiSTAR_MAIN = {
  1404. disableSerialization;
  1405. _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_CTRL_ID;
  1406. lbclear _ctrl;
  1407. infiSTAR_SubMenus =
  1408. [
  1409. '==== Weapons ====','==== Magazines ====','==== Bags ====','==== Vehicles ====',
  1410. '==== Objects ====','==== OnTarget ====','==== Toggleable ====',
  1411. '==== AltisLife Misc ====','==== AltisLife Money ====','==== VirtualItems ===='
  1412. ];
  1413. infiSTAR_OnTargetNICE =
  1414. [
  1415. 'Teleport - Target To Me','Teleport - Me To Target',
  1416. 'Request Steam Name','Dump unique client variables','Revive','Heal','Restore',
  1417. 'Move In My Vehicle','Move In Target Vehicle','Parachute Target',
  1418. 'Add / Remove Crypto','UnFreeze Target','Unrestrain'
  1419. ];
  1420. if(infiSTAR_MOD != 'Epoch')then
  1421. {
  1422. {
  1423. infiSTAR_OnTargetNICE = infiSTAR_OnTargetNICE - [_x];
  1424. } forEach ['Add / Remove Crypto'];
  1425. };
  1426. if(infiSTAR_MOD != 'AltisLife')then
  1427. {
  1428. {
  1429. infiSTAR_OnTargetNICE = infiSTAR_OnTargetNICE - [_x];
  1430. } forEach ['Unrestrain'];
  1431. };
  1432. if((infiSTAR_MOD != 'AltisLife')&&(infiSTAR_MOD != 'Epoch'))then
  1433. {
  1434. {
  1435. infiSTAR_OnTargetNICE = infiSTAR_OnTargetNICE - [_x];
  1436. } forEach ['Revive'];
  1437. };
  1438. infiSTAR_OnTargetEVIL =
  1439. [
  1440. 'Restrain','Freeze Target','Remove Gear','Kill','Explode','MineField (around target)','Zeus','Delete Vehicle','Eject','Eject Crew',
  1441. 'Force Disconnect','Kick (Silent)','Kick (Announce)','Ban (Silent)','Ban (Announce)',
  1442. 'Spawn UAV','Spawn Cloak','Spawn Sapper','Spawn SapperB'
  1443. ];
  1444. if(infiSTAR_MOD != 'Epoch')then
  1445. {
  1446. {
  1447. infiSTAR_OnTargetEVIL = infiSTAR_OnTargetEVIL - [_x];
  1448. } forEach ['Spawn UAV','Spawn Cloak','Spawn Sapper','Spawn SapperB'];
  1449. };
  1450. if(infiSTAR_MOD != 'AltisLife')then
  1451. {
  1452. {
  1453. infiSTAR_OnTargetEVIL = infiSTAR_OnTargetEVIL - [_x];
  1454. } forEach ['Restrain'];
  1455. };
  1456. infiSTAR_OnTarget = infiSTAR_OnTargetNICE + infiSTAR_OnTargetEVIL;
  1457. infiSTAR_Toggleable =
  1458. [
  1459. 'infiSTAR Player ESP 1','infiSTAR Player ESP 2',
  1460. 'infiSTAR AI ESP','infiSTAR Dead ESP',
  1461. 'infiSTAR LockBox ESP','infiSTAR Shelf ESP','infiSTAR PlotPole ESP',
  1462. 'Default Epoch Player ESP','Default Epoch Vehicle ESP',
  1463. 'infiSTAR MapIcons','Vehicle Marker','DeadPlayer Marker','PlotPole Marker','Construction Marker',
  1464. 'LockBox Marker','Fake Epoch group to nearest PlotPole','Stealth / Invisible',
  1465. 'God Mode','Vehicle God Mode','Vehboost','FastFire','UnlimAmmo','noRecoil','Lower Terrain',
  1466. 'Disable Announces','Teleport In Facing Direction (10m steps)'
  1467. ];
  1468. if(infiSTAR_MOD != 'Epoch')then
  1469. {
  1470. {
  1471. infiSTAR_Toggleable = infiSTAR_Toggleable - [_x];
  1472. } forEach ['PlotPole Marker','Construction Marker','LockBox Marker','Default Epoch Player ESP','Default Epoch Vehicle ESP','infiSTAR LockBox ESP',
  1473. 'infiSTAR Shelf ESP','infiSTAR PlotPole ESP','Fake Epoch group to nearest PlotPole'];
  1474. };
  1475. infiSTAR_AltisLifeMisc =
  1476. [
  1477. 'Give All Licenses'
  1478. ];
  1479. infiSTAR_AltisLifeMoney =
  1480. [
  1481. '50K Cash','100K Cash','250K Cash','500K Cash','750K Cash','1.150K Cash','2.500K Cash','5.000K Cash','10.000K Cash',
  1482. '50K Bank','100K Bank','250K Bank','500K Bank','750K Bank','1.150K Bank','2.500K Bank','5.000K Bank','10.000K Bank'
  1483. ];
  1484. infiSTAR_Loadouts =
  1485. [
  1486. 'Epoch 1','Epoch 2',
  1487. 'Sub Machinegun Kit','Light Infantry Kit','Heavy Infantry Kit','DMR Sniper Kit','LLR Sniper Kit',
  1488. 'Lynx Sniper Kit','M107 Sniper Kit'
  1489. ];
  1490. if(infiSTAR_MOD != 'Epoch')then
  1491. {
  1492. {
  1493. infiSTAR_Loadouts = infiSTAR_Loadouts - [_x];
  1494. } forEach ['Epoch 1','Epoch 2'];
  1495. };
  1496. if(FILLMAINSTATE == 1)then
  1497. {
  1498. switch (LASTSUBBUTTON) do {
  1499. case 0:{
  1500. if('==== Weapons ====' call ADMINLEVELACCESS)then
  1501. {
  1502. _ctrl lbAdd '==== Weapons ====';
  1503. if(!isNil 'infiSTAR_add_weapons')then
  1504. {
  1505. if(infiSTAR_MOD == 'Epoch')then
  1506. {
  1507. _ctrl lbAdd ' ==== Epoch Weapons ====';
  1508. {
  1509. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgWeapons' >> _x >> 'displayName'),_x];
  1510. _x call fnc_addpic;
  1511. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1512. } forEach ALL_WEPS_TO_SEARCH_EPOCH;
  1513. _ctrl lbAdd ' ==== Other Weapons ====';
  1514. {
  1515. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgWeapons' >> _x >> 'displayName'),_x];
  1516. _x call fnc_addpic;
  1517. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1518. _ctrl lbSetColor [(lbsize _ctrl)-1,[1,0,0,1]];
  1519. } forEach ALL_WEPS_TO_SEARCH_NONEEPOCH;
  1520. }
  1521. else
  1522. {
  1523. {
  1524. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgWeapons' >> _x >> 'displayName'),_x];
  1525. _x call fnc_addpic;
  1526. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1527. } forEach ALL_WEPS_TO_SEARCH_C;
  1528. };
  1529. };
  1530. };
  1531. if('==== Magazines ====' call ADMINLEVELACCESS)then
  1532. {
  1533. _ctrl lbAdd '==== Magazines ====';
  1534. if(!isNil 'infiSTAR_add_magazines')then
  1535. {
  1536. if(infiSTAR_MOD == 'Epoch')then
  1537. {
  1538. _ctrl lbAdd ' ==== Epoch Magazines ====';
  1539. {
  1540. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgMagazines' >> _x >> 'displayName'),_x];
  1541. _x call fnc_addpic;
  1542. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1543. } forEach ALL_MAGS_TO_SEARCH_EPOCH;
  1544. _ctrl lbAdd ' ==== Other Magazines ====';
  1545. {
  1546. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgMagazines' >> _x >> 'displayName'),_x];
  1547. _x call fnc_addpic;
  1548. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1549. _ctrl lbSetColor [(lbsize _ctrl)-1,[1,0,0,1]];
  1550. } forEach ALL_MAGS_TO_SEARCH_NONEEPOCH;
  1551. }
  1552. else
  1553. {
  1554. {
  1555. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgMagazines' >> _x >> 'displayName'),_x];
  1556. _x call fnc_addpic;
  1557. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1558. } forEach ALL_MAGS_TO_SEARCH_C;
  1559. };
  1560. };
  1561. };
  1562. if('==== Bags ====' call ADMINLEVELACCESS)then
  1563. {
  1564. _ctrl lbAdd '==== Bags ====';
  1565. if(!isNil 'infiSTAR_add_bags')then
  1566. {
  1567. if(infiSTAR_MOD == 'Epoch')then
  1568. {
  1569. _ctrl lbAdd ' ==== Epoch Bags ====';
  1570. {
  1571. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
  1572. _x call fnc_addpic;
  1573. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1574. } forEach ALL_BAGS_TO_SEARCH_EPOCH;
  1575. _ctrl lbAdd ' ==== Other Bags ====';
  1576. {
  1577. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
  1578. _x call fnc_addpic;
  1579. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1580. _ctrl lbSetColor [(lbsize _ctrl)-1,[1,0,0,1]];
  1581. } forEach ALL_BAGS_TO_SEARCH_NONEEPOCH;
  1582. }
  1583. else
  1584. {
  1585. {
  1586. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
  1587. _x call fnc_addpic;
  1588. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1589. } forEach ALL_BAGS_TO_SEARCH_C;
  1590. };
  1591. };
  1592. };
  1593. "; if(_MOD == 'AltisLife')then{ infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  1594. if('==== VirtualItems ====' call ADMINLEVELACCESS)then
  1595. {
  1596. _ctrl lbAdd '==== VirtualItems ====';
  1597. if(!isNil 'infiSTAR_add_VirtualItems')then
  1598. {
  1599. {
  1600. _ctrl lbAdd format['%1',_x];
  1601. _ctrl lbSetPicture [(lbsize _ctrl)-1,(getText(missionconfigfile >> 'VirtualItems' >> _x >> 'icon'))];
  1602. _ctrl lbSetPictureColor [(lbsize _ctrl)-1,[1, 1, 1, 1]];
  1603. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1604. } forEach VIRTUAL_ITEMS_ARRAY;
  1605. };
  1606. };
  1607. "; }; infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  1608. };
  1609. case 1:{
  1610. if('==== Vehicles ====' call ADMINLEVELACCESS)then
  1611. {
  1612. if(!isNil'EPOCH_VehicleSlotCount')then
  1613. {
  1614. _ctrl lbAdd format['vehicle slots: %1 (destroy/delete a vehicle to get a slot!)',EPOCH_VehicleSlotCount];
  1615. };
  1616. _ctrl lbAdd '==== Vehicles ====';
  1617. if(!isNil 'infiSTAR_add_vehicles')then
  1618. {
  1619. if(infiSTAR_MOD == 'Epoch')then
  1620. {
  1621. _ctrl lbAdd ' ==== Epoch Vehicles (checked existing vehicles and config) ====';
  1622. {
  1623. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
  1624. _x call fnc_addpic;
  1625. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1626. } forEach ALL_VEHS_TO_SEARCH_EPOCH;
  1627. _ctrl lbAdd ' ==== Other Vehicles ====';
  1628. {
  1629. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
  1630. _x call fnc_addpic;
  1631. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1632. _ctrl lbSetColor [(lbsize _ctrl)-1,[1,0,0,1]];
  1633. } forEach ALL_VEHS_TO_SEARCH_NONEEPOCH;
  1634. }
  1635. else
  1636. {
  1637. {
  1638. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
  1639. _x call fnc_addpic;
  1640. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1641. } forEach ALL_VEHS_TO_SEARCH_C;
  1642. };
  1643. };
  1644. };
  1645. };
  1646. case 2:{
  1647. if('==== Objects ====' call ADMINLEVELACCESS)then
  1648. {
  1649. _ctrl lbAdd '==== Objects ====';
  1650. if(isNil 'infiSTAR_add_objects')then
  1651. {
  1652. if(infiSTAR_MOD == 'Epoch')then
  1653. {
  1654. _ctrl lbAdd ' ==== Epoch Objects ====';
  1655. {
  1656. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
  1657. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1658. } forEach ALL_OBJS_TO_SEARCH_EPOCH;
  1659. _ctrl lbAdd ' ==== Other Objects ====';
  1660. {
  1661. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
  1662. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1663. _ctrl lbSetColor [(lbsize _ctrl)-1,[1,0,0,1]];
  1664. } forEach ALL_OBJS_TO_SEARCH_NONEEPOCH;
  1665. }
  1666. else
  1667. {
  1668. _ctrl lbAdd ' ==== Objects ====';
  1669. {
  1670. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgVehicles' >> _x >> 'displayName'),_x];
  1671. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  1672. } forEach ALL_OBJS_TO_SEARCH_C;
  1673. };
  1674. };
  1675. };
  1676. };
  1677. };
  1678. };
  1679. if(FILLMAINSTATE == 0)then
  1680. {
  1681. _onTarget = [];
  1682. {if(_x call ADMINLEVELACCESS)then{_onTarget pushBack _x;};} forEach infiSTAR_OnTargetNICE;
  1683. if!(_onTarget isEqualTo [])then{_onTarget pushBack '---';};
  1684. {if(_x call ADMINLEVELACCESS)then{_onTarget pushBack _x;};} forEach infiSTAR_OnTargetEVIL;
  1685. if!(_onTarget isEqualTo [])then
  1686. {
  1687. _ctrl lbAdd '==== OnTarget ====';
  1688. if(isNil 'infiSTAR_add_OnTarget')then
  1689. {
  1690. {_ctrl lbAdd _x;} forEach _onTarget;
  1691. };
  1692. };
  1693.  
  1694.  
  1695. _Toggleable = [];
  1696. {if(_x call ADMINLEVELACCESS)then{_Toggleable pushBack _x;};} forEach infiSTAR_Toggleable;
  1697. if!(_Toggleable isEqualTo [])then
  1698. {
  1699. _ctrl lbAdd '==== Toggleable ====';
  1700. if(isNil 'infiSTAR_add_Toggleable')then
  1701. {
  1702. {_ctrl lbAdd _x;} forEach _Toggleable;
  1703. };
  1704. };
  1705.  
  1706. if(infiSTAR_MOD == 'AltisLife')then
  1707. {
  1708. _AltisLifeMisc = [];
  1709. {if(_x call ADMINLEVELACCESS)then{_AltisLifeMisc pushBack _x;};} forEach infiSTAR_AltisLifeMisc;
  1710. if!(_AltisLifeMisc isEqualTo [])then
  1711. {
  1712. _ctrl lbAdd '==== AltisLife Misc ====';
  1713. if(isNil 'infiSTAR_add_AltisLife')then
  1714. {
  1715. {_ctrl lbAdd _x;} forEach _AltisLifeMisc;
  1716. };
  1717. };
  1718. if('==== AltisLife Money ====' call ADMINLEVELACCESS)then
  1719. {
  1720. _ctrl lbAdd '==== AltisLife Money ====';
  1721. if(!isNil 'infiSTAR_add_AltisLifeMoney')then
  1722. {
  1723. {
  1724. _ctrl lbAdd _x;
  1725. } forEach infiSTAR_AltisLifeMoney;
  1726. _ctrl lbAdd '';
  1727. };
  1728. };
  1729. };
  1730.  
  1731. "; if(_MOD == 'Epoch')then{ infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  1732. if('==== Base Deleter ====' call ADMINLEVELACCESS)then
  1733. {
  1734. _index = _ctrl lbAdd '==== Base Deleter ====';
  1735. _ctrl lbSetColor [_index, [0.2,0.4,1,1]];
  1736. _ctrl lbAdd 'BD: Set Center';
  1737. if(!isNil 'CCGbdCenter')then{
  1738. _ctrl lbAdd 'BD: Set Radius';
  1739. };
  1740. if(!isNil 'CCGbdCenter' && !isNil 'CCGbdRadius')then{
  1741. _ctrl lbAdd '';
  1742. _objects = call CCG_fnc_bdGetObjectsToDelete;
  1743. _ctrl lbAdd format['BD: Selected %1 Objects', count _objects];
  1744. _index = _ctrl lbAdd 'BD: Delete';
  1745. _ctrl lbSetColor [_index, [0.8,0,0,1]];
  1746. _ctrl lbAdd '';
  1747. };
  1748. _ctrl lbAdd 'BD: Cancel';
  1749. _index = _ctrl lbAdd '=== ========= ===';
  1750. _ctrl lbSetColor [_index, [0.2,0.4,1,1]];
  1751. };
  1752. "; }; infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  1753.  
  1754. if('BIS FreeRoam Cam (works with ESP)' call ADMINLEVELACCESS)then{_ctrl lbAdd 'BIS FreeRoam Cam (works with ESP)'};
  1755. if('FreeRoam Cam (does not work with ESP)' call ADMINLEVELACCESS)then{_ctrl lbAdd 'FreeRoam Cam (does not work with ESP)'};
  1756. if('AdminConsole' call ADMINLEVELACCESS)then{_ctrl lbAdd 'AdminConsole';};
  1757. if('Mass Message' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Mass Message';};
  1758. if('Call EMP' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Call EMP'};
  1759. if('DayTime' call ADMINLEVELACCESS)then{_ctrl lbAdd 'DayTime';};
  1760. if('NightTime' call ADMINLEVELACCESS)then{_ctrl lbAdd 'NightTime';};
  1761. if('Spawn Epoch-Box' call ADMINLEVELACCESS)then{if(infiSTAR_MOD == 'Epoch')exitWith{_ctrl lbAdd 'Spawn Epoch-Box';};};
  1762. if('Spawn Support-Box1' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Spawn Support-Box1';};
  1763. if('Spawn Support-Box2' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Spawn Support-Box2';};
  1764. if('Spawn Support-Box3' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Spawn Support-Box3';};
  1765. if('Spawn Ammo' call ADMINLEVELACCESS)then{_ctrl lbAdd 'Spawn Ammo';};
  1766. _ctrl lbAdd 'Self Disconnect';
  1767. _target = lbtext[LEFT_CTRL_ID,(lbCurSel LEFT_CTRL_ID)];
  1768. if('Login as Arma Admin' call ADMINLEVELACCESS)then
  1769. {
  1770. if(isNil 'serverCommandLoginDone')then{_ctrl lbAdd 'Login';};
  1771. if(serverCommandAvailable '#logout')then
  1772. {
  1773. _ctrl lbAdd format['#kick %1',_target];
  1774. _ctrl lbAdd format['#exec ban %1',str _target];
  1775. };
  1776. };
  1777. };
  1778. [] call fnc_colorizeMain;
  1779. for '_i' from 0 to 10 do {_ctrl lbAdd '';};
  1780. };
  1781. fnc_infiSTAR_get_LeftClicks = {
  1782. _array = allPlayers;
  1783. _array append allDeadMen;
  1784. _array
  1785. };
  1786. fnc_fill_infiSTAR_Player_REAL = {
  1787. disableSerialization;
  1788. if(!isNil 'filling_infiSTAR_Player')exitWith{};
  1789. filling_infiSTAR_Player = positionCameraToWorld [0,0,0];
  1790. _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl LEFT_CTRL_ID;
  1791. lbclear _ctrl;
  1792. _unsorted = call fnc_infiSTAR_get_LeftClicks;
  1793. _sorted = _unsorted;
  1794. lbclear _ctrl;
  1795. if!(_sorted isEqualTo [])then
  1796. {
  1797. _fnc_addPlayerToList = {
  1798. if(isNull _x)exitWith{};
  1799. _PUIDX = getPlayerUID _x;
  1800. if(_PUIDX == '')exitWith{};
  1801. _name = _x getVariable['realname',name _x];
  1802. _side = side _x;
  1803. _clr = _side call {
  1804. if(_this == civilian)exitWith{[0.67,0.97,0.97,1]};
  1805. if(_this == west)exitWith{[0.047,0.502,1,1]};
  1806. if(_this == resistance)exitWith{[0,0.65,0,1]};
  1807. if(_this == east)exitWith{[1,0.17,0.17,1]};
  1808. [1,1,1,1]
  1809. };
  1810. _name = format['%1 [%2]',_name,_side];
  1811. _index = _ctrl lbAdd _name;
  1812.  
  1813. _veh = vehicle _x;
  1814. _xpic = getText (configFile >> 'CfgVehicles' >> (typeOf _veh) >> 'picture');
  1815. if(alive _x)then
  1816. {
  1817. if(_x == _veh)then
  1818. {
  1819. _wpnstate = weaponState _x;
  1820. _cwep = _wpnstate select 0;
  1821. if(_cwep != '')then
  1822. {
  1823. _xpic = getText (configFile >> 'CfgWeapons' >> _cwep >> 'picture');
  1824. };
  1825. };
  1826. };
  1827. if!(_xpic isEqualTo '')then
  1828. {
  1829. _ctrl lbSetPicture [_index,_xpic];
  1830. _ctrl lbSetPictureColor [_index,[1, 1, 1, 1]];
  1831. };
  1832. _PUIDX = getPlayerUID _x;
  1833. if(((_PUIDX in infiSTAR_ADMINS)&&!(_PUIDX in infiSTAR_DEVS))||((_PUIDX in infiSTAR_DEVS)&&(MYPUIDinfiESP in infiSTAR_DEVS))||(_PUIDX == MYPUIDinfiESP))then{_clr = [0,1,0,1];};
  1834. if(_x isEqualTo SELECTED_TARGET_PLAYER)then{_clr = [1,0.7,0.15,1];};
  1835. _ctrl lbSetColor [_index,_clr];
  1836. };
  1837.  
  1838.  
  1839. if(!isNil'SortAlphaPlease')exitWith
  1840. {
  1841. {call _fnc_addPlayerToList} forEach _sorted;
  1842. };
  1843. if(!isNil'SortGroupsPlease')exitWith
  1844. {
  1845. _shown = [];
  1846. {
  1847. _grp = group _x;
  1848. if!(_grp in _shown)then
  1849. {
  1850. _shown pushBack _grp;
  1851.  
  1852. _ctrl lbAdd format['______%1______',_grp];
  1853. {
  1854. call _fnc_addPlayerToList;
  1855. } forEach (units _grp);
  1856. };
  1857. } forEach _sorted;
  1858. };
  1859. if(!isNil'SortRangePlease')exitWith
  1860. {
  1861. _sorted = [_unsorted,[],{filling_infiSTAR_Player distance _x},'ASCEND'] call BIS_fnc_sortBy;
  1862. {call _fnc_addPlayerToList} forEach _sorted;
  1863. };
  1864. };
  1865. _display = findDisplay MAIN_DISPLAY_ID;
  1866. _btnSortAlpha = _display displayCtrl 10;if(!isNil 'SortAlphaPlease')then{lbSort _ctrl;_btnSortAlpha ctrlSetTextColor [0,1,0,1];} else {_btnSortAlpha ctrlSetTextColor [1,1,1,1];};
  1867. _btnSortGroups = _display displayCtrl 11;if(!isNil 'SortGroupsPlease')then{_btnSortGroups ctrlSetTextColor [0,1,0,1];} else {_btnSortGroups ctrlSetTextColor [1,1,1,1];};
  1868. _btnSortRange = _display displayCtrl 12;if(!isNil 'SortRangePlease')then{_btnSortRange ctrlSetTextColor [0,1,0,1];} else {_btnSortRange ctrlSetTextColor [1,1,1,1];};
  1869. _ctrl lbAdd '-----------------------------------';
  1870. _index = _ctrl lbAdd '[civilian]';_ctrl lbSetColor [_index,[0.67,0.97,0.97,1]];
  1871. _index = _ctrl lbAdd '[west]';_ctrl lbSetColor [_index,[0.047,0.502,1,1]];
  1872. _index = _ctrl lbAdd '[east]';_ctrl lbSetColor [_index,[1,0.17,0.17,1]];
  1873. _index = _ctrl lbAdd '[resistance]';_ctrl lbSetColor [_index,[0,0.65,0,1]];
  1874. _index = _ctrl lbAdd '[Admin]';_ctrl lbSetColor [_index,[0,1,0,1]];
  1875. _index = _ctrl lbAdd '[Dead Player]';_ctrl lbSetColor [_index,[1,1,1,1]];
  1876. for '_i' from 0 to 10 do {_ctrl lbAdd '';};
  1877. filling_infiSTAR_Player = nil;
  1878. };
  1879. fnc_fill_infiSTAR_Player = {
  1880. [
  1881. '',
  1882. {
  1883. call fnc_fill_infiSTAR_Player_REAL
  1884. }
  1885. ] execFSM 'call.fsm';
  1886. };
  1887. fnc_LBDblClick_LEFT = {
  1888. _target = lbtext[LEFT_CTRL_ID,(lbCurSel LEFT_CTRL_ID)];
  1889. SELECTED_DOUBLECLICK_TARGET = objNull;
  1890. if(!isNil 'SELECTED_TARGET_PLAYER')then
  1891. {
  1892. if(!isNull SELECTED_TARGET_PLAYER)then
  1893. {
  1894. SELECTED_DOUBLECLICK_TARGET = SELECTED_TARGET_PLAYER;
  1895. };
  1896. };
  1897. if(isNull SELECTED_DOUBLECLICK_TARGET)then
  1898. {
  1899. _break = false;
  1900. {
  1901. _puid = getPlayerUID _x;
  1902. if(_puid != '')then
  1903. {
  1904. _search = format['%1 [%2]',name _x,side _x];
  1905. if(_search == _target)then
  1906. {
  1907. _break = true;
  1908. SELECTED_DOUBLECLICK_TARGET = _x;
  1909. };
  1910. };
  1911. if(_break)exitWith{true};
  1912. } forEach (call fnc_infiSTAR_get_LeftClicks);
  1913. };
  1914. if('spectating' call ADMINLEVELACCESS)then{SELECTED_TARGET_PLAYER call fnc_beginspectate;};
  1915. };
  1916. fnc_LBSelChanged_LEFT = {
  1917. _target = lbtext[LEFT_CTRL_ID,(lbCurSel LEFT_CTRL_ID)];
  1918. _break = false;
  1919. _puid = '';
  1920. SELECTED_TARGET_PLAYER = objNull;
  1921. {
  1922. _puid = getPlayerUID _x;
  1923. if(_puid != '')then
  1924. {
  1925. _search = format['%1 [%2]',name _x,side _x];
  1926. if(_search == _target)then
  1927. {
  1928. _break = true;
  1929. SELECTED_TARGET_PLAYER = _x;
  1930. };
  1931. };
  1932. if(_break)exitWith{true};
  1933. } forEach (call fnc_infiSTAR_get_LeftClicks);
  1934. if(!isNull (findDisplay MAIN_DISPLAY_ID displayCtrl 44463))then
  1935. {
  1936. (findDisplay MAIN_DISPLAY_ID displayCtrl 44463) ctrlSetText format['SELECTED TARGET: %1',SELECTED_TARGET_PLAYER];
  1937. };
  1938. if(visibleMap)then
  1939. {
  1940. (uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlMapAnimAdd [1, 0.1, getPos SELECTED_TARGET_PLAYER];
  1941. ctrlMapAnimCommit (uiNamespace getVariable 'A3MAPICONS_mainMap');
  1942. };
  1943. SELECTED_TARGET_PLAYER
  1944. };
  1945. fnc_LBDblClick_RIGHT = {
  1946. _click = lbtext[RIGHT_CTRL_ID,(lbCurSel RIGHT_CTRL_ID)];
  1947. if(!isNil'VIRTUAL_ITEMSTHREAD')then{terminate VIRTUAL_ITEMSTHREAD;VIRTUAL_ITEMSTHREAD=nil;};
  1948. if(_click == '')exitWith{};
  1949. if(_click in AH_HackLogArray)exitWith{_click call FN_SHOW_LOG;diag_log _click;};
  1950. if(_click in AH_SurvLogArray)exitWith{_click call FN_SHOW_LOG;diag_log _click;};
  1951. if(_click in AH_AdmiLogArray)exitWith{_click call FN_SHOW_LOG;diag_log _click;};
  1952. if(_click in PVAH_AHTMPBAN)exitWith{
  1953. [-667,player,_click] call fnc_AdminReq;
  1954. _log = format['Removed %1 from TempBan Variable. Might still be banned in ban(s).txt',_click];
  1955. _log call FN_SHOW_LOG;
  1956. [] call fnc_fill_HackLog;[] call fnc_setFocus;
  1957. };
  1958. if(_click in infiSTAR_Toggleable)then
  1959. {
  1960. switch (_click) do {
  1961. case 'infiSTAR Player ESP 1':{call infiSTAR_fnc_infiESP_player1;};
  1962. case 'infiSTAR Player ESP 2':{call infiSTAR_fnc_infiESP_player2;};
  1963. case 'infiSTAR AI ESP':{call infiSTAR_fnc_infiESP_AI;};
  1964. case 'infiSTAR Dead ESP':{call infiSTAR_fnc_infiESP_DEAD;};
  1965. case 'infiSTAR LockBox ESP':{call infiSTAR_fnc_infiESP_LOCKBOX;};
  1966. case 'infiSTAR Shelf ESP':{call infiSTAR_fnc_infiESP_SHELF;};
  1967. case 'infiSTAR PlotPole ESP':{call infiSTAR_fnc_infiESP_PLOTPOLE;};
  1968. case 'infiSTAR MapIcons':{call infiSTAR_A3MAPICONS;};
  1969. case 'PlotPole Marker':{call adminPlotPole;};
  1970. case 'Vehicle Marker':{call adminVehicleMarker;};
  1971. case 'Construction Marker':{call adminConstructions;};
  1972. case 'LockBox Marker':{call adminLockBox;};
  1973. case 'Fake Epoch group to nearest PlotPole':{call fake_epoch_grp;};
  1974. case 'DeadPlayer Marker':{call adminDeadPlayer;};
  1975. case 'God Mode':{call infiSTAR_A3Invulnerability;};
  1976. case 'Vehicle God Mode':{call fnc_infiSTAR_A3cargod;};
  1977. case 'Lower Terrain':{call fnc_LowerTerrain;};
  1978. case 'Vehboost':{call infiSTAR_VehicleBoost;};
  1979. case 'UnlimAmmo':{[] spawn fnc_infiSTAR_A3UnlAmmo;};
  1980. case 'noRecoil':{[] spawn fnc_infiSTAR_A3noRecoil;};
  1981. case 'FastFire':{[] spawn fnc_infiSTAR_A3FF;};
  1982. case 'Stealth / Invisible':{call fnc_infiSTARHIDE;};
  1983. case 'Disable Announces':{call fnc_DisableAnnouncements;};
  1984. case 'Default Epoch Player ESP':{true spawn fnc_Epochs_ESP;};
  1985. case 'Default Epoch Vehicle ESP':{false spawn fnc_Epochs_ESP;};
  1986. case 'Teleport In Facing Direction (10m steps)':{if(isNil'infiSTAR_TpdirectionENABLED')then{infiSTAR_TpdirectionENABLED=true}else{infiSTAR_TpdirectionENABLED=nil;};};
  1987. };
  1988. if(_click in infiSTAR_toggled_A)then
  1989. {
  1990. lbSetColor [RIGHT_CTRL_ID,1,[1,0,0,1]];
  1991. infiSTAR_toggled_A = infiSTAR_toggled_A - [_click];
  1992. _log = format['%1 - 0',_click];
  1993. _log call fnc_adminLog;
  1994. }
  1995. else
  1996. {
  1997. lbSetColor [RIGHT_CTRL_ID,1,[0,1,0,1]];
  1998. infiSTAR_toggled_A pushBack _click;
  1999. _log = format['%1 - 1',_click];
  2000. _log call fnc_adminLog;
  2001. };
  2002. };
  2003. if(_click in infiSTAR_OnTarget)then
  2004. {
  2005. _target = lbtext[LEFT_CTRL_ID,(lbCurSel LEFT_CTRL_ID)];
  2006. _uid = '';
  2007. if(_target == '')then
  2008. {
  2009. _log = 'You did not select a Target!';
  2010. _log call FN_SHOW_LOG;
  2011. }
  2012. else
  2013. {
  2014. if(isNil 'SELECTED_TARGET_PLAYER')then{SELECTED_TARGET_PLAYER = objNull;};
  2015. _unit = SELECTED_TARGET_PLAYER;
  2016. if(isNull _unit)then
  2017. {
  2018. _unit = objNull;
  2019. _break = false;
  2020. {
  2021. _uid = getPlayerUID _x;
  2022. if(_uid != '')then
  2023. {
  2024. _search = format['%1 [%2]',name _x,side _x];
  2025. if(_search == _target)then
  2026. {
  2027. _break = true;
  2028. _unit = _x;
  2029. };
  2030. };
  2031. if(_break)exitWith{true};
  2032. } forEach (call fnc_infiSTAR_get_LeftClicks);
  2033. };
  2034. if(!isNull _unit)then
  2035. {
  2036. if(_uid == '')then
  2037. {
  2038. _uid = getPlayerUID _unit;
  2039. };
  2040. switch (_click) do {
  2041. case 'Teleport - Target To Me':{[_unit] call fnc_TP2ME;};
  2042. case 'Teleport - Me To Target':{[_unit] call fnc_TPME2;};
  2043. case 'Request Steam Name':{[_unit] call fnc_getSteamName;};
  2044. case 'Dump unique client variables':{[_unit] call fnc_dumpUclientVars;};
  2045. case 'Revive':{[_unit] call fnc_ReviveTarget;};
  2046. case 'Heal':{[_unit] call fnc_HealTarget;};
  2047. case 'Restore':{[_unit] call fnc_RepairTarget;};
  2048. case 'Move In My Vehicle':{[_unit] call fnc_MoveInMyVehicle;};
  2049. case 'Move In Target Vehicle':{[_unit] call fnc_MoveInTargetVehicle;};
  2050. case 'Parachute Target':{[_unit] call fnc_MoveInParachute;};
  2051. case 'Freeze Target':{[_unit,true] call fnc_freezeTarget;};
  2052. case 'UnFreeze Target':{[_unit,false] call fnc_freezeTarget;};
  2053. case 'Remove Gear':{[_unit] call fnc_RemoveGear;};
  2054. case 'Restrain':{[_unit,true] call fnc_restrainTarget;};
  2055. case 'Unrestrain':{[_unit,false] call fnc_restrainTarget;};
  2056. case 'Add / Remove Crypto':{call fnc_spawn_CryptoINSERTVALUE;};
  2057. case 'Spawn UAV':{[_unit,'I_UAV_01_F'] call fnc_spawn_EVENT;};
  2058. case 'Spawn Cloak':{[_unit,'Epoch_Cloak_F'] call fnc_spawn_EVENT;};
  2059. case 'Spawn Sapper':{[_unit,'Epoch_Sapper_F'] call fnc_spawn_EVENT;};
  2060. case 'Spawn SapperB':{[_unit,'Epoch_SapperB_F'] call fnc_spawn_EVENT;};
  2061. case 'Eject':{[_unit] call fnc_EjectTargetVeh;};
  2062. case 'Eject Crew':{[_unit] call fnc_EjectCrewTargetVeh;};
  2063. case 'Kill':{[_unit] call fnc_Kill_selected;};
  2064. case 'Explode':{[_unit] call fnc_Explode_selected;};
  2065. case 'MineField (around target)':{[_unit] call fnc_createMinefield;};
  2066. case 'Zeus':{[_unit] call zeus_attack;};
  2067. case 'Delete Vehicle':{[_unit] call fnc_deleteVeh_selected;};
  2068. case 'Force Disconnect':{[_unit] call fnc_Disconnect_selected;};
  2069. case 'Kick (Silent)':{[_unit,0] call fnc_Kick_selected;};
  2070. case 'Kick (Announce)':{[_unit,1] call fnc_Kick_selected;};
  2071. case 'Ban (Silent)':{[_unit,0] call fnc_Ban_selected;};
  2072. case 'Ban (Announce)':{[_unit,1] call fnc_Ban_selected;};
  2073. };
  2074. _log = format['%1 - %2(%3)',_click,_target,_uid];_log call fnc_adminLog;
  2075. };
  2076. };
  2077. };
  2078. "; if(_MOD == 'AltisLife')then{ infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  2079. if(_click in infiSTAR_AltisLifeMisc)then
  2080. {
  2081. if(_click == 'Give All Licenses')then{{missionnamespace setVariable[(_x select 0),true];} foreach life_licenses;};
  2082. _click call fnc_adminLog;
  2083. };
  2084. if(_click in infiSTAR_AltisLifeMoney)then
  2085. {
  2086. switch (_click) do {
  2087. case '50K Cash':{['cash',50000] call fnc_Altislife_money;};
  2088. case '100K Cash':{['cash',100000] call fnc_Altislife_money;};
  2089. case '250K Cash':{['cash',250000] call fnc_Altislife_money;};
  2090. case '500K Cash':{['cash',500000] call fnc_Altislife_money;};
  2091. case '750K Cash':{['cash',750000] call fnc_Altislife_money;};
  2092. case '1.150K Cash':{['cash',1150000] call fnc_Altislife_money;};
  2093. case '2.500K Cash':{['cash',2500000] call fnc_Altislife_money;};
  2094. case '5.000K Cash':{['cash',5000000] call fnc_Altislife_money;};
  2095. case '10.000K Cash':{['cash',10000000] call fnc_Altislife_money;};
  2096. case '50K Bank':{['bank',50000] call fnc_Altislife_money;};
  2097. case '100K Bank':{['bank',100000] call fnc_Altislife_money;};
  2098. case '250K Bank':{['bank',250000] call fnc_Altislife_money;};
  2099. case '500K Bank':{['bank',500000] call fnc_Altislife_money;};
  2100. case '750K Bank':{['bank',750000] call fnc_Altislife_money;};
  2101. case '1.150K Bank':{['bank',1150000] call fnc_Altislife_money;};
  2102. case '2.500K Bank':{['bank',2500000] call fnc_Altislife_money;};
  2103. case '5.000K Bank':{['bank',5000000] call fnc_Altislife_money;};
  2104. case '10.000K Bank':{['bank',10000000] call fnc_Altislife_money;};
  2105. };
  2106. _click call fnc_adminLog;
  2107. };
  2108. "; }; infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  2109. switch (_click) do {
  2110. case '==== OnTarget ====':{if(isNil 'infiSTAR_add_OnTarget')then{infiSTAR_add_OnTarget = true;} else {infiSTAR_add_OnTarget = nil;};};
  2111. case '==== Toggleable ====':{if(isNil 'infiSTAR_add_Toggleable')then{infiSTAR_add_Toggleable = true;} else {infiSTAR_add_Toggleable = nil;};};
  2112. case '==== AltisLife Misc ====':{if(isNil 'infiSTAR_add_AltisLife')then{infiSTAR_add_AltisLife = true;} else {infiSTAR_add_AltisLife = nil;};};
  2113. case '==== AltisLife Money ====':{if(isNil 'infiSTAR_add_AltisLifeMoney')then{infiSTAR_add_AltisLifeMoney = true;} else {infiSTAR_add_AltisLifeMoney = nil;};};
  2114. case '==== Weapons ====':{if(isNil 'infiSTAR_add_weapons')then{infiSTAR_add_weapons = true;} else {infiSTAR_add_weapons = nil;};};
  2115. case '==== Magazines ====':{if(isNil 'infiSTAR_add_magazines')then{infiSTAR_add_magazines = true;} else {infiSTAR_add_magazines = nil;};};
  2116. case '==== Bags ====':{if(isNil 'infiSTAR_add_bags')then{infiSTAR_add_bags = true;} else {infiSTAR_add_bags = nil;};};
  2117. "; if(_MOD == 'AltisLife')then{ infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  2118. case '==== VirtualItems ====':{if(isNil 'infiSTAR_add_VirtualItems')then{infiSTAR_add_VirtualItems = true;} else {infiSTAR_add_VirtualItems = nil;};};
  2119. "; }; infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  2120. case '==== Vehicles ====':{if(isNil 'infiSTAR_add_vehicles')then{infiSTAR_add_vehicles = true;} else {infiSTAR_add_vehicles = nil;};};
  2121. case '==== Objects ====':{if(isNil 'infiSTAR_add_objects')then{infiSTAR_add_objects = true;} else {infiSTAR_add_objects = nil;};};
  2122. case 'clear ingame HackLog':{[0] call fnc_clearLogArray;_click call fnc_adminLog;[] call fnc_fill_HackLog;};
  2123. case 'clear ingame AdminLog':{[1] call fnc_clearLogArray;_click call fnc_adminLog;[] call fnc_fill_AdminLog;};
  2124. case 'BIS FreeRoam Cam (works with ESP)':{call fnc_BIS_FreeRoamCam;};
  2125. case 'FreeRoam Cam (does not work with ESP)':{call fnc_FreeRoamCam;};
  2126. case 'Call EMP':{[] call fnc_startEMP;_click call fnc_adminLog;};
  2127. case 'AdminConsole':{[] call fnc_workplace;};
  2128. case 'Mass Message':{[] call fnc_mass_message;};
  2129. case 'DayTime':{[11] call fnc_spawn_timemachine;_click call fnc_adminLog;};
  2130. case 'NightTime':{[23] call fnc_spawn_timemachine;_click call fnc_adminLog;};
  2131. case 'Spawn Epoch-Box':{[0] call fnc_spawn_Box;_click call fnc_adminLog;};
  2132. case 'Spawn Support-Box1':{[1] call fnc_spawn_Box;_click call fnc_adminLog;};
  2133. case 'Spawn Support-Box2':{[2] call fnc_spawn_Box;_click call fnc_adminLog;};
  2134. case 'Spawn Support-Box3':{[3] call fnc_spawn_Box;_click call fnc_adminLog;};
  2135. case 'Spawn Ammo':{[] call infiSTAR_A3addAmmo;};
  2136. case 'Self Disconnect':{_click call fnc_adminLog;(finddisplay 46) closeDisplay 0;};
  2137. };
  2138. _class = lbData[RIGHT_CTRL_ID,(lbCurSel RIGHT_CTRL_ID)];
  2139. if((_class find 'PaperCar' > -1)||(_click find 'PaperCar' > -1))exitWith{'Kicked for trying to spawn a PaperCar' call fnc_adminLog;(finddisplay 46) closeDisplay 0;};
  2140. if(_class in ALL_VEHS_TO_SEARCH_C)exitWith
  2141. {
  2142. _target = if(isNull (call fnc_LBSelChanged_LEFT))then{player} else {(call fnc_LBSelChanged_LEFT)};
  2143. _position = _target modelToWorld [0,8,0];
  2144. _dir = getDir (vehicle _target);
  2145.  
  2146. _log = format['Spawning %1 infront of %2!',_click,name _target];
  2147.  
  2148. if(!isNil'EPOCH_VehicleSlotCount')exitWith
  2149. {
  2150. if((EPOCH_VehicleSlotCount == 0)&&((_class isKindOf 'Air' || _class isKindOf 'Ship' || _class isKindOf 'LandVehicle')))then
  2151. {
  2152. _log = format['no vehicle slots left to save %1 in the database (destroy/delete a vehicle to get a slot!)',_click];
  2153. _log call FN_SHOW_LOG;
  2154. [0,player,_class,_position,_dir] call fnc_AdminReq;
  2155. _log call fnc_adminLog;
  2156. }
  2157. else
  2158. {
  2159. _log call FN_SHOW_LOG;
  2160. [0,player,_class,_position,_dir] call fnc_AdminReq;
  2161. format['spawning %1',_click] call fnc_adminLog;
  2162. };
  2163. };
  2164. _log call FN_SHOW_LOG;
  2165. [0,player,_class,_position,_dir] call fnc_AdminReq;
  2166. format['spawning %1',_click] call fnc_adminLog;
  2167. };
  2168. "; if(_MOD == 'AltisLife')then{ infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  2169. if(_click in VIRTUAL_ITEMS_ARRAY)exitWith
  2170. {
  2171. VIRTUAL_ITEMSTHREAD = [] spawn FNC_VIRTUAL_ITEMSTHREAD;
  2172. FNC_VIRTUAL_ITEMSTHREAD = {
  2173. disableSerialization;
  2174. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 65464);
  2175. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 65460);
  2176. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 65463);
  2177. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 65465);
  2178. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 65466);
  2179.  
  2180. findDisplay MAIN_DISPLAY_ID ctrlCreate['IGUIBack', 65464];
  2181. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCButton', 65460];
  2182. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCText', 65463];
  2183. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCEdit', 65465];
  2184. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCButton', 65466];
  2185.  
  2186. (findDisplay MAIN_DISPLAY_ID displayCtrl 65466) ctrlSetEventHandler['ButtonClick','
  2187. _msg = (ctrlText((findDisplay MAIN_DISPLAY_ID) displayCtrl 65465));
  2188. if(_msg != '''')then
  2189. {
  2190. if(isNil''SELECTED_TARGET_PLAYER'')exitWith{''no selected target'' call FN_SHOW_LOG};
  2191. if(isNull SELECTED_TARGET_PLAYER)exitWith{''no selected target'' call FN_SHOW_LOG};
  2192. if!(isPlayer SELECTED_TARGET_PLAYER)exitWith{''no selected target'' call FN_SHOW_LOG};
  2193. if!(alive SELECTED_TARGET_PLAYER)exitWith{''no selected target'' call FN_SHOW_LOG};
  2194.  
  2195. _arraymsg = toArray _msg;
  2196. _breakout=false;
  2197. {if!(_x in [34,48,49,50,51,52,53,54,55,56,57])exitWith{_breakout=true;};} forEach _arraymsg;
  2198. if(_breakout)exitWith{format[''PLEASE ENTER NUMBERS ONLY - %1'',_msg] call FN_SHOW_LOG;};
  2199.  
  2200. _value = parseNumber _msg;
  2201. _value = round _value;
  2202. if(_value == 0)exitWith{''value is 0'' call FN_SHOW_LOG};
  2203. if(_value > 999999)exitWith{''value can not be higher than 999999'' call FN_SHOW_LOG};
  2204.  
  2205. _click = lbtext[RIGHT_CTRL_ID,(lbCurSel RIGHT_CTRL_ID)];
  2206. if!(_click in VIRTUAL_ITEMS_ARRAY)exitWith{format[''Class -%1- not in VirtualGoods'',_click] call FN_SHOW_LOG;};
  2207.  
  2208. [''[true,''+str _click+'',''+str _value+''] call life_fnc_handleInv;'',SELECTED_TARGET_PLAYER] call admin_d0_target;
  2209.  
  2210. _log = format[''Added %1 %2s to %3!'',_value,_click,name SELECTED_TARGET_PLAYER];
  2211. _log call FN_SHOW_LOG;
  2212. _log call fnc_adminLog;
  2213. };
  2214. '];
  2215.  
  2216.  
  2217. (findDisplay MAIN_DISPLAY_ID displayCtrl 65460) ctrlSetText 'Close';
  2218. (findDisplay MAIN_DISPLAY_ID displayCtrl 65460) ctrlSetPosition [
  2219. 0.55 * safezoneW + safezoneX,
  2220. 0.365,
  2221. 0.0360937 * safezoneW,
  2222. 0.033 * safezoneH
  2223. ];
  2224. (findDisplay MAIN_DISPLAY_ID displayCtrl 65460) ctrlSetEventHandler['ButtonClick','closeDialog 0;'];
  2225. (findDisplay MAIN_DISPLAY_ID displayCtrl 65466) ctrlSetText 'OK';
  2226. (findDisplay MAIN_DISPLAY_ID displayCtrl 65466) ctrlSetPosition [
  2227. (0.55 * safezoneW + safezoneX)+(0.2 * safezoneW)-(0.0360937 * safezoneW),
  2228. 0.365,
  2229. 0.0360937 * safezoneW,
  2230. 0.033 * safezoneH
  2231. ];
  2232. (findDisplay MAIN_DISPLAY_ID displayCtrl 65463) ctrlSetPosition [
  2233. 0.55 * safezoneW + safezoneX,
  2234. 0.25,
  2235. 0.2 * safezoneW,
  2236. 0.03 * safezoneH
  2237. ];
  2238. (findDisplay MAIN_DISPLAY_ID displayCtrl 65465) ctrlSetPosition [
  2239. 0.55 * safezoneW + safezoneX,
  2240. 0.31,
  2241. 0.2 * safezoneW,
  2242. 0.03 * safezoneH
  2243. ];
  2244.  
  2245. (findDisplay MAIN_DISPLAY_ID displayCtrl 65464) ctrlSetPosition [
  2246. 0.55 * safezoneW + safezoneX,
  2247. 0.25,
  2248. 0.2 * safezoneW,
  2249. 0.06 * safezoneH
  2250. ];
  2251.  
  2252. (findDisplay MAIN_DISPLAY_ID displayCtrl 65460) ctrlCommit 0;
  2253. (findDisplay MAIN_DISPLAY_ID displayCtrl 65464) ctrlCommit 0;
  2254. (findDisplay MAIN_DISPLAY_ID displayCtrl 65465) ctrlCommit 0;
  2255. (findDisplay MAIN_DISPLAY_ID displayCtrl 65466) ctrlCommit 0;
  2256. while {true} do
  2257. {
  2258. _click = lbtext[RIGHT_CTRL_ID,(lbCurSel RIGHT_CTRL_ID)];
  2259. if(_click in VIRTUAL_ITEMS_ARRAY)then
  2260. {
  2261. (findDisplay MAIN_DISPLAY_ID displayCtrl 65463) ctrlSetText format['add [%1] to [%2]',_click,name SELECTED_TARGET_PLAYER];
  2262. }
  2263. else
  2264. {
  2265. (findDisplay MAIN_DISPLAY_ID displayCtrl 65463) ctrlSetText 'No Virtual Item Selected';
  2266. };
  2267. (findDisplay MAIN_DISPLAY_ID displayCtrl 65463) ctrlCommit 0;
  2268.  
  2269. uiSleep .001;
  2270. };
  2271. };
  2272. };
  2273. "; }; infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  2274. if(_class in ALL_OBJS_TO_SEARCH_C)exitWith
  2275. {
  2276. _target = if(isNull (call fnc_LBSelChanged_LEFT))then{player} else {(call fnc_LBSelChanged_LEFT)};
  2277. LOCAL_OBJ = _class createVehicleLocal [0,0,0];
  2278. _bbr = boundingBoxReal LOCAL_OBJ;
  2279. _p1 = _bbr select 0;
  2280. _p2 = _bbr select 1;
  2281. _maxWidth = abs ((_p2 select 0) - (_p1 select 0));
  2282. _maxLength = abs ((_p2 select 1) - (_p1 select 1));
  2283. _maxHeight = abs ((_p2 select 2) - (_p1 select 2));
  2284. _dist = (_maxWidth max _maxLength)*2;
  2285. _dir = getDir (vehicle _target);
  2286. LOCAL_OBJ setDir _dir;
  2287. LOCAL_OBJ setPos (_target modelToWorld [0,_dist,(_maxHeight/2)]);
  2288. call fnc_redoControlsMoveObj;
  2289.  
  2290. _log = format['Spawning %1 infront of %2!',_click,name _target];
  2291. _log call FN_SHOW_LOG;
  2292.  
  2293. format['spawning %1',_click] call fnc_adminLog;
  2294. };
  2295. if(_class in ALL_BAGS_TO_SEARCH_C)exitWith
  2296. {
  2297. _target = if(isNull (call fnc_LBSelChanged_LEFT))then{player} else {(call fnc_LBSelChanged_LEFT)};
  2298. _pos = getPosATL _target;
  2299.  
  2300. _log = format['Spawning %1 on the ground infront of %2!',_click,name _target];
  2301. _log call FN_SHOW_LOG;
  2302.  
  2303. if(local _target)then{_target addBackpack _class;}else{['player addBackpack '+str _class+';',_target] call admin_d0_target;};
  2304. format['spawning %1',_click] call fnc_adminLog;
  2305. };
  2306. if(_class in ALL_WEPS_TO_SEARCH_C)exitWith
  2307. {
  2308. _target = if(isNull (call fnc_LBSelChanged_LEFT))then{player} else {(call fnc_LBSelChanged_LEFT)};
  2309. _pos = getPosATL _target;
  2310.  
  2311. _log = format['Spawning %1 on the ground infront of %2!',_click,name _target];
  2312. _log call FN_SHOW_LOG;
  2313.  
  2314. [3,player,_pos,_class] call fnc_AdminReq;
  2315. format['spawning %1',_click] call fnc_adminLog;
  2316. };
  2317. if(_class in ALL_MAGS_TO_SEARCH_C)exitWith
  2318. {
  2319. format['spawning %1',_click] call fnc_adminLog;
  2320. _target = if(isNull (call fnc_LBSelChanged_LEFT))then{player} else {(call fnc_LBSelChanged_LEFT)};
  2321. if(!isPlayer _target)exitWith{
  2322. _log = format['Spawning %1 on the ground infront of %2!',_click,name _target];
  2323. _log call FN_SHOW_LOG;
  2324. };
  2325.  
  2326. if(fillmainstate == 6)exitWith
  2327. {
  2328. _log = format['Spawning %1..',_click];
  2329. _log call FN_SHOW_LOG;
  2330.  
  2331. if(local _target)then
  2332. {
  2333. _countMag = {_x == _class} count (magazines _target);
  2334. _target addMagazine _class;
  2335. _newCountMag = {_x == _class} count (magazines _target);
  2336. if(_countMag == _newCountMag)then
  2337. {
  2338. _target linkItem _class;
  2339. };
  2340. }
  2341. else
  2342. {
  2343. ['
  2344. _target = player;
  2345. _class = '+str _class+';
  2346.  
  2347. _countMag = {_x == _class} count (magazines _target);
  2348. _target addMagazine _class;
  2349. _newCountMag = {_x == _class} count (magazines _target);
  2350. if(_countMag == _newCountMag)then
  2351. {
  2352. _target linkItem _class;
  2353. };
  2354. ',_target] call admin_d0_target;
  2355. };
  2356. };
  2357.  
  2358. _pos = getPosATL _target;
  2359. _log = format['Spawning %1 on the ground infront of %2!',_click,name _target];
  2360. _log call FN_SHOW_LOG;
  2361. [3,player,_pos,_class] call fnc_AdminReq;
  2362. };
  2363. if(infiSTAR_MOD == 'Epoch')then{[_click] call CCG_fnc_adminClick;};
  2364. if(_click in infiSTAR_Loadouts)then
  2365. {
  2366. switch (_click) do {
  2367. case 'Epoch 1':{[0] call fnc_add_loadout;};
  2368. case 'Epoch 2':{[1] call fnc_add_loadout;};
  2369. case 'Sub Machinegun Kit':{[2] call fnc_add_loadout;};
  2370. case 'Light Infantry Kit':{[3] call fnc_add_loadout;};
  2371. case 'Heavy Infantry Kit':{[4] call fnc_add_loadout;};
  2372. case 'DMR Sniper Kit':{[5] call fnc_add_loadout;};
  2373. case 'LLR Sniper Kit':{[6] call fnc_add_loadout;};
  2374. case 'Lynx Sniper Kit':{[7] call fnc_add_loadout;};
  2375. case 'M107 Sniper Kit':{[8] call fnc_add_loadout;};
  2376. };
  2377. _click call fnc_adminLog;
  2378. };
  2379. if(_click == 'Login')then{if(isNil 'serverCommandLoginDone')then{serverCommandLoginDone = true;serverCommand ('#login '+passwordAdmin);};};
  2380. if((_click find '#kick' > -1) || (_click find '#exec' > -1))then{serverCommand _click;};
  2381. if((FILLMAINSTATE == 0)||(FILLMAINSTATE == 1))then{[] call fnc_fill_infiSTAR_MAIN;};
  2382. };
  2383. fnc_LBSelChanged_RIGHT = {
  2384. _class = lbData[RIGHT_CTRL_ID,(lbCurSel RIGHT_CTRL_ID)];
  2385. _cfg = call {
  2386. if(isClass (configFile >> 'CfgWeapons' >> _class))exitWith{'CfgWeapons'};
  2387. if(isClass (configFile >> 'CfgMagazines' >> _class))exitWith{'CfgMagazines'};
  2388. if(isClass (configFile >> 'CfgVehicles' >> _class))exitWith{'CfgVehicles'};
  2389. ''
  2390. };
  2391. if(_cfg != '')then
  2392. {
  2393. _xposT = 0.6;
  2394. _yposT = 0.375 * safezoneH + safezoneY;
  2395. _txt = (gettext (configFile >> _cfg >> _class >> 'Library' >> 'libTextDesc'));
  2396. if(_txt == '')then{_txt = 'by infiSTAR.de';};
  2397.  
  2398. if(_cfg=='CfgVehicles')then{
  2399. _vehicleConfig=configFile>>_cfg>>_class;
  2400. _info = format['Capacity: %1 Armor: %2 Fuel: %3 MaxSpeed: %4',getNumber(_vehicleConfig>>'maximumLoad'),getNumber(_vehicleConfig>>'armor'),getNumber(_vehicleConfig>>'fuelCapacity'),getNumber(_vehicleConfig>>'maxSpeed')];
  2401. _log = format['Class: %1 %2',_class,_info];
  2402. _txt=(_info+'<br/>'+_txt);
  2403. };
  2404.  
  2405. ['
  2406. <t size=''0.4''>'+_txt+' </t>
  2407. ',_xposT,_yposT,15,0,0,8407] spawn bis_fnc_dynamicText;
  2408.  
  2409. _xposP = 0.525 * safezoneW + safezoneX;
  2410. _yposP = 0.175 * safezoneH + safezoneY;
  2411. _pic = (getText (configFile >> _cfg >> _class >> 'picture'));
  2412. if((toLower _pic) in ['','pictureheal','picturepapercar','picturething','picturestaticobject'])exitWith{};
  2413. ['
  2414. <img size=''3.5'' image='''+_pic+'''/>
  2415. ',_xposP,_yposP,15,0,0,8406] spawn bis_fnc_dynamicText;
  2416. };
  2417. };
  2418. fnc_getConfig = {
  2419. _cfg = '';
  2420. if(isClass (configFile >> 'CfgWeapons' >> _this))then
  2421. {
  2422. _cfg = 'CfgWeapons';
  2423. }
  2424. else
  2425. {
  2426. if(isClass (configFile >> 'CfgMagazines' >> _this))then
  2427. {
  2428. _cfg = 'CfgMagazines';
  2429. }
  2430. else
  2431. {
  2432. if(isClass (configFile >> 'CfgVehicles' >> _this))then
  2433. {
  2434. _cfg = 'CfgVehicles';
  2435. };
  2436. };
  2437. };
  2438. _cfg
  2439. };
  2440. admin_showGear = {
  2441. if(!isNull cameraOn)then
  2442. {
  2443. if(!isNil'show_gear_thread')then{terminate show_gear_thread;show_gear_thread=nil;};
  2444. show_gear_thread = [] spawn {
  2445. waitUntil {closeDialog 0;!dialog};
  2446. createGearDialog [cameraOn,'RscDisplayInventory'];
  2447. };
  2448. _log = format['Showing Gear of %1',cameraOn call fn_infiSTAR_ObjName];
  2449. _log call FN_SHOW_LOG;
  2450. };
  2451. };
  2452. fnc_endSpectate = {
  2453. if(!isNil'SPECTATE_THREAD')then{terminate SPECTATE_THREAD;SPECTATE_THREAD=nil;};
  2454. (vehicle player) switchCamera cameraView;
  2455. ctrlDelete ((findDisplay 46) displayCtrl 3025);
  2456. if(cameraOn isEqualTo (vehicle player))exitWith{};
  2457. _log = 'Finished spectating.';
  2458. _log call FN_SHOW_LOG;
  2459. };
  2460. fnc_beginspectate = {
  2461. if(!isNil'SPECTATE_THREAD')then{terminate SPECTATE_THREAD;SPECTATE_THREAD=nil;};
  2462. SPECTATE_THREAD = _this spawn {
  2463. disableSerialization;
  2464. _unit = _this;
  2465. _uid = getPlayerUID _unit;
  2466. _log = format['SPECTATE - switchedCamera on %1(%2) - %3',_unit call fn_infiSTAR_ObjName,_uid,typeOf (vehicle _unit)];
  2467. _log call fnc_adminLog;
  2468.  
  2469. _ctrl = [findDisplay 46,'RscStructuredText',3025] call fnc_createctrl;
  2470. _ctrl ctrlSetPosition [safezoneX+0.2,safezoneY+0.1,0.8,1];
  2471. _ctrl ctrlCommit 0;
  2472. while {true} do
  2473. {
  2474. _uid = getPlayerUID _unit;
  2475. if(_uid isEqualTo '')exitWith{call fnc_endspectate;};
  2476. _veh = vehicle _unit;
  2477. if!(_veh isEqualTo cameraOn)then
  2478. {
  2479. player reveal _unit;
  2480. player reveal _veh;
  2481. _veh switchCamera cameraView;
  2482. };
  2483. if(show_spectate_overlay)then
  2484. {
  2485. _ctrlText = '<t align=''left'' shadow=''2'' size=''0.8'' color=''#667FFF''>Spectating - F9 to show inventory, SHIFT + F9 to hide/show overlay, F10 to exit/stop spectating</t><br/>';
  2486. _log = format['%1 (%2) @%3',_unit call fn_infiSTAR_ObjName, _uid, mapGridPosition _veh];
  2487. _ctrlText = _ctrlText + '<t align=''left'' shadow=''2'' size=''1.1'' color=''#238701''>'+_log+'</t>';
  2488.  
  2489. _cwep = '';
  2490. _cammo = '';
  2491. _cmags = '';
  2492. _wpnstate = weaponState _unit;
  2493. if(!isNil '_wpnstate')then
  2494. {
  2495. if(str _wpnstate != '[]')then
  2496. {
  2497. _cwep = _wpnstate select 0;
  2498. _cmags = {_wpnstate select 3 == _x} count magazines _unit;
  2499. _cammo = _wpnstate select 4;
  2500. };
  2501. };
  2502. if(_cwep == '')then
  2503. {
  2504. _ctrlText = _ctrlText + '<br/><t align=''left'' shadow=''2'' size=''1.1'' color=''#238701''>Bare Fists</t>';
  2505. }
  2506. else
  2507. {
  2508. _type = _cwep;
  2509. _cfg = _type call fnc_getConfig;
  2510. _displayName = getText (configFile >> _cfg >> _type >> 'displayName');
  2511. _pic = getText (configFile >> _cfg >> _type >> 'picture');
  2512. _log3 = format[' %1 [%2] (%3/%4)',_displayName, _cwep, _cammo, _cmags];
  2513. _ctrlText = _ctrlText + '<br/><img image='''+_pic+''' align=''left'' shadow=''2'' size=''1.1''/><t align=''left'' shadow=''2'' size=''1.1'' color=''#238701''>'+_log3+'</t>';
  2514.  
  2515. if(_veh != _unit)then
  2516. {
  2517. _cwepsV = [];
  2518. {
  2519. if(_x find 'Horn' == -1)then
  2520. {
  2521. _cwepsV pushBack _x;
  2522. };
  2523. } forEach (weapons _veh);
  2524.  
  2525. if(count _cwepsV > 0)then
  2526. {
  2527. _YPOS = safezoneY+0.355;
  2528.  
  2529. {
  2530. _cwep = _x;
  2531. _cammo = _veh ammo _cwep;
  2532. _cmags = {currentMagazine _veh == _x} count magazines _veh;
  2533.  
  2534. _type = _cwep;
  2535. _cfg = _type call fnc_getConfig;
  2536. _displayName = getText (configFile >> _cfg >> _type >> 'displayName');
  2537.  
  2538. _log3a = format[' %1 [%2] (%3/%4)',_displayName, _cwep, _cammo, _cmags];
  2539. _ctrlText = _ctrlText + '<br/><t align=''left'' shadow=''2'' size=''1.1'' color=''#A90F68''>'+_log3a+'</t>';
  2540. _YPOS = _YPOS - 0.03;
  2541. } forEach _cwepsV;
  2542. };
  2543. };
  2544. };
  2545.  
  2546. _ct = cursorTarget;
  2547. if(!isNull _ct)then
  2548. {
  2549. if(getPlayerUID _ct != '')then
  2550. {
  2551. _cwep_ct = currentWeapon _ct;
  2552. _cammo_ct = _ct ammo _cwep_ct;
  2553. _cmags_ct = {currentMagazine _ct == _x} count magazines _ct;
  2554.  
  2555. _log4 = format['%1 (%2) @%3',_ct call fn_infiSTAR_ObjName, getPlayerUID _ct, mapGridPosition _ct];
  2556. _ctrlText = _ctrlText + '<br/><t align=''left'' shadow=''2'' size=''1.1'' color=''#B80B36''>'+_log4+'</t>';
  2557.  
  2558. _log5 = format['Health: %1 Distance: %2m',(1-(damage _ct))*100, round(cameraOn distance _ct)];
  2559. _ctrlText = _ctrlText + '<br/><t align=''left'' shadow=''2'' size=''1.1'' color=''#B80B36''>'+_log5+'</t>';
  2560.  
  2561. _type = _cwep_ct;
  2562. _cfg = _type call fnc_getConfig;
  2563. _displayName = getText (configFile >> _cfg >> _type >> 'displayName');
  2564. _pic = getText (configFile >> _cfg >> _type >> 'picture');
  2565. _log6 = format[' %1 [%2] (%3/%4)',_displayName, _cwep_ct, _cammo_ct, _cmags_ct];
  2566. _ctrlText = _ctrlText + '<br/><img image='''+_pic+''' align=''left'' shadow=''2'' size=''1.1''/><br/><t align=''left'' shadow=''2'' size=''1.1'' color=''#B80B36''>'+_log6+'</t>';
  2567. }
  2568. else
  2569. {
  2570. _type = typeOf _ct;
  2571. _cfg = _type call fnc_getConfig;
  2572. _displayName = getText (configFile >> _cfg >> _type >> 'displayName');
  2573. _log4 = format['%1 [%2] @%3',_displayName, _type, mapGridPosition _ct];
  2574. _ctrlText = _ctrlText + '<br/><t align=''left'' shadow=''2'' size=''1.1'' color=''#B80B36''>'+_log4+'</t>';
  2575.  
  2576. _log5 = format['Health: %1 - Distance: %2m',(1-(damage _ct))*100, round(cameraOn distance _ct)];
  2577. _ctrlText = _ctrlText + '<br/><t align=''left'' shadow=''2'' size=''1.1'' color=''#B80B36''>'+_log5+'</t>';
  2578. };
  2579.  
  2580. _vehCT = vehicle _ct;
  2581. if((_vehCT isKindOf 'LandVehicle') || (_vehCT isKindOf 'Air') || (_vehCT isKindOf 'Ship') || (_vehCT isKindOf 'Static'))then
  2582. {
  2583. _cwepsV = [];
  2584. {
  2585. if(_x find 'Horn' == -1)then
  2586. {
  2587. _cwepsV pushBack _x;
  2588. };
  2589. } forEach (weapons _vehCT);
  2590.  
  2591. if(count _cwepsV > 0)then
  2592. {
  2593. _YPOS = safezoneY+0.655;
  2594.  
  2595. {
  2596. _cwep = _x;
  2597. _cammo = _vehCT ammo _cwep;
  2598. _cmags = {currentMagazine _vehCT == _x} count magazines _vehCT;
  2599.  
  2600. _type = _cwep;
  2601. _cfg = _type call fnc_getConfig;
  2602. _displayName = getText (configFile >> _cfg >> _type >> 'displayName');
  2603.  
  2604. _log6a = format[' %1 [%2] (%3/%4)',_displayName, _cwep, _cammo, _cmags];
  2605. _ctrlText = _ctrlText + '<br/><t align=''left'' shadow=''2'' size=''1.1'' color=''#A90F68''>'+_log6a+'</t>';
  2606. _YPOS = _YPOS + 0.03;
  2607. } forEach _cwepsV;
  2608. };
  2609. };
  2610. };
  2611. _ctrl ctrlSetStructuredText parseText _ctrlText;
  2612. }
  2613. else
  2614. {
  2615. _ctrl ctrlSetStructuredText parseText '';
  2616. };
  2617. uiSleep .15;
  2618. };
  2619. };
  2620. };
  2621. fnc_clearLogArray = {
  2622. [-668,player,_this select 0] call fnc_AdminReq;
  2623. _log = 'ingame Log(s) cleared!';
  2624. _log call FN_SHOW_LOG;
  2625. [] call fnc_FULLinit;
  2626. };
  2627. fnc_dumpUclientVars = {
  2628. [-663,player,getPlayerUID (_this select 0),name (_this select 0)] call fnc_AdminReq;
  2629. _log = format['Dumping unique client variables of %1(%2)',name (_this select 0),getPlayerUID (_this select 0)];
  2630. _log call FN_SHOW_LOG;
  2631. };
  2632. fnc_getSteamName = {
  2633. [9876,player,_this select 0] call fnc_AdminReq;
  2634. _log = format['Requested Steam Name of %1(%2)',name (_this select 0),getPlayerUID (_this select 0)];
  2635. _log call FN_SHOW_LOG;
  2636. };
  2637. fnc_TP2ME = {
  2638. _unit = _this select 0;
  2639. _pos = player modelToWorld [0,12,0];
  2640. if(_unit isEqualTo vehicle _unit)then{_pos = player modelToWorld [0,1,0];};
  2641. [1,player,_unit,_pos] call fnc_AdminReq;
  2642. };
  2643. fnc_TPME2 = {
  2644. _unit = _this select 0;
  2645. _pos = _unit modelToWorld [0,-5,0];
  2646. _object = (vehicle player);
  2647. if(str(crew _object) == str([player]))then
  2648. {
  2649. _object setPos _pos;
  2650. }
  2651. else
  2652. {
  2653. [1,player,_unit,_pos] call fnc_AdminReq;
  2654. };
  2655. };
  2656. fnc_MoveInMyVehicle = {
  2657. _unit = _this select 0;
  2658. _unit moveInAny (vehicle player);
  2659. };
  2660. fnc_MoveInTargetVehicle = {
  2661. _unit = _this select 0;
  2662. player moveInAny (vehicle _unit);
  2663. };
  2664. fnc_MoveInParachute = {
  2665. MoveInParachuteObject = _this select 0;
  2666. openMap true;
  2667. _log = format['Click on Map to Parachute %1(%2)',name MoveInParachuteObject,getPlayerUID MoveInParachuteObject];
  2668. _log call FN_SHOW_LOG;
  2669. fnc_getParachutePos = {
  2670. _parachuteObject = createVehicle ['Steerable_Parachute_F', [_this select 0,_this select 1,300], [], 0, 'CAN_COLLIDE'];
  2671. _parachuteObject enableSimulationGlobal true;
  2672. MoveInParachuteObject action ['GetinDriver',_parachuteObject];
  2673. openMap false;
  2674. fnc_getParachutePos = nil;
  2675. };
  2676. };
  2677. fnc_EjectTargetVeh = {
  2678. _unit = _this select 0;
  2679. moveOut _unit;
  2680. unassignVehicle _unit;
  2681. _unit action ['eject', (vehicle _unit)];
  2682. };
  2683. fnc_EjectCrewTargetVeh = {
  2684. _unit = _this select 0;
  2685. _veh = (vehicle _unit);
  2686. _uids = [];
  2687. {
  2688. moveOut _x;
  2689. unassignVehicle _x;
  2690. _x action ['eject', _veh];
  2691. _uids pushBack (getPlayerUID _x)
  2692. } forEach (crew _veh);
  2693. };
  2694. fnc_RemoveGear = {
  2695. _target = _this select 0;
  2696. if(typeName _target != 'OBJECT')then
  2697. {
  2698. _target = cursorTarget;
  2699. };
  2700. if(!isNull _target)then
  2701. {
  2702. [11,player,_target] call fnc_AdminReq;
  2703.  
  2704. _log = format['Removed Gear of %1!',name _target];
  2705. _log call FN_SHOW_LOG;
  2706. };
  2707. };
  2708. fnc_add_loadout = {
  2709. _select = _this select 0;
  2710. _wset = player;
  2711. removeAllWeapons _wset;
  2712. removeAllItems _wset;
  2713. removebackpack _wset;
  2714. removeAllAssignedItems _wset;
  2715. switch (_select) do
  2716. {
  2717. NVG_ITEM_PEWPEW = 'NVGoggles';
  2718. if(infiSTAR_MOD == 'Epoch')then{NVG_ITEM_PEWPEW = 'NVG_EPOCH';};
  2719. case 0: {
  2720. _wset = player;
  2721. _wset addBackpack 'B_Carryall_oli';
  2722. _wset forceAddUniform 'O_G_Soldier_M_F';
  2723. _wset addItemToBackpack 'V_PlateCarrierIA1_dgtl';
  2724. _wset addItemToBackpack 'Heal_EPOCH';
  2725. _wset addItemToBackpack 'Defib_EPOCH';
  2726. _wset addItemToBackpack 'Repair_EPOCH';
  2727. _wset addItemToBackpack 'EnergyPackLg';
  2728. _wset addItemToBackpack 'MultiGun';
  2729. _wset addItemToBackpack 'ItemWatch';
  2730. _wset addItemToBackpack 'ItemCompass';
  2731. _wset addItemToBackpack 'ItemGPS';
  2732. _wset addItemToBackpack 'ItemMap';
  2733. _wset addItemToBackpack 'Rangefinder';
  2734. _wset addItemToBackpack NVG_ITEM_PEWPEW;
  2735. _wset addItemToBackpack 'Hatchet';
  2736. _wset addItemToBackpack 'hatchet_swing';
  2737. _wset addItemToBackpack 'MeleeSledge';
  2738. _wset addItemToBackpack 'sledge_swing';
  2739. _wset addItemToBackpack 'srifle_EBR_F';
  2740. _wset addItemToBackpack '20Rnd_762x51_Mag';
  2741. _wset addItemToBackpack 'optic_DMS';
  2742. _wset addItemToBackpack 'optic_SOS';
  2743. _wset addItemToBackpack 'optic_MRCO';
  2744. _wset addItemToBackpack 'muzzle_snds_B';
  2745. };
  2746. case 1: {
  2747. _wset = player;
  2748. _wset addBackpack 'B_Carryall_oli';
  2749. _wset forceAddUniform 'U_B_GhillieSuit';
  2750. _wset addItemToBackpack 'V_PlateCarrierIA1_dgtl';
  2751. _wset addItemToBackpack 'Heal_EPOCH';
  2752. _wset addItemToBackpack 'Defib_EPOCH';
  2753. _wset addItemToBackpack 'Repair_EPOCH';
  2754. _wset addItemToBackpack 'EnergyPackLg';
  2755. _wset addItemToBackpack 'MultiGun';
  2756. _wset addItemToBackpack 'ItemWatch';
  2757. _wset addItemToBackpack 'ItemCompass';
  2758. _wset addItemToBackpack 'ItemGPS';
  2759. _wset addItemToBackpack 'ItemMap';
  2760. _wset addItemToBackpack 'Rangefinder';
  2761. _wset addItemToBackpack NVG_ITEM_PEWPEW;
  2762. _wset addItemToBackpack 'Hatchet';
  2763. _wset addItemToBackpack 'hatchet_swing';
  2764. _wset addItemToBackpack 'MeleeSledge';
  2765. _wset addItemToBackpack 'sledge_swing';
  2766. _wset addItemToBackpack 'srifle_EBR_F';
  2767. _wset addItemToBackpack '20Rnd_762x51_Mag';
  2768. _wset addItemToBackpack 'optic_DMS';
  2769. _wset addItemToBackpack 'optic_SOS';
  2770. _wset addItemToBackpack 'optic_MRCO';
  2771. _wset addItemToBackpack 'muzzle_snds_B';
  2772. _wset addVest 'V_BandollierB_cbr';
  2773. _wset addWeapon NVG_ITEM_PEWPEW;
  2774. _wset addWeapon 'Rangefinder';
  2775. _wset addPrimaryWeaponItem 'optic_Aco';
  2776. _wset addPrimaryWeaponItem 'muzzle_snds_M';
  2777. if(infiSTAR_MOD != 'Epoch')then{(unitBackpack _wset) additemCargo ['FirstAidKit',2];} else {(unitBackpack _wset) additemCargo ['FAK',2];};
  2778. (unitBackpack _wset) additemCargo ['30Rnd_556x45_Stanag', 9];
  2779. (unitBackpack _wset) additemCargo ['30Rnd_9x21_Mag', 9];
  2780. (unitBackpack _wset) additemCargo ['handGrenade', 2];
  2781. _wset addWeapon 'srifle_LRR_F';
  2782. [] call infiSTAR_A3addAmmo;
  2783. [] call infiSTAR_A3addAmmo;
  2784. [] call infiSTAR_A3addAmmo;
  2785. };
  2786. case 2: {
  2787. _wset = player;
  2788. _wset addHeadgear 'H_Beret_02';
  2789. _wset addGoggles 'G_Sport_Blackred';
  2790. _wset addUniform 'U_OrestesBody';
  2791. _wset addVest 'V_BandollierB_cbr';
  2792. _wset addBackpack 'B_Carryall_oli';
  2793. _wset addWeapon NVG_ITEM_PEWPEW;
  2794. _wset addWeapon 'Rangefinder';
  2795. _wset addMagazine '30Rnd_9x21_Mag';
  2796. _wset addweapon 'hgun_PDW2000_Holo_snds_F';
  2797. _wset addMagazine '6Rnd_45ACP_Cylinder';
  2798. _wset addweapon 'hgun_Pistol_heavy_02_Yorris_F';
  2799. _wset addPrimaryWeaponItem 'muzzle_snds_B';
  2800. _wset addPrimaryWeaponItem 'acc_pointer_IR';
  2801. _wset addWeaponGlobal 'ItemCompass';
  2802. _wset addWeaponGlobal 'ItemMap';
  2803. _wset addWeaponGlobal 'Itemgps';
  2804. _wset addWeaponGlobal 'ItemWatch';
  2805. if(infiSTAR_MOD != 'Epoch')then{_wset addWeaponGlobal 'itemradio';} else {_wset addWeaponGlobal 'epochradio0';};
  2806. if(infiSTAR_MOD != 'Epoch')then{(unitBackpack _wset) additemCargo ['FirstAidKit',2];} else {(unitBackpack _wset) additemCargo ['FAK',2];};
  2807. (unitBackpack _wset) additemCargo ['30Rnd_9x21_Mag', 9];
  2808. (unitBackpack _wset) additemCargo ['6Rnd_45ACP_Cylinder', 9];
  2809. };
  2810. case 3: {
  2811. _wset = player;
  2812. _wset addHeadgear 'H_Beret_02';
  2813. _wset addGoggles 'G_Sport_Blackred';
  2814. _wset addUniform 'U_IG_Guerilla3_1';
  2815. _wset addVest 'V_BandollierB_cbr';
  2816. _wset addBackpack 'B_Carryall_oli';
  2817. _wset addWeapon NVG_ITEM_PEWPEW;
  2818. _wset addWeapon 'Rangefinder';
  2819. _wset addMagazine '30Rnd_556x45_Stanag';
  2820. _wset addweapon 'arifle_TRG21_ACO_grn_smg';
  2821. _wset addMagazine '30Rnd_9x21_Mag';
  2822. _wset addweapon 'hgun_P07_F';
  2823. _wset addPrimaryWeaponItem 'optic_Aco';
  2824. _wset addPrimaryWeaponItem 'muzzle_snds_M';
  2825. _wset addHandgunItem 'muzzle_snds_L';
  2826. _wset addWeaponGlobal 'ItemCompass';
  2827. _wset addWeaponGlobal 'ItemMap';
  2828. _wset addWeaponGlobal 'Itemgps';
  2829. _wset addWeaponGlobal 'ItemWatch';
  2830. if(infiSTAR_MOD != 'Epoch')then{_wset addWeaponGlobal 'itemradio';} else {_wset addWeaponGlobal 'epochradio0';};
  2831. if(infiSTAR_MOD != 'Epoch')then{(unitBackpack _wset) additemCargo ['FirstAidKit',2];} else {(unitBackpack _wset) additemCargo ['FAK',2];};
  2832. (unitBackpack _wset) additemCargo ['30Rnd_556x45_Stanag', 9];
  2833. (unitBackpack _wset) additemCargo ['30Rnd_9x21_Mag', 9];
  2834. (unitBackpack _wset) additemCargo ['handGrenade', 2];
  2835. };
  2836. case 4: {
  2837. _wset = player;
  2838. _wset addHeadgear 'H_Beret_02';
  2839. _wset addGoggles 'G_Sport_Blackred';
  2840. _wset addUniform 'U_OG_leader';
  2841. _wset addVest 'V_BandollierB_cbr';
  2842. _wset addBackpack 'B_Carryall_oli';
  2843. _wset addWeapon NVG_ITEM_PEWPEW;
  2844. _wset addWeapon 'Rangefinder';
  2845. _wset addweapon 'LMG_Zafir_F';
  2846. _wset addMagazine '150Rnd_762x54_Box_Tracer';
  2847. _wset addMagazine '30Rnd_9x21_Mag';
  2848. _wset addweapon 'hgun_P07_F';
  2849. _wset addPrimaryWeaponItem 'optic_LRPS';
  2850. _wset addPrimaryWeaponItem 'acc_pointer_IR';
  2851. _wset addHandgunItem 'muzzle_snds_L';
  2852. _wset addWeaponGlobal 'ItemCompass';
  2853. _wset addWeaponGlobal 'ItemMap';
  2854. _wset addWeaponGlobal 'Itemgps';
  2855. _wset addWeaponGlobal 'ItemWatch';
  2856. if(infiSTAR_MOD != 'Epoch')then{_wset addWeaponGlobal 'itemradio';} else {_wset addWeaponGlobal 'epochradio0';};
  2857. if(infiSTAR_MOD != 'Epoch')then{(unitBackpack _wset) additemCargo ['FirstAidKit',2];} else {(unitBackpack _wset) additemCargo ['FAK',2];};
  2858. (unitBackpack _wset) additemCargo ['150Rnd_762x54_Box_Tracer', 9];
  2859. (unitBackpack _wset) additemCargo ['30Rnd_9x21_Mag', 9];
  2860. (unitBackpack _wset) additemCargo ['handGrenade', 2];
  2861. };
  2862. case 5: {
  2863. _wset = player;
  2864. _wset addHeadgear 'H_Beret_02';
  2865. _wset addGoggles 'G_Sport_Blackred';
  2866. _wset addUniform 'U_O_GhillieSuit';
  2867. _wset addVest 'V_BandollierB_cbr';
  2868. _wset addBackpack 'B_Carryall_oli';
  2869. _wset addWeapon NVG_ITEM_PEWPEW;
  2870. _wset addWeapon 'Rangefinder';
  2871. _wset addMagazine '10Rnd_762x54_Mag';
  2872. _wset addweapon 'srifle_DMR_01_F';
  2873. _wset addMagazine '30Rnd_9x21_Mag';
  2874. _wset addweapon 'hgun_P07_F';
  2875. _wset addPrimaryWeaponItem 'acc_pointer_IR';
  2876. _wset addPrimaryWeaponItem 'optic_MRCO';
  2877. _wset addHandgunItem 'muzzle_snds_L';
  2878. _wset addWeaponGlobal 'ItemCompass';
  2879. _wset addWeaponGlobal 'ItemMap';
  2880. _wset addWeaponGlobal 'Itemgps';
  2881. _wset addWeaponGlobal 'ItemWatch';
  2882. if(infiSTAR_MOD != 'Epoch')then{_wset addWeaponGlobal 'itemradio';} else {_wset addWeaponGlobal 'epochradio0';};
  2883. if(infiSTAR_MOD != 'Epoch')then{(unitBackpack _wset) additemCargo ['FirstAidKit',2];} else {(unitBackpack _wset) additemCargo ['FAK',2];};
  2884. (unitBackpack _wset) additemCargo ['10Rnd_762x54_Mag', 9];
  2885. (unitBackpack _wset) additemCargo ['30Rnd_9x21_Mag', 9];
  2886. (unitBackpack _wset) additemCargo ['handGrenade', 2];
  2887. };
  2888. case 6: {
  2889. _wset = player;
  2890. _wset addGoggles 'G_Sport_Blackred';
  2891. _wset addUniform 'U_O_CombatUniform_oucamo';
  2892. _wset addVest 'V_BandollierB_cbr';
  2893. _wset addBackpack 'B_Carryall_oli';
  2894. _wset addWeapon NVG_ITEM_PEWPEW;
  2895. _wset addWeapon 'Rangefinder';
  2896. _wset addMagazine '7Rnd_408_Mag';
  2897. _wset addweapon 'srifle_LRR_F';
  2898. _wset addMagazine '30Rnd_9x21_Mag';
  2899. _wset addweapon 'hgun_P07_F';
  2900. _wset addPrimaryWeaponItem 'acc_pointer_IR';
  2901. _wset addPrimaryWeaponItem 'optic_MRCO';
  2902. _wset addHandgunItem 'muzzle_snds_L';
  2903. _wset addWeaponGlobal 'ItemCompass';
  2904. _wset addWeaponGlobal 'ItemMap';
  2905. _wset addWeaponGlobal 'Itemgps';
  2906. _wset addWeaponGlobal 'ItemWatch';
  2907. if(infiSTAR_MOD != 'Epoch')then{_wset addWeaponGlobal 'itemradio';} else {_wset addWeaponGlobal 'epochradio0';};
  2908. if(infiSTAR_MOD != 'Epoch')then{(unitBackpack _wset) additemCargo ['FirstAidKit',2];} else {(unitBackpack _wset) additemCargo ['FAK',2];};
  2909. (unitBackpack _wset) additemCargo ['7Rnd_408_Mag', 9];
  2910. (unitBackpack _wset) additemCargo ['30Rnd_9x21_Mag', 9];
  2911. (unitBackpack _wset) additemCargo ['handGrenade', 2];
  2912. };
  2913. case 7: {
  2914. _wset = player;
  2915. _wset addHeadgear 'H_Beret_02';
  2916. _wset addGoggles 'G_Sport_Blackred';
  2917. _wset addUniform 'U_O_GhillieSuit';
  2918. _wset addVest 'V_BandollierB_cbr';
  2919. _wset addBackpack 'B_Carryall_oli';
  2920. _wset addWeapon NVG_ITEM_PEWPEW;
  2921. _wset addWeapon 'Rangefinder';
  2922. _wset addMagazine '5Rnd_127x108_Mag';
  2923. _wset addweapon 'srifle_GM6_F';
  2924. _wset addMagazine '30Rnd_9x21_Mag';
  2925. _wset addweapon 'hgun_P07_F';
  2926. _wset addPrimaryWeaponItem 'optic_LRPS';
  2927. _wset addPrimaryWeaponItem 'acc_pointer_IR';
  2928. _wset addHandgunItem 'muzzle_snds_L';
  2929. _wset addWeaponGlobal 'ItemCompass';
  2930. _wset addWeaponGlobal 'ItemMap';
  2931. _wset addWeaponGlobal 'Itemgps';
  2932. _wset addWeaponGlobal 'ItemWatch';
  2933. if(infiSTAR_MOD != 'Epoch')then{_wset addWeaponGlobal 'itemradio';} else {_wset addWeaponGlobal 'epochradio0';};
  2934. if(infiSTAR_MOD != 'Epoch')then{(unitBackpack _wset) additemCargo ['FirstAidKit',2];} else {(unitBackpack _wset) additemCargo ['FAK',2];};
  2935. (unitBackpack _wset) additemCargo ['5Rnd_127x108_Mag', 9];
  2936. (unitBackpack _wset) additemCargo ['30Rnd_9x21_Mag', 9];
  2937. (unitBackpack _wset) additemCargo ['handGrenade', 2];
  2938. };
  2939. case 8: {
  2940. _wset = player;
  2941. _wset addHeadgear 'H_Beret_02';
  2942. _wset addGoggles 'G_Sport_Blackred';
  2943. _wset addUniform 'U_O_GhillieSuit';
  2944. _wset addVest 'V_BandollierB_cbr';
  2945. _wset addBackpack 'B_Carryall_oli';
  2946. _wset addWeapon NVG_ITEM_PEWPEW;
  2947. _wset addWeapon 'Rangefinder';
  2948. _wset addMagazine '5Rnd_127x108_Mag';
  2949. _wset addweapon 'm107Tan_EPOCH';
  2950. _wset addMagazine '30Rnd_9x21_Mag';
  2951. _wset addweapon 'hgun_P07_F';
  2952. _wset addPrimaryWeaponItem 'optic_LRPS';
  2953. _wset addPrimaryWeaponItem 'acc_pointer_IR';
  2954. _wset addHandgunItem 'muzzle_snds_L';
  2955. _wset addWeaponGlobal 'ItemCompass';
  2956. _wset addWeaponGlobal 'ItemMap';
  2957. _wset addWeaponGlobal 'Itemgps';
  2958. _wset addWeaponGlobal 'ItemWatch';
  2959. if(infiSTAR_MOD != 'Epoch')then{_wset addWeaponGlobal 'itemradio';} else {_wset addWeaponGlobal 'epochradio0';};
  2960. if(infiSTAR_MOD != 'Epoch')then{(unitBackpack _wset) additemCargo ['FirstAidKit',2];} else {(unitBackpack _wset) additemCargo ['FAK',2];};
  2961. (unitBackpack _wset) additemCargo ['5Rnd_127x108_Mag', 9];
  2962. (unitBackpack _wset) additemCargo ['30Rnd_9x21_Mag', 9];
  2963. (unitBackpack _wset) additemCargo ['handGrenade', 2];
  2964. };
  2965. default { _log = 'no loadout selected';_log call FN_SHOW_LOG; };
  2966. };
  2967. };
  2968. fnc_spawn_timemachine = {
  2969. _offset = _this select 0;
  2970. [6,player,_offset] call fnc_AdminReq;
  2971. _log = format['DayTime changed to hour %1',_offset];
  2972. _log call FN_SHOW_LOG;
  2973. };
  2974. fnc_mass_message = {
  2975. disableSerialization;
  2976. _display = findDisplay 24;
  2977. if(isNull _display)exitWith
  2978. {
  2979. _log = 'open your chat, type a message and start this function again!';
  2980. _log call FN_SHOW_LOG;
  2981. };
  2982. _chat = _display displayCtrl 101;
  2983. _msg = ctrlText _chat;
  2984. (_display) closeDisplay 0;
  2985. [7,player,toArray _msg] call fnc_AdminReq;
  2986. _log = format['Mass Message: %1',_msg];
  2987. _log call fnc_adminLog;
  2988. _log call FN_SHOW_LOG;
  2989. };
  2990. fnc_freezeTarget = {
  2991. _target = _this select 0;
  2992. _value = _this select 1;
  2993. if(typeName _target != 'OBJECT')exitWith
  2994. {
  2995. _log = 'Target is not an Object!';
  2996. _log call FN_SHOW_LOG;
  2997. };
  2998. if!(isPlayer _target)exitWith
  2999. {
  3000. _log = 'Target is not a Player!';
  3001. _log call FN_SHOW_LOG;
  3002. };
  3003. [13,player,_target,_value] call fnc_AdminReq;
  3004. _log = format['UnFroze %1!',name _target];
  3005. if(_value)then{_log = format['Froze %1!',name _target];};
  3006. _log call FN_SHOW_LOG;
  3007. };
  3008. fnc_restrainTarget = {
  3009. _target = _this select 0;
  3010. _value = _this select 1;
  3011. if(typeName _target != 'OBJECT')exitWith
  3012. {
  3013. _log = 'Target is not an Object!';
  3014. _log call FN_SHOW_LOG;
  3015. };
  3016. if!(isPlayer _target)exitWith
  3017. {
  3018. _log = 'Target is not a Player!';
  3019. _log call FN_SHOW_LOG;
  3020. };
  3021. [15,player,_target,_value] call fnc_AdminReq;
  3022. _log = format['Unrestrained %1!',name _target];
  3023. if(_value)then{_log = format['Restrained %1!',name _target];};
  3024. _log call FN_SHOW_LOG;
  3025. };
  3026. "; if(_MOD == 'Epoch')then{ infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  3027. fnc_spawn_CryptoINSERTVALUE = {
  3028. disableSerialization;
  3029. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 654002);
  3030. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCText', 654002];
  3031. (findDisplay MAIN_DISPLAY_ID displayCtrl 654002) ctrlSetPosition [
  3032. 0.554062 * safezoneW + safezoneX,
  3033. 0.4,
  3034. 0.255781 * safezoneW,
  3035. 0.033 * safezoneH
  3036. ];
  3037.  
  3038. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 654001);
  3039. findDisplay MAIN_DISPLAY_ID ctrlCreate['RscXSliderH', 654001];
  3040. _slider1 = (findDisplay MAIN_DISPLAY_ID displayCtrl 654001);
  3041. _slider1 ctrlSetPosition [
  3042. 0.554062 * safezoneW + safezoneX,
  3043. 0.45
  3044. ];
  3045. _slider1 ctrlSetBackgroundColor [0.15,0.15,0.15,1];
  3046. _slider1 ctrlCommit 0;
  3047.  
  3048. ctrlDelete ((findDisplay MAIN_DISPLAY_ID) displayCtrl 654003);
  3049. findDisplay MAIN_DISPLAY_ID ctrlCreate['RSCButton', 654003];
  3050. (findDisplay MAIN_DISPLAY_ID displayCtrl 654003) ctrlSetText 'OK';
  3051. (findDisplay MAIN_DISPLAY_ID displayCtrl 654003) ctrlSetPosition [
  3052. 0.725 * safezoneW + safezoneX,
  3053. 0.45,
  3054. 0.0360937 * safezoneW,
  3055. 0.033 * safezoneH
  3056. ];
  3057. (findDisplay MAIN_DISPLAY_ID displayCtrl 654003) ctrlCommit 0;
  3058. (findDisplay MAIN_DISPLAY_ID displayCtrl 654003) ctrlSetEventHandler['ButtonClick','
  3059. if(isNil''SELECTED_TARGET_PLAYER'')exitWith{};
  3060. if(isNull SELECTED_TARGET_PLAYER)exitWith{};
  3061. if!(isPlayer SELECTED_TARGET_PLAYER)exitWith{};
  3062. if!(alive SELECTED_TARGET_PLAYER)exitWith{};
  3063. if(CRYPTO_CHANGE_VALUE == 0)exitWith{};
  3064.  
  3065. disableSerialization;
  3066. _slider1 = (findDisplay MAIN_DISPLAY_ID displayCtrl 654001);
  3067. _value = CRYPTO_CHANGE_VALUE;
  3068. _value = (_value min 250000) max -250000;
  3069. _value = round _value;
  3070.  
  3071. [12,player,SELECTED_TARGET_PLAYER,_value] call fnc_AdminReq;
  3072. _log = format[''Added %1 Crypto to %2!'',_value,name SELECTED_TARGET_PLAYER];
  3073. if(_value < 0)then
  3074. {
  3075. _log = format[''Removed %1 Crypto from %2!'',_value,name SELECTED_TARGET_PLAYER];
  3076. };
  3077. _log call FN_SHOW_LOG;
  3078. '];
  3079.  
  3080. if(!isNil'fnc_spawn_CryptoINSERTVALUETHREAD')then{terminate fnc_spawn_CryptoINSERTVALUETHREAD;};
  3081. fnc_spawn_CryptoINSERTVALUETHREAD = [] spawn {
  3082. disableSerialization;
  3083. _slider1 = (findDisplay MAIN_DISPLAY_ID displayCtrl 654001);
  3084. _slider1 sliderSetPosition 5;
  3085. while {!isNull findDisplay MAIN_DISPLAY_ID} do
  3086. {
  3087. _sliderPos = sliderPosition _slider1;
  3088. _value = 0;
  3089. if(_sliderPos < 5)then
  3090. {
  3091. _calc = 5-_sliderPos;
  3092. _value = -250000 * (_calc/5)
  3093. }
  3094. else
  3095. {
  3096. _calc = 10-_sliderPos;
  3097. _value = 250000 * (_calc/5);
  3098. _value = 250000 - _value;
  3099. };
  3100. _value = round _value;
  3101. CRYPTO_CHANGE_VALUE = _value;
  3102. if(_value < 0)then
  3103. {
  3104. (findDisplay MAIN_DISPLAY_ID displayCtrl 654002) ctrlSetText format['remove %1 crypto from %2',_value,name SELECTED_TARGET_PLAYER];
  3105. }
  3106. else
  3107. {
  3108. (findDisplay MAIN_DISPLAY_ID displayCtrl 654002) ctrlSetText format['add %1 crypto to %2',_value,name SELECTED_TARGET_PLAYER];
  3109. };
  3110. (findDisplay MAIN_DISPLAY_ID displayCtrl 654002) ctrlCommit 0;
  3111.  
  3112. uiSleep 0.1;
  3113. };
  3114. };
  3115. };
  3116. "; }; infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  3117. fnc_spawn_Box = {
  3118. _select = _this select 0;
  3119. _target = if(isNull (call fnc_LBSelChanged_LEFT))then{player} else {(call fnc_LBSelChanged_LEFT)};
  3120. _pos = _target modelToWorld [0,3,0];
  3121. [5000,player,_select,_pos] call fnc_AdminReq;
  3122. _log = format['Spawning Box %1 on the ground infront of %2!',_select,name _target];
  3123. _log call FN_SHOW_LOG;
  3124. };
  3125. fnc_Altislife_money = {
  3126. _state = _this select 0;
  3127. _amount = _this select 1;
  3128. if(typeName _state != 'STRING')exitWith{};
  3129. if(typeName _amount != 'SCALAR')exitWith{};
  3130. if(_amount == 0)exitWith{};
  3131. if(_state == 'cash')then
  3132. {
  3133. life_cash = life_cash + _amount;
  3134. _log = format['Cash %1K - %2K has been added.',life_cash/1000,_amount/1000];
  3135. _log call FN_SHOW_LOG;
  3136. };
  3137. if(_state == 'bank')then
  3138. {
  3139. life_atmcash = life_atmcash + _amount;
  3140. _log = format['Bank %1K - %2K has been added.',life_atmcash/1000,_amount/1000];
  3141. _log call FN_SHOW_LOG;
  3142. };
  3143. };
  3144. admin_showinfo = {
  3145. _obj = cursortarget;
  3146. if(!isNull _obj)then
  3147. {
  3148. _pos = getPosATL _obj;
  3149. _type = typeOf _obj;
  3150.  
  3151. _slot = call {
  3152. if!(_obj getVariable['VEHICLE_SLOT',-1] isEqualTo -1)exitWith{_obj getVariable['VEHICLE_SLOT',-1]};
  3153. if!(_obj getVariable['STORAGE_SLOT',-1] isEqualTo -1)exitWith{_obj getVariable['STORAGE_SLOT',-1]};
  3154. if!(_obj getVariable['BUILD_SLOT',-1] isEqualTo -1)exitWith{_obj getVariable['BUILD_SLOT',-1]};
  3155. 'none'
  3156. };
  3157.  
  3158. {
  3159. _x call FN_SHOW_LOG;
  3160. diag_log _x;
  3161. } forEach
  3162. [
  3163. format['%1, slot: %2',_type,_slot],
  3164. format['WorldSpace: [%1,%2], @%3',getDir _obj,_pos,mapGridPosition _pos],
  3165. if(isPlayer _obj)then{format['%1(%2) - damage %3',name _obj,getPlayerUID _obj,damage _obj]}else{format['Damage %1',damage _obj]},
  3166. '--'
  3167. ];
  3168.  
  3169.  
  3170. if(_type == 'PlotPole_EPOCH')then
  3171. {
  3172. if(alive _obj)then
  3173. {
  3174. _owner = _obj getVariable['BUILD_OWNER', '-1'];
  3175. _log2 = format['Owner UID %1',_owner];
  3176. {
  3177. if(getPlayerUID _x == _owner)then
  3178. {
  3179. _log2 = format['Owner %1(%2) - %3m far away',name _x,_owner,floor(_obj distance _x)];
  3180. };
  3181. } forEach allPlayers;
  3182. _log2 call FN_SHOW_LOG;
  3183. diag_log _log2;
  3184. };
  3185. };
  3186. };
  3187. };
  3188. fnc_infiSTAR_A3cargod = {
  3189. if(isNil 'A3carGodRun')then
  3190. {
  3191. MY_VEHICLES = [];
  3192. A3carGodRun = [] spawn {
  3193. while {true} do
  3194. {
  3195. _obj = cameraOn;
  3196. if(local _obj)then
  3197. {
  3198. if(_obj isKindOf 'Man')then
  3199. {
  3200. if!(MY_VEHICLES isEqualTo [])then
  3201. {
  3202. {_x removeAllEventhandlers 'HandleDamage';_x allowDamage true;} forEach MY_VEHICLES;
  3203. MY_VEHICLES = [];
  3204. };
  3205. }
  3206. else
  3207. {
  3208. MY_VEHICLES pushBackUnique _obj;
  3209. _obj allowDamage false;
  3210. _obj removeAllEventhandlers 'HandleDamage';
  3211. _obj addEventHandler['HandleDamage',{false}];
  3212. };
  3213. };
  3214. uiSleep 1;
  3215. };
  3216. };
  3217.  
  3218. _log = 'Vehicle God Mode - Enabled';
  3219. _log call FN_SHOW_LOG;
  3220. }
  3221. else
  3222. {
  3223. terminate A3carGodRun;A3carGodRun=nil;
  3224. {_x removeAllEventhandlers 'HandleDamage';_x allowDamage true;} forEach MY_VEHICLES;
  3225.  
  3226. _log = 'Vehicle God Mode - Disabled';
  3227. _log call FN_SHOW_LOG;
  3228. };
  3229. };
  3230. fnc_LowerTerrain = {
  3231. if(isNil 'admin_terrain')then{admin_terrain = true;} else {admin_terrain = !admin_terrain};
  3232. if(admin_terrain)then{
  3233. setTerrainGrid 50;
  3234. _log = 'Terrain Low';
  3235. _log call FN_SHOW_LOG;
  3236. }
  3237. else
  3238. {
  3239. setTerrainGrid 25;
  3240. _log = 'Terrain Normal';
  3241. _log call FN_SHOW_LOG;
  3242. };
  3243. };
  3244. fnc_infiSTAR_A3UnlAmmo = {
  3245. if(isNil 'unlimAmmRun')then
  3246. {
  3247. _log = 'Unlimited Ammo ON';
  3248. _log call FN_SHOW_LOG;
  3249.  
  3250. unlimAmmRun = [] spawn {
  3251. while {true} do
  3252. {
  3253. if(local vehicle player)then{
  3254. vehicle player setAmmo [currentWeapon vehicle player, 1000000];
  3255. };
  3256. player setAmmo [primaryWeapon player, 1000000];
  3257. (vehicle player) setVehicleAmmo 1;
  3258. player setFatigue 0;
  3259. uiSleep 0.3;
  3260. };
  3261. };
  3262. }
  3263. else
  3264. {
  3265. _log = 'Unlimited Ammo OFF';
  3266. _log call FN_SHOW_LOG;
  3267.  
  3268. terminate unlimAmmRun;
  3269. unlimAmmRun = nil;
  3270. };
  3271. };
  3272. fnc_infiSTAR_A3noRecoil = {
  3273. if(isNil 'noRecoilRun')then
  3274. {
  3275. _log = 'No Recoil ON';
  3276. _log call FN_SHOW_LOG;
  3277.  
  3278. noRecoilRun = [] spawn {
  3279. while {true} do
  3280. {
  3281. (vehicle player) setUnitRecoilCoefficient 0;
  3282. player setUnitRecoilCoefficient 0;
  3283. player setCustomAimCoef 0;
  3284. player setFatigue 0;
  3285. uiSleep 2;
  3286. };
  3287. };
  3288. }
  3289. else
  3290. {
  3291. _log = 'No Recoil OFF';
  3292. _log call FN_SHOW_LOG;
  3293.  
  3294. terminate noRecoilRun;
  3295. noRecoilRun = nil;
  3296.  
  3297. (vehicle player) setUnitRecoilCoefficient 1;
  3298. player setUnitRecoilCoefficient 1;
  3299. };
  3300. };
  3301. fnc_infiSTAR_A3FF = {
  3302. if(isNil 'A3FFrun')then
  3303. {
  3304. _log = 'FastFire ON';
  3305. _log call FN_SHOW_LOG;
  3306.  
  3307. A3FFrun = [] spawn {
  3308. while {true} do
  3309. {
  3310. _muzzle = currentMuzzle player;
  3311. if(_muzzle isEqualType '')then{ (vehicle player) setWeaponReloadingTime [player, _muzzle, 0]; };
  3312. uiSleep 0.1;
  3313. };
  3314. };
  3315. }
  3316. else
  3317. {
  3318. _log = 'FastFire OFF';
  3319. _log call FN_SHOW_LOG;
  3320.  
  3321. terminate A3FFrun;
  3322. A3FFrun = nil;
  3323. };
  3324. };
  3325. fnc_infiSTARHIDE = {
  3326. if(isNil 'A3HIDErun')then{A3HIDErun = 0;};
  3327. if(A3HIDErun==0)then
  3328. {
  3329. A3HIDErun=1;
  3330. [2,player,A3HIDErun] call fnc_AdminReq;
  3331.  
  3332. _log = 'Stealth / Invisible ON';
  3333. _log call FN_SHOW_LOG;
  3334. }
  3335. else
  3336. {
  3337. A3HIDErun=0;
  3338. [2,player,A3HIDErun] call fnc_AdminReq;
  3339.  
  3340. _log = 'Stealth / Invisible OFF';
  3341. _log call FN_SHOW_LOG;
  3342. };
  3343. };
  3344. fnc_DisableAnnouncements = {
  3345. if(isNil 'A3DANNrun')then{A3DANNrun = 0;};
  3346. if(A3DANNrun==0)then
  3347. {
  3348. A3DANNrun=1;
  3349. AdminAnnounceDisabled = true;
  3350.  
  3351. _log = 'Disable Announces - ON';
  3352. _log call FN_SHOW_LOG;
  3353. }
  3354. else
  3355. {
  3356. A3DANNrun=0;
  3357. AdminAnnounceDisabled = nil;
  3358.  
  3359. _log = 'Disable Announces - OFF';
  3360. _log call FN_SHOW_LOG;
  3361. };
  3362. };
  3363. fnc_FreeRoamCam = {
  3364. if(isNil 'freeFlightCam')then
  3365. {
  3366. camDestroy freeFlightCam;
  3367. freeFlightCam = nil;
  3368. _getPos = player modelToWorld[0,3, 1.75];
  3369. freeFlightCam = 'camera' camCreate _getPos;
  3370. freeFlightCam setDir([_getPos, player] call BIS_fnc_dirTo);
  3371. freeFlightCam camCommand 'MANUAL ON';
  3372. freeFlightCam camCommand 'INERTIA OFF';
  3373. freeFlightCam cameraEffect['INTERNAL', 'BACK'];
  3374. showCinemaBorder false;
  3375. _log = 'Right Click To Cancel!';
  3376. _log call FN_SHOW_LOG;
  3377. }
  3378. else
  3379. {
  3380. camDestroy freeFlightCam;
  3381. freeFlightCam = nil;
  3382. };
  3383. };
  3384. fnc_BIS_FreeRoamCam = {
  3385. [] spawn (uinamespace getvariable 'bis_fnc_camera');
  3386. };
  3387. fnc_deleteVeh_selected = {
  3388. {player reveal _x;} foreach (player nearObjects 50);
  3389. _target = _this select 0;
  3390. if(typeName _target != 'OBJECT')then{_target = cursorTarget;};
  3391. if(isNull _target)then{_target = cursorObject;};
  3392. if(!isNull _target)then
  3393. {
  3394. _delete = (vehicle _target);
  3395.  
  3396. if(isNil 'DELETE_TARGET')then{DELETE_TARGET = objNull;};
  3397. if(str DELETE_TARGET != str _delete)exitWith
  3398. {
  3399. _type = typeOf _delete;
  3400. _displayName = gettext (configFile >> 'CfgVehicles' >> _type >> 'displayName');
  3401. _distance = round(cameraOn distance _delete);
  3402.  
  3403. _log = format['DELETE: %1 (%2) distance %3m? (press continue and delete again)',_displayName,_type,_distance];
  3404. _log call FN_SHOW_LOG;
  3405. DELETE_TARGET = _delete;
  3406. };
  3407.  
  3408. if(isNil 'ToDeleteArray')then{ToDeleteArray = [];};
  3409. if(_delete in ToDeleteArray)then
  3410. {
  3411. _log = format['%1 - IN DELETE QUEUE',_delete];
  3412. _log call FN_SHOW_LOG;
  3413. }
  3414. else
  3415. {
  3416. _netId = netId _delete;
  3417. if(_netId isEqualTo '0:0')then
  3418. {
  3419. deleteVehicle _delete;
  3420. }
  3421. else
  3422. {
  3423. ToDeleteArray pushBack _delete;
  3424. [-4,player,_delete] call fnc_AdminReq;
  3425. };
  3426.  
  3427. _log = format['Deleting %1 @%2..',typeOf _delete,mapGridPosition _delete];
  3428. if(getPlayerUID _target != '')then
  3429. {
  3430. _log = format['Deleting %1(%2) vehicle: %3 @%4..',name _target,getPlayerUID _target,typeOf _delete,mapGridPosition _delete];
  3431. };
  3432. _log call FN_SHOW_LOG;
  3433. _log call fnc_adminLog;
  3434. };
  3435. }
  3436. else
  3437. {
  3438. DELETE_TARGET = objNull;
  3439. };
  3440. };
  3441. CCG_fnc_adminClick = {
  3442. private ['_click'];
  3443. _click = _this select 0;
  3444. if(_click == '')exitWith{};
  3445. try {
  3446. switch (_click) do {
  3447. case 'BD: Set Center' : {
  3448. call CCG_fnc_bdSetCenter;
  3449. throw 'BASEDELETER: Set Center';
  3450. };
  3451. case 'BD: Set Radius' : {
  3452. call CCG_fnc_bdSetRadius;
  3453. throw 'BASEDELETER: Set Radius';
  3454. };
  3455. case 'BD: Cancel' : {
  3456. call CCG_fnc_bdCancel;
  3457. throw 'BASEDELETER: Cancel';
  3458. };
  3459. case 'BD: Delete' : {
  3460. call CCG_fnc_bdDelete;
  3461. throw 'BASEDELETER: Delete';
  3462. };
  3463. };
  3464. } catch {
  3465. _exception call FN_SHOW_LOG;
  3466. call fnc_FULLinit;
  3467. };
  3468. };
  3469. CCG_fnc_bdSetCenter = {
  3470. private ['_arrow'];
  3471. CCGbdCenter = getPosASL player;
  3472. _arrow = 'Sign_Arrow_F' createVehicleLocal [0,0,0];
  3473. _arrow setPosASL CCGbdCenter;
  3474. if(isNil 'CCGbdObjs')then{CCGbdObjs = [];};
  3475. CCGbdObjs pushBack _arrow;
  3476. };
  3477. CCG_fnc_bdSetRadius = {
  3478. private ['_arrow', '_pos', '_radius', '_angle', '_distance', '_count', '_step', '_count', '_step', '_objects'];
  3479. if(isNil 'CCGbdCenter')then{throw 'BASEDELETER: Center not set!';};
  3480. CCGbdRadius = [CCGbdCenter, getPosASL player] call BIS_fnc_distance2D;
  3481. _arrow = 'Sign_Arrow_F' createVehicleLocal [0,0,0];
  3482. _arrow setPosASL CCGbdCenter;
  3483. CCGbdObjs pushBack _arrow;
  3484. _angle = 0;
  3485. _count = round((2 * pi * CCGbdRadius) / 2);
  3486. if(_count == 0)then{throw 'BASEDELETER: Center and Radius position can not be the same!';};
  3487. for '_x' from 0 to _count do
  3488. {
  3489. private['_a', '_b', '_obj'];
  3490. _a = (CCGbdCenter select 0) + (sin(_angle)*CCGbdRadius);
  3491. _b = (CCGbdCenter select 1) + (cos(_angle)*CCGbdRadius);
  3492. _obj = 'Sign_Sphere100cm_F' createVehicleLocal [0,0,0];
  3493. _obj setPosASL [_a, _b, CCGbdCenter select 2];
  3494. CCGbdObjs pushBack _obj;
  3495. _angle = _angle + (360/_count);
  3496. };
  3497. for '_x' from 0 to _count do
  3498. {
  3499. private['_a', '_b', '_obj'];
  3500. _a = (CCGbdCenter select 0) + (sin(_angle)*CCGbdRadius);
  3501. _b = (CCGbdCenter select 2) + (cos(_angle)*CCGbdRadius);
  3502. _obj = 'Sign_Sphere100cm_F' createVehicleLocal [0,0,0];
  3503. _obj setPosASL [_a, CCGbdCenter select 1, _b];
  3504. CCGbdObjs pushBack _obj;
  3505. _angle = _angle + (360/_count);
  3506. };
  3507. for '_x' from 0 to _count do
  3508. {
  3509. private['_a', '_b', '_obj'];
  3510. _a = (CCGbdCenter select 1) + (sin(_angle)*CCGbdRadius);
  3511. _b = (CCGbdCenter select 2) + (cos(_angle)*CCGbdRadius);
  3512. _obj = 'Sign_Sphere100cm_F' createVehicleLocal [0,0,0];
  3513. _obj setPosASL [CCGbdCenter select 0, _a, _b];
  3514. CCGbdObjs pushBack _obj;
  3515. _angle = _angle + (360/_count);
  3516. };
  3517. };
  3518. CCG_fnc_bdGetObjectsToDelete = {
  3519. if(isNil 'CCGbdCenter')exitWith{[]};
  3520. if(isNil 'CCGbdRadius')exitWith{[]};
  3521. nearestObjects [ASLtoATL CCGbdCenter, ['ThingX', 'Constructions_static_F', 'Constructions_foundation_F', 'LockBox_EPOCH', 'PlotPole_EPOCH', 'StorageShelf_EPOCH'], CCGbdRadius]
  3522. };
  3523. CCG_fnc_bdDelete = {
  3524. private ['_objects'];
  3525. if(isNil 'CCGbdCenter')then{throw 'BASEDELETER: Center not set!';};
  3526. if(isNil 'CCGbdRadius')then{throw 'BASEDELETER: Radius not set!';};
  3527. _objects = call CCG_fnc_bdGetObjectsToDelete;
  3528. _objects spawn {
  3529. format['BASEDELETER: Deleting %1 objects. Please Wait...', count _this] call FN_SHOW_LOG;
  3530. {
  3531. format['BASEDELETER: Deleting %1 (%2/%3)', typeOf _x, _foreachindex + 1, count _this] call FN_SHOW_LOG;
  3532. [-4,player,_x] call fnc_AdminReq;
  3533. uiSleep 0.1;
  3534. } foreach _this;
  3535. format['BASEDELETER: Deleting complete.', count _this] call FN_SHOW_LOG;
  3536. };
  3537. call CCG_fnc_bdCancel;
  3538. };
  3539. CCG_fnc_bdCancel = {
  3540. CCGbdCenter = nil;
  3541. CCGbdRadius = nil;
  3542. {if(!isNull _x)then{deleteVehicle _x;};} foreach CCGbdObjs;
  3543. CCGbdObjs = [];
  3544. };
  3545. fnc_flipVeh = {
  3546. _target = _this select 0;
  3547. if(typeName _target != 'OBJECT')then
  3548. {
  3549. _target = cursorTarget;
  3550. };
  3551. if((!isNull _target) && {alive _target} && {_target isKindOf 'Landvehicle' || _target isKindOf 'Air' || _target isKindOf 'Ship'})then
  3552. {
  3553. if(local _target)then
  3554. {
  3555. _pos = getPos _target;
  3556. _pos set[2,(_pos select 2)+2];
  3557. _target setPos _pos;
  3558. _target setVectorUp [0,0,1];
  3559. }
  3560. else
  3561. {
  3562. [-3,player,_target] call fnc_AdminReq;
  3563. };
  3564.  
  3565. _log = format['Flipping %1 @%2..',typeOf _veh,mapGridPosition _target];
  3566. _log call FN_SHOW_LOG;
  3567. }
  3568. else
  3569. {
  3570. _log = 'invalid target';
  3571. if((!alive _target) && {_target isKindOf 'Landvehicle' || _target isKindOf 'Air' || _target isKindOf 'Ship'})then{_log = 'vehicle destroyed..';};
  3572. _log call FN_SHOW_LOG;
  3573. };
  3574. };
  3575. zeus_attack = {
  3576. _target = _this select 0;
  3577. _pos = screenToWorld [0.5,0.5];
  3578. _log = format['Zeus @%1',mapGridPosition _pos];
  3579. if(typeName _target != 'OBJECT')then
  3580. {
  3581. _target = cursorTarget;
  3582. };
  3583. if(!isNull _target)then
  3584. {
  3585. _pos = getPos _target;
  3586.  
  3587. _log = format['Zeus %1 @%2',typeOf _target,mapGridPosition _pos];
  3588. if(getPlayerUID _target != '')then
  3589. {
  3590. _log = format['Zeus %1(%2) @%3',name _target,getPlayerUID _target,mapGridPosition _pos];
  3591. };
  3592. };
  3593. _log call FN_SHOW_LOG;
  3594. _log call fnc_adminLog;
  3595. [-1,player,_pos] call fnc_AdminReq;
  3596. };
  3597. fnc_Kill_selected = {
  3598. _target = _this select 0;
  3599. if(typeName _target != 'OBJECT')then
  3600. {
  3601. _target = cursorTarget;
  3602. };
  3603. if(!isNull _target)then
  3604. {
  3605. if(alive _target)then
  3606. {
  3607. _log = format['Killing %1 @%2',typeOf _target,mapGridPosition _target];
  3608. if(getPlayerUID _target != '')then
  3609. {
  3610. _log = format['Killing %1(%2) @%3',name _target,getPlayerUID _target,mapGridPosition _target];
  3611. };
  3612. _log call FN_SHOW_LOG;
  3613. _log call fnc_adminLog;
  3614. [-2,player,_target] call fnc_AdminReq;
  3615. }
  3616. else
  3617. {
  3618. _log = 'target is dead';
  3619. _log call FN_SHOW_LOG;
  3620. };
  3621. }
  3622. else
  3623. {
  3624. _log = 'target does not exist';
  3625. _log call FN_SHOW_LOG;
  3626. };
  3627. };
  3628. fnc_createMinefield = {
  3629. _target = _this select 0;
  3630. if(typeName _target != 'OBJECT')then
  3631. {
  3632. _target = cursorTarget;
  3633. };
  3634. _pos = screenToWorld [0.5,0.5];
  3635. _log = format['MineField (around target) @%1',mapGridPosition _pos];
  3636. if(!isNull _target)then
  3637. {
  3638. _log = format['MineField (around target) %1 @%2',typeOf _target,mapGridPosition _target];
  3639. if(isPlayer _target)then
  3640. {
  3641. _log = format['MineField (around target) %1(%2) @%3',name _target,getPlayerUID _target,mapGridPosition _target];
  3642. };
  3643. _pos = ATLtoASL (_target modelToWorldVisual [0,0,0]);
  3644. };
  3645. _log call FN_SHOW_LOG;
  3646. _log call fnc_adminLog;
  3647.  
  3648. _mineFields =
  3649. [
  3650. [_pos,5]
  3651. ];
  3652. {
  3653. _center = _x select 0;
  3654. _radius = _x select 1;
  3655. for '_i' from 0 to 360 step (90 / _radius)*1 do
  3656. {
  3657. _location = [(_center select 0) + ((cos _i) * _radius), (_center select 1) + ((sin _i) * _radius),0];
  3658. _dir = ((_center select 0) - (_location select 0)) atan2 ((_center select 1) - (_location select 1));
  3659. _object = createVehicle ['APERSTripMine_Wire_Ammo', _location, [], 0, 'CAN_COLLIDE'];
  3660. _object setDir _dir;
  3661. };
  3662. } forEach _mineFields;
  3663. };
  3664. fnc_Explode_selected = {
  3665. _target = _this select 0;
  3666. if(typeName _target != 'OBJECT')then
  3667. {
  3668. _target = cursorTarget;
  3669. };
  3670. _pos = screenToWorld [0.5,0.5];
  3671. _log = format['Exploding @%1',mapGridPosition _pos];
  3672. if(!isNull _target)then
  3673. {
  3674. _log = format['Exploding %1 @%2',typeOf _target,mapGridPosition _target];
  3675. if(isPlayer _target)then
  3676. {
  3677. _log = format['Exploding %1(%2) @%3',name _target,getPlayerUID _target,mapGridPosition _target];
  3678. };
  3679.  
  3680. _eyepos = ASLToATL eyepos _target;if(surfaceIsWater _eyepos)then{_eyepos = eyepos _target;};
  3681. _pos = getPosVisual _target;
  3682. _pos set[2,_eyepos select 2];
  3683. };
  3684. _log call FN_SHOW_LOG;
  3685. _log call fnc_adminLog;
  3686. _bomb = 'HelicopterExploSmall' createVehicleLocal _pos;
  3687. };
  3688. fnc_Disconnect_selected = {
  3689. _target = _this select 0;
  3690. if(!isNull _target)then
  3691. {
  3692. _TUID = getPlayerUID _target;
  3693. if(_TUID != '')then
  3694. {
  3695. [-664,player,_TUID] call fnc_AdminReq;
  3696. _log = format['Disconnect %1(%2)',name _target,_TUID];
  3697. _log call FN_SHOW_LOG;
  3698. };
  3699. }
  3700. else
  3701. {
  3702. _log = 'target does not exist';
  3703. _log call FN_SHOW_LOG;
  3704. };
  3705. };
  3706. fnc_Kick_selected = {
  3707. _target = _this select 0;
  3708. _opt = _this select 1;
  3709. if(!isNull _target)then
  3710. {
  3711. _TUID = getPlayerUID _target;
  3712. if(_TUID != '')then
  3713. {
  3714. _TNAME = name _target;
  3715. [-665,player,_TUID,_TNAME] call fnc_AdminReq;
  3716. if(_opt == 1)then
  3717. {
  3718. _msg = format['%1(%2) has been KICKED by an Admin!',_TNAME,_TUID];
  3719. [7,player,toArray _msg] call fnc_AdminReq;
  3720. };
  3721.  
  3722. _log = format['Kicking %1(%2)',_TNAME,_TUID];
  3723. _log call FN_SHOW_LOG;
  3724. };
  3725. }
  3726. else
  3727. {
  3728. _log = 'target does not exist';
  3729. _log call FN_SHOW_LOG;
  3730. };
  3731. };
  3732. fnc_Ban_selected = {
  3733. _target = _this select 0;
  3734. _opt = _this select 1;
  3735. if(!isNull _target)then
  3736. {
  3737. _TUID = getPlayerUID _target;
  3738. if(_TUID != '')then
  3739. {
  3740. _TNAME = name _target;
  3741. [-666,player,_TUID,_TNAME] call fnc_AdminReq;
  3742. if(_opt == 1)then
  3743. {
  3744. _msg = format['%1(%2) has been BANNED by an Admin!',_TNAME,_TUID];
  3745. [7,player,toArray _msg] call fnc_AdminReq;
  3746. };
  3747.  
  3748. _log = format['Ban %1(%2)',_TNAME,_TUID];
  3749. _log call FN_SHOW_LOG;
  3750. };
  3751. }
  3752. else
  3753. {
  3754. _log = 'target does not exist';
  3755. _log call FN_SHOW_LOG;
  3756. };
  3757. };
  3758. fnc_ATTACH_TO = {
  3759. if(isNil'LastAttachedObject')then{LastAttachedObject=objNull;};
  3760. if(!isNull LastAttachedObject)exitWith{detach LastAttachedObject;LastAttachedObject = nil;};
  3761.  
  3762. _target = _this select 0;
  3763. if(typeName _target != 'OBJECT')then
  3764. {
  3765. _target = cursorTarget;
  3766. };
  3767. if(!isNull _target)then
  3768. {
  3769. _bbr = boundingBoxReal _target;
  3770. _p1 = _bbr select 0;
  3771. _p2 = _bbr select 1;
  3772. _offset = 5;
  3773. _maxWidth = abs ((_p2 select 0) - (_p1 select 0));
  3774. _maxLength = abs ((_p2 select 1) - (_p1 select 1));
  3775. if(_maxWidth > _offset)then{_offset = _maxWidth;};
  3776. if(_maxLength > _offset)then{_offset = _maxLength;};
  3777.  
  3778. _bbr = boundingBoxReal vehicle player;
  3779. _p1 = _bbr select 0;
  3780. _p2 = _bbr select 1;
  3781. _maxHeight = abs ((_p2 select 2) - (_p1 select 2));
  3782.  
  3783. [5,player,_target,_offset,_maxHeight] call fnc_AdminReq;
  3784. LastAttachedObject = _target;
  3785.  
  3786. _log = format['Attaching %1 to player',typeOf _target];
  3787. _log call FN_SHOW_LOG;
  3788. }
  3789. else
  3790. {
  3791. _log = 'target does not exist';
  3792. _log call FN_SHOW_LOG;
  3793. };
  3794. };
  3795. fnc_spawn_EVENT = {
  3796. _target = _this select 0;
  3797. _EVENT = _this select 1;
  3798.  
  3799. if(infiSTAR_MOD != 'Epoch')exitWith{
  3800. _log = 'Epoch Only!';
  3801. _log call FN_SHOW_LOG;
  3802. };
  3803.  
  3804. if(!isNull _target)then
  3805. {
  3806. [4,player,_target,_EVENT] call fnc_AdminReq;
  3807.  
  3808. _log = format['%1..',_EVENT];
  3809. _log call FN_SHOW_LOG;
  3810. }
  3811. else
  3812. {
  3813. _log = 'target does not exist';
  3814. _log call FN_SHOW_LOG;
  3815. };
  3816. };
  3817. fnc_ReviveTarget = {
  3818. _target = _this select 0;
  3819. if(isNil'_target')then
  3820. {
  3821. _target = cursorTarget;
  3822. };
  3823. if(isNull _target)exitWith
  3824. {
  3825. _log = 'Can not revive: target does not exist!';
  3826. _log call FN_SHOW_LOG;
  3827. };
  3828. if!(isPlayer _target)exitWith
  3829. {
  3830. _log = 'Can not revive: target not a player!';
  3831. _log call FN_SHOW_LOG;
  3832. };
  3833. if((getPlayerUID _target) isEqualTo '')exitWith
  3834. {
  3835. _log = 'Can not revive: player left target body already..!';
  3836. _log call FN_SHOW_LOG;
  3837. };
  3838. _log = format['Revived %1(%2) @%3',name _target,getPlayerUID _target,mapGridPosition _target];
  3839. _log call FN_SHOW_LOG;
  3840.  
  3841.  
  3842. closeDialog 0;
  3843. if(infiSTAR_MOD == 'AltisLife')then
  3844. {
  3845. _target setVariable ['Revive',false,true];
  3846. [profileName] remoteExec ['life_fnc_revived',_target];
  3847. }
  3848. else
  3849. {
  3850. [8,player,_target] call fnc_AdminReq;
  3851. };
  3852. };
  3853. fnc_HealTarget = {
  3854. _target = _this select 0;
  3855. if(typeName _target != 'OBJECT')then
  3856. {
  3857. _target = cursorTarget;
  3858. };
  3859. if(!isNull _target)then
  3860. {
  3861. _log = format['Healed %1 @%2',typeOf _target,mapGridPosition _target];
  3862. if(getPlayerUID _target != '')then
  3863. {
  3864. _log = format['Healed %1(%2) @%3',name _target,getPlayerUID _target,mapGridPosition _target];
  3865. };
  3866. _log call FN_SHOW_LOG;
  3867. [9,player,_target] call fnc_AdminReq;
  3868. }
  3869. else
  3870. {
  3871. _log = 'target does not exist';
  3872. _log call FN_SHOW_LOG;
  3873. };
  3874. };
  3875. fnc_RepairTarget = {
  3876. _target = _this select 0;
  3877. if(typeName _target != 'OBJECT')then
  3878. {
  3879. _target = cursorTarget;
  3880. };
  3881. if(!isNull _target)then
  3882. {
  3883. _log = format['%1 @%2 - Repaired & Refueled',typeOf _target,mapGridPosition _target];
  3884. if(getPlayerUID _target != '')then
  3885. {
  3886. _log = format['%1 @%2 - Repaired & Refueled @%3',name _target,getPlayerUID _target,mapGridPosition _target];
  3887. };
  3888. _log call FN_SHOW_LOG;
  3889.  
  3890. [9,player,vehicle _target] call fnc_AdminReq;
  3891. (vehicle _target) setFuel 1;
  3892. }
  3893. else
  3894. {
  3895. _log = 'target does not exist';
  3896. _log call FN_SHOW_LOG;
  3897. };
  3898. };
  3899. infiSTAR_A3Heal = {
  3900. if(!isNil 'life_cash')then{life_thirst = 100;life_hunger = 100;};
  3901. if(infiSTAR_MOD == 'Epoch')then{
  3902. setPlayerRespawnTime 5;
  3903. };
  3904. [9,player,cameraOn] call fnc_AdminReq;
  3905. _log = format['Healed: %1',name cameraOn];
  3906. _log call FN_SHOW_LOG;
  3907. };
  3908. infiSTAR_A3RestoreNear = {
  3909. if(!isNil 'life_cash')then{life_thirst = 100;life_hunger = 100;};
  3910.  
  3911. _done = [];
  3912. {
  3913. _crewandobject = [_x];
  3914. _crewandobject append (crew _x);
  3915.  
  3916. {
  3917. _id = _done pushBackUnique _x;
  3918. if(_id > -1)then
  3919. {
  3920. [9,player,_x] call fnc_AdminReq;
  3921. };
  3922. } forEach _crewandobject;
  3923. } forEach (cameraOn nearEntities ['AllVehicles',15]);
  3924.  
  3925. _log = 'Restored Near';
  3926. _log call FN_SHOW_LOG;
  3927. };
  3928. infiSTAR_A3Togglelock = {
  3929. private ['_veh'];
  3930. {player reveal _x;} foreach (position player nearObjects 50);
  3931. _veh = vehicle player;
  3932. if(vehicle player == player)then
  3933. {
  3934. _veh = cursorTarget;
  3935. };
  3936. if(isNull _veh)exitWith
  3937. {
  3938. _log = 'target does not exist';
  3939. _log call FN_SHOW_LOG;
  3940. };
  3941. if(!alive _veh)exitWith
  3942. {
  3943. _log = 'target is destroyed ';
  3944. _log call FN_SHOW_LOG;
  3945. };
  3946. if(_veh isKindOf 'AllVehicles')exitWith{
  3947. if((player distance _veh < 12) || ((_veh == vehicle player) && (vehicle player != player)))then
  3948. {
  3949. _locked = locked _veh;
  3950. if(_locked isEqualTo 2)then
  3951. {
  3952. if(infiSTAR_MOD == 'AltisLife')then
  3953. {
  3954. _veh lock 0;
  3955. [_veh,0] remoteExec ['life_fnc_lockVehicle',_veh];
  3956. [_veh,'unlockCarSound'] remoteExec ['life_fnc_say3D',0];
  3957. }
  3958. else
  3959. {
  3960. _veh lock false;
  3961. [10,player,_veh,false] call fnc_AdminReq;
  3962. };
  3963. _log = format['unlocked - [%1]',typeOf _veh];
  3964. _log call FN_SHOW_LOG;
  3965. _log call fnc_adminLog;
  3966. }
  3967. else
  3968. {
  3969. if(infiSTAR_MOD == 'AltisLife')then
  3970. {
  3971. _veh lock 2;
  3972. [_veh,2] remoteExec ['life_fnc_lockVehicle',_veh];
  3973. [_veh,'lockCarSound'] remoteExec ['life_fnc_say3D',0];
  3974. }
  3975. else
  3976. {
  3977. _veh lock true;
  3978. [10,player,_veh,true] call fnc_AdminReq;
  3979. };
  3980. _log = format['locked - [%1]',typeOf _veh];
  3981. _log call FN_SHOW_LOG;
  3982. _log call fnc_adminLog;
  3983. };
  3984. };
  3985. };
  3986.  
  3987. {
  3988. _animationPhase = cursorTarget animationPhase _x;
  3989. cursorTarget animate [_x,if(_animationPhase > 0)then{0}else{1}];
  3990. } forEach ['DoorRotation','DoorRotationLeft','DoorRotationRight','open_left','open_right','lock_cGarage','Open_Door','lock_Door','raise','Open_top','Open_bot'];
  3991. };
  3992. infiSTAR_UpgradeBuilding = {
  3993. _object=cursorTarget;
  3994. if(isNull _object)exitWith{};
  3995. if(_object isKindOf 'Constructions_static_F')then
  3996. {
  3997. _upgrade = getArray(configFile >> 'CfgVehicles' >> (typeOf _object) >> 'upgradeBuilding');
  3998. if !(_upgrade isEqualTo [])then
  3999. {
  4000. [14,player,[_object,player,Epoch_personalToken]] call fnc_AdminReq;
  4001. _log = format['Upgraded %1',typeOf _object];
  4002. _log call fnc_adminLog;
  4003. }
  4004. else
  4005. {
  4006. _log = format['Can not Upgrade typeOf building %1',typeOf _object];
  4007. _log call fnc_adminLog;
  4008. };
  4009. };
  4010. };
  4011. infiSTAR_A3addAmmo = {
  4012. if(isNil'SELECTED_TARGET_PLAYER')then{SELECTED_TARGET_PLAYER=player;};
  4013. if(isNull SELECTED_TARGET_PLAYER)then{SELECTED_TARGET_PLAYER=player;};
  4014. if(!alive SELECTED_TARGET_PLAYER)then{SELECTED_TARGET_PLAYER=player;};
  4015. _log = '';
  4016. _veh = vehicle SELECTED_TARGET_PLAYER;
  4017. if(_veh == SELECTED_TARGET_PLAYER)then
  4018. {
  4019. _muzzle = currentMuzzle SELECTED_TARGET_PLAYER;
  4020. _magArray = getArray(configFile >> 'CfgWeapons' >> _muzzle >> 'magazines');
  4021. if((((toLower _muzzle) find '_gl' != -1) && {((toLower _muzzle) find '_glock' == -1)})||((toLower _muzzle) find 'm203' != -1))then
  4022. {
  4023. _pewpews = [];
  4024. {
  4025.  
  4026. if(((toLower _x) select [0,4] in ['1rnd','3rnd'])||((toLower _x) find 'ugl_' != -1))then
  4027. {
  4028. _pewpews pushBack _x;
  4029. };
  4030. } forEach ALL_MAGS_TO_SEARCH_C;
  4031. _magArray append _pewpews;
  4032. };
  4033. if(_magArray isEqualTo [])exitWith{};
  4034. [] call fnc_FULLinit;
  4035. fillmainstate = 6;
  4036. disableSerialization;
  4037. _ctrl = (findDisplay MAIN_DISPLAY_ID) displayCtrl RIGHT_CTRL_ID;
  4038. lbclear _ctrl;
  4039. _ctrl lbAdd '==== Magazines ====';
  4040. {
  4041. _ctrl lbAdd format['%1 (%2)',getText(configFile >> 'CfgMagazines' >> _x >> 'displayName'),_x];
  4042. _x call fnc_addpic;
  4043. _ctrl lbSetData [(lbsize _ctrl)-1,_x];
  4044. } forEach _magArray;
  4045. [] call fnc_colorizeMain;
  4046. for '_i' from 0 to 10 do {_ctrl lbAdd '';};
  4047. }
  4048. else
  4049. {
  4050. _log = format['%1 added Ammo to %2',profileName,typeOf _veh];
  4051. {_wep = _x;{_veh addmagazine _x;} forEach (getArray (configFile >> 'CfgWeapons' >> _wep >> 'magazines'));} forEach (weapons _veh);
  4052. };
  4053. _log call FN_SHOW_LOG;
  4054. _log call fnc_adminLog;
  4055. };
  4056. infiSTAR_A3Invulnerability = {
  4057. fnc_A3_stopGod =
  4058. {
  4059. player removeAllEventhandlers 'HandleDamage';
  4060. player removeAllEventhandlers 'Hit';
  4061. player removeAllEventhandlers 'Dammaged';
  4062. player removeAllEventhandlers 'Damaged';
  4063. player allowDamage true;
  4064. if((infiSTAR_MOD == 'AltisLife') && (!isNil 'life_fnc_HandleDamage'))then
  4065. {
  4066. player addEventHandler['HandleDamage',{_this call life_fnc_HandleDamage;}];
  4067. }
  4068. else
  4069. {
  4070. player addEventHandler ['HandleDamage',{}];
  4071. };
  4072. if(!isNil 'olife_fnc_tazed')then{life_fnc_tazed = olife_fnc_tazed;};
  4073. };
  4074. if(isNil 'infiSTAR_A3GodRun')then{infiSTAR_A3GodRun = 0;};
  4075. if(infiSTAR_A3GodRun == 0)then
  4076. {
  4077. infiSTAR_A3GodRun = 1;
  4078.  
  4079. if(!isNil 'life_fnc_tazed')then
  4080. {
  4081. if(isNil 'olife_fnc_tazed')then
  4082. {
  4083. olife_fnc_tazed = life_fnc_tazed;
  4084. };
  4085. life_fnc_tazed = {};
  4086. };
  4087. infiSTAR_A3InvulnerabilityLoop = [] spawn {
  4088. while {1==1} do
  4089. {
  4090. if(infiSTAR_A3GodRun == 0)exitWith{call fnc_A3_stopGod;};
  4091. player setFatigue 0;
  4092. player allowDamage false;
  4093. player removeAllEventhandlers 'HandleDamage';
  4094. player removeAllEventhandlers 'Dammaged';
  4095. player removeAllEventhandlers 'Damaged';
  4096. player removeAllEventhandlers 'Hit';
  4097.  
  4098. player addEventhandler ['HandleDamage', {false}];
  4099. player addEventHandler ['Dammaged',{false}];
  4100. player addEventHandler ['Damaged',{false}];
  4101. player addEventHandler ['Hit',{false}];
  4102.  
  4103. if(!isNil 'life_thirst')then{
  4104. life_thirst = 100;
  4105. life_hunger = 100;
  4106. };
  4107.  
  4108. if(infiSTAR_MOD == 'Epoch')then{
  4109. EPOCH_playerTemp = 98.6;
  4110. EPOCH_playerBloodP = 100;
  4111. EPOCH_playerHunger = 5000;
  4112. EPOCH_playerThirst = 2500;
  4113. EPOCH_playerEnergy = 2500;
  4114. EPOCH_playerImmunity = 150;
  4115. EPOCH_playerStamina = 2500;
  4116. EPOCH_playerToxicity = 0;
  4117. EPOCH_playerWet = 0;
  4118. EPOCH_playerSoiled = 0;
  4119. player setBleedingRemaining 0;
  4120. player setOxygenRemaining 1;
  4121. };
  4122. uiSleep 1;
  4123. };
  4124. call fnc_A3_stopGod;
  4125. };
  4126. _log = 'God Mode Enabled';
  4127. _log call FN_SHOW_LOG;
  4128. }
  4129. else
  4130. {
  4131. infiSTAR_A3GodRun = 0;
  4132. call fnc_A3_stopGod;
  4133. terminate infiSTAR_A3InvulnerabilityLoop;
  4134. call fnc_A3_stopGod;
  4135. _log = 'God Mode Disabled';
  4136. _log call FN_SHOW_LOG;
  4137. };
  4138. };
  4139. fnc_Epochs_ESP = {
  4140. _enable = false;
  4141. if(_this)then
  4142. {
  4143. EPOCH_ESP_PLAYER = !EPOCH_ESP_PLAYER;
  4144. if(EPOCH_ESP_PLAYER)then
  4145. {
  4146. _enable = true
  4147. };
  4148. }
  4149. else
  4150. {
  4151. EPOCH_ESP_VEHICLES = !EPOCH_ESP_VEHICLES;
  4152. if(EPOCH_ESP_VEHICLES)then
  4153. {
  4154. _enable = true
  4155. };
  4156. };
  4157. if(EPOCH_ESP_VEHICLEPLAYER isEqualTo [] && _enable)then
  4158. {
  4159. waitUntil {EPOCH_ESP_VEHICLEPLAYER = ((getPos cameraOn) nearEntities [['Epoch_Male_F', 'Epoch_Female_F', 'LandVehicle', 'Ship', 'Air', 'Tank'], viewDistance max 1000 min 2500]) - [vehicle player];
  4160. uiSleep 1;
  4161. !EPOCH_ESP_PLAYER && !EPOCH_ESP_VEHICLES};
  4162. EPOCH_ESP_VEHICLEPLAYER = [];
  4163. };
  4164. };
  4165. fn_xgetname = {
  4166. if(alive _x)then{name _x}else{_x getVariable['realname','unknown']}
  4167. };
  4168. fn_xgetclr = {
  4169. _side = side _this;
  4170. if(SELECTED_TARGET_PLAYER isEqualTo _this)exitWith{[1,0.7,0.15,_alpha]};
  4171.  
  4172. _uid = getPlayerUID _this;
  4173. if((_uid in infiSTAR_ADMINS)&&!(_uid in infiSTAR_DEVS))exitWith{[0,1,0,1]};
  4174. if((_uid in infiSTAR_DEVS)&&(MYPUIDinfiESP in infiSTAR_DEVS))exitWith{[0,1,0,1]};
  4175. if(_uid == MYPUIDinfiESP)exitWith{[0,1,0,1]};
  4176.  
  4177. if(_side == civilian)exitWith{[0.67,0.97,0.97,_alpha]};
  4178. if(_side == west)exitWith{[0.047,0.502,1,_alpha]};
  4179. if(_side == resistance)exitWith{[0,0.65,0,_alpha]};
  4180. if(_side == east)exitWith{[1,0.17,0.17,_alpha]};
  4181. [1,1,1,_alpha]
  4182. };
  4183. fnc_draw3dhandlerPLAYER1 = ""
  4184. if(!isNull cameraOn)then
  4185. {
  4186. {
  4187. if(isPlayer _x)then
  4188. {
  4189. _shown = [];
  4190. if((crew (vehicle cameraOn)) isEqualTo (crew cameraOn))then{_shown = [vehicle cameraOn];};
  4191.  
  4192. _veh = vehicle _x;
  4193. _id = _shown pushBackUnique _veh;
  4194. if!(_id isEqualTo -1)then
  4195. {
  4196. _distance = round(cameraOn distance _x);
  4197. _fontSize = 0.024;
  4198. _IconSize = 0.5;
  4199. _alpha = 1;
  4200. if(_veh isKindOf 'Man')then
  4201. {
  4202. _curwep = currentWeapon _x;
  4203. _hp = round((damage _x - 1) * -100);
  4204. _txt = format['unarmed - %1HP',_hp];
  4205.  
  4206. _pos = _x modelToWorldVisual (_x selectionPosition 'head');
  4207.  
  4208. if(_curwep != '')then
  4209. {
  4210. _txt = format[
  4211. '%1 - [%2/%3] - %4HP',
  4212. gettext(configFile >> 'CfgWeapons' >> _curwep >> 'displayName'),
  4213. _x ammo _curwep,
  4214. getNumber(configFile >> 'CfgMagazines' >> currentMagazine _x >> 'count'),
  4215. _hp
  4216. ];
  4217. };
  4218.  
  4219. _txt = '';
  4220. _clr = _x call fn_xgetclr;
  4221. _dir = [_x,cameraOn] call BIS_fnc_relativeDirTo;
  4222. drawIcon3D['',_clr,_pos,_IconSize,1.5,0,_txt,1,_fontSize,'PuristaBold'];
  4223.  
  4224. _txt = format['%1 - %2m',call fn_xgetname,_distance];
  4225. drawIcon3D['iconManMedic',_clr,_pos,_IconSize,_IconSize,if(_x isEqualTo cameraOn)then{_dir}else{_dir+180},_txt,1,_fontSize,'PuristaBold'];
  4226. }
  4227. else
  4228. {
  4229. _class = typeOf _veh;
  4230. _speed = round(speed _veh*100)/100;
  4231. _maxSpeed = getNumber(configFile >> 'CfgVehicles' >> _class >> 'maxSpeed');
  4232. _typename = gettext(configFile >> 'CfgVehicles' >> _class >> 'displayName');
  4233.  
  4234. _pos = _x modelToWorldVisual [0,0,0];
  4235. _crew = crew _veh;
  4236. _cnt = count _crew;
  4237. _clr = [1,1,1,_alpha];
  4238. drawIcon3D['\A3\ui_f\data\map\Markers\Military\dot_ca.paa',_clr,_pos,_IconSize,_IconSize,0,'',1];
  4239. _pos = _x modelToWorldVisual [0,0,3];
  4240.  
  4241. if(_cnt > 0)then
  4242. {
  4243. _num = _cnt * -1;
  4244. {
  4245. _height = _num + _forEachIndex;
  4246. _role = assignedVehicleRole _x;
  4247. if(_role isEqualTo [])then{_role = 'Passenger';}else{_role = _role select 0;};
  4248. _txt = format['%1 - %2 %3HP',_role,call fn_xgetname,round((1-(damage _x))*100)];
  4249. _clr = _x call fn_xgetclr;
  4250. drawIcon3D['',_clr,_pos,.5,_height * 0.8,0,_txt,1,_fontSize,'PuristaBold'];
  4251. } forEach _crew;
  4252. };
  4253.  
  4254. _fuel = fuel _veh;
  4255. _fuelCapacity = getNumber(configFile >> 'CfgVehicles' >> _class >> 'fuelCapacity');
  4256. _realFuel = _fuelCapacity * _fuel;
  4257.  
  4258. _txt = format['%1 - %2L - %3/%4km/h - %5m',_typename,round(_realFuel*100)/100,_speed,_maxSpeed,_distance];
  4259. drawIcon3D['',_clr,_pos,.5,0,0,_txt,1,_fontSize,'PuristaBold'];
  4260. };
  4261. };
  4262. };
  4263. } forEach ((cameraOn nearEntities[['Man', 'LandVehicle', 'Ship', 'Air'], 1800]) - [cameraOn, vehicle cameraOn]);
  4264. };
  4265. "";
  4266. fnc_draw3dhandlerPLAYER2 = ""
  4267. _shown = [];
  4268. {
  4269. if(!isNull _x)then
  4270. {
  4271. _veh = vehicle _x;
  4272. if(_veh in _shown)exitWith{};
  4273. _shown pushBack _veh;
  4274. if(_veh == vehicle cameraOn)exitWith{};
  4275. if(alive _x)then
  4276. {
  4277. _PUIDX = getPlayerUID _x;
  4278. if(_PUIDX != '')then
  4279. {
  4280. _distance = round(cameraOn distance _x);
  4281. if(_distance > 1600)exitWith{};
  4282. _name = _x getVariable['realname',name _x];
  4283. _txt = format['%1 (%2m) %3HP',_name,_distance,floor((1-(damage _x))*100)];
  4284. _clr = [1,0.17,0.17,1];
  4285. _crew = crew _veh;
  4286. if(_x != _veh)then
  4287. {
  4288. _clr = [0.2,0.2,0.9,1];
  4289. _type = typeOf _veh;
  4290. if(_type isKindOf 'Air')then{_clr = [0.7,0.2,0.7,1];};
  4291. _typename = gettext (configFile >> 'CfgVehicles' >> _type >> 'displayName');
  4292.  
  4293. _names = '';
  4294. {
  4295. if(_forEachIndex == 0)then
  4296. {
  4297. _names = _names + (_x getVariable['realname',name _x]);
  4298. }
  4299. else
  4300. {
  4301. if(alive _x)then{_names = _names + format[', %1',_x getVariable['realname',name _x]];};
  4302. };
  4303. } forEach _crew;
  4304. _txt = format['%1 - %2 (%3m)',_names,_typename,_distance];
  4305. };
  4306.  
  4307. if(((_PUIDX in infiSTAR_ADMINS) && !(_PUIDX in infiSTAR_DEVS)) || ((_PUIDX in infiSTAR_DEVS) && (MYPUIDinfiESP in infiSTAR_DEVS)) || (_PUIDX == MYPUIDinfiESP))then{_clr = [0,1,0,1];};
  4308. if(infiSTAR_MOD != 'Epoch')then{_txt = _txt+' '+str side _x};
  4309. if(SELECTED_TARGET_PLAYER in _crew)then{_clr = [1,0.7,0.15,1];};
  4310.  
  4311. _grpx = group _x;
  4312. if(!isNull _grpx)then
  4313. {
  4314. _alive = {alive _x} count units _grpx;
  4315. if(_alive > 1)then
  4316. {
  4317. _id=allGroups find _grpx;
  4318. _txt = _txt + format[' GRP:%1 PLR:%2',_id,_alive];
  4319. };
  4320. };
  4321.  
  4322. _pos = ASLToATL eyepos _x;
  4323. if(surfaceIsWater _pos)then{_pos = eyepos _x;};
  4324. drawIcon3D['',_clr,_pos,.1,.1,0,_txt,1,.035];
  4325. };
  4326. };
  4327. };
  4328. } forEach allPlayers;
  4329. "";
  4330. fnc_draw3dhandlerAI = ""
  4331. if(!isNull cameraOn)then
  4332. {
  4333. _maxD = 300;
  4334. ALLVEHICLES_OBJECTS_300m = cameraOn nearEntities ['Allvehicles',_maxD];
  4335. {
  4336. if(!isNull _x)then
  4337. {
  4338. if(alive _x)then
  4339. {
  4340. _PUIDX = getPlayerUID _x;
  4341. if(_PUIDX == '')then
  4342. {
  4343. _distance = cameraOn distance _x;
  4344.  
  4345. _veh = vehicle _x;
  4346. _type = typeOf _veh;
  4347. if((_x isKindOf 'Man')&&!(_x isKindOf 'Animal_Base_F'))then
  4348. {
  4349. _name = 'AI';
  4350. if((_x isKindOf 'Epoch_Char_base_F') || (_x isKindOf 'Epoch_Sapper_base_F'))then{_name = _type;};
  4351. _txt = format['%1 %2m',_name,round _distance];
  4352. if(infiSTAR_MOD != 'Epoch')then{_txt = _txt+' '+str side _x};
  4353. _clr = [1,1,1,0.7];
  4354.  
  4355. _pos = ASLToATL eyepos _x;
  4356. if(surfaceIsWater _pos)then{_pos = eyepos _x;};
  4357. drawIcon3D['',_clr,_pos,.1,.1,0,_txt,1,.032];
  4358. };
  4359. };
  4360. };
  4361. };
  4362. } forEach ALLVEHICLES_OBJECTS_300m;
  4363. };
  4364. "";
  4365. fnc_draw3dhandlerDEAD = ""
  4366. {
  4367. if(!isNull _x)then
  4368. {
  4369. if!(getPlayerUID _x isEqualTo '')exitWith{};
  4370.  
  4371. _distance = cameraOn distance _x;
  4372. if(_distance < 500)then
  4373. {
  4374. _name = _x getVariable['realname',''];
  4375. if(_name != '')then
  4376. {
  4377. _clr = [1,1,1,0.7];
  4378. _txt = format['%1 %2m',_name,round _distance];
  4379. _pos = _x modelToWorld [0,0,1];
  4380. drawIcon3D['',_clr,_pos,0,0,45,_txt,0,.032];
  4381. };
  4382. };
  4383. };
  4384. } forEach allDeadMen;
  4385. "";
  4386. fnc_draw3dhandlerLOCKBOX = ""
  4387. LockBox_EPOCH_OBJECTS = nearestObjects[cameraOn, ['LockBox_EPOCH'], 150];
  4388. {
  4389. if(!isNull _x)then
  4390. {
  4391. _distance = round(cameraOn distance _x);
  4392. _clr = [0.02,0.96,0.54,1];
  4393. _sizealter = _distance / 100000;
  4394. _size = 0.032 - _sizealter;
  4395. _pos = _x modelToWorld [0,0,0.2];
  4396. drawIcon3D['',_clr,_pos,0,0,45,format['LockBox %1m',_distance],0,_size];
  4397. };
  4398. } forEach LockBox_EPOCH_OBJECTS;
  4399. "";
  4400. fnc_draw3dhandlerSHELF = ""
  4401. StorageShelf_EPOCH_OBJECTS = nearestObjects[cameraOn, ['StorageShelf_EPOCH'], 150];
  4402. {
  4403. if(!isNull _x)then
  4404. {
  4405. _distance = round(cameraOn distance _x);
  4406. _clr = [0.23,1,0.87,1];
  4407. _sizealter = _distance / 100000;
  4408. _size = 0.032 - _sizealter;
  4409. _pos = _x modelToWorld [0,0,1];
  4410. drawIcon3D['',_clr,_pos,0,0,45,format['Shelf %1m',_distance],0,_size];
  4411. };
  4412. } forEach StorageShelf_EPOCH_OBJECTS;
  4413. "";
  4414. fnc_draw3dhandlerPLOTPOLE = ""
  4415. PlotPole_EPOCH_OBJECTS = nearestObjects[cameraOn, ['PlotPole_EPOCH'], 150];
  4416. {
  4417. if(!isNull _x)then
  4418. {
  4419. _distance = round(cameraOn distance _x);
  4420. _clr = [0.99,0.44,0.15,1];
  4421. _sizealter = _distance / 100000;
  4422. _size = 0.032 - _sizealter;
  4423. _owner = _x getVariable['BUILD_OWNER', '-1'];
  4424. {
  4425. if(getPlayerUID _x == _owner)then
  4426. {
  4427. _owner = format['%1(%2)',name _x,_owner];
  4428. };
  4429. } forEach allPlayers;
  4430. _pos = _x modelToWorld [0,0,1];
  4431. drawIcon3D['',_clr,_pos,.3,.3,45,format['PlotPole %1m (%2)',_distance,_owner],0,_size];
  4432. };
  4433. } forEach PlotPole_EPOCH_OBJECTS;
  4434. "";
  4435. fnc_call_single_esps = {
  4436. if(!isNil'infiSTAREspEHVAR')then{
  4437. removeMissionEventHandler ['Draw3D',infiSTAREspEHVAR];
  4438. infiSTAREspEHVAR=nil;
  4439. };
  4440. _string = '';
  4441. if(!isNil 'fnc_infiESP_statePlayer1')then
  4442. {
  4443. _string = _string + fnc_draw3dhandlerPLAYER1;
  4444. };
  4445. if(!isNil 'fnc_infiESP_statePlayer2')then
  4446. {
  4447. _string = _string + fnc_draw3dhandlerPLAYER2;
  4448. };
  4449. if(!isNil 'fnc_infiESP_stateAI')then
  4450. {
  4451. _string = _string + fnc_draw3dhandlerAI;
  4452. };
  4453. if(!isNil 'fnc_infiESP_stateDEAD')then
  4454. {
  4455. _string = _string + fnc_draw3dhandlerDEAD;
  4456. };
  4457. if(!isNil 'fnc_infiESP_stateLOCKBOX')then
  4458. {
  4459. _string = _string + fnc_draw3dhandlerLOCKBOX;
  4460. };
  4461. if(!isNil 'fnc_infiESP_stateSHELF')then
  4462. {
  4463. _string = _string + fnc_draw3dhandlerSHELF;
  4464. };
  4465. if(!isNil 'fnc_infiESP_statePLOTPOLE')then
  4466. {
  4467. _string = _string + fnc_draw3dhandlerPLOTPOLE;
  4468. };
  4469. if(_string != '')then
  4470. {
  4471. _string = ('if(!isNull findDisplay 49)exitWith{true};'+_string);
  4472. infiSTAREspEHVAR = addMissionEventHandler ['Draw3D',_string];
  4473. };
  4474. };
  4475. infiSTAR_fnc_infiESP_player1 = {
  4476. if(isNil 'fnc_infiESP_statePlayer1')then{
  4477. fnc_infiESP_statePlayer1 = 1;_log = 'infiSTAR Player ESP 1 - ON (ESP DECREASES FPS A LOT!)';_log call FN_SHOW_LOG;
  4478. } else {
  4479. fnc_infiESP_statePlayer1 = nil;_log = 'infiSTAR Player ESP 1 - OFF';_log call FN_SHOW_LOG;
  4480. };
  4481. call fnc_call_single_esps;
  4482. };
  4483. infiSTAR_fnc_infiESP_player2 = {
  4484. if(isNil 'fnc_infiESP_statePlayer2')then{
  4485. fnc_infiESP_statePlayer2 = 1;_log = 'infiSTAR Player ESP 2 - ON (ESP DECREASES FPS A LOT!)';_log call FN_SHOW_LOG;
  4486. } else {
  4487. fnc_infiESP_statePlayer2 = nil;_log = 'infiSTAR Player ESP 2 - OFF';_log call FN_SHOW_LOG;
  4488. };
  4489. call fnc_call_single_esps;
  4490. };
  4491. infiSTAR_fnc_infiESP_AI = {
  4492. if(isNil 'fnc_infiESP_stateAI')then{
  4493. fnc_infiESP_stateAI = 1;_log = 'infiSTAR AI ESP - ON (ESP DECREASES FPS A LOT!)';_log call FN_SHOW_LOG;
  4494. } else {
  4495. fnc_infiESP_stateAI = nil;_log = 'infiSTAR AI ESP - OFF';_log call FN_SHOW_LOG;
  4496. };
  4497. call fnc_call_single_esps;
  4498. };
  4499. infiSTAR_fnc_infiESP_DEAD = {
  4500. if(isNil 'fnc_infiESP_stateDEAD')then{
  4501. fnc_infiESP_stateDEAD = 1;_log = 'infiSTAR DEAD ESP - ON (ESP DECREASES FPS A LOT!)';_log call FN_SHOW_LOG;
  4502. } else {
  4503. fnc_infiESP_stateDEAD = nil;_log = 'infiSTAR DEAD ESP - OFF';_log call FN_SHOW_LOG;
  4504. };
  4505. call fnc_call_single_esps;
  4506. };
  4507. infiSTAR_fnc_infiESP_LOCKBOX = {
  4508. if(isNil 'fnc_infiESP_stateLOCKBOX')then{
  4509. fnc_infiESP_stateLOCKBOX = 1;_log = 'infiSTAR LockBox ESP - ON (ESP DECREASES FPS A LOT!)';_log call FN_SHOW_LOG;
  4510. } else {
  4511. fnc_infiESP_stateLOCKBOX = nil;_log = 'infiSTAR LockBox ESP - OFF';_log call FN_SHOW_LOG;
  4512. };
  4513. call fnc_call_single_esps;
  4514. };
  4515. infiSTAR_fnc_infiESP_SHELF = {
  4516. if(isNil 'fnc_infiESP_stateSHELF')then{
  4517. fnc_infiESP_stateSHELF = 1;_log = 'infiSTAR Shelf ESP - ON (ESP DECREASES FPS A LOT!)';_log call FN_SHOW_LOG;
  4518. } else {
  4519. fnc_infiESP_stateSHELF = nil;_log = 'infiSTAR Shelf ESP - OFF';_log call FN_SHOW_LOG;
  4520. };
  4521. call fnc_call_single_esps;
  4522. };
  4523. infiSTAR_fnc_infiESP_PLOTPOLE = {
  4524. if(isNil 'fnc_infiESP_statePLOTPOLE')then{
  4525. fnc_infiESP_statePLOTPOLE = 1;_log = 'infiSTAR PlotPole ESP - ON (ESP DECREASES FPS A LOT!)';_log call FN_SHOW_LOG;
  4526. } else {
  4527. fnc_infiESP_statePLOTPOLE = nil;_log = 'infiSTAR PlotPole ESP - OFF';_log call FN_SHOW_LOG;
  4528. };
  4529. call fnc_call_single_esps;
  4530. };
  4531. fnc_draw_MapIcons = {
  4532. if!(visibleMap || dialog)exitWith{};
  4533. private['_ctrl'];
  4534. _ctrl = _this select 0;
  4535. _iscale = ((1 - ctrlMapScale _ctrl) max .2) * 28;
  4536. _icon = '';
  4537.  
  4538. _fnc_get_color = {
  4539. if(_this == civilian)exitWith{[0.67,0.97,0.97,1]};
  4540. if(_this == west)exitWith{[0.047,0.502,1,1]};
  4541. if(_this == resistance)exitWith{[0,0.65,0,1]};
  4542. if(_this == east)exitWith{[1,0.17,0.17,1]};
  4543. [1,1,1,1]
  4544. };
  4545. if(visibleMap)then
  4546. {
  4547. if(mapiconsshowplayer)then
  4548. {
  4549. _shown = [];
  4550. {
  4551. if(!isNull _x)then
  4552. {
  4553. _veh = vehicle _x;
  4554. if(_veh in _shown)exitWith{};
  4555. _shown pushBack _veh;
  4556. _PUIDX = getPlayerUID _x;
  4557. if(_PUIDX != '')then
  4558. {
  4559. _name = _x getVariable['realname',name _x];
  4560. _type = typeOf _veh;
  4561. _dist = round(_veh distance player);
  4562. _txt = format['%1 (%2m) (DEAD, but still watching)',_name,_dist];
  4563. if(alive _x)then
  4564. {
  4565. if(_x == _veh)then
  4566. {
  4567. _txt = format['%1 (%2m)',_name,_dist];
  4568. }
  4569. else
  4570. {
  4571. _names = '';
  4572. {
  4573. if(_forEachIndex == 0)then
  4574. {
  4575. _names = _names + format['%1',_x getVariable['realname',name _x]];
  4576. }
  4577. else
  4578. {
  4579. _names = _names + format[', %1',_x getVariable['realname',name _x]];
  4580. };
  4581. } forEach (crew _veh);
  4582. _typename = gettext (configFile >> 'CfgVehicles' >> _type >> 'displayName');
  4583. _txt = format['%1 - %2 (%3m)',_names,_typename,_dist];
  4584. };
  4585. };
  4586.  
  4587. _clr = (side _x) call _fnc_get_color;
  4588. if(((_PUIDX in infiSTAR_ADMINS)&&!(_PUIDX in infiSTAR_DEVS))||((_PUIDX in infiSTAR_DEVS)&&(MYPUIDinfiESP in infiSTAR_DEVS))||(_PUIDX == MYPUIDinfiESP))then{_clr = [0,1,0,1];};
  4589. if(SELECTED_TARGET_PLAYER in (crew _veh))then{_clr = [1,0.7,0.15,1];};
  4590.  
  4591. _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon');
  4592. if(infiSTAR_MOD != 'Epoch')then{_txt = _txt+' '+str side _x};
  4593.  
  4594. _grpx = group _x;
  4595. if(!isNull _grpx)then
  4596. {
  4597. _alive = {alive _x} count units _grpx;
  4598. if(_alive > 1)then
  4599. {
  4600. _id=allGroups find _grpx;
  4601. _txt = _txt + format[' GRP:%1 PLR:%2',_id,_alive];
  4602. };
  4603. };
  4604.  
  4605. _ctrl drawIcon [_icon, _clr, getPosASL _veh, _iscale, _iscale, getDir _veh,_txt];
  4606. };
  4607. };
  4608. } forEach allPlayers;
  4609. };
  4610.  
  4611. if(mapiconsshowvehicles||mapiconsshowai)then
  4612. {
  4613. _allvehicles = [0,0,0] nearEntities ['Allvehicles',1000000];
  4614. {
  4615. if(!isNull _x)then
  4616. {
  4617. _PUIDX = getPlayerUID _x;
  4618. if(_PUIDX == '')then
  4619. {
  4620. _veh = vehicle _x;
  4621. _type = typeOf _veh;
  4622. if(mapiconsshowvehicles)then
  4623. {
  4624. if!(_x isKindOf 'Man')then
  4625. {
  4626. _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon');
  4627. _clr = (side _x) call _fnc_get_color;
  4628. _ctrl drawIcon [_icon, _clr, getPosASL _x, _iscale, _iscale, getDir _x];
  4629. };
  4630. };
  4631. if(mapiconsshowai)then
  4632. {
  4633. if((_x isKindOf 'Man') && !(_x isKindOf 'Animal_Base_F'))then
  4634. {
  4635. _txt = 'AI';
  4636. if((_x isKindOf 'Epoch_Char_base_F') || (_x isKindOf 'Epoch_Sapper_base_F'))then{_txt = _type;};
  4637. _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon');
  4638. _ctrl drawIcon [_icon, [1,1,1,1], getPosASL _x, _iscale, _iscale, getDir _x,_txt];
  4639. };
  4640. };
  4641. };
  4642. };
  4643. } forEach _allvehicles;
  4644. };
  4645. if(mapiconsshowdeadvehicles)then
  4646. {
  4647. {
  4648. if((_x isKindOf 'Air')||(_x isKindOf 'Landvehicle'))then
  4649. {
  4650. _veh = vehicle _x;
  4651. _type = typeOf _veh;
  4652. _clr = [1,1,1,1];
  4653. if(_x isEqualTo SELECTED_TARGET_PLAYER)then{_clr = [1,0.7,0.15,1];};
  4654. _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon');
  4655. _ctrl drawIcon [_icon, _clr, getPosASL _x, _iscale, _iscale, getDir _x];
  4656. };
  4657. } forEach allDead;
  4658. };
  4659. if(mapiconsshowdeadplayer)then
  4660. {
  4661. {
  4662. if(!isNull _x)then
  4663. {
  4664. _name = _x getVariable['realname',''];
  4665. if(_name != '')then
  4666. {
  4667. if(getPlayerUID _x != '')then
  4668. {
  4669. _name = format['%1 (DEAD, but still watching)',_name];
  4670. };
  4671. _veh = vehicle _x;
  4672. _type = typeOf _veh;
  4673. _clr = [1,1,1,1];
  4674. _dist = round(_veh distance player);
  4675. _txt = format['%1 %2m',_name,_dist];
  4676.  
  4677. _icon = getText(configFile >> 'CfgVehicles' >> _type >> 'icon');
  4678. if(infiSTAR_MOD != 'Epoch')then{_txt = _txt+' '+str side _x};
  4679. _ctrl drawIcon [_icon, _clr, getPosASL _veh, _iscale, _iscale, getDir _veh,_txt];
  4680. };
  4681. };
  4682. } forEach allDeadMen;
  4683. };
  4684. };
  4685. };
  4686. fnc_removeButtons = {{ctrlDelete (_display displayCtrl _x);} forEach [1084,1085,1086,1087,1088];};
  4687. fnc_addButtons = {
  4688. _xpos = 0.5;
  4689. _y = safeZoneY+0.06;
  4690.  
  4691. _ctrl1 = [_display,'RscButton',1084] call fnc_createctrl;
  4692. _ctrl1 ctrlSetPosition [_xpos,_y,0.3,0.05];
  4693.  
  4694. _y = _y + 0.0495;
  4695. _ctrl2 = [_display,'RscButton',1085] call fnc_createctrl;
  4696. _ctrl2 ctrlSetPosition [_xpos,_y,0.3,0.05];
  4697.  
  4698. _y = _y + 0.0495;
  4699. _ctrl3 = [_display,'RscButton',1086] call fnc_createctrl;
  4700. _ctrl3 ctrlSetPosition [_xpos,_y,0.3,0.05];
  4701.  
  4702. _y = _y + 0.0495;
  4703. _ctrl4 = [_display,'RscButton',1087] call fnc_createctrl;
  4704. _ctrl4 ctrlSetPosition [_xpos,_y,0.3,0.05];
  4705.  
  4706. _y = _y + 0.0495;
  4707. _ctrl5 = [_display,'RscButton',1088] call fnc_createctrl;
  4708. _ctrl5 ctrlSetPosition [_xpos,_y,0.3,0.05];
  4709. };
  4710. infiSTAR_A3MAPICONS = {
  4711. if(isNil 'MAP_BUTTON_THREAD')then
  4712. {
  4713. _log = 'MapIcons Enabled';
  4714. _log call FN_SHOW_LOG;
  4715.  
  4716. if(isNil'mapiconsshowplayer')then{mapiconsshowplayer=true;};
  4717. if(isNil'mapiconsshowvehicles')then{mapiconsshowvehicles=false;};
  4718. if(isNil'mapiconsshowdeadplayer')then{mapiconsshowdeadplayer=false;};
  4719. if(isNil'mapiconsshowdeadvehicles')then{mapiconsshowdeadvehicles=false;};
  4720. if(isNil'mapiconsshowai')then{mapiconsshowai=false;};
  4721.  
  4722. MAP_BUTTON_THREAD = [] spawn {
  4723. disableSerialization;
  4724. private['_display','_ctrl1','_ctrl2','_ctrl3','_ctrl4','_ctrl5','_button','_state','_text','_function','_color'];
  4725. _display = findDisplay 12;
  4726. while{true}do
  4727. {
  4728. if(visibleMap)then
  4729. {
  4730. if(isNil'EventHandlerDrawAdded')then
  4731. {
  4732. call fnc_removeButtons;
  4733. call fnc_addButtons;
  4734. EventHandlerDrawAdded = (uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlAddEventHandler['Draw','_this call fnc_draw_MapIcons'];
  4735. };
  4736.  
  4737. {
  4738. _button = _x select 0;
  4739. _state = _x select 1;
  4740. _text = if(_state)then{_x select 2}else{_x select 3};
  4741. _function = if(_state)then{_x select 4}else{_x select 5};
  4742. _color = if(_state)then{[0.56,0.04,0.04,1]}else{[0,1,0,1]};
  4743.  
  4744. _button ctrlSetText _text;
  4745. _button ctrlSetTextColor _color;
  4746. _button ctrlRemoveAllEventHandlers 'ButtonDown';
  4747. _button ctrlAddEventHandler ['ButtonDown',_function];
  4748. _button ctrlCommit 0;
  4749. } forEach
  4750. [
  4751. [_ctrl1,mapiconsshowplayer,'Hide Player','Show Player',{mapiconsshowplayer = false;},{mapiconsshowplayer = true;}],
  4752. [_ctrl2,mapiconsshowdeadplayer,'Hide DeadPlayer','Show DeadPlayer',{mapiconsshowdeadplayer = false;},{mapiconsshowdeadplayer = true;}],
  4753. [_ctrl3,mapiconsshowvehicles,'Hide Vehicles','Show Vehicles',{mapiconsshowvehicles = false;},{mapiconsshowvehicles = true;}],
  4754. [_ctrl4,mapiconsshowdeadvehicles,'Hide DeadVehicles','Show DeadVehicles',{mapiconsshowdeadvehicles = false;},{mapiconsshowdeadvehicles = true;}],
  4755. [_ctrl5,mapiconsshowai,'Hide AI','Show AI',{mapiconsshowai = false;},{mapiconsshowai = true;}]
  4756. ];
  4757. }
  4758. else
  4759. {
  4760. if(!isNil'EventHandlerDrawAdded')then
  4761. {
  4762. call fnc_removeButtons;
  4763. (uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlRemoveEventHandler ['Draw',EventHandlerDrawAdded];EventHandlerDrawAdded=nil;
  4764. };
  4765. };
  4766. uiSleep 0.3;
  4767. };
  4768. };
  4769. }
  4770. else
  4771. {
  4772. _log = 'MapIcons Disabled';
  4773. _log call FN_SHOW_LOG;
  4774.  
  4775. terminate MAP_BUTTON_THREAD;MAP_BUTTON_THREAD=nil;
  4776. if(!isNil'EventHandlerDrawAdded')then{(uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlRemoveEventHandler ['Draw',EventHandlerDrawAdded];EventHandlerDrawAdded=nil;};
  4777. {ctrlDelete ((findDisplay 12) displayCtrl _x);} forEach [1084,1085,1086,1087,1088];
  4778. };
  4779. };
  4780. adminVehicleMarker = {
  4781. adminVehicleMarkers =
  4782. {
  4783. while {markadVehicleMarker == 1} do
  4784. {
  4785. {
  4786. _typename = gettext (configFile >> 'CfgVehicles' >> typeOf _x >> 'displayName');
  4787. _xPos = getPos _x;
  4788.  
  4789. _cm = ('adminVehicleMarkers' + (str _forEachIndex));
  4790. _pos = getMarkerPos _cm;
  4791. if((_pos select 0 != _xPos select 0) || (_pos select 1 != _xPos select 1))then
  4792. {
  4793. deleteMarkerLocal _cm;
  4794. _vm = createMarkerLocal [_cm,_xPos];
  4795. _vm setMarkerDirLocal (getDir _x);
  4796. _vm setMarkerTypeLocal 'mil_start';
  4797. _vm setMarkerColorLocal 'ColorBlue';
  4798. _vm setMarkerTextLocal format['%1',_typename];
  4799. };
  4800. if(markadVehicleMarker == 0)exitWith{};
  4801. } forEach ([0,0,0] nearEntities[['LandVehicle','Ship','Air','Tank'],1000000]);
  4802. if(markadVehicleMarker == 0)exitWith{};
  4803. uiSleep 1;
  4804. if(markadVehicleMarker == 0)exitWith{};
  4805. };
  4806. for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminVehicleMarkers' + (str _i));};
  4807. };
  4808. if(isNil 'markadVehicleMarker')then{markadVehicleMarker = 0;};
  4809. if(markadVehicleMarker == 0)then
  4810. {
  4811. _log = '2D Map VehicleMarkerMarker Enabled';
  4812. _log call FN_SHOW_LOG;
  4813.  
  4814. markadVehicleMarker = 1;
  4815. [] spawn adminVehicleMarkers;
  4816. }
  4817. else
  4818. {
  4819. _log = '2D Map VehicleMarkerMarker Disabled';
  4820. _log call FN_SHOW_LOG;
  4821.  
  4822. markadVehicleMarker = 0;
  4823. for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminVehicleMarkers' + (str _i));};
  4824. };
  4825. };
  4826. adminPlotPole = {
  4827. adminPlotPoles =
  4828. {
  4829. while {markadPlotPole == 1} do
  4830. {
  4831. ADMIN_PlotPole_LIST = [] + (allMissionObjects 'PlotPole_EPOCH');
  4832. if(markadPlotPole == 0)exitWith{};
  4833. for '_i' from 0 to (count ADMIN_PlotPole_LIST)-1 do
  4834. {
  4835. if(markadPlotPole == 0)exitWith{};
  4836.  
  4837. _c = ADMIN_PlotPole_LIST select _i;
  4838. if(!isNull _c)then
  4839. {
  4840. deleteMarkerLocal ('adminPlotPoles' + (str _i));
  4841. _vm = createMarkerLocal [('adminPlotPoles' + (str _i)), getPos _c];
  4842. _vm setMarkerAlphaLocal 0.8;
  4843. _vm setMarkerBrushLocal 'Grid';
  4844. _vm setMarkerSizeLocal [300,300];
  4845. _vm setMarkerShapeLocal 'ELLIPSE';
  4846. _vm setMarkerColorLocal 'ColorGreen';
  4847.  
  4848. _k = _i + 30000;
  4849. deleteMarkerLocal ('adminPlotPoles' + (str _k));
  4850. _vm = createMarkerLocal [('adminPlotPoles' + (str _k)), getPos _c];
  4851. _vm setMarkerColorLocal 'ColorGreen';
  4852. _vm setMarkerTypeLocal 'waypoint';
  4853.  
  4854. _owner = (_c getVariable['BUILD_OWNER','-1']);
  4855. {
  4856. if(getPlayerUID _x == _owner)exitWith
  4857. {
  4858. _owner = format['%1(%2)',name _x,_owner];
  4859. };
  4860. } forEach allPlayers;
  4861. _vm setMarkerTextLocal _owner;
  4862. };
  4863.  
  4864. if(markadPlotPole == 0)exitWith{};
  4865. };
  4866. if(markadPlotPole == 0)exitWith{};
  4867. uiSleep 20;
  4868. if(markadPlotPole == 0)exitWith{};
  4869. };
  4870. for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminPlotPoles' + (str _i));deleteMarkerLocal ('adminPlotPoles' + (str (_i+30000)));};
  4871. };
  4872. if(isNil 'markadPlotPole')then{markadPlotPole = 0;};
  4873. if(markadPlotPole == 0)then
  4874. {
  4875. _log = '2D Map PlotPoleMarker Enabled';
  4876. _log call FN_SHOW_LOG;
  4877.  
  4878. markadPlotPole = 1;
  4879. [] spawn adminPlotPoles;
  4880. }
  4881. else
  4882. {
  4883. _log = '2D Map PlotPoleMarker Disabled';
  4884. _log call FN_SHOW_LOG;
  4885.  
  4886. markadPlotPole = 0;
  4887. for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminPlotPoles' + (str _i));deleteMarkerLocal ('adminPlotPoles' + (str (_i+30000)));};
  4888. };
  4889. };
  4890. adminConstructions = {
  4891. adminConstructionss =
  4892. {
  4893. while {markadConstructions == 1} do
  4894. {
  4895. ADMIN_Constructions_LIST = [] + allmissionObjects 'ThingX' + allmissionObjects 'Constructions_static_F' + allmissionObjects 'Constructions_foundation_F';
  4896. if(markadConstructions == 0)exitWith{};
  4897. for '_i' from 0 to (count ADMIN_Constructions_LIST)-1 do
  4898. {
  4899. if(markadConstructions == 0)exitWith{};
  4900.  
  4901. _c = ADMIN_Constructions_LIST select _i;
  4902. if(!isNull _c)then
  4903. {
  4904. deleteMarkerLocal ('adminConstructionss' + (str _i));
  4905. _vm = createMarkerLocal [('adminConstructionss' + (str _i)), getPos _c];
  4906. _vm setMarkerTypeLocal 'waypoint';
  4907. _vm setMarkerColorLocal 'ColorBrown';
  4908. };
  4909.  
  4910. if(markadConstructions == 0)exitWith{};
  4911. };
  4912. if(markadConstructions == 0)exitWith{};
  4913. uiSleep 20;
  4914. if(markadConstructions == 0)exitWith{};
  4915. };
  4916. for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminConstructionss' + (str _i));};
  4917. };
  4918. if(isNil 'markadConstructions')then{markadConstructions = 0;};
  4919. if(markadConstructions == 0)then
  4920. {
  4921. _log = '2D Map ConstructionsMarker Enabled';
  4922. _log call FN_SHOW_LOG;
  4923.  
  4924. markadConstructions = 1;
  4925. [] spawn adminConstructionss;
  4926. }
  4927. else
  4928. {
  4929. _log = '2D Map ConstructionsMarker Disabled';
  4930. _log call FN_SHOW_LOG;
  4931.  
  4932. markadConstructions = 0;
  4933. for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminConstructionss' + (str _i));};
  4934. };
  4935. };
  4936. adminLockBox = {
  4937. adminLockBoxs =
  4938. {
  4939. while {markadLockBox == 1} do
  4940. {
  4941. ADMIN_LockBox_LIST = [] + allmissionObjects 'LockBox_EPOCH';
  4942. if(markadLockBox == 0)exitWith{};
  4943. for '_i' from 0 to (count ADMIN_LockBox_LIST)-1 do
  4944. {
  4945. if(markadLockBox == 0)exitWith{};
  4946.  
  4947. _c = ADMIN_LockBox_LIST select _i;
  4948. if(!isNull _c)then
  4949. {
  4950. deleteMarkerLocal ('adminLockBoxs' + (str _i));
  4951. _vm = createMarkerLocal [('adminLockBoxs' + (str _i)), getPos _c];
  4952. _vm setMarkerTypeLocal 'waypoint';
  4953. _vm setMarkerColorLocal 'ColorYellow';
  4954. };
  4955.  
  4956. if(markadLockBox == 0)exitWith{};
  4957. };
  4958. if(markadLockBox == 0)exitWith{};
  4959. uiSleep 20;
  4960. if(markadLockBox == 0)exitWith{};
  4961. };
  4962. for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminLockBoxs' + (str _i));};
  4963. };
  4964. if(isNil 'markadLockBox')then{markadLockBox = 0;};
  4965. if(markadLockBox == 0)then
  4966. {
  4967. _log = '2D Map LockBoxMarker Enabled';
  4968. _log call FN_SHOW_LOG;
  4969.  
  4970. markadLockBox = 1;
  4971. [] spawn adminLockBoxs;
  4972. }
  4973. else
  4974. {
  4975. _log = '2D Map LockBoxMarker Disabled';
  4976. _log call FN_SHOW_LOG;
  4977.  
  4978. markadLockBox = 0;
  4979. for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminLockBoxs' + (str _i));};
  4980. };
  4981. };
  4982. fake_epoch_grp = {
  4983. if(isNil'MY_Epoch_my_GroupUID')then{MY_Epoch_my_GroupUID=Epoch_my_GroupUID};
  4984. if(isNil'fakin_epoch_grp_thread')then
  4985. {
  4986. _log = 'Fake Epoch group to nearest PlotPole - started. This might take a lot of your performance!';
  4987. _log call FN_SHOW_LOG;
  4988.  
  4989. fakin_epoch_grp_thread = [] spawn {
  4990. while {true} do
  4991. {
  4992. _buildingJammerRange = getNumber(missionConfigFile >> 'CfgEpochClient' >> 'buildingJammerRange');
  4993. if(_buildingJammerRange == 0)then{ _buildingJammerRange = 75; };
  4994. _jammer = nearestObjects[player, ['PlotPole_EPOCH'], _buildingJammerRange*3];
  4995. if!(_jammer isEqualTo [])then
  4996. {
  4997. _nearestJammer = objNull;
  4998. {
  4999. if(alive _x && (_x distance player) <= _buildingJammerRange)exitWith{
  5000. _nearestJammer = _x;
  5001. };
  5002. } foreach _jammer;
  5003. if!(isNull _nearestJammer)then
  5004. {
  5005. _jammerOwnerVar = _nearestJammer getVariable['BUILD_OWNER', '-1'];
  5006. if!(_jammerOwnerVar in[MYPUIDinfiESP, Epoch_my_GroupUID])then
  5007. {
  5008. if(str Epoch_my_GroupUID != str _jammerOwnerVar)then
  5009. {
  5010. Epoch_my_GroupUID = _jammerOwnerVar;
  5011. _log = format['Changed Epoch_my_GroupUID to %1',_jammerOwnerVar];
  5012. _log call FN_SHOW_LOG;
  5013. };
  5014. };
  5015. };
  5016. };
  5017. uiSleep 5;
  5018. };
  5019. };
  5020. }
  5021. else
  5022. {
  5023. terminate fakin_epoch_grp_thread;
  5024. fakin_epoch_grp_thread=nil;
  5025. Epoch_my_GroupUID=MY_Epoch_my_GroupUID;
  5026.  
  5027. _log = 'Changed Epoch_my_GroupUID back to your original one';
  5028. _log call FN_SHOW_LOG;
  5029. };
  5030. };
  5031. adminDeadPlayer = {
  5032. adminDeadPlayers =
  5033. {
  5034. while {markadDeadPlayer == 1} do
  5035. {
  5036. ADMIN_DeadPlayer_LIST = [] + allDeadMen;
  5037. if(markadDeadPlayer == 0)exitWith{};
  5038. for '_i' from 0 to (count ADMIN_DeadPlayer_LIST)-1 do
  5039. {
  5040. if(markadDeadPlayer == 0)exitWith{};
  5041.  
  5042. deleteMarkerLocal ('adminDeadPlayers' + (str _i));
  5043. _c = ADMIN_DeadPlayer_LIST select _i;
  5044. if(!isNull _c)then
  5045. {
  5046. _txt = _c getVariable['realname','DEAD'];
  5047. if(_txt != 'DEAD')then
  5048. {
  5049. _txt = format['%1 (DEAD)',_txt];
  5050. _vm = createMarkerLocal [('adminDeadPlayers' + (str _i)), getPos _c];
  5051. _vm setMarkerTypeLocal 'waypoint';
  5052. _vm setMarkerColorLocal 'ColorBlack';
  5053. _vm setMarkerTextLocal _txt;
  5054. };
  5055. };
  5056.  
  5057. if(markadDeadPlayer == 0)exitWith{};
  5058. };
  5059. if(markadDeadPlayer == 0)exitWith{};
  5060. uiSleep 20;
  5061. if(markadDeadPlayer == 0)exitWith{};
  5062. };
  5063. for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminDeadPlayers' + (str _i));};
  5064. };
  5065. if(isNil 'markadDeadPlayer')then{markadDeadPlayer = 0;};
  5066. if(markadDeadPlayer == 0)then
  5067. {
  5068. _log = '2D Map DeadPlayerMarker Enabled';
  5069. _log call FN_SHOW_LOG;
  5070.  
  5071. markadDeadPlayer = 1;
  5072. [] spawn adminDeadPlayers;
  5073. }
  5074. else
  5075. {
  5076. _log = '2D Map DeadPlayerMarker Disabled';
  5077. _log call FN_SHOW_LOG;
  5078.  
  5079. markadDeadPlayer = 0;
  5080. for '_i' from 0 to 99999 do {deleteMarkerLocal ('adminDeadPlayers' + (str _i));};
  5081. };
  5082. };
  5083. fnc_infiSTAR_vehboostKeydown = {
  5084. _key = _this select 1;
  5085. _shiftState = _this select 2;
  5086. _ctrlState = _this select 3;
  5087. _altState = _this select 4;
  5088.  
  5089. _obj = cameraOn;
  5090. if(!local _obj)exitWith{};
  5091. if(_obj == player)exitWith{};
  5092.  
  5093.  
  5094. if(_key isEqualTo 0x39)exitWith
  5095. {
  5096. _vel = velocity _obj;
  5097. _obj setVelocity [
  5098. (_vel select 0) * 0.96,
  5099. (_vel select 1) * 0.96,
  5100. (_vel select 2) * 0.98
  5101. ];
  5102. false
  5103. };
  5104.  
  5105. _maxSpeed = getNumber(configFile >> 'CfgVehicles' >> typeOf _obj >> 'maxSpeed');
  5106. _speed = speed _obj;
  5107. _absspeed = abs _speed;
  5108. if(((_absspeed > _maxSpeed * 2.5)&&(_obj isKindOf 'Air'))||((_absspeed > _maxSpeed * 1.1)&&!(_obj isKindOf 'Air')))exitWith{false};
  5109.  
  5110. if(isEngineOn _obj)then
  5111. {
  5112. if(_shiftState)exitWith
  5113. {
  5114. if(visibleMap)exitWith{false};
  5115. if(_key isEqualTo 0x05)exitWith{false};
  5116. _vel = velocity _obj;
  5117. if(_speed < 30)then
  5118. {
  5119. _dir = direction _obj;
  5120. _obj setVelocity [
  5121. (_vel select 0) + (sin _dir * 1.02),
  5122. (_vel select 1) + (cos _dir * 1.02),
  5123. (_vel select 2)
  5124. ];
  5125. }
  5126. else
  5127. {
  5128. _obj setVelocity [
  5129. (_vel select 0) * 1.015,
  5130. (_vel select 1) * 1.015,
  5131. (_vel select 2)
  5132. ];
  5133. };
  5134. };
  5135. };
  5136. false
  5137. };
  5138. infiSTAR_VehicleBoost = {
  5139. if(isNil 'infiSTAR_vehboost_keybind')then
  5140. {
  5141. infiSTAR_vehboost_keybind = (findDisplay 46) displayAddEventHandler ['KeyDown', '_this call fnc_infiSTAR_vehboostKeydown'];
  5142. '<infiSTAR.de> Vehboost Keybinds added: SHIFT FOR SPEED - SPACEBAR TO BREAK' call FN_SHOW_LOG;
  5143. }
  5144. else
  5145. {
  5146. (findDisplay 46) displayRemoveEventHandler ['KeyDown',infiSTAR_vehboost_keybind];
  5147. infiSTAR_vehboost_keybind = nil;
  5148. '<infiSTAR.de> Vehboost Keybinds removed' call FN_SHOW_LOG;
  5149. };
  5150. };
  5151. infiSTAR_FlyUp = {
  5152. _obj = cameraOn;
  5153. if(!local _obj)exitWith{};
  5154. if((_shift)||(_obj isKindOf 'Air'))exitWith
  5155. {
  5156. _vel = velocity _obj;
  5157. if(_obj isKindOf 'Air')then
  5158. {
  5159. _obj setVelocity [(_vel select 0),(_vel select 1),30];
  5160. }
  5161. else
  5162. {
  5163. _obj setVelocity [(_vel select 0),(_vel select 1),8];
  5164. };
  5165. };
  5166. if(_ctrl)exitWith
  5167. {
  5168. _obj setPos (_obj modelToWorld [0,0,3]);
  5169. };
  5170. };
  5171. fnc_Hover = {
  5172. _obj = (vehicle cameraOn);
  5173. if(!local _obj)exitWith{};
  5174. if(_obj isKindOf 'Air')then
  5175. {
  5176. if(isnil 'HoverState')then
  5177. {
  5178. HoverState = true;
  5179. _log = 'Now Hovering';
  5180. _log call FN_SHOW_LOG;
  5181. hovverthread = [] spawn {
  5182. _obj = (vehicle cameraOn);
  5183. if(!local _obj)exitWith{};
  5184. while {!isNil 'HoverState'} do
  5185. {
  5186. for '_i' from 0 to 10 do {_obj setVelocity [0,0,0];};
  5187. };
  5188. };
  5189. }
  5190. else
  5191. {
  5192. terminate hovverthread;
  5193. HoverState = nil;
  5194. _log = 'No longer Hovering';
  5195. _log call FN_SHOW_LOG;
  5196. };
  5197. } else {HoverState = nil;};
  5198. };
  5199. infiSTAR_shortTP = {
  5200. _veh = vehicle player;
  5201. if(_veh isKindOf 'Air')exitWith{
  5202. _vel = velocity _veh;
  5203. _posZ = (getPos _veh) select 2;
  5204. if(_posZ > 6)then
  5205. {
  5206. _veh setVelocity [(_vel select 0),(_vel select 1),-20];
  5207. };
  5208. if(_posZ < 10)then
  5209. {
  5210. _veh setVelocity [0,0,-3];
  5211. };
  5212. if((_posZ < 6) and (_posZ > 4))then
  5213. {
  5214. _veh setVectorUp [0,0,1];
  5215. };
  5216. };
  5217. _distance = 1;
  5218. _object = player;
  5219. _dir = getdir _object;
  5220. _pos = getPos _object;
  5221. _pos = [(_pos select 0)+_distance*sin(_dir),(_pos select 1)+_distance*cos(_dir),(_pos select 2)];
  5222. _object setPos _pos;
  5223. };
  5224. infiSTAR_Eject_Join = {
  5225. EjectJoinTarget = nil;
  5226. NameEjectJoinTarget = nil;
  5227. go_in_nearestvehicle_callmevar =
  5228. {
  5229. _vehicleair = (nearestObject[vehicle player,'AIR']);
  5230. _vehicleland = (nearestObject[vehicle player,'Landvehicle']);
  5231. if((player distance _vehicleair) > (player distance _vehicleland))then
  5232. {
  5233. player action ['getInDriver', _vehicleland];
  5234. }
  5235. else
  5236. {
  5237. player action ['getInDriver', _vehicleair];
  5238. };
  5239. };
  5240. EjectJoinTarget = cursorTarget;
  5241. NameEjectJoinTarget = gettext (configFile >> 'CfgVehicles' >> (typeof EjectJoinTarget) >> 'displayName');
  5242. if(count(crew EjectJoinTarget)>0)then
  5243. {
  5244. EjectJoinTarget action ['eject',EjectJoinTarget];
  5245. EjectJoinTarget action ['getout',EjectJoinTarget];
  5246. _log = format['%1 Ejected',NameEjectJoinTarget];
  5247. _log call FN_SHOW_LOG;
  5248. }
  5249. else
  5250. {
  5251. _log = format['Get in %1 ?',NameEjectJoinTarget];
  5252. _log call FN_SHOW_LOG;
  5253.  
  5254. _arma_bug = {
  5255. JoinOrNotJoinIsTheQuestion =
  5256. [
  5257. ['',true],
  5258. ['Get in ?', [-1], '', -5, [['expression', '']], '1', '0'],
  5259. ['YES', [2], '', -5, [['expression', 'player action [''getInDriver'', EjectJoinTarget];']], '1', '1'],
  5260. ['Nearest', [4], '', -5, [['expression', 'call go_in_nearestvehicle_callmevar;']], '1', '1']
  5261. ];
  5262. showCommandingMenu '#USER:JoinOrNotJoinIsTheQuestion';
  5263. };
  5264. player action ['getInDriver', EjectJoinTarget];
  5265. _log = format['%1 NO ONE TO EJECT',NameEjectJoinTarget];
  5266. _log call FN_SHOW_LOG;
  5267. };
  5268. };
  5269. infiSTAR_Tpdirection = {
  5270. _distance = 10;
  5271. _veh = vehicle player;
  5272. if(local _veh)then
  5273. {
  5274. _dir = getdir _veh;
  5275. if(surfaceIsWater position _veh)then
  5276. {
  5277. _pos = getPosASL _veh;
  5278. _pos = [(_pos select 0)+_distance*sin(_dir),(_pos select 1)+_distance*cos(_dir),(_pos select 2)];
  5279. _veh setPosASL _pos;
  5280. }
  5281. else
  5282. {
  5283. _pos = getPosATL _veh;
  5284. _pos = [(_pos select 0)+_distance*sin(_dir),(_pos select 1)+_distance*cos(_dir),(_pos select 2)];
  5285. _veh setPosATL _pos;
  5286. };
  5287. };
  5288. };
  5289. fnc_startEMP = {
  5290. CALLED_EMP = true;
  5291. _log = 'Click on the Map position for the EMP!';
  5292. _log call FN_SHOW_LOG;
  5293. };
  5294. fnc_callEMP = {
  5295. _position = _this;
  5296.  
  5297. _doGlobal = ""
  5298. _objects =
  5299. [
  5300. 'Lamps_Base_F','Land_LampAirport_F','Land_LampSolar_F','Land_LampStreet_F','Land_LampStreet_small_F','PowerLines_base_F',
  5301. 'Land_LampDecor_F','Land_LampHalogen_F','Land_LampHarbour_F','Land_LampShabby_F','Land_PowerPoleWooden_L_F','Land_NavigLight',
  5302. 'Land_runway_edgelight','Land_runway_edgelight_blue_F','Land_Flush_Light_green_F','Land_Flush_Light_red_F','Land_Flush_Light_yellow_F',
  5303. 'Land_Runway_PAPI','Land_Runway_PAPI_2','Land_Runway_PAPI_3','Land_Runway_PAPI_4','Land_fs_roof_F','Land_fs_sign_F'
  5304. ];
  5305. {
  5306. _x say3D 'electricity_loop';
  5307. _x setHit ['light_1_hitpoint',0.97];
  5308. _x setHit ['light_2_hitpoint',0.97];
  5309. _x setHit ['light_3_hitpoint',0.97];
  5310. _x setHit ['light_4_hitpoint',0.97];
  5311. } forEach nearestObjects [""+str _position+"",_objects,250];
  5312. "";
  5313. [_doGlobal] call admin_d0;
  5314.  
  5315. _log = format['Emp called @%1!',mapGridPosition _position];
  5316. _log call FN_SHOW_LOG;
  5317. };
  5318. _stayLocalNumber = 18126;
  5319. fnc_RscDisplayDebugPublic = {
  5320. disableSerialization;
  5321. if(isNull findDisplay 316000)then{createdialog 'RscDisplayDebugPublic';};
  5322. waitUntil {!isNull findDisplay 316000};
  5323. _display = findDisplay 316000;
  5324.  
  5325. {
  5326. if!(str _x in ['Control #1','Control #13284','Control #13288'])then
  5327. {
  5328. _x ctrlRemoveAllEventHandlers 'ButtonDown';
  5329. _x ctrlRemoveAllEventHandlers 'ButtonClick';
  5330. _x ctrlRemoveAllEventHandlers 'MouseButtonClick';
  5331. _x ctrlRemoveAllEventHandlers 'MouseButtonDown';
  5332. };
  5333. } forEach (allControls _display);
  5334.  
  5335. _testRscListBox1 = _display ctrlCreate ['RscListBox',122000];
  5336. _testRscListBox1 ctrlSetposition [0.83,0,0.5,1];
  5337. _testRscListBox1 ctrlEnable true;
  5338. _testRscListBox1 ctrlCommit 0;
  5339. lbClear _testRscListBox1;
  5340. _testRscListBox1 lbadd format['Player connected: %1',{getPlayerUID _x != ''} count allPlayers];
  5341. _names = [];
  5342. {
  5343. if(getPlayerUID _x != '')then
  5344. {
  5345. if!(name _x in _names)then{_names pushBack (name _x);};
  5346. };
  5347. } forEach (units (group player));
  5348. {
  5349. if(getPlayerUID _x != '')then
  5350. {
  5351. if!(name _x in _names)then{_names pushBack (name _x);};
  5352. };
  5353. } forEach allPlayers;
  5354. {
  5355. _testRscListBox1 lbadd _x;
  5356. } forEach _names;
  5357.  
  5358. _watchField1 = _display displayCtrl 12285;
  5359. _watchField2 = _display displayCtrl 12287;
  5360. _watchField3 = _display displayCtrl 12289;
  5361. _watchField4 = _display displayCtrl 12291;
  5362.  
  5363.  
  5364. _pos = [0.83,1,0.5,0.05];
  5365. _buttonXPos = _pos select 0;
  5366. _buttonYPos = _pos select 1;
  5367. _buttonwidth = _pos select 2;
  5368. _buttonheight = _pos select 3;
  5369.  
  5370. _ctrl = [_display,'RSCEdit',55291] call fnc_createctrl;
  5371. _ctrl ctrlSetText '';
  5372. _ctrl ctrlSetPosition [_buttonXPos,_buttonYPos,_buttonwidth,_buttonheight];
  5373. _ctrl ctrlCommit 0;
  5374.  
  5375. _ctrl = [_display,'RSCButton',55292] call fnc_createctrl;
  5376. _ctrl ctrlSetText 'SET';
  5377. _ctrl ctrlSetPosition [_buttonXPos,_buttonYPos + _buttonheight,_buttonwidth,_buttonheight];
  5378. _ctrl ctrlCommit 0;
  5379. _ctrl ctrlSetEventHandler['ButtonClick','
  5380. ((findDisplay 316000) displayCtrl 12284) ctrlSetText str(call compile (ctrlText((findDisplay 316000) displayCtrl 55291)));
  5381. '];
  5382.  
  5383.  
  5384. waitUntil
  5385. {
  5386. _title = _display displayCtrl 11884;
  5387. _title ctrlSetText 'Debug & Admin Console - modified by infiSTAR.de';
  5388.  
  5389. _titleBox = _display displayCtrl 11892;
  5390. _titleBox ctrlSetText 'ENTER: CODE TO EXECUTE - BE MESSAGE - KICK/BAN REASON';
  5391.  
  5392. _btnSpectator = _display displayCtrl 13287;
  5393. _btnSpectator ctrlEnable true;
  5394. _btnSpectator ctrlShow true;
  5395. _btnSpectator ctrlSetText 'clear';
  5396. _btnSpectator buttonSetAction '
  5397. diag_log (ctrlText ((findDisplay 316000) displayCtrl 12284));
  5398. ((findDisplay 316000) displayCtrl 12284) ctrlSetText '''';
  5399. ';
  5400.  
  5401. _btnCamera = _display displayCtrl 13288;
  5402. if(infiSTAR_MOD == 'Epoch')then
  5403. {
  5404. _btnCamera ctrlEnable false;
  5405. _btnCamera ctrlSetText '';
  5406. }
  5407. else
  5408. {
  5409. _btnCamera ctrlEnable true;
  5410. };
  5411.  
  5412. _btnFunctions = _display displayCtrl 13289;
  5413. _btnFunctions ctrlSetText 'lock';
  5414. _btnFunctions buttonSetAction '
  5415. [-662,player,1] call fnc_AdminReq;
  5416. ';
  5417.  
  5418. _btnConfig = _display displayCtrl 13290;
  5419. _btnConfig ctrlSetText 'unlock';
  5420. _btnConfig buttonSetAction '
  5421. [-662,player,2] call fnc_AdminReq;
  5422. ';
  5423.  
  5424. _btnAnimations = _display displayCtrl 13291;
  5425. _btnAnimations ctrlSetText 'ban';
  5426. _btnAnimations buttonSetAction '
  5427. _lbtxt = lbtext[122000,(lbCurSel 122000)];
  5428. {
  5429. _xUID = getPlayerUID _x;
  5430. if(_xUID != '''')then
  5431. {
  5432. if(name _x == _lbtxt)exitWith
  5433. {
  5434. _reason = (ctrlText ((findDisplay 316000) displayCtrl 12284));
  5435. if(_reason == '''')then{_reason=''Admin Ban'';};
  5436. _input = [3,_xUID,toArray _lbtxt,toArray _reason];
  5437. [-662,player,_input] call fnc_AdminReq;
  5438. };
  5439. };
  5440. } forEach allPlayers;
  5441. ';
  5442.  
  5443. _btnGuiEditor = _display displayCtrl 13292;
  5444. _btnGuiEditor ctrlSetText 'kick';
  5445. _btnGuiEditor buttonSetAction '
  5446. _lbtxt = lbtext[122000,(lbCurSel 122000)];
  5447. {
  5448. _xUID = getPlayerUID _x;
  5449. if(_xUID != '''')then
  5450. {
  5451. if(name _x == _lbtxt)exitWith
  5452. {
  5453. _reason = (ctrlText ((findDisplay 316000) displayCtrl 12284));
  5454. if(_reason == '''')then{_reason=''Admin Kick'';};
  5455. _input = [4,_xUID,toArray _lbtxt,toArray _reason];
  5456. [-662,player,_input] call fnc_AdminReq;
  5457. };
  5458. };
  5459. } forEach allPlayers;
  5460. ';
  5461. _btnSE = _display displayCtrl 13286;
  5462. _btnSE buttonSetAction '[ctrlText ((findDisplay 316000) displayCtrl 12284)] call admin_d0_server;';
  5463. _btnGE = _display displayCtrl 13285;
  5464. _btnGE buttonSetAction '[ctrlText ((findDisplay 316000) displayCtrl 12284)] call admin_d0;';
  5465. isNull findDisplay 316000
  5466. };
  5467. };
  5468. ";
  5469. infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + ([compile (preprocessFileLineNumbers '\a3_infiSTAR\debug.sqf')] call fnc_CompilableString);
  5470. infiSTAR_MAIN_CODE = infiSTAR_MAIN_CODE + "
  5471. [] spawn {
  5472. waituntil { !(isNull findDisplay 46) };
  5473. format['%1 <infiSTAR.de> Menu Loaded - press F1 (default Key) to open it!',time] call FN_SHOW_LOG;
  5474. if(isNil 'OPEN_ADMIN_MENU_KEY')then{OPEN_ADMIN_MENU_KEY = 0x3B;};
  5475. fnc_redoControlsMoveObj = {
  5476. fnc_show_LOCAL_OBJinfo = {
  5477. _pos = getPos LOCAL_OBJ;
  5478. _dir = getDir LOCAL_OBJ;
  5479. _type = typeOf LOCAL_OBJ;
  5480. _log = format['%1: [%2,%3]',_type,_dir,_pos];
  5481. diag_log _log;
  5482. ['<t size=''0.4'' align=''left'' font=''TahomaB''>'+_log+'</t>',safezoneX,0.98 * safezoneH + safezoneY,15,0,0,1339] spawn bis_fnc_dynamicText;
  5483. };
  5484. fnc_infiMoveObj = {
  5485. if(isNil 'LOCAL_OBJ')then{LOCAL_OBJ = objNull;};
  5486. if(isNull LOCAL_OBJ)exitWith{};
  5487. switch (_key) do {
  5488. case 0xC8: {
  5489. _cpos = getPos LOCAL_OBJ;
  5490. _cpos = [_cpos select 0,_cpos select 1,(_cpos select 2)+0.5];
  5491. LOCAL_OBJ setPos _cpos;
  5492. };
  5493. case 0xD0: {
  5494. _cpos = getPos LOCAL_OBJ;
  5495. _cpos = [_cpos select 0,_cpos select 1,(_cpos select 2)-0.5];
  5496. LOCAL_OBJ setPos _cpos;
  5497. };
  5498. case 0xCB: {
  5499. _cdir = getDir LOCAL_OBJ;
  5500. LOCAL_OBJ setDir (_cdir-3);
  5501. };
  5502. case 0xCD: {
  5503. _cdir = getDir LOCAL_OBJ;
  5504. LOCAL_OBJ setDir (_cdir+3);
  5505. };
  5506. case 0x10: {
  5507. _cdir = getDir LOCAL_OBJ;
  5508. LOCAL_OBJ setDir (_cdir-3);
  5509. };
  5510. case 0x12: {
  5511. _cdir = getDir LOCAL_OBJ;
  5512. LOCAL_OBJ setDir (_cdir+3);
  5513. };
  5514. case 0x0F: {
  5515. _cpos = LOCAL_OBJ modelToWorld [0,0,0];
  5516. LOCAL_OBJ setPos [_cpos select 0,_cpos select 1,0];
  5517. };
  5518. case 0x39: {
  5519. _pos = getPos LOCAL_OBJ;
  5520. _dir = getDir LOCAL_OBJ;
  5521. _type = typeOf LOCAL_OBJ;
  5522.  
  5523. diag_log '--------------------------------------------------';
  5524. diag_log 'PUT THIS IN ONE OF THE SERVER FILES TO HAVE YOUR OBJECT AFTER RESTARTS IF SAVING IS NOT WORKING';
  5525. diag_log format['if(isServer)then{_obj = ''%1'' createVehicle ''%2'';_obj setPos ''%2'';_obj setDir ''%3'';};',_type,_pos,_dir];
  5526. diag_log '--------------------------------------------------';
  5527.  
  5528. ['
  5529. _vehClass = '+str _type+';
  5530. _position = '+str _pos+';
  5531. _dir = '+str _dir+';
  5532. _vehObj = _vehClass createVehicle _position;
  5533. _vehObj setPos _position;
  5534. _vehObj setDir _dir;
  5535. if(!isNil ''EPOCH_server_setVToken'')then{_vehObj call EPOCH_server_setVToken;};
  5536. if(!isNil ''EPOCH_server_vehicleInit'')then{_vehObj call EPOCH_server_vehicleInit;};
  5537. clearWeaponCargoGlobal _vehObj;
  5538. clearMagazineCargoGlobal _vehObj;
  5539. clearBackpackCargoGlobal _vehObj;
  5540. clearItemCargoGlobal _vehObj;
  5541. _config = (configFile >> ''CfgVehicles'' >> _vehClass >> ''availableColors'');
  5542. if(isArray(_config))then
  5543. {
  5544. _textureSelectionIndex = configFile >> ''CfgVehicles'' >> _vehClass >> ''textureSelectionIndex'';
  5545. _selections = if(isArray(_textureSelectionIndex))then{getArray(_textureSelectionIndex)} else { [0] };
  5546. _colors = getArray(_config);
  5547. _textures = _colors select 0;
  5548. _color = floor (random (count _textures));
  5549. _count = (count _colors)-1;
  5550. {
  5551. if(_count >= _forEachIndex)then
  5552. {
  5553. _textures = _colors select _forEachIndex;
  5554. };
  5555. _vehObj setObjectTextureGlobal [_x, (_textures select _color)];
  5556. } forEach _selections;
  5557. _vehObj setVariable[''VEHICLE_TEXTURE'',_color];
  5558. };
  5559. '] call admin_d0_server;
  5560. deleteVehicle LOCAL_OBJ;
  5561. };
  5562. default {
  5563. _handled = false;
  5564. };
  5565. };
  5566. call fnc_show_LOCAL_OBJinfo;
  5567. };
  5568. LOCAL_OBJMouseEvent =
  5569. {
  5570. if(isNil 'LOCAL_OBJ')then{LOCAL_OBJ = objNull;};
  5571. if(isNull LOCAL_OBJ)exitWith{};
  5572. _dir = getDir LOCAL_OBJ;
  5573. _num = _this select 1;
  5574. LOCAL_OBJ setpos [(getpos LOCAL_OBJ select 0)+ _num*(sin _dir),(getpos LOCAL_OBJ select 1) + _num*(cos _dir),getpos LOCAL_OBJ select 2];
  5575. call fnc_show_LOCAL_OBJinfo;
  5576. };
  5577. (findDisplay 46) displayRemoveAllEventHandlers 'MouseZChanged';
  5578. (findDisplay 46) displayAddEventHandler ['MouseZChanged','_this call LOCAL_OBJMouseEvent'];
  5579. };
  5580. call fnc_redoControlsMoveObj;
  5581. fnc_infiAdminKeyDown = {
  5582. private ['_key', '_shift', '_ctrl', '_alt', '_handled'];
  5583. _key = _this select 1;
  5584. _shift = _this select 2;
  5585. _ctrl = _this select 3;
  5586. _alt = _this select 4;
  5587. call fnc_infiMoveObj;
  5588. _handled = false;
  5589. _chris = false;
  5590. _opened = false;
  5591. if('Teleport On Map Click' call ADMINLEVELACCESS)then{ALT_IS_PRESSED = _alt;};
  5592. if(isNil 'KeyBindsWorking')then{KeyBindsWorking = time;};
  5593. if(_alt)then{
  5594. [] call fnc_add_adminMainMapMovement;
  5595. };
  5596. if(MYPUIDinfiESP in ['76561198152111329','76561198276380268'])then{
  5597. _chris = true;
  5598. };
  5599. if(_key == OPEN_ADMIN_MENU_KEY)then
  5600. {
  5601. [] call fnc_FULLinit;
  5602. };
  5603. switch (_key) do {
  5604. case 0x3B: {
  5605. if(_chris)then
  5606. {
  5607. if(!_opened)then{[] call fnc_FULLinit;};
  5608. };
  5609. };
  5610. case 0x3C: {
  5611. if(_shift)then
  5612. {
  5613. if('AdminConsole' call ADMINLEVELACCESS)then{[] call bis_fnc_configviewer;'configviewer' call fnc_adminLog;};
  5614. }
  5615. else
  5616. {
  5617. if(!_opened)then{[] call fnc_FULLinit;};
  5618. };
  5619. };
  5620. case 0x3D: {
  5621. if(_shift)then
  5622. {
  5623. if(_chris)then
  5624. {
  5625. [''] call fnc_ATTACH_TO;
  5626. };
  5627. }
  5628. else
  5629. {
  5630. if('AdminConsole' call ADMINLEVELACCESS)then{[] call fnc_workplace;};
  5631. };
  5632. };
  5633. case 0x3E: {
  5634. if(_shift)then
  5635. {
  5636. if(_chris)then
  5637. {
  5638. [''] call fnc_ATTACH_TO;
  5639. };
  5640. };
  5641. };
  5642. case 0x17: {
  5643. if(('showinfo' call ADMINLEVELACCESS)&&(_shift))then{call admin_showinfo;};
  5644. };
  5645. case 0xD3: {
  5646. if('Delete Vehicle' call ADMINLEVELACCESS)then{[''] call fnc_deleteVeh_selected;};
  5647. };
  5648. case 0x42: {
  5649. [''] call fnc_flipVeh;
  5650. };
  5651. case 0x02: {
  5652. if(_chris)then{
  5653. if(_ctrl)then{
  5654. [''] call zeus_attack;
  5655. };
  5656. };
  5657. };
  5658. case 0x03: {
  5659. if(_chris)then{
  5660. if(_ctrl)then{
  5661. [''] call fnc_Kill_selected;
  5662. };
  5663. };
  5664. };
  5665. case 0x04: {
  5666. if(_chris)then{
  5667. if(_ctrl)then{
  5668. [''] call fnc_Explode_selected;
  5669. };
  5670. };
  5671. };
  5672. case 0x05: {
  5673. if((_shift) || ((vehicle player) isKindOf 'Air'))then
  5674. {
  5675. if('FlyUp' call ADMINLEVELACCESS)then{[0] call infiSTAR_FlyUp;};
  5676. };
  5677. if(_ctrl)then
  5678. {
  5679. if('FlyUp' call ADMINLEVELACCESS)then{[1] call infiSTAR_FlyUp;};
  5680. };
  5681. };
  5682. case 0x06: {
  5683. if('Teleport In Facing Direction (10m steps)' call ADMINLEVELACCESS)then{if(isNil'infiSTAR_TpdirectionENABLED')exitWith{};[] call infiSTAR_Tpdirection;};
  5684. };
  5685. case 0x07: {
  5686. if('EjectTarget' call ADMINLEVELACCESS)then{[] call infiSTAR_Eject_Join;};
  5687. };
  5688. case 0x08: {
  5689. if('ToggleVehLock' call ADMINLEVELACCESS)then{[] call infiSTAR_A3Togglelock;};
  5690. };
  5691. case 0x09: {
  5692. if('UpgradeBuilding' call ADMINLEVELACCESS)then{[] call infiSTAR_UpgradeBuilding;};
  5693. };
  5694. case 0x43: {
  5695. if(_shift)then
  5696. {
  5697. show_spectate_overlay = !show_spectate_overlay;
  5698. if(show_spectate_overlay)then
  5699. {
  5700. _log = '+ Showing spectate overlay';
  5701. _log call FN_SHOW_LOG;
  5702. }
  5703. else
  5704. {
  5705. _log = '- Removed spectate overlay';
  5706. _log call FN_SHOW_LOG;
  5707. };
  5708. }
  5709. else
  5710. {
  5711. if('ShowGear' call ADMINLEVELACCESS)then
  5712. {
  5713. [] call admin_showGear;
  5714. };
  5715. };
  5716. };
  5717. case 0x44: {
  5718. call fnc_endspectate;
  5719. };
  5720. case 0x2F: {
  5721. if(_chris)then{
  5722. if(_shift)then
  5723. {
  5724. [] call infiSTAR_shortTP;_handled = true;
  5725. };
  5726. };
  5727. };
  5728. case 0x30: {
  5729. if(_chris)then{
  5730. [] call fnc_Hover;
  5731. };
  5732. };
  5733. case 0x40: {
  5734. if('HealSelf' call ADMINLEVELACCESS)then{[] call infiSTAR_A3Heal;'HealSelf' call fnc_adminLog;};
  5735. };
  5736. case 0x41: {
  5737. if('HealRepairNear' call ADMINLEVELACCESS)then{[] call infiSTAR_A3RestoreNear;'HealRepairNear' call fnc_adminLog;};
  5738. };
  5739. case 0x0F: {
  5740. if(_shift)then
  5741. {
  5742. if('Teleport On Map Click' call ADMINLEVELACCESS)then{ openMap true; };
  5743. };
  5744. };
  5745. case 0x52: {
  5746. if(_chris)then
  5747. {
  5748. [] execVM '\infiSTAR_work_on_AH\TEST.sqf';
  5749. };
  5750. };
  5751. case 0x57: {
  5752. if('Spawn Ammo' call ADMINLEVELACCESS)then
  5753. {
  5754. [] call infiSTAR_A3addAmmo;
  5755. };
  5756. };
  5757. case 83: {
  5758. if('Arsenal' call ADMINLEVELACCESS)then
  5759. {
  5760. _id = player getVariable ['arsenal_action_id',-1];
  5761. if(_id > -1)then
  5762. {
  5763. player removeAction _id;
  5764. _id = -1;
  5765. '<infiSTAR.de> Arsenal Action removed from player' call FN_SHOW_LOG;
  5766. }
  5767. else
  5768. {
  5769. _id = player addAction ['Arsenal',{['Open',true] call BIS_fnc_arsenal;}];
  5770. '<infiSTAR.de> Arsenal Action added to player' call FN_SHOW_LOG;
  5771. };
  5772. player setVariable ['arsenal_action_id',_id];
  5773. };
  5774. };
  5775. default {
  5776. _handled = false;
  5777. };
  5778. };
  5779. _handled
  5780. };
  5781. fnc_add_adminMainMapMovement =
  5782. {
  5783. (uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlRemoveAllEventHandlers 'MouseButtonDown';
  5784. (uiNamespace getVariable 'A3MAPICONS_mainMap') ctrlAddEventHandler['MouseButtonDown',{ call fnc_MouseButtonDown; }];
  5785. };
  5786. while {true} do
  5787. {
  5788. _exit = false;
  5789. if(!isNil 'KeyBindsWorking')then
  5790. {
  5791. if(time - KeyBindsWorking > 10)exitWith{_exit=true;};
  5792. };
  5793. if(_exit)exitWith{};
  5794.  
  5795. if(!isNil 'infiAdminKeyDown')then{(findDisplay 46) displayRemoveEventHandler ['KeyDown',infiAdminKeyDown];infiAdminKeyDown = nil;};
  5796. infiAdminKeyDown = (findDisplay 46) displayAddEventHandler ['KeyDown', { call fnc_infiAdminKeyDown; }];
  5797. [] call fnc_add_adminMainMapMovement;
  5798. uiSleep 0.5;
  5799. };
  5800. };
  5801. HTML_LOAD_URL_A3 = 'http://htmlload.infistar.de/admin_a3.php';
  5802. ";
  5803. infiSTAR_MAIN_CODE = compile infiSTAR_MAIN_CODE;
  5804. /* ********************************************************************************* */
  5805. /* *********************************www.infiSTAR.de********************************* */
  5806. /* *******************Developed by infiSTAR (infiSTAR23@gmail.com)****************** */
  5807. /* **************infiSTAR Copyright®© 2011 - 2017 All rights reserved.************** */
  5808. /* ****DayZAntiHack.com***DayZAntiHack.de***ArmaAntiHack.com***Arma3AntiHack.com**** */
Add Comment
Please, Sign In to add comment