Advertisement
Guest User

Untitled

a guest
Jul 19th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.00 KB | None | 0 0
  1. #include "..\..\script_macros.hpp"
  2. /*
  3. File: fn_vInteractionMenu.sqf
  4. Author: Bryan "Tonic" Boardwine
  5.  
  6. Description:
  7. Replaces the mass add actions for various vehicle actions.
  8. */
  9. #define Btn1 37450
  10. #define Btn2 37451
  11. #define Btn3 37452
  12. #define Btn4 37453
  13. #define Btn5 37454
  14. #define Btn6 37455
  15. #define Btn7 37456
  16. #define Btn8 37457
  17. #define Title 37401
  18. private ["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_Btn7","_id"];
  19. if (!dialog) then {
  20. createDialog "vInteraction_Menu";
  21. };
  22. disableSerialization;
  23.  
  24. _curTarget = param [0,objNull,[objNull]];
  25. if (isNull _curTarget) exitWith {closeDialog 0;}; //Bad target
  26. _isVehicle = if ((_curTarget isKindOf "landVehicle") || (_curTarget isKindOf "Ship") || (_curTarget isKindOf "Air")) then {true} else {false};
  27. if (!_isVehicle) exitWith {closeDialog 0;};
  28.  
  29. _display = findDisplay 37400;
  30. _Btn1 = _display displayCtrl Btn1;
  31. _Btn2 = _display displayCtrl Btn2;
  32. _Btn3 = _display displayCtrl Btn3;
  33. _Btn4 = _display displayCtrl Btn4;
  34. _Btn5 = _display displayCtrl Btn5;
  35. _Btn6 = _display displayCtrl Btn6;
  36. _Btn7 = _display displayCtrl Btn7;
  37. _Btn8 = _display displayCtrl Btn8;
  38. life_vInact_curTarget = _curTarget;
  39. _id = getObjectDLC _curTarget;
  40.  
  41. //Set Repair Action
  42. _Btn1 ctrlSetText localize "STR_vInAct_Repair";
  43. _Btn1 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_repairTruck; closeDialog 0;";
  44.  
  45. if ((life_inv_toolkit >= 1) && {alive life_vInact_curTarget} && {([life_vInact_curTarget] call life_fnc_isDamaged)}) then {_Btn1 ctrlEnable true;} else {_Btn1 ctrlEnable false;};
  46.  
  47. _Btn4 ctrlSetText localize "STR_vInAct_PullOut";
  48. _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction; closeDialog 0;";
  49. if (crew _curTarget isEqualTo []) then {_Btn4 ctrlEnable false;};
  50. if (playerSide isEqualTo west) then {
  51. _Btn2 ctrlSetText localize "STR_vInAct_Registration";
  52. _Btn2 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_searchVehAction; closeDialog 0;";
  53.  
  54. _Btn3 ctrlSetText localize "STR_vInAct_SearchVehicle";
  55. _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_vehInvSearch; closeDialog 0;";
  56.  
  57. _Btn4 ctrlSetText localize "STR_vInAct_PullOut";
  58. _Btn4 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_pulloutAction; closeDialog 0;";
  59. if (crew _curTarget isEqualTo []) then {_Btn4 ctrlEnable false;};
  60.  
  61. _Btn5 ctrlSetText localize "STR_vInAct_Impound";
  62. _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction; closeDialog 0;";
  63.  
  64. _Btn7 ctrlSetText "Crush";
  65. _Btn7 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_crushAction; closeDialog 0;";
  66.  
  67. if (_curTarget isKindOf "Ship") then {
  68. _Btn6 ctrlSetText localize "STR_vInAct_PushBoat";
  69. _Btn6 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;";
  70. if (_curTarget isKindOf "Ship" && {local _curTarget} && {crew _curTarget isEqualTo []}) then { _Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false};
  71. } else {
  72. if (!isNil "_id") then {
  73. if !(_id in getDLCs 1) then {
  74. _Btn6 ctrlSetText localize "STR_vInAct_GetInVehicle";
  75. _Btn6 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
  76. if (crew _curTarget isEqualTo [] && {canMove _curTarget} && {locked _curTarget isEqualTo 0}) then {_Btn6 ctrlEnable true;} else {_Btn6 ctrlEnable false};
  77. };
  78. } else {
  79. _Btn6 ctrlSetText localize "STR_vInAct_Unflip";
  80. _Btn6 buttonSetAction "life_vInact_curTarget setPos [getPos life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1, (getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;";
  81. if (alive _curTarget && {crew _curTarget isEqualTo []} && {canMove _curTarget}) then { _Btn6 ctrlEnable false;} else {_Btn6 ctrlEnable true;};
  82. };
  83. };
  84.  
  85. _Btn8 ctrlSetText "Examine";
  86. _Btn8 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_examineAction; closeDialog 0;";
  87.  
  88. } else {
  89.  
  90. if (_curTarget isKindOf "Ship") then {
  91. _Btn2 ctrlSetText localize "STR_vInAct_PushBoat";
  92. _Btn2 buttonSetAction "[] spawn life_fnc_pushObject; closeDialog 0;";
  93. if (alive _curTarget && {_curTarget isKindOf "Ship"} && {local _curTarget} && {crew _curTarget isEqualTo []}) then { _Btn2 ctrlEnable true;} else {_Btn2 ctrlEnable false};
  94. } else {
  95. if (!isNil "_id") then {
  96. if !(_id in getDLCs 1) then {
  97. _Btn2 ctrlSetText localize "STR_vInAct_GetInVehicle";
  98. _Btn2 buttonSetAction "player moveInDriver life_vInact_curTarget; closeDialog 0;";
  99. if (crew _curTarget isEqualTo [] && {canMove _curTarget} && {locked _curTarget isEqualTo 0}) then {_Btn2 ctrlEnable true;} else {_Btn2 ctrlEnable false};
  100. };
  101. } else {
  102. _Btn2 ctrlSetText localize "STR_vInAct_Unflip";
  103. _Btn2 buttonSetAction "life_vInact_curTarget setPos [getPos life_vInact_curTarget select 0, getPos life_vInact_curTarget select 1, (getPos life_vInact_curTarget select 2)+0.5]; closeDialog 0;";
  104. if (alive _curTarget && {crew _curTarget isEqualTo []} && {canMove _curTarget}) then { _Btn2 ctrlEnable false;} else {_Btn2 ctrlEnable true;};
  105. };
  106. };
  107. if (typeOf _curTarget == "O_Truck_03_device_F") then {
  108. _Btn3 ctrlSetText localize "STR_vInAct_DeviceMine";
  109. _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_deviceMine";
  110. if (!isNil {(_curTarget getVariable "mining")} || !local _curTarget && {_curTarget in life_vehicles}) then {
  111. _Btn3 ctrlEnable false;
  112. } else {
  113. _Btn3 ctrlEnable true;
  114. };
  115. } else {
  116. _Btn3 ctrlShow false;
  117. if (typeOf (_curTarget) in ["C_Van_01_fuel_F","I_Truck_02_fuel_F","B_Truck_01_fuel_F"] && _curTarget in life_vehicles) then {
  118. if (!isNil {_curTarget getVariable "fuelTankWork"}) then {
  119. _Btn3 ctrlSetText localize "STR_FuelTank_Stop";
  120. _Btn3 buttonSetAction "life_vInact_curTarget setVariable [""fuelTankWork"",nil,true]; closeDialog 0;";
  121. _Btn3 ctrlShow true;
  122. } else {
  123. if (count (nearestObjects [_curTarget, ["Land_FuelStation_Feed_F","Land_fs_feed_F"], 15]) > 0) then {
  124. _Btn3 ctrlSetText localize "STR_FuelTank_Supply";
  125. _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_fuelSupply";
  126. _Btn3 ctrlShow true;
  127. }else{
  128. {
  129. if (player distance (getMarkerPos _x) < 20) exitWith {
  130. _Btn3 ctrlSetText localize "STR_FuelTank_Store";
  131. _Btn3 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_fuelStore";
  132. _Btn3 ctrlShow true;
  133. };
  134. } forEach ["fuel_storage_1","fuel_storage_2"];
  135. };
  136. };
  137. };
  138. };
  139. if (life_job == "Tow Truck Driver") then {
  140. _Btn5 ctrlSetText localize "STR_vInAct_Impound";
  141. _Btn5 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_impoundAction; closeDialog 0;";
  142. _Btn5 ctrlEnable false;
  143. _Btn6 ctrlSetText "Tow Vehicle";
  144. _Btn6 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_tow; closeDialog 0;";
  145. _Btn6 ctrlEnable false;
  146. _Btn7 ctrlSetText "Drop Vehicle";
  147. _Btn7 buttonSetAction "[life_vInact_curTarget] spawn life_fnc_drop; closeDialog 0;";
  148. _Btn7 ctrlEnable false;
  149. if (_curTarget distance tow_spawn < 3 && (typeOf _curTarget != "red_towtruck_08_tow2")) then {
  150. _Btn5 ctrlEnable true;
  151. };
  152. if (typeOf _curTarget != "red_towtruck_08_tow2") then {
  153. _Btn6 ctrlEnable true;
  154. };
  155. if (typeOf _curTarget == "red_towtruck_08_tow2") then {
  156. _Btn7 ctrlEnable true;
  157. };
  158. } else {
  159. _Btn5 ctrlShow false;
  160. _Btn7 ctrlShow false;
  161. };
  162.  
  163. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement