sscanf not allowing commands to work
#1

Well, I made a admin system using sscanf and zcmd, but it keeps sending SERVER: Unknown command. We have a return for Server Unknown Command, but this isnt the problem. It sends Player Is not connected, but when we enter a VALID playerid, it says SERVER unknown command. Yet our little test command CMD:debug, works fine!

Any suggestions.

Heres the /makeadmin code, and the /debug code.

This code doesnt work
PHP код:
CMD:makeadmin(playeridparams[])
{
    new 
playerbstring[256], string1[256], level;
    if(
pInfo[playerid][Admin] < && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1"IT NO WORK FFS");
    if (
sscanf(params"ui"playerblevel)) return SendClientMessage(playerid, -1"Usage: /makeadmin [Playerid/part of name] [Level]");
    if(!
IsPlayerConnected(playerb)) return SendClientMessage(playeridCOL_ERROR"ERROR: That player is not connected!");
    if(
level && level 1337) return SendClientMessage(playeridCOL_ERROR"ERROR: Invalid level(Use level 1-4)");
    
pInfo[playerb][Admin] = level;
    
format(stringsizeof(string), "You have made %s a level %i Admin!"GetName(playerb), level);
    
SendClientMessage(playeridCOL_HELPERstring);
    
format(string1sizeof(string1), "%s has made you a level %i Admin!"GetName(playerid), level);
    
SendClientMessage(playerbCOL_HELPERstring1);
//    mysql_format(mysql, query, sizeof(query), "UPDATE `users` SET `Admin`=%d WHERE `id`=%d", pInfo[playerb][pAdmim], pInfo[playerb][pID]);
//    mysql_tquery(mysql, query);
    
return 1;

Yet this does?
PHP код:
CMD:debug(playeridparams[])
{
    
SendClientMessage(playerid, -1"Test complete == DO YOU SEE THIS MESSAGE?!");
    return 
1;

The only conclusion I can gather is that its because the debug doesnt use sscanf?
Reply
#2

pawn Код:
if(!sscanf(params, "ui", playerb, level))
Reply
#3

Make sure the plugins in your server config file are alphabetically assembled.
Reply
#4

But what is this:
PHP код:
   if(level && level 1337) return SendClientMessage(playeridCOL_ERROR"ERROR: Invalid level(Use level 1-4)"); 
Reply
#5

Quote:
Originally Posted by Death1300
Посмотреть сообщение
pawn Код:
if(!sscanf(params, "ui", playerb, level))
Tried this, then Unknown Command doesnt even show.
Reply
#6

Quote:
Originally Posted by ATGOggy
Посмотреть сообщение
But what is this:
PHP код:
   if(level && level 1337) return SendClientMessage(playeridCOL_ERROR"ERROR: Invalid level(Use level 1-4)"); 
This is checking if the level you inputted to make the player that admin level is valid.
Reply
#7

Quote:
Originally Posted by Wizzy951
Посмотреть сообщение
Make sure the plugins in your server config file are alphabetically assembled.
Done, but this has not done anything.
Reply
#8

the only line which could trigger the "unknown command" message
is this here:
pawn Код:
pInfo[playerb][Admin] = level;
for example, accessing an invalid element triggers a run time error
for security reasons. we aint allowed to access memory that
id not within the memory region pawn is using.
Cuz if we could, we'd be abel to screw with server variables on linux servers for example.

as for this case here, check "pInfo"
make sure that everything's been declared correctly.
Reply
#9

Quote:
Originally Posted by CutX
Посмотреть сообщение
the only line which could trigger the "unknown command" message
is this here:
pawn Код:
pInfo[playerb][Admin] = level;
for example, accessing an invalid element triggers a run time error
for security reasons. we aint allowed to access memory that
id not within the memory region pawn is using.
Cuz if we could, we'd be abel to screw with server variables on linux servers for example.

as for this case here, check "pInfo"
make sure that everything's been declared correctly.
Here is my enum for pInfo, not sure whats wrong with it?
PHP код:
enum PDATA
{
    
Username[32],
    
Password[129], 
    
Admin
    
Helper,
    
Money 
}
new 
pInfo[MAX_PLAYERS][PDATA]; 
Reply
#10

Quote:
Originally Posted by guitardude01
Посмотреть сообщение
Here is my enum for pInfo, not sure whats wrong with it?
PHP код:
enum PDATA
{
    
Username[32],
    
Password[129], 
    
Admin
    
Helper,
    
Money 
}
new 
pInfo[MAX_PLAYERS][PDATA]; 
seems legid.

so it must be something wrong with the 1st index
what if "playerb" contains a value that cannot be used as index?
usage defined by you:
Quote:
Originally Posted by OP
Usage: /makeadmin [Playerid/part of name] [Level]
so "playerb" is "Playerid/part of name"

why not try "dd" instead of "ui"

pawn Код:
if (sscanf(params, "dd", playerb, level)) return SendClientMessage(playerid, -1, "Usage: /makeadmin [Playerid] [Level]");
i assure you, this will work
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)