sscanf
#1

pawn Код:
CMD:clan(playerid,params[])
{
    new sub[3][20];
    if(sscanf(params, "s[20]", sub[0], sub[1])) return SendClientMessage(playerid, Red, "/Clan [create / skin ...]");
    if(!strcmp(sub[0], "create", true))
    {
        new newclan[48];
        if(DOF2_GetInt(PFile(playerid), "HaveClan") == 1) return Message(playerid, Red, "[Clan Message]: [%s] .йщ мк лбш чмап чййн", GetPlayerClan(playerid));
        if(AC_GetMoney(playerid) < ClanPrice) return Message(playerid, Red, "[Clan Message]: [%s$] .айп мк осфйч лсу блгй мйцеш чмап", GetNum(ClanPrice));
        if(sscanf(sub[1], "s[40]", ClanName)) return SendClientMessage(playerid, Red, "[Clan Message]: /ClanCreate [Clan Name]");
        format(newclan, 48, "Clans/%s.ini", ClanName);
        if(DOF2_FileExists(newclan)) return Message(playerid, Red, "[Clan Message]: .\"%s\" чййн чмап бщн", ClanName);
        DOF2_CreateFile(newclan);
        DOF2_SetString(newclan, "Founder", GetName(playerid));
        DOF2_SetInt(newclan, "Players", 1);
        DOF2_SetInt(PFile(playerid), "HaveClan", 1);
        DOF2_SetString(PFile(playerid), "Clan", ClanName);
        DOF2_SetInt(PFile(playerid), "ClanLevel", 6);
        DOF2_SetString(PFile(playerid), "ClanTag", "Founder");
        DOF2_SetFloat(newclan, "Date", getdate());
        DOF2_SetFloat(newclan, "Time", gettime());
        DOF2_SetInt(newclan, "Bank", 0);
        DOF2_SetInt(newclan, "Chat", 0);
        DOF2_SaveFile();
        AC_GiveMoney(playerid, -ClanPrice);
        Message(playerid, Pink, "[Clan Message]: /ClanHelp мтжшд ботшлъ дчщ .\"%s\" ожм иеб ! йцшъ чмап згщ бщн", ClanName);
    }
    else if(!strcmp(sub[0], "skin", true))
    {
        if(sscanf(sub[1],"i",id)) return SendClientMessage(playerid,Red,"/Clan Skin [id]");
        SetPlayerSkin(playerid, id);
    }
    else if(!strcmp(sub[0], "setlevel", true))
    {
        new level;
        if(sscanf(sub[1], "ud", id, level)) return SendClientMessage(playerid, Red, "/Clan SetLevel [id] [level]");
        SetPlayerSkin(id, level);
    }
    return true;
}
I do "/Clan Create" It sends me this message: "SendClientMessage(playerid, Red," /Clan [create / skin ...] ");"
Instead of this:
"SendClientMessage(playerid, Red,"/Clan Create [Clan Name]");"
Reply
#2

someone ? help please.
Reply
#3

pawn Код:
sscanf(params, "s[20]", sub[0], sub[1])
You are scanning only for one string, but passing two arguments. I'd suggest "s[20]S[20]" for optional second string
Reply
#4

