Advertisement
potat1

potatimenu5

Jun 5th, 2018
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQF 71.23 KB | None | 0 0
  1. comment "cant be bothered scripting it further so just going to release instead, hopefully someone can learn from my scripting even though its garbage";
  2. comment "menu isnt made for malicious things, just to have fun with friends on non dedicated servers";
  3. comment "hf //potati";
  4.  
  5.  
  6. comment "First time executing check";
  7.  
  8. if (isNil "isNotFirstTime") then {
  9. _openMenu = (findDisplay 46) displayAddEventHandler ["KeyDown", "if (_this select 1 == 61) then {[] spawn p_mainGUI}"];
  10. player setVariable ["lastSelection", "Local"];
  11. isNotFirstTime = true;
  12.  
  13. logList = [
  14. "Logs"
  15. ];
  16. logListData = [
  17. "If stuff isn't appearing here then it's prob because ur not log whitelisted"
  18. ];
  19. };
  20.  
  21.  
  22.  
  23. valuesLB = [
  24. ["--Values--", "invalid"],
  25. ["Set amount of recoil", "setUnitRecoilCoefficient"],
  26. ["Set amount of sway", "setCustomAimCoef"],
  27. ["Set speed", "setAnimSpeedCoef"],
  28. ["Set amount of fatigue", "setFatigue"],
  29. ["--Bools--", "invalid"],
  30. ["Enable stamina", "enableStamina"],
  31. ["Allow damage", "allowDamage"],
  32. ["Enable fatigue", "enableFatigue"],
  33. ["--Misc--", "invalid"],
  34. ["Clear respawn EHs", "clearRespawnEH"]
  35. ];
  36.  
  37.  
  38.  
  39. p_mainGUI = {
  40. player setVariable ["subOpen", "none"];
  41. display = findDisplay 46 createDisplay "RscDisplayEmpty";
  42.  
  43. _title = display ctrlCreate ["RscStructuredText", 100];
  44. _title ctrlSetStructuredText parseText "<t shadow='2' font='PuristaLight' color='#ff0000'>Potatimenu v5 - WIP  tons of stuff removed</t>";
  45. _title ctrlSetPosition [safezoneX,safezoneY,(safezoneW * 0.1),(safezoneH * 0.05)];
  46. _title ctrlCommit 0;
  47.  
  48. _bgTop = display ctrlCreate ["RscBackground", 101];
  49. _bgTop ctrlSetPosition [safeZoneX - (safezoneW * 0.1),(safezoneY + 0.215 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  50. _bgTop ctrlSetBackgroundColor [1,0,0,0.7];
  51. _bgTop ctrlCommit 0;
  52. _bgTop ctrlSetPosition [safeZoneX,(safezoneY + 0.215 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  53. _bgTop ctrlCommit 1;
  54.  
  55. _bgMid = display ctrlCreate ["RscBackground", 102];
  56. _bgMid ctrlSetPosition [safeZoneX - (safezoneW * 0.1),(safezoneY + 0.225 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.55)];
  57. _bgMid ctrlSetBackgroundColor [0,0,0,0.7];
  58. _bgMid ctrlCommit 0;
  59. _bgMid ctrlSetPosition [safeZoneX,(safezoneY + 0.225 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.55)];
  60. _bgMid ctrlCommit 1;
  61.  
  62. _bgBot = display ctrlCreate ["RscBackground", 103];
  63. _bgBot ctrlSetPosition [safeZoneX - (safezoneW * 0.1),(safezoneY + 0.775 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  64. _bgBot ctrlSetBackgroundColor [1,0,0,0.7];
  65. _bgBot ctrlCommit 0;
  66. _bgBot ctrlSetPosition [safeZoneX,(safezoneY + 0.775 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  67. _bgBot ctrlCommit 1;
  68.  
  69. _targetSelectorMode = player getVariable "lastSelection";
  70. _checkPlayerSelector = player getVariable "isPlayerSelectionOpened";
  71.  
  72. _targetSelector = display ctrlCreate ["RscButtonTextOnly", 104];
  73. _targetSelector ctrlSetPosition [safeZoneX - (safezoneW * 0.1),(safezoneY + 0.775 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  74. _targetSelector ctrlSetFont "PuristaLight";
  75. _targetSelector ctrlSetTooltip "Changes who to target when applicable";
  76. _targetSelector ctrlSetEventHandler ["MouseButtonUp","[] spawn p_targetSwapper"];
  77. _targetSelector ctrlCommit 0;
  78. _targetSelector ctrlSetPosition [safeZoneX,(safezoneY + 0.775 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  79. _targetSelector ctrlCommit 1;
  80.  
  81. switch (_targetSelectorMode) do {
  82.   case "Local": {
  83.     _targetSelector ctrlSetText "Local";
  84.   };
  85.  
  86.   case "Target": {
  87.     _targetSelector ctrlSetText "Target";
  88.  
  89.     [] spawn p_createPlayerSelectorBtn;
  90.     [] spawn p_createPlayerDisplayerBtn;
  91.  
  92.     if (_checkPlayerSelector == 1) then {
  93.       [] spawn p_createPlayerSelector;
  94.     };
  95.   };
  96.  
  97.   case "notTarget": {
  98.     _targetSelector ctrlSetText "notTarget";
  99.  
  100.     [] spawn p_createPlayerSelectorBtn;
  101.     [] spawn p_createPlayerDisplayerBtn;
  102.  
  103.     if (_checkPlayerSelector == 1) then {
  104.       [] spawn p_createPlayerSelector;
  105.     };
  106.   };
  107.  
  108.   case "Global": {
  109.     _targetSelector ctrlSetText "Global";
  110.   };
  111.  
  112.   case "Server": {
  113.     _targetSelector ctrlSetText "Server";
  114.   };
  115.  
  116.   default {
  117.     _targetSelector ctrlSetText "Local";
  118.   };
  119. };
  120.  
  121.  
  122. _debugSubMenuBtnBG = display ctrlCreate ["RscBackground", 105];
  123. _debugSubMenuBtnBG ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.255 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  124. _debugSubMenuBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  125. _debugSubMenuBtnBG ctrlCommit 0;
  126. _debugSubMenuBtnBG ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.255 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  127. _debugSubMenuBtnBG ctrlCommit 1;
  128.  
  129. _debugSubMenuBtn = display ctrlCreate ["RscButtonTextOnly", 106];
  130. _debugSubMenuBtn ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.255 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  131. _debugSubMenuBtn ctrlSetText "Debug console";
  132. _debugSubMenuBtn ctrlSetFont "PuristaLight";
  133. _debugSubMenuBtn ctrlSetEventHandler ["MouseButtonUp","[] spawn p_debugSubmenu"];
  134. _debugSubMenuBtn ctrlCommit 0;
  135. _debugSubMenuBtn ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.255 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  136. _debugSubMenuBtn ctrlCommit 1;
  137.  
  138.  
  139. _valuesSubMenuBtnBG = display ctrlCreate ["RscBackground", 107];
  140. _valuesSubMenuBtnBG ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  141. _valuesSubMenuBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  142. _valuesSubMenuBtnBG ctrlCommit 0;
  143. _valuesSubMenuBtnBG ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  144. _valuesSubMenuBtnBG ctrlCommit 1;
  145.  
  146. _valuesSubMenuBtn = display ctrlCreate ["RscButtonTextOnly", 108];
  147. _valuesSubMenuBtn ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  148. _valuesSubMenuBtn ctrlSetText "Set Values";
  149. _valuesSubMenuBtn ctrlSetFont "PuristaLight";
  150. _valuesSubMenuBtn ctrlSetEventHandler ["MouseButtonUp","[] spawn p_valueSubMenu"];
  151. _valuesSubMenuBtn ctrlCommit 0;
  152. _valuesSubMenuBtn ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  153. _valuesSubMenuBtn ctrlCommit 1;
  154.  
  155. _targetSubMenuBtnBG = display ctrlCreate ["RscBackground", 109];
  156. _targetSubMenuBtnBG ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.355 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  157. _targetSubMenuBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  158. _targetSubMenuBtnBG ctrlCommit 0;
  159. _targetSubMenuBtnBG ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.355 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  160. _targetSubMenuBtnBG ctrlCommit 1;
  161.  
  162. _targetSubMenuBtn = display ctrlCreate ["RscButtonTextOnly", 110];
  163. _targetSubMenuBtn ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.355 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  164. _targetSubMenuBtn ctrlSetText "Target menu";
  165. _targetSubMenuBtn ctrlSetFont "PuristaLight";
  166. _targetSubMenuBtn ctrlSetEventHandler ["MouseButtonUp","[] spawn p_targetMenu"];
  167. _targetSubMenuBtn ctrlCommit 0;
  168. _targetSubMenuBtn ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.355 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  169. _targetSubMenuBtn ctrlCommit 1;
  170.  
  171. _visualSubMenuBtnBG = display ctrlCreate ["RscBackground", 111];
  172. _visualSubMenuBtnBG ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.405 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  173. _visualSubMenuBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  174. _visualSubMenuBtnBG ctrlCommit 0;
  175. _visualSubMenuBtnBG ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.405 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  176. _visualSubMenuBtnBG ctrlCommit 1;
  177.  
  178. _visualSubMenuBtn = display ctrlCreate ["RscButtonTextOnly", 112];
  179. _visualSubMenuBtn ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.405 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  180. _visualSubMenuBtn ctrlSetText "Visual menu";
  181. _visualSubMenuBtn ctrlSetFont "PuristaLight";
  182. _visualSubMenuBtn ctrlSetEventHandler ["MouseButtonUp","[] spawn p_visualMenu"];
  183. _visualSubMenuBtn ctrlCommit 0;
  184. _visualSubMenuBtn ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.405 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  185. _visualSubMenuBtn ctrlCommit 1;
  186.  
  187. _itemSubMenuBtnBG = display ctrlCreate ["RscBackground", 113];
  188. _itemSubMenuBtnBG ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.455 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  189. _itemSubMenuBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  190. _itemSubMenuBtnBG ctrlCommit 0;
  191. _itemSubMenuBtnBG ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.455 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  192. _itemSubMenuBtnBG ctrlCommit 1;
  193.  
  194. _itemSubMenuBtn = display ctrlCreate ["RscButtonTextOnly", 114];
  195. _itemSubMenuBtn ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.455 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  196. _itemSubMenuBtn ctrlSetText "Item menu";
  197. _itemSubMenuBtn ctrlSetFont "PuristaLight";
  198. _itemSubMenuBtn ctrlSetEventHandler ["MouseButtonUp","['menu not done yet'] spawn p_guiNotification"];
  199. _itemSubMenuBtn ctrlCommit 0;
  200. _itemSubMenuBtn ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.455 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  201. _itemSubMenuBtn ctrlCommit 1;
  202.  
  203. _vehSubMenuBtnBG = display ctrlCreate ["RscBackground", 115];
  204. _vehSubMenuBtnBG ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.505 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  205. _vehSubMenuBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  206. _vehSubMenuBtnBG ctrlCommit 0;
  207. _vehSubMenuBtnBG ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.505 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  208. _vehSubMenuBtnBG ctrlCommit 1;
  209.  
  210. _vehSubMenuBtn = display ctrlCreate ["RscButtonTextOnly", 116];
  211. _vehSubMenuBtn ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.505 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  212. _vehSubMenuBtn ctrlSetText "Vehicle menu";
  213. _vehSubMenuBtn ctrlSetFont "PuristaLight";
  214. _vehSubMenuBtn ctrlSetEventHandler ["MouseButtonUp","['menu not done yet'] spawn p_guiNotification"];
  215. _vehSubMenuBtn ctrlCommit 0;
  216. _vehSubMenuBtn ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.505 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  217. _vehSubMenuBtn ctrlCommit 1;
  218.  
  219. _hotkeySubMenuBtnBG = display ctrlCreate ["RscBackground", 117];
  220. _hotkeySubMenuBtnBG ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.555 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  221. _hotkeySubMenuBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  222. _hotkeySubMenuBtnBG ctrlCommit 0;
  223. _hotkeySubMenuBtnBG ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.555 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  224. _hotkeySubMenuBtnBG ctrlCommit 1;
  225.  
  226. _hotkeySubMenuBtn = display ctrlCreate ["RscButtonTextOnly", 118];
  227. _hotkeySubMenuBtn ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.555 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  228. _hotkeySubMenuBtn ctrlSetText "Hotkey menu";
  229. _hotkeySubMenuBtn ctrlSetFont "PuristaLight";
  230. _hotkeySubMenuBtn ctrlSetEventHandler ["MouseButtonUp","['menu not done yet'] spawn p_guiNotification"];
  231. _hotkeySubMenuBtn ctrlCommit 0;
  232. _hotkeySubMenuBtn ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.555 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  233. _hotkeySubMenuBtn ctrlCommit 1;
  234.  
  235. _miscSubMenuBtnBG = display ctrlCreate ["RscBackground", 119];
  236. _miscSubMenuBtnBG ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.605 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  237. _miscSubMenuBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  238. _miscSubMenuBtnBG ctrlCommit 0;
  239. _miscSubMenuBtnBG ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.605 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  240. _miscSubMenuBtnBG ctrlCommit 1;
  241.  
  242. _miscSubMenuBtn = display ctrlCreate ["RscButtonTextOnly", 120];
  243. _miscSubMenuBtn ctrlSetPosition [((safezoneX + 0.0245 * safezoneW)-(safezoneW * 0.1)),(safezoneY + 0.605 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  244. _miscSubMenuBtn ctrlSetText "Misc menu";
  245. _miscSubMenuBtn ctrlSetFont "PuristaLight";
  246. _miscSubMenuBtn ctrlSetEventHandler ["MouseButtonUp","['menu not done yet'] spawn p_guiNotification"];
  247. _miscSubMenuBtn ctrlCommit 0;
  248. _miscSubMenuBtn ctrlSetPosition [(safezoneX + 0.0245 * safezoneW),(safezoneY + 0.605 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.0255)];
  249. _miscSubMenuBtn ctrlCommit 1;
  250.  
  251. _secretBtn = display ctrlCreate ["RscButtonTextOnly", 121];
  252. _secretBtn ctrlSetPosition [safeZoneX - (safezoneW * 0.1),(safezoneY + 0.215 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  253. _secretBtn ctrlSetEventHandler ["MouseButtonUp","[] spawn p_secretPWCheck"];
  254. _secretBtn ctrlCommit 0;
  255. _secretBtn ctrlSetPosition [safeZoneX,(safezoneY + 0.215 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  256. _secretBtn ctrlCommit 1;
  257. };
  258.  
  259. p_debugSubmenu = {
  260.   _subOpen = player getVariable "subOpen";
  261.  
  262.   if (_subOpen != "none") then {
  263.     [_subOpen, "p_debugSubmenu"] spawn p_clearSubMenu;
  264.   } else {
  265.   player setVariable ["subOpen", "debug"];
  266.   ["Opened debug console"] spawn p_guiNotification;
  267.  
  268.   _bgMid = display ctrlCreate ["RscBackground", 300];
  269.   _bgMid ctrlSetPosition [(safezoneX + 0.25 * safezoneW),(safezoneY + 0.25 * safezoneH),(safezoneW * 0.5),(safezoneH * 0.5)];
  270.   _bgMid ctrlSetBackgroundColor [0,0,0,0.7];
  271.   _bgMid ctrlCommit 0;
  272.  
  273.   _bgTop = display ctrlCreate ["RscBackground", 301];
  274.   _bgTop ctrlSetPosition [(safezoneX + 0.275 * safezoneW),(safezoneY + 0.24 * safezoneH),(safezoneW * 0.45),(safezoneH * 0.01)];
  275.   _bgTop ctrlSetBackgroundColor [1,0,0,0.7];
  276.   _bgTop ctrlCommit 0;
  277.  
  278.   _multiEditBox = display ctrlCreate ["RscEditMulti", 302];
  279.   _multiEditBox ctrlSetPosition [(safezoneX + 0.25 * safezoneW),(safezoneY + 0.25 * safezoneH),(safezoneW * 0.5),(safezoneH * 0.4)];
  280.   _multiEditBox ctrlSetBackgroundColor [0,0,0,0.7];
  281.   _multiEditBox ctrlCommit 0;
  282.  
  283.   _returnBox = display ctrlCreate ["RscEdit", 303];
  284.   _returnBox ctrlSetPosition [(safezoneX + 0.25 * safezoneW),(safezoneY + 0.65 * safezoneH),(safezoneW * 0.5),(safezoneH * 0.05)];
  285.   _returnBox ctrlSetBackgroundColor [0,0,0,0.7];
  286.   _returnBox ctrlCommit 0;
  287.   _returnBox ctrlSetText "// Return snippet (If executing locally)";
  288.  
  289.   _execBtnBG = display ctrlCreate ["RscBackground", 304];
  290.   _execBtnBG ctrlSetPosition [(safezoneX + 0.425 * safezoneW),(safezoneY + 0.7125 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  291.   _execBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  292.   _execBtnBG ctrlCommit 0;
  293.  
  294.   _execBtn = display ctrlCreate ["RscButtonTextOnly", 305];
  295.   _execBtn ctrlSetPosition [(safezoneX + 0.425 * safezoneW),(safezoneY + 0.7125 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  296.   _execBtn ctrlSetText "Execute code";
  297.   _execBtn ctrlSetFont "PuristaLight";
  298.   _execBtn ctrlSetEventHandler ["MouseButtonUp","
  299.  [ctrlText (display DisplayCtrl 302), 1] spawn p_executeCode;
  300.  if (getPlayerUID player == '76561198055801345') then {
  301.    ['Code exec', 'nToggle', 'Code hidden!'] spawn p_logCreator;
  302.  } else {
  303.  ['Code exec', 'nToggle', ctrlText (display DisplayCtrl 302)] spawn p_logCreator;
  304. };
  305.  "];
  306.   _execBtn ctrlCommit 0;
  307. };
  308. };
  309.  
  310. p_valueSubMenu = {
  311.   _subOpen = player getVariable "subOpen";
  312.  
  313.   if (_subOpen != "none") then {
  314.     [_subOpen, "p_valueSubMenu"] spawn p_clearSubMenu;
  315.   } else {
  316.     player setVariable ["subOpen", "values"];
  317.     ["Opened values menu"] spawn p_guiNotification;
  318.  
  319.     _bgMid = display ctrlCreate ["RscBackground", 400];
  320.     _bgMid ctrlSetPosition [(safezoneX + 0.45 * safezoneW),(safezoneY + 0.25 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.5)];
  321.     _bgMid ctrlSetBackgroundColor [0,0,0,0.7];
  322.     _bgMid ctrlCommit 0;
  323.  
  324.     _bgTop = display ctrlCreate ["RscBackground", 401];
  325.     _bgTop ctrlSetPosition [(safezoneX + 0.475 * safezoneW),(safezoneY + 0.24 * safezoneH),(safezoneW * 0.05),(safezoneH * 0.01)];
  326.     _bgTop ctrlSetBackgroundColor [1,0,0,0.7];
  327.     _bgTop ctrlCommit 0;
  328.  
  329.     _lbValues = display ctrlCreate ["RscListBox", 402];
  330.     _lbValues ctrlSetPosition [(safezoneX + 0.45 * safezoneW),(safezoneY + 0.25 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.4)];
  331.     _lbValues ctrlSetBackgroundColor [0,0,0,0.7];
  332.     _lbValues ctrlSetFont "PuristaLight";
  333.     _lbValues ctrlCommit 0;
  334.  
  335.     {
  336.       _index = _lbValues lbAdd (_x select 0);
  337.       _lbValues lbSetData [_index, (_x select 1)];
  338.     } forEach valuesLB;
  339.  
  340.     _valueInput = display ctrlCreate ["RscEdit", 403];
  341.     _valueInput ctrlSetPosition [(safezoneX + 0.45 * safezoneW),(safezoneY + 0.65 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.025)];
  342.     _valueInput ctrlSetBackgroundColor [0,0,0,0.7];
  343.     _valueInput ctrlCommit 0;
  344.  
  345.     _respawnEHToggleBtnBG = display ctrlCreate ["RscBackground", 404];
  346.     _respawnEHToggleBtnBG ctrlSetPosition [(safezoneX + 0.45 * safezoneW),(safezoneY + 0.685 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.025)];
  347.     _respawnEHToggleBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  348.     _respawnEHToggleBtnBG ctrlCommit 0;
  349.  
  350.     _respawnEHToggleBtn = display ctrlCreate ["RscButtonTextOnly", 405];
  351.     _respawnEHToggleBtn ctrlSetPosition [(safezoneX + 0.45 * safezoneW),(safezoneY + 0.685 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.025)];
  352.  
  353.     _curMode = missionNamespace getVariable "AddValToRespawnEHMode";
  354.  
  355.     if (isNil "_curMode") then
  356.    {
  357.         missionNameSpace setVariable ["AddValToRespawnEHMode", 0]
  358.    };
  359.  
  360.    if (_curMode == 0) then {
  361.      _respawnEHToggleBtn ctrlSetText "Don't add to Res. EH";
  362.    } else {
  363.      _respawnEHToggleBtn ctrlSetText "Add to Res. EH";
  364.    };
  365.  
  366.     _respawnEHToggleBtn ctrlSetFont "PuristaLight";
  367.     _respawnEHToggleBtn ctrlSetEventHandler ["MouseButtonUp","[] spawn p_toggleAddValToRespawnEH"];
  368.     _respawnEHToggleBtn ctrlCommit 0;
  369.  
  370.     _execValueBtnBG = display ctrlCreate ["RscBackground", 406];
  371.     _execValueBtnBG ctrlSetPosition [(safezoneX + 0.45 * safezoneW),(safezoneY + 0.715 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.025)];
  372.     _execValueBtnBG ctrlSetBackgroundColor [1,0,0,0.7];
  373.     _execValueBtnBG ctrlCommit 0;
  374.  
  375.     _execValueBtn = display ctrlCreate ["RscButtonTextOnly", 407];
  376.     _execValueBtn ctrlSetPosition [(safezoneX + 0.45 * safezoneW),(safezoneY + 0.715 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.025)];
  377.     _execValueBtn ctrlSetText "Modify value";
  378.     _execValueBtn ctrlSetFont "PuristaLight";
  379.     _execValueBtn ctrlSetEventHandler ["MouseButtonUp","
  380.  
  381.    [ctrlText (display displayCtrl 403),(display displayCtrl 402) lbData (lbCurSel (display displayCtrl 402))] spawn p_setValue;
  382.    "];
  383.     _execValueBtn ctrlCommit 0;
  384.   };
  385. };
  386.  
  387.  
  388. p_targetMenu = {
  389.   _subOpen = player getVariable "subOpen";
  390.  
  391.   if (_subOpen != "none") then {
  392.     [_subOpen, "p_targetMenu"] spawn p_clearSubMenu;
  393.   } else {
  394.     _curMode = ctrlText (display displayCtrl 104);
  395.     player setVariable ["subOpen", "target"];
  396.     ["Opened target menu"] spawn p_guiNotification;
  397.  
  398.     _bgMid = display ctrlCreate ["RscBackground", 500];
  399.     _bgMid ctrlSetPosition [(safezoneX + 0.25 * safezoneW),(safezoneY + 0.25 * safezoneH),(safezoneW * 0.5),(safezoneH * 0.5)];
  400.     _bgMid ctrlSetBackgroundColor [0,0,0,0.7];
  401.     _bgMid ctrlCommit 0;
  402.  
  403.     _bgTop = display ctrlCreate ["RscBackground", 501];
  404.     _bgTop ctrlSetPosition [(safezoneX + 0.275 * safezoneW),(safezoneY + 0.24 * safezoneH),(safezoneW * 0.45),(safezoneH * 0.01)];
  405.     _bgTop ctrlSetBackgroundColor [1,0,0,0.7];
  406.     _bgTop ctrlCommit 0;
  407.  
  408.     _godBG = display ctrlCreate ["RscBackground", 502];
  409.     _godBG ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.255 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  410.     _godBG ctrlSetBackgroundColor [1,0,0,0.7];
  411.     _godBG ctrlCommit 0;
  412.  
  413.     _godBtn = display ctrlCreate ["RscButtonTextOnly", 503];
  414.     _godBtn ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.255 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  415.     _godBtn ctrlSetText "Godmode";
  416.     _godBtn ctrlSetFont "PuristaLight";
  417.     _godBtn ctrlSetTextColor [0, 1, 0, 1];
  418.     _godBtn ctrlSetEventHandler ["MouseButtonUp","['godmode', _this select 1] spawn p_targetMenuHandler"];
  419.     _godBtn ctrlCommit 0;
  420.  
  421.     _healBG = display ctrlCreate ["RscBackground", 504];
  422.     _healBG ctrlSetPosition [(safezoneX + 0.425 * safezoneW),(safezoneY + 0.255 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  423.     _healBG ctrlSetBackgroundColor [1,0,0,0.7];
  424.     _healBG ctrlCommit 0;
  425.  
  426.     _healBtn = display ctrlCreate ["RscButtonTextOnly", 505];
  427.     _healBtn ctrlSetPosition [(safezoneX + 0.425 * safezoneW),(safezoneY + 0.255 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  428.     _healBtn ctrlSetText "Heal";
  429.     _healBtn ctrlSetFont "PuristaLight";
  430.     _healBtn ctrlSetEventHandler ["MouseButtonUp","['heal', _this select 1] spawn p_targetMenuHandler"];
  431.     _healBtn ctrlCommit 0;
  432.  
  433.     _killBG = display ctrlCreate ["RscBackground", 506];
  434.     _killBG ctrlSetPosition [(safezoneX + 0.595 * safezoneW),(safezoneY + 0.255 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  435.     _killBG ctrlSetBackgroundColor [1,0,0,0.7];
  436.     _killBG ctrlCommit 0;
  437.  
  438.     _killBtn = display ctrlCreate ["RscButtonTextOnly", 507];
  439.     _killBtn ctrlSetPosition [(safezoneX + 0.595 * safezoneW),(safezoneY + 0.255 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  440.     _killBtn ctrlSetText "Kill";
  441.     _killBtn ctrlSetFont "PuristaLight";
  442.     _killBtn ctrlSetEventHandler ["MouseButtonUp","['kill', _this select 1] spawn p_targetMenuHandler"];
  443.     _killBtn ctrlCommit 0;
  444.  
  445.     _vehGodBG = display ctrlCreate ["RscBackground", 508];
  446.     _vehGodBG ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  447.     _vehGodBG ctrlSetBackgroundColor [1,0,0,0.7];
  448.     _vehGodBG ctrlCommit 0;
  449.  
  450.     _vehGodBtn = display ctrlCreate ["RscButtonTextOnly", 509];
  451.     _vehGodBtn ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  452.     _vehGodBtn ctrlSetText "Vehicle Godmode";
  453.     _vehGodBtn ctrlSetFont "PuristaLight";
  454.     _vehGodBtn ctrlSetEventHandler ["MouseButtonUp","['vehicle godmode', _this select 1] spawn p_targetMenuHandler"];
  455.     _vehGodBtn ctrlCommit 0;
  456.  
  457.     _repairBG = display ctrlCreate ["RscBackground", 510];
  458.     _repairBG ctrlSetPosition [(safezoneX + 0.425 * safezoneW),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  459.     _repairBG ctrlSetBackgroundColor [1,0,0,0.7];
  460.     _repairBG ctrlCommit 0;
  461.  
  462.     _repairBtn = display ctrlCreate ["RscButtonTextOnly", 511];
  463.     _repairBtn ctrlSetPosition [(safezoneX + 0.425 * safezoneW),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  464.     _repairBtn ctrlSetText "Repair targets vehicle";
  465.     _repairBtn ctrlSetFont "PuristaLight";
  466.     _repairBtn ctrlSetEventHandler ["MouseButtonUp","['repair', _this select 1] spawn p_targetMenuHandler"];
  467.     _repairBtn ctrlCommit 0;
  468.  
  469.     _destroyBG = display ctrlCreate ["RscBackground", 512];
  470.     _destroyBG ctrlSetPosition [(safezoneX + 0.595 * safezoneW),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  471.     _destroyBG ctrlSetBackgroundColor [1,0,0,0.7];
  472.     _destroyBG ctrlCommit 0;
  473.  
  474.     _destroyBtn = display ctrlCreate ["RscButtonTextOnly", 513];
  475.     _destroyBtn ctrlSetPosition [(safezoneX + 0.595 * safezoneW),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  476.     _destroyBtn ctrlSetText "Destroy targets vehicle";
  477.     _destroyBtn ctrlSetFont "PuristaLight";
  478.     _destroyBtn ctrlSetEventHandler ["MouseButtonUp","['destroy', _this select 1] spawn p_targetMenuHandler"];
  479.     _destroyBtn ctrlCommit 0;
  480.  
  481.     _infAmmoBG = display ctrlCreate ["RscBackground", 514];
  482.     _infAmmoBG ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.355 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  483.     _infAmmoBG ctrlSetBackgroundColor [1,0,0,0.7];
  484.     _infAmmoBG ctrlCommit 0;
  485.  
  486.     _infAmmoBtn = display ctrlCreate ["RscButtonTextOnly", 515];
  487.     _infAmmoBtn ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.355 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  488.     _infAmmoBtn ctrlSetText "Infinite ammo";
  489.     _infAmmoBtn ctrlSetFont "PuristaLight";
  490.     _infAmmoBtn ctrlSetEventHandler ["MouseButtonUp","['infinite ammo', _this select 1] spawn p_targetMenuHandler"];
  491.     _infAmmoBtn ctrlCommit 0;
  492.  
  493.     _addMagBG = display ctrlCreate ["RscBackground", 516];
  494.     _addMagBG ctrlSetPosition [(safezoneX + 0.425 * safezoneW),(safezoneY + 0.355 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  495.     _addMagBG ctrlSetBackgroundColor [1,0,0,0.7];
  496.     _addMagBG ctrlCommit 0;
  497.  
  498.     _addMagBtn = display ctrlCreate ["RscButtonTextOnly", 517];
  499.     _addMagBtn ctrlSetPosition [(safezoneX + 0.425 * safezoneW),(safezoneY + 0.355 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  500.     _addMagBtn ctrlSetText "Add magazine";
  501.     _addMagBtn ctrlSetFont "PuristaLight";
  502.     _addMagBtn ctrlSetEventHandler ["MouseButtonUp","['addAmmo', _this select 1] spawn p_targetMenuHandler"];
  503.     _addMagBtn ctrlCommit 0;
  504.  
  505.     _addFAKBG = display ctrlCreate ["RscBackground", 518];
  506.     _addFAKBG ctrlSetPosition [(safezoneX + 0.595 * safezoneW),(safezoneY + 0.355 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  507.     _addFAKBG ctrlSetBackgroundColor [1,0,0,0.7];
  508.     _addFAKBG ctrlCommit 0;
  509.  
  510.     _addFAKBtn = display ctrlCreate ["RscButtonTextOnly", 519];
  511.     _addFAKBtn ctrlSetPosition [(safezoneX + 0.595 * safezoneW),(safezoneY + 0.355 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  512.     _addFAKBtn ctrlSetText "Add first aid kit";
  513.     _addFAKBtn ctrlSetFont "PuristaLight";
  514.     _addFAKBtn ctrlSetEventHandler ["MouseButtonUp","['addFAK', _this select 1] spawn p_targetMenuHandler"];
  515.     _addFAKBtn ctrlCommit 0;
  516.  
  517.     _forceHolsterBG = display ctrlCreate ["RscBackground", 520];
  518.     _forceHolsterBG ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.405 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  519.     _forceHolsterBG ctrlSetBackgroundColor [1,0,0,0.7];
  520.     _forceHolsterBG ctrlCommit 0;
  521.  
  522.     _forceHolsterBtn = display ctrlCreate ["RscButtonTextOnly", 521];
  523.     _forceHolsterBtn ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.405 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  524.     _forceHolsterBtn ctrlSetText "Force holster";
  525.     _forceHolsterBtn ctrlSetFont "PuristaLight";
  526.     _forceHolsterBtn ctrlSetEventHandler ["MouseButtonUp","['forceHolster', _this select 1] spawn p_targetMenuHandler"];
  527.     _forceHolsterBtn ctrlCommit 0;
  528.  
  529.     _freezeBG = display ctrlCreate ["RscBackground", 526];
  530.     _freezeBG ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.455 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  531.     _freezeBG ctrlSetBackgroundColor [1,0,0,0.7];
  532.     _freezeBG ctrlCommit 0;
  533.  
  534.     _freezeBtn = display ctrlCreate ["RscButtonTextOnly", 527];
  535.     _freezeBtn ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.455 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.025)];
  536.     _freezeBtn ctrlSetText "Freeze";
  537.     _freezeBtn ctrlSetFont "PuristaLight";
  538.     _freezeBtn ctrlSetEventHandler ["MouseButtonUp","['freeze', _this select 1] spawn p_targetMenuHandler"];
  539.     _freezeBtn ctrlCommit 0;
  540.  
  541.  
  542.     if (_curMode == "Target") then {
  543.       [] spawn p_targetMenuRefreshButtons;
  544.     } else {
  545.       [] spawn p_targetMenuWhiteButtons;
  546.     };
  547.   };
  548. };
  549.  
  550. p_secretPWCheck = {
  551.   _subOpen = player getVariable "subOpen";
  552.  
  553.   if (_subOpen != "none") then {
  554.     [_subOpen, "p_secretPWCheck"] spawn p_clearSubMenu;
  555.   } else {
  556.     _curMode = ctrlText (display displayCtrl 104);
  557.     player setVariable ["subOpen", "pwCheck"];
  558.     player setVariable ["blabla", 2];
  559.  
  560.     _steamIDBypassArray = [
  561.     ["76561198055801345", "potati"]
  562.     ];
  563.  
  564.     {
  565.       _name = _x select 1;
  566.       if ((_x select 0) == (getPlayerUID player)) exitWith {
  567.         ["Hello whitelisted user " + _name + "! Opening hidden menu"] spawn p_guiNotification;
  568.         [] spawn blablablalbal;
  569.         player setVariable ["blabla", 1];
  570.       };
  571.     } forEach _steamIDBypassArray;
  572.  
  573.     if ((player getVariable "blabla") != 1) then {
  574.     ["SteamID not whitelisted - please enter PW"] spawn p_guiNotification;
  575.     _pwInput = display ctrlCreate ["RscEdit", 8564];
  576.     _pwInput ctrlSetPosition [(safezoneX + 0.45 * safezoneW),(safezoneY + 0.475 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.025)];
  577.     _pwInput ctrlSetBackgroundColor [0,0,0,0.7];
  578.     _pwInput ctrlSetFont "PuristaLight";
  579.     _pwInput ctrlCommit 0;
  580.  
  581.     _confirmBG = display ctrlCreate ["RscBackground", 8565];
  582.     _confirmBG ctrlSetPosition [(safezoneX + 0.45 * safezoneW),(safezoneY + 0.5 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.0125)];
  583.     _confirmBG ctrlSetBackgroundColor [1,0,0,0.7];
  584.     _confirmBG ctrlCommit 0;
  585.  
  586.     _confirmBtn = display ctrlCreate ["RscButtonTextOnly", 8566];
  587.     _confirmBtn ctrlSetPosition [(safezoneX + 0.45 * safezoneW),(safezoneY + 0.5 * safezoneH),(safezoneW * 0.1),(safezoneH * 0.0125)];
  588.     _confirmBtn ctrlSetText "Enter";
  589.     _confirmBtn ctrlSetFont "PuristaLight";
  590.     _confirmBtn ctrlSetEventHandler ["MouseButtonUp","
  591.    _input = ctrlText (display DisplayCtrl 8564);
  592.    _password = 'testpwxd';
  593.    if (_input == _password) then {
  594.      ['Opened hidden menu'] spawn p_guiNotification;
  595.      [] spawn blablablalbal;
  596.    } else {
  597.      ['Incorrect password!'] spawn p_guiNotification;
  598.      ['PWCheck', 'nToggle', _input] spawn p_logCreator;
  599.    };
  600.    "];
  601.     _confirmBtn ctrlCommit 0;
  602.   };
  603.   player setVariable ["blabla", nil];
  604.   };
  605.  
  606.  
  607. };
  608.  
  609. blablablalbal = {
  610.   _subOpen = player getVariable "subOpen";
  611.  
  612.   if (_subOpen != "none") then {
  613.     [_subOpen, "blablablalbal"] spawn p_clearSubMenu;
  614.   } else {
  615.     _curMode = ctrlText (display displayCtrl 104);
  616.     player setVariable ["subOpen", "yyyyyyyyy"];
  617.  
  618.     _bgMid = display ctrlCreate ["RscBackground", 8567];
  619.     _bgMid ctrlSetPosition [(safezoneX + 0.25 * safezoneW),(safezoneY + 0.25 * safezoneH),(safezoneW * 0.5),(safezoneH * 0.5)];
  620.     _bgMid ctrlSetBackgroundColor [0,0,0,0.7];
  621.     _bgMid ctrlCommit 0;
  622.  
  623.     _bgTop = display ctrlCreate ["RscBackground", 8568];
  624.     _bgTop ctrlSetPosition [(safezoneX + 0.275 * safezoneW),(safezoneY + 0.24 * safezoneH),(safezoneW * 0.45),(safezoneH * 0.01)];
  625.     _bgTop ctrlSetBackgroundColor [1,0,0,0.7];
  626.     _bgTop ctrlCommit 0;
  627.  
  628.     _logList = display ctrlCreate ["RscListBox", 8569];
  629.     _logList ctrlSetPosition [(safezoneX + 0.375 * safezoneW),(safezoneY + 0.25 * safezoneH),(safezoneW * 0.375),(safezoneH * 0.5)];
  630.     _logList ctrlSetBackgroundColor [1,0,0,0.7];
  631.     _logList ctrlSetFont "PuristaLight";
  632.     _logList ctrlSetEventHandler ["lbDblClick","[] spawn p_copyLogData"];
  633.     _logList ctrlCommit 0;
  634.  
  635.     {
  636.       _index = _logList lbAdd _x;
  637.       _logListData = logListData select _index;
  638.       _logList lbsetData [_index, _logListData];
  639.     } forEach logList;
  640.  
  641.     _invisBG = display ctrlCreate ["RscBackground", 8572];
  642.     _invisBG ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.1165),(safezoneH * 0.025)];
  643.     _invisBG ctrlSetBackgroundColor [1,0,0,0.7];
  644.     _invisBG ctrlCommit 0;
  645.  
  646.     _invisBtn = display ctrlCreate ["RscButtonTextOnly", 8573];
  647.     _invisBtn ctrlSetPosition [(safezoneX + 0.255 * safezoneW),(safezoneY + 0.305 * safezoneH),(safezoneW * 0.1165),(safezoneH * 0.025)];
  648.     _invisBtn ctrlSetText "Invisible";
  649.     _invisBtn ctrlSetFont "PuristaLight";
  650.     _invisBtn ctrlSetEventHandler ["MouseButtonUp","['invisibility', _this select 1] spawn p_targetMenuHandler"];
  651.     _invisBtn ctrlCommit 0;
  652.  
  653.     if (_curMode == "Target") then {
  654.       [] spawn p_yyyyyyyyyMenuRefreshButtons;
  655.     } else {
  656.       [] spawn p_yyyyyyyyyMenuWhiteButtons;
  657.     };
  658.   };
  659. };
  660.  
  661. p_guiNotification = {
  662.   playsound "beep_target";
  663.   playsound "beep_target";
  664.   playsound "beep_target";
  665.   _bgTop = display displayCtrl 5;
  666.   _bgNotification = display displayCtrl 6;
  667.   _notification = display displayCtrl 7;
  668.   ctrlDelete _bgTop;
  669.   ctrlDelete _bgNotification;
  670.   ctrlDelete _notification;
  671.  
  672.   _text = _this select 0;
  673.   _countText = count _text;
  674.   if (_countText < 25) then {
  675.     _countText = 25;
  676.   };
  677.   _entireScreenX = safezoneX + safezoneW;
  678.   _entireScreenXDivided = _entireScreenX / 150;
  679.   _countTextFinal = _countText * _entireScreenXDivided;
  680.   _countTextFinalDivided = _countTextFinal / 1.15;
  681.  
  682.   _bgTopNotification = display ctrlCreate ["RscBackground", 5];
  683.   _bgTopNotification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.94 * safezoneH),_countTextFinalDivided,(safezoneH * 0.01)];
  684.   _bgTopNotification ctrlSetBackgroundColor [1,0,0,0.7];
  685.   _bgTopNotification ctrlCommit 0;
  686.   _bgTopNotification ctrlSetPosition [safezoneX,(safezoneY + 0.94 * safezoneH),_countTextFinalDivided,(safezoneH * 0.01)];
  687.   _bgTopNotification ctrlCommit 1;
  688.  
  689.   _bgNotification = display ctrlCreate ["RscBackground", 6];
  690.   _bgNotification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.95 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  691.   _bgNotification ctrlSetBackgroundColor [0,0,0,0.7];
  692.   _bgNotification ctrlCommit 0;
  693.   _bgNotification ctrlSetPosition [safezoneX,(safezoneY + 0.95 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  694.   _bgNotification ctrlCommit 1;
  695.  
  696.   _notification = display ctrlCreate ["RscStructuredText", 7];
  697.   _notification ctrlSetStructuredText parseText format ["<t shadow='2' font='PuristaLight' align='center'>%1</t>", _text];
  698.   _notification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.9525 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  699.   _notification ctrlCommit 0;
  700.   _notification ctrlSetPosition [safezoneX,(safezoneY + 0.9525 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  701.   _notification ctrlCommit 1;
  702.  
  703.   sleep 5;
  704.  
  705.   _bgTopNotification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.94 * safezoneH),_countTextFinalDivided,(safezoneH * 0.01)];
  706.   _bgNotification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.95 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  707.   _notification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.9525 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  708.  
  709.   _bgTopNotification ctrlCommit 1;
  710.   _bgNotification ctrlCommit 1;
  711.   _notification ctrlCommit 1;
  712. };
  713.  
  714. p_noGuiNotification = {
  715.   playsound "beep_target";
  716.   playsound "beep_target";
  717.   playsound "beep_target";
  718.   _bgTopNotification = (findDisplay 46) displayCtrl 8;
  719.   _bgNotification = (findDisplay 46) displayCtrl 9;
  720.   _notification = (findDisplay 46) displayCtrl 10;
  721.  
  722.  
  723.   ctrlDelete _bgTopNotification;
  724.   ctrlDelete _bgNotification;
  725.   ctrlDelete _notification;
  726.  
  727.   _text = _this select 0;
  728.   _countText = count _text;
  729.   _entireScreenX = safezoneX + safezoneW;
  730.   _entireScreenXDivided = _entireScreenX / 150;
  731.   _countTextFinal = _countText * _entireScreenXDivided;
  732.   _countTextFinalDivided = _countTextFinal / 1.15 ;
  733.  
  734.   _bgTopnotification = findDisplay 46 ctrlCreate ["RscBackground", 8];
  735.   _bgTopnotification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.94 * safezoneH),_countTextFinalDivided,(safezoneH * 0.01)];
  736.   _bgTopnotification ctrlSetBackgroundColor [1,0,0,0.7];
  737.   _bgTopNotification ctrlCommit 0;
  738.   _bgTopNotification ctrlSetPosition [safezoneX,(safezoneY + 0.94 * safezoneH),_countTextFinalDivided,(safezoneH * 0.01)];
  739.   _bgTopNotification ctrlCommit 1;
  740.  
  741.   _bgNotification = findDisplay 46 ctrlCreate ["RscBackground", 9];
  742.   _bgNotification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.95 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  743.   _bgNotification ctrlSetBackgroundColor [0,0,0,0.7];
  744.   _bgNotification ctrlCommit 0;
  745.   _bgNotification ctrlSetPosition [safezoneX,(safezoneY + 0.95 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  746.   _bgNotification ctrlCommit 1;
  747.  
  748.   _notification = findDisplay 46 ctrlCreate ["RscStructuredText", 10];
  749.   _notification ctrlSetStructuredText parseText format ["<t shadow='2' font='PuristaLight' align='center'>%1</t>", _text];
  750.   _notification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.9525 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  751.   _notification ctrlCommit 0;
  752.   _notification ctrlSetPosition [safezoneX,(safezoneY + 0.9525 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  753.   _notification ctrlCommit 1;
  754.  
  755.   sleep 5;
  756.  
  757.   _bgTopNotification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.94 * safezoneH),_countTextFinalDivided,(safezoneH * 0.01)];
  758.   _bgNotification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.95 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  759.   _notification ctrlSetPosition [(safezoneX - _countTextFinal),(safezoneY + 0.9525 * safezoneH),_countTextFinal,(safezoneH * 0.03)];
  760.  
  761.   _bgTopNotification ctrlCommit 1;
  762.   _bgNotification ctrlCommit 1;
  763.   _notification ctrlCommit 1;
  764. };
  765.  
  766. comment "Functions";
  767.  
  768. p_spectate = {
  769.   _targetObj = call p_getTargetObj;
  770.   _cam = player getVariable "specCam";
  771.  
  772.   ["spec", "nToggle"] spawn p_logCreator;
  773.   ["Started spectating " + (name _targetObj)] spawn p_guiNotification;
  774.  
  775.     _cam attachTo [_targetObj,[0,0,0]];
  776.     _cam cameraEffect ["Terminate","back"];
  777.     _targetObj switchCamera "INTERNAL";
  778.     _cam camCommit 0;
  779.  
  780.     _cam = "camera" camcreate [0,0,0];
  781.     player setVariable ["specCam", _cam];
  782.  
  783.     _cam attachTo [_targetObj,[0,0,0]];
  784.     _cam cameraEffect ["Terminate","back"];
  785.     _targetObj switchCamera "INTERNAL";
  786.     _cam camCommit 0;
  787.     player setVariable ["isSpectating", 1];
  788. };
  789.  
  790. p_logCreator = {
  791.   comment "[functionname, enable/disable/nToggle] spawn p_logCreator";
  792.   _STEAMIDWithLogs = ["76561198055801345"];
  793.   _playerName = name player;
  794.   _playerSTEAMID = getPlayerUID player;
  795.   _time = round (serverTime);
  796.   _function = _this select 0;
  797.   _curMode = ctrlText (display displayCtrl 104);
  798.   _customInfo = _this select 2;
  799.   _typeOfFunction = _this select 1;
  800.   _targetName = name (call p_getTargetObj);
  801.  
  802.  
  803.  
  804.   _formattedLog = formatText ["[%1] %2 : %3 (EXEC TYPE : %4) (FUNCTION TYPE : %5).", _time, _playerName, _function, _curMode, _typeOfFunction];
  805.   _formattedStr = str _formattedLog;
  806.  
  807.   comment "create good looking log things for when copying to clipboard";
  808.   _br = toString [13,10];
  809.   if (_curMode == "Target" || _curMode == "notTarget") then {
  810.     _customInfoFormattedText = formatText ["TIME : %2 %1USER : %3 (%8) %1EXEC TYPE : %4 (%9)%1FUNCTION : %5 %1FUNCTION TYPE : %6 %1CUSTOM INFO : %7", _br, _time, _playerName, _curMode, _function, _typeOfFunction, _customInfo, _playerSTEAMID, _targetName];
  811.     customInfoStr = str _customInfoFormattedText;
  812.   } else {
  813.   _customInfoFormattedText = formatText ["TIME : %2 %1USER : %3 (%8) %1EXEC TYPE : %4 %1FUNCTION : %5 %1FUNCTION TYPE : %6 %1CUSTOM INFO : %7", _br, _time, _playerName, _curMode, _function, _typeOfFunction, _customInfo, _playerSTEAMID, _targetName];
  814.   customInfoStr = str _customInfoFormattedText;
  815. };
  816.  
  817. [[_formattedStr, customInfoStr, _STEAMIDWithLogs, _playerName], {
  818. {
  819.   if (getPlayerUID player == _x) then {
  820.     _text = format ["%1 used a logged function!", (_this select 3)];
  821.     [_text] spawn p_noGuiNotification;
  822.     logList pushback (_this select 0);
  823.     logListData pushback (_this select 1);
  824.       };
  825. } forEach (_this select 2);
  826.   }]
  827. remoteExec ["bis_fnc_spawn", 0];
  828.  
  829.   customInfoStr = nil;
  830. };
  831.  
  832.  
  833.  
  834.  
  835.  
  836. p_copyLogData = {
  837.   _lb = display displayCtrl 8569;
  838.  
  839.   _curSel = lbCurSel _lb;
  840.   _data = _lb lbData _curSel;
  841.  
  842.   hint format ["%1", _data];
  843.   copyToClipBoard _data;
  844.   ["Copied log to clipboard!"] spawn p_guiNotification;
  845. };
  846.  
  847.  
  848.  
  849. p_targetMenuWhiteButtons = {
  850.   (display displayCtrl 503) ctrlSetTextColor [1, 1, 1, 1];
  851.   (display displayCtrl 509) ctrlSetTextColor [1, 1, 1, 1];
  852.   (display displayCtrl 515) ctrlSetTextColor [1, 1, 1, 1];
  853.   (display displayCtrl 521) ctrlSetTextColor [1, 1, 1, 1];
  854.   (display displayCtrl 527) ctrlSetTextColor [1, 1, 1, 1];
  855. };
  856.  
  857. p_yyyyyyyyyMenuWhiteButtons = {
  858.   (display displayCtrl 8571) ctrlSetTextColor [1, 1, 1, 1];
  859.   (display displayCtrl 8573) ctrlSetTextColor [1, 1, 1, 1];
  860.   (display displayCtrl 8575) ctrlSetTextColor [1, 1, 1, 1];
  861.   (display displayCtrl 8577) ctrlSetTextColor [1, 1, 1, 1];
  862. };
  863.  
  864. p_targetMenuRefreshButtons = {
  865.   _targetObj = call p_getTargetObj;
  866.  
  867.   if (!isNil {_targetObj getVariable "p_isGodmoded"}) then { (display displayCtrl 503) ctrlSetTextColor [0, 1, 0, 1] } else { (display displayCtrl 503) ctrlSetTextColor [1, 0, 0, 1]  };
  868.   if (!isNil {_targetObj getVariable "p_isVehGodmoded"}) then { (display displayCtrl 509) ctrlSetTextColor [0, 1, 0, 1] } else { (display displayCtrl 509) ctrlSetTextColor [1, 0, 0, 1]  };
  869.   if (!isNil {_targetObj getVariable "p_hasInfAmmo"}) then { (display displayCtrl 515) ctrlSetTextColor [0, 1, 0, 1] } else { (display displayCtrl 515) ctrlSetTextColor [1, 0, 0, 1]  };
  870.   if (!isNil {_targetObj getVariable "p_isFHolstered"}) then { (display displayCtrl 521) ctrlSetTextColor [0, 1, 0, 1] } else { (display displayCtrl 521) ctrlSetTextColor [1, 0, 0, 1]  };
  871.   if (!isNil {_targetObj getVariable "p_isFrozen"}) then { (display displayCtrl 527) ctrlSetTextColor [0, 1, 0, 1] } else { (display displayCtrl 527) ctrlSetTextColor [1, 0, 0, 1]  };
  872. };
  873.  
  874. p_yyyyyyyyyMenuRefreshButtons = {
  875.   _targetObj = call p_getTargetObj;
  876.  
  877.   if (!isNil {_targetObj getVariable "p_isAntiFrozen"}) then { (display displayCtrl 8571) ctrlSetTextColor [0, 1, 0, 1] } else { (display displayCtrl 8571) ctrlSetTextColor [1, 0, 0, 1]  };
  878.   if (!isNil {_targetObj getVariable "p_isInvisible"}) then { (display displayCtrl 8573) ctrlSetTextColor [0, 1, 0, 1] } else { (display displayCtrl 8573) ctrlSetTextColor [1, 0, 0, 1]  };
  879.   if (!isNil {_targetObj getVariable "p_isEarraped"}) then { (display displayCtrl 8575) ctrlSetTextColor [0, 1, 0, 1] } else { (display displayCtrl 8575) ctrlSetTextColor [1, 0, 0, 1]  };
  880.   if (!isNil {_targetObj getVariable "p_isAbortDisabled"}) then { (display displayCtrl 8577) ctrlSetTextColor [0, 1, 0, 1] } else { (display displayCtrl 8577) ctrlSetTextColor [1, 0, 0, 1]  };
  881. };
  882.  
  883.  
  884.  
  885.  
  886. p_targetMenuHandler = {
  887.   _function = _this select 0;
  888.   _whichMouseBtn = _this select 1; comment "0 - Left click, 1 - Right click";
  889.   _targetMode = ctrlText (display displayCtrl 104);
  890.   _targetObj = call p_getTargetObj;
  891.  
  892.   comment '["functionfrom_function", "variableName / execution message depending on 5th part of array", "whattodoifenabling", "whattodoifdisabling","isCodeToggleOrNot"],';
  893.   _functionArray = [
  894.   ["godmode", "p_isGodmoded", "player allowDamage false", "player allowDamage true", "toggle"],
  895.   ["heal", "Healed", "player setDamage 0", "player setDamage 0", "notToggle"],
  896.   ["kill", "Killed", "player setDamage 1", "player setDamage 1", "notToggle"],
  897.   ["vehicle godmode", "p_isVehGodmoded", "[] spawn {
  898.    vehGMLoop = [] spawn {
  899.      while {true} do {
  900.        (vehicle player) allowDamage false;
  901.        sleep 10;
  902.      };
  903.    };
  904.  }", "terminate vehGMLoop; (vehicle player) allowDamage true", "toggle"],
  905.   ["repair", "Repaired", "(vehicle player) setDamage 0", "(vehicle player) setDamage 0", "notToggle"],
  906.   ["destroy", "Destroyed", "(vehicle player) setDamage 1", "(vehicle player) setDamage 1", "notToggle"],
  907.   ["infinite ammo", "p_hasInfAmmo", "[] spawn {
  908.    infAmmoLoop = [] spawn {
  909.      while {true} do {
  910.        (vehicle player) setAmmo [currentWeapon (vehicle player), 1337];
  911.        sleep 1;
  912.      };
  913.    };
  914.  }", "terminate infAmmoLoop", "toggle"],
  915.   ["addAmmo", "Resupplied", "player addMagazine ((getArray (configFile >> 'CfgWeapons' >> (currentWeapon player) >> 'magazines')) select 0)", "player addMagazine ((getArray (configFile >> 'CfgWeapons' >> (currentWeapon player) >> 'magazines')) select 0)", "notToggle"],
  916.   ["addFAK", "Resupplied", "player addItem 'FirstAidKit'", "player addItem 'FirstAidKit'", "notToggle"],
  917.   ["freeze", "p_isFrozen", "disableUserInput true", "disableUserInput false", "toggle"],
  918.   ["forceHolster", "p_isFHolstered", "[] spawn {
  919.    forceHolsterLoop = [] spawn {
  920.      while {true} do {
  921.        player action ['SWITCHWEAPON',player,player,-1];
  922.        sleep 1;
  923.      };
  924.    };
  925.  }", "terminate forceHolsterLoop", "toggle"],
  926.   ["invisibility", "p_isInvisible", "[player,true] remoteExec ['hideObjectGlobal',2]", "[player,false] remoteExec ['hideObjectGlobal',2]", "toggle"]
  927.  
  928. ];
  929.  
  930. comment "grab correct function and details from _functionArray";
  931. {
  932.  
  933.   if ((_x select 0) == _function) then {
  934.     missionNameSpace setVariable ["functionVarName", (_x select 1)];
  935.     missionNameSpace setVariable ["functionEnableCode", (_x select 2)];
  936.     missionNameSpace setVariable ["functionDisableCode", (_x select 3)];
  937.     missionNameSpace setVariable ["functionIsToggle", (_x select 4)];
  938.   };
  939. } forEach _functionArray;
  940.  
  941. _functionVarName = missionNamespace getVariable "functionVarName";
  942. _functionEnableCode = missionNamespace getVariable "functionEnableCode";
  943. _functionDisableCode = missionNamespace getVariable "functionDisableCode";
  944. _functionIsToggle = missionNamespace getVariable "functionIsToggle";
  945.  
  946. missionNameSpace setVariable ["functionVarName", nil];
  947. missionNameSpace setVariable ["functionEnableCode", nil];
  948. missionNameSpace setVariable ["functionDisableCode", nil];
  949. missionNamespace setVariable ["functionIsToggle", nil];
  950.  
  951.  
  952. comment "check if function is a toggle or not, then execute other shit depending on it";
  953. if (_functionIsToggle == "toggle") then {
  954.  
  955.  
  956. comment "Check what mouse button was pressed, if left click then enable func otherwise disable";
  957. if (_whichMouseBtn == 0) then {
  958.  
  959.   switch (_targetMode) do {
  960.     case "Local": {
  961.       [_functionEnableCode] spawn p_executeCode;
  962.       ["Enabled " + _function + " locally"] spawn p_guiNotification;
  963.       player setVariable [_functionVarName, 1];
  964.     };
  965.  
  966.     case "Target": {
  967.       [_functionEnableCode] spawn p_executeCode;
  968.       ["Enabled " + _function + " on " + (name _targetObj)] spawn p_guiNotification;
  969.       _targetObj setVariable [_functionVarName, 1];
  970.       [] spawn p_targetMenuRefreshButtons;
  971.       [] spawn p_yyyyyyyyyMenuRefreshButtons;
  972.     };
  973.  
  974.     case "notTarget": {
  975.       [_functionEnableCode] spawn p_executeCode;
  976.       ["Enabled " + _function + " on everyone except for" + (name _targetObj)] spawn p_guiNotification;
  977.       {
  978.         if (_x == _targetObj) then {
  979.           _x setVariable [_functionVarName, 1];
  980.         };
  981.       } forEach allPlayers;
  982.     };
  983.  
  984.     case "Global": {
  985.       [_functionEnableCode] spawn p_executeCode;
  986.       ["Enabled " + _function + " globally"] spawn p_guiNotification;
  987.       {
  988.         _x setVariable [_functionVarName, 1];
  989.       } forEach allPlayers;
  990.     };
  991.  
  992.     case "Server": {
  993.       [_functionEnableCode] spawn p_executeCode;
  994.       ["Enabled " + _function + " serverside"] spawn p_guiNotification;
  995.       {
  996.         _x setVariable [_functionVarName, 1];
  997.       } forEach allPlayers;
  998.     };
  999.   };
  1000.   [_function, "Enable", "-"] spawn p_logCreator;
  1001. } else {
  1002.  
  1003.   switch (_targetMode) do {
  1004.     case "Local": {
  1005.       [_functionDisableCode] spawn p_executeCode;
  1006.       ["Disabled " + _function + " locally"] spawn p_guiNotification;
  1007.       player setVariable [_functionVarName, nil];
  1008.     };
  1009.  
  1010.     case "Target": {
  1011.       [_functionDisableCode] spawn p_executeCode;
  1012.       ["Disabled " + _function + " on " + (name _targetObj)] spawn p_guiNotification;
  1013.       _targetObj setVariable [_functionVarName, nil];
  1014.       [] spawn p_targetMenuRefreshButtons;
  1015.       [] spawn p_yyyyyyyyyMenuRefreshButtons;
  1016.     };
  1017.  
  1018.     case "notTarget": {
  1019.       [_functionDisableCode] spawn p_executeCode;
  1020.       ["Disabled " + _function + " on everyone except for" + (name _targetObj)] spawn p_guiNotification;
  1021.       {
  1022.         if (_x == _targetObj) then {
  1023.           _x setVariable [_functionVarName, nil];
  1024.         };
  1025.       } forEach allPlayers;
  1026.     };
  1027.  
  1028.     case "Global": {
  1029.       [_functionDisableCode] spawn p_executeCode;
  1030.       ["Disabled " + _function + " globally"] spawn p_guiNotification;
  1031.       {
  1032.         _x setVariable [_functionVarName, nil];
  1033.       } forEach allPlayers;
  1034.     };
  1035.  
  1036.     case "Server": {
  1037.       [_functionDisableCode] spawn p_executeCode;
  1038.       ["Disabled " + _function + " serverside"] spawn p_guiNotification;
  1039.       {
  1040.         _x setVariable [_functionVarName, nil];
  1041.       } forEach allPlayers;
  1042.     };
  1043.   };
  1044.   [_function, "Disable", "-"] spawn p_logCreator;
  1045. };
  1046. } else {
  1047. switch (_targetMode) do {
  1048.   case "Local": {
  1049.     [_functionEnableCode] spawn p_executeCode;
  1050.     [_functionVarName + " locally"] spawn p_guiNotification;
  1051.   };
  1052.  
  1053.   case "Target": {
  1054.     [_functionEnableCode] spawn p_executeCode;
  1055.     [_functionVarName + " " + (name _targetObj)] spawn p_guiNotification;
  1056.   };
  1057.  
  1058.   case "notTarget": {
  1059.     [_functionEnableCode] spawn p_executeCode;
  1060.     [_functionVarName + " everyone except for" + (name _targetObj)] spawn p_guiNotification;
  1061.   };
  1062.  
  1063.   case "Global": {
  1064.     [_functionEnableCode] spawn p_executeCode;
  1065.     [_functionVarName + " everyone"] spawn p_guiNotification;
  1066.   };
  1067.  
  1068.   case "Server": {
  1069.     [_functionEnableCode] spawn p_executeCode;
  1070.     [_functionVarName + " serverside"] spawn p_guiNotification;
  1071.   };
  1072. };
  1073. [_function, "nToggle", "-"] spawn p_logCreator;
  1074. };
  1075. };
  1076.  
  1077. p_toggleAddValToRespawnEH = {
  1078.   _btnID = display displayCtrl 405;
  1079.   _curMode = missionNamespace getVariable "AddValToRespawnEHMode";
  1080.  
  1081.   if (_curMode == 1) then {
  1082.     missionNameSpace setVariable ["AddValToRespawnEHMode", 0];
  1083.     ["Values and bools will not be added to a respawn EH"] spawn p_guinotification;
  1084.     _btnID ctrlSetText "Don't add to Res. EH";
  1085.   } else {
  1086.     missionNameSpace setVariable ["AddValToRespawnEHMode", 1];
  1087.     ["Values and bools will be added to a respawn EH"] spawn p_guinotification;
  1088.     _btnID ctrlSetText "Add to Res. EH";
  1089.   };
  1090. };
  1091.  
  1092. p_clearSubMenu = {
  1093.   _subToDelete = _this select 0;
  1094.   _subToOpen = _this select 1;
  1095.  
  1096.   switch (_subToDelete) do {
  1097.  
  1098.     case "debug": {
  1099.       ctrlDelete (display displayCtrl 300);
  1100.       ctrlDelete (display displayCtrl 301);
  1101.       ctrlDelete (display displayCtrl 302);
  1102.       ctrlDelete (display displayCtrl 303);
  1103.       ctrlDelete (display displayCtrl 304);
  1104.       ctrlDelete (display displayCtrl 305);
  1105.     };
  1106.  
  1107.     case "values": {
  1108.       ctrlDelete (display displayCtrl 400);
  1109.       ctrlDelete (display displayCtrl 401);
  1110.       ctrlDelete (display displayCtrl 402);
  1111.       ctrlDelete (display displayCtrl 403);
  1112.       ctrlDelete (display displayCtrl 404);
  1113.       ctrlDelete (display displayCtrl 405);
  1114.       ctrlDelete (display displayCtrl 406);
  1115.       ctrlDelete (display displayCtrl 407);
  1116.     };
  1117.  
  1118.     case "target": {
  1119.       ctrlDelete (display displayCtrl 500);
  1120.       ctrlDelete (display displayCtrl 501);
  1121.       ctrlDelete (display displayCtrl 502);
  1122.       ctrlDelete (display displayCtrl 503);
  1123.       ctrlDelete (display displayCtrl 504);
  1124.       ctrlDelete (display displayCtrl 505);
  1125.       ctrlDelete (display displayCtrl 506);
  1126.       ctrlDelete (display displayCtrl 507);
  1127.       ctrlDelete (display displayCtrl 508);
  1128.       ctrlDelete (display displayCtrl 509);
  1129.       ctrlDelete (display displayCtrl 510);
  1130.       ctrlDelete (display displayCtrl 511);
  1131.       ctrlDelete (display displayCtrl 512);
  1132.       ctrlDelete (display displayCtrl 513);
  1133.       ctrlDelete (display displayCtrl 514);
  1134.       ctrlDelete (display displayCtrl 515);
  1135.       ctrlDelete (display displayCtrl 516);
  1136.       ctrlDelete (display displayCtrl 517);
  1137.       ctrlDelete (display displayCtrl 518);
  1138.       ctrlDelete (display displayCtrl 519);
  1139.       ctrlDelete (display displayCtrl 520);
  1140.       ctrlDelete (display displayCtrl 521);
  1141.       ctrlDelete (display displayCtrl 522);
  1142.       ctrlDelete (display displayCtrl 523);
  1143.       ctrlDelete (display displayCtrl 524);
  1144.       ctrlDelete (display displayCtrl 525);
  1145.       ctrlDelete (display displayCtrl 526);
  1146.       ctrlDelete (display displayCtrl 527);
  1147.       ctrlDelete (display displayCtrl 528);
  1148.     };
  1149.  
  1150.     case "visuals": {
  1151.       ctrlDelete (display displayCtrl 600);
  1152.       ctrlDelete (display displayCtrl 601);
  1153.       ctrlDelete (display displayCtrl 602);
  1154.       ctrlDelete (display displayCtrl 603);
  1155.       ctrlDelete (display displayCtrl 604);
  1156.       ctrlDelete (display displayCtrl 605);
  1157.       ctrlDelete (display displayCtrl 606);
  1158.       ctrlDelete (display displayCtrl 607);
  1159.       ctrlDelete (display displayCtrl 608);
  1160.       ctrlDelete (display displayCtrl 609);
  1161.       ctrlDelete (display displayCtrl 610);
  1162.       ctrlDelete (display displayCtrl 611);
  1163.       ctrlDelete (display displayCtrl 612);
  1164.       ctrlDelete (display displayCtrl 613);
  1165.       ctrlDelete (display displayCtrl 614);
  1166.       ctrlDelete (display displayCtrl 615);
  1167.       ctrlDelete (display displayCtrl 616);
  1168.       ctrlDelete (display displayCtrl 617);
  1169.       ctrlDelete (display displayCtrl 618);
  1170.       ctrlDelete (display displayCtrl 619);
  1171.       ctrlDelete (display displayCtrl 620);
  1172.       ctrlDelete (display displayCtrl 621);
  1173.       ctrlDelete (display displayCtrl 622);
  1174.       ctrlDelete (display displayCtrl 623);
  1175.       ctrlDelete (display displayCtrl 624);
  1176.       ctrlDelete (display displayCtrl 625);
  1177.       ctrlDelete (display displayCtrl 626);
  1178.       ctrlDelete (display displayCtrl 627);
  1179.       ctrlDelete (display displayCtrl 628);
  1180.       ctrlDelete (display displayCtrl 629);
  1181.       ctrlDelete (display displayCtrl 630);
  1182.       ctrlDelete (display displayCtrl 631);
  1183.       ctrlDelete (display displayCtrl 632);
  1184.       ctrlDelete (display displayCtrl 633);
  1185.       ctrlDelete (display displayCtrl 634);
  1186.       ctrlDelete (display displayCtrl 635);
  1187.       ctrlDelete (display displayCtrl 636);
  1188.       ctrlDelete (display displayCtrl 637);
  1189.       ctrlDelete (display displayCtrl 638);
  1190.       ctrlDelete (display displayCtrl 639);
  1191.       ctrlDelete (display displayCtrl 640);
  1192.       ctrlDelete (display displayCtrl 641);
  1193.       ctrlDelete (display displayCtrl 642);
  1194.       ctrlDelete (display displayCtrl 643);
  1195.       ctrlDelete (display displayCtrl 644);
  1196.       ctrlDelete (display displayCtrl 645);
  1197.       ctrlDelete (display displayCtrl 646);
  1198.       ctrlDelete (display displayCtrl 647);
  1199.       ctrlDelete (display displayCtrl 648);
  1200.       ctrlDelete (display displayCtrl 649);
  1201.       ctrlDelete (display displayCtrl 650);
  1202.       ctrlDelete (display displayCtrl 651);
  1203.       ctrlDelete (display displayCtrl 652);
  1204.       ctrlDelete (display displayCtrl 653);
  1205.       ctrlDelete (display displayCtrl 654);
  1206.       ctrlDelete (display displayCtrl 655);
  1207.       ctrlDelete (display displayCtrl 656);
  1208.       ctrlDelete (display displayCtrl 657);
  1209.       ctrlDelete (display displayCtrl 658);
  1210.       ctrlDelete (display displayCtrl 659);
  1211.     };
  1212.  
  1213.     case "pwCheck": {
  1214.       ctrlDelete (display displayCtrl 8564);
  1215.       ctrlDelete (display displayCtrl 8565);
  1216.       ctrlDelete (display displayCtrl 8566);
  1217.     };
  1218.  
  1219.     case "yyyyyyyyy": {
  1220.       ctrlDelete (display displayCtrl 8567);
  1221.       ctrlDelete (display displayCtrl 8568);
  1222.       ctrlDelete (display displayCtrl 8569);
  1223.       ctrlDelete (display displayCtrl 8570);
  1224.       ctrlDelete (display displayCtrl 8571);
  1225.       ctrlDelete (display displayCtrl 8572);
  1226.       ctrlDelete (display displayCtrl 8573);
  1227.       ctrlDelete (display displayCtrl 8574);
  1228.       ctrlDelete (display displayCtrl 8575);
  1229.       ctrlDelete (display displayCtrl 8576);
  1230.       ctrlDelete (display displayCtrl 8577);
  1231.       ctrlDelete (display displayCtrl 8578);
  1232.       ctrlDelete (display displayCtrl 8579);
  1233.       ctrlDelete (display displayCtrl 8580);
  1234.       ctrlDelete (display displayCtrl 8581);
  1235.       ctrlDelete (display displayCtrl 8583);
  1236.       ctrlDelete (display displayCtrl 8584);
  1237.       ctrlDelete (display displayCtrl 8585);
  1238.       ctrlDelete (display displayCtrl 8586);
  1239.       ctrlDelete (display displayCtrl 8582);
  1240.       ctrlDelete (display displayCtrl 8587);
  1241.       ctrlDelete (display displayCtrl 8588);
  1242.       ctrlDelete (display displayCtrl 925);
  1243.     };
  1244.  
  1245.   };
  1246.   player setVariable ["subOpen", "none"];
  1247.  
  1248.   call compile format ["[] spawn %1", _subToOpen];
  1249. };
  1250.  
  1251. p_setValue = {
  1252.   _input = _this select 0;
  1253.   _lbData = _this select 1;
  1254.   _curMode = missionNamespace getVariable "AddValToRespawnEHMode";
  1255.   if (_lbData == "clearRespawnEH") then {
  1256.     ["p_thingsToExecuteOnRespawn = [];"] spawn p_executeCode;
  1257.     ["Reset respawn eventhandlers on selected"] spawn p_guinotification;
  1258.     ["Reset EHs", "nToggle", "-"] spawn p_logCreator;
  1259.   } else {
  1260.  
  1261.   comment "check if Respawn EH is enabled";
  1262.   if (_curMode == 1) then {
  1263.  
  1264.     comment "Init, function eh array etcetc";
  1265.     _init = format ['
  1266.  
  1267.    _hasExecutedRespawnEHInit = missionNamespace getVariable "hasExecutedRespawnEHInit";
  1268.  
  1269.    if (isNil "_hasExecutedRespawnEHInit") then
  1270.   {
  1271.  
  1272.      p_thingsToExecuteOnRespawn = [];
  1273.  
  1274.      p_respawnEHSetStuff = {
  1275.        {
  1276.          call compile _x;
  1277.        } forEach p_thingsToExecuteOnRespawn;
  1278.      };
  1279.  
  1280.  
  1281.      p_valueRespawnEH = player addEventHandler ["Respawn",{[] spawn p_respawnEHSetStuff}];
  1282.      missionNamespace setVariable ["hasExecutedRespawnEHInit", "uselessstring"];
  1283.   };
  1284.    '];
  1285.  
  1286.     [_init, 1] spawn p_executeCode;
  1287.  
  1288.     comment "pushback things";
  1289.  
  1290.     if (_lbData == "invalid") then {
  1291.      ["Invalid modification selected"] spawn p_guinotification;
  1292.    }
  1293.    else {
  1294.    _pushBackCode = "player " + _lbData + " " + _input;
  1295.    _pushBackCodeFinal = format ["p_thingsToExecuteOnRespawn pushBack '%1'", _pushBackCode];
  1296.    [_pushBackCodeFinal, 1] spawn p_executeCode;
  1297.   ["Added value to r.EH", "nToggle", _pushBackCodeFinal] spawn p_logCreator;
  1298. };
  1299. };
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.   comment "executing input";
  1306.   if (_lbData == "invalid") then {
  1307.     ["Invalid modification selected"] spawn p_guinotification;
  1308.   }
  1309.   else {
  1310.   _code = "player " + _lbData + " " + _input;
  1311.   [_code, 1] spawn p_executeCode;
  1312.   if (_curMode != 1) then {
  1313.     ["Set value", "nToggle", _code] spawn p_logCreator;
  1314.   };
  1315. };
  1316. };
  1317. };
  1318.  
  1319. p_executeCode = {
  1320.   _returnBox = display displayCtrl 303;
  1321.   _targetSelector = display displayCtrl 104;
  1322.   _targetName = name (call p_getTargetObj);
  1323.  
  1324.   _code = _this select 0;
  1325.   _shouldHint = _this select 1;
  1326.   _curMode = ctrlText _targetSelector;
  1327.  
  1328.   switch (_curMode) do {
  1329.  
  1330.     case "Local": {
  1331.       if (_shouldHint == 1) then {
  1332.       ["Executed code locally"] spawn p_guinotification;
  1333.     };
  1334.       _return = call compile _code;
  1335.       missionNameSpace setVariable ["codeExecReturn", _return];
  1336.     };
  1337.  
  1338.     case "Target": {
  1339.       if (_shouldHint == 1) then {
  1340.       ["Executed code on " + _targetName] spawn p_guinotification;
  1341.     };
  1342.  
  1343.       [[_code, _targetName], {
  1344.         _name = name player;
  1345.  
  1346.         if (_name == (_this select 1)) then {
  1347.           call compile (_this select 0);
  1348.         };
  1349.         }]
  1350.       remoteExec ["bis_fnc_spawn", 0];
  1351.     };
  1352.  
  1353.     case "notTarget": {
  1354.       if (_shouldHint == 1) then {
  1355.       ["Executed code on all except for " + _targetName] spawn p_guinotification;
  1356.     };
  1357.  
  1358.       [[_code, _targetName], {
  1359.         _name = name player;
  1360.  
  1361.         if (_name != (_this select 1)) then {
  1362.           call compile (_this select 0);
  1363.         };
  1364.         }]
  1365.       remoteExec ["bis_fnc_spawn", 0];
  1366.     };
  1367.  
  1368.     case "Global": {
  1369.       if (_shouldHint == 1) then {
  1370.       ["Executed code globally"] spawn p_guinotification;
  1371.     };
  1372.  
  1373.       [[_code], {call compile (_this select 0)}]
  1374.       remoteExec ["bis_fnc_spawn", 0];
  1375.     };
  1376.  
  1377.     case "Server": {
  1378.       if (_shouldHint == 1) then {
  1379.       ["Executed code serverside"] spawn p_guinotification;
  1380.     };
  1381.  
  1382.       [[_code], {call compile (_this select 0)}]
  1383.       remoteExec ["bis_fnc_spawn", 2];
  1384.     };
  1385.  
  1386.   };
  1387.   _return = missionNamespace getVariable "codeExecReturn";
  1388. _returnBox ctrlSetText str _return; comment "only works for local";
  1389. };
  1390.  
  1391. p_targetSwapper = {
  1392.   _targetSelector = display displayCtrl 104;
  1393.   _bgPlayerSelect = display displayCtrl 205;
  1394.   _playerSelector = display displayCtrl 206;
  1395.   _bgDisplayPlayer = display displayCtrl 207;
  1396.   _DisplayPlayer = display displayCtrl 208;
  1397.   _curMode = ctrlText _targetSelector;
  1398.   _checkPlayerSelector = player getVariable "isPlayerSelectionOpened";
  1399.   _subOpen = player getVariable "subOpen";
  1400.  
  1401.   switch (_curMode) do {
  1402.  
  1403.     case "Local": {
  1404.       _targetSelector ctrlSetText "Target";
  1405.       player setVariable ["lastSelection", "Target"];
  1406.  
  1407.       [] spawn p_createPlayerSelectorBtn;
  1408.       [] spawn p_createPlayerDisplayerBtn;
  1409.  
  1410.       if (_checkPlayerSelector == 1) then {
  1411.         [] spawn p_createPlayerSelector;
  1412.       };
  1413.  
  1414.       if ((_subOpen == "target") || (_subOpen == "yyyyyyyyy")) then {
  1415.       [] spawn p_yyyyyyyyyMenuRefreshButtons;
  1416.       [] spawn p_targetMenuRefreshButtons;
  1417.     };
  1418.     };
  1419.  
  1420.     case "Target": {
  1421.       _targetSelector ctrlSetText "notTarget";
  1422.       player setVariable ["lastSelection", "notTarget"];
  1423.       [] spawn p_targetMenuWhiteButtons;
  1424.       [] spawn p_yyyyyyyyyMenuWhiteButtons;
  1425.     };
  1426.  
  1427.     case "notTarget": {
  1428.       [] spawn p_removePlayerSelector;
  1429.       _targetSelector ctrlSetText "Global";
  1430.       player setVariable ["lastSelection", "Global"];
  1431.       _bgPlayerSelect ctrlSetPosition [safeZoneX-(safezoneW * 0.1),(safezoneY + 0.7851 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1432.       _playerSelector ctrlSetPosition [safeZoneX-(safezoneW * 0.1),(safezoneY + 0.7851 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1433.       _bgDisplayPlayer ctrlSetPosition [safeZoneX-(safezoneW * 0.1),(safezoneY + 0.796 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1434.       _DisplayPlayer ctrlSetPosition [safeZoneX-(safezoneW * 0.1),(safezoneY + 0.796 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1435.       _bgDisplayPlayer ctrlCommit 1;
  1436.       _DisplayPlayer ctrlCommit 1;
  1437.       _bgPlayerSelect ctrlCommit 1;
  1438.       _playerSelector ctrlCommit 1;
  1439.       sleep 1;
  1440.       ctrlDelete _bgPlayerSelect;
  1441.       ctrlDelete _playerSelector;
  1442.       ctrlDelete _bgDisplayPlayer;
  1443.       ctrlDelete _DisplayPlayer;
  1444.     };
  1445.  
  1446.     case "Global": {
  1447.       [] spawn p_removePlayerSelector;
  1448.       _targetSelector ctrlSetText "Server";
  1449.       player setVariable ["lastSelection", "Server"];
  1450.       ctrlDelete _bgPlayerSelect;
  1451.       ctrlDelete _playerSelector;
  1452.       ctrlDelete _bgDisplayPlayer;
  1453.       ctrlDelete _DisplayPlayer;
  1454.     };
  1455.  
  1456.     case "Server": {
  1457.       [] spawn p_removePlayerSelector;
  1458.       _targetSelector ctrlSetText "Local";
  1459.       player setVariable ["lastSelection", "Local"];
  1460.       ctrlDelete _bgPlayerSelect;
  1461.       ctrlDelete _playerSelector;
  1462.       ctrlDelete _bgDisplayPlayer;
  1463.       ctrlDelete _DisplayPlayer;
  1464.     };
  1465.  
  1466.     default {
  1467.       _targetSelector ctrlSetText "Local";
  1468.     };
  1469.   };
  1470. };
  1471.  
  1472. p_createPlayerSelectorBtn = {
  1473. _bgPlayerSelect = display ctrlCreate ["RscBackground", 205];
  1474. _bgPlayerSelect ctrlSetPosition [safeZoneX-(safezoneW * 0.1),(safezoneY + 0.7851 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1475. _bgPlayerSelect ctrlSetBackgroundColor [1,0,0,0.7];
  1476. _bgPlayerSelect ctrlCommit 0;
  1477. _bgPlayerSelect ctrlSetPosition [safeZoneX,(safezoneY + 0.7851 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1478. _bgPlayerSelect ctrlCommit 1;
  1479.  
  1480. _playerSelector = display ctrlCreate ["RscButtonTextOnly", 206];
  1481. _playerSelector ctrlSetPosition [safeZoneX-(safezoneW * 0.1),(safezoneY + 0.7851 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1482. _playerSelector ctrlSetText "Target selector";
  1483. _playerSelector ctrlSetFont "PuristaLight";
  1484. _playerSelector ctrlSetTooltip "Toggle player selector";
  1485. _playerSelector ctrlSetEventHandler ["MouseButtonUp","[] spawn p_playerSelectorToggle"];
  1486. _playerSelector ctrlCommit 0;
  1487. _playerSelector ctrlSetPosition [safeZoneX,(safezoneY + 0.7851 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1488. _playerSelector ctrlCommit 1;
  1489. };
  1490.  
  1491. p_createPlayerDisplayerBtn = {
  1492. _bg = display ctrlCreate ["RscBackground", 207];
  1493. _bg ctrlSetPosition [safeZoneX-(safezoneW * 0.1),(safezoneY + 0.796 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1494. _bg ctrlSetBackgroundColor [1,0,0,0.7];
  1495. _bg ctrlCommit 0;
  1496. _bg ctrlSetPosition [safeZoneX,(safezoneY + 0.796 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1497. _bg ctrlCommit 1;
  1498.  
  1499. _displayTargetBtn = display ctrlCreate ["RscButtonTextOnly", 208];
  1500. _displayTargetBtn ctrlSetPosition [safeZoneX-(safezoneW * 0.1),(safezoneY + 0.796 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1501. _displayTargetBtn ctrlSetText "Display";
  1502. _displayTargetBtn ctrlSetFont "PuristaLight";
  1503. _displayTargetBtn ctrlSetTooltip "Display selected target";
  1504. _displayTargetBtn ctrlSetEventHandler ["MouseButtonUp","
  1505. _objName = name (call p_getTargetObj);
  1506. ['Selected target is ' + _objName] spawn p_guiNotification"];
  1507. _displayTargetBtn ctrlCommit 0;
  1508. _displayTargetBtn ctrlSetPosition [safeZoneX,(safezoneY + 0.796 * safezoneH),(safezoneW * 0.1) / 1.25,(safezoneH * 0.01)];
  1509. _displayTargetBtn ctrlCommit 1;
  1510. };
  1511.  
  1512. p_playerSelectorToggle = {
  1513. _varcheck = player getVariable "isPlayerSelectionOpened";
  1514.  
  1515. if (isNil "_varCheck") then {
  1516.   player setVariable ["isPlayerSelectionOpened", 0];
  1517. };
  1518.  
  1519. _openedVariable = player getVariable "isPlayerSelectionOpened";
  1520.  
  1521. if (_openedVariable == 0) then {
  1522.   [] spawn p_createPlayerSelector;
  1523.   player setVariable ["isPlayerSelectionOpened", 1];
  1524. } else
  1525.     {
  1526.       [] spawn p_removePlayerSelector;
  1527.       player setVariable ["isPlayerSelectionOpened", 0];
  1528.     };
  1529. };
  1530.  
  1531. p_createPlayerSelector = {
  1532. player setVariable ["isPlayerSelectionOpened", 1];
  1533. _bgTop = display displayCtrl 645;
  1534. _tvMid = display displayCtrl 209;
  1535. _bgBot = display displayCtrl 210;
  1536. _refreshBtn = display displayCtrl 211;
  1537.  
  1538. ctrlDelete _bgTop;
  1539. ctrlDelete _tvMid;
  1540. ctrlDelete _bgBot;
  1541. ctrlDelete _refreshBtn;
  1542.  
  1543. _bgTop = display ctrlCreate ["RscEdit", 645];
  1544. _bgTop ctrlSetPosition [safeZoneX + (safezoneW * 1.025),(safezoneY + 0.215 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1545. _bgTop ctrlSetBackgroundColor [1,0,0,0.7];
  1546. _bgTop ctrlCommit 0;
  1547. _bgTop ctrlSetPosition [safeZoneX + (safezoneW / 1.125),(safezoneY + 0.215 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1548. _bgTop ctrlCommit 1;
  1549.  
  1550. _tvMid = display ctrlCreate ["RscTreeSearch", 209];
  1551. _tvMid ctrlSetPosition [safezoneX + safezoneW,(safezoneY + 0.225 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.55)];
  1552. _tvMid ctrlSetBackgroundColor [0,0,0,0.7];
  1553. _tvMid ctrlSetEventHandler ["TreeDblClick","[] spawn p_setPlayerTarget"];
  1554. _tvMid ctrlCommit 0;
  1555. _tvMid ctrlSetPosition [safezoneX + (safezoneW / 1.15),(safezoneY + 0.225 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.55)];
  1556. _tvMid ctrlCommit 1;
  1557.  
  1558. _bgBot = display ctrlCreate ["RscBackground", 210];
  1559. _bgBot ctrlSetPosition [safeZoneX + (safezoneW * 1.025),(safezoneY + 0.775 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1560. _bgBot ctrlSetBackgroundColor [1,0,0,0.7];
  1561. _bgBot ctrlCommit 0;
  1562. _bgBot ctrlSetPosition [safeZoneX + (safezoneW / 1.125),(safezoneY + 0.775 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1563. _bgBot ctrlCommit 1;
  1564.  
  1565. _spectateTargetBtn = display ctrlCreate ["RscButtonTextOnly", 212];
  1566. _spectateTargetBtn ctrlSetPosition [safeZoneX + (safezoneW * 1.025),(safezoneY + 0.775 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1567. _spectateTargetBtn ctrlSetText "Spectate target";
  1568. _spectateTargetBtn ctrlSetFont "PuristaLight";
  1569. _spectateTargetBtn ctrlSetEventHandler ["MouseButtonUp","[] spawn p_spectate"];
  1570. _spectateTargetBtn ctrlCommit 0;
  1571. _spectateTargetBtn ctrlSetPosition [safeZoneX + (safezoneW / 1.125),(safezoneY + 0.775 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1572. _spectateTargetBtn ctrlCommit 1;
  1573.  
  1574. _bgBot2 = display ctrlCreate ["RscBackground", 213];
  1575. _bgBot2 ctrlSetPosition [safeZoneX + (safezoneW * 1.025),(safezoneY + 0.7852 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1576. _bgBot2 ctrlSetBackgroundColor [1,0,0,0.7];
  1577. _bgBot2 ctrlCommit 0;
  1578. _bgBot2 ctrlSetPosition [safeZoneX + (safezoneW / 1.125),(safezoneY + 0.7852 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1579. _bgBot2 ctrlCommit 1;
  1580.  
  1581. _refreshBtn = display ctrlCreate ["RscButtonTextOnly", 211];
  1582. _refreshBtn ctrlSetPosition [safeZoneX + (safezoneW * 1.025),(safezoneY + 0.7852 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1583. _refreshBtn ctrlSetText "Refresh";
  1584. _refreshBtn ctrlSetFont "PuristaLight";
  1585. _refreshBtn ctrlSetTooltip "Refresh playerlist";
  1586. _refreshBtn ctrlSetEventHandler ["MouseButtonUp","[] spawn p_fillPlayerSelector"];
  1587. _refreshBtn ctrlCommit 0;
  1588. _refreshBtn ctrlSetPosition [safeZoneX + (safezoneW / 1.125),(safezoneY + 0.7852 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1589. _refreshBtn ctrlCommit 1;
  1590.  
  1591. [] spawn p_fillPlayerSelector;
  1592. };
  1593.  
  1594. p_setPlayerTarget = {
  1595. _tvMid = display displayCtrl 209;
  1596.  
  1597. _curSel = tvCurSel _tvMid;
  1598. _data = _tvMid tvData _curSel;
  1599. hint _data;
  1600.  
  1601.  
  1602.  
  1603. missionNameSpace setVariable ["targetUID", _data];
  1604. _obj = call p_getTargetObj;
  1605.  
  1606. ["Set target to " + (name _obj)] spawn p_guiNotification;
  1607.  
  1608. if ((ctrlText (display displayCtrl 104)) == "Target") then {
  1609.   [] spawn p_targetMenuRefreshButtons;
  1610.   [] spawn p_yyyyyyyyyMenuRefreshButtons;
  1611. } else {
  1612.   [] spawn p_targetMenuWhiteButtons;
  1613.   [] spawn p_yyyyyyyyyMenuWhiteButtons;
  1614. };
  1615. };
  1616.  
  1617. p_getTargetObj = {
  1618.   {
  1619.  
  1620.     if ((getPlayerUID _x) == (missionNameSpace getVariable "targetUID")) then {
  1621.       missionNameSpace setVariable ["tempVarTargetObj", _x];
  1622.     };
  1623.   } forEach allPlayers;
  1624.  
  1625.  
  1626.   _targetObjName = missionNameSpace getVariable "tempVarTargetObj";
  1627.  
  1628.   _targetObjName;
  1629. };
  1630.  
  1631. p_fillPlayerSelector = {
  1632. _tvMid = display displayCtrl 209;
  1633. tvClear _tvMid;
  1634. {
  1635.   _playerUID = getPlayerUID _x;
  1636.   _playerObj = str _x;
  1637.   _name = name _x;
  1638.   _displayString = name _x + " (" + _playerObj +")";
  1639.  
  1640.   if (vehicle _x == _x) then {
  1641.     _wepPic = getText(configFile >> "CfgWeapons" >> (currentWeapon _x) >> "Picture");
  1642.  
  1643.     _index = _tvMid tvAdd [[],_displayString];
  1644.     _tvMid tvSetPicture [[_index], _wepPic];
  1645.     _tvMid tvSetData [[_index], _playerUID];
  1646.   } else {
  1647.     _vehPic = getText(configFile >> "CfgVehicles" >> (typeOf vehicle _x) >> "Picture");
  1648.  
  1649.     _index = _tvMid tvAdd [[],_displayString];
  1650.     _tvMid tvSetPicture [[_index], _vehPic];
  1651.     _tvMid tvSetData [[_index], _playerUID];
  1652.   };
  1653. } forEach allPlayers;
  1654. };
  1655.  
  1656. p_removePlayerSelector = {
  1657. _bgTop = display displayCtrl 645;
  1658. _tvMid = display displayCtrl 209;
  1659. _bgBot = display displayCtrl 210;
  1660. _refreshBtn = display displayCtrl 211;
  1661. _morebuttons = display displayCtrl 212;
  1662. _morebuttons2 = display displayCtrl 213;
  1663.  
  1664.  
  1665. _bgTop ctrlSetPosition [safeZoneX + (safezoneW * 1.025),(safezoneY + 0.215 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1666. _tvMid ctrlSetPosition [safezoneX + safezoneW,(safezoneY + 0.225 * safezoneH),(safezoneW * 0.15),(safezoneH * 0.55)];
  1667. _bgBot ctrlSetPosition [safeZoneX + (safezoneW * 1.025),(safezoneY + 0.775 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1668. _refreshBtn ctrlSetPosition [safeZoneX + (safezoneW * 1.025),(safezoneY + 0.7852 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1669. _morebuttons ctrlSetPosition [safeZoneX + (safezoneW * 1.025),(safezoneY + 0.775 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1670. _morebuttons2 ctrlSetPosition [safeZoneX + (safezoneW * 1.025),(safezoneY + 0.7852 * safezoneH),(safezoneW * 0.1) / 0.895,(safezoneH * 0.01)];
  1671.  
  1672. _bgTop ctrlCommit 1;
  1673. _tvMid ctrlCommit 1;
  1674. _bgBot ctrlCommit 1;
  1675. _refreshBtn ctrlCommit 1;
  1676. _morebuttons ctrlCommit 1;
  1677. _morebuttons2 ctrlCommit 1;
  1678.  
  1679. sleep 1;
  1680.  
  1681. ctrlDelete _bgTop;
  1682. ctrlDelete _tvMid;
  1683. ctrlDelete _bgBot;
  1684. ctrlDelete _refreshBtn;
  1685. ctrlDelete _morebuttons;
  1686. ctrlDelete _morebuttons2;
  1687. };
  1688.  
  1689. ["Potatimenu successfully initialized, F3 to open!"] spawn p_noGuiNotification;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement