[Ayuda] Sistema de /cinturon
#6

pawn Код:
//Arriba
forward ChoqueTimer(playerid);
new Float:Choques_vida[MAX_PLAYERS][MAX_VEHICLES];
new bool:PCinturon[MAX_PLAYERS];
stock Float:VehiculoVida(v)//by Gantzyo
{
  new Float:v_vida;
  GetVehicleHealth(v,v_vida);
  return v_vida;
}
stock Float:RestarVida(playerid,Float:cantidad)//by Gantzyo
{
  new Float:p_vida;
  GetPlayerHealth(playerid,p_vida);
  p_vida = floatsub(p_vida,cantidad);
  SetPlayerHealth(playerid,p_vida);
  return p_vida;
}
#define CHOQUE_FLOJO 100//Cantidad de vida que pierde el vehiculo
#define CHOQUE_MEDIO 200//Cantidad de vida que pierde el vehiculo
//Debajo de OnGameModeInit
for(new i=0;i<MAX_PLAYERS;i++)
{
  for(new v=0;v<MAX_PLAYERS;v++)
  {
   Choques_vida[i][v] = 1000;
  }
  SetTimerEx("ChoqueTimer",200,0,"d",i);
}
//Debajo de OnPlayerStateChange
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
  Choques_vida[playerid][GetPlayerVehicleID(playerid)] = VehiculoVida(GetPlayerVehicleID(playerid));
}
if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
{
  PCinturon[playerid] = false;
}
//Debajo de OnPlayerCommandText
if(strcmp("/cinturon",cmdtext,true)==0)
{
  if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && GetPlayerState(playerid) != PLAYER_STATE_PASSENGER) return SendClientMessage(playerid,0xff0000ff,"No estas en ningun vehiculo");
  if(PCinturon[playerid])
  {
    PCinturon[playerid] = false;
   SendClientMessage(playerid,0xffffffff,"Cinturon quitado");
  }
  else
  {
    PCinturon[playerid] = true;
   SendClientMessage(playerid,0xffffffff,"Cinturon puesto");
  }
  return 1;
}
//Al final
public ChoqueTimer(playerid)
{
  if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
  {
   if(VehiculoVida(GetPlayerVehicleID(playerid)) < Choques_vida[playerid][GetPlayerVehicleID(playerid)])
   {
     new Float:v_x,Float:v_y,Float:v_z,Float:tmp_vvida;
     GetVehiclePos(GetPlayerVehicleID(playerid),v_x,v_y,v_z);
     if((Choques_vida[playerid][GetPlayerVehicleID(playerid)]-VehiculoVida(GetPlayerVehicleID(playerid))) <= float(CHOQUE_FLOJO))
     {
      for(new i=0;i<MAX_PLAYERS;i++)
      {
        if(IsPlayerInRangeOfPoint(i,75.0,v_x,v_y,v_z) && i != playerid)GameTextForPlayer(i,"~r~Escuchas el ruido de un vehiculo chocar con algo, no parece muy fuerte el choque.",3000,3);
      }
     }
     else if((Choques_vida[playerid][GetPlayerVehicleID(playerid)]-VehiculoVida(GetPlayerVehicleID(playerid))) <= float(CHOQUE_MEDIO))
     {
      for(new i=0;i<MAX_PLAYERS;i++)
      {
        if(IsPlayerInRangeOfPoint(i,150.0,v_x,v_y,v_z) && i != playerid)GameTextForPlayer(i,"~r~Escuchas el ruido de un vehiculo chocar con algo, parece que el choque le destrozo algo.",3000,3);
      }
     }
     else
     {
      for(new i=0;i<MAX_PLAYERS;i++)
      {
        if(IsPlayerInRangeOfPoint(i,300.0,v_x,v_y,v_z) && i != playerid)GameTextForPlayer(i,"~r~Escuchas el ruido de un vehiculo chocar con algo, parece que el Habitante esta muy herido.",3000,3);
      }
     }
     tmp_vvida = Choques_vida[playerid][GetPlayerVehicleID(playerid)];
     tmp_vvida = floatsub(tmp_vvida,VehiculoVida(GetPlayerVehicleID(playerid)));
     tmp_vvida = floatmul(tmp_vvida,100.0);
     tmp_vvida = floatdiv(tmp_vvida,750.0);//Si quieres que se pierda menos vida al chocar, cambia 750.0 por un numero mayor, 750.0 esta como divisor.
     if(PCinturon[playerid])
     {
      tmp_vvida = floatdiv(tmp_vvida,2.0);
      RestarVida(playerid,tmp_vvida);
     }
     else RestarVida(playerid,tmp_vvida);
     Choques_vida[playerid][GetPlayerVehicleID(playerid)] = VehiculoVida(GetPlayerVehicleID(playerid));
   }
   else if(VehiculoVida(GetPlayerVehicleID(playerid)) > Choques_vida[playerid][GetPlayerVehicleID(playerid)]) Choques_vida[playerid][GetPlayerVehicleID(playerid)] = VehiculoVida(GetPlayerVehicleID(playerid));
  }
  SetTimerEx("ChoqueTimer",200,0,"d",playerid);
  return 1;
}
Lo copie en otro lado, no lo he probado
Reply


Messages In This Thread
[Ayuda] Sistema de /cinturon - by Andres_Garcia - 24.04.2010, 18:57
Re: [Ayuda] Sistema de /cinturon - by Carlos_Martinez - 24.04.2010, 19:57
Re: [Ayuda] Sistema de /cinturon - by Andres_Garcia - 24.04.2010, 20:07
Re: [Ayuda] Sistema de /cinturon - by Carlos_Martinez - 24.04.2010, 21:02
Re: [Ayuda] Sistema de /cinturon - by Andres_Garcia - 25.04.2010, 17:57
Re: [Ayuda] Sistema de /cinturon - by Carlos_Martinez - 25.04.2010, 18:51
Re: [Ayuda] Sistema de /cinturon - by Andres_Garcia - 26.04.2010, 03:22
Re: [Ayuda] Sistema de /cinturon - by Carlos_Martinez - 26.04.2010, 06:47
Re: [Ayuda] Sistema de /cinturon - by Dws - 26.04.2010, 16:38

Forum Jump:


Users browsing this thread: 1 Guest(s)