[Half-Life AMXX] / plmenu.sma Repository:
ViewVC logotype

Diff of /plmenu.sma

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1, Tue Oct 30 09:08:11 2007 UTC revision 17, Fri Nov 16 15:29:57 2007 UTC
# Line 58  Line 58 
58  new g_coloredMenus  new g_coloredMenus
59  new g_cstrike = 0  new g_cstrike = 0
60    
61    new Array:g_bantimes;
62    new Array:g_slapsettings;
63    
64    new g_CSTeamNames[3][] = {
65            "TERRORIST",
66            "CT",
67            "SPECTATOR"
68    }
69    new g_CSTeamNumbers[3][] = {
70            "1",
71            "2",
72            "6"
73    }
74    new g_CSTeamiNumbers[3] = {
75            1,
76            2,
77            6
78    }
79    
80    
81  public plugin_natives()  public plugin_natives()
82  {  {
83          set_module_filter("module_filter")          set_module_filter("module_filter")
# Line 83  Line 103 
103          register_menucmd(register_menuid("Team Menu"), 1023, "actionTeamMenu")          register_menucmd(register_menuid("Team Menu"), 1023, "actionTeamMenu")
104          register_menucmd(register_menuid("Client Cmds Menu"), 1023, "actionClcmdMenu")          register_menucmd(register_menuid("Client Cmds Menu"), 1023, "actionClcmdMenu")
105    
106    
107            g_bantimes = ArrayCreate();
108            // Load up the old default values
109            ArrayPushCell(g_bantimes, 0);
110            ArrayPushCell(g_bantimes, 5);
111            ArrayPushCell(g_bantimes, 10);
112            ArrayPushCell(g_bantimes, 15);
113            ArrayPushCell(g_bantimes, 30);
114            ArrayPushCell(g_bantimes, 45);
115            ArrayPushCell(g_bantimes, 60);
116    
117    
118            g_slapsettings = ArrayCreate();
119            // Old default values
120            ArrayPushCell(g_slapsettings, 0); // First option is ignored - it is slay
121            ArrayPushCell(g_slapsettings, 1);
122            ArrayPushCell(g_slapsettings, 5);
123    
124    
125            register_srvcmd("amx_plmenu_bantimes", "plmenu_setbantimes");
126            register_srvcmd("amx_plmenu_slapdmg", "plmenu_setslapdmg");
127    
128          g_coloredMenus = colored_menus()          g_coloredMenus = colored_menus()
129    
130          new clcmds_ini_file[64]          new clcmds_ini_file[64]
# Line 93  Line 135 
135          if (module_exists("cstrike"))          if (module_exists("cstrike"))
136                  g_cstrike = 1                  g_cstrike = 1
137  }  }
138    public plmenu_setbantimes()
139    {
140            new buff[32];
141            new args = read_argc();
142    
143            if (args <= 1)
144            {
145                    server_print("usage: amx_plmenu_bantimes <time1> [time2] [time3] ...");
146                    server_print("   use time of 0 for permanent.");
147    
148                    return;
149            }
150    
151            ArrayClear(g_bantimes);
152    
153            for (new i = 1; i < args; i++)
154            {
155                    read_argv(i, buff, charsmax(buff));
156    
157                    ArrayPushCell(g_bantimes, str_to_num(buff));
158    
159            }
160    
161    }
162    public plmenu_setslapdmg()
163    {
164            new buff[32];
165            new args = read_argc();
166    
167            if (args <= 1)
168            {
169                    server_print("usage: amx_plmenu_slapdmg <dmg1> [dmg2] [dmg3] ...");
170                    server_print("   slay is automatically set for the first value.");
171    
172                    return;
173            }
174    
175            ArrayClear(g_slapsettings);
176    
177            ArrayPushCell(g_slapsettings, 0); // compensate for slay
178    
179            for (new i = 1; i < args; i++)
180            {
181                    read_argv(i, buff, charsmax(buff));
182    
183                    ArrayPushCell(g_slapsettings, str_to_num(buff));
184    
185            }
186    
187    }
188  public module_filter(const module[])  public module_filter(const module[])
189  {  {
190          if (equali(module, "cstrike"))          if (equali(module, "cstrike"))
# Line 121  Line 212 
212                          /* BEGIN OF CHANGES BY MISTAGEE ADDED A FEW MORE OPTIONS */                          /* BEGIN OF CHANGES BY MISTAGEE ADDED A FEW MORE OPTIONS */
213    
214                          ++g_menuOption[id]                          ++g_menuOption[id]
215                          g_menuOption[id] %= 7                          g_menuOption[id] %= ArraySize(g_bantimes);
216    
217                          switch (g_menuOption[id])                          g_menuSettings[id] = ArrayGetCell(g_bantimes, g_menuOption[id]);
                         {  
                                 case 0: g_menuSettings[id] = 0  
                                 case 1: g_menuSettings[id] = 5  
                                 case 2: g_menuSettings[id] = 10  
                                 case 3: g_menuSettings[id] = 15  
                                 case 4: g_menuSettings[id] = 30  
                                 case 5: g_menuSettings[id] = 45  
                                 case 6: g_menuSettings[id] = 60  
                         }  
218    
219                          displayBanMenu(id, g_menuPosition[id])                          displayBanMenu(id, g_menuPosition[id])
220                  }                  }
# Line 152  Line 234 
234    
235                          log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%d^")", name, get_user_userid(id), authid, name2, userid2, authid2, g_menuSettings[id])                          log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%d^")", name, get_user_userid(id), authid, name2, userid2, authid2, g_menuSettings[id])
236    
237                          switch (get_cvar_num("amx_show_activity"))                          if (g_menuSettings[id]==0) // permanent
238                            {
239                                    new maxpl = get_maxplayers();
240                                    for (new i = 1; i <= maxpl; i++)
241                          {                          {
242                                  case 2: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_BAN_2", name, name2)                                          show_activity_id(i, id, name, "%L %s %L", i, "BAN", name2, i, "PERM");
243                                  case 1: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_BAN_1", name2)                                  }
244                            }
245                            else
246                            {
247                                    new tempTime[32];
248                                    formatex(tempTime,sizeof(tempTime)-1,"%d",g_menuSettings[id]);
249                                    new maxpl = get_maxplayers();
250                                    for (new i = 1; i <= maxpl; i++)
251                                    {
252                                            show_activity_id(i, id, name, "%L %s %L", i, "BAN", name2, i, "FOR_MIN", tempTime);
253                                    }
254                          }                          }
   
255                          /* ---------- check for Steam ID added by MistaGee --------------------                          /* ---------- check for Steam ID added by MistaGee --------------------
256                          IF AUTHID == 4294967295 OR VALVE_ID_LAN OR HLTV, BAN PER IP TO NOT BAN EVERYONE */                          IF AUTHID == 4294967295 OR VALVE_ID_LAN OR HLTV, BAN PER IP TO NOT BAN EVERYONE */
257    
# Line 173  Line 267 
267                                  server_cmd("addip %d %s;writeip", g_menuSettings[id], ipa)                                  server_cmd("addip %d %s;writeip", g_menuSettings[id], ipa)
268                          }                          }
269                          else                          else
270                            {
271                                  server_cmd("banid %d #%d kick;writeid", g_menuSettings[id], userid2)                                  server_cmd("banid %d #%d kick;writeid", g_menuSettings[id], userid2)
272                            }
273    
274                          server_exec()                          server_exec()
275    
# Line 251  Line 347 
347          if (!cmd_access(id, level, cid, 1))          if (!cmd_access(id, level, cid, 1))
348                  return PLUGIN_HANDLED                  return PLUGIN_HANDLED
349    
350          g_menuOption[id] = 1          g_menuOption[id] = 0
351          g_menuSettings[id] = 5  
352            if (ArraySize(g_bantimes) > 0)
353            {
354                    g_menuSettings[id] = ArrayGetCell(g_bantimes, g_menuOption[id]);
355            }
356            else
357            {
358                    // should never happen, but failsafe
359                    g_menuSettings[id] = 0
360            }
361          displayBanMenu(id, g_menuPosition[id] = 0)          displayBanMenu(id, g_menuPosition[id] = 0)
362    
363          return PLUGIN_HANDLED          return PLUGIN_HANDLED
# Line 267  Line 372 
372                  case 7:                  case 7:
373                  {                  {
374                          ++g_menuOption[id]                          ++g_menuOption[id]
                         g_menuOption[id] %= 4  
375    
376                          switch (g_menuOption[id])                          g_menuOption[id] %= ArraySize(g_slapsettings);
                         {  
                                 case 1: g_menuSettings[id] = 0  
                                 case 2: g_menuSettings[id] = 1  
                                 case 3: g_menuSettings[id] = 5  
                         }  
377    
378                          displaySlapMenu(id, g_menuPosition[id])                          g_menuSettings[id] = ArrayGetCell(g_slapsettings, g_menuOption[id]);
379    
380                            displaySlapMenu(id, g_menuPosition[id]);
381                  }                  }
382                  case 8: displaySlapMenu(id, ++g_menuPosition[id])                  case 8: displaySlapMenu(id, ++g_menuPosition[id])
383                  case 9: displaySlapMenu(id, --g_menuPosition[id])                  case 9: displaySlapMenu(id, --g_menuPosition[id])
# Line 304  Line 405 
405                          {                          {
406                                  log_amx("Cmd: ^"%s<%d><%s><>^" slap with %d damage ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, g_menuSettings[id], name2, get_user_userid(player), authid2)                                  log_amx("Cmd: ^"%s<%d><%s><>^" slap with %d damage ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, g_menuSettings[id], name2, get_user_userid(player), authid2)
407    
408                                  switch (get_cvar_num("amx_show_activity"))                                  show_activity_key("ADMIN_SLAP_1", "ADMIN_SLAP_2", name, name2, g_menuSettings[id]);
                                 {  
                                         case 2: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_SLAP_2", name, name2, g_menuSettings[id])  
                                         case 1: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_SLAP_1", name2, g_menuSettings[id])  
                                 }  
409                          } else {                          } else {
410                                  log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2)                                  log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2)
411    
412                                  switch (get_cvar_num("amx_show_activity"))                                  show_activity_key("ADMIN_SLAY_1", "ADMIN_SLAY_2", name, name2);
                                 {  
                                         case 2: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_SLAY_2", name, name2)  
                                         case 1: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_SLAY_1", name2)  
                                 }  
