Repair Vehicle Fully
#1

This code just crashes my game but why.
pawn Код:
if(strcmp(cmdtext, "/fix", true) == 0)
  {
      if(IsPlayerInAnyVehicle(playerid))
        {
            new curveh;
            new newveh;
            new Float:X,Float:Y,Float:Z;
            new Float:ang;
            curveh = GetPlayerVehicleID(playerid);
            GetPlayerPos(playerid,X,Y,Z);
            ang = GetPlayerFacingAngle(playerid,ang);
            newveh = CreateVehicle(curveh,X,Y,Z,ang,-1,-1,0);
            DestroyVehicle(curveh);
            PutPlayerInVehicle(playerid,newveh,0);
            GivePlayerMoney(playerid, -500);
            GameTextForPlayer(playerid, "Fixed ($500)",5000,5);
            }else{
            GameTextForPlayer(playerid, "You Are Not In A Vehicle To Fix!",5000,5);
        }
        return 1;
    }
Reply
#2

you are destroying it with player in it?
Reply
#3

Because curveh will be the vehicle id not the model.

Try:
pawn Код:
if(strcmp(cmdtext, "/fix", true) == 0)
{
  if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  {
    new Float:X,Float:Y,Float:Z,Float:Angle,OldV,OldVM,NewV;
    OldV = GetPlayerVehicleID(playerid);
    OldVM = GetVehicleModel(OldV);
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,Angle);
    SetPlayerPos(playerid,X,Y,Z+2);
    DestroyVehicle(OldV);
    NewV = CreateVehicle(OldVM,X,Y,Z,Angle,-1,-1,0);
    PutPlayerInVehicle(playerid,NewV,0);
    GivePlayerMoney(playerid, -500);
    GameTextForPlayer(playerid, "Fixed ($500)",5000,5);
  }
  else
  {
    GameTextForPlayer(playerid, "You Are Not In A Vehicle To Fix!",5000,5);
  }
  return 1;
}
Not tested!
Reply
#4

Quote:
Originally Posted by Rk_
you are destroying it with player in it?
In this code the player is removed but it still crashes.
pawn Код:
if(strcmp(cmdtext, "/fix", true) == 0)
  {
      if(IsPlayerInAnyVehicle(playerid))
        {
            new curveh;
            new newveh;
            new Float:X,Float:Y,Float:Z;
            new Float:ang;
            curveh = GetPlayerVehicleID(playerid);
            GetPlayerPos(playerid,X,Y,Z);
            ang = GetPlayerFacingAngle(playerid,ang);
            newveh = CreateVehicle(curveh,X,Y,Z,ang,-1,-1,0);
            RemovePlayerFromVehicle(playerid);
            DestroyVehicle(curveh);
            PutPlayerInVehicle(playerid,newveh,0);
            GivePlayerMoney(playerid, -500);
            GameTextForPlayer(playerid, "Fixed ($500)",5000,5);
            }else{
            GameTextForPlayer(playerid, "You Are Not In A Vehicle To Fix!",5000,5);
        }
        return 1;
    }
Quote:
Originally Posted by OnTop2K9
Because curveh will be the vehicle id not the model.
Any idea how to get the model of the curveh
Reply
#5

GetVehicleModel(vehicleid)
Reply
#6

BM[UK] That now works, the only problem is the angle can be a bit weird. Also is there any way to find the cars colour instead of random.
Reply
#7

No, Not without using custom SetVehicleColor functions
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)