Quote:
Originally Posted by Misiur
Посмотреть сообщение
pawn Код:
sscanf(params, "s[20]", sub[0], sub[1])
You are scanning only for one string, but passing two arguments. I'd suggest "s[20]S[20]" for optional second string
pawn Код:
CMD:clan(playerid, params[])
{
    new sub[3][20];
    if(sscanf(params, "s[20]s[20]", sub[0], sub[1])) return SendClientMessage(playerid, Red, "/Clan [create / skin ...]");
    if(!strcmp(sub[0], "create", true))
    {
        new newclan[48];
        if(DOF2_GetInt(PFile(playerid), "HaveClan") == 1) return Message(playerid, Red, "[Clan Message]: [%s] .йщ мк лбш чмап чййн", GetPlayerClan(playerid));
        if(AC_GetMoney(playerid) < ClanPrice) return Message(playerid, Red, "[Clan Message]: [%s$] .айп мк осфйч лсу блгй мйцеш чмап", GetNum(ClanPrice));
        if(sscanf(sub[1], "s[40]", ClanName)) return SendClientMessage(playerid, Red, "[Clan Message]: /ClanCreate [Clan Name]");
        format(newclan, 48, "Clans/%s.ini", ClanName);
        if(DOF2_FileExists(newclan)) return Message(playerid, Red, "[Clan Message]: .\"%s\" чййн чмап бщн", ClanName);
        DOF2_CreateFile(newclan);
        DOF2_SetString(newclan, "Founder", GetName(playerid));
        DOF2_SetInt(newclan, "Players", 1);
        DOF2_SetInt(PFile(playerid), "HaveClan", 1);
        DOF2_SetString(PFile(playerid), "Clan", ClanName);
        DOF2_SetInt(PFile(playerid), "ClanLevel", 6);
        DOF2_SetString(PFile(playerid), "ClanTag", "Founder");
        DOF2_SetFloat(newclan, "Date", getdate());
        DOF2_SetFloat(newclan, "Time", gettime());
        DOF2_SetInt(newclan, "Bank", 0);
        DOF2_SetInt(newclan, "Chat", 0);
        DOF2_SaveFile();
        AC_GiveMoney(playerid, -ClanPrice);
        Message(playerid, Pink, "[Clan Message]: /ClanHelp мтжшд ботшлъ дчщ .\"%s\" ожм иеб ! йцшъ чмап згщ бщн", ClanName);
    }
    else if(!strcmp(sub[0], "skin", true))
    {
        if(sscanf(sub[1],"i",id)) return SendClientMessage(playerid,Red,"/Clan Skin [id]");
        SetPlayerSkin(playerid, id);
    }
    else if(!strcmp(sub[0], "setlevel", true))
    {
        new level;
        if(sscanf(sub[1], "ud", id, level)) return SendClientMessage(playerid, Red, "/Clan SetLevel [id] [level]");
        SetPlayerSkin(id, level);
    }
    return true;
}
It still sends me this message: "SendClientMessage (playerid, Red," / Clan [create / skin ...] ");
Instead of this: "SendClientMessage (playerid, Red," [Clan Message]: / ClanCreate [Clan Name] ");"
Reply
#5

Sscanf is case sensitive. The second s is uppercase (which means that string is optional)
Reply
#6

Quote:
Originally Posted by Misiur
Посмотреть сообщение
Sscanf is case sensitive. The second s is uppercase (which means that string is optional)
Okay ..
But I did not understand what I need to do xD
Reply
#7

?
Reply
#8

Help please ...........................
Reply
#9

Compare "s[20]s[20]" and "s[20]S[20]"
Reply
#10

