Advertisement
Guest User

Untitled

a guest
Jan 5th, 2015
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.34 KB | None | 0 0
  1. private ["_activatingPlayer","_isOK","_object","_worldspace","_location","_dir","_class","_uid","_key","_keySelected","_characterID","_donotusekey"];
  2. //PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
  3. _object = _this select 0;
  4. _worldspace = _this select 1;
  5. _class = _this select 2;
  6. _donotusekey = _this select 3;
  7. _keySelected = _this select 4;
  8. _activatingPlayer = _this select 5;
  9.  
  10. if(_donotusekey) then {
  11. _isOK = true;
  12. } else {
  13. _isOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
  14. };
  15.  
  16. if(!_isOK) exitWith { diag_log ("HIVE: CARKEY DOES NOT EXIST: "+ str(_keySelected)); };
  17.  
  18. if(_donotusekey) then {
  19. _characterID = _keySelected;
  20. } else {
  21. _characterID = str(getNumber(configFile >> "CfgWeapons" >> _keySelected >> "keyid"));
  22. };
  23.  
  24. diag_log ("PUBLISH: Attempt " + str(_object));
  25. _dir = _worldspace select 0;
  26. _location = _worldspace select 1;
  27.  
  28. //Generate UID test using time
  29. _uid = _worldspace call dayz_objectUID3;
  30.  
  31. // TODO: check if uid already exists && if so increment by 1 && check again as soon as we find nothing continue.
  32.  
  33. //Send request
  34. _key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _characterID, _worldspace, [], [], 1,_uid];
  35. diag_log ("HIVE: WRITE: "+ str(_key));
  36. _key call server_hiveWrite;
  37.  
  38. // Switched to spawn so we can wait a bit for the ID
  39. [_object,_uid,_characterID,_class,_dir,_location,_donotusekey,_activatingPlayer] spawn {
  40. private ["_object","_uid","_characterID","_done","_retry","_key","_result","_outcome","_oid","_class","_location","_object_para","_donotusekey","_activatingPlayer"];
  41.  
  42. _object = _this select 0;
  43. _uid = _this select 1;
  44. _characterID = _this select 2;
  45. _class = _this select 3;
  46. //_dir = _this select 4;
  47. _location = _this select 5;
  48. _donotusekey = _this select 6;
  49. _activatingPlayer = _this select 7;
  50.  
  51. _done = false;
  52. _retry = 0;
  53. // TODO: Needs major overhaul for 1.1
  54. while {_retry < 10} do {
  55.  
  56. sleep 1;
  57. // GET DB ID
  58. _key = format["CHILD:388:%1:",_uid];
  59. diag_log ("HIVE: WRITE: "+ str(_key));
  60. _result = _key call server_hiveReadWrite;
  61. _outcome = _result select 0;
  62. if (_outcome == "PASS") then {
  63. _oid = _result select 1;
  64. //_object setVariable ["ObjectID", _oid, true];
  65. diag_log("CUSTOM: Selected " + str(_oid));
  66. _done = true;
  67. _retry = 100;
  68.  
  69. } else {
  70. diag_log("CUSTOM: trying again to get id for: " + str(_uid));
  71. _done = false;
  72. _retry = _retry + 1;
  73. };
  74. };
  75.  
  76. // Remove marker
  77. deleteVehicle _object;
  78.  
  79. if(!_done) exitWith { diag_log("CUSTOM: failed to get id for : " + str(_uid)); };
  80.  
  81. if(DZE_TRADER_SPAWNMODE) then {
  82. _object_para = createVehicle ["ParachuteMediumWest", [0,0,0], [], 0, "CAN_COLLIDE"];
  83. _object_para setPos [_location select 0, _location select 1,(_location select 2) + 65];
  84. _object = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"];
  85. } else {
  86. _object = createVehicle [_class, _location, [], 0, "CAN_COLLIDE"];
  87. };
  88. call {
  89. if (_class == "SUV_Orange_DZE4") exitWith {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvMonster.jpg''];';};
  90. if (_class == "SUV_White_DZE4") exitWith {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvWhite.jpg''];';};
  91. };
  92.  
  93. if(!_donotusekey) then {
  94. // Lock vehicle
  95. _object setvehiclelock "locked";
  96. };
  97. /* //Remove Weapon by SiothieGaming start
  98. call fnc_remWepSG;
  99. //Remove Weapon by SiothieGaming end */
  100. clearWeaponCargoGlobal _object;
  101. clearMagazineCargoGlobal _object;
  102. // _object setVehicleAmmo DZE_vehicleAmmo;
  103.  
  104. _object setVariable ["ObjectID", _oid, true];
  105.  
  106. _object setVariable ["lastUpdate",time];
  107.  
  108. _object setVariable ["CharacterID", _characterID, true];
  109.  
  110. if(DZE_TRADER_SPAWNMODE) then {
  111. _object attachTo [_object_para, [0,0,-1.6]];
  112. sleep 1.0;
  113. WaitUntil{(([_object] call FNC_GetPos) select 2) < 0.1};
  114. detach _object;
  115. deleteVehicle _object_para;
  116. };
  117.  
  118. PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];
  119.  
  120. _object call fnc_veh_ResetEH;
  121.  
  122. // for non JIP users this should make sure everyone has eventhandlers for vehicles.
  123. PVDZE_veh_Init = _object;
  124. publicVariable "PVDZE_veh_Init";
  125. processInitCommands;
  126. diag_log ("PUBLISH: " + str(_activatingPlayer) + " Bought " + (_class) + " with ID " + str(_uid));
  127. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement