Advertisement
Guest User

server_publishVehicle2.sqf

a guest
Aug 8th, 2014
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.         if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvBLK_overlay.jpg''];';};
  89.         if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvDRST_overlay.jpg''];';};
  90.         if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvGRY_overlay.jpg''];';};
  91.         if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvKTY_overlay.jpg''];';};
  92.         if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvLF_overlay.jpg''];';};
  93.         if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvRED_overlay.jpg''];';};
  94.         if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvUSA_overlay.jpg''];';};
  95.         if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suv_overlay.png''];';};
  96.  
  97.  
  98.  
  99.     if(!_donotusekey) then {
  100.         // Lock vehicle
  101.         _object setvehiclelock "locked";
  102.         _object setVariable ["R3F_LOG_disabled",true,true];
  103.     };
  104.  
  105.     clearWeaponCargoGlobal  _object;
  106.     clearMagazineCargoGlobal  _object;
  107.     // _object setVehicleAmmo DZE_vehicleAmmo;
  108.  
  109.     _object setVariable ["ObjectID", _oid, true];
  110.    
  111.     _object setVariable ["lastUpdate",time];
  112.    
  113.     _object setVariable ["CharacterID", _characterID, true];
  114.  
  115.     if(DZE_TRADER_SPAWNMODE) then {
  116.         _object attachTo [_object_para, [0,0,-1.6]];
  117.         sleep 1.0;
  118.         WaitUntil{(([_object] call FNC_GetPos) select 2) < 0.1};
  119.         detach _object;
  120.         deleteVehicle _object_para;
  121.     };
  122.  
  123.     PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];
  124.  
  125.     _object call fnc_veh_ResetEH;
  126.    
  127.     // for non JIP users this should make sure everyone has eventhandlers for vehicles.
  128.     PVDZE_veh_Init = _object;
  129.     publicVariable "PVDZE_veh_Init";
  130.     processInitCommands;
  131.    
  132.     diag_log ("PUBLISH: " + str(_activatingPlayer) + " Bought " + (_class) + " with ID " + str(_uid));
  133. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement