Ban command with GUI
#8

Quote:
Originally Posted by Moron
Посмотреть сообщение
Does anyone have or could make a /ban command that works like this: you write /ban player and then a GUI menu pops out and you have to choose a reason, for example: Cheating, Advertising and so on. When you choose a reason, that player gets banned and everyone sees a message Admin x has banned player for choosen reason.
Under OnPlayerCommandText, if you use strcmp:
pawn Код:
if (!strcmp(cmdtext, "/ban", true, 4))
{
  if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xff0000ff, "* You are probably retarded, this is an admin only command");
  if (!cmdtext[4]) return SendClientMessage(playerid, 0xff0000ff, "* Usage: /ban [playerid]");
  new targetid = strval(cmdtext[5]);
  if (!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xff0000ff, "* Error: player not connected");
  SetPVarInt(playerid, "banP", targetid);
  new name[MAX_PLAYER_NAME], dialogtitle[] = "Why ban 12345678901234567890?";
  GetPlayerName(playerid, name, sizeof(name));
  format(dialogtitle, sizeof(dialogtitle), "Why ban %s?", name);
  ShowPlayerDialog(playerid, 20081, 2, dialogtitle, "Cheating\r\nSpamming\r\nFlooding\r\nTrolling\r\nAdvertising\r\nBad language\r\nCustom reason..", "Ban", "Cancel");
  return 1;
}
Your OnDialogResponse:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  new name1[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME], msg[92], targetid = GetPVarInt(playerid, "banP");
  if (dialogid == 20081)
  {
    if (!response) return 1;
    if (!IsPlayerConnected(targetid)) return SendClientMessage(playerid, 0xff0000ff, "* The player has just disconnected before you banned him!");
    GetPlayerName(playerid, name1, sizeof(name1));
    GetPlayerName(targetid, name2,  sizeof(name2));
    switch (listitem)
    {
      case 0: // Cheat
      {
        format(msg, sizeof(msg), "* %s has been banned by %s for cheating.", name2, name1);
        SendClientMessageToAll(0xffff00cc, msg);
        BanEx(targetid, "Dialog BAN - cheating");
      }
      case 1: // SPAM
      {
        format(msg, sizeof(msg), "* %s has been banned by %s for spamming.", name2, name1);
        SendClientMessageToAll(0xffff00cc, msg);
        BanEx(targetid, "Dialog BAN - spamming");
      }
      case 2: // Flood
      {
        format(msg, sizeof(msg), "* %s has been banned by %s for flooding.", name2, name1);
        SendClientMessageToAll(0xffff00cc, msg);
        BanEx(targetid, "Dialog BAN - flooding");
      }
      case 3: // Is a troll :P
      {
        format(msg, sizeof(msg), "* %s has been banned by %s for being a troll.", name2, name1);
        SendClientMessageToAll(0xffff00cc, msg);
        BanEx(targetid, "Dialog BAN - troll!");
      }
      case 4: // Advertising
      {
        format(msg, sizeof(msg), "* %s has been banned by %s for advertising.", name2, name1);
        SendClientMessageToAll(0xffff00cc, msg);
        BanEx(targetid, "Dialog BAN - advertising");
      }
      case 5: // Bad language
      {
        format(msg, sizeof(msg), "* %s has been banned by %s for using swear words.", name2, name1);
        SendClientMessageToAll(0xffff00cc, msg);
        BanEx(targetid, "Dialog BAN - bad language");
      }
      case 6: // Custom reason
      {
        return ShowPlayerDialog(playerid, 20082, 1, "Enter custom reason for banning", "Why do you want to ban that player?", "Ban", "Cancel");
      }
    }
    return 1;
  }
  else if (dialogid == 20082)
  {
    if (!response) return 1;
    if (!IsPlayerConnected(targetid) return SendClientMessage(playerid, 0xff0000ff, "* The player has just disconnected before you banned him!");
    if (!inputtext[0]) return SendClientMessage(playerid, 0xff0000ff, "* You must type a reason for banning!");
    format(msg, sizeof(msg), "* %s has been banned by %s (%s)", name2, name1, inputtext);
    SendClientMessageToAll(0xffff00cc, msg);
    format(msg, sizeof(msg), "Dialog BAN - %s", inputtext);
    BanEx(targetid, msg);
    return 1;
  }
}
Should work.
Reply


Messages In This Thread
Ban command with GUI - by Moron - 25.05.2011, 13:00
AW: Ban command with GUI - by Nero_3D - 25.05.2011, 13:04
Re: Ban command with GUI - by Moron - 25.05.2011, 13:09
Re: Ban command with GUI - by FUNExtreme - 25.05.2011, 13:49
AW: Re: Ban command with GUI - by Nero_3D - 25.05.2011, 14:17
Re: Ban command with GUI - by Osviux - 25.05.2011, 14:32
Re: Ban command with GUI - by Moron - 25.05.2011, 16:47
Re: Ban command with GUI - by KoczkaHUN - 26.05.2011, 17:33

Forum Jump:


Users browsing this thread: 1 Guest(s)