Page 1 of 2

Amx_IP plugin

Posted: 29 Jul 2012, 12:18
by smileye
As dori sa im scoateti amx_ip din baza pluginului admincmd sa faceti doar pluginul amx_ip,sa aiba 2 cvaruri de vizualizare a ip-urilor playerilor ( amx_showip si amx_ip ) si sa apara legate fara spatii intre ele ca in poza:
http://uploadimage.ro/images/68570180968888496231.jpg
| Afiseaza codul
#include < amxmodx >
#include < amxmisc >

#define MAXRCONCVARS 16

// Last Maps
#define HartiMaxime 5

new NumeHarti[HartiMaxime][34]
//end of last maps


//LastIP
#define STR_LEN 32

enum _:Infos
{

gUserIp[STR_LEN],
gUserName[STR_LEN]
}
//end of lastip

new gLastUsers[5][Infos];

new g_cvarRcon[MAXRCONCVARS][32]
new g_cvarRconNum
new g_pauseCon
new Float:g_pausAble
new bool:g_Paused
new bool:g_PauseAllowed = false
new g_addCvar[] = "amx_cvar add %s"

public plugin_init()
{
   register_plugin("Admin Commands", AMXX_VERSION_STR, "SATANA");
   register_dictionary("admincmd.txt");
   register_dictionary("common.txt");
   register_concmd("amx_kick", "cmdKick", ADMIN_KICK, "<name or #userid> [reason]");
   register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<name or #userid> <minutes> [reason]");
   register_concmd("amx_banip", "cmdBanIP", ADMIN_BAN, "<name or #userid> <minutes> [reason]");
   register_concmd("amx_addban", "cmdAddBan", ADMIN_RCON, "<authid or ip> <minutes> [reason]");
   register_concmd("amx_unban", "cmdUnban", ADMIN_BAN, "<authid or ip>");
   register_concmd("amx_slay", "cmdSlay", ADMIN_SLAY, "<name or #userid>");
   register_concmd("amx_slap", "cmdSlap", ADMIN_SLAY, "<name or #userid> [power]");
   register_concmd("amx_leave", "cmdLeave", ADMIN_KICK, "<tag> [tag] [tag] [tag]");
   register_concmd("amx_pause", "cmdPause", ADMIN_CVAR, "- pause or unpause the game");
   register_concmd("amx_who", "cmdWho", ADMIN_ADMIN, "- displays who is on server");
   register_concmd("amx_cvar", "cmdCvar", ADMIN_CVAR, "<cvar> [value]");
   register_concmd("amx_plugins", "cmdPlugins", ADMIN_ADMIN);
   register_concmd("amx_modules", "cmdModules", ADMIN_ADMIN);
   register_concmd("amx_map", "cmdMap", ADMIN_MAP, "<mapname>");
   register_concmd("amx_cfg", "cmdCfg", ADMIN_CFG, "<filename>");
   register_concmd("amx_nick", "cmdNick", ADMIN_SLAY, "<name or #userid> <new nick>");
   register_clcmd("amx_rcon", "cmdRcon", ADMIN_RCON, "<command line>");
   register_clcmd("amx_showrcon", "cmdShowRcon", ADMIN_RCON, "<command line>");
   register_clcmd("pauseAck", "cmdLBack");
   register_concmd("amx_lastip", "cmdLastIp", ADMIN_KICK, "");
   register_concmd("amx_showip", "cmdshowip", ADMIN_KICK, "");
   register_clcmd("say /harti", "HartiJucateCuSay");
   register_concmd("amx_last", "cmdLastIp", ADMIN_KICK, "");
   register_concmd("amx_ip", "cmdshowip", ADMIN_KICK, "");
   register_clcmd("say /maps", "HartiJucateCuSay");
}

public plugin_cfg()
{
   // Cvars which can be changed only with rcon access
   server_cmd(g_addCvar, "rcon_password")
   server_cmd(g_addCvar, "amx_show_activity")
   server_cmd(g_addCvar, "amx_mode")
   server_cmd(g_addCvar, "amx_password_field")
   server_cmd(g_addCvar, "amx_default_access")
   server_cmd(g_addCvar, "amx_reserved_slots")
   server_cmd(g_addCvar, "amx_reservation")
   server_cmd(g_addCvar, "amx_conmotd_file")
   
   
   
   //Last Maps
   new FisierHartiJucate[64]
   
   get_localinfo("amxx_configsdir", FisierHartiJucate, 63)
   format(FisierHartiJucate, 63, "%s/hartianterioare.txt", FisierHartiJucate)
   
   new Fisier = fopen(FisierHartiJucate, "rt")
   new i
   new Temporar[34]
   if(Fisier)
   {
      for(i=0; i<HartiMaxime; i++)
      {
         if(!feof(Fisier))
         {
            fgets(Fisier, Temporar, 33)
            replace(Temporar, 33, "^n", "")
            formatex(NumeHarti, 33, Temporar)
         }
      }
      fclose(Fisier)
   }
   
   delete_file(FisierHartiJucate)
   
   new CurrentMap[34]
   get_mapname(CurrentMap, 33)
   
   Fisier = fopen(FisierHartiJucate, "wt")
   if(Fisier)
   {
      formatex(Temporar, 33, "%s^n", CurrentMap)
      fputs(Fisier, Temporar)
      for(i=0; i<HartiMaxime-1; i++)
      {
         CurrentMap = NumeHarti
         if(!CurrentMap[0])
         break
         formatex(Temporar, 33, "%s^n", CurrentMap)
         fputs(Fisier, Temporar)
      }
      fclose(Fisier)
   }
      //end of last maps
}

