02.06.2013, 12:50
Olб , venho ensinar como fazer um sistema de pneu.
Eu ia postar como FilterScript mas achei que tava muito basico , entгo vo explicar como fazer!
Antes de tudo vocк precisa saber que em algo pro VEICULO tipo , ALARME, TRAVA, GAS ETC. SE USA MAX_VEHICLES.
VI O POVO DO MEGA TRUCK USANDO MAX_PLAYERS PARA VEICULOS PQP.
Bom vamos la:
Primeiro o sistema de pneu precisa de uma variavel , uma variavel de veiculo e nгo de player
Deve ser float.
Podes usar junto com seu sistema de carros.
Apos isso precisamos setar os pneuґs quando o servidor e logado ja para que nгo comeзe extourado!
Iremos utilizar um loop
Tambem podes usar junto com sistema de carro que provavelmente seta algo no GameModeInit usando loop de veiculos.
Agora precisamos fazer um timer para que possamos reduzir o pneu conforme ele for andando.
Primeiro vamos fazer uma variavel AGORA PARA O PLAYER , para que possa fazermos o timer!
Bom feito isso iremos procurar pela callback chamada OnPlayerStateChange.
Iremos fazer o codigo para ver se ele e motorista!
E iniciar o Timer , e ja da um KillTimer (Parar o Timer).
Podes ser adaptado ao seu GameMode/FilterScript
Agora vamos criar a CallBack para a atualizaзгo
E diminuir o pneu!
Agora vou explicar como deve ser para que estoure o pneu:
Ai vocк deve getar os damanges do veiculo, criando as variaveis das damanges para usa-los.
Agora para estourar o pneu . Hб varios modos de estouro .
Vocк deve se perguntar como assim
Estes sгo de veiculos com 4 rodas .
Para ver os de bikerrs/motos > https://sampwiki.blast.hk/wiki/TireStates
Ai e so fazer um update das damanges
Bom para reparar o pneu e muito facil , e so setar a var do pneu a 100 ou ao maximo que vocк definiu!
Creditos
DonSpeed
Rjjj
Wiki sa-mp
Qualquer duvida poste aqui tentarei exclarecer.
Eu ia postar como FilterScript mas achei que tava muito basico , entгo vo explicar como fazer!
Antes de tudo vocк precisa saber que em algo pro VEICULO tipo , ALARME, TRAVA, GAS ETC. SE USA MAX_VEHICLES.
VI O POVO DO MEGA TRUCK USANDO MAX_PLAYERS PARA VEICULOS PQP.
Bom vamos la:
Primeiro o sistema de pneu precisa de uma variavel , uma variavel de veiculo e nгo de player
pawn Код:
new Pneu[MAX_VEHICLES];// Topo do GameMode/ FilterScript
Podes usar junto com seu sistema de carros.
Apos isso precisamos setar os pneuґs quando o servidor e logado ja para que nгo comeзe extourado!
Iremos utilizar um loop
pawn Код:
for(new d = 0; d < MAX_VEHICLES; d++)
Pneu[d] = 100;
PHP код:
Pneu[d] = 100; > Esse 100 Se refere ao maximo do pneu podes mudar
Primeiro vamos fazer uma variavel AGORA PARA O PLAYER , para que possa fazermos o timer!
pawn Код:
new Timer[MAX_PLAYERS];// Topo do GameMode/ FilterScript
Iremos fazer o codigo para ver se ele e motorista!
E iniciar o Timer , e ja da um KillTimer (Parar o Timer).
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
Timer[playerid] = SetTimerEx("AtualizarVelocimetro", 100, true, "d", playerid);
}else KillTimer(Timer[playerid]);
return 1;
}
PHP код:
AtualizarVelocimetro -> Nome da callback que farб a atualizaзгo do pneu
100 -> Tempo em segundos que esta verificaзгo serrб feita
true -> Verdadeiro , significa que ele ficara repetindo
KillTimer -> Ira parar o timer assim que ele sair do carro
Agora vamos criar a CallBack para a atualizaзгo
E diminuir o pneu!
pawn Код:
forward AtualizarVelocimetro(playerid);
public AtualizarVelocimetro(playerid)
{
Pneu[GetPlayerVehicleID(playerid)] -= 0.1;
if(Pneu[GetPlayerVehicleID(playerid)] < 1)
{
new Paineis, Portas, Luzes, Pneu;
GetVehicleDamageStatus(GetPlayerVehicleID(playerid), Paineis, Portas, Luzes, Pneu);
UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid), Paineis, Portas, Luzes, 15);
}
return true;
}
PHP код:
Pneu[GetPlayerVehicleID(playerid)] -= 0.1; // Diminui a variavel do pneu em 0.1 ja que amesma e float
GetPlayerVehicleID(playerid) -> Isso pega o id de seu veiculo para que possa atualiza/diminuir os pneus
PHP код:
if(Pneu[GetPlayerVehicleID(playerid)] < 1) -> Quantidade minima para estourar o pneu
PHP код:
new Paineis, Portas, Luzes, Pneu;
GetVehicleDamageStatus(GetPlayerVehicleID(playerid), Paineis, Portas, Luzes, Pneu);
Vocк deve se perguntar como assim

PHP код:
0: (0000)
o-o
| |
o-o
1: (0001)
o-o
| |
o-i
2: (0010)
o-i
| |
o-o
3: (0011)
o-i
| |
o-i
4: (0100)
o-o
| |
i-o
5: (0101)
o-o
| |
i-i
6: (0110)
o-i
| |
i-o
7: (0111)
o-i
| |
i-i
8: (1000)
i-o
| |
o-o
9: (1001)
i-o
| |
o-i
10: (1010)
i-i
| |
o-o
11: (1011)
i-i
| |
o-i
12: (1100)
i-o
| |
i-o
13: (1101)
i-o
| |
i-i
14: (1110)
i-i
| |
i-o
15: (1111)
i-i
| |
i-i
Para ver os de bikerrs/motos > https://sampwiki.blast.hk/wiki/TireStates
Ai e so fazer um update das damanges
PHP код:
UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid), Paineis, Portas, Luzes, ID DO ESTOURO DO PNEU);
ID DO ESTOURO DO PNEU -> Escolha seu id na tabela acima!
Creditos
DonSpeed
Rjjj
Wiki sa-mp
Qualquer duvida poste aqui tentarei exclarecer.