problem with SubCommand [Y_CMD & sscanf]
#1

PHP код:
YCMD:clan(playerid,params[],help)
{
    new 
cmd[20];
    if(
sscanf(params,"s[20]",cmd))
    {
        
SendClientMessage(playerid,-1,"/Clan [Create | Invite | Accept] - שימוש");
        return 
1;
    }
    if(!
strcmp(cmd,"create",true))
    {
        new 
cname[MAX_CLAN_NAME];
        if(
sscanf(params,"s[20]s["#MAX_CLAN_NAME"]",cmd,cname))return SendClientMessage(playerid,-1,"/Clan Create [ClanName] - צורת השימוש");
        
if(strfind(cname,"None",true) != -|| !strcmp(cname,"gmR",true) || !strcmp(cname,"LorD",true) || !strcmp(cname,"LoL",true) || !strcmp(cname,"Uk",true) || !strcmp(cname,"JaP",true) || !strcmp(cname,"IsraeL",true) || !strcmp(cname,"NoN",true) || !strcmp(cname,"Fxp",true) || !strcmp(cname,"SAMP-IL",true) || !strcmp(cname,"Vgames",true) || !strcmp(cname,"WaR",true) || !strcmp(cname,"QeeR",true))return SendClientMessage(playerid,Red,".לא ניתן לפתוח קלאן בשם זה");
        if(
strlen(cname) > MAX_CLAN_NAME || strlen(cname) < 2)return SendClientMessage(playerid,Red,".אורך שם הקלאן צריך להיות בין 2-6 תווים");
        if(
IsClanExists(cname))return SendClientMessage(playerid,Red,".קיים כבר קלאן בשם זה");
        if(
pInfo[playerid][ClanID] != -1)return SendClientMessage(playerid,Red,"הינך נמצא כבר בקלאן");
        
//ClanCreate
        
ClanInfo[CountClans][ClanID] = CountClans;
        
format(ClanInfo[CountClans][ClanName],MAX_CLAN_NAME,"%s",cname);
        
ClanInfo[CountClans][Color] = rgba2hex(random(255),random(255),random(255),100);
        
format(ClanInfo[CountClans][cFounder],30,"%s",GetName(playerid));
        
ClanInfo[CountClans][CPlayers] = 1;
        
ClanInfo[CountClans][Tests] = true;
        
ClanInfo[CountClans][Bank] = 0;
        
ClanInfo[CountClans][BankState] = true;
        
ClanInfo[CountClans][cPosX] = 0.00000;
        
ClanInfo[CountClans][cPosY] = 0.00000;
        
ClanInfo[CountClans][cPosZ] = 0.00000;
        
ClanInfo[CountClans][cPosA] = 0.00000;
        
ClanInfo[CountClans][cvPosX] = 0.00000;
        
ClanInfo[CountClans][cvPosY] = 0.00000;
        
ClanInfo[CountClans][cvPosZ] = 0.00000;
        
ClanInfo[CountClans][cvPosA] = 0.00000;
        
ClanInfo[CountClans][Chat] = true;
        
ClanInfo[CountClans][HaveHQ] = false;
        
ClanInfo[CountClans][AntiTeamKill] = false;
        
ClanInfo[CountClans][TeamKillID] = CountClans+4*6+random(6000)+random(89014);
        
ClanInfo[CountClans][CMaxWithdraw] = 20000;
        
ClanInfo[CountClans][CMaxDeposit] = 1000000;
        
ClanInfo[CountClans][ShowList] = true;
        
INI_Create(ClanFile(CountClans));
        new 
INI:ini INI_Open(ClanFile(CountClans),ini_mode_write);
        
INI_WriteInt(ini,"ClanID",CountClans);
        
INI_WriteString(ini,"ClanName",cname);
        
INI_WriteInt(ini,"ClanColor",ClanInfo[CountClans][Color]);
        
INI_WriteString(ini,"ClanFounder",GetName(playerid));
        
INI_WriteInt(ini,"ClanPlayers",1);
        
INI_WriteBool(ini,"ClanTests",true);
        
INI_WriteInt(ini,"ClanBank",0);
        
INI_WriteBool(ini,"ClanBankState",true);
        
INI_WriteFloat(ini,"ClanPosX",0.00000);
        
INI_WriteFloat(ini,"ClanPosY",0.00000);
        
INI_WriteFloat(ini,"ClanPosZ",0.00000);
        
INI_WriteFloat(ini,"ClanPosA",0.00000);
        
INI_WriteFloat(ini,"ClanvPosX",0.00000);
        
INI_WriteFloat(ini,"ClanvPosY",0.00000);
        
INI_WriteFloat(ini,"ClanvPosZ",0.00000);
        
INI_WriteFloat(ini,"ClanvPosA",0.00000);
        
INI_WriteBool(ini,"ClanChat",true);
        
INI_WriteBool(ini,"ClanHQ",false);
        
INI_WriteBool(ini,"AntiTeamKill",false);
        
INI_WriteInt(ini,"ClanTeamID",CountClans+4*6+random(6000)+random(89014));
        
INI_WriteInt(ini,"MaxWithdraw",20000);
        
INI_WriteInt(ini,"MaxDeposit",1000000);
        
INI_WriteBool(ini,"ShowList",true);
        
INI_Close(ini);
        
GivePlayerMoney(playerid,-800000);
        
pInfo[playerid][ClanID] = CountClans;
        
pInfo[playerid][ClanLevel] = Clan_Founder;
        
format(pInfo[playerid][ClanName], 32"%s"cname);
        new 
String[1400];
        
format(String,sizeof(String),"» {%s}%s{FFD700} - יצרת קלאן חדש בשם\n{FF8C00} ~ מידע על הקלאן ~ \n{AFEEEE}•{9ACD32} %s{FFD700} :שם הקלאן\n",ReturnHexColour(ClanInfo[CountClans][Color]),cname,cname);
        
format(String,sizeof(String),"%s{AFEEEE}•{9ACD32} %d{FFD700} :מספר הקלאן\n{AFEEEE}•{9ACD32} %s{FFD700} :מייסד הקלאן\n{AFEEEE}•{9ACD32} מצב הקלאן לטסטים: %s",String,CountClans,GetName(playerid),ClanInfo[CountClans][Tests]?("פתוח לטסטים"):("סגור לטסטים"));
        
ShowPlayerDialog(playerid,random(100000)+8001561+random(2000),DIALOG_STYLE_MSGBOX,"{FF8C00}Clan System - מערכת הקלאן",String,"סגור","");
        
SetPlayerColor(playerid,ClanInfo[CountClans][Color]);
        ++
CountClans;
        
//dini_IntAdd("NDM/Settings.ini", "CountClans", 1);
        
return 1;
    }
    if(!
strcmp(cmd,"Invite",true))
    {
        new 
id;
        if(
sscanf(params,"s[20]u",cmd,id))return SendClientMessage(playerid,-1,"/Clan Invite [id/name] - צורת השימוש");
        if(!
IsPlayerInClan(playerid))return SendClientMessage(playerid,Red,".אינך נמצא בקלאן");
        if(
pInfo[playerid][ClanLevel] < Clan_Tester)return SendClientMessage(playerid,Red,".עלייך להיות טסטר הקלאן בכדי להשתמש בפקודה זו");
        if(!
IsPlayerConnected(id))return SendClientMessage(playerid,Red,".שחקן לא מחובר");
        if(!
ClanInfo[pInfo[playerid][ClanID]][Tests])return SendClientMessage(playerid,Red,".הקלאן שלך סגור לטסטים");
        
//if(pInfo[id][Level] < 2)return SendClientMessage(playerid,Red,".שחקן זה ברמה נמוכה מ-2");
        
if(pInfo[playerid][ClanID] == pInfo[id][ClanID])return SendClientMessage(playerid,Red,".שחקן זה נמצא כבר בקלאן שלך");
        if(
IsPlayerInClan(id))return SendClientMessage(playerid,Red,".שחקן זה נמצא כבר בקלאן");
        
pInfo[id][InvitedClan] = pInfo[playerid][ClanID];
        
SendFormatMessage(playerid,Green,".\"%s\" שלחת הזמנה לשחקן",GetName(id));
        
SendFormatMessage(id,Green,"\"%s\" הזמין אותך לקלאן \"%s\" השחקן",ClanInfo[pInfo[playerid][ClanID]][ClanName],GetName(playerid));
        
SendClientMessage(id,Green,"/Clan Accept - על מנת לאשר הזמנה זו השתמש בפקודה");
        return 
1;
    }
    if(!
strcmp(cmd,"Accept",true))
    {
        if(
IsPlayerInClan(playerid))return SendClientMessage(playerid,Red,".אתה נמצא כבר בקלאן רישמי");
        if(
pInfo[playerid][InvitedClan] == -1)return SendClientMessage(playerid,Red,".לא הוזמנת לשום קלאן רישמי");
        
pInfo[playerid][ClanID] = pInfo[playerid][InvitedClan];
        
pInfo[playerid][ClanLevel] = 1;
        
format(pInfo[playerid][ClanName],MAX_CLAN_NAME,"%s",ClanInfo[pInfo[playerid][ClanID]][ClanName]);
        
ClanInfo[pInfo[playerid][ClanID]][CPlayers]++;
        
pInfo[playerid][InvitedClan] = -1;
        foreach(new 
i:Player)
        {
            if(
IsPlayerInClan(playerid) && IsPlayerInClan(i) && pInfo[playerid][ClanID] == pInfo[i][ClanID] && i!=playerid)
            {
                
SendFormatMessage(i,Orange,".הצטרף לקלאן שלך \"%s\" השחקן",GetName(playerid));
            }
        }
        
SendFormatMessage(playerid,Green,".\"%s\" הצטרפת לקלאן",ClanInfo[pInfo[playerid][ClanID]][ClanName]);
        return 
SetPlayerColor(playerid,ClanInfo[pInfo[playerid][ClanID]][Color]);
    }
    return 
1;

what is a problem? :X
Reply
#2

What happens? When you pass /clan create name you get error from first sscanf?
Reply
#3

Theres no need to use sscanf for only 1 parameter.

just use params instead of cmd
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)