Jump to content

AJUDA EM UM TRABALHO


Recommended Posts

Estou fazendo um trabalho que é por etapas ( EXEMPLO: Vai até a DP, depois até o hospital, praia, e assim por diante ) e nessas etapas esta tendo uma espécie de bug e eu não estou conseguindo resolver, quando o player passa por uma marker para entregar em uma das etapas, entrega,fica invisível e aparece a próxima etapa, mas quando eu passo novamente na que eu acabei de passar mostra a mensagem no chat, como se eu ainda não houvesse passado por ali, tem como resolver isso? Grato, por quem ajudar me ajudar :)

Ai está as funções:

function parte2 (source)
if veh[source] and isElement(veh[source]) then
setElementVisibleTo ( entregartrab3, source, false )
setElementVisibleTo ( bliptrab3, source, false )
 outputChatBox ("#6495ED┌#FFFFFF=========================================================",source,0,0,0,true )
 outputChatBox ("#6495ED├#FFFFFF[ #6495EDBRINKSᴮᵛᴿ #FFFFFF]#FFFFFF Você abasteceu (#6495ED01/03#FFFFFF) bancos da cidade",source,0,0,0,true )
 outputChatBox ("#6495ED├#FFFFFF[ #6495EDBRINKSᴮᵛᴿ #FFFFFF]#FFFFFF vá para o próximo banco da cidade",source,0,0,0,true )
 outputChatBox ("#6495ED├#FFFFFF[ #6495EDBRINKSᴮᵛᴿ #FFFFFF]#FFFFFF para que ele possa ser reabastecido.",source,0,0,0,true )
 outputChatBox ("#6495ED└#FFFFFF=========================================================",source,0,0,0,true )
setElementVisibleTo ( blipparte3, source, true )
setElementVisibleTo ( entregarparte3, source, true )
else
end
end
addEventHandler( "onMarkerHit", entregartrab3, parte2 )

function finalizar (source)
if veh[source] and isElement(veh[source]) then
setElementVisibleTo ( blipparte3, source, false )
setElementVisibleTo ( entregarparte3, source, false )
setElementVisibleTo ( entregafinalizar, source, true )
setElementVisibleTo ( blipfim, source, true )
 outputChatBox ("#6495ED┌#FFFFFF=========================================================",source,0,0,0,true )
 outputChatBox ("#6495ED├#FFFFFF[ #6495EDBRINKSᴮᵛᴿ #FFFFFF]#FFFFFF Você abasteceu (#6495ED02/03#FFFFFF) bancos da cidade",source,0,0,0,true )
 outputChatBox ("#6495ED├#FFFFFF[ #6495EDBRINKSᴮᵛᴿ #FFFFFF]#FFFFFF vá para o próximo banco da cidade",source,0,0,0,true )
 outputChatBox ("#6495ED├#FFFFFF[ #6495EDBRINKSᴮᵛᴿ #FFFFFF]#FFFFFF para que ele possa ser reabastecido.",source,0,0,0,true )
 outputChatBox ("#6495ED└#FFFFFF=========================================================",source,0,0,0,true )
end
end
addEventHandler( "onMarkerHit", entregarparte3, finalizar )

function finalizartrab (source)
if veh[source] and isElement(veh[source]) then
setElementVisibleTo ( entregafinalizar, source, false )
setElementVisibleTo ( blipfim, source, false )
givePlayerMoney (source, 3500)
setPedSkin (source,0)
destroyElement (veh[source])
 outputChatBox ("#6495ED┌#FFFFFF=========================================================",source,0,0,0,true )
 outputChatBox ("#6495ED├#FFFFFF[ #6495EDBRINKSᴮᵛᴿ #FFFFFF]#FFFFFF Você abasteceu todos os bancos da cidade",source,0,0,0,true )
 outputChatBox ("#6495ED├#FFFFFF[ #6495EDBRINKSᴮᵛᴿ #FFFFFF]#FFFFFF em segurança, aqui está sua recompensa,",source,0,0,0,true )
 outputChatBox ("#6495ED├#FFFFFF[ #6495EDBRINKSᴮᵛᴿ #FFFFFF]#00FF00 R$ 3500",source,0,0,0,true )
 outputChatBox ("#6495ED└#FFFFFF=========================================================",source,0,0,0,true )
else
end
end
addEventHandler( "onMarkerHit", entregafinalizar, finalizartrab )

 

Link to comment
  • Moderators

O ideal é você usar esse código no lado cliente, então cada jogador terá a marker visível apenas para si. Já sobre as marcas anteriores, acho que o certo seria destruí-las quando tiver na próxima.

Você pode criar uma tabelas da localizações e definir uma variável do índice da tabela e usar essa variável pra definir a próxima localização na tabela.

Edited by DNL291
  • Like 1
Link to comment

por algum motivo eu já havia dito isto porém não foi enviado em fim !!

 

bom amigo vamos lá primeiramente da próxima vez utilize 

--> code para colar seu codigo isto ajuda ficar mais organizado e ajuda para leitura

em segundo lugar você não me parece ser experiente parece mais que você pegou isto de um outro código e fez como achou melhor.

bom deixe-me lhe explicar não é porque você tornou uma marker invisível ou visível para um determinado player que ele deixar de existir n ela esta ali porém invisível !

como resolver bom cria uma tabela para o player que esta realizando o trabalho e crie as markers dentro desta tabela do seu player assim ele terá sua própria marker e você apenas destro ira ela quando ele passar por cima !

Ex: suponhamos que seu player pegue o trabalho passando em um markador que é o mais comum !

Table = {}

Marker_startJob = createMarker.......

function StartJob(elementhit, dim)
  if dim then --> isto verifica se esta na mesma dimensão que a marker
      if not Table[elementhit] then --> este verifica se o player não tem uma tabela em seu nome
          Table[elementhit] = {} --> caso não haja tabela este cria uma para seu player
      end
      Table[elementhit]["Marker1"] = createMarker..... --> esta seria primeira marker
      ---> eu aconselho você criar a segunda marker dps de passar pela primeira mais vou seguir a maneira que você fez !
      Table[elementhit]["Marker2"] = createMarker..... --> esta seria segunda
      Table[elementhit]["Marker3"] = createMarker..... --> esta a terceira e assim por diante como já falei é mais ordenado você fazer uma apos a outra ser destroida !
end
addEventHandler("onMarkerHit", Marker_startJob, StartJob)

--> esta maneira acompanha a maneira do seu codigo que não seria digamos que correto ! não vou me prolongar muito escrevendo uma maneira correta pois estou ocupado no momento mais espero que você entenda e tente melhorar seu codigo ..
function HitInMarker(elementhit, dim)
    if dim and elementhit and isElement(elementhit) and getElementType(elementhit) == "player" and Table[elementhit] then
   		if source == Table[elementhit]["Marker1"] or source == Table[elementhit]["Marker2"] or source == Table[elementhit]["Marker3"] then
        	--> continue seu codigo por aqui ..
        	--> no final você deverá destroir os markadores
        	destroyElement(Table[elementhit]["Marker1"])
        	destroyElement(Table[elementhit]["Marker2"])
       		destroyElement(Table[elementhit]["Marker3"])
        	Table[elementhit] = nil --> por fim excluimos a tabela do player!
        end
    end
end
addEventHandler("onMarkerHit", resourceRoot, StartJob)

 

Edited by raynner
corrections
  • Like 1
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...