Jump to content

outputchatbox aparecendo em todos os markers


Recommended Posts

--- Server -----

local marker123 = createMarker(589.438, 870.218, -42.497, 'cylinder', 1.0, 30, 144, 255, 150)

function marker123(markerHit)
            setElementData ( source, "Emprego", "Mineirador" )
    	    outputChatBox("/infos para marcar os markers",source,255,255,0) -- Output that they are.
end
addEventHandler("onPlayerMarkerHit",getRootElement(),marker123)

outputchatbox aparecendo em todos os markers do server, alguma ideia de como corrigir?

Link to comment
  • Scripting Moderators

Hi,

Your thread has been moved to the Portuguese scripting language so you can get better assistance.
As stated previously, avoid using the Tutorials section to post such topics, but rather use this language-specific section as it's more suited.

Link to comment
14 hours ago, Duff1995 said:
--- Server -----

local marker123 = createMarker(589.438, 870.218, -42.497, 'cylinder', 1.0, 30, 144, 255, 150)

function marker123(markerHit)
            setElementData ( source, "Emprego", "Mineirador" )
    	    outputChatBox("/infos para marcar os markers",source,255,255,0) -- Output that they are.
end
addEventHandler("onPlayerMarkerHit",getRootElement(),marker123)

outputchatbox aparecendo em todos os markers do server, alguma ideia de como corrigir?

No evento o segundo parametro deve ser o marker, getRootElement() ele puxa todos os markers, então mude aquela definição deixando-a assim:

 

--- Server -----

local marker123 = createMarker(589.438, 870.218, -42.497, 'cylinder', 1.0, 30, 144, 255, 150)

function markerfunction(player)
            setElementData ( player, "Emprego", "Mineirador" ) -- alterei de source para player, pois source neste evento é o marker!
    	    outputChatBox("/infos para marcar os markers",player,255,255,0) -- Output that they are.
end
addEventHandler("onPlayerMarkerHit", marker123, markerfunction)

 

  • Thanks 1
Link to comment
  • 1 month later...

Na segunda linha, a função "setElementData" está tentando definir um dado de elemento para a origem do evento, mas "source" se refere ao marcador que foi atingido e não ao jogador que atingiu o marcador. Portanto, a mensagem "Emprego: Mineirador" é definida no marcador que foi atingido, e não no jogador que atingiu o marcador.

Na terceira linha, a função "outputChatBox" está enviando uma mensagem para todos os jogadores no servidor, incluindo o marcador que foi atingido. Para corrigir esse problema, você pode usar a função "source" para se referir ao jogador que atingiu o marcador e enviar a mensagem apenas para esse jogador, em vez de enviá-la para todos no servidor.

Tente substituir o conteúdo da função "marker123" pelo código abaixo:

function marker123(hitElement, matchingDimension)
	if getElementType(hitElement) == "player" then
		setElementData(hitElement, "Emprego", "Mineirador")
		outputChatBox("/infos para marcar os markers", hitElement, 255, 255, 0)
	end
end

Dessa forma, a função "marker123" agora verifica se o elemento que atingiu o marcador é um jogador antes de definir o dado de elemento e enviar a mensagem de bate-papo apenas para o jogador que atingiu o marcador.

Me desculpe, esqueci de completar o codigo.

local marker123 = createMarker(589.438, 870.218, -42.497, 'cylinder', 1.0, 30, 144, 255, 150)

addEventHandler("onMarkerHit", marker123, function(hitElement, matchingDimension)
    if getElementType(hitElement) == "player" and matchingDimension then
       setElementData(hitElement, "Emprego", "Mineirador")
	   outputChatBox("/infos para marcar os markers", hitElement, 255, 255, 0)
    end
end)

 

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