/*
BY OTACON ;)
...: MINI SISTEMA FACIL 'MOTOR ROTO' :...
*/
#include <a_samp>
#define VALUE_MOTOR 350.0 //Dejara el Motor en Humo Gris.
new MatarMotor[MAX_PLAYERS];
static Float:VidaMotor[MAX_VEHICLES];
public OnPlayerStateChange(playerid, newstate, oldstate) {
switch(GetPlayerState(playerid)) {
case PLAYER_STATE_DRIVER: { //Estado a 'conductor de vehiculo'
MatarMotor[playerid] = SetTimerEx("MotorRoto", 1000, true, "ii", playerid, GetPlayerVehicleID(playerid)); //Creamos el SetTimerEx obteniendo el Id del player y vehiculos Correspondiente.
}
case PLAYER_STATE_ONFOOT: { //Estado a 'pie'
KillTimer(MatarMotor[playerid]); //Matamos al SetTimerEx Correspondiente.
}
}
return true;
}
public OnPlayerSpawn(playerid) {
KillTimer(MatarMotor[playerid]); //Matamos al SetTimerEx Correspondiente cuando el player Spawnea.
return true;
}
public OnVehicleDeath(vehicleid, killerid) {
KillTimer(MatarMotor[killerid]); //Matamos al SetTimerEx Correspondiente cuando el vehiculo es destruido con conductor.
return true;
}
forward MotorRoto(playerid, vehicleid);
public MotorRoto(playerid, vehicleid) {
if(IsPlayerConnected(playerid) && IsPlayerInVehicle(playerid, vehicleid)) { //Chequeamos si el player esta conectado y en el vehiculo correspondiente.
GetVehicleHealth(vehicleid, VidaMotor[vehicleid]); //obtenemos la vida del vehiculo correspondiente.
if(VidaMotor[vehicleid] <= VALUE_MOTOR) { //verificamos si la vida del vehiculo es MENOR o IGUAL a la establecida.
SetVehicleHealth(vehicleid, VidaMotor[vehicleid]=VALUE_MOTOR); //establecemos la vida del vehiculo a la definida para avitar problemas ;).
//ACA LA FUNCION QUE QUIERES QUE HAGA CUANDO TENGA EL MOTOR ROTO.
//ACA LA FUNCION QUE QUIERES QUE HAGA CUANDO TENGA EL MOTOR ROTO.
}
}
return true;
}
/*
BY OTACON ;)
...: MINI SISTEMA FACIL 'MOTOR ROTO' :...
*/
El uso del timer lo veo innecesario, ahн podrнas haber usado una callback para actualizar.
Como OnPlayerStateChange, OnVehicleDamageStatusUpdate, etc. Lo demбs estб bien. |
No me referнa a eso.
Los callbacks son llamados cuando sucede algo. En este caso OnVehicleDamageStatusUpdate es llamado cuando se daсa alguna parte del vehнculo. En el caso de OnPlayerStateChange es llamado cuando el jugador cambia de estado. Solo dije que podrнas usar los callbacks para actualizarlo, ya que son llamados constantemente. |