public cmdKick(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
   
   new arg[32]
   read_argv(1, arg, 31)
   new player = cmd_target(id, arg, 1)
   
   if (!player)
      return PLUGIN_HANDLED
   
   new authid[32], authid2[32], name2[32], name[32], userid2, reason[32]
   
   get_user_authid(id, authid, 31)
   get_user_authid(player, authid2, 31)
   get_user_name(player, name2, 31)
   get_user_name(id, name, 31)
   userid2 = get_user_userid(player)
   read_argv(2, reason, 31)
   remove_quotes(reason)
   
   log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^" (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, reason)
   
   switch (get_cvar_num("amx_show_activity"))
   {
      case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_KICK_2", name, name2)
         case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_KICK_1", name2)
      }
   
   if (is_user_bot(player))
      server_cmd("kick #%d", userid2)
   else
   {
      if (reason[0])
         server_cmd("kick #%d ^"%s^"", userid2, reason)
      else
         server_cmd("kick #%d", userid2)
   }
   
   console_print(id, "[AMXX] Client ^"%s^" kicked", name2)
   
   return PLUGIN_HANDLED
}

public cmdUnban(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
   
   new arg[32], authid[32], name[32]
   
   read_argv(1, arg, 31)
   
   if (contain(arg, ".") != -1)
   {
      server_cmd("removeip ^"%s^";writeip", arg)
      console_print(id, "[AMXX] %L", id, "IP_REMOVED", arg)
      } else {
      server_cmd("removeid %s;writeid", arg)
      console_print(id, "[AMXX] %L", id, "AUTHID_REMOVED", arg)
   }
   
   get_user_name(id, name, 31)
   
   switch (get_cvar_num("amx_show_activity"))
   {
      case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_UNBAN_2", name, arg)
         case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_UNBAN_1", arg)
      }
   
   get_user_authid(id, authid, 31)
   log_amx("Cmd: ^"%s<%d><%s><>^" unban ^"%s^"", name, get_user_userid(id), authid, arg)
   
   return PLUGIN_HANDLED
}

public cmdAddBan(id, level, cid)
{
   if (!cmd_access(id, level, cid, 3))
      return PLUGIN_HANDLED
   
   new arg[32], authid[32], name[32], minutes[32], reason[32]
   
   read_argv(1, arg, 31)
   read_argv(2, minutes, 31)
   read_argv(3, reason, 31)
   
   if (contain(arg, ".") != -1)
   {
      server_cmd("addip ^"%s^" ^"%s^";wait;writeip", minutes, arg)
      console_print(id, "[AMXX] Ip ^"%s^" added to ban list", arg)
      } else {
      server_cmd("banid ^"%s^" ^"%s^";wait;writeid", minutes, arg)
      console_print(id, "[AMXX] Authid ^"%s^" added to ban list", arg)
   }
   
   get_user_name(id, name, 31)
   
   switch (get_cvar_num("amx_show_activity"))
   {
      case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_ADDBAN_2", name, arg)
         case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_ADDBAN_1", arg)
      }
   
   get_user_authid(id, authid, 31)
   log_amx("Cmd: ^"%s<%d><%s><>^" ban ^"%s^" (minutes ^"%s^") (reason ^"%s^")", name, get_user_userid(id), authid, arg, minutes, reason)
   
   return PLUGIN_HANDLED
}

public cmdBan(id, level, cid)
{
   if (!cmd_access(id, level, cid, 3))
      return PLUGIN_HANDLED
   
   new target[32], minutes[8], reason[64]
   
   read_argv(1, target, 31)
   read_argv(2, minutes, 7)
   read_argv(3, reason, 63)
   
   new player = cmd_target(id, target, 9)
   
   if (!player)
      return PLUGIN_HANDLED
   
   new authid[32], name2[32], authid2[32], name[32]
   new userid2 = get_user_userid(player)
   
   get_user_authid(player, authid2, 31)
   get_user_authid(id, authid, 31)
   get_user_name(player, name2, 31)
   get_user_name(id, name, 31)
   
   
   new temp[64], banned[16], nNum = str_to_num(minutes)
   if (nNum)
      format(temp, 63, "Ai primit ban pentru %s minute", minutes)
   else
      format(temp, 63, "Ai primit ban permanent Permanent", player, "PERM")
   format(banned, 15, "", player, "BANNED")
   
   new address[32]
   get_user_ip(player, address, 31, 1)
   
   if (reason[0])
      server_cmd("kick #%d ^"%s (%s %s)^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, reason, banned, temp, minutes, address)
   else
      server_cmd("kick #%d ^"%s %s^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, banned, temp, minutes, address)
   
   new pl[32];
   get_user_name(player, pl, 31)
   chat_color(0,"!yADMIN!g %s!y: ban!g %s!y pentru!g %s!y minute. Motiv:!g ( %s )", name, pl, minutes, reason)   
   client_cmd(player, "wait;snapshot;wait");
   
   new activity = get_cvar_num("amx_show_activity")
   if (activity != 0)
   {
     
   }
   console_print(id, "Jucatorul %s a fost banat", name2)
   
   return PLUGIN_HANDLED
}

