/Siren Help Please [+REP]
#1

hey Guys

i have a siren system inside my gamemode and it works fine, except when i try to remove it it doesnt remove. heres my code.

PHP код:
    if(strcmp(cmd"/siren"true) == 0)
    {
        if(
IsPlayerConnected(playerid))
        {
            if(
PlayerInfo[playerid][pMember] == || PlayerInfo[playerid][pLeader] == || PlayerInfo[playerid][pMember] == || PlayerInfo[playerid][pLeader] == || gTeam[playerid] == 2)
            {
                new 
VID GetPlayerVehicleID(playerid);
                
tmp strtok(cmdtextidx);
                if(!
strlen(tmp))
                {
                    
SendClientMessage(playeridCOLOR_GREY"USAGE: /siren [inside, roof, remove]");
                    
SendClientMessage(playeridCOLOR_GREY"[INFO]: 'remove' will remove the item from your vehicle!");
                    return 
1;
                }
                
strmid(Sirentmp0strlen(cmdtext), 255);
                if(
strcmp(Siren"inside"truestrlen(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(playeridsendernamesizeof(sendername));
                        
Siren[playerid] = CreateObject(1941910.010.010.0000);
                        
AttachObjectToVehicle(Siren[playerid], VID0.00.750.40.00.10.0); // Inside - Premier
                        
format(stringsizeof(string), "* %s puts the siren on the dashboard."sendername);
                        
ProxDetector(30.0playeridstringCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    } else { return 
SendClientMessage(playeridCOLOR_GREY"[ERROR] You already have a siren!"); }
                }
                else if(
strcmp(Siren"roof"truestrlen(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(playeridsendernamesizeof(sendername));
                        
Siren[playerid] = CreateObject(1941910.010.010.0000);
                        
AttachObjectToVehicle(Siren[playerid], VID0.00.00.80.00.10.0); // tak - Premier
                        
format(stringsizeof(string), "* %s puts the siren on the roof."sendername);
                        
ProxDetector(30.0playeridstringCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    } else { return 
SendClientMessage(playeridCOLOR_GREY"[ERROR] You already have a siren!"); }
                }
                else if(
strcmp(Siren"remove"truestrlen(Siren)) == 0)
                {
                    
GetPlayerName(playeridsendernamesizeof(sendername));
                    
DestroyObject(Siren[playerid]);
                    
Siren[playerid] = -1;
                    
format(stringsizeof(string), "* %s takes down the siren."sendername);
                    
ProxDetector(30.0playeridstringCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
            } else { 
SendClientMessage(playeridCOLOR_GREY"[ERROR] You're not part of the team !"); }
        }
        return 
1;
    } 
Please can someone help.
Reply
#2

Hello, i don't know the problem about your code but i think maybe you can try to delete : Siren[playerid] = -1;
No ?
And when you write in your chat : /siren remove
the sentance : "takes down the siren." appears ?

Sorry for my bad english ^^
Reply
#3

I have removed that line and the problem is still there.

PHP код:
    if(strcmp(cmd"/siren"true) == 0)
    {
        if(
IsPlayerConnected(playerid))
        {
            if(
PlayerInfo[playerid][pMember] == || PlayerInfo[playerid][pLeader] == || PlayerInfo[playerid][pMember] == || PlayerInfo[playerid][pLeader] == || gTeam[playerid] == 2)
            {
                new 
VID GetPlayerVehicleID(playerid);
                
tmp strtok(cmdtextidx);
                if(!
strlen(tmp))
                {
                    
SendClientMessage(playeridCOLOR_GREY"USAGE: /siren [inside, roof, remove]");
                    
SendClientMessage(playeridCOLOR_GREY"[INFO]: 'remove' will remove the item from your vehicle!");
                    return 
1;
                }
                
strmid(Sirentmp0strlen(cmdtext), 255);
                if(
strcmp(Siren"inside"truestrlen(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(playeridsendernamesizeof(sendername));
                        
Siren[playerid] = CreateObject(1941910.010.010.0000);
                        
AttachObjectToVehicle(Siren[playerid], VID0.00.750.40.00.10.0); // Inside - Premier
                        
format(stringsizeof(string), "* %s puts the siren on the dashboard."sendername);
                        
ProxDetector(30.0playeridstringCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    } else { return 
SendClientMessage(playeridCOLOR_GREY"[ERROR] You already have a siren!"); }
                }
                else if(
strcmp(Siren"roof"truestrlen(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(playeridsendernamesizeof(sendername));
                        
Siren[playerid] = CreateObject(1941910.010.010.0000);
                        
AttachObjectToVehicle(Siren[playerid], VID0.00.00.80.00.10.0); // tak - Premier
                        
format(stringsizeof(string), "* %s puts the siren on the roof."sendername);
                        
ProxDetector(30.0playeridstringCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    } else { return 
SendClientMessage(playeridCOLOR_GREY"[ERROR] You already have a siren!"); }
                }
                else if(
strcmp(Siren"remove"truestrlen(Siren)) == 0)
                {
                    
GetPlayerName(playeridsendernamesizeof(sendername));
                    
DestroyObject(Siren[playerid]);
                    
format(stringsizeof(string), "* %s takes down the siren."sendername);
                    
ProxDetector(30.0playeridstringCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
            } else { 
SendClientMessage(playeridCOLOR_GREY"[ERROR] You're not part of the team !"); }
        }
        return 
1;
    } 
Reply
#4

Ok, so it's not the problem about on the code.
Reply
#5

OK. so
Reply
#6

Can someone please help me. I really need this to be fixed.
Reply
#7

In the remove part, try to create the object again and then destroy it. Just try.
Reply
#8

pawn Код:
//----------- On top of script
new SirenAttached[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    SirenAttached[playerid] = 0;
}

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);
                Siren[playerid] = CreateObject(19419, 10.0, 10.0, 10.0, 0, 0, 0);
                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(SirenAttached[playerid] == 0)
                        {
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            SirenAttached[playerid] = 1;
                            AttachObjectToVehicle(Siren[playerid], VID, 0.0, 0.75, 0.4, 0.0, 0.1, 0.0);
                            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 if(SirenAttached[playerid] == 2)
                        {
                            return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You already have a siren. First Remove it Then Add Next One!");
                        }
                    }
                    else
                    {
                        return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You already have a siren. First Remove it Then Add Next One!");
                    }
                }
                else if(strcmp(Siren, "roof", true, strlen(Siren)) == 0)
                {
                    if(!IsValidObject(Siren[playerid]))
                    {
                        if(SirenAttached[playerid] == 0)
                        {
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            SirenAttached[playerid] = 2;
                            AttachObjectToVehicle(Siren[playerid], VID, 0.0, 0.0, 0.8, 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 if(SirenAttached[playerid] == 1)
                        {
                            return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You already have a siren. First Remove it Then Add Next One!");
                        }
                    }
                    else
                    {
                        return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You already have a siren. First Remove it Then Add Next One!");
                    }
                }
                else if(strcmp(Siren, "remove", true, strlen(Siren)) == 0)
                {
                    if(!IsValidObject(Siren[playerid]))
                    {
                        if(SirenAttached[playerid] >= 1)
                        {                  
                            DestroyObject(Siren[playerid]);
                            SirenAttached[playerid] = 0;
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            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're not part of the team !"); }
        }
        return 1;
    }
Try this if it works...
Reply
#9

Quote:
Originally Posted by Danyal
Посмотреть сообщение
pawn Код:
//----------- On top of script
new SirenAttached[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    SirenAttached[playerid] = 0;
}

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);
                Siren[playerid] = CreateObject(19419, 10.0, 10.0, 10.0, 0, 0, 0);
                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(SirenAttached[playerid] == 0)
                        {
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            SirenAttached[playerid] = 1;
                            AttachObjectToVehicle(Siren[playerid], VID, 0.0, 0.75, 0.4, 0.0, 0.1, 0.0);
                            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 if(SirenAttached[playerid] == 2)
                        {
                            return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You already have a siren. First Remove it Then Add Next One!");
                        }
                    }
                    else
                    {
                        return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You already have a siren. First Remove it Then Add Next One!");
                    }
                }
                else if(strcmp(Siren, "roof", true, strlen(Siren)) == 0)
                {
                    if(!IsValidObject(Siren[playerid]))
                    {
                        if(SirenAttached[playerid] == 0)
                        {
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            SirenAttached[playerid] = 2;
                            AttachObjectToVehicle(Siren[playerid], VID, 0.0, 0.0, 0.8, 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 if(SirenAttached[playerid] == 1)
                        {
                            return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You already have a siren. First Remove it Then Add Next One!");
                        }
                    }
                    else
                    {
                        return SendClientMessage(playerid, COLOR_GREY, "[ERROR] You already have a siren. First Remove it Then Add Next One!");
                    }
                }
                else if(strcmp(Siren, "remove", true, strlen(Siren)) == 0)
                {
                    if(!IsValidObject(Siren[playerid]))
                    {
                        if(SirenAttached[playerid] >= 1)
                        {                  
                            DestroyObject(Siren[playerid]);
                            SirenAttached[playerid] = 0;
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            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're not part of the team !"); }
        }
        return 1;
    }
Try this if it works...
Ok this just shows up [ERROR] You already have a siren. First Remove it Then Add Next One! when i try to add a siren. But there is none there.
Reply
#10

DO YOU HAVE TEAM VIEWER PM ME YOUR ID AND PASS SO I CAN HELP YOU OVER TV
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)