Detectar si esta con trailer
#1

hola que tal quiero saber como puedo hacer para detectar que este en un camion con caja de carga y si la caja se quita del camion me mande un mensaje diciendo que no trae caja?
Reply
#2

bueno puedes usar esta GetVehicleTrailer o esta DetachTrailerFromVehicle dependiendo de para que lo utilizaras

EDIT: con esto puedes chequear IsTrailerAttachedToVehicle
Reply
#3

Como dijo cesar, podes usar la funciуn IsTrailerAttachedToVehicled.

pawn Код:
if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid, -1, "No llevas un trailer enganchado!");
return 1;
}
Reply
#4

comprendo lo que sucede es lo siguiente

yo estoy manejando un camion con trailer enganchado, despues doy una vuelta y se desengancha y quiero que cuando se desenganche envie un mensaje indicando que no llevo el trailer enganchando pero no se en que callback o como realizar la funcion
Reply
#5

podes hacer un timer que se ejecute en onplayerstatechange cuando alguien se sube a un camion y que detecte el trailer si no lo tiene que mande el mensaje.
Reply
#6

Creas Una Variable Que Te Indique Cuando Montes Ese Vehiculo en especifico luego haces lo siguiente
PHP код:
///---recuerda setearlo a 0
new SiTieneTrailer[MAX_PLAYERS];
public 
OnPlayerStateChange(playeridnewstateoldstate)
{
     if(
SiTieneTrailer[playerid] == 1)
      {
        if(!
IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
        {
        
SendClientMessage(playerid, -1"No llevas un trailer enganchado!");
        
/// aqui colocas el timer que contara la funcion que aras al pasar el time sin el trailer puesto
        
return 1;
        } 
       else 
       {
       
// aqui iria la funcion si tiene trailer
        
}
       }
    return 
1;
}
public 
OnPlayerExitVehicle(playeridvehicleid)
{
 
  if(
vehicleid == iddelcamion)
  {
    
SiTieneTrailer[playerid] = 0;
  }
    return 
1;
}
public 
OnPlayerEnterVehicle(playeridvehicleidispassenger)
{
  if(
vehicleid == iddelcamion)
  {
    
SiTieneTrailer[playerid] = 1;
  }
    return 
1;

PD: si asi no es ps noce como :S
Reply
#7

pawn Код:
new Timer[MAX_PLAYERS];
new Mensaje[MAX_PLAYERS];
forward TimerCheck(playerid);

public OnPlayerStateChange(playerid, newstate, oldstate)
{
          if(newstate == PLAYER_STATE_DRIVER) // Mensaje al conductor.
          {
          Timer[playerid] = SetTimerEx("TimerCheck", 1000, 0, "d", playerid);
          Mensaje[playerid] = 1;
          return 1;
          }

          if(oldstate == PLAYER_STATE_DRIVER)
          {
          KillTimer(Timer[playerid]);
          Mensaje[playerid] = 0;
          return 1;
          }
return 1;
}

public TimerCheck(playerid)
{
         if(Mensaje[playerid] == 1)
         {
         if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
         {
         SendClientMessage(playerid, -1, "No llevas un trailer enganchado!");
         return 1;
         }
         }
         Mensaje[playerid] = 0;
}
Eso es un ejemplo de lo que pedis. Si queres que cuando no haya nadie dentro del camiуn y cuando el acoplado se salga y le envнe un mensaje, entonces en vez de usar los parбmetros de playerid usa los de vehicleid (MAX_VEHICLES).
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)