Guest User

VehicleKeyChanger_init.sqf

a guest
Jan 28th, 2016
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.85 KB | None | 0 0
  1. /***********************************/
  2. /* Vehicle Key Changer v1.3 */
  3. /* Written by OtterNas3 */
  4. /* January, 11, 2014 */
  5. /* Last update: 02/20/2014 */
  6. /***********************************/
  7.  
  8.  
  9. private ["_playerDollars","_itemsPlayer","_magazinesPlayer","_temp_Keys","_temp_keysDisplayName","_temp_keysDisplayNameParse","_key_colors","_ownerKeyId","_carKey","_hasKey","_cTarget","_keyName","_carKeyName","_targetVehicleKey","_temp_keysParse"];
  10. /////////////////////////////////////////////////
  11. /////////////////////////////////////////////////
  12. // Edit these settings to fit your needs/likes //
  13. /////////////////////////////////////////////////
  14. /////////////////////////////////////////////////
  15. /// Claim Vehicles that does not yet need Key ///
  16. ///////// 0 = Not allowed | 1 = Allowed /////////
  17. vkc_claiming = 1;
  18. /////////////////////////////////////////////////
  19. //////// Claim Vehicles costs this Item /////////
  20. /// Any Item can be used here, some examples: ///
  21. //// ItemTinBar, ItemSilverBar, ItemGoldBar, ////
  22. ////// ItemSilverBar10oz, ItemGoldBar10oz, //////
  23. ///// ItemBriefcase20oz, ItemBriefcase100oz /////
  24. //////// set to "0" to disable the costs ////////
  25. vkc_claimingPrice = 5000;
  26. /////////////////////////////////////////////////
  27. ////////// Change Key costs this Item// /////////
  28. ////////////// see above examples ///////////////
  29. //////// set to "0" to disable the costs ////////
  30. vkc_Price = 2500;
  31. /////////////////////////////////////////////////
  32. /////// Need KeyKit to use this function ////////
  33. ////////// 0 = Not needed | 1 = Needed //////////
  34. vkc_needKeykit = 1;
  35. /////////////////////////////////////////////////
  36. /////////////////////////////////////////////////
  37. /////////////// DONT EDIT BELOW ! ///////////////
  38. /////////////////////////////////////////////////
  39.  
  40. /* Reset variables function */
  41. ON_fnc_vkc_reset = {
  42. _cTarget = objNull;
  43. _itemsPlayer = [];
  44. _temp_keys = [];
  45. _carKey = objNull;
  46. _hasKey = false;
  47. _temp_keysDisplayName = [];
  48. _temp_keysDisplayNameParse = [];
  49. _temp_keysParse = [];
  50. _targetVehicleKey = objNull;
  51. _carKeyName = "";
  52. player removeAction s_player_copyToKey;
  53. s_player_copyToKey = -1;
  54. };
  55.  
  56. //Added for Fix
  57. dayz_objectUID_vkc = {
  58. private["_position","_dir","_key","_object"];
  59. _object = _this;
  60. _position = getPosATL _object;
  61. _dir = direction _object;
  62. _key = [_dir,_position] call dayz_objectUID2_vkc;
  63. _key
  64. };
  65.  
  66. dayz_objectUID2_vkc = {
  67. private["_position","_dir","_key"];
  68. _dir = _this select 0;
  69. _key = "";
  70. _position = _this select 1;
  71. {
  72. _x = _x * 10;
  73. if ( _x < 0 ) then { _x = _x * -10 };
  74. _key = _key + str(round(_x));
  75. } forEach _position;
  76. _key = _key + str(round(_dir));
  77. _key
  78. };
  79.  
  80. /* Wait for player full ingame so we can access the action-menu */
  81. waitUntil {!isNil "dayz_animalCheck"};
  82.  
  83. s_player_copyToKey=-1;
  84. lastKeyChangeCursorTarget = [objNull,objNull,objNull,objNull,objNull];
  85.  
  86. /* Start the loop check */
  87. while{true} do {
  88. sleep 3;
  89. _playerDollars = player getVariable['cashMoney', 0];
  90. if (!isNull cursorTarget && speed player <= 1 && (vehicle player) == player && !isEngineOn cursorTarget && (cursorTarget isKindOf "Motorcycle" || cursorTarget isKindOf "Car" || cursorTarget isKindOf "Air" || cursorTarget isKindOf "Ship" || cursorTarget isKindOf "Truck" || cursorTarget isKindOf "Tank") && (cursorTarget distance player) <= 10 && cursorTarget getVariable ["VKC_disabled", 0] == 0 && cursorTarget getVariable ["VKC_claiming_disabled",0] == 0) then {
  91. _cTarget = cursorTarget;
  92. _itemsPlayer = items player;
  93. _magazinesPlayer = magazines player;
  94. if ((lastKeyChangeCursorTarget select 0) != _cTarget) then {
  95. if (s_player_copyToKey >= 0) then {
  96. player removeAction s_player_copyToKey;
  97. s_player_copyToKey = -1;
  98. };
  99. };
  100. lastKeyChangeCursorTarget set [0,_cTarget];
  101. _carKey = _cTarget getVariable ["CharacterID","0"];
  102. if (("ItemKeyKit" in _itemsPlayer || vkc_needKeykit == 0) && ((_carKey == "0" && vkc_claiming == 1 && (vkc_claimingPrice == 0 || vkc_claimingPrice < _playerDollars)) || _carKey != "0") && (vkc_Price == 0 || vkc_Price < _playerDollars)) then {
  103. if (_carKey == "0") then {
  104. _temp_keys = [];
  105. _temp_keysDisplayName = [];
  106. _temp_keysDisplayNameParse = [];
  107. _key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"];
  108. {
  109. if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in _key_colors) then {
  110. _ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _x >> "keyid");
  111. _keyName = getText(configFile >> "CfgWeapons" >> _x >> "displayName");
  112. _temp_keysDisplayName set [count _temp_keysDisplayName,_keyName];
  113. _temp_keys set [count _temp_keys,str(_ownerKeyId)];
  114. };
  115. } forEach _itemsPlayer;
  116. if ((count _temp_keys) > 0) then {
  117. if (s_player_copyToKey < 0) then {
  118. lastKeyChangeCursorTarget set [0,_cTarget];
  119. s_player_copyToKey = player addAction [("<t color=""#0000FF"">" + ("Claim Vehicle") + "</t>"),"custom\VehicleKeyChanger\VehicleKeyChanger.sqf",[_cTarget, _temp_keys, "0", _temp_keysDisplayName, "0", "0", vkc_Price, vkc_claimingPrice],-1,false,false,"",""];
  120. };
  121. } else {
  122. [] call ON_fnc_vkc_reset;
  123. };
  124. } else {
  125. _temp_keys = [];
  126. _temp_keysDisplayName = [];
  127. _temp_keysDisplayNameParse = [];
  128. _temp_keysParse = [];
  129. _key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"];
  130. {
  131. if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in _key_colors) then {
  132. _ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _x >> "keyid");
  133. _keyName = getText(configFile >> "CfgWeapons" >> _x >> "displayName");
  134. _temp_keysDisplayName set [count _temp_keysDisplayName,_keyName];
  135. _temp_keysDisplayNameParse set [_ownerKeyId,_keyName];
  136. _temp_keys set [count _temp_keys,str(_ownerKeyId)];
  137. _temp_keysParse set [_ownerKeyId, _x];
  138. };
  139. } forEach _itemsPlayer;
  140. _hasKey = _carKey in _temp_keys;
  141. if (_hasKey && (count _temp_keys) > 1) then {
  142. _carKeyName = (_temp_keysDisplayNameParse select (parseNumber _carKey));
  143. _targetVehicleKey = (_temp_keysParse select (parseNumber _carKey));
  144. _temp_keys = _temp_keys - [_carKey];
  145. _temp_keysDisplayName = _temp_keysDisplayName - [_carKeyName];
  146. if (s_player_copyToKey < 0) then {
  147. lastKeyChangeCursorTarget set [0,_cTarget];
  148. s_player_copyToKey = player addAction [("<t color=""#0000FF"">" + ("Change Vehicle Key") + "</t>"),"custom\VehicleKeyChanger\VehicleKeyChanger.sqf",[_cTarget, _temp_keys, _carKey, _temp_keysDisplayName, _carKeyName, _targetVehicleKey, vkc_Price, 0],-1,false,false,"",""];
  149. };
  150. } else {
  151. [] call ON_fnc_vkc_reset;
  152. };
  153. };
  154. } else {
  155. [] call ON_fnc_vkc_reset;
  156. };
  157. } else {
  158. lastKeyChangeCursorTarget = [objNull,objNull,objNull,objNull,objNull];
  159. [] call ON_fnc_vkc_reset;
  160. };
  161. };
Add Comment
Please, Sign In to add comment