public cmdBanIP(id, level, cid)
{
   if (!cmd_access(id, level, cid, 3))
      return PLUGIN_HANDLED
   
   new target[32], minutes[8], reason[64]
   
   read_argv(1, target, 31)
   read_argv(2, minutes, 7)
   read_argv(3, reason, 63)
   
   new player = cmd_target(id, target, 9)
   
   if (!player)
      return PLUGIN_HANDLED
   
   new authid[32], name2[32], authid2[32], name[32]
   new userid2 = get_user_userid(player)
   
   get_user_authid(player, authid2, 31)
   get_user_authid(id, authid, 31)
   get_user_name(player, name2, 31)
   get_user_name(id, name, 31)
   
   
   new temp[64], banned[16], nNum = str_to_num(minutes)
   if (nNum)
      format(temp, 63, "Ai primit ban pentru %s minute", minutes)
   else
      format(temp, 63, "Ai primit ban permanent", player, "PERM")
   format(banned, 15, "", player, "BANNED")
   
   new address[32]
   get_user_ip(player, address, 31, 1)
   
   if (reason[0])
      server_cmd("kick #%d ^"%s (%s %s)^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, reason, banned, temp, minutes, address)
   else
      server_cmd("kick #%d ^"%s %s^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, banned, temp, minutes, address)
   
   new pl[32];
   get_user_name(player, pl, 31)
   chat_color(0,"!yADMIN!g %s!y: banip!g %s!y pentru!g %s!y minute. Motiv:!g ( %s )", name, pl, minutes, reason)   
   client_cmd(player, "wait;snapshot;wait");
   
   new activity = get_cvar_num("amx_show_activity")
   if (activity != 0)
   {
     
   }
   console_print(id, "JucaTorul %s a FosT banaT!", name2)
   
   return PLUGIN_HANDLED
}

public cmdSlay(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
   
   new arg[32]
   
   read_argv(1, arg, 31)
   
   new player = cmd_target(id, arg, 5)
   
   if (!player)
      return PLUGIN_HANDLED
   
   user_kill(player)
   
   new authid[32], name2[32], authid2[32], name[32]
   
   get_user_authid(id, authid, 31)
   get_user_name(id, name, 31)
   get_user_authid(player, authid2, 31)
   get_user_name(player, name2, 31)
   
   log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2)
   
   switch (get_cvar_num("amx_show_activity"))
   {
      case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_SLAY_2", name, name2)
         case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_SLAY_1", name2)
      }
   console_print(id, "[AMXX] %L", id, "CLIENT_SLAYED", name2)
   
   return PLUGIN_HANDLED
}

