~ShooT Posted May 30, 2018 Share Posted May 30, 2018 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
Topperx Posted May 31, 2018 Share Posted May 31, 2018 você está aprendendo neah ? manda pra mim esses dados da varável : blipparte3, entregafinalizar, blipfim, entregarparte3 createMarker Link to comment
Other Languages Moderators Lord Henry Posted May 31, 2018 Other Languages Moderators Share Posted May 31, 2018 Você pode usar setElementData para setar dados no jogador quando ele passar pelos markers. Dai crie uma condição com getElementData, se o jogador já possuir tal data, significa que ele já passou por aquele marker e dai não deve ativar novamente. 1 Link to comment
[M]ister Posted June 1, 2018 Share Posted June 1, 2018 Pode também usar isElementVisibleTo Link to comment
DNL291 Posted June 1, 2018 Share Posted June 1, 2018 (edited) 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 June 1, 2018 by DNL291 1 Link to comment
raynner Posted June 1, 2018 Share Posted June 1, 2018 (edited) 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 June 1, 2018 by raynner corrections 1 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