SrPeixoto Posted May 13, 2020 Share Posted May 13, 2020 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 Link to comment
Nadion Posted May 13, 2020 Share Posted May 13, 2020 Creio que você vai precisar de createColSphere e getElementPosition Link to comment
Furzy Posted May 13, 2020 Share Posted May 13, 2020 (edited) pode usar também uma marker e usar a função https://wiki.multitheftauto.com/wiki/CreateMarkerAttachedTo para attach no player Edited May 13, 2020 by Furzy Link to comment
SrPeixoto Posted May 13, 2020 Author Share Posted May 13, 2020 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 Link to comment
Nadion Posted May 13, 2020 Share Posted May 13, 2020 (edited) 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 May 13, 2020 by Nadion Link to comment
SrPeixoto Posted May 13, 2020 Author Share Posted May 13, 2020 (edited) Agora que vi, não tá sendo especificado que é no player... Edited May 13, 2020 by SrPeixoto Errado Link to comment
Angelo Pereira Posted May 13, 2020 Share Posted May 13, 2020 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) 1 Link to comment
SrPeixoto Posted May 13, 2020 Author Share Posted May 13, 2020 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
Nadion Posted May 13, 2020 Share Posted May 13, 2020 3 minutes ago, SrPeixoto said: Deu certo mano mas como eu coloco, para o player ja nascer com ele? Coloca um onPlayerJoin se for pra todos ou um onPlayerLogin pra se for só pra usuários registrados Link to comment
SrPeixoto Posted May 13, 2020 Author Share Posted May 13, 2020 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
Nadion Posted May 13, 2020 Share Posted May 13, 2020 (edited) 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 May 13, 2020 by Nadion Link to comment
SrPeixoto Posted May 13, 2020 Author Share Posted May 13, 2020 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
Nadion Posted May 13, 2020 Share Posted May 13, 2020 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
SrPeixoto Posted May 13, 2020 Author Share Posted May 13, 2020 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
Nadion Posted May 13, 2020 Share Posted May 13, 2020 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
SrPeixoto Posted May 13, 2020 Author Share Posted May 13, 2020 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now