/siren filterscript problem
#1

pawn Код:
#include <a_samp>

new Siren[MAX_VEHICLES];
new SirenObject[MAX_VEHICLES];

public OnPlayerCommandText(playerid, cmdtext[])
{
    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)
            {
                new siren[65];
                new pre = GetVehicleModel(GetPlayerVehicleID(playerid));
                new VID = GetPlayerVehicleID(playerid);
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp))
                {
                    SendClientMessage(playerid, COLOR_GREY, "USAGE: /siren [inside, roof, nothing]");
                    SendClientMessage(playerid, COLOR_GREY, "[INFO]: 'nothing' 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(Sirenobj[playerid]))
                    {
                        if(pre != 426) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier model!"); }
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        Sirenobj[playerid] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                        AttachObjectToVehicle(Sirenobj[playerid], VID, 0.0, 0.80, 0.300, 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 { return SendClientMessage(playerid, COLOR_GREY, "[INFO]: You do already have a siren..."); }
                }
                else if(strcmp(siren, "roof", true, strlen(siren)) == 0)
                {
                    if(!IsValidObject(Sirenobj[playerid]))
                    {
                        if(pre != 426) { return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to be in a Premier model!"); }
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        Sirenobj[playerid] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0);
                        AttachObjectToVehicle(Sirenobj[playerid], VID, -0.43, 0.0, 0.820, 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);
                    } else { return SendClientMessage(playerid, COLOR_GREY, "[INFO]: You do already have a siren..."); }
                }
                else if(strcmp(siren, "nothing", true, strlen(siren)) == 0)
                {
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    DestroyObject(Sirenobj[playerid]);
                    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, "[INFO]: Are you a cop?"); }
        }
        return 1;
    }
Problems:
Код:
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(8) : error 017: undefined symbol "cmd"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(12) : error 017: undefined symbol "PlayerInfo"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(12) : warning 215: expression has no effect
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(12) : error 001: expected token: ";", but found "]"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(12) : error 029: invalid expression, assumed zero
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(12) : fatal error 107: too many error messages on one line
Reply
#2

Your command should look like this:

pawn Код:
if(!strcmp(cmdtext, "/siren", true, 6))
Reply
#3

Quote:
Originally Posted by Twisted_Insane
Посмотреть сообщение
Your command should look like this:

pawn Код:
if(!strcmp(cmdtext, "/siren", true, 6))
Thank you for trying to help, but there still errors:
Код:
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(12) : error 017: undefined symbol "PlayerInfo"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(12) : warning 215: expression has no effect
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(12) : error 001: expected token: ";", but found "]"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(12) : error 029: invalid expression, assumed zero
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(12) : fatal error 107: too many error messages on one line
Reply
#4

Try this: new siren[64];

And define on the top of your gamemode:

pawn Код:
new PlayerInfo[MAX_PLAYERS][pInfo];
You got an enum? Replace "pInfo" with the name of your enum then!
Reply
#5

Quote:
Originally Posted by Twisted_Insane
Посмотреть сообщение
Try this: new siren[64];

And define on the top of your gamemode:

pawn Код:
new PlayerInfo[MAX_PLAYERS][pInfo];
You got an enum? Replace "pInfo" with the name of your enum then!
No dude, I don't have enum.
I use it as a FS.
I did what you said, but there are still errors:
Код:
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(5) : error 017: undefined symbol "pInfo"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(5) : error 009: invalid array size (negative, zero or out of bounds)
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(13) : error 017: undefined symbol "pMember"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(15) : warning 219: local variable "siren" shadows a variable at a preceding level
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(18) : error 017: undefined symbol "tmp"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(18) : error 017: undefined symbol "strtok"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(19) : error 017: undefined symbol "tmp"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(21) : error 017: undefined symbol "COLOR_GREY"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(22) : error 017: undefined symbol "COLOR_GREY"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(25) : error 017: undefined symbol "tmp"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(28) : error 017: undefined symbol "Sirenobj"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(28) : warning 215: expression has no effect
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(28) : error 001: expected token: ";", but found "]"
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(28) : error 029: invalid expression, assumed zero
C:\Users\master\Desktop\LARP\filterscripts\Siren.pwn(28) : fatal error 107: too many error messages on one line
Where should I add enum?
Reply
#6

At the top of your script, you should add it there...

pawn Код:
enum pInfo {
pMember
}
Define the Colors which you're missing aswell...Why are you writing a filterscript if you don't know these simple things?
Reply
#7

Quote:
Originally Posted by Twisted_Insane
Посмотреть сообщение
At the top of your script, you should add it there...

pawn Код:
enum pInfo {
pMember
}
Define the Colors which you're missing aswell...Why are you writing a filterscript if you don't know these simple things?
I don't write it, lol, I found it and it doesn't work

Ok dude, you really helped, I added pLeader and the other, but there is still some small errors.
In line 26:
tmp = strtok(cmdtext, idx);
Код:
error 022: must be lvalue (non-constant)
error 012: invalid function call, not a valid address
warning 215: expression has no effect
warning 215: expression has no effect
error 001: expected token: ";", but found ")"
fatal error 107: too many error messages on one line
Reply
#8

Bump.
This line:
tmp = strtok(cmdtext, idx);

Does this errors:
Код:
error 022: must be lvalue (non-constant)
error 012: invalid function call, not a valid address
warning 215: expression has no effect
warning 215: expression has no effect
error 001: expected token: ";", but found ")"
fatal error 107: too many error messages on one line
Reply
#9

Have you added strtok to your FS?
If not add this in the end.
pawn Код:
strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }
 
    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
Reply
#10

Quote:
Originally Posted by McCarthy
Посмотреть сообщение
Have you added strtok to your FS?
If not add this in the end.
pawn Код:
strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }
 
    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
Still have the same errors
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)