Object won't destroy after using /vkill [VehID]
#1

How do I destroy siren object. After doing /vkill?

When activating Siren basically it attached in your current vehicle. But after doing /vkill - vehicle destroy.
The only destroyed is the vehicle but the Siren is stock in the air (Top of the vehicle)

pawn Код:
dcmd_vkill(playerid,params[])
{
    if(AccInfo[playerid][Level] >= 1 || AccInfo[playerid][pVip] >= 1)
    {
        if(!strlen(params)) return
        SendClientMessage(playerid, 0xFFFFFFFF, "{FFFF00}Usage: /vkill [VehicleID]") &&
        SendClientMessage(playerid, 0xFFFFFFFF, "{FF9900}Function: Will destroy specified vehicle");
        new vid;
        vid = strval(params);
        if(GetVehicleModel(vid) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Invalid Vehicle ID");
        SendCommandToAdmins(playerid,"vkill");
        DelVehicle(vid);
        new string[64];
        format(string,sizeof(string),"You have destroyed Vehicle ID: %d", vid);
        return SendClientMessage(playerid, BlueMsg, string);
    }
    else return ErrorMessages(playerid, 1);
}
pawn Код:
dcmd_siren(playerid,params[])
{
    #pragma unused params
    if(AccInfo[playerid][Level] >= 6 || AccInfo[playerid][pVip] >= 1)
    {
        if(IsSiren[playerid] == 0)
        {
            IsSiren[playerid] = 1;
            if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}You are not in a vehicle");
            if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, 0xFF0000FF, "You must be the Driver to use this command");
            new VID = GetPlayerVehicleID(playerid);
            if(Siren[VID] == 1) return SendClientMessage(playerid, white, "{FF0000}This vehicle already has a Siren");
            Siren[VID] = 1;
            GameTextForPlayer(playerid,"~y~Siren ~g~~n~Activated",2000,3);
            SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
            AttachObjectToVehicle(SirenObject[VID], VID, -0.43, 0.0, 0.785, 0.0, 0.1, 0.0);
        }
        else if(IsSiren[playerid] == 1)
        {
            IsSiren[playerid] = 0;
            if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}You are not in a vehicle");
            if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, 0xFF0000FF, "You must be the Driver to use this command");
            new VID = GetPlayerVehicleID(playerid);
            if(Siren[VID] == 0) return SendClientMessage(playerid, white, "{FF0000}This vehicle doesn't have a siren on it");
            Siren[VID] = 0;
            GameTextForPlayer(playerid,"~y~Siren ~r~~n~Deactivated",2000,3);
            DestroyObject(SirenObject[VID]);
        }
    }
    else return ErrorMessages(playerid, 1);
    return 1;
}
Reply
#2

Try this.

pawn Код:
dcmd_vkill(playerid,params[])
{
    if(AccInfo[playerid][Level] >= 1 || AccInfo[playerid][pVip] >= 1)
    {
        if(!strlen(params)) return
        SendClientMessage(playerid, 0xFFFFFFFF, "{FFFF00}Usage: /vkill [VehicleID]") &&
        SendClientMessage(playerid, 0xFFFFFFFF, "{FF9900}Function: Will destroy specified vehicle");
        new vid;
        vid = strval(params);
        if(GetVehicleModel(vid) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Invalid Vehicle ID");
        SendCommandToAdmins(playerid,"vkill");
        DestroyObject(SirenObject[vid]);
        DelVehicle(vid);
        new string[64];
        format(string,sizeof(string),"You have destroyed Vehicle ID: %d", vid);
        return SendClientMessage(playerid, BlueMsg, string);
    }
    else return ErrorMessages(playerid, 1);
}
Reply
#3

Quote:
Originally Posted by Camacorn
Посмотреть сообщение
Try this.

pawn Код:
dcmd_vkill(playerid,params[])
{
    if(AccInfo[playerid][Level] >= 1 || AccInfo[playerid][pVip] >= 1)
    {
        if(!strlen(params)) return
        SendClientMessage(playerid, 0xFFFFFFFF, "{FFFF00}Usage: /vkill [VehicleID]") &&
        SendClientMessage(playerid, 0xFFFFFFFF, "{FF9900}Function: Will destroy specified vehicle");
        new vid;
        vid = strval(params);
        if(GetVehicleModel(vid) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}Invalid Vehicle ID");
        SendCommandToAdmins(playerid,"vkill");
        DestroyObject(SirenObject[vid]);
        DelVehicle(vid);
        new string[64];
        format(string,sizeof(string),"You have destroyed Vehicle ID: %d", vid);
        return SendClientMessage(playerid, BlueMsg, string);
    }
    else return ErrorMessages(playerid, 1);
}
Omg! It works! But small bug. When I do /vkill it destroy the vehicle and the siren. Then the vehicle spawn back and then destroyed again Weirdd......
Reply
#4

Show me your DelVehicle stock.
Reply
#5

Quote:
Originally Posted by Camacorn
Посмотреть сообщение
Show me your DelVehicle stock.
Here it is. Thanks for helping me!

pawn Код:
DelVehicle(vehicleid)
{
    for(new players=0;players<=MAX_PLAYERS;players++)
    {
        new Float:X,Float:Y,Float:Z;
        if (IsPlayerInVehicle(players,vehicleid))
        {
        GetPlayerPos(players,X,Y,Z);
        SetPlayerPos(players,X,Y,Z+2);
        SetVehicleToRespawn(vehicleid);
        }
        SetVehicleParamsForPlayer(vehicleid,players,0,1);
    }
    SetTimerEx("VehRes",3000,0,"d",vehicleid);
    return 1;
}
Reply
#6

Hi Camacorn so what should I do with the DelVehicle stock?
Reply
#7

Change SetVehicleToRespawn to DestroyVehicle
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)