/siren problem
#1

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;
    }
Reply
#2

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
Reply
#3

Still same problem
Reply
#4

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;
    }
Reply
#5

Nope, im afraid it didnt work
Reply
#6

bump
Reply
#7

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

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!
Reply
#9

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

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


Forum Jump:


Users browsing this thread: 1 Guest(s)