[SG]Santeri Posted December 18, 2014 Share Posted December 18, 2014 I want ''backupAllVehz'' and ''automat'' function to work automaticly with a timer every 5 sec. I want ''loadd'' and ''loadAllVehs'' functions do when resource starts. Any help? This script saves and loads DayZ tents and vehicles. They work but they have a command on them, i want remove command and place timer and to loadd and loadAllVehs i want it to load the vehicles/tents on resource start. Thanks Code (backupAllVehz function - vehicle save): function backupAllVehz(thePlayer) if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup("Save")) then if fileExists("vehicles.xml") then fileDelete('vehicles.xml') end local vehFile = xmlCreateFile("vehicles.xml", "vehs") if not vehFile then outputChatBox("Saving of vehicles failed.", root, 255, 0, 0, 0) return end local count = 0 local vehicles = getElementsByType("vehicle") outputChatBox("Saving of vehicles was initiated!", root, 255, 155, 0) for i,v in ipairs(vehicles) do local currentVeh = xmlCreateChild (vehFile, "veh") local vehicleModel = getElementModel(v) local vehicleX, vehicleY, vehicleZ = getElementPosition(v) local rotX, rotY, rotZ = getElementRotation(v) xmlNodeSetAttribute (currentVeh, "model", vehicleModel) xmlNodeSetAttribute (currentVeh, "x", vehicleX) xmlNodeSetAttribute (currentVeh, "y", vehicleY) xmlNodeSetAttribute (currentVeh, "z", vehicleZ) xmlNodeSetAttribute (currentVeh, "rotx", rotX) xmlNodeSetAttribute (currentVeh, "roty", rotY) xmlNodeSetAttribute (currentVeh, "rotz", rotZ) end xmlSaveFile (vehFile) xmlUnloadFile (vehFile) outputChatBox("Vehicles saved! ("..#vehicles..")!", root, 255, 155, 0) end end addCommandHandler("save", backupAllVehz) Code (loadAllVehs function - load vehicles): function loadAllVehs(thePlayer) if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup("Save")) then local vehFile = xmlLoadFile ("vehicles.xml") if (vehFile) then local veh = xmlNodeGetChildren(vehFile) outputChatBox("Loading of vehicles was initiated!", root, 0, 100, 255) for i,v in ipairs (veh) do local model = xmlNodeGetAttribute (v, "model") local x = xmlNodeGetAttribute (v, "x") local y = xmlNodeGetAttribute (v, "y") local z = xmlNodeGetAttribute (v, "z") local rotx = xmlNodeGetAttribute (v, "rotx") local roty = xmlNodeGetAttribute (v, "roty") local rotz = xmlNodeGetAttribute (v, "rotz") local veh = createVehicle(model, x, y, z) vehCol = createColSphere(x, y, z, 2) attachElements(vehCol, veh, 0, 0, 0) setElementData(vehCol, "parent", veh) setElementData(veh, "parent", vehCol) setElementData(vehCol, "vehicle", true) setElementData(vehCol, "MAX_Slots", 30) local tires, engine, parts = getVehicleAddonInfos(getElementModel(veh)) setElementData(vehCol, "Tire_inVehicle", 4) setElementData(vehCol, "Engine_inVehicle", 1) setElementData(vehCol, "Parts_inVehicle", 3) setElementData(vehCol, "spawn", { model, x, y, z }) setElementData(vehCol, "fuel", 80) end outputChatBox("Vehicles loaded! "..#veh.."!", root, 0, 100, 255) end end end addCommandHandler("load", loadAllVehs) Code (automat function - tent save): function automat(gracz) if gracz and isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(gracz)), aclGetGroup("Save")) then outputChatBox("Saving of tents was initiated!",gracz,0,255,0,true) else return end namiot = xmlCreateFile("tents.xml","root") id = 0 ilosc = 0 for i, col in ipairs(getElementsByType("colshape")) do if col then local tent = getElementData(col, "tent") if tent then local namiotek = getElementData(col, "parent") local x, y, z = getElementPosition(namiotek) local rx, ry, rz = getElementRotation(namiotek) local namiote = xmlCreateChild (namiot,"Namiot") local namiot = xmlCreateChild (namiote,"wsp") local namioti = xmlCreateChild (namiote,"itemy") xmlNodeSetValue (xmlCreateChild ( namiot, "PX"), tostring(x) ) xmlNodeSetValue (xmlCreateChild ( namiot, "PY"), tostring(y) ) xmlNodeSetValue (xmlCreateChild ( namiot, "PZ"), tostring(z) ) xmlNodeSetValue (xmlCreateChild ( namiot, "RX"), tostring(rx) ) xmlNodeSetValue (xmlCreateChild ( namiot, "RY"), tostring(ry) ) xmlNodeSetValue (xmlCreateChild ( namiot, "RZ"), tostring(rz) ) id = 0 for i, v in ipairs(tabelazapisu) do local item = getElementData(col, v[1]) if item then if item >= 1 then itemID = PobierzIDItemu(v[1]) xmlNodeSetValue (xmlCreateChild ( namioti, tostring(itemID)), tostring(item) ) end end end end end end xmlSaveFile(namiot) xmlUnloadFile(namiot) if gracz then outputChatBox("Tents saved!",gracz,0,255,0,true) end end addCommandHandler("save",automat) Code (loadd function - tent load): function loadd(player,cmd,nazwa) if player and isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(player)), aclGetGroup("Save")) then local xml = xmlLoadFile ( "tents.xml" ) pobierzinfo = xmlNodeGetChildren ( xml ) for i,nam in pairs(pobierzinfo ) do wsp = xmlFindChild(nam,"wsp",0) item = xmlFindChild(nam,"itemy",0) px = xmlFindChild(wsp,"PX",0) py = xmlFindChild(wsp,"PY",0) pz = xmlFindChild(wsp,"PZ",0) rx = xmlFindChild(wsp,"RX",0) ry = xmlFindChild(wsp,"RY",0) rz = xmlFindChild(wsp,"RZ",0) local pxx = xmlNodeGetValue ( px ) local pyy = xmlNodeGetValue ( py ) local pzz = xmlNodeGetValue ( pz ) local rxx = xmlNodeGetValue ( rx ) local ryy = xmlNodeGetValue ( ry ) local rzz = xmlNodeGetValue ( rz ) ilosc = ilosc + 1 tent = createObject(3243, pxx, pyy, pzz, rxx, ryy, rzz) setObjectScale(tent, 1) tentCol = createColSphere(pxx, pyy, pzz, 3) attachElements(tentCol, tent, 0, 0, 0) setElementData(tentCol, "parent", tent) setElementData(tent, "parent", tentCol) setElementData(tentCol, "tent", true) setElementData(tentCol, "vehicle", true) setElementData(tentCol, "MAX_Slots", 150) local itemX = xmlNodeGetChildren(item) for i,it in ipairs(itemX) do local wartosc = xmlNodeGetValue (it) local nazwa = xmlNodeGetName(it) item = PobierzItemID(nazwa) setElementData(tentCol, tostring(item), tonumber(wartosc)) end end end else local xml = xmlLoadFile ( "tents.xml" ) pobierzinfo = xmlNodeGetChildren ( xml ) for i,nam in pairs(pobierzinfo ) do wsp = xmlFindChild(nam,"wsp",0) item = xmlFindChild(nam,"itemy",0) px = xmlFindChild(wsp,"PX",0) py = xmlFindChild(wsp,"PY",0) pz = xmlFindChild(wsp,"PZ",0) rx = xmlFindChild(wsp,"RX",0) ry = xmlFindChild(wsp,"RY",0) rz = xmlFindChild(wsp,"RZ",0) local pxx = xmlNodeGetValue ( px ) local pyy = xmlNodeGetValue ( py ) local pzz = xmlNodeGetValue ( pz ) local rxx = xmlNodeGetValue ( rx ) local ryy = xmlNodeGetValue ( ry ) local rzz = xmlNodeGetValue ( rz ) ilosc = ilosc + 1 tent = createObject(3243, pxx, pyy, pzz, rxx, ryy, rzz) outputChatBox("Loaded in the tent!",player) setObjectScale(tent, 1) tentCol = createColSphere(pxx, pyy, pzz, 3) attachElements(tentCol, tent, 0, 0, 0) setElementData(tentCol, "parent", tent) setElementData(tent, "parent", tentCol) setElementData(tentCol, "tent", true) setElementData(tentCol, "vehicle", true) setElementData(tentCol, "MAX_Slots", 150) local itemX = xmlNodeGetChildren(item) for i,it in ipairs(itemX) do local wartosc = xmlNodeGetValue (it) local nazwa = xmlNodeGetName(it) item = PobierzItemID(nazwa) setElementData(tentCol, tostring(item), tonumber(wartosc)) end end end end addCommandHandler("load",loadd) Link to comment
Saml1er Posted December 20, 2014 Share Posted December 20, 2014 Just add these lines at the end of your code ( can be any lua file of the same resource but make sure its server sided). local dc = { } local t = getElementsByType ("player") for i=1, #t do dc[getPlayerSerial(t[i])] = true loadAllVehs (t[i]) loadd ( t[i]) end addEventHandler("onPlayerJoin",root, function () if dc[getPlayerSerial(source)] then return end dc[getPlayerSerial(source)] = true loadAllVehs(source) loadd (source) end) Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now