Jump to content

Problema interior e dimensão


Recommended Posts

Posted

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.

Posted

Porque a dimensão/Interior são setados no lado client. Use o código no lado server que irá funcionar.

  • Thanks 1

Please do not PM me with scripting related question nor support, use the forums instead.

Posted (edited)

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
Posted

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)

 

Please do not PM me with scripting related question nor support, use the forums instead.

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