+[T]rakin Posted December 20, 2018 Share Posted December 20, 2018 Olá estou tentando fazer para quando o jogador encostar do marker vai desabilita todos os acesso para ele não conseguir se movimenta ai tudo bem, so que depois de colocou um setTimer para que pode voltar os controle do jogador mas está dando esse erro http://prntscr.com/lx94uf e não tenho a menor ideia de como arruma-lo server-side function Start_Bus(marker, md) if isPedInVehicle( source ) then if md then if marker == Rota1_Vermelha then setElementVisibleTo( Rota1_Vermelha, source, false ) setElementVisibleTo( Rota1_Blip, source, false ) setElementVisibleTo( Rota2_Vermelha, source, true ) setElementVisibleTo( Rota2_Blip, source, true ) toggleAllControls ( source, false ) setControlState ( source, "handbrake", true ) setTimer(function() toggleAllControls ( source, true ) setControlState ( source, "handbrake", false ) end, 5000, 1) end end end end addEventHandler("onPlayerMarkerHit", root, Start_Bus) Link to comment
DNL291 Posted December 20, 2018 Share Posted December 20, 2018 Tente o seguinte: function Start_Bus(hitElement, md) if getElementType( hitElement ) == "vehicle" and md and getElementType((getVehicleController(hitElement) or "")) == "player" then local thePlayer = getVehicleController(hitElement) setElementVisibleTo( Rota1_Vermelha, thePlayer, false ) setElementVisibleTo( Rota1_Blip, thePlayer, false ) setElementVisibleTo( Rota2_Vermelha, thePlayer, true ) setElementVisibleTo( Rota2_Blip, thePlayer, true ) toggleAllControls ( thePlayer, false ) setControlState ( thePlayer, "handbrake", true ) setTimer(function(player) toggleAllControls ( player, true ) setControlState ( player, "handbrake", false ) end, 5000, 1, thePlayer) end end addEventHandler("onMarkerHit", Rota1_Vermelha, Start_Bus) 1 Link to comment
+[T]rakin Posted December 20, 2018 Author Share Posted December 20, 2018 15 minutes ago, DNL291 said: Tente o seguinte: function Start_Bus(hitElement, md) if getElementType( hitElement ) == "vehicle" and md and getElementType((getVehicleController(hitElement) or "")) == "player" then local thePlayer = getVehicleController(hitElement) setElementVisibleTo( Rota1_Vermelha, thePlayer, false ) setElementVisibleTo( Rota1_Blip, thePlayer, false ) setElementVisibleTo( Rota2_Vermelha, thePlayer, true ) setElementVisibleTo( Rota2_Blip, thePlayer, true ) toggleAllControls ( thePlayer, false ) setControlState ( thePlayer, "handbrake", true ) setTimer(function(player) toggleAllControls ( player, true ) setControlState ( player, "handbrake", false ) end, 5000, 1, thePlayer) end end addEventHandler("onMarkerHit", Rota1_Vermelha, Start_Bus) Então desse causo eu tenho que fazer uma function para cada marker correto? O problema que vai muito grande o codigo mas o importante é pegar tudo de boa . Link to comment
DNL291 Posted December 20, 2018 Share Posted December 20, 2018 (edited) Sim, mas dependendo do funcionamento do script você pode encurtar seu código. Rota2_Vermelha no caso é uma marker também, certo? Seria assim: function Start_Bus(hitElement, md) if getElementType( hitElement ) == "vehicle" and md and getElementType((getVehicleController(hitElement) or "")) == "player" then local thePlayer = getVehicleController(hitElement) if source == Rota1_Vermelha then setElementVisibleTo( Rota1_Vermelha, thePlayer, false ) setElementVisibleTo( Rota1_Blip, thePlayer, false ) setElementVisibleTo( Rota2_Vermelha, thePlayer, true ) setElementVisibleTo( Rota2_Blip, thePlayer, true ) toggleAllControls ( thePlayer, false ) setControlState ( thePlayer, "handbrake", true ) setTimer(function(player) toggleAllControls ( player, true ) setControlState ( player, "handbrake", false ) end, 5000, 1, thePlayer) elseif source == Rota2_Vermelha then -- [seu código] end end end addEventHandler("onMarkerHit", resourceRoot, Start_Bus) Edited December 20, 2018 by DNL291 1 Link to comment
+[T]rakin Posted December 20, 2018 Author Share Posted December 20, 2018 1 hour ago, DNL291 said: Sim, mas dependendo do funcionamento do script você pode encurtar seu código. Rota2_Vermelha no caso é uma marker também, certo? Seria assim: function Start_Bus(hitElement, md) if getElementType( hitElement ) == "vehicle" and md and getElementType((getVehicleController(hitElement) or "")) == "player" then local thePlayer = getVehicleController(hitElement) if source == Rota1_Vermelha then setElementVisibleTo( Rota1_Vermelha, thePlayer, false ) setElementVisibleTo( Rota1_Blip, thePlayer, false ) setElementVisibleTo( Rota2_Vermelha, thePlayer, true ) setElementVisibleTo( Rota2_Blip, thePlayer, true ) toggleAllControls ( thePlayer, false ) setControlState ( thePlayer, "handbrake", true ) setTimer(function(player) toggleAllControls ( player, true ) setControlState ( player, "handbrake", false ) end, 5000, 1, thePlayer) elseif source == Rota2_Vermelha then -- [seu código] end end end addEventHandler("onMarkerHit", resourceRoot, Start_Bus) Isso mesmo , agora so queria saber como faço para o jogador ao sair do onibus vai destruir o marker/blip, eu tentei de uma forma mas está dando erro http://prntscr.com/lxaxx3 . server-side SpawnOnibus = { {437, 1649.646484375, -2250.978515625, 13.333773612976, 0, 0, 90 }, } function CriarOnibus() for i,veh in ipairs(SpawnOnibus) do local veh_onibus = createVehicle (veh[1],veh[2],veh[3],veh[4],veh[5],veh[6],veh[7]) setElementData ( veh_onibus, "Emprego", "Motorista de Onibus") toggleVehicleRespawn(veh_onibus, true) setVehicleIdleRespawnDelay(veh_onibus, 100) setVehicleColor( veh_onibus, 255, 0, 0, 255, 0, 0, 255, 0, 0) addEventHandler("onVehicleStartEnter", veh_onibus, VerificarEmprego ) addEventHandler("onVehicleStartExit", veh_onibus, VerificarEmprego2 ) end end addEventHandler("onResourceStart", root, CriarOnibus) function VerificarEmprego(source, seat, theVehicle) local Jogador = getElementData(source, "Emprego") if seat == 0 then if Jogador == "Motorista de Onibus" then setElementVisibleTo( Rota1_Vermelha, source, true ) --Da erro aqui quando eu entrou do onibus depois que o Marker Rota1 e o Blip1 é destruido setElementVisibleTo( Rota1_Blip, source, true ) --Da erro aqui quando eu entrou do onibus depois que o Marker Rota1 e o Blip1 é destruido else cancelEvent() exports.Scripts_Dxmessages:outputDx(source, "Esse Veiculo é Exclusivo dos Motoristas de Onibus!", "error") end end end function VerificarEmprego2(source, theVehicle) local Jogador = getElementData(source, "Emprego") if Jogador == "Motorista de Onibus" then destroyElement( Rota1_Vermelha) destroyElement( Rota1_Blip) end end Link to comment
+[T]rakin Posted December 20, 2018 Author Share Posted December 20, 2018 Explicando sobre o segundo codigo tipo por a causo o jogador saia do onibus do meio da rota todos markers/blips serão excluido , mas se eu entrar do onibus pela segunda vez vai gerar um erro das linhas 21 e 22. Link to comment
DNL291 Posted December 20, 2018 Share Posted December 20, 2018 (edited) Isso é um trabalho de motorista de ônibus? Faça as coordenadas, markes, blip, etc no lado client e para criar o ônibus envia um trigger para o lado server, o veículo ficará lá. Cadê os eventos que você adicionou na função VerificarEmprego e VerificarEmprego2? O erro na print é simples, você tá tentando passar um elemento que foi removido e não existe mais. Uma checagem deste tipo resolveria a mensagem: if isElement(Rota1_Vermelha) then destroyElement(Rota1_Vermelha) end Spoiler 3 hours ago, +[T]rakin said: Explicando sobre o segundo codigo tipo por a causo o jogador saia do onibus do meio da rota todos markers/blips serão excluido , mas se eu entrar do onibus pela segunda vez vai gerar um erro das linhas 21 e 22. É por acaso. Edited December 20, 2018 by DNL291 1 Link to comment
+[T]rakin Posted December 21, 2018 Author Share Posted December 21, 2018 (edited) 33 minutes ago, DNL291 said: Isso é um trabalho de motorista de ônibus? Faça as coordenadas, markes, blip, etc no lado client e para criar o ônibus envia um trigger para o lado server, o veículo ficará lá. Cadê os eventos que você adicionou na função VerificarEmprego e VerificarEmprego2? O erro na print é simples, você tá tentando passar um elemento que foi removido e não existe mais. Uma checagem deste tipo resolveria a mensagem: if isElement(Rota1_Vermelha) then destroyElement(Rota1_Vermelha) end Hide contents É por acaso. Aqui os eventos das funções VerificarEmprego e VerificarEmprego2. Se eu conseguir fazer esse trabalho completo sem erros ai depois tento fazer o que você disse sobre os markers,blips e veiculo do lado cliente. server-side SpawnOnibus = { {437, 1649.646484375, -2250.978515625, 13.333773612976, 0, 0, 90 }, } function CriarOnibus() for i,veh in ipairs(SpawnOnibus) do local veh_onibus = createVehicle (veh[1],veh[2],veh[3],veh[4],veh[5],veh[6],veh[7]) setElementData ( veh_onibus, "Emprego", "Motorista de Onibus") toggleVehicleRespawn(veh_onibus, true) setVehicleIdleRespawnDelay(veh_onibus, 100) setVehicleColor( veh_onibus, 255, 0, 0, 255, 0, 0, 255, 0, 0) addEventHandler("onVehicleStartEnter", veh_onibus, VerificarEmprego ) addEventHandler("onVehicleStartExit", veh_onibus, VerificarEmprego2 ) end end addEventHandler("onResourceStart", root, CriarOnibus) Edited December 21, 2018 by +[T]rakin Link to comment
DNL291 Posted December 21, 2018 Share Posted December 21, 2018 (edited) O problema é que você vai perder tempo tendo que ocultar com a função setElementVisibleTo e se você fizer completo assim, para depois refazer para o client vai ser mais trabalho ainda e desnecessário kk. Na função VerificarEmprego2 você vai precisar usar setElementVisibleTo em vez de destroyElement. Edit: ou recria os elementos dentro da função VerificarEmprego 35 minutes ago, +[T]rakin said: Aqui os eventos das funções VerificarEmprego e VerificarEmprego2. Passei despercebido e olhei só pras funções Edited December 21, 2018 by DNL291 1 Link to comment
+[T]rakin Posted December 21, 2018 Author Share Posted December 21, 2018 15 minutes ago, DNL291 said: O problema é que você vai perder tempo tendo que ocultar com a função setElementVisibleTo e se você fizer completo assim, para depois refazer para o client vai ser mais trabalho ainda e desnecessário kk. Na função VerificarEmprego2 você vai precisar usar setElementVisibleTo em vez de destroyElement. Edit: ou recria os elementos dentro da função VerificarEmprego Passei despercebido e olhei só pras funções Tentei dessa forma que voce falou e deu o mesmo erro. if isElement(Rota1_Vermelha) then destroyElement(Rota1_Vermelha) end Mas fiz o que voce falou de criar os elementos ao entrar do onibus e funcionou mas não entendi eu tinha tentado dessa forma so que tava dando erro , mas ja que como da function onMarkerHit é totalmente diferente que eu fazia poriso que pegou. Do lado cliente vou está fazendo um painel mostrando a quantidade das passagens, quantos rotas falta e etc.. Me desculpa pelo meu português se péssimo assim. 1 Link to comment
+[T]rakin Posted December 21, 2018 Author Share Posted December 21, 2018 Realmente vou te que fazer o marker,blip do lado cliente pois um erro é resolvido e aparece outro ta foda. O erro é quando sair do veiculo destruir os markers e blips que tão habilitados e desabilitados. 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