SA-MP Forums Archive
/siren problem - 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 problem (/showthread.php?tid=417159)



/siren problem - Don_Cage - 20.02.2013

I got a problem with the /siren, When i choose it to be on roof or inside the car its all good but when i choose to remove it nothing happens.
pawn Код:
if(strcmp(cmd, "/siren", true) == 0)
    {
        if(IsACop(playerid))
        {
            new Siren[MAX_VEHICLES];
            new SirenObject[MAX_VEHICLES];
            new siren[65];
            new VID = GetPlayerVehicleID(playerid);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [1(inside), 2(roof), 3(off)]");
                SendClientMessage(playerid, COLOR_GREY, "HINT: '3' will remove the item from your vehicle.");
                return 1;
            }
            strmid(siren, tmp, 0, strlen(cmdtext), 255);
            if(strcmp(siren, "1", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 0)
                {
                    Siren[VID] = 1;
                    SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                    AttachObjectToVehicle(SirenObject[VID], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0);
                    format(string, sizeof(string), "* Law Enforcer puts the siren on the dashboard.");
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
                else if(Siren[VID] == 1) return SendClientMessage(playerid, COLOR_GREY, "This vehicle already has a siren!");
            }
            else if(strcmp(siren, "2", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 0)
                {
                    Siren[VID] = 1;
                    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);
                    format(string, sizeof(string), "* Law Enforcer puts the siren on the roof.");
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
                else if(Siren[VID] == 1) return SendClientMessage(playerid, COLOR_GREY, "This vehicle already has a siren!");
            }
            if(strcmp(siren, "3", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 1)
                {
                DestroyDynamicObject(SirenObject[VID]);
                format(string, sizeof(string), "* Law Enforcer takes down the siren.");
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                Siren[VID] = 0;
                }
            }
            else if(Siren[VID] == 0) return SendClientMessage(playerid, COLOR_GREY, "This vehicle doesn't have siren!");
        }
        else return SendClientMessage(playerid, COLOR_GREY, "   You are not part of a Team!");
        return 1;
    }



Re: /siren problem - lean1337 - 20.02.2013

pawn Код:
if(strcmp(cmd, "/siren", true) == 0)
    {
        if(IsACop(playerid))
        {
            new Siren[MAX_VEHICLES];
            new SirenObject[MAX_VEHICLES];
            new siren[65];
            new VID = GetPlayerVehicleID(playerid);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [1(inside), 2(roof), 3(off)]");
                SendClientMessage(playerid, COLOR_GREY, "HINT: '3' will remove the item from your vehicle.");
                return 1;
            }
            strmid(siren, tmp, 0, strlen(cmdtext), 255);
            if(strcmp(siren, "1", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 0)
                {
                    Siren[VID] = 1;
                    SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                    AttachObjectToVehicle(SirenObject[VID], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0);
                    format(string, sizeof(string), "* Law Enforcer puts the siren on the dashboard.");
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
                else if(Siren[VID] == 1) return SendClientMessage(playerid, COLOR_GREY, "This vehicle already has a siren!");
            }
            else if(strcmp(siren, "2", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 0)
                {
                    Siren[VID] = 1;
                    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);
                    format(string, sizeof(string), "* Law Enforcer puts the siren on the roof.");
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
                else if(Siren[VID] == 1) return SendClientMessage(playerid, COLOR_GREY, "This vehicle already has a siren!");
            }
            if(strcmp(siren, "3", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 1)
                {
                DestroyObject(SirenObject[VID]);
                format(string, sizeof(string), "* Law Enforcer takes down the siren.");
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                Siren[VID] = 0;
                }
            }
            else if(Siren[VID] == 0) return SendClientMessage(playerid, COLOR_GREY, "This vehicle doesn't have siren!");
        }
        else return SendClientMessage(playerid, COLOR_GREY, "   You are not part of a Team!");
        return 1;
    }

Try this


Re: /siren problem - Don_Cage - 20.02.2013

Still same problem


Re: /siren problem - OG Killo - 20.02.2013

