zMpyster Posted April 16, 2020 Posted April 16, 2020 Estava editando meu mod de trems e queria que de alguma forma quando tivesse 5 vagões o trem ficasse mais lento do que o normal. Eu já tentei usar setModelHandling e nada, muitos vão sugerir usar o setTrainSpeed, porém, eu quero que o player que esteja no trem seja livre para escolher a velocidade de andar e não que o script fique setando a velocidade do trem
Moderators Lord Henry Posted April 17, 2020 Moderators Posted April 17, 2020 9 hours ago, zMpyster said: Eu já tentei usar setModelHandling e nada Tentou isso server-side ou client-side? Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
zMpyster Posted April 20, 2020 Author Posted April 20, 2020 On 16/04/2020 at 23:18, Lord Henry said: Tentou isso server-side ou client-side? server-side
Moderators Lord Henry Posted April 20, 2020 Moderators Posted April 20, 2020 Você pode "bloquear" a velocidade do trem quando ele atingir a velocidade máxima que você quer, setando nele a velocidade máxima em si mesmo. Ex: Você quer setar a velocidade máxima como 200 km/h. Então vc cria uma função com evento onClientPreRender que verifica a velocidade atual do trem. Se for maior ou igual a 200 km/h e o jogador estiver pressionando o botão de acelerar, seta a velocidade do trem em 200 km/h a cada frame. Ao soltar o botão de acelerar, para de setar a velocidade no trem e ele vai diminuir normalmente (ou frear). Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
Moderators Lord Henry Posted April 20, 2020 Moderators Posted April 20, 2020 (edited) local limite = 200 -- Velocidade máxima com 5 vagões. addEventHandler ("onClientVehicleEnter", root, function (thePlayer, seat) if (thePlayer == localPlayer) then -- Se o jogador que entrou no veículo for o localPlayer, então: if (getElementModel (source) == 449) and (seat == 0) then -- Se o jogador entrou como motorista em um Bonde, então: addEventHandler ("onClientPreRender", root, speedCheck) -- Inicia a verificação de velocidade no início de cada frame. end end end) function speedCheck () if (getVehicleType (getPedOccupiedVehicle(localPlayer)) == "Train" ) then -- Se o jogador local está em um veículo do tipo Train, então: local speed = getTrainSpeed (getPedOccupiedVehicle(localPlayer)) -- Obtém a velocidade atual do trem. OBS: Sempre será positiva, independente da direção do trem na pista ou se está indo de ré. dxDrawText (speed, 0, 0) -- Apenas para testes. Mostra a speed atual acima do chat. Bem no canto da tela. if (getElementData (getPedOccupiedVehicle(localPlayer), "wagons") >= 5) then -- Não sei como vc está fazendo para verificar quantos vagões o trem possui, usei elementData como exemplo. if (getPedControlState (localPlayer, "accelerate")) then -- Se o jogador está acelerando o trem, então: if (speed >= limite) then -- Se a velocidade do trem for maior ou igual a 200 km/h, então: -- OBS: Setar velocidade positiva fará o trem ir no sentido horário da pista e não necessariamente pra frente. Por isso fiz a verificação a seguir. if (getTrainDirection (getPedOccupiedVehicle(localPlayer))) then -- Se o trem está apontado no sentido horário da pista, então: setTrainSpeed (getPedOccupiedVehicle(localPlayer), limite) -- Seta 200 km/h na velocidade do trem, impedindo que o trem fique mais rápido do que isso. else -- Se o trem está apontado no sentido anti-horário, então: setTrainSpeed (getPedOccupiedVehicle(localPlayer), limite * -1) -- Seta -200 km/h na velocidade do trem, pois ele já estava indo no sentido anti-horário. end end end end end end addEventHandler ("onClientVehicleExit", root, function (thePlayer, seat) if (thePlayer == localPlayer) then -- Se o jogador que saiu do veículo for o localPlayer, então: if (getElementModel (source) == 449) and (seat == 0) then -- Se o jogador saiu como motorista de um Bonde, então: removeEventHandler ("onClientPreRender", root, speedCheck) -- Cancela a verificação de velocidade no início de cada frame. end end end) -- OBS: Ainda é possível burlar o limite andando de ré. Mas dai essa parte é com vc. Obs: Não testei, fiz de cabeça. Aguardo seu feedback. Edited April 20, 2020 by Lord Henry Esqueci de cancelar a função de speedCheck ao sair do trem. Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
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