zMpyster Posted April 16, 2020 Share 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 Link to comment
Other Languages Moderators Lord Henry Posted April 17, 2020 Other Languages Moderators Share Posted April 17, 2020 9 hours ago, zMpyster said: Eu já tentei usar setModelHandling e nada Tentou isso server-side ou client-side? Link to comment
zMpyster Posted April 20, 2020 Author Share Posted April 20, 2020 On 16/04/2020 at 23:18, Lord Henry said: Tentou isso server-side ou client-side? server-side Link to comment
Other Languages Moderators Lord Henry Posted April 20, 2020 Other Languages Moderators Share 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). Link to comment
Other Languages Moderators Lord Henry Posted April 20, 2020 Other Languages Moderators Share 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. 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