Brockie Posted August 4, 2014 Report Share Posted August 4, 2014 This is How-to reskin/retexture vehicles. I do not take credit for any of the script. I just made a how-to because a few people asked for it. For advanced user: This was created after a lot of searching and at least 100 different ways of trial and error. It's unbelievably simple and I'm sure someone has posted this before but I hope it helps. Features: No noticeable server startup lag. Easy to install. Works on the fly for purchased vehicles. Works for dynamic vehicles. Works on server restarts. Tested with 7 custom vehicle skins setup on traders and dynamic, worked flawlessly and tested restarts too. Credits [VB]AWOL whose postethe proper way to do this. [VB]AWOL + Epoch Dev Team and EpochMod.com community for sharing awesome mods. Requirements Custom texture files that are known to work. Ability to edit sqf files PBO Manager Notepad++ Installation Step 1. Get some custom textures and put them in your mission folder somewhere. Write down the folder structure for future use. For my example textures are in the custom folder in my mission file. Step 2. Unpack your dayz_server pbo Step 3. open these three files: server_publishVehicle2.sqf, server_publishVehicle3.sqf, and server_monitor.sqf Step 4. In your server_monitor.sqf find this: _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then { And ABOVE it put this if (_type == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\SUV.jpg''];';}; Change the Vehicle Classname and the texture pathing for your texture and vehicle. Keep adding more lines like this for each texture that you need. Step 5. Again in your server_monitor.sqf find this: // # END SPAWN OBJECTS # And below it put this: processInitCommands; Step 6. In server_publishVehicle2.sqf find this: } else { _object = createVehicle [_class, _location, [], 0, "CAN_COLLIDE"]; }; And BELOW it put this: if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\SUV.jpg''];';}; Notice the only difference is _class instead of _type. Again keep adding more lines like this for each texture that you need. Step 7. This Step is for BOTH: server_publishVehicle2.sqf AND server_publishVehicle3.sqf find this: publicVariable "PVDZE_veh_Init"; And BELOW it put this: processInitCommands; Step 8. Now in server_publishVehicle3.sqf find this: //Add weapons _objWpnTypes = _weapons select 0; _objWpnQty = _weapons select 1; And ABOVE it put this: if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\SUV.jpg''];';}; It's the same line from server_publishVehicle2.sqf with _class instead of _type. again repeat more lines exactly like this for more textures. Step 9. Save Changes and Repack PBO Congrats your done! Note: This could also be done by creating a function and then calling the function from each file, i think.... but I prefer to do it this way. ispan55, 31_D!4b10, Saltzman and 3 others 6 Link to comment Share on other sites More sharing options...
Brockie Posted August 4, 2014 Author Report Share Posted August 4, 2014 Sniped link per report, BTW, This is not anything new I just helped someone on our Teamspeak the other day with the same exact functions.https://community.bistudio.com/wiki/setObjectTexture combined with:https://community.bistudio.com/wiki/setVehicleInit and https://community.bistudio.com/wiki/processInitCommands Will give you JIP compatible texture replacements if the vehicle is setup for it. Add this on line https://github.com/vbawol/DayZ-Epoch/blob/master/SQF/dayz_server/system/server_monitor.sqf#L126 change the ANYCLASS to your vehicle class and the texture path to that of a paa file in your mission pbo. if (_type == "ANYCLASS") then {_object setVehicleInit "this setObjectTexture [0, "\pboname\texture.paa"];"}; Also add processInitCommands;here: https://github.com/vbawol/DayZ-Epoch/blob/master/SQF/dayz_server/system/server_monitor.sqf#L261 Link to comment Share on other sites More sharing options...
mark88 Posted August 4, 2014 Report Share Posted August 4, 2014 Very sweet Brockie! You can use the pic from my noobie tread if you want beginners to understand what they can establish with this :) Thanks again! Link to comment Share on other sites More sharing options...
calamity Posted August 4, 2014 Report Share Posted August 4, 2014 I had this for awhile but was never able to get more than one custom texture. could you give sample code for 2 or more custom textures ? Link to comment Share on other sites More sharing options...
mark88 Posted August 4, 2014 Report Share Posted August 4, 2014 I had this for awhile but was never able to get more than one custom texture. could you give sample code for 2 or more custom textures ? Excuse me for the harsh tone good sir, but these extends are nothing compared to the basics of this script. Link to comment Share on other sites More sharing options...
Brockie Posted August 4, 2014 Author Report Share Posted August 4, 2014 Examples of having multiple textures.. Server monitor: if (_type == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\SUV.jpg''];';}; if (_type == "ATV_US_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\ATV.jpg''];';}; publish vehiles: if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\SUV.jpg''];';}; if (_class == "ATV_US_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\ATV.jpg''];';}; Enjoy :D Link to comment Share on other sites More sharing options...
calamity Posted August 4, 2014 Report Share Posted August 4, 2014 I was trying 2 this way switch (_type) do { case "SUV_pink": {_object setVehicleInit "this setObjectTexture [0, ""custom\skins\skin1.jpg""]"; processInitCommands;}; case "SUV_orange": {_object setVehicleInit "this setObjectTexture [0, ""custom\skins\skin2.jpg""]"; processInitCommands;}; Thankz alot for your help Link to comment Share on other sites More sharing options...
Brockie Posted August 4, 2014 Author Report Share Posted August 4, 2014 Put processInitCommands once only in each file near the bottom as shown in the first post Step 5 and Step 7 Link to comment Share on other sites More sharing options...
DimitriPokki Posted August 5, 2014 Report Share Posted August 5, 2014 Don't work , pleas help My server_monitor http://pastebin.com/nG7Lse90server_publishVehicle2.sqf http://pastebin.com/W1FL5knBserver_publishVehicle3.sqf http://pastebin.com/8Zh8cs9G Link to comment Share on other sites More sharing options...
mark88 Posted August 5, 2014 Report Share Posted August 5, 2014 Don't work , pleas help My server_monitor http://pastebin.com/nG7Lse90server_publishVehicle2.sqf http://pastebin.com/W1FL5knBserver_publishVehicle3.sqf http://pastebin.com/8Zh8cs9G YOU DID: _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then { if (_type == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suv.jpg''];';}; if (_type == "SUV_Camo") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suv1.jpg''];';}; if (_type == "ArmoredSUV_PMC_DZE") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suv2.jpg''];';}; What Brockie told you to do: Step 4. In your server_monitor.sqf find this: _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then { And ABOVE it put this if (_type == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\SUV.jpg''];';}; If you cant figure this, take a few steps backwards and come back with the requested (minor) understanding to implement this ;) DimitriPokki 1 Link to comment Share on other sites More sharing options...
DimitriPokki Posted August 6, 2014 Report Share Posted August 6, 2014 YOU DID: _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then { if (_type == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suv.jpg''];';}; if (_type == "SUV_Camo") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suv1.jpg''];';}; if (_type == "ArmoredSUV_PMC_DZE") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suv2.jpg''];';}; What Brockie told you to do: Step 4. In your server_monitor.sqf find this: _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then { And ABOVE it put this if (_type == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\SUV.jpg''];';}; If you cant figure this, take a few steps backwards and come back with the requested (minor) understanding to implement this ;) thanks my problem solved and reskin work Link to comment Share on other sites More sharing options...
mark88 Posted August 6, 2014 Report Share Posted August 6, 2014 @Brockie I wonder if you can retexture other objects almost similar like vehiles, such as Clothings/Buildables. Gave it a shot with epoch cinder walls, didnt work (i thought they get handled like vehicles). Edit: This probably has do be done in server_publishObject.sqf, also with processInitCommands; Im just a little stucked if i "can" or "should" use setObjectInit (found "some" arma references for it) or rather setVehicleInit ... Link to comment Share on other sites More sharing options...
Brockie Posted August 7, 2014 Author Report Share Posted August 7, 2014 good question. technically everything in arma is a vehicle, so I would start with that. if it didnt work then I would try using object. Getting this to work took for me took a long time of searching and trial and error. Unfortunately, at the moment I'm pressed on time but maybe later I might be interested in trying this later. Link to comment Share on other sites More sharing options...
mark88 Posted August 7, 2014 Report Share Posted August 7, 2014 Dont stress about it, i thought it might just looks more fresh if we could replace the wall/floor textures with more sexy ones :) Then there would be a way to paint them as users desire ... Features which should have been there since the beginning of epoch :D It really is awesome what this community can establish. If this works out then im gonna add a scroll menu to paint walls for some gold. Or maybe just to "upgrade them to final stage", so they look like real walls, not those unfinished grey cubes and towers anywhere. I believe i can use the maintain variables that for .. since buildings on my server are always permanent and indestructible ... Link to comment Share on other sites More sharing options...
diester Posted August 7, 2014 Report Share Posted August 7, 2014 Hello I finally found you thanks to a custom script that works really well. By cons I test on a single origins epoch and the epoch vehicle running the vehicle origins it does not work anyone know how to reason? Link to comment Share on other sites More sharing options...
2sugars Posted August 8, 2014 Report Share Posted August 8, 2014 Skins can be done too Link to comment Share on other sites More sharing options...
Rusty Posted August 8, 2014 Report Share Posted August 8, 2014 Hello, I believe everything is correct. However I cannot get them to load. dayz_server\system\server_monitor.sqf http://pastebin.com/yPRRHMDb dayz_server\compile\server_publishVehicle2 http://pastebin.com/um1p6kVp dayz_server\compile\server_publishVehicle3 http://pastebin.com/b45QQtbU when I spawn the SUV_TK_CIV_EP1 I just get the standard SUV. I realized that I derped and assigned all textures to the same vehicle class. Would this be the cause? Or should something still load? I am using the textures from your referrer In his RAR file is a PNG amongst the jpg's. I am not certain if that one should be excluded. Also - The images - do they go into the dayz_server/custom folder - or the MPMissions/Dayz_epoch11.Chernarus/custom ? Any help is appreciated. Thank you so much for your time - I realize it must have been a bit of work to create this mod, so much appreciated ! Link to comment Share on other sites More sharing options...
mark88 Posted August 8, 2014 Report Share Posted August 8, 2014 Armored SUV does not work with this. And yes. if you pull in multiple skins for one class, it will break. You are one genius arnt you? would you take a minute to figure yourself, instead you prepare a question post which costs you at least 5 minutes. @2sugars Nice one, but seems a little dirty on edges. Do you use custom player skins in your profile folder? Link to comment Share on other sites More sharing options...
2sugars Posted August 8, 2014 Report Share Posted August 8, 2014 @2sugars Nice one, but seems a little dirty on edges. Do you use custom player skins in your profile folder? I don't use custom skins but the fella that posted the above pic is http://epochmod.com/forum/index.php?/user/2806-sukkaed/ you could try asking him how it was done. Link to comment Share on other sites More sharing options...
Rusty Posted August 8, 2014 Report Share Posted August 8, 2014 Armored SUV does not work with this. And yes. if you pull in multiple skins for one class, it will break. You are one genius arnt you? would you take a minute to figure yourself, instead you prepare a question post which costs you at least 5 minutes. Thank you Mark, - I like to be well documented. The reason why I spent 5 minutes to prepare the post was for two reasons. One : To verify if in fact having the same classnames would break it. Two : If it didn't Was there something else wrong. Third - I cannot start / stop my server when it's full to test it. And lastly - to get some input on the textures I was using. The jpg's and PNG. Do they go into the dayz_server/custom folder - or the MPMissions/Dayz_epoch11.Chernarus/custom ? Thank you for the mod Brockie !! Link to comment Share on other sites More sharing options...
Rusty Posted August 8, 2014 Report Share Posted August 8, 2014 I do it on the fly, I set the texture of the vehicle using cursorTarget Oh nice. You wouldn't have a link to a quick tutorial on that. Also is it a permanent set, or just temp? Link to comment Share on other sites More sharing options...
Rusty Posted August 8, 2014 Report Share Posted August 8, 2014 That would be fantastic Bow. I really appreciate the offer. Link to comment Share on other sites More sharing options...
Rusty Posted August 9, 2014 Report Share Posted August 9, 2014 I'll install the paa plugin into photoshop and give it a go. So basically I use either one or the other scripts you posted and put whichever one I want to use into "admin_start.sqf" From there - execute it through ALT+F11 in Infistar ( after logging in via #login mypassword ) What happens from here? If you are making it a permanent change, would it be easy for you to add in a selection, so I can choose which one of my textures to apply? Thanks for the script and all your help. Much appreciated ! Link to comment Share on other sites More sharing options...
sparrow8332 Posted August 10, 2014 Report Share Posted August 10, 2014 server_monitor.sqf private ["_nul","_result","_pos","_wsDone","_dir","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_intentory","_hitPoints","_fuel","_damage","_key","_vehLimit","_hiveResponse","_objectCount","_codeCount","_data","_status","_val","_traderid","_retrader","_traderData","_id","_lockable","_debugMarkerPosition","_vehicle_0","_bQty","_vQty","_BuildingQueue","_objectQueue","_superkey","_shutdown","_res","_hiveLoaded"]; dayz_versionNo = getText(configFile >> "CfgMods" >> "DayZ" >> "version"); dayz_hiveVersionNo = getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion"); _hiveLoaded = false; waitUntil{initialized}; //means all the functions are now defined diag_log "HIVE: Starting"; waituntil{isNil "sm_done"}; // prevent server_monitor be called twice (bug during login of the first player) // Custom Configs if(isnil "MaxVehicleLimit") then { MaxVehicleLimit = 50; }; if(isnil "MaxDynamicDebris") then { MaxDynamicDebris = 100; }; if(isnil "MaxAmmoBoxes") then { MaxAmmoBoxes = 3; }; if(isnil "MaxMineVeins") then { MaxMineVeins = 50; }; // Custon Configs End if (isServer && isNil "sm_done") then { serverVehicleCounter = []; _hiveResponse = []; for "_i" from 1 to 5 do { diag_log "HIVE: trying to get objects"; _key = format["CHILD:302:%1:", dayZ_instance]; _hiveResponse = _key call server_hiveReadWrite; if ((((isnil "_hiveResponse") || {(typeName _hiveResponse != "ARRAY")}) || {((typeName (_hiveResponse select 1)) != "SCALAR")})) then { if ((_hiveResponse select 1) == "Instance already initialized") then { _superkey = profileNamespace getVariable "SUPERKEY"; _shutdown = format["CHILD:400:%1:", _superkey]; _res = _shutdown call server_hiveReadWrite; diag_log ("HIVE: attempt to kill.. HiveExt response:"+str(_res)); } else { diag_log ("HIVE: connection problem... HiveExt response:"+str(_hiveResponse)); }; _hiveResponse = ["",0]; } else { diag_log ("HIVE: found "+str(_hiveResponse select 1)+" objects" ); _i = 99; // break }; }; _BuildingQueue = []; _objectQueue = []; if ((_hiveResponse select 0) == "ObjectStreamStart") then { // save superkey profileNamespace setVariable ["SUPERKEY",(_hiveResponse select 2)]; _hiveLoaded = true; diag_log ("HIVE: Commence Object Streaming..."); _key = format["CHILD:302:%1:", dayZ_instance]; _objectCount = _hiveResponse select 1; _bQty = 0; _vQty = 0; for "_i" from 1 to _objectCount do { _hiveResponse = _key call server_hiveReadWriteLarge; //diag_log (format["HIVE dbg %1 %2", typeName _hiveResponse, _hiveResponse]); if ((_hiveResponse select 2) isKindOf "ModularItems") then { _BuildingQueue set [_bQty,_hiveResponse]; _bQty = _bQty + 1; } else { _objectQueue set [_vQty,_hiveResponse]; _vQty = _vQty + 1; }; }; diag_log ("HIVE: got " + str(_bQty) + " Epoch Objects and " + str(_vQty) + " Vehicles"); }; // # NOW SPAWN OBJECTS # _totalvehicles = 0; { _idKey = _x select 1; _type = _x select 2; _ownerID = _x select 3; _worldspace = _x select 4; _intentory = _x select 5; _hitPoints = _x select 6; _fuel = _x select 7; _damage = _x select 8; _dir = 0; _pos = [0,0,0]; _wsDone = false; if (count _worldspace >= 2) then { _dir = _worldspace select 0; if (count (_worldspace select 1) == 3) then { _pos = _worldspace select 1; _wsDone = true; } }; if (!_wsDone) then { if (count _worldspace >= 1) then { _dir = _worldspace select 0; }; _pos = [getMarkerPos "center",0,4000,10,0,2000,0] call BIS_fnc_findSafePos; if (count _pos < 3) then { _pos = [_pos select 0,_pos select 1,0]; }; diag_log ("MOVED OBJ: " + str(_idKey) + " of class " + _type + " to pos: " + str(_pos)); }; _vector = [[0,0,0],[0,0,0]]; _vecExists = false; _ownerPUID = "0"; if (count _worldspace >= 3) then{ if(count _worldspace == 3) then{ if(typename (_worldspace select 2) == "STRING")then{ _ownerPUID = _worldspace select 2; }else{ if(typename (_worldspace select 2) == "ARRAY")then{ _vector = _worldspace select 2; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{ _vecExists = true; }; }; }; }; }else{ //Was not 3 elements, so check if 4 or more if(count _worldspace == 4) then{ if(typename (_worldspace select 2) == "STRING")then{ _ownerPUID = _worldspace select 2; }; if(typename (_worldspace select 3) == "ARRAY")then{ _vector = _worldspace select 3; if(count _vector == 2)then{ if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{ _vecExists = true; }; }; }; }else{ //More than 3 or 4 elements found //Might add a search for the vector, ownerPUID will equal 0 }; }; }; // diag_log format["Server_monitor: [ObjectID = %1] [ClassID = %2] [_ownerPUID = %3]", _idKey, _type, _ownerPUID]; if (_damage < 1) then { //diag_log format["OBJ: %1 - %2", _idKey,_type]; //Create it _object = createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"]; _object setVariable ["lastUpdate",time]; _object setVariable ["ObjectID", _idKey, true]; _object setVariable ["OwnerPUID", _ownerPUID, true]; if (_type == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvUSA_overlay.jpg''];';}; _lockable = 0; if(isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then { _lockable = getNumber(configFile >> "CfgVehicles" >> _type >> "lockable"); }; // fix for leading zero issues on safe codes after restart if (_lockable == 4) then { _codeCount = (count (toArray _ownerID)); if(_codeCount == 3) then { _ownerID = format["0%1", _ownerID]; }; if(_codeCount == 2) then { _ownerID = format["00%1", _ownerID]; }; if(_codeCount == 1) then { _ownerID = format["000%1", _ownerID]; }; }; if (_lockable == 3) then { _codeCount = (count (toArray _ownerID)); if(_codeCount == 2) then { _ownerID = format["0%1", _ownerID]; }; if(_codeCount == 1) then { _ownerID = format["00%1", _ownerID]; }; }; _object setVariable ["CharacterID", _ownerID, true]; clearWeaponCargoGlobal _object; clearMagazineCargoGlobal _object; // _object setVehicleAmmo DZE_vehicleAmmo; _object setdir _dir; if(_vecExists)then{ _object setVectorDirAndUp _vector; }; _object setposATL _pos; _object setDamage _damage; if ((typeOf _object) in dayz_allowedObjects) then { if (DZE_GodModeBase) then { _object addEventHandler ["HandleDamage", {false}]; } else { _object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}]; }; // Test disabling simulation server side on buildables only. _object enableSimulation false; // used for inplace upgrades && lock/unlock of safe _object setVariable ["OEMPos", _pos, true]; }; if (count _intentory > 0) then { if (_type in DZE_LockedStorage) then { // Fill variables with loot _object setVariable ["WeaponCargo", (_intentory select 0),true]; _object setVariable ["MagazineCargo", (_intentory select 1),true]; _object setVariable ["BackpackCargo", (_intentory select 2),true]; } else { //Add weapons _objWpnTypes = (_intentory select 0) select 0; _objWpnQty = (_intentory select 0) select 1; _countr = 0; { if(_x in (DZE_REPLACE_WEAPONS select 0)) then { _x = (DZE_REPLACE_WEAPONS select 1) select ((DZE_REPLACE_WEAPONS select 0) find _x); }; _isOK = isClass(configFile >> "CfgWeapons" >> _x); if (_isOK) then { _object addWeaponCargoGlobal [_x,(_objWpnQty select _countr)]; }; _countr = _countr + 1; } count _objWpnTypes; //Add Magazines _objWpnTypes = (_intentory select 1) select 0; _objWpnQty = (_intentory select 1) select 1; _countr = 0; { if (_x == "BoltSteel") then { _x = "WoodenArrow" }; // Convert BoltSteel to WoodenArrow if (_x == "ItemTent") then { _x = "ItemTentOld" }; _isOK = isClass(configFile >> "CfgMagazines" >> _x); if (_isOK) then { _object addMagazineCargoGlobal [_x,(_objWpnQty select _countr)]; }; _countr = _countr + 1; } count _objWpnTypes; //Add Backpacks _objWpnTypes = (_intentory select 2) select 0; _objWpnQty = (_intentory select 2) select 1; _countr = 0; { _isOK = isClass(configFile >> "CfgVehicles" >> _x); if (_isOK) then { _object addBackpackCargoGlobal [_x,(_objWpnQty select _countr)]; }; _countr = _countr + 1; } count _objWpnTypes; }; }; if (_object isKindOf "AllVehicles") then { { _selection = _x select 0; _dam = _x select 1; if (_selection in dayZ_explosiveParts && _dam > 0.8) then {_dam = 0.8}; [_object,_selection,_dam] call object_setFixServer; } count _hitpoints; _object setFuel _fuel; if (!((typeOf _object) in dayz_allowedObjects)) then { //_object setvelocity [0,0,1]; _object call fnc_veh_ResetEH; if(_ownerID != "0" && !(_object isKindOf "Bicycle")) then { _object setvehiclelock "locked"; }; _totalvehicles = _totalvehicles + 1; // total each vehicle serverVehicleCounter set [count serverVehicleCounter,_type]; }; }; //Monitor the object PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; }; } count (_BuildingQueue + _objectQueue); // # END SPAWN OBJECTS # processInitCommands; // preload server traders menu data into cache if !(DZE_ConfigTrader) then { { // get tids _traderData = call compile format["menu_%1;",_x]; if(!isNil "_traderData") then { { _traderid = _x select 1; _retrader = []; _key = format["CHILD:399:%1:",_traderid]; _data = "HiveEXT" callExtension _key; //diag_log "HIVE: Request sent"; //Process result _result = call compile format ["%1",_data]; _status = _result select 0; if (_status == "ObjectStreamStart") then { _val = _result select 1; //Stream Objects //diag_log ("HIVE: Commence Menu Streaming..."); call compile format["ServerTcache_%1 = [];",_traderid]; for "_i" from 1 to _val do { _data = "HiveEXT" callExtension _key; _result = call compile format ["%1",_data]; call compile format["ServerTcache_%1 set [count ServerTcache_%1,%2]",_traderid,_result]; _retrader set [count _retrader,_result]; }; //diag_log ("HIVE: Streamed " + str(_val) + " objects"); }; } forEach (_traderData select 0); }; } forEach serverTraders; }; if (_hiveLoaded) then { // spawn_vehicles _vehLimit = MaxVehicleLimit - _totalvehicles; if(_vehLimit > 0) then { diag_log ("HIVE: Spawning # of Vehicles: " + str(_vehLimit)); for "_x" from 1 to _vehLimit do { [] spawn spawn_vehicles; }; } else { diag_log "HIVE: Vehicle Spawn limit reached!"; }; }; // spawn_roadblocks diag_log ("HIVE: Spawning # of Debris: " + str(MaxDynamicDebris)); for "_x" from 1 to MaxDynamicDebris do { [] spawn spawn_roadblocks; }; // spawn_ammosupply at server start 1% of roadblocks diag_log ("HIVE: Spawning # of Ammo Boxes: " + str(MaxAmmoBoxes)); for "_x" from 1 to MaxAmmoBoxes do { [] spawn spawn_ammosupply; }; // call spawning mining veins diag_log ("HIVE: Spawning # of Veins: " + str(MaxMineVeins)); for "_x" from 1 to MaxMineVeins do { [] spawn spawn_mineveins; }; if(isnil "dayz_MapArea") then { dayz_MapArea = 10000; }; if(isnil "HeliCrashArea") then { HeliCrashArea = dayz_MapArea / 2; }; if(isnil "OldHeliCrash") then { OldHeliCrash = false; }; // [_guaranteedLoot, _randomizedLoot, _frequency, _variance, _spawnChance, _spawnMarker, _spawnRadius, _spawnFire, _fadeFire] if(OldHeliCrash) then { _nul = [3, 4, (50 * 60), (15 * 60), 0.75, 'center', HeliCrashArea, true, false] spawn server_spawnCrashSite; }; if (isDedicated) then { // Epoch Events _id = [] spawn server_spawnEvents; // server cleanup [] spawn { private ["_id"]; sleep 200; //Sleep Lootcleanup, don't need directly cleanup on startup + fix some performance issues on serverstart waitUntil {!isNil "server_spawnCleanAnimals"}; _id = [] execFSM "\z\addons\dayz_server\system\server_cleanup.fsm"; }; // spawn debug box _debugMarkerPosition = getMarkerPos "respawn_west"; _debugMarkerPosition = [(_debugMarkerPosition select 0),(_debugMarkerPosition select 1),1]; _vehicle_0 = createVehicle ["DebugBox_DZ", _debugMarkerPosition, [], 0, "CAN_COLLIDE"]; _vehicle_0 setPos _debugMarkerPosition; _vehicle_0 setVariable ["ObjectID","1",true]; // max number of spawn markers if(isnil "spawnMarkerCount") then { spawnMarkerCount = 10; }; actualSpawnMarkerCount = 0; // count valid spawn marker positions for "_i" from 0 to spawnMarkerCount do { if (!([(getMarkerPos format["spawn%1", _i]), [0,0,0]] call BIS_fnc_areEqual)) then { actualSpawnMarkerCount = actualSpawnMarkerCount + 1; } else { // exit since we did not find any further markers _i = spawnMarkerCount + 99; }; }; diag_log format["Total Number of spawn locations %1", actualSpawnMarkerCount]; endLoadingScreen; }; [] ExecVM "\z\addons\dayz_server\WAI\init.sqf"; allowConnection = true; sm_done = true; publicVariable "sm_done"; }; server_publishVehicle2.sqf private ["_activatingPlayer","_isOK","_object","_worldspace","_location","_dir","_class","_uid","_key","_keySelected","_characterID","_donotusekey"]; //PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer]; _object = _this select 0; _worldspace = _this select 1; _class = _this select 2; _donotusekey = _this select 3; _keySelected = _this select 4; _activatingPlayer = _this select 5; if(_donotusekey) then { _isOK = true; } else { _isOK = isClass(configFile >> "CfgWeapons" >> _keySelected); }; if(!_isOK) exitWith { diag_log ("HIVE: CARKEY DOES NOT EXIST: "+ str(_keySelected)); }; if(_donotusekey) then { _characterID = _keySelected; } else { _characterID = str(getNumber(configFile >> "CfgWeapons" >> _keySelected >> "keyid")); }; diag_log ("PUBLISH: Attempt " + str(_object)); _dir = _worldspace select 0; _location = _worldspace select 1; //Generate UID test using time _uid = _worldspace call dayz_objectUID3; // TODO: check if uid already exists && if so increment by 1 && check again as soon as we find nothing continue. //Send request _key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _characterID, _worldspace, [], [], 1,_uid]; diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; // Switched to spawn so we can wait a bit for the ID [_object,_uid,_characterID,_class,_dir,_location,_donotusekey,_activatingPlayer] spawn { private ["_object","_uid","_characterID","_done","_retry","_key","_result","_outcome","_oid","_class","_location","_object_para","_donotusekey","_activatingPlayer"]; _object = _this select 0; _uid = _this select 1; _characterID = _this select 2; _class = _this select 3; //_dir = _this select 4; _location = _this select 5; _donotusekey = _this select 6; _activatingPlayer = _this select 7; _done = false; _retry = 0; // TODO: Needs major overhaul for 1.1 while {_retry < 10} do { sleep 1; // GET DB ID _key = format["CHILD:388:%1:",_uid]; diag_log ("HIVE: WRITE: "+ str(_key)); _result = _key call server_hiveReadWrite; _outcome = _result select 0; if (_outcome == "PASS") then { _oid = _result select 1; //_object setVariable ["ObjectID", _oid, true]; diag_log("CUSTOM: Selected " + str(_oid)); _done = true; _retry = 100; } else { diag_log("CUSTOM: trying again to get id for: " + str(_uid)); _done = false; _retry = _retry + 1; }; }; // Remove marker deleteVehicle _object; if(!_done) exitWith { diag_log("CUSTOM: failed to get id for : " + str(_uid)); }; if(DZE_TRADER_SPAWNMODE) then { _object_para = createVehicle ["ParachuteMediumWest", [0,0,0], [], 0, "CAN_COLLIDE"]; _object_para setPos [_location select 0, _location select 1,(_location select 2) + 65]; _object = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"]; } else { _object = createVehicle [_class, _location, [], 0, "CAN_COLLIDE"]; }; if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvUSA_overlay.jpg''];';}; if(!_donotusekey) then { // Lock vehicle _object setvehiclelock "locked"; }; //Remove Weapon by SiothieGaming start call fnc_remWepSG; //Remove Weapon by SiothieGaming end clearWeaponCargoGlobal _object; clearMagazineCargoGlobal _object; // _object setVehicleAmmo DZE_vehicleAmmo; _object setVariable ["ObjectID", _oid, true]; _object setVariable ["lastUpdate",time]; _object setVariable ["CharacterID", _characterID, true]; if(DZE_TRADER_SPAWNMODE) then { _object attachTo [_object_para, [0,0,-1.6]]; sleep 1.0; WaitUntil{(([_object] call FNC_GetPos) select 2) < 0.1}; detach _object; deleteVehicle _object_para; }; PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; _object call fnc_veh_ResetEH; // for non JIP users this should make sure everyone has eventhandlers for vehicles. PVDZE_veh_Init = _object; publicVariable "PVDZE_veh_Init"; processInitCommands; diag_log ("PUBLISH: " + str(_activatingPlayer) + " Bought " + (_class) + " with ID " + str(_uid)); }; server_publishVehicle3.sqf private ["_activatingPlayer","_isOK","_object","_worldspace","_location","_dir","_class","_uid","_key","_keySelected","_characterID","_donotusekey"]; //PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer]; _object = _this select 0; _worldspace = _this select 1; _class = _this select 2; _donotusekey = _this select 3; _keySelected = _this select 4; _activatingPlayer = _this select 5; _characterID = _keySelected; _isOK = isClass(configFile >> "CfgVehicles" >> _class); if(!_isOK || isNull _object) exitWith { diag_log ("HIVE-pv3: Vehicle does not exist: "+ str(_class)); }; diag_log ("PUBLISH: Attempt " + str(_object)); _dir = _worldspace select 0; _location = _worldspace select 1; //Generate UID test using time _uid = _worldspace call dayz_objectUID3; //Send request _key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _characterID, _worldspace, [], [], 1,_uid]; diag_log ("HIVE: WRITE: "+ str(_key)); _key call server_hiveWrite; // Switched to spawn so we can wait a bit for the ID [_object,_uid,_characterID,_class,_dir,_location,_donotusekey,_activatingPlayer] spawn { private ["_object","_uid","_characterID","_done","_retry","_key","_result","_outcome","_oid","_class","_location","_donotusekey","_activatingPlayer","_countr","_objectID","_objectUID","_dir","_newobject","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty"]; _object = _this select 0; _objectID = _object getVariable ["ObjectID","0"]; _objectUID = _object getVariable ["ObjectUID","0"]; _uid = _this select 1; _characterID = _this select 2; _class = _this select 3; _dir = _this select 4; // _location = _this select 5; _location = getPosATL _object; _donotusekey = _this select 6; _activatingPlayer = _this select 7; _done = false; _retry = 0; // TODO: Needs major overhaul for 1.1 while {_retry < 10} do { sleep 1; // GET DB ID _key = format["CHILD:388:%1:",_uid]; diag_log ("HIVE: WRITE: "+ str(_key)); _result = _key call server_hiveReadWrite; _outcome = _result select 0; if (_outcome == "PASS") then { _oid = _result select 1; //_object setVariable ["ObjectID", _oid, true]; diag_log("CUSTOM: Selected " + str(_oid)); _done = true; _retry = 100; } else { diag_log("CUSTOM: trying again to get id for: " + str(_uid)); _done = false; _retry = _retry + 1; }; }; if(!_done) exitWith { diag_log("CUSTOM: failed to get id for : " + str(_uid)); }; // add items from previous vehicle here _weapons = getWeaponCargo _object; _magazines = getMagazineCargo _object; _backpacks = getBackpackCargo _object; //Remove Weapon by SiothieGaming start call fnc_remWepSG; //Remove Weapon by SiothieGaming end clearWeaponCargoGlobal _object; clearMagazineCargoGlobal _object; clearBackpackCargoGlobal _object; // Remove marker deleteVehicle _object; _newobject = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"]; // remove old vehicle from DB [_objectID,_objectUID,_activatingPlayer] call server_deleteObj; // switch var to new vehicle at this point. _object = _newobject; _object setDir _dir; _object setPosATL _location; if (_class == "SUV_TK_CIV_EP1") then {_object setVehicleInit 'this setObjectTexture [0, ''custom\suvUSA_overlay.jpg''];';}; //Add weapons _objWpnTypes = _weapons select 0; _objWpnQty = _weapons select 1; _countr = 0; { _object addWeaponCargoGlobal [_x,(_objWpnQty select _countr)]; _countr = _countr + 1; } count _objWpnTypes; //Add Magazines _objWpnTypes = _magazines select 0; _objWpnQty = _magazines select 1; _countr = 0; { _object addMagazineCargoGlobal [_x,(_objWpnQty select _countr)]; _countr = _countr + 1; } count _objWpnTypes; //Add Backpacks _objWpnTypes = _backpacks select 0; _objWpnQty = _backpacks select 1; _countr = 0; { _object addBackpackCargoGlobal [_x,(_objWpnQty select _countr)]; _countr = _countr + 1; } count _objWpnTypes; _object setVariable ["ObjectID", _oid, true]; _object setVariable ["lastUpdate",time]; _object setVariable ["CharacterID", _characterID, true]; PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; _object call fnc_veh_ResetEH; // for non JIP users this should make sure everyone has eventhandlers for vehicles. PVDZE_veh_Init = _object; publicVariable "PVDZE_veh_Init"; processInitCommands; diag_log ("PUBLISH: " + str(_activatingPlayer) + " Upgraded " + (_class) + " with ID " + str(_uid)); }; The SUV just refuses to have its new texture :-( i spawn in the classname and it has its stock skin. my skin is placed in mission file root dir in custom folder named custom :-p Please could someone help me with this .. Thanks in advance Link to comment Share on other sites More sharing options...
2sugars Posted August 10, 2014 Report Share Posted August 10, 2014 Are you spawning it in via antihack admin or buying through traders? & is your image 1024 by 1024 pixels? Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now