413                          }                          }
414    
415                          if (g_menuOption[id])                          if (g_menuOption[id])
# Line 415  Line 508 
508                  return PLUGIN_HANDLED                  return PLUGIN_HANDLED
509    
510          g_menuOption[id] = 0          g_menuOption[id] = 0
511            if (ArraySize(g_slapsettings) > 0)
512            {
513                    g_menuSettings[id] = ArrayGetCell(g_slapsettings, g_menuOption[id]);
514            }
515            else
516            {
517                    // should never happen, but failsafe
518          g_menuSettings[id] = 0          g_menuSettings[id] = 0
519            }
520    
521          displaySlapMenu(id, g_menuPosition[id] = 0)          displaySlapMenu(id, g_menuPosition[id] = 0)
522    
# Line 444  Line 545 
545    
546                          log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, userid2, authid2)                          log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, userid2, authid2)
547    
548                          switch (get_cvar_num("amx_show_activity"))                          show_activity_key("ADMIN_KICK_1", "ADMIN_KICK_2", name, name2);
549                          {  
                                 case 2: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_KICK_2", name, name2)  
                                 case 1: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_KICK_1", name2)  
                         }  
550    
551                          server_cmd("kick #%d", userid2)                          server_cmd("kick #%d", userid2)
552                          server_exec()                          server_exec()
# Line 533  Line 631 
631          {          {
632                  case 7:                  case 7:
633                  {                  {
634                          g_menuOption[id] = 1 - g_menuOption[id]                          g_menuOption[id] = (g_menuOption[id] + 1) % (g_cstrike ? 3 : 2);
635                          displayTeamMenu(id, g_menuPosition[id])                          displayTeamMenu(id, g_menuPosition[id])
636                  }                  }
637                  case 8: displayTeamMenu(id, ++g_menuPosition[id])                  case 8: displayTeamMenu(id, ++g_menuPosition[id])
# Line 550  Line 648 
648    
649                          log_amx("Cmd: ^"%s<%d><%s><>^" transfer ^"%s<%d><%s><>^" (team ^"%s^")", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2, g_menuOption[id] ? "TERRORIST" : "CT")                          log_amx("Cmd: ^"%s<%d><%s><>^" transfer ^"%s<%d><%s><>^" (team ^"%s^")", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2, g_menuOption[id] ? "TERRORIST" : "CT")
650    
651                          switch (get_cvar_num("amx_show_activity"))                          show_activity_key("ADMIN_TRANSF_1", "ADMIN_TRANSF_2", name, name2, g_CSTeamNames[g_menuOption[id] % 3]);
                         {  
                                 case 2: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_TRANSF_2", name, name2, g_menuOption[id] ? "TERRORIST" : "CT")  
                                 case 1: client_print(0, print_chat, "%L", LANG_PLAYER, "ADMIN_TRANSF_1", name2, g_menuOption[id] ? "TERRORIST" : "CT")  
                         }  
652    
653                          if (g_cstrike)                          if (g_cstrike)
654                          {                          {
# Line 564  Line 658 
658                                          user_kill(player, 1)                                          user_kill(player, 1)
659                                          cs_set_user_deaths(player, deaths)                                          cs_set_user_deaths(player, deaths)
660                                  }                                  }
661                                  cs_set_user_team(player, g_menuOption[id] ? 1 : 2)                                  // This modulo math just aligns the option to the CsTeams-corresponding number
662                                    cs_set_user_team(player, (g_menuOption[id] % 3) + 1)
663                                  cs_reset_user_model(player)                                  cs_reset_user_model(player)
664                          } else {                          } else {
665                                  new limit_setting = get_cvar_num("mp_limitteams")                                  new limit_setting = get_cvar_num("mp_limitteams")
666    
667                                  set_cvar_num("mp_limitteams", 0)                                  set_cvar_num("mp_limitteams", 0)
668                                  engclient_cmd(player, "jointeam", g_menuOption[id] ? "1" : "2")                                  engclient_cmd(player, "jointeam", g_CSTeamNumbers[g_menuOption[id] % 2])
669                                  engclient_cmd(player, "joinclass", "1")                                  engclient_cmd(player, "joinclass", "1")
670                                  set_cvar_num("mp_limitteams", limit_setting)                                  set_cvar_num("mp_limitteams", limit_setting)
671                          }                          }
# Line 621  Line 716 
716                          else if (iteam == 2)                          else if (iteam == 2)
717                          {                          {
718                                  copy(team, 3, "CT")                                  copy(team, 3, "CT")
719                            }
720                            else if (iteam == 3)
721                            {
722                                    copy(team, 3, "SPE");
723                                    iteam = 6;
724                          } else {                          } else {
725                                  get_user_team(i, team, 3)                                  iteam = get_user_team(i, team, 3)
726                          }                          }
727                  } else {                  } else {
728                          iteam = get_user_team(i, team, 3)                          iteam = get_user_team(i, team, 3)
729                  }                  }
730    
731                  if ((iteam == (g_menuOption[id] ? 1 : 2)) || access(i, ADMIN_IMMUNITY))                  if ((iteam == g_CSTeamiNumbers[g_menuOption[id] % (g_cstrike ? 3 : 2)]) || access(i, ADMIN_IMMUNITY))
732                  {                  {
733                          ++b                          ++b
734    
# Line 646  Line 746 
746                  }                  }
747          }          }
748    
749          len += format(menuBody[len], 511-len, "^n8. %L^n", id, "TRANSF_TO", g_menuOption[id] ? "TERRORIST" : "CT")          len += format(menuBody[len], 511-len, "^n8. %L^n", id, "TRANSF_TO", g_CSTeamNames[g_menuOption[id] % (g_cstrike ? 3 : 2)])
750    
751          if (end != g_menuPlayersNum[id])          if (end != g_menuPlayersNum[id])
752          {          {
# Line 692  Line 792 
792    
793                          if (is_user_connected(player))                          if (is_user_connected(player))
794                          {                          {
795                                  new command[64], authid[32], name[32], userid[32]                                  new command[512], authid[32], name[32], userid[32]
796    
797                                  copy(command, 63, g_clcmdCmd[g_menuSelect[id][g_menuOption[id]]])                                  copy(command, charsmax(command), g_clcmdCmd[g_menuSelect[id][g_menuOption[id]]])
798                                  get_user_authid(player, authid, 31)                                  get_user_authid(player, authid, 31)
799                                  get_user_name(player, name, 31)                                  get_user_name(player, name, 31)
800                                  num_to_str(get_user_userid(player), userid, 31)                                  num_to_str(get_user_userid(player), userid, 31)
801    
802                                  replace(command, 63, "%userid%", userid)                                  replace(command, charsmax(command), "%userid%", userid)
803                                  replace(command, 63, "%authid%", authid)                                  replace(command, charsmax(command), "%authid%", authid)
804                                  replace(command, 63, "%name%", name)                                  replace(command, charsmax(command), "%name%", name)
805    
806                                  if (flags & 1)                                  if (flags & 1)
807                                  {                                  {
# Line 788  Line 888 
888          if (!cmd_access(id, level, cid, 1))          if (!cmd_access(id, level, cid, 1))
889                  return PLUGIN_HANDLED                  return PLUGIN_HANDLED
890    
         new flags = get_user_flags(id)  
   
891          g_menuSelectNum[id] = 0          g_menuSelectNum[id] = 0
892    
893          for (new a = 0; a < g_clcmdNum; ++a)          for (new a = 0; a < g_clcmdNum; ++a)
894                  if (g_clcmdMisc[a][0] & flags)                  if (access(id, g_clcmdMisc[a][0]))
895                          g_menuSelect[id][g_menuSelectNum[id]++] = a                          g_menuSelect[id][g_menuSelectNum[id]++] = a
896    
897          g_menuOption[id] = 0          g_menuOption[id] = 0

Legend:
Removed from v.1  
changed lines
  Added in v.17

Contact
ViewVC Help
Powered by ViewVC 1.0.4