STRCMP Irc CMD
#8

pawn Код:
CMD:irc(playerid, params[])
    {
        if(IsPlayerConnected(playerid))
        {
            new x_nr[16], val[32], val2[32], val3[32];
            if(sscanf(params, "s[16]S(NoNe)[32]S(nOnE)[32]S(NOne)[32]", x_nr, val, val2, val3)) {
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: (/irc join [channelnr] or /irc join [channelnr] [password])  (/irc Leave)  (/irc Admins)");
                SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc [name] [channelnr]");
                SendClientMessage(playerid, COLOR_WHITE, "Available names: MOTD, Password, NeedPass, Lock, Kick, Status");
                return 1;
            }
            if(strcmp(x_nr,"join",true) == 0)
            {
                if(!strlen(val) || !strcmp("NoNe", val, true))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc join [channelnr] or /irc join [channelnr] [password]");
                    return 1;
                }
                new channel = strval(val);
                if(channel < 1 || channel > SCRIPT_MAXIRC) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above the amount !"); return 1; }
                channel -= 1;
                if(IRCInfo[channel][iLock] == 0)
                {
                    if(IRCInfo[channel][iNeedPass] == 0)
                    {
                        JoinChannelNr(playerid, channel);
                    }
                    else
                    {
                        if(!strlen(val2) || !strcmp("nOnE", val2, true))
                        {
                            SendClientMessage(playerid, COLOR_WHITE, "There's a password required to join this Channel.");
                            SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc join [channelnr] [password]");
                            return 1;
                        }
                        JoinChannel(playerid,channel,val2);
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   That Channel is Locked, please choose a different one !");
                    return 1;
                }
            }
            else if(strcmp(x_nr, "create", true) == 0)
            {
                GetPlayerName(playerid, sendername, sizeof(sendername));
                if(!strlen(val) || !strcmp("NoNe", val, true))
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /irc create [number]");
                    return 1;
                }
                new channel;
                channel = strval(val);
                if(channel < 1 || channel > SCRIPT_MAXIRC) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above the amount !"); return 1; }
                if(PlayerInfo[playerid][pConnectTime] < 50)
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "You must have 50 and over time in FC to use this !");
                    return 1;
                }
                for(new i = 0; i < sizeof(IRCInfo); i++)
                {
                    if(strcmp(IRCInfo[i][iAdmin], sendername, true) == 0)
                    {
                        format(string, sizeof(string), "You already have control over IRC Channel: %d", i);
                        SendClientMessage(playerid, COLOR_GRAD2, string);
                        return 1;
                    }
                }
                if(strcmp(IRCInfo[channel][iAdmin], "None", true) == 0)
                {
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "you are now an IRC Admin over Channel %d.", channel);
                    SendClientMessage(playerid, COLOR_WHITE, string);
                    format(string, sizeof(string), "%s", sendername);
                    strmid(IRCInfo[channel][iAdmin], string, 0, strlen(string), 255);
                    IRCInfo[channel][iNeedPass] = 0; IRCInfo[channel][iLock] = 0;
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "This channel is taken already !");
                }
                return 1;
            }
            else if(strcmp(x_nr,"status",true) == 0)
            {
                for(new i = 0; i < sizeof(IRCInfo); i++)
                {
                    if(strcmp(IRCInfo[i][iAdmin], "None", true) == 0)
                    {
                        return 1;
                    }
                    else
                    {
                        format(string, sizeof(string), "Channel %d: %d Players Connected.",i + 1, IRCInfo[i][iPlayers]);
                        SendClientMessage(playerid, COLOR_WHITE, string);
                    }
                }
                return 1;
            }
            else if(strcmp(x_nr,"password",true) == 0)
            {
                if(!strlen(val) || !strcmp("NoNe", val, true))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc password [channelnr] [password]");
                    return 1;
                }
                new channel = strval(val2);
                if(channel < 1 || channel > SCRIPT_MAXIRC) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above the amount !"); return 1; }
                channel -= 1;
                new wstring[128];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(string, sizeof(string), "%s", sendername);
                strmid(wstring, string, 0, strlen(string), 255);
                if(strcmp(IRCInfo[channel][iAdmin],wstring, true ) == 0 )
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(val3) || !strcmp("NOne", val3, true))
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc password [channelnr] [password]");
                        return 1;
                    }
                    strmid(IRCInfo[channel][iPassword], val3, 0, strlen(val3), 255);
                    format(string, sizeof(string), "You've changed the IRC Channel's Password to: %s.",IRCInfo[channel][iPassword]);
                    SendClientMessage(playerid, COLOR_YELLOW, string);
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not the Admin of that Channel !");
                    return 1;
                }
            }
            else if(strcmp(x_nr,"needpass",true) == 0)
            {
                if(!strlen(val) || !strcmp("NoNe", val, true))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc needpass [channelnr]");
                    return 1;
                }
                new channel = strval(val);
                if(channel < 1 || channel > SCRIPT_MAXIRC) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above the amount !"); return 1; }
                channel -= 1;
                new wstring[128];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(string, sizeof(string), "%s", sendername);
                strmid(wstring, string, 0, strlen(string), 255);
                if(strcmp(IRCInfo[channel][iAdmin],wstring, true ) == 0 )
                {
                    if(IRCInfo[channel][iNeedPass] != 0)
                    {
                        IRCInfo[channel][iNeedPass] = 0;
                        SendClientMessage(playerid, COLOR_YELLOW, "Players won't have to fill in a password in order to join the IRC Channel now.");
                    }
                    else
                    {
                        IRCInfo[channel][iNeedPass] = 1;
                        SendClientMessage(playerid, COLOR_YELLOW, "Players must fill in a password in order to join the IRC Channel now.");
                    }
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not the Admin of that Channel !");
                    return 1;
                }
            }
            else if(strcmp(x_nr,"lock",true) == 0)
            {
                if(!strlen(val) || !strcmp("NoNe", val, true))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc lock [channelnr]");
                    return 1;
                }
                new channel = strval(val);
                if(channel < 1 || channel > SCRIPT_MAXIRC) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above the amount !"); return 1; }
                channel -= 1;
                new wstring[128];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(string, sizeof(string), "%s", sendername);
                strmid(wstring, string, 0, strlen(string), 255);
                if(strcmp(IRCInfo[channel][iAdmin],wstring, true ) == 0 )
                {
                    if(IRCInfo[channel][iLock] != 0)
                    {
                        IRCInfo[channel][iLock] = 0;
                        SendClientMessage(playerid, COLOR_YELLOW, "You've unlocked the IRC Channel.");
                    }
                    else
                    {
                        IRCInfo[channel][iLock] = 1;
                        SendClientMessage(playerid, COLOR_YELLOW, "You've locked the IRC Channel.");
                    }
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not the Admin of that Channel !");
                    return 1;
                }
            }
            else if(strcmp(x_nr,"motd",true) == 0)
            {
                if(!strlen(val) || !strcmp("NoNe", val, true))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc motd [channelnr] [motdtext]");
                    return 1;
                }
                new channel = strval(val);
                if(channel < 1 || channel > SCRIPT_MAXIRC) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above the amount !"); return 1; }
                channel -= 1;
                new wstring[128];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(string, sizeof(string), "%s", sendername);
                strmid(wstring, string, 0, strlen(string), 255);
                if(strcmp(IRCInfo[channel][iAdmin],wstring, true ) == 0 )
                {
                    if(!strlen(val2) || !strcmp("nOnE", val2, true))
                    {
                        SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /irc motd [motdtext]");
                        return 1;
                    }
                    strmid(IRCInfo[channel][iMOTD], result, 0, strlen(val2), 255);
                    SendClientMessage(playerid, COLOR_YELLOW, "You've adjusted the IRC Channel's MOTD Text.");
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not the Admin of that Channel !");
                    return 1;
                }
            }
            else if(strcmp(x_nr,"leave",true) == 0)
            {
                if(PlayerInfo[playerid][pPlayersChannel] < 999)
                {
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "* %s has left the Channel.", sendername);
                    SendIRCMessage(PlayerInfo[playerid][pPlayersChannel], COLOR_GREEN, string);
                    IRCInfo[PlayerInfo[playerid][pPlayersChannel]][iPlayers] -= 1;
                    PlayerInfo[playerid][pPlayersChannel] = 999;
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not in an IRC Channel !");
                    return 1;
                }
            }
            else if(strcmp(x_nr,"admins",true) == 0)
            {
                for(new i = 0; i < sizeof(IRCInfo); i++)
                {
                    format(string, sizeof(string), "Channel %d: %s.", i + 1, IRCInfo[i][iAdmin]);
                    SendClientMessage(playerid, COLOR_WHITE, string);
                }
                return 1;
            }
            else if(strcmp(x_nr,"kick",true) == 0)
            {
                if(PlayerInfo[playerid][pPlayersChannel] == 999)
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not in an IRC Channel !");
                    return 1;
                }
                new wstring[128];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(string, sizeof(string), "%s", sendername);
                strmid(wstring, string, 0, strlen(string), 255);
                if(strcmp(IRCInfo[PlayerInfo[playerid][pPlayersChannel]][iAdmin],wstring, true ) == 0 )
                {
                    if(!strlen(val))
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc kick [playerid/PartOfName]");
                        return 1;
                    }
                    giveplayerid = ReturnUser(val);
                    if(IsPlayerConnected(giveplayerid))
                    {
                        if(giveplayerid != INVALID_PLAYER_ID)
                        {
                            if(PlayerInfo[giveplayerid][pPlayersChannel] == PlayerInfo[playerid][pPlayersChannel])
                            {
                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                format(string, sizeof(string), "* You've kicked %s out of your IRC Channel.",giveplayer);
                                SendClientMessage(playerid, COLOR_YELLOW, string);
                                format(string, sizeof(string), "* You've been kicked out of the IRC Channel by Channel Admin: %s.",sendername);
                                SendClientMessage(giveplayerid, COLOR_YELLOW, string);
                                format(string, sizeof(string), "* %s has left the Channel (Kicked).", sendername);
                                SendIRCMessage(PlayerInfo[playerid][pPlayersChannel], COLOR_GREEN, string);
                                IRCInfo[PlayerInfo[giveplayerid][pPlayersChannel]][iPlayers] -= 1;
                                PlayerInfo[giveplayerid][pPlayersChannel] = 999;
                            }
                            else
                            {
                                SendClientMessage(playerid, COLOR_GREY, "   That player is not in your IRC Channel !");
                                return 1;
                            }
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GREY, "   That player is Offline !");
                        return 1;
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not the Admin of the Channel !");
                    return 1;
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "   Invalid IRC Channel Number ! ");
                return 1;
            }
        }
        return 1;
    }
Not tested, should work :3
Reply


Messages In This Thread
STRCMP Irc CMD - by Ballu Miaa - 20.05.2012, 05:33
Re: STRCMP Irc CMD - by ReneG - 20.05.2012, 05:55
Re: STRCMP Irc CMD - by Ballu Miaa - 20.05.2012, 06:56
Re: STRCMP Irc CMD - by Faisal_khan - 20.05.2012, 10:39
Re: STRCMP Irc CMD - by Ballu Miaa - 20.05.2012, 13:34
Re: STRCMP Irc CMD - by Faisal_khan - 20.05.2012, 13:37
Re: STRCMP Irc CMD - by Ballu Miaa - 20.05.2012, 13:39
Re: STRCMP Irc CMD - by [FMJ]PowerSurge - 20.05.2012, 14:05

Forum Jump:


Users browsing this thread: 2 Guest(s)