Quote:
Originally Posted by Misiur
Посмотреть сообщение
Compare "s[20]s[20]" and "s[20]S[20]"
Thanks it's work !
but ..........
Server Log:
pawn Код:
[18:05:01] sscanf warning: No default value found.
[18:05:01] sscanf warning: Unknown format specifier '[', skipping.
[18:05:01] sscanf warning: Unknown format specifier '2', skipping.
[18:05:01] sscanf warning: Unknown format specifier '0', skipping.
[18:05:01] sscanf warning: Unknown format specifier ']', skipping.
[18:05:01] sscanf warning: Format specifier does not match parameter count.
[18:05:11] sscanf warning: No default value found.
[18:05:11] sscanf warning: Unknown format specifier '[', skipping.
[18:05:11] sscanf warning: Unknown format specifier '2', skipping.
[18:05:11] sscanf warning: Unknown format specifier '0', skipping.
[18:05:11] sscanf warning: Unknown format specifier ']', skipping.
[18:05:11] sscanf warning: Format specifier does not match parameter count.
[18:05:16] sscanf warning: No default value found.
[18:15:55] sscanf warning: No default value found.
[18:15:57] sscanf warning: No default value found.
[18:15:57] sscanf warning: Unknown format specifier '[', skipping.
[18:15:57] sscanf warning: Unknown format specifier '2', skipping.
[18:15:57] sscanf warning: Unknown format specifier '0', skipping.
[18:15:57] sscanf warning: Unknown format specifier ']', skipping.
[18:15:57] sscanf warning: Format specifier does not match parameter count.
[18:16:05] sscanf warning: No default value found.
[18:16:05] sscanf warning: Unknown format specifier '[', skipping.
[18:16:05] sscanf warning: Unknown format specifier '2', skipping.
[18:16:05] sscanf warning: Unknown format specifier '0', skipping.
[18:16:05] sscanf warning: Unknown format specifier ']', skipping.
[18:16:05] sscanf warning: Format specifier does not match parameter count.
[18:16:07] sscanf warning: No default value found.
[18:16:13] sscanf warning: No default value found.
[18:16:17] sscanf warning: No default value found.
[18:16:17] sscanf warning: Unknown format specifier '[', skipping.
[18:16:17] sscanf warning: Unknown format specifier '2', skipping.
[18:16:17] sscanf warning: Unknown format specifier '0', skipping.
[18:16:17] sscanf warning: Unknown format specifier ']', skipping.
[18:16:17] sscanf warning: Format specifier does not match parameter count.
[18:16:19] sscanf warning: No default value found.
[18:16:23] sscanf warning: No default value found.
[18:16:26] sscanf warning: No default value found.
[18:16:28] sscanf warning: No default value found.
[18:16:30] sscanf warning: No default value found.
this my code:
pawn Код:
CMD:clan(playerid, params[])
{
    new sub[3][20];
    if(sscanf(params, "s[20]S[20]", sub[0], sub[1])) return SendClientMessage(playerid, Red, "/Clan [create / skin ...]");
    if(!strcmp(sub[0], "create", true))
    {
        new newclan[48];
        if(DOF2_GetInt(PFile(playerid), "HaveClan") == 1) return Message(playerid, Red, "[Clan Message]: [%s] .йщ мк лбш чмап чййн", GetPlayerClan(playerid));
        if(AC_GetMoney(playerid) < ClanPrice) return Message(playerid, Red, "[Clan Message]: [%s$] .айп мк осфйч лсу блгй мйцеш чмап", GetNum(ClanPrice));
        if(sscanf(sub[1], "s[40]", ClanName)) return SendClientMessage(playerid, Red, "[Clan Message]: /ClanCreate [Clan Name]");
        format(newclan, 48, "Clans/%s.ini", ClanName);
        if(DOF2_FileExists(newclan)) return Message(playerid, Red, "[Clan Message]: .\"%s\" чййн чмап бщн", ClanName);
        DOF2_CreateFile(newclan);
        DOF2_SetString(newclan, "Founder", GetName(playerid));
        DOF2_SetInt(newclan, "Players", 1);
        DOF2_SetInt(PFile(playerid), "HaveClan", 1);
        DOF2_SetString(PFile(playerid), "Clan", ClanName);
        DOF2_SetInt(PFile(playerid), "ClanLevel", 6);
        DOF2_SetString(PFile(playerid), "ClanTag", "Founder");
        DOF2_SetFloat(newclan, "Date", getdate());
        DOF2_SetFloat(newclan, "Time", gettime());
        DOF2_SetInt(newclan, "Bank", 0);
        DOF2_SetInt(newclan, "Chat", 0);
        DOF2_SaveFile();
        AC_GiveMoney(playerid, -ClanPrice);
        Message(playerid, Pink, "[Clan Message]: /ClanHelp мтжшд ботшлъ дчщ .\"%s\" ожм иеб ! йцшъ чмап згщ бщн", ClanName);
    }
    else if(!strcmp(sub[0], "skin", true))
    {
        if(sscanf(sub[1],"i",id)) return SendClientMessage(playerid,Red,"/Clan Skin [id]");
        SetPlayerSkin(playerid, id);
    }
    else if(!strcmp(sub[0], "setlevel", true))
    {
        new level;
        if(sscanf(sub[1], "ud", id, level)) return SendClientMessage(playerid, Red, "/Clan SetLevel [id] [level]");
        SetPlayerSkin(id, level);
    }
    return true;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)