[HELP]Siren
#1

Hello, i got this problem, that its doesnt remove the siren from the dashboard/roof
here is the code :
Код:
//---------------------------------[Siren]---------------------------------------------
    if(strcmp(cmd, "/siren", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || gTeam[playerid] == 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 1;
                }
                strmid(Siren, tmp, 0, strlen(cmdtext), 255);
                if(strcmp(Siren, "inside", true, strlen(Siren)) == 0)
                {
                    if(!IsValidObject(Siren[playerid]))
                    {
                        //if(VID != 426) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier model!"); } // 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 { return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You do already have a siren!"); }
                }
                else if(strcmp(Siren, "roof", true, strlen(Siren)) == 0)
                {
                    if(!IsValidObject(Siren[playerid]))
                    {
                        //if(VID != 426) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier model!"); } // 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.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'r not part of the team !"); }
        }
        return 1;
    }
It doesnt remove the siren, please help !
Reply
#2

Does it send the message that you're taking down the siren?
Reply
#3

Yes.
Reply
#4

bump, please help!
Reply
#5

bump, help please! only a day and its in page 2.. so please help !
Reply
#6

It must be something else, as I can't see the mistake in the code.
Also: bump after 48hours only.
Reply
#7

Ok, I'm going to take a wild bet on this one, as I haven't coded in pawn for a while

If I remember correctly, every variable created in a function gets deleted after the function is done.
You could try to do this:


pawn Код:
//At the top of your script, at all the other 'new's.

new Siren[65];

//Your command

    if(strcmp(cmd, "/siren", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || gTeam[playerid] == 2)
            {
                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 1;
                }
                strmid(Siren, tmp, 0, strlen(cmdtext), 255);
                if(strcmp(Siren, "inside", true, strlen(Siren)) == 0)
                {
                    if(!IsValidObject(Siren[playerid]))
                    {
                        //if(VID != 426) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier model!"); } // 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 { return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You do already have a siren!"); }
                }
                else if(strcmp(Siren, "roof", true, strlen(Siren)) == 0)
                {
                    if(!IsValidObject(Siren[playerid]))
                    {
                        //if(VID != 426) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier model!"); } // 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.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'r not part of the team !"); }
        }
        return 1;
    }
Reply
#8

Quote:
Originally Posted by gold
Посмотреть сообщение
It doesnt remove the siren, please help !
Offtopic:
Pawno knowlage = 9.6

So now your stating false statements. Obviously you don't have very good knowledge with pawn, obviously no where near 9.6, or you could fix this problem.

Your signature:
1 - it's PAWN not PAWNO. PAWN is the programming language. PAWNO is the IDE.
2 - you can't even spell knowledge. I am not trying to be a grammar Nazi but wow.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)