Jump to content

Área ao redor do PLAYER


Recommended Posts

1 hour ago, SrPeixoto said:

Poderiam me explicar melhor, sou novo nessa área ?

 

Ex: 


Function AreaPlayer()
  
Local x,y,z = GetElementData (localplayer)

  If


    End
End

Nessa parte que não sei

Cara, sou básico em Lua e chego a entender um código até que bem porém não programo em Lua. Pelo que o outro parceiro disse ali, dá pra você criar também um marker ligado ao player e definir nos parâmetros dele as informações dele. Seria algo do tipo ( pode não estar certo e creio que não está, porém a lógica seria essa ?

Quote

function areaPlayer( source )
  local marker = createMarkerAttachedTo ( source, "cylinder", 1, 0, 0, 255, 255)
  if
    -- Condição para o que você quer fazer
  else
    --Condição para caso contrário
  end
addEventHandler("onMarkerHit", marker, areaPlayer)

 

Ou pode usar o createColCircle com a localização do player e usar o attachElements

function areaPlayer( source )
  local x,y,z = getElementPosition(source)
  local shape = createColCircle( x, y, z, 2)
  attachElements( marker, source, 0, 0, 2 )
end

 

Edited by Nadion
Link to comment

Testa lá :

local markers = { }

addCommandHandler ( "createmarker", function ( thePlayer )
   if markers[thePlayer] and isElementWithinMarker ( thePlayer, markers[thePlayer] ) then
      return outputChatBox("Já Existe um Marker em Você!", thePlayer, 255, 255, 255, true)
   end
   local x,y,z = getElementPosition(thePlayer)
   markers[thePlayer] = createMarker ( x,y,z, "cylinder", 5, 100, 0, 0, 50 )
   attachElements(markers[thePlayer], thePlayer, 0,0,-1)
   outputChatBox("Criado com Sucesso !", thePlayer, 255, 255, 255, true)
end)

addEventHandler( "onPlayerQuit", root, function ( )
   if markers[source] and isElementWithinMarker ( source, markers[source] ) then
      destroyElement(markers[source])
      markers[source] = nil
   end
end)

 

  • Like 1
Link to comment
3 hours ago, SrPeixoto said:

Como eu faço para criar uma "área" ao redor do player?

 

EX: onde o jogador faz, um "cilindro" acompanha ele ...

 

Exemplo de "área":  https://imgur.com/1xSIcJO

 

52 minutes ago, Angelo Pereira said:

Testa lá :


local markers = { }

addCommandHandler ( "createmarker", function ( thePlayer )
   if markers[thePlayer] and isElementWithinMarker ( thePlayer, markers[thePlayer] ) then
      return outputChatBox("Já Existe um Marker em Você!", thePlayer, 255, 255, 255, true)
   end
   local x,y,z = getElementPosition(thePlayer)
   markers[thePlayer] = createMarker ( x,y,z, "cylinder", 5, 100, 0, 0, 50 )
   attachElements(markers[thePlayer], thePlayer, 0,0,-1)
   outputChatBox("Criado com Sucesso !", thePlayer, 255, 255, 255, true)
end)

addEventHandler( "onPlayerQuit", root, function ( )
   if markers[source] and isElementWithinMarker ( source, markers[source] ) then
      destroyElement(markers[source])
      markers[source] = nil
   end
end)

 

Deu certo mano ❤️ mas como eu coloco, para o player ja nascer com ele?

 

Link to comment
1 minute ago, Nadion said:

Coloca um onPlayerJoin se for pra todos ou um onPlayerLogin pra se for só pra usuários registrados

addEventHandler( "onPlayerLogin", root, function ( thePlayer )
   if markers[thePlayer] and isElementWithinMarker ( thePlayer, markers[thePlayer] ) then
      return outputChatBox("Já Existe um Marker em Você!", thePlayer, 255, 255, 255, true)
   end
   local x,y,z = getElementPosition(thePlayer)
   markers[thePlayer] = createMarker ( x,y,z, "cylinder", 5, 100, 0, 0, 50 )
   attachElements(markers[thePlayer], thePlayer, 0,0,-1)
   outputChatBox("Criado com Sucesso !", thePlayer, 255, 255, 255, true)
end)

addEventHandler( "onPlayerQuit", root, function ( )
   if markers[source] and isElementWithinMarker ( source, markers[source] ) then
      destroyElement(markers[source])
      markers[source] = nil
   end
end)

então ficaria assim?

 

Link to comment
3 minutes ago, SrPeixoto said:

addEventHandler( "onPlayerLogin", root, function ( thePlayer )
   if markers[thePlayer] and isElementWithinMarker ( thePlayer, markers[thePlayer] ) then
      return outputChatBox("Já Existe um Marker em Você!", thePlayer, 255, 255, 255, true)
   end
   local x,y,z = getElementPosition(thePlayer)
   markers[thePlayer] = createMarker ( x,y,z, "cylinder", 5, 100, 0, 0, 50 )
   attachElements(markers[thePlayer], thePlayer, 0,0,-1)
   outputChatBox("Criado com Sucesso !", thePlayer, 255, 255, 255, true)
end)

addEventHandler( "onPlayerQuit", root, function ( )
   if markers[source] and isElementWithinMarker ( source, markers[source] ) then
      destroyElement(markers[source])
      markers[source] = nil
   end
end)

então ficaria assim?

 

Creio que sim, como não entendo direito da passagem de parâmetros pra funções e Handlers, pode talvez dar um erro por ovcê ter tirado o "createmarker"

Você chegou a testar isso?

Edited by Nadion
Link to comment
1 minute ago, Nadion said:

Creio que sim, como não entendi direito da passagem de parâmetros pra funções e Handlers, pode talvez dar um erro por ovcê ter tirado o "createmarker"

Você chegou a testar isso?

testei agora, mas nao foi

Link to comment
2 minutes ago, SrPeixoto said:

testei agora, mas nao foi

Tente algo como

al markers = { }

addCommandHandler ( "onPlayerLogin", "createmarker", function ( thePlayer )
   if markers[thePlayer] and isElementWithinMarker ( thePlayer, markers[thePlayer] ) then
      return outputChatBox("Já Existe um Marker em Você!", thePlayer, 255, 255, 255, true)
   end
   local x,y,z = getElementPosition(thePlayer)
   markers[thePlayer] = createMarker ( x,y,z, "cylinder", 5, 100, 0, 0, 50 )
   attachElements(markers[thePlayer], thePlayer, 0,0,-1)
   outputChatBox("Criado com Sucesso !", thePlayer, 255, 255, 255, true)
end)

addEventHandler( "onPlayerQuit", root, function ( )
   if markers[source] and isElementWithinMarker ( source, markers[source] ) then
      destroyElement(markers[source])
      markers[source] = nil
   end
end)

 

Errei em uma parte, tente manter o root ficando algo como isso:

local markers = { }

addCommandHandler ( "onPlayerLogin", root, "createmarker", function ( thePlayer )
   if markers[thePlayer] and isElementWithinMarker ( thePlayer, markers[thePlayer] ) then
      return outputChatBox("Já Existe um Marker em Você!", thePlayer, 255, 255, 255, true)
   end
   local x,y,z = getElementPosition(thePlayer)
   markers[thePlayer] = createMarker ( x,y,z, "cylinder", 5, 100, 0, 0, 50 )
   attachElements(markers[thePlayer], thePlayer, 0,0,-1)
   outputChatBox("Criado com Sucesso !", thePlayer, 255, 255, 255, true)
end)

addEventHandler( "onPlayerQuit", root, function ( )
   if markers[source] and isElementWithinMarker ( source, markers[source] ) then
      destroyElement(markers[source])
      markers[source] = nil
   end
end)

 

Link to comment
7 minutes ago, Nadion said:

Tente algo como


al markers = { }

addCommandHandler ( "onPlayerLogin", "createmarker", function ( thePlayer )
   if markers[thePlayer] and isElementWithinMarker ( thePlayer, markers[thePlayer] ) then
      return outputChatBox("Já Existe um Marker em Você!", thePlayer, 255, 255, 255, true)
   end
   local x,y,z = getElementPosition(thePlayer)
   markers[thePlayer] = createMarker ( x,y,z, "cylinder", 5, 100, 0, 0, 50 )
   attachElements(markers[thePlayer], thePlayer, 0,0,-1)
   outputChatBox("Criado com Sucesso !", thePlayer, 255, 255, 255, true)
end)

addEventHandler( "onPlayerQuit", root, function ( )
   if markers[source] and isElementWithinMarker ( source, markers[source] ) then
      destroyElement(markers[source])
      markers[source] = nil
   end
end)

 

sem sucesso, faz assim, em vez de ja entrar com, como faço para colocar em BindKey??

Link to comment
1 minute ago, SrPeixoto said:

sem sucesso, faz assim, em vez de ja entrar com, como faço para colocar em BindKey??

Eu acabei mudando o código depois, tenta o segundo que tá nesse mesmo post.

Se for usar um bindKey precisa passar dentro dela o source, tecla, o estado da tecla e a função, ficando algo como exemplo

bindKey ( source, "tecla", "both", função )

Se ainda assim não der, espere o Angelo responder, ele claramente entende melhor de programação em Lua do que eu hahahahaha

Link to comment

Vou explicar para vocês o que eu quero, ver se fica mas facil

function AreaPlayer( thePlayer, hitElement , matchingDimension )
	local elementType = getElementType( hitElement )
   if zona[thePlayer] and isElementWithinMarker ( thePlayer, zona[thePlayer] ) then
      return outputChatBox("", thePlayer, 255, 255, 255, true)
   end
   local x,y,z = getElementPosition(thePlayer)
   
   zona[thePlayer] = createMarker ( x,y,z, "cylinder", 5, 100, 0, 0, 50 )
   attachElements(zona[thePlayer], thePlayer, 0,0,-1)
   outputChatBox("", thePlayer, 255, 255, 255, true)
   
   if getElementType(thePlayer) == "player" then
		local rand = math.random(1,5)
		setElementData(thePlayer, "contagio", getElementData(thePlayer, "contagio") + rand)
		outputChatBox("Você tem #FFFF00"..rand.." #FFFFFF% de infecção.", thePlayer, 255, 255, 255, true)
	end
end
addCommandHandler("ct", AreaPlayer)


addEventHandler( "onPlayerQuit", root, function ( )
   if zona[source] and isElementWithinMarker ( source, zona[source] ) then
      destroyElement(zona[source])
      zona[source] = nil
   end
end)

Eu quero que esse codigo, se encaixe com esse de baixo 

local hillArea = createColRectangle(1402.8900146484,-1834.7972412109, 150, 90)

function hill_Enter(thePlayer, matchingDimension)
	if getElementType(thePlayer) == "player" then
		local rand = math.random(1,5)
		setElementData(thePlayer, "contagio", getElementData(thePlayer, "contagio") + rand)
		outputChatBox("Você tem #FFFF00"..rand.." #FFFFFF% de infecção.", thePlayer, 255, 255, 255, true)
	end
end
addEventHandler("onColShapeHit", hillArea, hill_Enter)

Ou seja, quando o player entrar em contato com o 

zona[thePlayer] = createMarker ( x,y,z, "cylinder", 5, 100, 0, 0, 50 )

ele ter essa "função"

if getElementType(thePlayer) == "player" then
		local rand = math.random(1,5)
		setElementData(thePlayer, "contagio", getElementData(thePlayer, "contagio") + rand)
		outputChatBox("Você tem #FFFF00"..rand.." #FFFFFF% de infecção.", thePlayer, 255, 255, 255, true)
	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...