Siren Help
#1

Hi, I have been trying to implement a /siren command into my script. I was given this by someone previously helping but it's still not working.

Please help, I need this.

pawn Код:
if(strcmp("/siren", cmdtext, true, 10) == 0)
    {
        if(IsACop(playerid))
        {
            new string[256], type,idx;
            new VID = GetPlayerVehicleID(playerid);
            new x_siren[256];
            new Siren[MAX_VEHICLES];
            new SirenObject[MAX_VEHICLES];
            x_siren = strtok(cmdtext, idx);
            type = strval(x_siren);
            if(!strlen(x_siren))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Inside, 2 = Roof, 3 = Off.");
                return 1;
            }
            if(type < 1 || type > 3)
            {
                SendClientMessage(playerid, COLOR_WHITE, "Invalid license type! /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Roof, 2 = Inside, 3 = Off.");
                return 1;
            }
            if(type == 1)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                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), "* %s puts the siren on the dashboard.", sendername);
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 1;
            }
            if(type == 2)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                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), "* %s puts the siren on the roof.", sendername);
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 1;
            }
            if(type == 3)
            {
                if(Siren[VID] == 0)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle doesn't have a siren on it!");
                    return 1;
                }
                Siren[VID] = 0;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                DestroyObject(SirenObject[VID]);
                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);
                return 1;
            }
         }
         else return 0;
    }
Errors:
Код:
C:\Users\DAN\Desktop\CSRP\gamemodes\csrp.pwn(36340) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Users\DAN\Desktop\CSRP\gamemodes\csrp.pwn(36340) : warning 219: local variable "idx" shadows a variable at a preceding level
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


2 Warnings.
36340 -
Код:
new string[128], type,idx;
Will be awarding Rep+ to the solution finder.

Thanks.

Edit: Fixed some.
Reply
#2

Those are not errors, and you can make the script work without fixing them, but heres the fix.

pawn Код:
if(strcmp("/siren", cmdtext, true, 10) == 0)
    {
        if(IsACop(playerid))
        {
            new type;
            new VID = GetPlayerVehicleID(playerid);
            new x_siren[256];
            new Siren[MAX_VEHICLES];
            new SirenObject[MAX_VEHICLES];
            x_siren = strtok(cmdtext, idx);
            type = strval(x_siren);
            if(!strlen(x_siren))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Inside, 2 = Roof, 3 = Off.");
                return 1;
            }
            if(type < 1 || type > 3)
            {
                SendClientMessage(playerid, COLOR_WHITE, "Invalid license type! /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Roof, 2 = Inside, 3 = Off.");
                return 1;
            }
            if(type == 1)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                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), "* %s puts the siren on the dashboard.", sendername);
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 1;
            }
            if(type == 2)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                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), "* %s puts the siren on the roof.", sendername);
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 1;
             }
             if(type == 3)
             {
                if(Siren[VID] == 0)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle doesn't have a siren on it!");
                    return 1;
                }
                Siren[VID] = 0;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                DestroyObject(SirenObject[VID]);
                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);
                return 1;
            }
         }
Reply
#3

Quote:
Originally Posted by Naruto_Emilio
Посмотреть сообщение
Those are not errors, and you can make the script work without fixing them, but heres the fix.

pawn Код:
if(strcmp("/siren", cmdtext, true, 10) == 0)
    {
        if(IsACop(playerid))
        {
            new type;
            new VID = GetPlayerVehicleID(playerid);
            new x_siren[256];
            new Siren[MAX_VEHICLES];
            new SirenObject[MAX_VEHICLES];
            x_siren = strtok(cmdtext, idx);
            type = strval(x_siren);
            if(!strlen(x_siren))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Inside, 2 = Roof, 3 = Off.");
                return 1;
            }
            if(type < 1 || type > 3)
            {
                SendClientMessage(playerid, COLOR_WHITE, "Invalid license type! /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Roof, 2 = Inside, 3 = Off.");
                return 1;
            }
            if(type == 1)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                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), "* %s puts the siren on the dashboard.", sendername);
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 1;
            }
            if(type == 2)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                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), "* %s puts the siren on the roof.", sendername);
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 1;
             }
             if(type == 3)
             {
                if(Siren[VID] == 0)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle doesn't have a siren on it!");
                    return 1;
                }
                Siren[VID] = 0;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                DestroyObject(SirenObject[VID]);
                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);
                return 1;
            }
         }
Thanks, this solved my warnings*.

