Jump to content

No hace la funcion deseada


Monsthers

Recommended Posts

Hola gente de la comunidad tengo un problema y tal vez ustedes puedan solucionarmelo :/ Pues tengo un sistema de respawn de autos pero no hace lo que quiero, osea el sistema va asi despues de cada 15 minutos el script da 60 segundos para respawnear los autos vacios hasta hay todo bien, cuando termina el tiempo elimina los autos vacios y asi no es como deberia funcionar osea deberia respawnear los autos vacios ala pocicion donde estaban... Mi server es RPG y mediante una registry tengo el spawn de los autos y bloqueados a dicha clase, pues cuando da el respawn me elimina los autos de los trabajos y deberia ponerlos en la posicion inicial o la pocicion que esta en la db. Creo que me explique bien, Gracias antemano

 

respawnlock = false
addEventHandler("onResourceStart", resourceRoot, function()
	mainTimer = setTimer(respawnVehicles, 900000, 0)
end)

function respawnVehicles()
	if not respawnlock then
		respawnlock = true
		exports.SAVGcommands:sendMessage("*RESPAWN* Respawneando todos los vehículos desocupados en 30 segundos!", 0, 255, 0, root)
		setTimer ( function(msg, target, r, g, b) exports.SAVGcommands:sendMessage(msg, r, g, b, target) end , 10000, 1, "*RESPAWN* Respawneando todos los vehículos desocupados en 20 segundos!!", getRootElement(), 0, 255, 0 )
		setTimer ( function(msg, target, r, g, b) exports.SAVGcommands:sendMessage(msg, r, g, b, target) end, 20000, 1, "*RESPAWN* Respawneando todos los vehículos desocupados en 10 segundos!", getRootElement(), 0, 255, 0 )
		setTimer ( function(msg, target, r, g, b) exports.SAVGcommands:sendMessage(msg, r, g, b, target) end, 25000, 1, "*RESPAWN* Respawneando todos los vehículos desocupados en 5 segundos!", getRootElement(), 0, 255, 0 )
		setTimer ( vehrestask, 30000, 1)
		resetTimer(mainTimer)
	end
end

function respawnCommand(player)
	if not respawnlock then
		if exports.SAVGacl:isPlayerInGroup(player, "subadmin") then
			respawnVehicles()
		end
	else
		exports.SAVGcommands:sendMessage("*RESPAWN* Esperando respawneo completo para finalizar!", 0, 255, 0, player)
	end
end
addCommandHandler("vehiclerespawn", respawnCommand)

function vehrestask()
	local resVehicles = getElementsByType("vehicle")
	exports.SAVGvehicles:fullRecache()
	for i,v in ipairs(resVehicles) do
		local occupants = getVehicleOccupants(v) -- Get all vehicle occupants
		
		local occupied = false
		
		if occupants then
			for seat, occupant in pairs(occupants) do
				if occupant then
					occupied = true
					break
				end
			end
		end
		
		if getVehicleController(v) then
			occupied = true
		end
		
		if not occupied then
			if getElementData(v, "WSSvehicles") then
				local id = tonumber(getElementData(v, "vehicleID"))
				if id then
					destroyElement(v)
					exports.SAVGvehicles:vehicleRecache(id)
				else
					destroyElement(v)
				end
			--[[elseif getElementData(v, "personalVehicle") then
				exports.WSShousing:vehicleRecache(v)]]--
			else
				if not getElementData(v, "personalVehicleID") then
					destroyElement(v)
				end
			end
		end
	end
	if getResourceState(getResourceFromName("SAVGpublicvehicles")) == "running" then exports.SAVGpublicvehicles:spawnPublicCars() end
	exports.SAVGcommands:sendMessage("*RESPAWN* Todos los autos vacios han sido respawneados", 0, 255, 0, root)
	respawnlock = false
end

 

Link to comment
respawnlock = false
addEventHandler("onResourceStart", resourceRoot, function()
	mainTimer = setTimer(respawnVehicles, 900000, 0)
end)

function respawnVehicles()
	if not respawnlock then
		respawnlock = true
		exports.SAVGcommands:sendMessage("*RESPAWN* Respawneando todos los vehículos desocupados en 30 segundos!", 0, 255, 0, root)
		setTimer ( function(msg, target, r, g, b) exports.SAVGcommands:sendMessage(msg, r, g, b, target) end , 10000, 1, "*RESPAWN* Respawneando todos los vehículos desocupados en 20 segundos!!", getRootElement(), 0, 255, 0 )
		setTimer ( function(msg, target, r, g, b) exports.SAVGcommands:sendMessage(msg, r, g, b, target) end, 20000, 1, "*RESPAWN* Respawneando todos los vehículos desocupados en 10 segundos!", getRootElement(), 0, 255, 0 )
		setTimer ( function(msg, target, r, g, b) exports.SAVGcommands:sendMessage(msg, r, g, b, target) end, 25000, 1, "*RESPAWN* Respawneando todos los vehículos desocupados en 5 segundos!", getRootElement(), 0, 255, 0 )
		setTimer ( vehrestask, 30000, 1)
		resetTimer(mainTimer)
	end
end

function respawnCommand(player)
	if not respawnlock then
		if exports.SAVGacl:isPlayerInGroup(player, "subadmin") then
			respawnVehicles()
		end
	else
		exports.SAVGcommands:sendMessage("*RESPAWN* Esperando respawneo completo para finalizar!", 0, 255, 0, player)
	end
end
addCommandHandler("vehiclerespawn", respawnCommand)

function vehrestask()
	local resVehicles = getElementsByType("vehicle")
	exports.SAVGvehicles:fullRecache()
	for i,v in ipairs(resVehicles) do
		local occupants = getVehicleOccupants(v) -- Get all vehicle occupants
		
		local occupied = false
		
		if occupants then
			for seat, occupant in pairs(occupants) do
				if occupant then
					occupied = true
					break
				end
			end
		end
		
		if getVehicleController(v) then
			occupied = true
		end
		
		if not occupied then
			if getElementData(v, "WSSvehicles") then
				local id = tonumber(getElementData(v, "vehicleID"))
				if id then
					respawnVehicle ( v )
					exports.SAVGvehicles:vehicleRecache(id)
				else
					respawnVehicle ( v )
				end
			--[[elseif getElementData(v, "personalVehicle") then
				exports.WSShousing:vehicleRecache(v)]]--
			else
				if not getElementData(v, "personalVehicleID") then
					respawnVehicle ( v )
				end
			end
		end
	end
	if getResourceState(getResourceFromName("SAVGpublicvehicles")) == "running" then exports.SAVGpublicvehicles:spawnPublicCars() end
	exports.SAVGcommands:sendMessage("*RESPAWN* Todos los autos vacios han sido respawneados", 0, 255, 0, root)
	respawnlock = false
end

 

Esto sirve para respawnearlos pero cuando los creas deberás hacerles esto: https://wiki.multitheftauto.com/wiki/SetVehicleRespawnPosition para ponerle la posición de respawneo, si no se hace esto el vehículo sera respawneado en el sitio de su creación.

Link to comment

Me estas diciendo que tendre que darle pocicion de spawneo a todos los vehiculos? El script no me respawnea los vehiculos a su pocicion original. me los desaparece, Ejemplo el trabajo del piloto, Tengo un shamal en el aerepuerto de los santos y el piloto lo llevo al aereopuerto de san fierro. El respawn deberia poner el avion en su spawn original que vendria siendo el aereopuerto de los santos y no lo que hace es eliminar el coche entonces yo tendria que estar reseteando el script de vehiculos para poner el avion otra vez

Link to comment

Lo que te estoy diciendo es que con el código que yo te envié al crear el vehiculo se le asigna por así decirlo el respawn donde spawneo pero si tu mueves el vehiculo y guardas en el mysql su posición y entonces lo spawneas pues aparecerá en esa posición que ya no seria Aeropuerto si no que otro lugar en cambio si tu no guardas la posición y solo spawneas siempre en el mismo sitio no hay problema pero con el codigo que yo te pase arregle el error que tenias que eliminaba el vehículo ahora lo debería de respawnear.

Link to comment
  • Recently Browsing   0 members

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