public cmdSlap(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
   
   new arg[32]
   
   read_argv(1, arg, 31)
   new player = cmd_target(id, arg, 5)
   
   if (!player)
      return PLUGIN_HANDLED
   
   new spower[32], authid[32], name2[32], authid2[32], name[32]
   
   read_argv(2, spower, 31)
   
   new damage = str_to_num(spower)
   
   user_slap(player, damage)
   
   get_user_authid(id, authid, 31)
   get_user_name(id, name, 31)
   get_user_authid(player, authid2, 31)
   get_user_name(player, name2, 31)
   
   log_amx("Cmd: ^"%s<%d><%s><>^" slap with %d damage ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, damage, name2, get_user_userid(player), authid2)
   
   switch (get_cvar_num("amx_show_activity"))
   {
      case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_SLAP_2", name, name2, damage)
         case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_SLAP_1", name2, damage)
      }
   console_print(id, "[AMXX] %L", id, "CLIENT_SLAPED", name2, damage)
   
   return PLUGIN_HANDLED
}

public chMap(map[])
{
   server_cmd("changelevel %s", map)
}

public cmdMap(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
   
   new arg[32]
   new arglen = read_argv(1, arg, 31)
   
   if (!is_map_valid(arg))
   {
      console_print(id, "[AMXX] %L", id, "MAP_NOT_FOUND")
      return PLUGIN_HANDLED
   }
   
   new authid[32], name[32]
   
   get_user_authid(id, authid, 31)
   get_user_name(id, name, 31)
   
   switch (get_cvar_num("amx_show_activity"))
   {
      case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_MAP_2", name, arg)
         case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_MAP_1", arg)
      }
   
   log_amx("Cmd: ^"%s<%d><%s><>^" changelevel ^"%s^"", name, get_user_userid(id), authid, arg)
   
   new _modName[10]
   get_modname(_modName, 9)
   
   if (!equal(_modName, "zp"))
   {
      message_begin(MSG_ALL, SVC_INTERMISSION)
      message_end()
   }
   
   set_task(2.0, "chMap", 0, arg, arglen + 1)
   
   return PLUGIN_HANDLED
}

onlyRcon(name[])
{
   for (new a = 0; a < g_cvarRconNum; ++a)
      if (equali(g_cvarRcon[a], name))
         return 1
   return 0
}

public cmdCvar(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
   
   new arg[32], arg2[64]
   
   read_argv(1, arg, 31)
   read_argv(2, arg2, 63)
   
   if (equal(arg, "add") && (get_user_flags(id) & ADMIN_RCON))
   {
      if (cvar_exists(arg2))
      {
         if (g_cvarRconNum < MAXRCONCVARS)
            copy(g_cvarRcon[g_cvarRconNum++], 31, arg2)
         else
            console_print(id, "[AMXX] %L", id, "NO_MORE_CVARS")
      }
      return PLUGIN_HANDLED
   }
   
   if (!cvar_exists(arg))
   {
      console_print(id, "[AMXX] %L", id, "UNKNOWN_CVAR", arg)
      return PLUGIN_HANDLED
   }
   
   if (onlyRcon(arg) && !(get_user_flags(id) & ADMIN_RCON))
   {
      console_print(id, "[AMXX] %L", id, "CVAR_NO_ACC")
      return PLUGIN_HANDLED
   }
   else if (equal(arg, "sv_password") && !(get_user_flags(id) & ADMIN_PASSWORD))
   {
      console_print(id, "[AMXX] %L", id, "CVAR_NO_ACC")
      return PLUGIN_HANDLED
   }
   
   if (read_argc() < 3)
   {
      get_cvar_string(arg, arg2, 63)
      console_print(id, "[AMXX] %L", id, "CVAR_IS", arg, arg2)
      return PLUGIN_HANDLED
   }
   
   new authid[32], name[32]
   
   get_user_authid(id, authid, 31)
   get_user_name(id, name, 31)
   
   log_amx("Cmd: ^"%s<%d><%s><>^" set cvar (name ^"%s^") (value ^"%s^")", name, get_user_userid(id), authid, arg, arg2)
   set_cvar_string(arg, arg2)
   
   new activity = get_cvar_num("amx_show_activity")
   if (activity != 0)
   {
      new players[32], pnum, admin[64], cvar_val[64], len
      get_players(players, pnum, "c")
     
      for (new i = 0; i < pnum; i++)
      {
         len = format(admin, 255, "%L", players, "ADMIN")
         
         if (activity == 1)
            len += copy(admin[len], 255-len, ":")
         else
            len += format(admin[len], 255-len, " %s:", name)
         
         if (equal(arg, "rcon_password") || equal(arg, "sv_password"))
            format(cvar_val, 63, "*** %L ***", players, "PROTECTED")
         else
            copy(cvar_val, 63, arg2)
         
         chat_color(players,"%L", players, "SET_CVAR_TO", name, arg, arg2)
      }
   }
   console_print(id, "[AMXX] %L", id, "CVAR_CHANGED", arg, arg2)
   
   return PLUGIN_HANDLED
}

public cmdPlugins(id, level, cid)
{
   if (!cmd_access(id, level, cid, 1))
      return PLUGIN_HANDLED
   
   new name[32], version[32], author[32], filename[32], status[32]
   new lName[32], lVersion[32], lAuthor[32], lFile[32], lStatus[32]
   
   format(lName, 31, "%L", id, "NAME")
   format(lVersion, 31, "%L", id, "VERSION")
   format(lAuthor, 31, "%L", id, "AUTHOR")
   format(lFile, 31, "%L", id, "FILE")
   format(lStatus, 31, "%L", id, "STATUS")
   
   new num = get_pluginsnum()
   new running = 0
   
   console_print(id, "%L:", id, "LOADED_PLUGINS")
   console_print(id, "%-18.17s %-8.7s %-17.16s %-16.15s %-9.8s", lName, lVersion, lAuthor, lFile, lStatus)
   
   for (new i = 0; i <num; i++)
   {
      get_plugin(i, filename, 31, name, 31, version, 31, author, 31, status, 31)
      console_print(id, "%-18.17s %-8.7s %-17.16s %-16.15s %-9.8s", name, version, author, filename, status)
     
      if (status[0]=='d' || status[0]=='r') // "debug" or "running"
         running++
   }
   console_print(id, "%L", id, "PLUGINS_RUN", num, running)
   
   return PLUGIN_HANDLED
}

public cmdModules(id, level, cid)
{
   if (!cmd_access(id, level, cid, 1))
      return PLUGIN_HANDLED
   
   new name[32], version[32], author[32], status, sStatus[16]
   new lName[32], lVersion[32], lAuthor[32]
   
   format(lName, 31, "%L", id, "NAME")
   format(lVersion, 31, "%L", id, "VERSION")
   format(lAuthor, 31, "%L", id, "AUTHOR")
   
   new num = get_modulesnum()
   
   console_print(id, "%L:", id, "LOADED_MODULES")
   console_print(id, "%-23.22s %-8.7s %-20.19s", lName, lVersion, lAuthor)
   
   for (new i = 0; i < num; i++)
   {
      get_module(i, name, 31, author, 31, version, 31, status)
     
      switch (status)
      {
         case module_loaded: copy(sStatus, 15, "running")
            default: copy(sStatus, 15, "error")
      }
     
      console_print(id, "%-23.22s %-8.7s %-20.19s", name, version, author)
   }
   console_print(id, "%L", id, "NUM_MODULES", num)
   
   return PLUGIN_HANDLED
}

public cmdCfg(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
   
   new arg[128]
   read_argv(1, arg, 127)
   
   if (!file_exists(arg))
   {
      console_print(id, "[AMXX] %L", id, "FILE_NOT_FOUND", arg)
      return PLUGIN_HANDLED
   }
   
   new authid[32], name[32]
   
   get_user_authid(id, authid, 31)
   get_user_name(id, name, 31)
   
   log_amx("Cmd: ^"%s<%d><%s><>^" execute cfg (file ^"%s^")", name, get_user_userid(id), authid, arg)
   
   console_print(id, "[AMXX] Executing file ^"%s^"", arg)
   server_cmd("exec %s", arg)
   
   switch(get_cvar_num("amx_show_activity"))
   {
      case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_CONF_2", name, arg)
         case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_CONF_1", arg)
      }
   
   return PLUGIN_HANDLED
}

public cmdLBack()
{
   if (!g_PauseAllowed)
      return PLUGIN_CONTINUE   
   
   new paused[25]
   
   format(paused, 24, "%L", g_pauseCon, g_Paused ? "UNPAUSED" : "PAUSED")
   set_cvar_float("pausable", g_pausAble)
   console_print(g_pauseCon, "[AMXX] Server %s", paused)
   g_PauseAllowed = false
   
   if (g_Paused)
      g_Paused = false
   else
      g_Paused = true
   
   return PLUGIN_HANDLED
}

public cmdPause(id, level, cid)
{
   if (!cmd_access(id, level, cid, 1))
      return PLUGIN_HANDLED
   
   new authid[32], name[32], slayer = id
   
   get_user_authid(id, authid, 31)
   get_user_name(id, name, 31)
   g_pausAble = get_cvar_float("pausable")
   
   if (!slayer)
      slayer = find_player("h")
   
   if (!slayer)
   {
      console_print(id, "[AMXX] %L", id, "UNABLE_PAUSE")
      return PLUGIN_HANDLED
   }
   
   set_cvar_float("pausable", 1.0)
   g_PauseAllowed = true
   client_cmd(slayer, "pause;pauseAck")
   
   log_amx("Cmd: ^"%s<%d><%s><>^" %s server", name, get_user_userid(id), authid, g_Paused ? "unpause" : "pause")
   
   console_print(id, "[AMXX] %L", id, g_Paused ? "UNPAUSING" : "PAUSING")
   
   new activity = get_cvar_num("amx_show_activity")
   if (activity != 0)
   {
      new players[32], pnum, msg[128], len
      get_players(players, pnum, "c")
     
      for (new i = 0; i < pnum; i++)
      {
         len = format(msg, 127, "%L", players, "ADMIN")
         
         if (activity == 1)
            len += copy(msg[len], 127-len, ": ")
         else
            len += format(msg[len], 127-len, " %s: ", name)
         
         format(msg[len], 127-len, "%L", players, g_Paused ? "UNPAUSE" : "PAUSE")
         client_print(players, print_chat, "%s server", msg)
      }
   }
   g_pauseCon = id
   
   return PLUGIN_HANDLED
}

public cmdShowRcon(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
   
   new password[64]
   
   get_cvar_string("rcon_password", password, 63)
   
   if (!password[0])
   {
      cmdRcon(id, level, cid)
      } else {
      new args[128]
     
      read_args(args, 127)
      client_cmd(id, "rcon_password %s", password)
      client_cmd(id, "rcon %s", args)
   }
   
   return PLUGIN_HANDLED
}

public cmdRcon(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
   
   new arg[128], authid[32], name[32]
   
   read_args(arg, 127)
   get_user_authid(id, authid, 31)
   get_user_name(id, name, 31)
   
   log_amx("Cmd: ^"%s<%d><%s><>^" server console (cmdline ^"%s^")", name, get_user_userid(id), authid, arg)
   
   console_print(id, "[AMXX] %L", id, "COM_SENT_SERVER", arg)
   server_cmd("%s", arg)
   
   return PLUGIN_HANDLED
}

public cmdWho(id, level, cid)
{
   if (!cmd_access(id, level, cid, 1))
      return PLUGIN_HANDLED
   
   new players[32], inum, cl_on_server[64], authid[32], name[32], flags, sflags[32]
   new lImm[16], lRes[16], lAccess[16], lYes[16], lNo[16]
   
   format(lImm, 15, "%L", id, "IMMU")
   format(lRes, 15, "%L", id, "RESERV")
   format(lAccess, 15, "%L", id, "ACCESS")
   format(lYes, 15, "%L", id, "YES")
   format(lNo, 15, "%L", id, "NO")
   
   get_players(players, inum)
   format(cl_on_server, 63, "%L", id, "CLIENTS_ON_SERVER")
   console_print(id, "^n%s:^n #  %-16.15s %-20s %-8s %-4.3s %-4.3s %s", cl_on_server, "nick", "authid", "userid", lImm, lRes, lAccess)
   
   for (new a = 0; a < inum; ++a)
   {
      get_user_authid(players[a], authid, 31)
      get_user_name(players[a], name, 31)
      flags = get_user_flags(players[a])
      get_flags(flags, sflags, 31)
      console_print(id, "%2d  %-16.15s %-20s %-8d %-6.5s %-6.5s %s", players[a], name, authid,
      get_user_userid(players[a]), (flags&ADMIN_IMMUNITY) ? lYes : lNo, (flags&ADMIN_RESERVATION) ? lYes : lNo, sflags)
   }
   
   console_print(id, "%L", id, "TOTAL_NUM", inum)
   get_user_authid(id, authid, 31)
   get_user_name(id, name, 31)
   log_amx("Cmd: ^"%s<%d><%s><>^" ask for players list", name, get_user_userid(id), authid)
   
   return PLUGIN_HANDLED
}

hasTag(name[], tags[4][32], tagsNum)
{
   for (new a = 0; a < tagsNum; ++a)
      if (contain(name, tags[a]) != -1)
         return a
   
   return -1
}

public cmdLeave(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
   
   new argnum = read_argc()
   new ltags[4][32]
   new ltagsnum = 0
   
   for (new a = 1; a < 5; ++a)
   {
      if (a < argnum)
         read_argv(a, ltags[ltagsnum++], 31)
      else
         ltags[ltagsnum++][0] = 0
   }
   
   new nick[32], ires, pnum = get_maxplayers() + 1, count = 0, lReason[128]
   
   for (new b = 1; b < pnum; ++b)
   {
      if (!is_user_connected(b) && !is_user_connecting(b)) continue
     
      get_user_name(b, nick, 31)
      ires = hasTag(nick, ltags, ltagsnum)
     
      if (ires != -1)
      {
         console_print(id, "[AMXX] %L", id, "SKIP_MATCH", nick, ltags[ires])
         continue
      }
     
      if (get_user_flags(b) & ADMIN_IMMUNITY)
      {
         console_print(id, "[AMXX] %L", id, "SKIP_IMM", nick)
         continue
      }
     
      console_print(id, "[AMXX] %L", id, "KICK_PL", nick)
     
      if (is_user_bot(b))
         server_cmd("kick #%d", get_user_userid(b))
      else
      {
         format(lReason, 127, "%L", b, "YOU_DROPPED")
         server_cmd("kick #%d ^"%s^"", get_user_userid(b), lReason)
      }
      count++
   }
   
   console_print(id, "[AMXX] %L", id, "KICKED_CLIENTS", count)
   
   new authid[32], name[32]
   
   get_user_authid(id, authid, 31)
   get_user_name(id, name, 31)
   log_amx("Kick: ^"%s<%d><%s><>^" leave some group (tag1 ^"%s^") (tag2 ^"%s^") (tag3 ^"%s^") (tag4 ^"%s^")", name, get_user_userid(id), authid, ltags[0], ltags[1], ltags[2], ltags[3])
   
   switch(get_cvar_num("amx_show_activity"))
   {
      case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_LEAVE_2", name, ltags[0], ltags[1], ltags[2], ltags[3])
         case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_LEAVE_1", ltags[0], ltags[1], ltags[2], ltags[3])
      }
   
   return PLUGIN_HANDLED
}

public cmdNick(id, level, cid)
{
   if (!cmd_access(id, level, cid, 3))
      return PLUGIN_HANDLED
   
   new arg1[32], arg2[32], authid[32], name[32], authid2[32], name2[32]
   
   read_argv(1, arg1, 31)
   read_argv(2, arg2, 31)
   
   new player = cmd_target(id, arg1, 1)
   
   if (!player)
      return PLUGIN_HANDLED
   
   get_user_authid(id, authid, 31)
   get_user_name(id, name, 31)
   get_user_authid(player, authid2, 31)
   get_user_name(player, name2, 31)
   
   client_cmd(player, "name ^"%s^"", arg2)
   
   log_amx("Cmd: ^"%s<%d><%s><>^" change nick to ^"%s^" ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, arg2, name2, get_user_userid(player), authid2)
   
   switch (get_cvar_num("amx_show_activity"))
   {
      case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_NICK_2", name, name2, arg2)
         case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_NICK_1", name2, arg2)
      }
   console_print(id, "[AMXX] %L", id, "CHANGED_NICK", name2, arg2)
   
   return PLUGIN_HANDLED
}

public cmdLastIp(id,level,cid)
{
   
   if ( ! cmd_access ( id , level , cid , 1 ) )
      return PLUGIN_HANDLED
   
   if(!gLastUsers[0][gUserName][0]) {
     
      client_print(id,3,"Inca nu a iesit nici un jucator de pe server!");
      return 1;
   }
   
   for(new i = 0;i < 5;i++)
   {
      if(!gLastUsers[gUserName][0] || ! gLastUsers[i][gUserIp][0])
         continue;
      console_print(id,"%s - %s",gLastUsers[i][gUserName], gLastUsers[i][gUserIp]);
   }
   
   return 1;
   
}

public client_disconnect(id)
{
   static sName[32];
   get_user_name(id,sName,sizeof sName - 1);
   for(new i = 0;i < sizeof gLastUsers;i++)
   {
     
      if(equali(gLastUsers[i][gUserName],sName))
         return 1;
   }
   
   static iNum;
   get_user_name(id,gLastUsers[iNum][gUserName],STR_LEN - 1);
   get_user_ip(id,gLastUsers[iNum][gUserIp],STR_LEN - 1, 1);
   iNum++;
   
   if(iNum >= 5)
      iNum = 0;
   
   return 0;
   
}

public cmdshowip(id, level, cid)
{
   if (!cmd_access(id, level, cid, 1))
   {
      return PLUGIN_HANDLED;
   }
   console_print(id,"-----------------------------------");
   console_print(id,"->     ShowIP Plugin     <-");
   console_print(id,"-----------------------------------");
   console_print(id,"=> Imprimam IP-urile Jucatorilor <=");
   console_print(id," ");
   
   new players[32], num;
   get_players(players, num);
   
   for(new i = 0 ; i < num ; i++)
   {
      new name[32], ip[32];
      get_user_name(players[i], name, 31)
      get_user_ip(players[i], ip, 31, 1);
     
      if(strlen(name) > 20)
      {
         copy(name,17,name);
         add(name,64,"...");
      }
     
      console_print(id, "%d) %s - %s^n",i+1, name, ip);
   }
   console_print(id," ");
   console_print(id,"-----------------------------------");
   console_print(id,"->     ShowIP Plugin     <-");
   console_print(id,"-----------------------------------");    return PLUGIN_HANDLED;
}

public HartiJucateCuSay(id) {
   new HartiAnterioare[192], n
   n += formatex(HartiAnterioare[n], 191-n, "Hartile jucate anterior sunt:")
   for(new i; i<HartiMaxime; i++)
   {
      if(!NumeHarti[i][0])
      {
         n += formatex(HartiAnterioare[n-1], 191-n+1, ".")
         break
      }
      n += formatex(HartiAnterioare[n], 191-n, " %s%s", NumeHarti[i], i+1 == HartiMaxime ? "." : ",")
   }
   client_print(id, print_chat, HartiAnterioare)
   return PLUGIN_CONTINUE
}

stock chat_color(const id, const input[], any:...)
{
   new count = 1, players[32]
   static msg[191]
   vformat(msg, 190, input, 3)
   
   replace_all(msg, 190, "!g", "^4")
   replace_all(msg, 190, "!y", "^1")
   replace_all(msg, 190, "!team", "^3")
   
   if (id) players[0] = id;
   
   else get_players(players, count, "ch")
   {
      for (new i = 0; i < count; i++)
      {
         if (is_user_connected(players[i]))
         {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
            write_byte(players[i]);
            write_string(msg);
            message_end();
         }
      }
   }
}

Re: Amx_IP plugin

Posted: 29 Jul 2012, 13:46
by K1d0x
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>

#define ACCESS ADMIN_KICK

public plugin_init() {
   register_concmd("amx_showip", "cmdshowip", ACCESS, "Shows all ip's");
   register_concmd("amx_ip", "cmdshowip", ACCESS, "Shows all ip's");
}

public cmdshowip(id, level, cid)
{
   if (!(get_user_flags(id) & ACCESS)) {
      console_print(id,"-----------------------------------");
      console_print(id,"=> Nu ai acces la aceasta comanda !");
      console_print(id,"-----------------------------------");
      return PLUGIN_HANDLED;
   }
   
   console_print(id,"-----------------------------------");
   console_print(id,"->     ShowIP Plugin     <-");
   console_print(id,"-----------------------------------");
   console_print(id,"=> Imprimam IP-urile Jucatorilor <=");
   console_print(id," ");
   new players[32], num;
   get_players(players, num);
   
   for(new i = 0 ; i < num ; i++)
   {
      new name[32], ip[32];
      get_user_name(players, name, 31);
      get_user_ip(players, ip, 31, 1);
      
      if(strlen(name) > 20) {
         copy(name,17,name);
         add(name,64,"...");
      }
      
      console_print(id, "%d) %s - %s",i+1, name, ip);
   }
   console_print(id,"-----------------------------------");
   console_print(id,"->     ShowIP Plugin     <-");
   console_print(id,"-----------------------------------");
   return PLUGIN_HANDLED;
}

Re: Amx_IP plugin

Posted: 29 Jul 2012, 13:50
by smileye
comenzi,m-am incurcat,adica adminii sa poata vedea lista de ip-uri prin comenzile amx_ip si amx_showip

EDiT: si tot nu apare unul sub celalt numele si ip-urile ca in poza asta
http://uploadimage.ro/images/68570180968888496231.jpg

Re: Amx_IP plugin

Posted: 29 Jul 2012, 15:10
by K1d0x
Doar am extras plugin-ul pentru ca, ca de obicei nu stii sa explici (doar tu intelegi)

Re: Amx_IP plugin

Posted: 29 Jul 2012, 15:37
by smileye
Pai am explicat sus,am pus si pe poza cum arata si cum as vrea sa fie.

Re: Amx_IP plugin

Posted: 29 Jul 2012, 16:24
by K1d0x
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>

#define ACCESS ADMIN_KICK

public plugin_init() {
   register_concmd("amx_showip", "cmdshowip", ACCESS, "Shows all ip's");
   register_concmd("amx_ip", "cmdshowip", ACCESS, "Shows all ip's");
}

public cmdshowip(id, level, cid)
{
   if (!(get_user_flags(id) & ACCESS)) {
      console_print(id,"-----------------------------------");
      console_print(id,"=> Nu ai acces la aceasta comanda !");
      console_print(id,"-----------------------------------");
      return PLUGIN_HANDLED;
   }
   
   console_print(id,"-----------------------------------");
   console_print(id,"->     ShowIP Plugin     <-");
   console_print(id,"-----------------------------------");
   console_print(id,"=> Imprimam IP-urile Jucatorilor <=");
   console_print(id," ");
   new players[32], num;
   get_players(players, num);
   
   for(new i = 0 ; i < num ; i++)
   {
      new name[32], ip[32];
      get_user_name(players, name, 31);
      get_user_ip(players, ip, 31, 1);
      
      if(strlen(name) > 20) {
         copy(name,17,name);
         add(name,64,"...");
      }
      
      console_print(id, "%d) %s - %s",i+1, name, ip);
   }
   console_print(id,"-----------------------------------");
   console_print(id,"->     ShowIP Plugin     <-");
   console_print(id,"-----------------------------------");
   return PLUGIN_HANDLED;
}

Re: Amx_IP plugin

Posted: 29 Jul 2012, 16:32
by smileye
Acum apare unul dupa altul doar dupa imprimam,acolo sa lasi locul liber si intre nume si IP sa fie legat cum am aratat in poza de mai sus si uite cum apare acum:

Image

Deci sa fiu mai inteles,unde is "=> Imprimam IP-urile Jucatorilor <=" sa fie spatiu si dupa cand apare 1) nume - ip intre astea sa fie legat.

Re: Amx_IP plugin

Posted: 29 Jul 2012, 17:22
by K1d0x
Am dat edit,
Image

Re: Amx_IP plugin

Posted: 29 Jul 2012, 17:55
by smileye
OPTIMIZATI VA ROG ACEST PLUGIN CA VREAU SA IL PUN IN BAZA.

Code: Select all

console_print(id," ");
add(name,64,"...")
pentru ce is? aveau un bug alea 3 puncte apar la nume cateodata

Si alea lipite te rog am precizat,intre Ultima linie si Ultimul IP
Image

Re: Amx_IP plugin

Posted: 29 Jul 2012, 18:38
by K1d0x
| Afiseaza codul
if(strlen(name) > 20)
      {
         copy(name,17,name);
         add(name,64,"...");
      }
Daca numele are mai mult de 20 de caractere atunci va aparea 20 caractere din numele lui apoi vor fi acele ..., deci jos de tot vrei sa numai fie acea linie libera + scoaterea acelor puncte?

EDIT: am modificat mai sus, acum apare asa
| Afiseaza codul
] amx_showip
-----------------------------------
->     ShowIP Plugin     <-
-----------------------------------
=> Imprimam IP-urile Jucatorilor <=
 
1) nebunul-N0.1 - 127.0.0.1
2) costi.K.G.B - 127.0.0.1
3) i0nutz - 127.0.0.1
4) teroristCS=) - 127.0.0.1
5) ChrisCS - 127.0.0.1
6) ~666~ - 127.0.0.1
7) ovihot* - 127.0.0.1
8) weed*99 - 127.0.0.1
9) ~dany~ - 127.0.0.1
10) chuckie - 127.0.0.1
11) aaaaaaaaaaaaaaaaaaaaaK!D()Xaaaa - 169.254.162.250
-----------------------------------
->     ShowIP Plugin     <-
-----------------------------------

Re: Amx_IP plugin

Posted: 29 Jul 2012, 20:08
by smileye
Vreau ca sa fie cu ... daca are numele prea lung.
Si i-ar mai trebui ceva sa apara in consola zic eu,daca nu e admin si incearca sa afle IP-ul sa ii zica asa:
"--------------------------------------"
"=> Nu ai acces la aceasta comanda !"
"--------------------------------------"

Thanks.

Re: Amx_IP plugin

Posted: 29 Jul 2012, 23:19
by smileye
UP !..