Advertisement
Guest User

MasterKey

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