Verificar se o pneu estб furado. -
davi54723 - 09.09.2014
@Resolvido
Re: Verificar se o pneu estб furado. -
davi54723 - 09.09.2014
UP ?
Re: Verificar se o pneu estб furado. -
Larceny - 09.09.2014
Para checar se um pneu estiver furado:
pawn Код:
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
if(tires > 0)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Seu pneu estб furado.");
}
return 1;
}
Para informar qual pneu estб furado, veja os
estados de pneus.
Para avisar quando um pneu for furado, vocк precisa armazenar o estado atual dos pneus de cada veнculo em uma variбvel e checar no OnVehicleDamageStatusUpdate quando o estado do pneu mudar para enviar a mensagem.
Exemplo:
pawn Код:
new gVehicleTireState[MAX_VEHICLES];
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
if(gVehicleTireState[vehicleid] == 0 && tires != 0)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Seu pneu furou!");
gVehicleTireState[vehicleid] = 1;
}
return 1;
}
public OnVehicleSpawn(vehicleid)
{
gVehicleTireState[vehicleid] = 0;
return 1;
}
Re: Verificar se o pneu estб furado. -
Alwe - 09.09.2014
Quote:
Originally Posted by Larceny
Para checar se um pneu estiver furado:
pawn Код:
public OnVehicleDamageStatusUpdate(vehicleid, playerid) { new panels, doors, lights, tires; GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires); if(tires > 0) { SendClientMessage(playerid, 0xFFFFFFFF, "Seu pneu estб furado."); } return 1; }
Para informar qual pneu estб furado, veja os estados de pneus.
Para avisar quando um pneu for furado, vocк precisa armazenar o estado atual dos pneus de cada veнculo em uma variбvel e checar no OnVehicleDamageStatusUpdate quando o estado do pneu mudar para enviar a mensagem.
Exemplo:
pawn Код:
new gVehicleTireState[MAX_VEHICLES];
public OnVehicleDamageStatusUpdate(vehicleid, playerid) { new panels, doors, lights, tires; GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires); if(gVehicleTireState[vehicleid] == 0 && tires != 0) { SendClientMessage(playerid, 0xFFFFFFFF, "Seu pneu furou!"); gVehicleTireState[vehicleid] = 1; } return 1; }
public OnVehicleSpawn(vehicleid) { gVehicleTireState[vehicleid] = 0; return 1; }
|
Tenho 2 duvidas
1Є Interessante, e tipo.. com esse cуdigo ele jб identifica qualquer pneu que fura ?.
2Є Tem algum cуdigo que se encaixe para fazer com que ele mande uma Mensagem quando furar ? Ex:
Код:
SendClientMessage( playerid, 0xFF0000AA, "O pneu dianteiro direito furou");
Код:
SendClientMessage( playerid, 0xFF0000AA, "O pneu dianteiro esquerdo furou");
Re: Verificar se o pneu estб furado. -
arakuta - 09.09.2014
Use a funзгo GetVehicleDamageStatus, ela retorna tambйm o estado dos pneus.
pawn Код:
stock HasPoppedTire(vehicleid)
{
new panel, doors, lights, tires; // Criando variбveis para armazernar o dano do veнculo;
GetVehicleDamageStatus(vehicleid,panel,doors,lights,tires); // Armazenamos o dano nas variбveis;
if(tires == 0b0000) // Os valores retornados pela funзгo sгo dados em binбrios.
return 0;
else
return 1;
}
Sendo assim, agora use sua criatividade para saber se algum pneu foi furado atravйs da callback OnVehicleDamageStatusUpdate
Essa pбgina da wiki contйm o estados dos pneus detalhadamente:
https://sampwiki.blast.hk/wiki/TireStates
@edit
Demorei pra postar, nгo vi que jб responderam em cima ;x
@topic
Vocк pode checar mudanзa de estados nos pneus usando uma variбvel global que contйm o estado dos pneus de um veнculo x. Se quando o veнculo sofrer algum dano, verifica se o estado dos pneus й diferente do que estб na variбvel. Aн й por que os pneus furaram ou estгo normais.
Re: Verificar se o pneu estб furado. -
DiiMeNoR - 09.09.2014
Zero й o estado do pneu..
https://sampwiki.blast.hk/wiki/TireStates
pawn Код:
if(tires == 1)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Seu pneu traseiro direito furou.");
}
E assim por diante.
Re: Verificar se o pneu estб furado. -
Larceny - 09.09.2014
Quote:
Originally Posted by Alwe
Tenho 2 duvidas
1Є Interessante, e tipo.. com esse cуdigo ele jб identifica qualquer pneu que fura ?.
|
Sim, os estados vгo de 0 a 15. Sendo 0 todos os pneus em bom estado e de 1 a 15 sгo todos os outros estados possнveis com algum pneu furado.
Quote:
Originally Posted by Alwe
2Є Tem algum cуdigo que se encaixe para fazer com que ele mande uma Mensagem quando furar ? Ex:
Код:
SendClientMessage( playerid, 0xFF0000AA, "O pneu dianteiro furou");
|
Vocк precisa criar uma condiзгo para cada pneu, exemplo:
pawn Код:
new gVehicleTireState[MAX_VEHICLES];
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
if(gVehicleTireState[vehicleid] != tires && tires == 1)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Seu pneu traseiro direito furou!");
gVehicleTireState[vehicleid] = 1;
}
else if(gVehicleTireState[vehicleid] != tires && tires == 2)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Seu pneu dianteiro direito furou!");
gVehicleTireState[vehicleid] = 2;
}
else if(gVehicleTireState[vehicleid] != tires && tires == 4)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Seu pneu traseiro esquerdo furou!");
gVehicleTireState[vehicleid] = 4;
}
//etc...
return 1;
}
public OnVehicleSpawn(vehicleid)
{
gVehicleTireState[vehicleid] = 0;
return 1;
}
Para todos os estados veja:
https://sampwiki.blast.hk/wiki/TireStates
Re: Verificar se o pneu estб furado. -
Alwe - 09.09.2014
Huum, gostei.. Daria um bom FS para o forum !

Vou estudar mais essa parte, e vк se consigo fazer algo para postar aqui, caso jб nгo tenha ou alguem mais ligeiro monte primeiro que eu! kkk
Se eu tiver alguma duvida, posso retirar com vocк(s) ?
Re: Verificar se o pneu estб furado. -
davi54723 - 09.09.2014
Putz, o pior que eu consegui fazer agora, terminei agora... porйm vocкs jб tinham feito o dobro do que eu tava pensando em fazer...
De qualquer forma, muito obrigado *-*