SA-MP Forums Archive
/Siren Help Please [+REP] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: /Siren Help Please [+REP] (/showthread.php?tid=381654)



/Siren Help Please [+REP] - rbush12 - 30.09.2012

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.


Re: /Siren Help Please [+REP] - The-gold - 30.09.2012

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 ^^


Re: /Siren Help Please [+REP] - rbush12 - 30.09.2012

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;
    } 



Re: /Siren Help Please [+REP] - The-gold - 30.09.2012

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


Re: /Siren Help Please [+REP] - rbush12 - 30.09.2012

OK. so


Re: /Siren Help Please [+REP] - rbush12 - 30.09.2012

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


Re: /Siren Help Please [+REP] - Mr.Anonymous - 30.09.2012

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


Re: /Siren Help Please [+REP] - Danyal - 30.09.2012

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...


Re: /Siren Help Please [+REP] - rbush12 - 30.09.2012

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.


Re: /Siren Help Please [+REP] - Danyal - 30.09.2012

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