OrbTanT Posted August 4, 2014 Share Posted August 4, 2014 bom, estou criando um sistema de paraquedismo, onde depois de digitar o /pular no marker, o jogador é teleportado para o topo do mapa com um parachute, onde tem que cair dentro do marker1, alguém pode me ajudar a corrigir e melhorar esse script. gostaria que se o jogador sair dentro do marker 1, ele ganha 5000$ e depois de cair dentro e receber o dinheiro o marker1 é destruído, o mesmo acontece quando o jogador cai fora do marker1, mais se cair fora do marker1 ele não ganha o dinheiro e o marker1 é destuído, não estou conseguindo fazer. está apresentando o seguinte erro WARNING: paraquedismo\server.lua:34: Bad argument @ 'addEventHandler' [Expected element at argument 2, got nil] local Marker = createMarker ( -2235.21, -1736.60, 479.80, "cylinder", 2.5, 0, 0, 255, 170 ) function paraquedismo ( thePlayer, matchingDimension ) if isElementWithinMarker( thePlayer, Marker) then outputChatBox("Para pular de paraquedas digite /pular!", thePlayer, 255, 0, 0) end end addEventHandler ("onMarkerHit", Marker, paraquedismo) function pular ( playerSource, matchingDimension ) if isElementWithinMarker( playerSource, Marker) then setElementPosition( playerSource, -2235.21, -1736.60, 1300.80 ) giveWeapon ( playerSource, 46 ) setPedWeaponSlot(playerSource, getSlotFromWeapon(46)) outputChatBox("Caia no Alvo para ganhar 5000$!", thePlayer, 255, 0, 0) local Marker1 = createMarker ( -2407.97, -596.58, 131.80, "cylinder", 7.0, 0, 0, 255, 170 ) local blip1 = createBlip( -2407.97, -596.58, 132.64, 0, 0, 0, 255, 255 ) setBlipSize ( blip1, 5 ) else outputChatBox("Você não está na área de Paraquedismo!", thePlayer, 255, 0, 0) end end addCommandHandler ( "pular", pular ) function cairmarker ( playerSource, matchingDimension ) if isElementWithinMarker( playerSource, Marker1) then givePlayerMoney(playerSource, 5000) outputChatBox("Você ganhou 5000$ por cair no alvo!", playerSource, 255, 0, 0) else outputChatBox("Você não conseguiu cair no Alvo!", playerSource, 255, 0, 0) end end addEventHandler ("onMarkerHit", Marker1, cairmarker) Link to comment
manawydan Posted August 7, 2014 Share Posted August 7, 2014 tente isso local Marker = createMarker ( -2235.21, -1736.60, 479.80, "cylinder", 2.5, 0, 0, 255, 170 ) local Marker1=nil local blip1=nil function paraquedismo ( thePlayer, matchingDimension ) if isElementWithinMarker( thePlayer, Marker) then outputChatBox("Para pular de paraquedas digite /pular!", thePlayer, 255, 0, 0) end end addEventHandler ("onMarkerHit", Marker, paraquedismo) function pular ( playerSource, matchingDimension ) if isElementWithinMarker( playerSource, Marker) then setElementPosition( playerSource, -2235.21, -1736.60, 1300.80 ) giveWeapon ( playerSource, 46 ) setPedWeaponSlot(playerSource, getSlotFromWeapon(46)) outputChatBox("Caia no Alvo para ganhar 5000$!", thePlayer, 255, 0, 0) Marker1 = createMarker ( -2407.97, -596.58, 131.80, "cylinder", 7.0, 0, 0, 255, 170 ) blip1 = createBlip( -2407.97, -596.58, 132.64, 0, 0, 0, 255, 255 ) setBlipSize ( blip1, 5 ) else outputChatBox("Você não está na área de Paraquedismo!", thePlayer, 255, 0, 0) end end addCommandHandler ( "pular", pular ) function cairmarker ( playerSource, matchingDimension ) if isElementWithinMarker( playerSource, Marker1) then givePlayerMoney(playerSource, 5000) outputChatBox("Você ganhou 5000$ por cair no alvo!", playerSource, 255, 0, 0) else outputChatBox("Você não conseguiu cair no Alvo!", playerSource, 255, 0, 0) end end addEventHandler ("onMarkerHit", Marker1, cairmarker) Link to comment
DNL291 Posted August 8, 2014 Share Posted August 8, 2014 manawydan, addEventHandler na linha 36 vai dar erro porquê Marker1 vai retornar nil. A marca só está sendo criada quando digita o comando pular. mais se cair fora do marker1 ele não ganha o dinheiro e o marker1 é destuído, não estou conseguindo fazer. Essa parte eu acredito que não será tão fácil. As formas que me vem a mente são: Verificar com o evento "onClientRender" se o jogador continua com o paraquedas ou não (se não estiver, significa que ele já usou o paraquedas e está no chão) e chamar a função de quando ele cair fora da marca. Ou, usar a função isPedOnGround novamente no evento "onClientRender", e o evento só deverá ser chamado quando ele sair do chão com o paraquedas. Pode ter outras maneiras melhores de fazer isso, no entanto. Talvez o recurso padrão do MTA chamado parachute possa te ajudar nisso, não tenho certeza já que nunca usei ele. 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