/ooc problem
#1

Hi there!I'm a beginner and I tried a simple ooc command:
Код:
            if(strcmp("/ooc", cmdtext, true, 10) == 0)
            {
            if(PlayerInfo[playerid] [pAdmin] >= 1 )
            {
            new string[50], name[50], result[100];
            GetPlayerName(playerid, name, sizeof(name));
            format(string,sizeof(string),"(( Admin %s: %s ))",name, result);
            SendClientMessageToAll(0xFF4A4AFF,string);
            }
            
            if(PlayerInfo[playerid] [pAdmin] <= 5 )
            {
            new string[50], name[50], result[100];
            GetPlayerName(playerid, name, sizeof(name));
            format(string,sizeof(string),"(( Admin %s: %s ))",name, result);
            SendClientMessageToAll(0xFF4A4AFF,string);
            }
            
            if(PlayerInfo[playerid] [pAdmin] == 0)
            {
            SendClientMessage(playerid,0xFFFFFFFF,"Trebiue sa fii admin pentru a folosi aceasta comanda!");
            }
            if(PlayerInfo[playerid] [pAdmin] == 6)
            {
            new string[50], name[50], result[100];
            GetPlayerName(playerid, name, sizeof(name));
            format(string,sizeof(string),"(( Coordonator %s: %s ))",name, result);
            SendClientMessageToAll(0xFF4A4AFF,string);
			}
			
			if(PlayerInfo[playerid] [pAdmin] == 7)
			{
		    new string[50], name[50], result[100];
            GetPlayerName(playerid, name, sizeof(name));
            format(string,sizeof(string),"(( Scripter %s: %s ))",name, result);
            SendClientMessageToAll(0xFF4A4AFF,string);
            }
            
			if(PlayerInfo[playerid] [pAdmin] == 8)
			{
		    new string[50], name[50], result[100];
            GetPlayerName(playerid, name, sizeof(name));
            format(string,sizeof(string),"( ( Detinator ***** ****** %s: %s ) )",name, result);
            SendClientMessageToAll(0xFF4A4AFF,string);
            }
but when I type /ooc in-game:

1.If I type for example "/ooc a" it only says "( ( Admin Calin2551: ) )"without the "a" I want it to say...
2.If I have a level 8 admin it says both "( ( Admin Calin2551: ) )" and "( ( Detinator ***** ******: ) )".
3.It says (( Admin x: )) but also it says: "Server:Unknown Command!"

Thanks
Reply
#2

Try this:
pawn Код:
if(strcmp("/ooc", cmdtext, true) == 0)
{
    if(PlayerInfo[playerid] [pAdmin] == 0)
    {
        SendClientMessage(playerid,0xFFFFFFFF,"Trebiue sa fii admin pentru a folosi aceasta comanda!");
        return 1;
    }

    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
        idx++;
    }
    new offset = idx;
    new result[64];
    new string[50], name[50];
    GetPlayerName(playerid, name, sizeof(name));
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
        result[idx - offset] = cmdtext[idx];
        idx++;
    }
    result[idx - offset] = EOS;

    if(!strlen(result))
    {
        SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /ooc [text]");
        return 1;
    }

    ////////////////////////////////////////////////////////////////////////////
    if(PlayerInfo[playerid] [pAdmin] >= 1 )
    {
        switch(PlayerInfo[playerid][pAdmin])
        {
            case 6:
            {
                format(string,sizeof(string),"(( Coordonator %s: %s ))",name, result);
                SendClientMessageToAll(0xFF4A4AFF,string);
                return 1;
            }
            case 7:
            {
                format(string,sizeof(string),"(( Scripter %s: %s ))",name, result);
                SendClientMessageToAll(0xFF4A4AFF,string);
                return 1;
            }
            case 8:
            {
                format(string,sizeof(string),"( ( Detinator ***** ****** %s: %s ) )",name, result);
                SendClientMessageToAll(0xFF4A4AFF,string);
                return 1;
            }
        }

        format(string,sizeof(string),"(( Admin %s: %s ))",name, result);
        SendClientMessageToAll(0xFF4A4AFF,string);
    }

    return 1;
}
Reply
#3

Errors




Quote:

C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(171) : warning 217: loose indentation
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(180) : error 017: undefined symbol "idx"
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(182) : error 017: undefined symbol "idx"
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(182) : warning 215: expression has no effect
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(184) : error 017: undefined symbol "idx"
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(18 : error 017: undefined symbol "idx"
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(190) : error 017: undefined symbol "idx"
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(191) : error 017: undefined symbol "idx"
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(191) : warning 215: expression has no effect
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(193) : error 017: undefined symbol "idx"
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(197) : error 017: undefined symbol "COLOR_GRAD2"
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(237) : warning 209: function "S@@_OnPlayerCommandText" should return a value
C:\DOCUME~1\copilk\Desktop\Filme\GAMEMO~1\test1.pw n(23 : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

Reply
#4

Now:
pawn Код:
if(strcmp("/ooc", cmdtext, true) == 0)
{
    new idx;
   
    if(PlayerInfo[playerid] [pAdmin] == 0)
    {
        SendClientMessage(playerid,0xFFFFFFFF,"Trebiue sa fii admin pentru a folosi aceasta comanda!");
        return 1;
    }

    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
        idx++;
    }
    new offset = idx;
    new result[64];
    new string[50], name[50];
    GetPlayerName(playerid, name, sizeof(name));
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
        result[idx - offset] = cmdtext[idx];
        idx++;
    }
    result[idx - offset] = EOS;

    if(!strlen(result))
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ooc [text]");
        return 1;
    }

    ////////////////////////////////////////////////////////////////////////////
    if(PlayerInfo[playerid] [pAdmin] >= 1 )
    {
        switch(PlayerInfo[playerid][pAdmin])
        {
            case 6:
            {
                format(string,sizeof(string),"(( Coordonator %s: %s ))",name, result);
                SendClientMessageToAll(0xFF4A4AFF,string);
                return 1;
            }
            case 7:
            {
                format(string,sizeof(string),"(( Scripter %s: %s ))",name, result);
                SendClientMessageToAll(0xFF4A4AFF,string);
                return 1;
            }
            case 8:
            {
                format(string,sizeof(string),"( ( Detinator ***** ****** %s: %s ) )",name, result);
                SendClientMessageToAll(0xFF4A4AFF,string);
                return 1;
            }
        }

        format(string,sizeof(string),"(( Admin %s: %s ))",name, result);
        SendClientMessageToAll(0xFF4A4AFF,string);
    }

    return 1;
}
Reply
#5

1.When I type /ooc it says "(( Detinator ***** ****** Calin2551: /ooc ))"
2.How to make /n say: "Newbie %s: text".I know the "Newbie %s:" part but the text...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)