SHOW:
         |
         |
         - or go back to the newest paste.    
    | 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 | };  |