STRCMP Irc CMD
#4

Try this 2-3 months ago a guy gave me this to solve a problem I solved it but another one arised. I don't remember it. Anyway, here's the code:
pawn Код:
CMD:irc(playerid, params[])
{
     new x_nr[256];
     x_nr = strtok(params, idx);
     if(IsPlayerConnected(playerid))
        {
            if(isnull(params)) {
                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(params,"join",true) == 0)
            {
                tmp = strtok(params, idx);
                if(isnull(params)) {
                    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc join [channelnr] or /irc join [channelnr] [password]");
                    return 1;
                }
                new channel = strval(tmp);
                if(channel < 1 || channel > 10) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above 10 !"); return 1; }
                channel -= 1;
                if(IRCInfo[channel][iLock] == 0)
                {
                    if(IRCInfo[channel][iNeedPass] == 0)
                    {
                        JoinChannelNr(playerid, channel);
                    }
                    else
                    {
                        tmp = strtok(params, idx);
                        if(!strlen(tmp))
                        {
                            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,tmp);
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   That Channel is Locked, please choose a different one !");
                    return 1;
                }
            }
            else if(strcmp(params,"status",true) == 0)
            {
                for(new i = 0; i < sizeof(IRCInfo); i++)
                {
                    new string[128];
                    format(string, sizeof(string), "Channel %d: %d Players Connected.",i + 1, IRCInfo[i][iPlayers]);
                    SendClientMessage(playerid, COLOR_WHITE, string);
                }
                return 1;
            }
            else if(strcmp(params,"password",true) == 0)
            {
                tmp = strtok(params, idx);
                if(isnull(params))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc password [channelnr] [password]");
                    return 1;
                }
                new channel = strval(tmp);
                if(channel < 1 || channel > 10) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above 10 !"); return 1; }
                channel -= 1;
                new wstring[128];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(wstring, sizeof(wstring), "%s", sendername);
                strmid(wstring, wstring, 0, strlen(wstring), 255);
                if(strcmp(IRCInfo[channel][iAdmin],wstring, true ) == 0 )
                {
                    tmp = strtok(params, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc password [channelnr] [password]");
                        return 1;
                    }
                    new string[128];
                    strmid(IRCInfo[channel][iPassword], tmp, 0, strlen(tmp), 255);
                    format(string, sizeof(string), "You've changed the IRC Channel's Password to: %s.",IRCInfo[channel][iPassword]);
                    SendClientMessage(playerid, COLOR_YELLOW, string);
                    SaveIRC();
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not the Admin of that Channel !");
                    return 1;
                }
            }
            else if(strcmp(params,"needpass",true) == 0)
            {
                tmp = strtok(params, idx);
                if(isnull(params))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc needpass [channelnr]");
                    return 1;
                }
                new channel = strval(tmp);
                if(channel < 1 || channel > 10) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above 10 !"); return 1; }
                channel -= 1;
                new wstring[128];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(wstring, sizeof(wstring), "%s", sendername);
                strmid(wstring, wstring, 0, strlen(wstring), 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.");
                    }
                    SaveIRC();
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not the Admin of that Channel !");
                    return 1;
                }
            }
            else if(strcmp(params,"lock",true) == 0)
            {
                tmp = strtok(params, idx);
                if(isnull(params))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc lock [channelnr]");
                    return 1;
                }
                new channel = strval(tmp);
                if(channel < 1 || channel > 10) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above 10 !"); return 1; }
                channel -= 1;
                new wstring[128];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(wstring, sizeof(wstring), "%s", sendername);
                strmid(wstring, wstring, 0, strlen(wstring), 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.");
                    }
                    SaveIRC();
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not the Admin of that Channel !");
                    return 1;
                }
            }
            else if(strcmp(params,"motd",true) == 0)
            {
                tmp = strtok(params, idx);
                if(isnull(params))
                {
                    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc motd [channelnr] [motdtext]");
                    return 1;
                }
                new channel = strval(tmp);
                if(channel < 1 || channel > 10) { SendClientMessage(playerid, COLOR_GREY, "   Channel Number can't be below 1 or above 10 !"); return 1; }
                channel -= 1;
                new wstring[128];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(wstring, sizeof(wstring), "%s", sendername);
                strmid(wstring, wstring, 0, strlen(wstring), 255);
                if(strcmp(IRCInfo[channel][iAdmin],wstring, true ) == 0 )
                {
                    if(isnull(params))
                        return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /irc motd [motdtext]");


                    new result[128];
                    strmid(IRCInfo[channel][iMOTD], result, 0, strlen(result), 255);
                    SendClientMessage(playerid, COLOR_YELLOW, "You've adjusted the IRC Channel's MOTD Text.");
                    SaveIRC();
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not the Admin of that Channel !");
                    return 1;
                }
            }
            else if(strcmp(params,"leave",true) == 0)
            {
                if(PlayersChannel[playerid] < 999)
                {
                    new string[128];
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "* %s has left the Channel.", sendername);
                    SendIRCMessage(PlayersChannel[playerid], COLOR_GREEN, string);
                    IRCInfo[PlayersChannel[playerid]][iPlayers] -= 1;
                    PlayersChannel[playerid] = 999;
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not in an IRC Channel !");
                    return 1;
                }
            }
            else if(strcmp(params,"admins",true) == 0)
            {
                for(new i = 0; i < sizeof(IRCInfo); i++)
                {
                    new string[128];
                    format(string, sizeof(string), "Channel %d: %s.", i + 1, IRCInfo[i][iAdmin]);
                    SendClientMessage(playerid, COLOR_WHITE, string);
                }
                return 1;
            }
            else if(strcmp(params,"kick",true) == 0)
            {
                if(PlayersChannel[playerid] == 999)
                {
                    SendClientMessage(playerid, COLOR_GREY, "   You are not in an IRC Channel !");
                    return 1;
                }
                new wstring[128];
                GetPlayerName(playerid, sendername, sizeof(sendername));
                format(wstring, sizeof(wstring), "%s", sendername);
                strmid(wstring, wstring, 0, strlen(wstring), 255);
                if(strcmp(IRCInfo[PlayersChannel[playerid]][iAdmin],wstring, true ) == 0 )
                {
                    tmp = strtok(params, idx);
                    if(isnull(params))
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "USAGE: /irc kick [playerid/PartOfName]");
                        return 1;
                    }
                    giveplayerid = ReturnUser(tmp);
                    if(IsPlayerConnected(giveplayerid))
                    {
                        if(giveplayerid != INVALID_PLAYER_ID)
                        {
                            if(PlayersChannel[giveplayerid] == PlayersChannel[playerid])
                            {
                                new string[128];
                                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(PlayersChannel[playerid], COLOR_GREEN, string);
                                IRCInfo[PlayersChannel[giveplayerid]][iPlayers] -= 1;
                                PlayersChannel[giveplayerid] = 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;
    }
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: 1 Guest(s)