HEEERE IT SHOULD WORK XX
Код:
if(strcmp(cmd, "/siren", true) == 0)
    {
        if(IsACop(playerid))
        {
            new Siren[MAX_VEHICLES];
            new SirenObject[MAX_VEHICLES];
            new siren[65];
            new VID = GetPlayerVehicleID(playerid);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [1(inside), 2(roof), 3(off)]");
                SendClientMessage(playerid, COLOR_GREY, "HINT: '3' will remove the item from your vehicle.");
                return 1;
            }
            strmid(siren, tmp, 0, strlen(cmdtext), 255);
            if(strcmp(siren, "1", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 0)
                {
                    Siren[VID] = 1;
                    SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                    AttachObjectToVehicle(SirenObject[VID], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0);
                    format(string, sizeof(string), "* Law Enforcer puts the siren on the dashboard.");
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
                else if(Siren[VID] == 1) return SendClientMessage(playerid, COLOR_GREY, "This vehicle already has a siren!");
            }
            else if(strcmp(siren, "2", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 0)
                {
                    Siren[VID] = 1;
                    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);
                    format(string, sizeof(string), "* Law Enforcer puts the siren on the roof.");
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
                else if(Siren[VID] == 1) return SendClientMessage(playerid, COLOR_GREY, "This vehicle already has a siren!");
            }
            if(strcmp(siren, "3", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 1)
                {
		Siren[VID] = 0;
                DestroyObject(SirenObject[VID]);
                format(string, sizeof(string), "* Law Enforcer takes down the siren.");
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
            }
            else if(Siren[VID] == 0) return SendClientMessage(playerid, COLOR_GREY, "This vehicle doesn't have siren!");
        }
        else return SendClientMessage(playerid, COLOR_GREY, "   You are not part of a Team!");
        return 1;
    }



Re: /siren problem - Don_Cage - 20.02.2013

Nope, im afraid it didnt work


Re: /siren problem - Don_Cage - 20.02.2013

bump


Re: /siren problem - Don_Cage - 21.02.2013

Still no luck with removing the siren. Please help me with this


Re: /siren problem - lean1337 - 21.02.2013

pawn Код:
LEANCMD:(siren)
{
    if(PlayerInfo[playerid][pAdmin] >= 0)
    {
        new type;
        new VID = GetPlayerVehicleID(playerid);
        if(sscanf(params, "d", type))
        {
            SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /siren [type]");
            SendClientMessageEx(playerid, COLOR_GRAD2, "Type: 1 = Inside, 2 = Roof, 3 = Off.");
            return 1;
        }
        switch(type)
        {
        case 1:
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessageEx(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                new sendername[MAX_PLAYER_NAME];
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                SirenObject[VID] = CreateObject(18646, 50.0, 50.0, 5.0, 0, 0, 0);
                AttachObjectToVehicle(SirenObject[VID], VID, 0.0, 0.100, 0.90, 0.0, 0.1, 0.0);

                return 1;
                }
        case 2:
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessageEx(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                new sendername[MAX_PLAYER_NAME];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                AttachObjectToVehicle(SirenObject[VID], VID, -0.45, 0.0, 0.65, 0.0, 0.1, 0.0);
                return 1;
                }
        case 3:
            {
                if(Siren[VID] == 0)
                {
                    SendClientMessageEx(playerid, COLOR_GRAD2, "This vehicle doesn't have a siren on it!");
                    return 1;
                }
                Siren[VID] = 0;
                new sendername[MAX_PLAYER_NAME];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                DestroyObject(SirenObject[VID]);
                return 1;
            }
        default:
            {
                SendClientMessageEx(playerid, COLOR_WHITE, "Invalid license type! /siren [type]");
                SendClientMessageEx(playerid, COLOR_GRAD2, "Type: 1 = Roof, 2 = Inside, 3 = Off.");
            }
        }
    }
    else SendClientMessageEx(playerid, COLOR_GREY, "You're not authorised to use this command.");
    return 1;
}
this is what I have and it works great!


Re: /siren problem - JamesS - 21.02.2013

You used DestroyDynamicObject, it should be DestroyObject(SirenObject[VID]) instead.


Re: /siren problem - Don_Cage - 21.02.2013

This is what i use now Martin, hope you could find whats wrong,
pawn Код:
if(strcmp(cmd, "/siren", true) == 0)
    {
        if(IsACop(playerid))
        {
            new Siren[MAX_VEHICLES];
            new SirenObject[MAX_VEHICLES];
            new siren[65];
            new VID = GetPlayerVehicleID(playerid);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [1(inside), 2(roof), 3(off)]");
                SendClientMessage(playerid, COLOR_GREY, "HINT: '3' will remove the item from your vehicle.");
                return 1;
            }
            strmid(siren, tmp, 0, strlen(cmdtext), 255);
            if(strcmp(siren, "1", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 0)
                {
                    Siren[VID] = 1;
                    SirenObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                    AttachObjectToVehicle(SirenObject[VID], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0);
                    format(string, sizeof(string), "* Law Enforcer puts the siren on the dashboard.");
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
                else if(Siren[VID] == 1) return SendClientMessage(playerid, COLOR_GREY, "This vehicle already has a siren!");
            }
            else if(strcmp(siren, "2", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 0)
                {
                    Siren[VID] = 1;
                    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);
                    format(string, sizeof(string), "* Law Enforcer puts the siren on the roof.");
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
                else if(Siren[VID] == 1) return SendClientMessage(playerid, COLOR_GREY, "This vehicle already has a siren!");
            }
            if(strcmp(siren, "3", true, strlen(siren)) == 0)
            {
                if(Siren[VID] == 1)
                {
                Siren[VID] = 0;
                DestroyObject(SirenObject[VID]);
                format(string, sizeof(string), "* Law Enforcer takes down the siren.");
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
            }
            else if(Siren[VID] == 0) return SendClientMessage(playerid, COLOR_GREY, "This vehicle doesn't have siren!");
        }
        else return SendClientMessage(playerid, COLOR_GREY, "   You are not part of a Team!");
        return 1;
    }