Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2014
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.95 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.  
  89. if(!_donotusekey) then {
  90. // Lock vehicle
  91. _object setvehiclelock "locked";
  92. };
  93.  
  94. clearWeaponCargoGlobal _object;
  95. clearMagazineCargoGlobal _object;
  96. // _object setVehicleAmmo DZE_vehicleAmmo;
  97. //HMMWV_M2 remove ammo
  98. if (_object isKindOf "HMMWV_M2") then {
  99. _object removeMagazine "100Rnd_127x99_M2";
  100. _object removeMagazine "100Rnd_127x99_M2";
  101. _object removeMagazine "100Rnd_127x99_M2";
  102. _object removeMagazine "100Rnd_127x99_M2";
  103. _object removeMagazine "100Rnd_127x99_M2";
  104. _object removeMagazine "100Rnd_127x99_M2";
  105. };
  106. //HMMWV_M2_USArmy remove ammo
  107. if (_object isKindOf "HMMWV_M2_USArmy") then {
  108. _object removeMagazine "100Rnd_127x99_M2";
  109. _object removeMagazine "100Rnd_127x99_M2";
  110. _object removeMagazine "100Rnd_127x99_M2";
  111. _object removeMagazine "100Rnd_127x99_M2";
  112. _object removeMagazine "100Rnd_127x99_M2";
  113. _object removeMagazine "100Rnd_127x99_M2";
  114. };
  115. //HMMWV_HMMWV_M1151_M2_CZ_DES_EP1 remove ammo
  116. if (_object isKindOf "HMMWV_M1151_M2_CZ_DES_EP1") then {
  117. _object removeMagazine "100Rnd_127x99_M2";
  118. _object removeMagazine "100Rnd_127x99_M2";
  119. _object removeMagazine "100Rnd_127x99_M2";
  120. _object removeMagazine "100Rnd_127x99_M2";
  121. _object removeMagazine "100Rnd_127x99_M2";
  122. _object removeMagazine "100Rnd_127x99_M2";
  123. };
  124. //HMMWV_M1151_M2_DES_EP1 remove ammo
  125. if (_object isKindOf "HMMWV_M1151_M2_DES_EP1") then {
  126. _object removeMagazine "100Rnd_127x99_M2";
  127. _object removeMagazine "100Rnd_127x99_M2";
  128. _object removeMagazine "100Rnd_127x99_M2";
  129. _object removeMagazine "100Rnd_127x99_M2";
  130. _object removeMagazine "100Rnd_127x99_M2";
  131. _object removeMagazine "100Rnd_127x99_M2";
  132. };
  133. //HMMWV_Armored remove ammo
  134. if (_object isKindOf "HMMWV_Armored") then {
  135. _object removeMagazine "100Rnd_762x51_M240";
  136. _object removeMagazine "100Rnd_762x51_M240";
  137. _object removeMagazine "100Rnd_762x51_M240";
  138. _object removeMagazine "100Rnd_762x51_M240";
  139. };
  140. //CH_47F_BAF remove ammo
  141. if (_object isKindOf "CH_47F_BAF") then {
  142. _object removeMagazine "100Rnd_762x51_M240";
  143. _object removeMagazine "100Rnd_762x51_M240";
  144. _object removeMagazine "100Rnd_762x51_M240";
  145. _object removeMagazine "100Rnd_762x51_M240";
  146. _object removeMagazine "100Rnd_762x51_M240";
  147. _object removeMagazine "100Rnd_762x51_M240";
  148. _object removeMagazine "100Rnd_762x51_M240";
  149. _object removeMagazine "100Rnd_762x51_M240";
  150. _object removeMagazine "100Rnd_762x51_M240";
  151. _object removeMagazine "100Rnd_762x51_M240";
  152. _object removeMagazine "100Rnd_762x51_M240";
  153. _object removeMagazine "100Rnd_762x51_M240";
  154. _object removeMagazine "100Rnd_762x51_M240";
  155. _object removeMagazine "100Rnd_762x51_M240";
  156. };
  157. //UH1H_TK_EP1 remove ammo
  158. if (_object isKindOf "UH1H_TK_EP1") then {
  159. _object removeMagazine "100Rnd_762x51_M240";
  160. _object removeMagazine "100Rnd_762x51_M240";
  161. _object removeMagazine "100Rnd_762x51_M240";
  162. _object removeMagazine "100Rnd_762x51_M240";
  163. _object removeMagazine "100Rnd_762x51_M240";
  164. _object removeMagazine "100Rnd_762x51_M240";
  165. _object removeMagazine "100Rnd_762x51_M240";
  166. _object removeMagazine "100Rnd_762x51_M240";
  167. };
  168. //BTR40_TK_INS_EP1 remove ammo
  169. if (_object isKindOf "BTR40_TK_INS_EP1") then {
  170. _object removeMagazine "50Rnd_127x107_DSHKM";
  171. _object removeMagazine "50Rnd_127x107_DSHKM";
  172. _object removeMagazine "50Rnd_127x107_DSHKM";
  173. _object removeMagazine "50Rnd_127x107_DSHKM";
  174. _object removeMagazine "50Rnd_127x107_DSHKM";
  175. _object removeMagazine "50Rnd_127x107_DSHKM";
  176. };
  177. //BTR40_MG_TK_INS_EP1 remove ammo
  178. if (_object isKindOf "BTR40_MG_TK_INS_EP1") then {
  179. _object removeMagazine "50Rnd_127x107_DSHKM";
  180. _object removeMagazine "50Rnd_127x107_DSHKM";
  181. _object removeMagazine "50Rnd_127x107_DSHKM";
  182. _object removeMagazine "50Rnd_127x107_DSHKM";
  183. _object removeMagazine "50Rnd_127x107_DSHKM";
  184. _object removeMagazine "50Rnd_127x107_DSHKM";
  185. };
  186. //BTR40_TK_GUE_EP1 remove ammo
  187. if (_object isKindOf "BTR40_TK_GUE_EP1") then {
  188. _object removeMagazine "50Rnd_127x107_DSHKM";
  189. _object removeMagazine "50Rnd_127x107_DSHKM";
  190. _object removeMagazine "50Rnd_127x107_DSHKM";
  191. _object removeMagazine "50Rnd_127x107_DSHKM";
  192. _object removeMagazine "50Rnd_127x107_DSHKM";
  193. _object removeMagazine "50Rnd_127x107_DSHKM";
  194. };
  195. //BTR40_MG_TK_GUE_EP1 remove ammo
  196. if (_object isKindOf "BTR40_MG_TK_GUE_EP1") then {
  197. _object removeMagazine "50Rnd_127x107_DSHKM";
  198. _object removeMagazine "50Rnd_127x107_DSHKM";
  199. _object removeMagazine "50Rnd_127x107_DSHKM";
  200. _object removeMagazine "50Rnd_127x107_DSHKM";
  201. _object removeMagazine "50Rnd_127x107_DSHKM";
  202. _object removeMagazine "50Rnd_127x107_DSHKM";
  203. };
  204. //Mi17_Ins remove ammo
  205. if (_object isKindOf "Mi17_Ins") then {
  206. _object removeMagazine "100Rnd_762x54_PK";
  207. _object removeMagazine "100Rnd_762x54_PK";
  208. _object removeMagazine "100Rnd_762x54_PK";
  209. _object removeMagazine "100Rnd_762x54_PK";
  210. _object removeMagazine "100Rnd_762x54_PK";
  211. _object removeMagazine "100Rnd_762x54_PK";
  212. _object removeMagazine "100Rnd_762x54_PK";
  213. _object removeMagazine "100Rnd_762x54_PK";
  214. _object removeMagazine "100Rnd_762x54_PK";
  215. _object removeMagazine "100Rnd_762x54_PK";
  216. _object removeMagazine "100Rnd_762x54_PK";
  217. _object removeMagazine "100Rnd_762x54_PK";
  218. };
  219. //HMMWV_Mk19 remove ammo
  220. if (_object isKindOf "HMMWV_Mk19") then {
  221. _object removeMagazine "48Rnd_40mm_MK19";
  222. _object removeMagazine "48Rnd_40mm_MK19";
  223. _object removeMagazine "48Rnd_40mm_MK19";
  224. _object removeMagazine "48Rnd_40mm_MK19";
  225. };
  226. //HMMWV_Mk19_USArmy remove ammo
  227. if (_object isKindOf "HMMWV_Mk19_USArmy") then {
  228. _object removeMagazine "48Rnd_40mm_MK19";
  229. _object removeMagazine "48Rnd_40mm_MK19";
  230. _object removeMagazine "48Rnd_40mm_MK19";
  231. _object removeMagazine "48Rnd_40mm_MK19";
  232. };
  233. //HMMWV_MK19_DES_EP1 remove ammo
  234. if (_object isKindOf "HMMWV_MK19_DES_EP1") then {
  235. _object removeMagazine "48Rnd_40mm_MK19";
  236. _object removeMagazine "48Rnd_40mm_MK19";
  237. _object removeMagazine "48Rnd_40mm_MK19";
  238. _object removeMagazine "48Rnd_40mm_MK19";
  239. };
  240. //UH60M_EP1 remove ammo
  241. if (_object isKindOf "UH60M_EP1") then {
  242. _object removeMagazine "2000Rnd_762x51_M134";
  243. _object removeMagazine "2000Rnd_762x51_M134";
  244. _object removeMagazine "2000Rnd_762x51_M134";
  245. _object removeMagazine "2000Rnd_762x51_M134";
  246. _object removeMagazine "2000Rnd_762x51_M134";
  247. _object removeMagazine "2000Rnd_762x51_M134";
  248. };
  249.  
  250. _object setVariable ["ObjectID", _oid, true];
  251.  
  252. _object setVariable ["lastUpdate",time];
  253.  
  254. _object setVariable ["CharacterID", _characterID, true];
  255.  
  256. if(DZE_TRADER_SPAWNMODE) then {
  257. _object attachTo [_object_para, [0,0,-1.6]];
  258. sleep 1.0;
  259. WaitUntil{(([_object] call FNC_GetPos) select 2) < 0.1};
  260. detach _object;
  261. deleteVehicle _object_para;
  262. };
  263.  
  264. PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];
  265.  
  266. _object call fnc_veh_ResetEH;
  267.  
  268. // for non JIP users this should make sure everyone has eventhandlers for vehicles.
  269. PVDZE_veh_Init = _object;
  270. publicVariable "PVDZE_veh_Init";
  271.  
  272. diag_log ("PUBLISH: " + str(_activatingPlayer) + " Bought " + (_class) + " with ID " + str(_uid));
  273. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement