Jump to content

Problema interior e dimensão


Recommended Posts

Client:

local Ped_Loja1 = createPed( 120, 369.34680175781,-4.4927525520325,1001.8515625 )
setElementInterior(Ped_Loja1, 9 )
setElementDimension(Ped_Loja1, 4)
setElementRotation(Ped_Loja1,-0, 0, 178.03739929199)

local Entrar_Loja1 = createMarker(2420.4567871094,-1508.8905029297,24+1, "arrow", 1.5, 255, 255, 0, 255)
createBlipAttachedTo(Entrar_Loja1, 17 )

local Sair_Loja1 = createMarker(364.90844726563,-11.365772247314,1001.8515625+1, "arrow", 1.5, 255, 255, 0, 255)
setElementInterior(Sair_Loja1, 9)
setElementDimension(Sair_Loja1, 4)

local Marker_Loja1 = createMarker(369.40029907227,-6.3861293792725,1001.8515625-1, "cylinder", 1.5, 255, 0, 0, 255)
setElementInterior(Marker_Loja1, 9)
setElementDimension(Marker_Loja1, 4)



addEventHandler( "onClientMarkerHit", root,
	function ( Marker1 )
    	if Marker1 == localPlayer then
if source == Entrar_Loja1 and assalta == true and ativo == true and passivo == false then
setElementPosition(localPlayer, 364.90844726563,-11.365772247314+2,1001.8515625 )
setElementInterior(localPlayer, 9, 364.90844726563,-11.365772247314+2,1001.8515625)
setElementDimension(localPlayer, 4)
exports["notices"]:addNotification("Digite /roubar dentro do marker para assaltar a loja",'info')
elseif source == Sair_Loja1 then
setElementPosition (localPlayer, 2420.4567871094,-1508.8905029297+3,24)
setElementInterior (localPlayer, 0, 2420.4567871094,-1508.8905029297+3,24)
setElementDimension(localPlayer, 0)
      		
        end
    end
end
)

Em um servidor local com 2 computadores, o computador principal entra no marker Entrar_Loja1 e é movido com sucesso para dimensão 4 interior 9. Já o computador secundário ao entrar no marker Entrar_Loja1 é movido, porém sua dimensão e interior continuam 0.

Em um servidor publico com 3 jogadores, o computador principal continua se movendo com sucesso para dimensão e interior. Já os demais jogadores continuam com o problema do computador secundário.

O computador principal a que me refiro é o meu. Nenhum erro é gerado no debugscript.

Link to comment

O script precisa ser do lado client por conta de algumas informações, no caso eu posso utilizar triggerServerEvent somente para setar a dimensão/interior?

 

@Resolvido,

Server:

function coordenada1()
setElementPosition(source, 364.90844726563,-11.365772247314+2,1001.8515625 )
setElementInterior(source, 9, 364.90844726563,-11.365772247314+2,1001.8515625)
setElementDimension(source, 4)
end
addEvent("coordenada1", true)
addEventHandler("coordenada1", root, coordenada1)

function coordenada2()
setElementPosition (source, 2420.4567871094,-1508.8905029297+3,24)
setElementInterior (source, 0, 2420.4567871094,-1508.8905029297+3,24)
setElementDimension(source, 0)
end
addEvent("coordenada2", true)
addEventHandler("coordenada2", root, coordenada2)

Client:

local Ped_Loja1 = createPed( 120, 369.34680175781,-4.4927525520325,1001.8515625 )
setElementInterior(Ped_Loja1, 9 )
setElementDimension(Ped_Loja1, 4)
setElementRotation(Ped_Loja1,-0, 0, 178.03739929199)

local Entrar_Loja1 = createMarker(2420.4567871094,-1508.8905029297,24+1, "arrow", 1.5, 255, 255, 0, 255)
createBlipAttachedTo(Entrar_Loja1, 17 )

local Sair_Loja1 = createMarker(364.90844726563,-11.365772247314,1001.8515625+1, "arrow", 1.5, 255, 255, 0, 255)
setElementInterior(Sair_Loja1, 9)
setElementDimension(Sair_Loja1, 4)

local Marker_Loja1 = createMarker(369.40029907227,-6.3861293792725,1001.8515625-1, "cylinder", 1.5, 255, 0, 0, 255)
setElementInterior(Marker_Loja1, 9)
setElementDimension(Marker_Loja1, 4)



addEventHandler( "onClientMarkerHit", root,
	function ( Marker1 )
    	if Marker1 == localPlayer then
if source == Entrar_Loja1 and assalta == true and ativo == true and passivo == false then
triggerServerEvent ("coordenada1", localPlayer)
exports["notices"]:addNotification("Digite /roubar dentro do marker para assaltar a loja",'info')
elseif source == Sair_Loja1 then
triggerServerEvent ("coordenada2", localPlayer)
        end
    end
end
)

 

Edited by SidneiJR
Link to comment

Isso mesmo. A função setElementInterior já tem os argumentos do teleporte então é desnecessária a função setElementPosition. Também é melhor usar apenas um evento pra isso, tipo assim:

--client
addEventHandler( "onClientMarkerHit", root,
function ( Marker1 )
	if Marker1 == localPlayer then
		if source == Entrar_Loja1 and assalta == true and ativo == true and passivo == false then
			triggerServerEvent ("doSetPlayerLocation", localPlayer)
			exports["notices"]:addNotification("Digite /roubar dentro do marker para assaltar a loja",'info')
		elseif source == Sair_Loja1 then
			triggerServerEvent ("doSetPlayerLocation", localPlayer, true)
		end
	end
end
)

-- server
function setPlayerLocation( exit )
	if exit ~= true then
		setElementInterior(source, 9, 364.90844726563,-11.365772247314+2,1001.8515625)
		setElementDimension(source, 4)
		return
	end
	setElementInterior (source, 0, 2420.4567871094,-1508.8905029297+3,24)
	setElementDimension(source, 0)
end
addEvent("doSetPlayerLocation", true)
addEventHandler("doSetPlayerLocation", root, setPlayerLocation)

 

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