Destroying cars on disconnect
#1

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.
Reply
#2

show us what you did and mybe we can help you
Reply
#3

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.
Reply
#4

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]);
Reply
#5

Compiles fine but doesn't work?
Reply
#6

Show me your new code please.
Reply
#7

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


Forum Jump:


Users browsing this thread: 1 Guest(s)