Jump to content

Spawn de Veiculo


Recommended Posts

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

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
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
  • Moderators

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 by DNL291
Link to comment
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 by brunob22
Link to comment
  • Moderators
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
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
--------- 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
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
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 by Lukkas2201
Link to comment
  • Moderators
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 by DNL291
Link to comment
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
  • Moderators

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
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 !!

  • Thanks 1
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...