Object not removing.
#1

I have this /siren command :
pawn Код:
if(strcmp(cmd, "/siren", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pMember] == 2)
            {
                new Siren[65];
                new VID = GetPlayerVehicleID(playerid);
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp))
                {
                    SendClientMessage(playerid, COLOR_GREY, "USAGE: /siren [inside, roof, remove]");
                    SendClientMessage(playerid, COLOR_GREY, "[INFO]: 'remove' will remove the item from your vehicle!");
                    return 0;
                }
                strmid(Siren, tmp, 0, strlen(cmdtext), 255);
                if(strcmp(Siren, "inside", true, strlen(Siren)) == 0)
                {
                    if(!IsValidObject(Siren[playerid]))
                    {
                        if(!IsPlayerInAnyVehicle(playerid)) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier / LVPD Cruiser / Cheetah!"); } // If he's not in a Premier...
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        Siren[playerid] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                        AttachObjectToVehicle(Siren[playerid], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0); // Inside - Premier
                        format(string, sizeof(string), "* %s puts the siren on the dashboard.", sendername);
                        ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    }
                    else
                    {
                    SendClientMessage(playerid, COLOR_GREY, "[ERROR] You do already have a siren!");
                    return 1;
                    }
                }
                else if(strcmp(Siren, "roof", true, strlen(Siren)) == 0)
                {
                    if(!IsValidObject(Siren[playerid]))
                    {
                        if(!IsPlayerInAnyVehicle(playerid)) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier / LVPD Cruiser / Cheetah!"); }
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        Siren[playerid] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                        AttachObjectToVehicle(Siren[playerid], VID, -0.43, 0.0, 0.785, 0.0, 0.1, 0.0); // tak - Premier
                        format(string, sizeof(string), "* %s puts the siren on the roof.", sendername);
                        ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    } else { return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You do already have a siren!"); }
                }
                else if(strcmp(Siren, "remove", true, strlen(Siren)) == 0)
                {
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    DestroyObject(Siren[playerid]);
                    format(string, sizeof(string), "* %s takes down the siren.", sendername);
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
            } else { SendClientMessage(playerid, COLOR_GREY, "[ERROR] You are not a member of the SASD / FBI !"); }
        }
        return 1;
    }
But when I type /siren remove, it doesn't remove the siren.
Any reason ?
Reply
#2

Still using strcmp?
I suggest you sscanf, a lot easier and faster.
Reply
#3

Try changing last line code:

pawn Код:
DestroyObject(Siren[playerid]);
To
pawn Код:
DestroyObject(Siren);
There no use of writing playerid.

Thanks.
Reply
#4

I'm not going to convert a whole gamemode.
^^ Dave, doesn't work.
Reply
#5

Does it send the message, though?
Reply
#6

Yes.
Reply
#7

Yeah, it'll say we pull down the siren. But it wont actually do so.
Reply
#8

What's that prox detector?
Reply
#9

Create a global variable instead local one.
pawn Код:
new Siren[MAX_PLAYERS];//On top of your script

Siren[playerid] = Create...............
DestroyObject(Siren[playerid]);
Reply
#10

Quote:
Originally Posted by varthshenon
Посмотреть сообщение
Create a global variable instead local one.
pawn Код:
new Siren[MAX_PLAYERS];//On top of your script

Siren[playerid] = Create...............
DestroyObject(Siren[playerid]);
Try what he suggested.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)