However, the command is unresponsive. I type /siren and I get the 'Invalid License Type' which is a sign of the command working but as I type /siren 1, /siren 2, /siren 3 ect.. nothing happens.

Please help, thanks.
Reply
#4

add
pawn Код:
switch(type)
{
   if(type == 1)
Reply
#5

Hi

Can you tell me the includes needed, because I need them to compile.
Reply
#6

Quote:
Originally Posted by ThePhenix
Посмотреть сообщение
Hi

Can you tell me the includes needed, because I need them to compile.
Umm, well this is what I have included:

pawn Код:
#include <a_samp>
#include <a_http>
#include <time>
#include <dini>
#include <utils>
#include "../include/djson.inc"
#include <yom_buttons>
#include <streamer>
#include <Load>
#include <SII>
#include <fire>
Reply
#7

Uff, Are too much!
But what's the problem?
Reply
#8

Quote:
Originally Posted by Naruto_Emilio
Посмотреть сообщение
add
pawn Код:
switch(type)
{
   if(type == 1)
Hi, could you put that into the current script and paste it, I'm having trouble making it work.
Reply
#9

pawn Код:
if(strcmp("/siren", cmdtext, true, 10) == 0)
    {
        if(IsACop(playerid))
        {
            new type;
            new VID = GetPlayerVehicleID(playerid);
            new x_siren[256];
            new Siren[MAX_VEHICLES];
            new SirenObject[MAX_VEHICLES];
            x_siren = strtok(cmdtext, idx);
            type = strval(x_siren);
            if(!strlen(x_siren))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Inside, 2 = Roof, 3 = Off.");
                return 1;
            }
            if(type < 1 || type > 3)
            {
                SendClientMessage(playerid, COLOR_WHITE, "Invalid license type! /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Roof, 2 = Inside, 3 = Off.");
                return 1;
            }
        switch(type)
        {
            if(type == 1)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                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), "* %s puts the siren on the dashboard.", sendername);
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 1;
            }
            if(type == 2)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                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), "* %s puts the siren on the roof.", sendername);
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 1;
             }
             if(type == 3)
             {
                if(Siren[VID] == 0)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle doesn't have a siren on it!");
                    return 1;
                }
                Siren[VID] = 0;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                DestroyObject(SirenObject[VID]);
                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);
                return 1;
            }
           }        
          }
Reply
#10

Quote:
Originally Posted by Naruto_Emilio
Посмотреть сообщение
pawn Код:
if(strcmp("/siren", cmdtext, true, 10) == 0)
    {
        if(IsACop(playerid))
        {
            new type;
            new VID = GetPlayerVehicleID(playerid);
            new x_siren[256];
            new Siren[MAX_VEHICLES];
            new SirenObject[MAX_VEHICLES];
            x_siren = strtok(cmdtext, idx);
            type = strval(x_siren);
            if(!strlen(x_siren))
            {
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Inside, 2 = Roof, 3 = Off.");
                return 1;
            }
            if(type < 1 || type > 3)
            {
                SendClientMessage(playerid, COLOR_WHITE, "Invalid license type! /siren [type]");
                SendClientMessage(playerid, COLOR_GRAD2, "Type: 1 = Roof, 2 = Inside, 3 = Off.");
                return 1;
            }
        switch(type)
        {
            if(type == 1)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                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), "* %s puts the siren on the dashboard.", sendername);
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 1;
            }
            if(type == 2)
            {
                if(Siren[VID] == 1)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle already has a siren!");
                    return 1;
                }
                Siren[VID] = 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                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), "* %s puts the siren on the roof.", sendername);
                ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 1;
             }
             if(type == 3)
             {
                if(Siren[VID] == 0)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This vehicle doesn't have a siren on it!");
                    return 1;
                }
                Siren[VID] = 0;
                GetPlayerName(playerid, sendername, sizeof(sendername));
                DestroyObject(SirenObject[VID]);
                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);
                return 1;
            }
           }        
          }
Код:
C:\Users\DAN\Desktop\CSRP\gamemodes\csrp.pwn(26775) : error 002: only a single statement (or expression) can follow each "case"
C:\Users\DAN\Desktop\CSRP\gamemodes\csrp.pwn(26775 -- 26776) : error 029: invalid expression, assumed zero
C:\Users\DAN\Desktop\CSRP\gamemodes\csrp.pwn(26790) : warning 225: unreachable code
26775 -
Код:
if(type == 1)
26776 -
Код:
            {
26790 -
Код:
if(type == 2)
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)