SA-MP Forums Archive
Destroying cars on disconnect - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Destroying cars on disconnect (/showthread.php?tid=500918)



Destroying cars on disconnect - jackx3rx - 15.03.2014

Hey guys, I need a little help with my vehicle system I'm making.

I've created it so it saves the vehicle info and it all works but I'm not sure how I destroy the players vehicle when he disconnects. At the moment when the player disconnects the car stays there, when he reconnects another vehicle spawns.

If any of my script is required, please ask.


Re: Destroying cars on disconnect - kepa333 - 15.03.2014

show us what you did and mybe we can help you


Re: Destroying cars on disconnect - jackx3rx - 15.03.2014

I added this to my PlayerInfo:
pawn Код:
pVehicleColour1,
    pVehicleColour2,
    Float:pVehicleX,
    Float:pVehicleY,
    Float:pVehicleZ,
    Float:pVehicleA,
Load user:
pawn Код:
INI_Int("VehicleModel",PlayerInfo[playerid][pVehicleModel]);
    INI_Int("VehicleColour1",PlayerInfo[playerid][pVehicleColour1]);
    INI_Int("VehicleColour2",PlayerInfo[playerid][pVehicleColour2]);
    INI_Float("VehicleX",PlayerInfo[playerid][pVehicleX]);
    INI_Float("VehicleY",PlayerInfo[playerid][pVehicleY]);
    INI_Float("VehicleZ",PlayerInfo[playerid][pVehicleZ]);
    INI_Float("VehicleA",PlayerInfo[playerid][pVehicleA]);
Onplayerdisconnect:
pawn Код:
INI_WriteInt(File,"VehicleModel",PlayerInfo[playerid][pVehicleModel]);
        INI_WriteInt(File,"VehicleColour1",PlayerInfo[playerid][pVehicleColour1]);
        INI_WriteInt(File,"VehicleColour2",PlayerInfo[playerid][pVehicleColour2]);
    INI_WriteFloat(File,"VehicleX",PlayerInfo[playerid][pVehicleX]);
    INI_WriteFloat(File,"VehicleY",PlayerInfo[playerid][pVehicleY]);
    INI_WriteFloat(File,"VehicleZ",PlayerInfo[playerid][pVehicleZ]);
    INI_WriteFloat(File,"VehicleA",PlayerInfo[playerid][pVehicleA]);
When the player registers on my server:
pawn Код:
INI_WriteInt(File,"WeaponLicense",0);
                INI_WriteInt(File,"DrivingLicense",0);
                INI_WriteInt(File,"VehicleModel",0);
                INI_WriteInt(File,"VehicleColour1",0);
                INI_WriteInt(File,"VehicleColour2",0);
                INI_WriteInt(File,"VehicleX",0);
                INI_WriteInt(File,"VehicleY",0);
                INI_WriteInt(File,"VehicleZ",0);
                INI_WriteInt(File,"VehicleA",0);
When they login (if they own a vehicle):
pawn Код:
if(PlayerInfo[playerid][pVehicleModel] == 0) return 0;
{
CreateVehicle(PlayerInfo[playerid][pVehicleModel],PlayerInfo[playerid][pVehicleX],PlayerInfo[playerid][pVehicleY],PlayerInfo[playerid][pVehicleZ],PlayerInfo[playerid][pVehicleA],PlayerInfo[playerid][pVehicleColour1],PlayerInfo[playerid][pVehicleColour2],-1);
                    }
Dialog for purchasing vehicles (there are 2 vehicles at the moment, faggio & premier):
pawn Код:
case 24:
        {
            if(response)
            {
                switch(listitem)
                {
                    case 0:
                    {
                        if(PlayerInfo[playerid][pVehicleModel] < 1) return SendClientMessage(playerid,COLOR_GREY,"You already own a vehicle.");
                        if(GetPlayerMoney(playerid) > 4600) return SendClientMessage(playerid,COLOR_GREY,"You can't afford that vehicle.");
                        {
                            GivePlayerMoney(playerid,-4600);
                            CreateVehicle(462,-1927.589,257.510,41.039,1,1,1,-1);
                            PlayerInfo[playerid][pVehicleModel] = 462;
                            PlayerInfo[playerid][pVehicleX] = -1927.589;
                            PlayerInfo[playerid][pVehicleY] = 257.510;
                            PlayerInfo[playerid][pVehicleZ] = 41.039;
                            PlayerInfo[playerid][pVehicleA] = 1;
                            PlayerInfo[playerid][pVehicleColour1] = 1;
                            PlayerInfo[playerid][pVehicleColour2] = 1;
                        }
                    }
                    case 1:
                    {
                        if(PlayerInfo[playerid][pVehicleModel] < 1) return SendClientMessage(playerid,COLOR_GREY,"You already own a vehicle.");
                        if(GetPlayerMoney(playerid) > 11000) return SendClientMessage(playerid,COLOR_GREY,"You can't afford that vehicle.");
                        {
                            GivePlayerMoney(playerid,-11000);
                            CreateVehicle(426,-1927.589,257.510,41.039,1,1,1,-1);
                            PlayerInfo[playerid][pVehicleModel] = 426;
                            PlayerInfo[playerid][pVehicleX] = -1927.589;
                            PlayerInfo[playerid][pVehicleY] = 257.510;
                            PlayerInfo[playerid][pVehicleZ] = 41.039;
                            PlayerInfo[playerid][pVehicleA] = 1;
                            PlayerInfo[playerid][pVehicleColour1] = 1;
                            PlayerInfo[playerid][pVehicleColour2] = 1;
                        }
                    }
                }
            }
        }
    }
    return 1;
}
cmd:buy inside the dealership which shows dialog:
pawn Код:
if(IsPlayerInRangeOfPoint(playerid,20.0,-1954.474,302.138,41.047))
    {
        if(PlayerInfo[playerid][pDrivingLicense] == 0) return SendClientMessage(playerid,COLOR_GREY,"You require a driving license before purchasing a vehicle.");
        ShowPlayerDialog(playerid,24,DIALOG_STYLE_LIST,"Wang's Dealership","$4600 -- Faggio\n$11000 -- Premier","Purchase","Exit");
        return 1;
    }
    return 1;
}
I want the players vehicle to despawn when he logs off.


AW: Destroying cars on disconnect - Macronix - 15.03.2014

Add an ID for each player vehicle (for example PlayerInfo[playerid][pVehicleID]) and when you create the vehicle you write:
pawn Код:
PlayerInfo[playerid][pVehicleID] = CreateVehicle(....);
and when he disconnects you just write DestroyVehicle(PlayerInfo[playerid][pVehicleID]);


AW: Destroying cars on disconnect - jackx3rx - 15.03.2014

Compiles fine but doesn't work?


AW: Destroying cars on disconnect - Macronix - 15.03.2014

Show me your new code please.


Re: Destroying cars on disconnect - Zeppo - 16.03.2014

Use this tutorial:
- http://forum.sa-mp.com/showthread.ph...icle+ownership
This helped me a ton when I was in need of one.