Lukkas2201 Posted November 27, 2018 Share Posted November 27, 2018 olá, boa noite, novamente estou aqui, e como ja disse em alguns outros tópicos, sou iniciante, sei que é chato ficar vindo aqui toda hora pedir ajuda em coisas que pra alguns são simples, porém pra alguns outros e eu pode ser complicado. seguinte, estou com meu servidor de dayz com o seguinte erro: o local de spawn de um veiculo é na area 51, fui la peguei o veiculo e guardei em minha base, depois de um tempo, o sistema de backup de veiculos, salva ele na base pra nao perder a localizacao caso de queda do host ou algo do tipo, depois que o carro explode, em vez dele respawnar na 51 que é o seu local de spawn, ele respawna na base, ou seja, ele respawna na onde o backup de veiculos salvou ele, e eu to quebrando a cabeca e nao consigo decifrar, abaixo irei deixar o codigo do spawn de veiculos do server, e tambem do sistema de backup de veiculos. ------------ Sistema de spawn de veiculos do servidor hospitalPacks = { {-2670.87890625,636.8984375,14.453125}, {-2637.0556640625,635.03125,14.453125}, {-1515.669921875,2519.166015625,56.0703125}, {-1513.888671875,2519.5908203125,56.064819335938}, {-1528.8955078125,2516.724609375,55.986171722412}, {2022.1650390625,-1402.6806640625,17.18045425415}, {2042.7001953125,-1409.4775390625,17.1640625}, {1171.490234375,-1310.560546875,13.986573219299}, {1171.609375,-1306.556640625,13.996350288391}, {1158.5048828125,-1326.333984375,31.503561019897}, {1159.80078125,-1323.9013671875,31.498970031738}, {1238.7119140625,328.2431640625,19.7555103302}, {1229.365234375,311.1435546875,24.7578125}, {-2204.07421875,-2309.58203125,31.375}, {1615.939453125,1818.0537109375,10.8203125}, {1601.9443359375,1816.736328125,10.8203125}, {1590.0166015625,1792.0234375,30.46875}, {1607.3232421875,1776.7412109375,37.3125}, {2107.7626953125,926.16015625,10.8203125}, {2116.12890625,925.7705078125,10.9609375}, {2122.1865234375,925.3193359375,10.8203125}, {275.30685424805,1889.0017089844,17.671506881714}, ----- Tenda Medica 51 ------- {275.29724121094,1894.240234375,17.669857025146}, ----- Tenda Medica 51 ------- {246.54913330078,2114.4567871094,17.671398162842}, ----- Tenda Medica 51 ------- {240.98666381836,2114.3959960938,17.670330047607}, ----- Tenda Medica 51 ------- {1389.0604248047,1772.0107421875,10.868975639343}, ----- Tenda Medica Aero LV ------ {-2667.3984375,612.50695800781,14.570329666138}, ------- Tenda Medica HP SF ------- {-2662.3532714844,612.74169921875,14.572191238403}, ------- Tenda Medica HP SF -------- {1612.0623779297,1848.4633789063,10.870816230774}, -------- Tenda Medica HP LV -------- {1605.9671630859,1848.6759033203,10.878125190735}, -------- Tenda Medica HP LV -------- {-1247.9757080078,22.812610626221,14.171301841736}, ------- Tenda Medica Aero SF ------- {-296.43521118164,1084.3815917969,19.771415710449}, ------- Tenda Medica HP FC ----------- {-300.16088867188,1047.8997802734,20.170841217041}, ------- HP FC -------- {-315.2180480957,1046.5977783203,20.207050323486}, -------- HP FC -------- {-325.88632202148,1048.3531494141,20.199048995972}, ------- HP FC -------- {-332.0661315918,1050.5997314453,20.18150138855}, --------- HP FC -------- } patrolPoints = { {-1603.2197265625,-2712.736328125,48.9453125}, {2465.748046875,-2215.55859375,13.546875}, {2473.439453125,-2215.56640625,13.546875}, {2480.0732421875,-2216.140625,13.546875}, {2487.24609375,-2215.5966796875,13.546875}, {2494.1005859375,-2215.5859375,13.546875}, {-1686.6728515625,408.9970703125,7.3984375}, {-1682.34375,412.9384765625,7.3984375}, {-1680.0263671875,402.3642578125,7.3984375}, {-1675.84375,406.4677734375,7.3984375}, {-1670.5615234375,411.8359375,7.3984375}, {-1666.2392578125,416.2509765625,7.3984375}, {-1672.7939453125,422.81640625,7.3984375}, {-1677.20703125,418.46484375,7.3984375}, {-2410.7021484375,969.9091796875,45.4609375}, {-2410.744140625,975.220703125,45.4609375}, {-2410.837890625,980.5302734375,45.4609375}, {-1329.3046875,2668.5126953125,50.46875}, {-1328.7314453125,2673.90625,50.0625}, {-1327.0185546875,2679.3876953125,50.46875}, {-1327.3798828125,2684.62890625,50.0625}, {1940.7099609375,-1778.5244140625,13.390598297119}, {1940.6552734375,-1774.908203125,13.390598297119}, {1940.630859375,-1771.728515625,13.390598297119}, {1940.7080078125,-1767.3837890625,13.390598297119}, {-1477.921875,1868.138671875,32.639846801758}, {-1466.1552734375,1869.0048828125,32.6328125}, {-1464.5224609375,1861.3828125,32.639846801758}, {-1477.4599609375,1860.5205078125,32.6328125}, {-735.9208984375,2744.0087890625,47.2265625}, {-739.0439453125,2744.2421875,47.165451049805}, {377.6953125,2601.1083984375,16.484375}, {624.5263671875,1676.25390625,6.9921875}, {620.2958984375,1681.2431640625,6.9921875}, {616.248046875,1686.4169921875,7.1875}, {612.783203125,1691.1650390625,7.1875}, {609.2060546875,1696.201171875,7.1875}, {605.8505859375,1700.978515625,7.1875}, {602.27734375,1706.3603515625,7.1875}, {2141.037109375,2742.734375,10.960174560547}, {2142.3115234375,2752.6982421875,10.96019744873}, {2147.9521484375,2752.3203125,10.8203125}, {2152.60546875,2751.953125,10.8203125}, {2152.984375,2743.85546875,10.8203125}, {2147.75,2743.7392578125,10.8203125}, {-97.6298828125,-1175.0283203125,2.4990689754486}, {-90.74609375,-1177.853515625,2.2021217346191}, {-84.75390625,-1163.853515625,2.3359375}, {-91.5771484375,-1160.5732421875,2.4453125}, {-1606.525390625,-2717.2138671875,48.9453125}, {-1609.7109375,-2721.544921875,48.9453125}, {-1599.83203125,-2708.302734375,48.9453125}, {-2246.314453125,-2558.8212890625,32.0703125}, {-2241.3125,-2561.3662109375,32.0703125}, {-1132.2880859375,-135.0986328125,14.14396572113}, {-1153.529296875,-156.373046875,14.1484375}, {-1142.826171875,-145.67578125,14.14396572113}, {655.611328125,-557.9912109375,16.501491546631}, {655.6572265625,-572.1728515625,16.501491546631}, {1601.791015625,2203.90625,11.060997009277}, {1596.806640625,2203.4345703125,10.8203125}, {1590.197265625,2203.4853515625,10.8203125}, {1589.4775390625,2195.43359375,10.8203125}, {1596.125,2194.294921875,10.8203125}, {1601.6591796875,2194.3369140625,10.8203125}, {2206.8466796875,2470.47265625,10.8203125}, {2206.94140625,2474.75,10.8203125}, {2206.9267578125,2478.86328125,10.8203125}, {2198.06640625,2480.6953125,10.8203125}, {2197.541015625,2475.791015625,10.995170593262}, {2197.609375,2471.9169921875,10.995170593262}, {2120.8251953125,915.4833984375,10.8203125}, {2115.1181640625,915.44140625,10.8203125}, {2109.076171875,915.4228515625,10.8203125}, {2109.22265625,924.8779296875,10.9609375}, {2114.9404296875,924.8857421875,10.9609375}, {2119.5126953125,925.2861328125,10.9609375}, {2645.7197265625,1112.7802734375,10.8203125}, {2639.984375,1112.56640625,10.8203125}, {2634.828125,1112.3466796875,10.9609375}, {2634.1826171875,1101.9482421875,10.8203125}, {2636.7509765625,1101.6748046875,10.8203125}, {2643.5126953125,1101.81640625,10.8203125}, {2209.576171875,2469.8251953125,10.8203125}, {2208.8310546875,2475.09375,10.8203125}, {1005.078125,-901.7490234375,42.216625213623}, {993.025390625,-902.474609375,42.222496032715}, } lootItems = { helicrashsides = { {"Compass",1851,1,0,2}, {"Scrap Metal",1577,1,0,3}, {"Stinger",2899,0.3,0,3}, {"Tire Repair Kit",2015,0.5,0,4}, {"Hose",1880,0.5,0,6}, {"Syringe",2000,1,0,6}, {"Night Vision Goggles",368,1,90,10}, {"Box of Matches",328,0.4,90,2}, {"Hunting Knife",335,1,90,4}, {"Chainsaw",341,1,90,4}, {"Hatchet",339,1,90,3}, {"Pizza",1582,1,0,2}, {"Soda Bottle",2647,1,0,2}, {"Empty Gas Canister",1650,1,0,2}, {"Roadflare",324,1,90,2}, {"Grenade",342,1,0,2}, {"Parachute",342,1,0,2}, {"Watch",2710,1,0,4}, {"Crossbow",357,1,90,6}, {"Night Vision Goggles",368,1,90,1.5}, {"Tire",1073,1,0,2}, {"GPS",2976,0.15,0,3}, {"Map",1277,0.8,90,7}, {"Toolbox",2969,0.5,0,1}, {"Engine",929,0.3,0,2}, {"Main Rotor Assembly",929,0.3,0,2}, {"Tent",1279,1,0,3.5}, {"Infrared Goggles",369,1,90,3}, }, hospital = { {"Syringe",2000,1,0}, {"Antibiotics",1919,2.1,0}, {"Medic Kit",2891,0.7,0}, {"Heat Pack",1576,1,0}, {"Bandage",1578,0.5,0}, {"Blood Bag",1580,1,0}, {"Morphine",1579,1,0}, {"Blood Bag",1580,1,0}, {"Medic Kit",2891,0.7,0}, {"Blood Bag",1580,1,0}, {"Painkiller",1580,1,0} } } for i,bpData in pairs(BackpacksTable)do table.insert(lootItems.helicrashsides,{bpData[1],bpData[3],1,0,bpData[4][5]}) end function updateHospitals() for i,box in pairs(hospitalCol)do for _,items in ipairs(lootItems.hospital)do setElementData(hospitalCol[i],items[1],math.random(1,5)) end end setTimer(updateHospitals,3600000,1) end hospitalCol = {} function createHospitalPacks() number1 = 0 for i,box in ipairs(hospitalPacks)do number1 = number1 + 1 local x,y,z = box[1],box[2],box[3] object = createObject(1558,x,y,z) setObjectScale(object,1) hospitalCol[i] = createColSphere(x,y,z,2) setElementData(hospitalCol[i],"parent",object) setElementData(hospitalCol[i],"hospitalbox",true) setElementData(hospitalCol[i],"MAX_Slots",20) for _,items in ipairs(lootItems.hospital)do local randomNumber = math.random(1,10) if randomNumber >= 5 then setElementData(hospitalCol[i],items[1],math.random(1,5)) end end end setTimer(updateHospitals,3600000,1) end createHospitalPacks() patrolCol = {} for num,patrol in ipairs(patrolPoints) do local x,y,z = patrol[1],patrol[2],patrol[3] patrolCol[num] = createColSphere(x,y,z,3) setElementData(patrolCol[num],"patrolstation",true) local rand = math.random(1,15) if rand == 1 then lts = 100 elseif rand == 2 or rand == 3 then lts = 80 elseif rand >= 4 or rand <= 6 then lts = 60 elseif rand >= 7 or rand <= 10 then lts = 40 else lts = 20 end setElementData(patrolCol[num],"patrollts",lts) end function updatepatrol() for i,box in pairs(patrolCol) do local rand = math.random(1,15) if rand == 1 then lts = 100 elseif rand == 2 or rand == 3 then lts = 80 elseif rand >= 4 or rand <= 6 then lts = 60 elseif rand >= 7 or rand <= 10 then lts = 40 else lts = 20 end setElementData(patrolCol[i],"patrollts",lts) end end setTimer(updatepatrol,10800000,0) function spawnDayZVehicles() for _, data in ipairs(vehicleSpawns) do veh = createVehicle(data[1],data[2],data[3],data[4]) vehCol = createColSphere(data[2],data[3],data[4],2.5) attachElements(vehCol,veh,0,0,0) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) local tires,engine,parts = getVehicleAddonInfos(getElementModel(veh)) setElementData(vehCol,"Tire_inVehicle",math.random(0,tires)) setElementData(vehCol,"Engine_inVehicle",math.random(0,engine)) setElementData(vehCol,"Parts_inVehicle",math.random(0,parts)) setElementData(vehCol,"Tire_inVehicle_HP",400) setElementData(vehCol,"Engine_inVehicle_HP",400) setElementData(vehCol,"Parts_inVehicle_HP",400) setElementData(vehCol,"armorPointsMax",data[6]) setElementData(vehCol,"armorPoints",0) setElementData(vehCol,"vehicle:station",0) setElementData(vehCol,"receiver",0) setVehicleHeadLightColor(veh,math.random(0,255),math.random(0,255),math.random(0,255)) setElementData(vehCol,"fuel",10) setElementData(vehCol,"MAX_Slots",data[5]) setElementData(vehCol,"spawn",{data[1],data[2],data[3],data[4]}) end end function spawnVehiclePack(ps,cmd) if getElementData(ps,"admin") then spawnDayZVehicles() outputChatBox("SVP Sucess!",ps,8, 193, 207,true) end end addCommandHandler("svp",spawnVehiclePack) function notifyAboutExplosion() occupants = getVehicleOccupants(source) or {} for _,peds in pairs(occupants)do removePedFromVehicle(peds) end local col = getElementData(source,"parent") -- if col and getElementData(col,"helicrash") then return end id,x,y,z = getElementData(col,"spawn")[1],getElementData(col,"spawn")[2],getElementData(col,"spawn")[3],getElementData(col,"spawn")[4] setTimer(respawnDayZVehicle,1800000,1,id,x,y,z,source,col,getElementData(col,"MAX_Slots")) setElementData(col,"deadVehicle",true) setElementData(source,"isExploded",true) x1,y1,z1 = getElementPosition(source) createExplosion(x1+1,y1+1,z1,4) createExplosion(x1-1,y1-1,z1,4) createExplosion(x1+1,y1-1,z1,4) createExplosion(x1-1,y1+1,z1,4) end addEventHandler("onVehicleExplode",getRootElement(),notifyAboutExplosion) function respawnVehiclesInWater(vehiclesInWater) for i,veh in ipairs(getElementsByType("vehicle"))do if isElementInWater(veh) and getVehicleType(veh) ~= "Boat" then local col = getElementData(veh,"parent") id,x,y,z = getElementData(col,"spawn")[1],getElementData(col,"spawn")[2],getElementData(col,"spawn")[3],getElementData(col,"spawn")[4] respawnDayZVehicle(id,x,y,z,veh,col) end end end setTimer(respawnVehiclesInWater,1800000,0) function respawnDayZVehicle(id,x,y,z,veh,col,max_slots) local armorMax = getElementData(col,"armorPointsMax") destroyElement(veh) destroyElement(col) veh = createVehicle(id,x,y,z+1) vehCol = createColSphere(x,y,z,4) attachElements ( vehCol, veh, 0, 0, 0 ) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementData(vehCol,"MAX_Slots",max_slots) --Engine + Tires local tires,engine,parts = getVehicleAddonInfos (getElementModel(veh)) setElementData(vehCol,"Tire_inVehicle",math.random(0,tires)) setElementData(vehCol,"Engine_inVehicle",math.random(0,engine)) setElementData(vehCol,"Parts_inVehicle",math.random(0,parts)) setElementData(vehCol,"Tire_inVehicle_HP",400) setElementData(vehCol,"Engine_inVehicle_HP",400) setElementData(vehCol,"Parts_inVehicle_HP",400) setElementData(vehCol,"armorPointsMax",armorMax) setElementData(vehCol,"armorPoints",0) setVehicleHeadLightColor(veh,math.random(0,255),math.random(0,255),math.random(0,255)) setElementData(vehCol,"receiver",0) setElementData(vehCol,"vehicle:station",0) --vehicle_indentifikation setElementData(vehCol,"spawn",{id,x,y,z}) --others setElementData(vehCol,"fuel",10) end function onPlayerEnterDayzVehicle(veh,seat) local col = getElementData(veh,"parent") local id = getElementModel(veh) local tires,engine,parts = getVehicleAddonInfos (id) setElementData(veh,"maxfuel",getVehicleMaxFuel(col)) setElementData(veh,"needtires",tires) setElementData(veh,"needengine",engine) setElementData(veh,"needparts",parts) if ((getElementData(col,"Tire_inVehicle") or 0) < tonumber(tires)) then setVehicleEngineState(veh,false) return end if ((getElementData(col,"Engine_inVehicle") or 0) < tonumber(engine)) then setVehicleEngineState(veh,false) return end if ((getElementData(col,"Parts_inVehicle") or 0) < tonumber(parts)) then setVehicleEngineState(veh,false) return end if (getElementData(col,"fuel") or 0) <= 1 then if not getElementModel(veh) == 510 then setVehicleEngineState(veh,false) return end end end addEventHandler("onPlayerVehicleEnter",getRootElement(),onPlayerEnterDayzVehicle) function setEngineState(player,key,keyState) local theVehicle = getPedOccupiedVehicle(player) if theVehicle and getVehicleController(theVehicle) == player then if checkVehicleMovable(theVehicle) then setVehicleEngineState(theVehicle, not getVehicleEngineState(theVehicle)) end end end function checkVehicleMovable(veh) if isElement(veh) then local parent = getElementData(veh,"parent") if parent then if ((getElementData(parent,"Tire_inVehicle") or 0) ~= getElementData(veh,"needtires")) then setVehicleEngineState(veh,false) return false end if ((getElementData(parent,"Engine_inVehicle") or 0) ~= getElementData(veh,"needengine")) then setVehicleEngineState(veh,false) return false end if ((getElementData(parent,"Parts_inVehicle") or 0) ~= getElementData(veh,"needparts")) then setVehicleEngineState (veh,false) return false end return true end end end function onPlayerExitDayzVehicle(veh,seat) if seat == 0 then setVehicleEngineState (veh,false) end unbindKey(source,"k","down",setEngineState) end addEventHandler("onPlayerVehicleExit",getRootElement(),onPlayerExitDayzVehicle) function setVehiclesFuelPerMinute () for i,veh in ipairs(getElementsByType("vehicle")) do if getVehicleEngineState(veh) == true then if getElementData(getElementData(veh,"parent"),"fuel") >= 0 then setElementData(getElementData(veh,"parent"),"fuel",getElementData(getElementData(veh,"parent"),"fuel")-getVehicleFuelRemove(getElementModel(veh),getElementData(veh,"parent"))) else setVehicleEngineState ( veh, false ) end end end end setTimer(setVehiclesFuelPerMinute,20000,0) function isVehicleReadyToStart2 (veh) if getElementData(getElementData(veh,"parent"),"fuel") >= 1 then local tires,engine,parts,metal = getVehicleAddonInfos (getElementModel(veh)) if (getElementData(getElementData(veh,"parent"),"Tire_inVehicle") or 0) > tonumber(tires) and (getElementData(getElementData(veh,"parent"),"Engine_inVehicle") or 0) > tonumber(engine) and (getElementData(getElementData(veh,"parent"),"Parts_inVehicle") or 0) > tonumber(parts) then setVehicleEngineState ( veh, true ) end end setTimer(isVehicleReadyToStart2,1000,1,veh) end repairTimer = {} function repairVehicle (veh) if repairTimer[veh] then triggerClientEvent (source, "displayClientInfo", source,"Vehicle"," is currently being repaired!",255,22,0) return end local health = math.floor(getElementHealth(veh)) repairTimer[veh] = setTimer(fixVehicleDayZ, 25000, 1, veh, source) setElementFrozen (veh,true) setElementData(veh,"repairer",source) setElementData(source,"repairingvehicle",veh) setPedAnimation (source,"SCRATCHING","sclng_r",nil,false,false) triggerClientEvent (source, "displayClientInfo", source,"Vehicle","Você começou a reparar o veículo, aguarde...",255,0,0) end addEvent("repairVehicle",true) addEventHandler("repairVehicle",getRootElement(),repairVehicle) function fixVehicleDayZ(veh,player) setElementHealth(veh,1000) fixVehicle (veh) setPedAnimation(player,false) setElementFrozen (veh,false) setVehicleDamageProof (veh,false) repairTimer[veh] = nil setElementData(veh,"repairer",nil) setElementData(player,"repairingvehicle",nil) triggerClientEvent (player, "displayClientInfo", player,"Vehicle","Você terminou de reparar o veículo.",22,255,0) end function stopFixxingWhileMoving() local veh = getElementData(source,"repairingvehicle") setPedAnimation(source) setElementFrozen (veh,false) setVehicleDamageProof (veh,false) setElementData(veh,"repairer",nil) setElementData(source,"repairingvehicle",nil) setElementData(source,"Repairing",false) triggerClientEvent (source, "displayClientInfo", source,"Vehicle","Você parou de reparar o veículo.",22,255,0) killTimer(repairTimer[veh]) repairTimer[veh] = nil end addEvent("onClientMovesWhileAnimation",true) addEventHandler("onClientMovesWhileAnimation",getRootElement(),stopFixxingWhileMoving) function debugFixxing() for i,veh in ipairs(getElementsByType("vehicle")) do if getElementData(veh,"repairer") == source then setVehicleDamageProof (veh,false) outputDebugString("Vehicle repairer disconnected - destroyed tables") killTimer(repairTimer[veh]) setElementFrozen (veh,false) repairTimer[veh] = nil setElementData(veh,"repairer",nil) end end end addEventHandler("onPlayerQuit",getRootElement(),debugFixxing) --------- sistema de backup dos veiculos needToSave = { {"MAX_Slots"}, {"Tire_inVehicle"}, {"Engine_inVehicle"}, {"Parts_inVehicle"}, {"Tire_inVehicle_HP"}, {"Engine_inVehicle_HP"}, {"Parts_inVehicle_HP"}, {"armorPointsMax"}, {"armorPoints"}, {"fuel"}, {"maxfuel"}, {"needengine"}, {"needtires"}, {"needparts"}, {"receiver"}, } function SaveVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end fileDelete("SaveSystem/XVehicles.xml") xml = xmlCreateFile("SaveSystem/XVehicles.xml","config") xmlSaveFile(xml) count = 0 for _,vehCol in pairs(getElementsByType("colshape")) do if getElementData(vehCol,"vehicle") and not getElementData(vehCol,"tent") then count = count + 1 if getElementData(vehCol,"parent") and isElement(getElementData(vehCol,"parent")) then veh = getElementData(vehCol,"parent") slots = getElementData(vehCol,"MAX_Slots") health = getElementHealth(veh) x,y,z = getElementPosition(veh) rx,ry,rz = getElementRotation(veh) VehInfos = xmlCreateChild(xml,"Veh") xmlNodeSetAttribute(VehInfos,"Name",getVehicleName(veh)) xmlNodeSetAttribute(VehInfos,"ID",getElementModel(veh)) xmlNodeSetAttribute(VehInfos,"Health",math.floor(health)) xmlNodeSetAttribute(VehInfos,"X",x) xmlNodeSetAttribute(VehInfos,"Y",y) xmlNodeSetAttribute(VehInfos,"Z",z) xmlNodeSetAttribute(VehInfos,"RX",rx) xmlNodeSetAttribute(VehInfos,"RY",ry) xmlNodeSetAttribute(VehInfos,"RZ",rz) VehItens = xmlCreateChild(VehInfos,"Itens") for _,item in pairs(vehicleDataTable)do if(tonumber(getElementData(vehCol,item[1])) and getElementData(vehCol,item[1]) >= 1) then Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end for _,item in pairs(needToSave)do Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end end end xmlSaveFile(xml) xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("#FFFFFFQuantidade de Veículos Salvos #FF0000*#FFFFFF"..count.."#FF0000*",player,255,0,0,true) end end end addEventHandler("onResourceStop",getResourceRootElement(),SaveVehicles) setTimer(SaveVehicles,10000,0) function LoadVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end xml = xmlLoadFile("SaveSystem/XVehicles.xml") for i,node in pairs(xmlNodeGetChildren(xml)) do x = tonumber(xmlNodeGetAttribute(node,"X")) y = tonumber(xmlNodeGetAttribute(node,"Y")) z = tonumber(xmlNodeGetAttribute(node,"Z")) rx = tonumber(xmlNodeGetAttribute(node,"RX")) ry = tonumber(xmlNodeGetAttribute(node,"RY")) rz = tonumber(xmlNodeGetAttribute(node,"RZ")) veh = createVehicle(tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z,rx,ry,rz) vehCol = createColSphere(x,y,z,4) setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z}) attachElements(vehCol,veh,0,0,0) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementHealth(veh,tonumber(math.floor(xmlNodeGetAttribute(node,"Health")))) for i,Item in pairs(xmlNodeGetChildren(xmlFindChild(node,"Itens",0))) do setElementData(vehCol,xmlNodeGetAttribute(Item,"Item"),tonumber(xmlNodeGetAttribute(Item,"Quant"))) end end xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("Todos os Veículos foram salvos com sucesso",player,255,0,0,true) end end end addEventHandler("onResourceStart",getResourceRootElement(getThisResource()),LoadVehicles) addCommandHandler("savevehs",SaveVehicles) addCommandHandler("loadvehs",LoadVehicles) Link to comment
brunob22 Posted November 27, 2018 Share Posted November 27, 2018 Bom dia. Vamos la primeiro não pego um codigo e simplesmente jogue ele no server se a menos entender oque ta fazendo. eu não vou ajudar vou apenas informa oque ta errado. o errado no codigo são as posição não vou ajudar mais que isso vejo você fazendo isso direito ja ta virando festa Link to comment
Lukkas2201 Posted November 27, 2018 Author Share Posted November 27, 2018 54 minutes ago, brunob22 said: Bom dia. Vamos la primeiro não pego um codigo e simplesmente jogue ele no server se a menos entender oque ta fazendo. eu não vou ajudar vou apenas informa oque ta errado. o errado no codigo são as posição não vou ajudar mais que isso vejo você fazendo isso direito ja ta virando festa bom dia, amigao, sou iniciante eu ja disse, e em nenhum momento eu disse "me entreguem o script pronto por favor", eu só peço ajuda porque eu nao sei oque acontece, eu posto os scripts onde eu acho que seja o problema, se nao quer ajudar é so ignorar o post, simples ué Link to comment
DNL291 Posted November 30, 2018 Share Posted November 30, 2018 (edited) Função respawnDayZVehicle - linha 318. A função recebe os argumentos x,y,z. O que fazer? Procure no código aonde está chamando a função (linha 296 e 312) e veja de onde está vindo as coordenadas x,y e z. On 27/11/2018 at 09:50, brunob22 said: eu não vou ajudar vou apenas informa oque ta errado. o errado no codigo são as posição KK. Bom, o próprio autor do tópico já sabe que é a posição. Edited November 30, 2018 by DNL291 Link to comment
brunob22 Posted December 1, 2018 Share Posted December 1, 2018 (edited) 23 hours ago, DNL291 said: Função respawnDayZVehicle - linha 318. A função recebe os argumentos x,y,z. O que fazer? Procure no código aonde está chamando a função (linha 296 e 312) e veja de onde está vindo as coordenadas x,y e z. KK. Bom, o próprio autor do tópico já sabe que é a posição. ue? kkk e muito simples e so ele olhar em vez de espera alguem trazer pronto.. ele ta salvando a posição x,y,z do carro e depois colocando ela no selementdata que salva o spawn do carro.. aii setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z}) e so olhar e saber oque ta fazendo antes de fazer a minha resposta ali foi bem direta.. e so ele ler o codigo --------- sistema de backup dos veiculos needToSave = { {"MAX_Slots"}, {"Tire_inVehicle"}, {"Engine_inVehicle"}, {"Parts_inVehicle"}, {"Tire_inVehicle_HP"}, {"Engine_inVehicle_HP"}, {"Parts_inVehicle_HP"}, {"armorPointsMax"}, {"armorPoints"}, {"fuel"}, {"maxfuel"}, {"needengine"}, {"needtires"}, {"needparts"}, {"receiver"}, } function SaveVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end fileDelete("SaveSystem/XVehicles.xml") xml = xmlCreateFile("SaveSystem/XVehicles.xml","config") xmlSaveFile(xml) count = 0 for _,vehCol in pairs(getElementsByType("colshape")) do if getElementData(vehCol,"vehicle") and not getElementData(vehCol,"tent") then count = count + 1 if getElementData(vehCol,"parent") and isElement(getElementData(vehCol,"parent")) then veh = getElementData(vehCol,"parent") slots = getElementData(vehCol,"MAX_Slots") health = getElementHealth(veh) x,y,z = getElementPosition(veh) ----<<< AQUI ELE PEGA A POSIÇÃO DOS CARROS rx,ry,rz = getElementRotation(veh) VehInfos = xmlCreateChild(xml,"Veh") xmlNodeSetAttribute(VehInfos,"Name",getVehicleName(veh)) xmlNodeSetAttribute(VehInfos,"ID",getElementModel(veh)) xmlNodeSetAttribute(VehInfos,"Health",math.floor(health)) xmlNodeSetAttribute(VehInfos,"X",x) --- <<< AQUI ELE TA SALVANDO A POSIÇÃO DO CARRO NO XML xmlNodeSetAttribute(VehInfos,"Y",y) --- <<< AQUI ELE TA SALVANDO A POSIÇÃO DO CARRO NO XML xmlNodeSetAttribute(VehInfos,"Z",z) --- <<< AQUI ELE TA SALVANDO A POSIÇÃO DO CARRO NO XML xmlNodeSetAttribute(VehInfos,"RX",rx) xmlNodeSetAttribute(VehInfos,"RY",ry) xmlNodeSetAttribute(VehInfos,"RZ",rz) VehItens = xmlCreateChild(VehInfos,"Itens") for _,item in pairs(vehicleDataTable)do if(tonumber(getElementData(vehCol,item[1])) and getElementData(vehCol,item[1]) >= 1) then Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end for _,item in pairs(needToSave)do Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end end end xmlSaveFile(xml) xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("#FFFFFFQuantidade de Veículos Salvos #FF0000*#FFFFFF"..count.."#FF0000*",player,255,0,0,true) end end end addEventHandler("onResourceStop",getResourceRootElement(),SaveVehicles) setTimer(SaveVehicles,10000,0) function LoadVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end xml = xmlLoadFile("SaveSystem/XVehicles.xml") for i,node in pairs(xmlNodeGetChildren(xml)) do x = tonumber(xmlNodeGetAttribute(node,"X")) -----< AQUI ELE TA CARREGANDO POSIÇÃO DO CARRO QUE ELE SALVO NO XML y = tonumber(xmlNodeGetAttribute(node,"Y")) -----< AQUI ELE TA CARREGANDO POSIÇÃO DO CARRO QUE ELE SALVO NO XML z = tonumber(xmlNodeGetAttribute(node,"Z")) -----< AQUI ELE TA CARREGANDO POSIÇÃO DO CARRO QUE ELE SALVO NO XML rx = tonumber(xmlNodeGetAttribute(node,"RX")) ry = tonumber(xmlNodeGetAttribute(node,"RY")) rz = tonumber(xmlNodeGetAttribute(node,"RZ")) veh = createVehicle(tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z,rx,ry,rz) vehCol = createColSphere(x,y,z,4) setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z}) ---- <<< AQUI ELE TA PEGANDO A POSIÇÃO QUE ELE SALVO E TA COLOCANDO NO SPAWN DO CARRO attachElements(vehCol,veh,0,0,0) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementHealth(veh,tonumber(math.floor(xmlNodeGetAttribute(node,"Health")))) for i,Item in pairs(xmlNodeGetChildren(xmlFindChild(node,"Itens",0))) do setElementData(vehCol,xmlNodeGetAttribute(Item,"Item"),tonumber(xmlNodeGetAttribute(Item,"Quant"))) end end xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("Todos os Veículos foram salvos com sucesso",player,255,0,0,true) end end end addEventHandler("onResourceStart",getResourceRootElement(getThisResource()),LoadVehicles) addCommandHandler("savevehs",SaveVehicles) addCommandHandler("loadvehs",LoadVehicles) Codigo Arrumado.. --------- sistema de backup dos veiculos needToSave = { {"MAX_Slots"}, {"Tire_inVehicle"}, {"Engine_inVehicle"}, {"Parts_inVehicle"}, {"Tire_inVehicle_HP"}, {"Engine_inVehicle_HP"}, {"Parts_inVehicle_HP"}, {"armorPointsMax"}, {"armorPoints"}, {"fuel"}, {"maxfuel"}, {"needengine"}, {"needtires"}, {"needparts"}, {"receiver"}, } function SaveVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end fileDelete("SaveSystem/XVehicles.xml") xml = xmlCreateFile("SaveSystem/XVehicles.xml","config") xmlSaveFile(xml) count = 0 for _,vehCol in pairs(getElementsByType("colshape")) do if getElementData(vehCol,"vehicle") and not getElementData(vehCol,"tent") then count = count + 1 if getElementData(vehCol,"parent") and isElement(getElementData(vehCol,"parent")) then veh = getElementData(vehCol,"parent") slots = getElementData(vehCol,"MAX_Slots") health = getElementHealth(veh) x,y,z = getElementPosition(veh) ---=========== local SpawnX,SpawnY,SpawnZ = getElementData(vehCol,"spawn") -- CORREÇÃO rx,ry,rz = getElementRotation(veh) VehInfos = xmlCreateChild(xml,"Veh") xmlNodeSetAttribute(VehInfos,"Name",getVehicleName(veh)) xmlNodeSetAttribute(VehInfos,"ID",getElementModel(veh)) xmlNodeSetAttribute(VehInfos,"Health",math.floor(health)) xmlNodeSetAttribute(VehInfos,"X",x) xmlNodeSetAttribute(VehInfos,"Y",y) xmlNodeSetAttribute(VehInfos,"Z",z) --------------------======================================= xmlNodeSetAttribute(VehInfos,"Spawn_X",SpawnX) -- CORREÇÃO xmlNodeSetAttribute(VehInfos,"Spawn_Y",SpawnY) -- CORREÇÃO xmlNodeSetAttribute(VehInfos,"Spawn_Z",SpawnZ) -- CORREÇÃO ---------------------======================================== xmlNodeSetAttribute(VehInfos,"RX",rx) xmlNodeSetAttribute(VehInfos,"RY",ry) xmlNodeSetAttribute(VehInfos,"RZ",rz) VehItens = xmlCreateChild(VehInfos,"Itens") for _,item in pairs(vehicleDataTable)do if(tonumber(getElementData(vehCol,item[1])) and getElementData(vehCol,item[1]) >= 1) then Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end for _,item in pairs(needToSave)do Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end end end xmlSaveFile(xml) xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("#FFFFFFQuantidade de Veículos Salvos #FF0000*#FFFFFF"..count.."#FF0000*",player,255,0,0,true) end end end addEventHandler("onResourceStop",getResourceRootElement(),SaveVehicles) setTimer(SaveVehicles,10000,0) function LoadVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end xml = xmlLoadFile("SaveSystem/XVehicles.xml") for i,node in pairs(xmlNodeGetChildren(xml)) do x = tonumber(xmlNodeGetAttribute(node,"X")) y = tonumber(xmlNodeGetAttribute(node,"Y")) z = tonumber(xmlNodeGetAttribute(node,"Z")) --------------============================= SpawnVx = tonumber(xmlNodeGetAttribute(node,"Spawn_X")) -- CORREÇÃO SpawnVy = tonumber(xmlNodeGetAttribute(node,"Spawn_Y")) -- CORREÇÃO SpawnVz = tonumber(xmlNodeGetAttribute(node,"Spawn_Z")) -- CORREÇÃO --------------============================= rx = tonumber(xmlNodeGetAttribute(node,"RX")) ry = tonumber(xmlNodeGetAttribute(node,"RY")) rz = tonumber(xmlNodeGetAttribute(node,"RZ")) veh = createVehicle(tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z,rx,ry,rz) vehCol = createColSphere(x,y,z,4) ---================= setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),SpawnVx,SpawnVy,SpawnVz}) -- CORREÇÃO ---================= attachElements(vehCol,veh,0,0,0) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementHealth(veh,tonumber(math.floor(xmlNodeGetAttribute(node,"Health")))) for i,Item in pairs(xmlNodeGetChildren(xmlFindChild(node,"Itens",0))) do setElementData(vehCol,xmlNodeGetAttribute(Item,"Item"),tonumber(xmlNodeGetAttribute(Item,"Quant"))) end end xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("Todos os Veículos foram salvos com sucesso",player,255,0,0,true) end end end addEventHandler("onResourceStart",getResourceRootElement(getThisResource()),LoadVehicles) addCommandHandler("savevehs",SaveVehicles) addCommandHandler("loadvehs",LoadVehicles) Edited December 1, 2018 by brunob22 Link to comment
DNL291 Posted December 2, 2018 Share Posted December 2, 2018 4 hours ago, brunob22 said: a minha resposta ali foi bem direta.. e so ele ler o codigo Foi bem genérica na verdade. 4 hours ago, brunob22 said: ue? kkk e muito simples e so ele olhar em vez de espera alguem trazer pronto.. ele ta salvando a posição x,y,z do carro e depois colocando ela no selementdata que salva o spawn do carro.. aii setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z}) e so olhar e saber oque ta fazendo antes de fazer a minha resposta ali foi bem direta.. e so ele ler o codigo --------- sistema de backup dos veiculosneedToSave = { {"MAX_Slots"}, {"Tire_inVehicle"}, {"Engine_inVehicle"}, {"Parts_inVehicle"}, {"Tire_inVehicle_HP"}, {"Engine_inVehicle_HP"}, {"Parts_inVehicle_HP"}, {"armorPointsMax"}, {"armorPoints"}, {"fuel"}, {"maxfuel"}, {"needengine"}, {"needtires"}, {"needparts"}, {"receiver"},}function SaveVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end fileDelete("SaveSystem/XVehicles.xml") xml = xmlCreateFile("SaveSystem/XVehicles.xml","config") xmlSaveFile(xml) count = 0 for _,vehCol in pairs(getElementsByType("colshape")) do if getElementData(vehCol,"vehicle") and not getElementData(vehCol,"tent") then count = count + 1 if getElementData(vehCol,"parent") and isElement(getElementData(vehCol,"parent")) then veh = getElementData(vehCol,"parent") slots = getElementData(vehCol,"MAX_Slots") health = getElementHealth(veh) x,y,z = getElementPosition(veh) ----<<< AQUI ELE PEGA A POSIÇÃO DOS CARROS rx,ry,rz = getElementRotation(veh) VehInfos = xmlCreateChild(xml,"Veh") xmlNodeSetAttribute(VehInfos,"Name",getVehicleName(veh)) xmlNodeSetAttribute(VehInfos,"ID",getElementModel(veh)) xmlNodeSetAttribute(VehInfos,"Health",math.floor(health)) xmlNodeSetAttribute(VehInfos,"X",x) --- <<< AQUI ELE TA SALVANDO A POSIÇÃO DO CARRO NO XML xmlNodeSetAttribute(VehInfos,"Y",y) --- <<< AQUI ELE TA SALVANDO A POSIÇÃO DO CARRO NO XML xmlNodeSetAttribute(VehInfos,"Z",z) --- <<< AQUI ELE TA SALVANDO A POSIÇÃO DO CARRO NO XML xmlNodeSetAttribute(VehInfos,"RX",rx) xmlNodeSetAttribute(VehInfos,"RY",ry) xmlNodeSetAttribute(VehInfos,"RZ",rz) VehItens = xmlCreateChild(VehInfos,"Itens") for _,item in pairs(vehicleDataTable)do if(tonumber(getElementData(vehCol,item[1])) and getElementData(vehCol,item[1]) >= 1) then Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end for _,item in pairs(needToSave)do Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end end end xmlSaveFile(xml) xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("#FFFFFFQuantidade de Veículos Salvos #FF0000*#FFFFFF"..count.."#FF0000*",player,255,0,0,true) end endendaddEventHandler("onResourceStop",getResourceRootElement(),SaveVehicles)setTimer(SaveVehicles,10000,0)function LoadVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end xml = xmlLoadFile("SaveSystem/XVehicles.xml") for i,node in pairs(xmlNodeGetChildren(xml)) do x = tonumber(xmlNodeGetAttribute(node,"X")) -----< AQUI ELE TA CARREGANDO POSIÇÃO DO CARRO QUE ELE SALVO NO XML y = tonumber(xmlNodeGetAttribute(node,"Y")) -----< AQUI ELE TA CARREGANDO POSIÇÃO DO CARRO QUE ELE SALVO NO XML z = tonumber(xmlNodeGetAttribute(node,"Z")) -----< AQUI ELE TA CARREGANDO POSIÇÃO DO CARRO QUE ELE SALVO NO XML rx = tonumber(xmlNodeGetAttribute(node,"RX")) ry = tonumber(xmlNodeGetAttribute(node,"RY")) rz = tonumber(xmlNodeGetAttribute(node,"RZ")) veh = createVehicle(tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z,rx,ry,rz) vehCol = createColSphere(x,y,z,4) setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z}) ---- <<< AQUI ELE TA PEGANDO A POSIÇÃO QUE ELE SALVO E TA COLOCANDO NO SPAWN DO CARRO attachElements(vehCol,veh,0,0,0) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementHealth(veh,tonumber(math.floor(xmlNodeGetAttribute(node,"Health")))) for i,Item in pairs(xmlNodeGetChildren(xmlFindChild(node,"Itens",0))) do setElementData(vehCol,xmlNodeGetAttribute(Item,"Item"),tonumber(xmlNodeGetAttribute(Item,"Quant"))) end end xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("Todos os Veículos foram salvos com sucesso",player,255,0,0,true) end endendaddEventHandler("onResourceStart",getResourceRootElement(getThisResource()),LoadVehicles)addCommandHandler("savevehs",SaveVehicles)addCommandHandler("loadvehs",LoadVehicles) Codigo Arrumado.. --------- sistema de backup dos veiculosneedToSave = { {"MAX_Slots"}, {"Tire_inVehicle"}, {"Engine_inVehicle"}, {"Parts_inVehicle"}, {"Tire_inVehicle_HP"}, {"Engine_inVehicle_HP"}, {"Parts_inVehicle_HP"}, {"armorPointsMax"}, {"armorPoints"}, {"fuel"}, {"maxfuel"}, {"needengine"}, {"needtires"}, {"needparts"}, {"receiver"},}function SaveVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end fileDelete("SaveSystem/XVehicles.xml") xml = xmlCreateFile("SaveSystem/XVehicles.xml","config") xmlSaveFile(xml) count = 0 for _,vehCol in pairs(getElementsByType("colshape")) do if getElementData(vehCol,"vehicle") and not getElementData(vehCol,"tent") then count = count + 1 if getElementData(vehCol,"parent") and isElement(getElementData(vehCol,"parent")) then veh = getElementData(vehCol,"parent") slots = getElementData(vehCol,"MAX_Slots") health = getElementHealth(veh) x,y,z = getElementPosition(veh) ---=========== local SpawnX,SpawnY,SpawnZ = getElementData(vehCol,"spawn") -- CORREÇÃO rx,ry,rz = getElementRotation(veh) VehInfos = xmlCreateChild(xml,"Veh") xmlNodeSetAttribute(VehInfos,"Name",getVehicleName(veh)) xmlNodeSetAttribute(VehInfos,"ID",getElementModel(veh)) xmlNodeSetAttribute(VehInfos,"Health",math.floor(health)) xmlNodeSetAttribute(VehInfos,"X",x) xmlNodeSetAttribute(VehInfos,"Y",y) xmlNodeSetAttribute(VehInfos,"Z",z) --------------------======================================= xmlNodeSetAttribute(VehInfos,"Spawn_X",SpawnX) -- CORREÇÃO xmlNodeSetAttribute(VehInfos,"Spawn_Y",SpawnY) -- CORREÇÃO xmlNodeSetAttribute(VehInfos,"Spawn_Z",SpawnZ) -- CORREÇÃO ---------------------======================================== xmlNodeSetAttribute(VehInfos,"RX",rx) xmlNodeSetAttribute(VehInfos,"RY",ry) xmlNodeSetAttribute(VehInfos,"RZ",rz) VehItens = xmlCreateChild(VehInfos,"Itens") for _,item in pairs(vehicleDataTable)do if(tonumber(getElementData(vehCol,item[1])) and getElementData(vehCol,item[1]) >= 1) then Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end for _,item in pairs(needToSave)do Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end end end xmlSaveFile(xml) xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("#FFFFFFQuantidade de Veículos Salvos #FF0000*#FFFFFF"..count.."#FF0000*",player,255,0,0,true) end endendaddEventHandler("onResourceStop",getResourceRootElement(),SaveVehicles)setTimer(SaveVehicles,10000,0)function LoadVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end xml = xmlLoadFile("SaveSystem/XVehicles.xml") for i,node in pairs(xmlNodeGetChildren(xml)) do x = tonumber(xmlNodeGetAttribute(node,"X")) y = tonumber(xmlNodeGetAttribute(node,"Y")) z = tonumber(xmlNodeGetAttribute(node,"Z")) --------------============================= SpawnVx = tonumber(xmlNodeGetAttribute(node,"Spawn_X")) -- CORREÇÃO SpawnVy = tonumber(xmlNodeGetAttribute(node,"Spawn_Y")) -- CORREÇÃO SpawnVz = tonumber(xmlNodeGetAttribute(node,"Spawn_Z")) -- CORREÇÃO --------------============================= rx = tonumber(xmlNodeGetAttribute(node,"RX")) ry = tonumber(xmlNodeGetAttribute(node,"RY")) rz = tonumber(xmlNodeGetAttribute(node,"RZ")) veh = createVehicle(tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z,rx,ry,rz) vehCol = createColSphere(x,y,z,4) ---================= setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),SpawnVx,SpawnVy,SpawnVz}) -- CORREÇÃO ---================= attachElements(vehCol,veh,0,0,0) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementHealth(veh,tonumber(math.floor(xmlNodeGetAttribute(node,"Health")))) for i,Item in pairs(xmlNodeGetChildren(xmlFindChild(node,"Itens",0))) do setElementData(vehCol,xmlNodeGetAttribute(Item,"Item"),tonumber(xmlNodeGetAttribute(Item,"Quant"))) end end xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("Todos os Veículos foram salvos com sucesso",player,255,0,0,true) end endendaddEventHandler("onResourceStart",getResourceRootElement(getThisResource()),LoadVehicles)addCommandHandler("savevehs",SaveVehicles)addCommandHandler("loadvehs",LoadVehicles) Então, o problema estava lá no sistema de backup que altera a posição de spawn quando salva os veículos (na verdade isso não é um erro do script, já foi feito pra respawnar na posição que estava mas o @Lukkas2201 pelo jeito não quer isso). Veja que tem um comando chamado svp que spawna todos veículos na posição de origem (que está na tabela vehicleSpawns), enfim, não sei se o OP tinha conhecimento dele. Link to comment
Lukkas2201 Posted December 2, 2018 Author Share Posted December 2, 2018 21 hours ago, brunob22 said: ue? kkk e muito simples e so ele olhar em vez de espera alguem trazer pronto.. ele ta salvando a posição x,y,z do carro e depois colocando ela no selementdata que salva o spawn do carro.. aii setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z}) e so olhar e saber oque ta fazendo antes de fazer a minha resposta ali foi bem direta.. e so ele ler o codigo --------- sistema de backup dos veiculosneedToSave = { {"MAX_Slots"}, {"Tire_inVehicle"}, {"Engine_inVehicle"}, {"Parts_inVehicle"}, {"Tire_inVehicle_HP"}, {"Engine_inVehicle_HP"}, {"Parts_inVehicle_HP"}, {"armorPointsMax"}, {"armorPoints"}, {"fuel"}, {"maxfuel"}, {"needengine"}, {"needtires"}, {"needparts"}, {"receiver"},}function SaveVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end fileDelete("SaveSystem/XVehicles.xml") xml = xmlCreateFile("SaveSystem/XVehicles.xml","config") xmlSaveFile(xml) count = 0 for _,vehCol in pairs(getElementsByType("colshape")) do if getElementData(vehCol,"vehicle") and not getElementData(vehCol,"tent") then count = count + 1 if getElementData(vehCol,"parent") and isElement(getElementData(vehCol,"parent")) then veh = getElementData(vehCol,"parent") slots = getElementData(vehCol,"MAX_Slots") health = getElementHealth(veh) x,y,z = getElementPosition(veh) ----<<< AQUI ELE PEGA A POSIÇÃO DOS CARROS rx,ry,rz = getElementRotation(veh) VehInfos = xmlCreateChild(xml,"Veh") xmlNodeSetAttribute(VehInfos,"Name",getVehicleName(veh)) xmlNodeSetAttribute(VehInfos,"ID",getElementModel(veh)) xmlNodeSetAttribute(VehInfos,"Health",math.floor(health)) xmlNodeSetAttribute(VehInfos,"X",x) --- <<< AQUI ELE TA SALVANDO A POSIÇÃO DO CARRO NO XML xmlNodeSetAttribute(VehInfos,"Y",y) --- <<< AQUI ELE TA SALVANDO A POSIÇÃO DO CARRO NO XML xmlNodeSetAttribute(VehInfos,"Z",z) --- <<< AQUI ELE TA SALVANDO A POSIÇÃO DO CARRO NO XML xmlNodeSetAttribute(VehInfos,"RX",rx) xmlNodeSetAttribute(VehInfos,"RY",ry) xmlNodeSetAttribute(VehInfos,"RZ",rz) VehItens = xmlCreateChild(VehInfos,"Itens") for _,item in pairs(vehicleDataTable)do if(tonumber(getElementData(vehCol,item[1])) and getElementData(vehCol,item[1]) >= 1) then Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end for _,item in pairs(needToSave)do Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end end end xmlSaveFile(xml) xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("#FFFFFFQuantidade de Veículos Salvos #FF0000*#FFFFFF"..count.."#FF0000*",player,255,0,0,true) end endendaddEventHandler("onResourceStop",getResourceRootElement(),SaveVehicles)setTimer(SaveVehicles,10000,0)function LoadVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end xml = xmlLoadFile("SaveSystem/XVehicles.xml") for i,node in pairs(xmlNodeGetChildren(xml)) do x = tonumber(xmlNodeGetAttribute(node,"X")) -----< AQUI ELE TA CARREGANDO POSIÇÃO DO CARRO QUE ELE SALVO NO XML y = tonumber(xmlNodeGetAttribute(node,"Y")) -----< AQUI ELE TA CARREGANDO POSIÇÃO DO CARRO QUE ELE SALVO NO XML z = tonumber(xmlNodeGetAttribute(node,"Z")) -----< AQUI ELE TA CARREGANDO POSIÇÃO DO CARRO QUE ELE SALVO NO XML rx = tonumber(xmlNodeGetAttribute(node,"RX")) ry = tonumber(xmlNodeGetAttribute(node,"RY")) rz = tonumber(xmlNodeGetAttribute(node,"RZ")) veh = createVehicle(tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z,rx,ry,rz) vehCol = createColSphere(x,y,z,4) setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z}) ---- <<< AQUI ELE TA PEGANDO A POSIÇÃO QUE ELE SALVO E TA COLOCANDO NO SPAWN DO CARRO attachElements(vehCol,veh,0,0,0) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementHealth(veh,tonumber(math.floor(xmlNodeGetAttribute(node,"Health")))) for i,Item in pairs(xmlNodeGetChildren(xmlFindChild(node,"Itens",0))) do setElementData(vehCol,xmlNodeGetAttribute(Item,"Item"),tonumber(xmlNodeGetAttribute(Item,"Quant"))) end end xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("Todos os Veículos foram salvos com sucesso",player,255,0,0,true) end endendaddEventHandler("onResourceStart",getResourceRootElement(getThisResource()),LoadVehicles)addCommandHandler("savevehs",SaveVehicles)addCommandHandler("loadvehs",LoadVehicles) Codigo Arrumado.. --------- sistema de backup dos veiculosneedToSave = { {"MAX_Slots"}, {"Tire_inVehicle"}, {"Engine_inVehicle"}, {"Parts_inVehicle"}, {"Tire_inVehicle_HP"}, {"Engine_inVehicle_HP"}, {"Parts_inVehicle_HP"}, {"armorPointsMax"}, {"armorPoints"}, {"fuel"}, {"maxfuel"}, {"needengine"}, {"needtires"}, {"needparts"}, {"receiver"},}function SaveVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end fileDelete("SaveSystem/XVehicles.xml") xml = xmlCreateFile("SaveSystem/XVehicles.xml","config") xmlSaveFile(xml) count = 0 for _,vehCol in pairs(getElementsByType("colshape")) do if getElementData(vehCol,"vehicle") and not getElementData(vehCol,"tent") then count = count + 1 if getElementData(vehCol,"parent") and isElement(getElementData(vehCol,"parent")) then veh = getElementData(vehCol,"parent") slots = getElementData(vehCol,"MAX_Slots") health = getElementHealth(veh) x,y,z = getElementPosition(veh) ---=========== local SpawnX,SpawnY,SpawnZ = getElementData(vehCol,"spawn") -- CORREÇÃO rx,ry,rz = getElementRotation(veh) VehInfos = xmlCreateChild(xml,"Veh") xmlNodeSetAttribute(VehInfos,"Name",getVehicleName(veh)) xmlNodeSetAttribute(VehInfos,"ID",getElementModel(veh)) xmlNodeSetAttribute(VehInfos,"Health",math.floor(health)) xmlNodeSetAttribute(VehInfos,"X",x) xmlNodeSetAttribute(VehInfos,"Y",y) xmlNodeSetAttribute(VehInfos,"Z",z) --------------------======================================= xmlNodeSetAttribute(VehInfos,"Spawn_X",SpawnX) -- CORREÇÃO xmlNodeSetAttribute(VehInfos,"Spawn_Y",SpawnY) -- CORREÇÃO xmlNodeSetAttribute(VehInfos,"Spawn_Z",SpawnZ) -- CORREÇÃO ---------------------======================================== xmlNodeSetAttribute(VehInfos,"RX",rx) xmlNodeSetAttribute(VehInfos,"RY",ry) xmlNodeSetAttribute(VehInfos,"RZ",rz) VehItens = xmlCreateChild(VehInfos,"Itens") for _,item in pairs(vehicleDataTable)do if(tonumber(getElementData(vehCol,item[1])) and getElementData(vehCol,item[1]) >= 1) then Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end for _,item in pairs(needToSave)do Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end end end xmlSaveFile(xml) xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("#FFFFFFQuantidade de Veículos Salvos #FF0000*#FFFFFF"..count.."#FF0000*",player,255,0,0,true) end endendaddEventHandler("onResourceStop",getResourceRootElement(),SaveVehicles)setTimer(SaveVehicles,10000,0)function LoadVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end xml = xmlLoadFile("SaveSystem/XVehicles.xml") for i,node in pairs(xmlNodeGetChildren(xml)) do x = tonumber(xmlNodeGetAttribute(node,"X")) y = tonumber(xmlNodeGetAttribute(node,"Y")) z = tonumber(xmlNodeGetAttribute(node,"Z")) --------------============================= SpawnVx = tonumber(xmlNodeGetAttribute(node,"Spawn_X")) -- CORREÇÃO SpawnVy = tonumber(xmlNodeGetAttribute(node,"Spawn_Y")) -- CORREÇÃO SpawnVz = tonumber(xmlNodeGetAttribute(node,"Spawn_Z")) -- CORREÇÃO --------------============================= rx = tonumber(xmlNodeGetAttribute(node,"RX")) ry = tonumber(xmlNodeGetAttribute(node,"RY")) rz = tonumber(xmlNodeGetAttribute(node,"RZ")) veh = createVehicle(tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z,rx,ry,rz) vehCol = createColSphere(x,y,z,4) ---================= setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),SpawnVx,SpawnVy,SpawnVz}) -- CORREÇÃO ---================= attachElements(vehCol,veh,0,0,0) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementHealth(veh,tonumber(math.floor(xmlNodeGetAttribute(node,"Health")))) for i,Item in pairs(xmlNodeGetChildren(xmlFindChild(node,"Itens",0))) do setElementData(vehCol,xmlNodeGetAttribute(Item,"Item"),tonumber(xmlNodeGetAttribute(Item,"Quant"))) end end xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("Todos os Veículos foram salvos com sucesso",player,255,0,0,true) end endendaddEventHandler("onResourceStart",getResourceRootElement(getThisResource()),LoadVehicles)addCommandHandler("savevehs",SaveVehicles)addCommandHandler("loadvehs",LoadVehicles) boa tarde Bruno, então cara, pra vc isso é facil, mas como eu disse eu sou iniciante, porém em NENHUM momento eu pedi script pronto, eu só perguntei oque eu teria que fazer, eu posto um script e vc me diz que o erro esta nas posicoes, disso eu ja sei, vc que nao leu meu tópico, pois ali mesmo ja da pra saber que o erro esta na posicao, eu so queria instrucao sobre o que eu tenho que fazer no caso, e eu queria pedir um pouco menos de ignorancia, tu ja foi iniciante alguma vez, porém vc deve ter tido mais ajuda do que eu, ou se aprendeu na marra meus parabéns, porém pra mim é difícil, lhe peço compreensão, agora dizer que eu pedi script pronto é mentira, apenas pergunto oque eu tenho que fazer.. enfim, esse codigo que vc me mandou, vc mandou ele pronto, ou tenho que alterar algo? pois se vc mandou ele pronto, não funcionou, ele acusa esse warning, e na hora que o veiculo explode, ao invez de respawnar, da um error no vehicle spawns. https://ibb.co/gWBh9XR https://ibb.co/M101h1J porém eu vou aguardar a resposta pra saber se vc mandou o codigo pronto, ou se tenho que trocar alguma coisa nele. On 30/11/2018 at 20:10, DNL291 said: Função respawnDayZVehicle - linha 318. A função recebe os argumentos x,y,z. O que fazer? Procure no código aonde está chamando a função (linha 296 e 312) e veja de onde está vindo as coordenadas x,y e z. KK. Bom, o próprio autor do tópico já sabe que é a posição. pois é, eu sou iniciante, ainda mais MTA DayZ, é muito complicado, creio que seja mais complicado ainda do que servidores de Roleplay, freeroam, entre outros, e não tem nenhum outro método que posso receber ajuda, porém quando eu pergunto, 'oque eu tenho que fazer?" , o pessoal entende "faz pra mim?" , eu nao pedi script pronto, eu apenas peço ajuda, mas o povo é ignorante pra caramba com iniciantes Link to comment
brunob22 Posted December 2, 2018 Share Posted December 2, 2018 --------- sistema de backup dos veiculos needToSave = { {"MAX_Slots"}, {"Tire_inVehicle"}, {"Engine_inVehicle"}, {"Parts_inVehicle"}, {"Tire_inVehicle_HP"}, {"Engine_inVehicle_HP"}, {"Parts_inVehicle_HP"}, {"armorPointsMax"}, {"armorPoints"}, {"fuel"}, {"maxfuel"}, {"needengine"}, {"needtires"}, {"needparts"}, {"receiver"}, } function SaveVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end fileDelete("SaveSystem/XVehicles.xml") xml = xmlCreateFile("SaveSystem/XVehicles.xml","config") xmlSaveFile(xml) count = 0 for _,vehCol in pairs(getElementsByType("colshape")) do if getElementData(vehCol,"vehicle") and not getElementData(vehCol,"tent") then count = count + 1 if getElementData(vehCol,"parent") and isElement(getElementData(vehCol,"parent")) then veh = getElementData(vehCol,"parent") slots = getElementData(vehCol,"MAX_Slots") health = getElementHealth(veh) x,y,z = getElementPosition(veh) ---=========== local SpawnVehXYZ = getElementData(vehCol,"spawn") -- CORREÇÃO rx,ry,rz = getElementRotation(veh) VehInfos = xmlCreateChild(xml,"Veh") xmlNodeSetAttribute(VehInfos,"Name",getVehicleName(veh)) xmlNodeSetAttribute(VehInfos,"ID",getElementModel(veh)) xmlNodeSetAttribute(VehInfos,"Health",math.floor(health)) xmlNodeSetAttribute(VehInfos,"X",x) xmlNodeSetAttribute(VehInfos,"Y",y) xmlNodeSetAttribute(VehInfos,"Z",z) --------------------======================================= xmlNodeSetAttribute(VehInfos,"Spawn_X",SpawnVehXYZ[1]) -- CORREÇÃO xmlNodeSetAttribute(VehInfos,"Spawn_Y",SpawnVehXYZ[2]) -- CORREÇÃO xmlNodeSetAttribute(VehInfos,"Spawn_Z",SpawnVehXYZ[3]) -- CORREÇÃO ---------------------======================================== xmlNodeSetAttribute(VehInfos,"RX",rx) xmlNodeSetAttribute(VehInfos,"RY",ry) xmlNodeSetAttribute(VehInfos,"RZ",rz) VehItens = xmlCreateChild(VehInfos,"Itens") for _,item in pairs(vehicleDataTable)do if(tonumber(getElementData(vehCol,item[1])) and getElementData(vehCol,item[1]) >= 1) then Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end for _,item in pairs(needToSave)do Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end end end xmlSaveFile(xml) xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("#FFFFFFQuantidade de Veículos Salvos #FF0000*#FFFFFF"..count.."#FF0000*",player,255,0,0,true) end end end addEventHandler("onResourceStop",getResourceRootElement(),SaveVehicles) setTimer(SaveVehicles,10000,0) function LoadVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end xml = xmlLoadFile("SaveSystem/XVehicles.xml") for i,node in pairs(xmlNodeGetChildren(xml)) do x = tonumber(xmlNodeGetAttribute(node,"X")) y = tonumber(xmlNodeGetAttribute(node,"Y")) z = tonumber(xmlNodeGetAttribute(node,"Z")) --------------============================= SpawnVx = tonumber(xmlNodeGetAttribute(node,"Spawn_X")) -- CORREÇÃO SpawnVy = tonumber(xmlNodeGetAttribute(node,"Spawn_Y")) -- CORREÇÃO SpawnVz = tonumber(xmlNodeGetAttribute(node,"Spawn_Z")) -- CORREÇÃO --------------============================= rx = tonumber(xmlNodeGetAttribute(node,"RX")) ry = tonumber(xmlNodeGetAttribute(node,"RY")) rz = tonumber(xmlNodeGetAttribute(node,"RZ")) veh = createVehicle(tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z,rx,ry,rz) vehCol = createColSphere(x,y,z,4) ---================= setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),SpawnVx,SpawnVy,SpawnVz}) -- CORREÇÃO ---================= attachElements(vehCol,veh,0,0,0) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementHealth(veh,tonumber(math.floor(xmlNodeGetAttribute(node,"Health")))) for i,Item in pairs(xmlNodeGetChildren(xmlFindChild(node,"Itens",0))) do setElementData(vehCol,xmlNodeGetAttribute(Item,"Item"),tonumber(xmlNodeGetAttribute(Item,"Quant"))) end end xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("Todos os Veículos foram salvos com sucesso",player,255,0,0,true) end end end addEventHandler("onResourceStart",getResourceRootElement(getThisResource()),LoadVehicles) addCommandHandler("savevehs",SaveVehicles) addCommandHandler("loadvehs",LoadVehicles) tenta agora. Link to comment
Lukkas2201 Posted December 3, 2018 Author Share Posted December 3, 2018 3 hours ago, brunob22 said: --------- sistema de backup dos veiculosneedToSave = { {"MAX_Slots"}, {"Tire_inVehicle"}, {"Engine_inVehicle"}, {"Parts_inVehicle"}, {"Tire_inVehicle_HP"}, {"Engine_inVehicle_HP"}, {"Parts_inVehicle_HP"}, {"armorPointsMax"}, {"armorPoints"}, {"fuel"}, {"maxfuel"}, {"needengine"}, {"needtires"}, {"needparts"}, {"receiver"},}function SaveVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end fileDelete("SaveSystem/XVehicles.xml") xml = xmlCreateFile("SaveSystem/XVehicles.xml","config") xmlSaveFile(xml) count = 0 for _,vehCol in pairs(getElementsByType("colshape")) do if getElementData(vehCol,"vehicle") and not getElementData(vehCol,"tent") then count = count + 1 if getElementData(vehCol,"parent") and isElement(getElementData(vehCol,"parent")) then veh = getElementData(vehCol,"parent") slots = getElementData(vehCol,"MAX_Slots") health = getElementHealth(veh) x,y,z = getElementPosition(veh) ---=========== local SpawnVehXYZ = getElementData(vehCol,"spawn") -- CORREÇÃO rx,ry,rz = getElementRotation(veh) VehInfos = xmlCreateChild(xml,"Veh") xmlNodeSetAttribute(VehInfos,"Name",getVehicleName(veh)) xmlNodeSetAttribute(VehInfos,"ID",getElementModel(veh)) xmlNodeSetAttribute(VehInfos,"Health",math.floor(health)) xmlNodeSetAttribute(VehInfos,"X",x) xmlNodeSetAttribute(VehInfos,"Y",y) xmlNodeSetAttribute(VehInfos,"Z",z) --------------------======================================= xmlNodeSetAttribute(VehInfos,"Spawn_X",SpawnVehXYZ[1]) -- CORREÇÃO xmlNodeSetAttribute(VehInfos,"Spawn_Y",SpawnVehXYZ[2]) -- CORREÇÃO xmlNodeSetAttribute(VehInfos,"Spawn_Z",SpawnVehXYZ[3]) -- CORREÇÃO ---------------------======================================== xmlNodeSetAttribute(VehInfos,"RX",rx) xmlNodeSetAttribute(VehInfos,"RY",ry) xmlNodeSetAttribute(VehInfos,"RZ",rz) VehItens = xmlCreateChild(VehInfos,"Itens") for _,item in pairs(vehicleDataTable)do if(tonumber(getElementData(vehCol,item[1])) and getElementData(vehCol,item[1]) >= 1) then Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end for _,item in pairs(needToSave)do Item2 = xmlCreateChild(VehItens,"Item") xmlNodeSetAttribute(Item2,"Item",item[1]) xmlNodeSetAttribute(Item2,"Quant",getElementData(vehCol,item[1]) or 0) end end end end xmlSaveFile(xml) xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("#FFFFFFQuantidade de Veículos Salvos #FF0000*#FFFFFF"..count.."#FF0000*",player,255,0,0,true) end endendaddEventHandler("onResourceStop",getResourceRootElement(),SaveVehicles)setTimer(SaveVehicles,10000,0)function LoadVehicles(player) if isElement(player) then if not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then return end end xml = xmlLoadFile("SaveSystem/XVehicles.xml") for i,node in pairs(xmlNodeGetChildren(xml)) do x = tonumber(xmlNodeGetAttribute(node,"X")) y = tonumber(xmlNodeGetAttribute(node,"Y")) z = tonumber(xmlNodeGetAttribute(node,"Z")) --------------============================= SpawnVx = tonumber(xmlNodeGetAttribute(node,"Spawn_X")) -- CORREÇÃO SpawnVy = tonumber(xmlNodeGetAttribute(node,"Spawn_Y")) -- CORREÇÃO SpawnVz = tonumber(xmlNodeGetAttribute(node,"Spawn_Z")) -- CORREÇÃO --------------============================= rx = tonumber(xmlNodeGetAttribute(node,"RX")) ry = tonumber(xmlNodeGetAttribute(node,"RY")) rz = tonumber(xmlNodeGetAttribute(node,"RZ")) veh = createVehicle(tonumber(xmlNodeGetAttribute(node,"ID")),x,y,z,rx,ry,rz) vehCol = createColSphere(x,y,z,4) ---================= setElementData(vehCol,"spawn",{tonumber(xmlNodeGetAttribute(node,"ID")),SpawnVx,SpawnVy,SpawnVz}) -- CORREÇÃO ---================= attachElements(vehCol,veh,0,0,0) setElementData(vehCol,"parent",veh) setElementData(veh,"parent",vehCol) setElementData(vehCol,"vehicle",true) setElementHealth(veh,tonumber(math.floor(xmlNodeGetAttribute(node,"Health")))) for i,Item in pairs(xmlNodeGetChildren(xmlFindChild(node,"Itens",0))) do setElementData(vehCol,xmlNodeGetAttribute(Item,"Item"),tonumber(xmlNodeGetAttribute(Item,"Quant"))) end end xmlUnloadFile(xml) if isElement(player) then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin"))then outputChatBox("Todos os Veículos foram salvos com sucesso",player,255,0,0,true) end endendaddEventHandler("onResourceStart",getResourceRootElement(getThisResource()),LoadVehicles)addCommandHandler("savevehs",SaveVehicles)addCommandHandler("loadvehs",LoadVehicles) tenta agora. as datas estavam alteradas, fui testando uma por uma e consegui, deu certo cara, obrigado de verdade!!! aproveitando pra nao precisar criar outro tópico, se puder me ajudar tbm, o seguinte, quando spawno os veiculos pela primeira vez pelo svp, ele spawna certingo, dependendo de cada veiculo, com os slots 0/50, entre outros, (o valor 50 varia de cada veículo) e ao respawnar quando explode, ao invez de setar 0/50 novamente, ele spawna 0/0, tentei adicionar um data[5] na linha 34, pois creio que seja nessa data[5] que venha o slots, porém não deu certo, teria como me ajudar também? se possível Link to comment
Other Languages Moderators Lord Henry Posted December 3, 2018 Other Languages Moderators Share Posted December 3, 2018 Impressão minha ou essa table da linha 56 não existe? vehicleDataTable Link to comment
Lukkas2201 Posted December 3, 2018 Author Share Posted December 3, 2018 (edited) 33 minutes ago, Lord Henry said: Impressão minha ou essa table da linha 56 não existe? vehicleDataTable corrigindo **, verdade, confundi com outra coisa, eu juro que ja tinha visto essa table em algum outro lugar, a propria table lembro que tinha visto nao lembro onde, agora fui dar uma pesquisada e realmente nao tem, eu fiquei tipo "ue ???" , mas ela interfere em algo? ou nao muda nada ela estar ali sem existir? Edited December 3, 2018 by Lukkas2201 Link to comment
DNL291 Posted December 3, 2018 Share Posted December 3, 2018 (edited) 15 minutes ago, Lukkas2201 said: sim, ela existe, porém está em um outro arquivo, essa table chama em outro script que tenho, ja tentei alterar ela pra alterar nao lembro oq, e deu falha, tbm achei que nao existia kkk Isso. é uma tabela global do DayZ, assim como a tabela "vehicleSpawns". Falando em alterar as coisas Lukkas2201, acho melhor você nunca fazer isso a menos que saiba o que tá fazendo, o GM é complexo e quem não programa Lua só vai bugar ele. Sobre os slots, eu vi aqui que no código do onVehicleExplode tem essa linha: setTimer(respawnDayZVehicle,1800000,1,id,x,y,z,source,col,getElementData(col,"MAX_Slots")) Então pelo certo ali vai setar os slots do veículo explodido. Só não sei te dizer se é mesmo esse valor, pelo visto é. Pode ser que algum erro no script tenha gerado esse problema, ou isso já veio no GM. Não sei pois nunca tive um server DayZ. Edited December 3, 2018 by DNL291 Link to comment
Lukkas2201 Posted December 3, 2018 Author Share Posted December 3, 2018 15 minutes ago, DNL291 said: Isso. é uma tabela global do DayZ, assim como a tabela "vehicleSpawns". Falando em alterar as coisas Lukkas2201, acho melhor você nunca fazer isso a menos que saiba o que tá fazendo, o GM é complexo e quem não programa Lua só vai bugar ele. Sobre os slots, eu vi aqui que no código do onVehicleExplode tem essa linha: setTimer(respawnDayZVehicle,1800000,1,id,x,y,z,source,col,getElementData(col,"MAX_Slots")) Então pelo certo ali vai setar os slots do veículo explodido. Só não sei te dizer se é mesmo esse valor, pelo visto é. Pode ser que algum erro no script tenha gerado esse problema, ou isso já veio no GM. Não sei pois nunca tive um server DayZ. pior que nao, se eu removo essa linha, ai que os veiculos ficam realmente 0/0, porem creio que com esta linha esteja errado, porque ela consegue fazer com que alguns veiculos respawnem normalmente com os slots corretos, porem outros continuam respawnando com 0/0 Link to comment
DNL291 Posted December 3, 2018 Share Posted December 3, 2018 Foi o que eu quis dizer, ela vai setar o max_slots no veículo que explodir. Você disse que alguns veículos spawnam com os slots, então pode ser que os outros tenham respawnado por estarem na água - vi que tem um timer que verifica isso, e respawna se tiver na água sem setar o max_slots. Se não for isso, como eu disse, deve ser algum bug no seu código. Use o comando /debugscript 3 e veja se mostra alguma mensagem de erro. Link to comment
Lukkas2201 Posted December 3, 2018 Author Share Posted December 3, 2018 11 hours ago, DNL291 said: Foi o que eu quis dizer, ela vai setar o max_slots no veículo que explodir. Você disse que alguns veículos spawnam com os slots, então pode ser que os outros tenham respawnado por estarem na água - vi que tem um timer que verifica isso, e respawna se tiver na água sem setar o max_slots. Se não for isso, como eu disse, deve ser algum bug no seu código. Use o comando /debugscript 3 e veja se mostra alguma mensagem de erro. consegui mano, era isso mesmo, obrigadão, e lhe agradeço também pela paciencia que teve comigo kkk, obrigadão !! 1 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