added dod plugins
This commit is contained in:
		
							
								
								
									
										26
									
								
								plugins/dod/dodstats.sma
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								plugins/dod/dodstats.sma
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| /* Get Score for DoD STATS. | ||||
|  * | ||||
|  * (c) 2004, SidLuke | ||||
|  * This file is provided as is (no warranties). | ||||
|  * | ||||
|  * Function calculates position in rank. | ||||
|  * | ||||
|  * Stats: | ||||
|  * 0 - kills | ||||
|  * 1 - deaths | ||||
|  * 2 - headshots | ||||
|  * 3 - teamkilling | ||||
|  * 4 - shots | ||||
|  * 5 - hits | ||||
|  * 6 - damage | ||||
|  * 7 - score | ||||
|  * | ||||
|  * File location: $moddir/addons/amx | ||||
|  */ | ||||
|  | ||||
| #include <amxmodx> | ||||
|  | ||||
| public get_score(stats[9],body[8]) | ||||
| { | ||||
| 	return stats[0] - stats[1] - stats[3] /* kills - deaths - TKs */ | ||||
| } | ||||
							
								
								
									
										201
									
								
								plugins/dod/menufront.sma
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										201
									
								
								plugins/dod/menufront.sma
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,201 @@ | ||||
| /* AMX Mod X | ||||
| *   Menus Front-End Plugin | ||||
| * | ||||
| * by the AMX Mod X Development Team | ||||
| *  originally developed by OLO | ||||
| * | ||||
| * This file is part of AMX Mod X. | ||||
| * | ||||
| * | ||||
| *  This program is free software; you can redistribute it and/or modify it | ||||
| *  under the terms of the GNU General Public License as published by the | ||||
| *  Free Software Foundation; either version 2 of the License, or (at | ||||
| *  your option) any later version. | ||||
| * | ||||
| *  This program is distributed in the hope that it will be useful, but | ||||
| *  WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||||
| *  General Public License for more details. | ||||
| * | ||||
| *  You should have received a copy of the GNU General Public License | ||||
| *  along with this program; if not, write to the Free Software Foundation, | ||||
| *  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||||
| * | ||||
| *  In addition, as a special exception, the author gives permission to | ||||
| *  link the code of this program with the Half-Life Game Engine ("HL | ||||
| *  Engine") and Modified Game Libraries ("MODs") developed by Valve, | ||||
| *  L.L.C ("Valve"). You must obey the GNU General Public License in all | ||||
| *  respects for all of the code used other than the HL Engine and MODs | ||||
| *  from Valve. If you modify this file, you may extend this exception | ||||
| *  to your version of the file, but you are not obligated to do so. If | ||||
| *  you do not wish to do so, delete this exception statement from your | ||||
| *  version. | ||||
| */ | ||||
|  | ||||
| #include <amxmodx> | ||||
| #include <amxmisc> | ||||
|  | ||||
| new g_menuPosition[33] | ||||
|  | ||||
| #define MENUS_NUMBER 16 | ||||
|  | ||||
| new g_menuBody[MENUS_NUMBER][] = { | ||||
|   "KICK_PLAYER", | ||||
|   "BAN_PLAYER", | ||||
|   "SLAP_SLAY", | ||||
|   "TEAM_PLAYER", | ||||
|  | ||||
|   "CHANGEL", | ||||
|   "VOTE_MAPS", | ||||
|  | ||||
|   "SPECH_STUFF", | ||||
|   "CLIENT_COM", | ||||
|  | ||||
|   // Next Page | ||||
|  | ||||
|   "SERVER_COM", | ||||
|   "CVARS_SET", | ||||
|   "CONFIG", | ||||
|   "LANG_SET", | ||||
|   "STATS_SET", | ||||
|  | ||||
|   "PAUSE_PLUG", | ||||
|   "RES_WEAP", | ||||
|  | ||||
|   "TELE_PLAYER" /* Last is Teleport menu - if you want to move it | ||||
|                        change also code in displayMenu (look for fun module check) */ | ||||
| } | ||||
|  | ||||
| new g_menuCmd[MENUS_NUMBER][] = { | ||||
|   "amx_kickmenu", | ||||
|   "amx_banmenu", | ||||
|   "amx_slapmenu", | ||||
|   "amx_teammenu", | ||||
|  | ||||
|   "amx_mapmenu", | ||||
|   "amx_votemapmenu", | ||||
|  | ||||
|   "amx_speechmenu", | ||||
|   "amx_clcmdmenu", | ||||
|  | ||||
|   // Next Page | ||||
|  | ||||
|   "amx_cmdmenu", | ||||
|   "amx_cvarmenu", | ||||
|   "amx_cfgmenu", | ||||
|   "amx_setlangmenu", | ||||
|   "amx_statscfgmenu", | ||||
|  | ||||
|   "amx_pausecfgmenu", | ||||
|   "amx_restmenu", | ||||
|  | ||||
|   "amx_teleportmenu" | ||||
| } | ||||
|  | ||||
| // Second value sets if menu is only for CS... | ||||
| new g_menuAccess[MENUS_NUMBER][2] = { | ||||
|   {ADMIN_KICK,0}, | ||||
|   {ADMIN_BAN,0}, | ||||
|   {ADMIN_SLAY,0}, | ||||
|   {ADMIN_LEVEL_A,0}, | ||||
|  | ||||
|   {ADMIN_MAP,0}, | ||||
|   {ADMIN_MAP,0}, | ||||
|  | ||||
|   {ADMIN_MENU,0}, | ||||
|   {ADMIN_LEVEL_A,0}, | ||||
|  | ||||
|   // Next Page | ||||
|  | ||||
|   {ADMIN_MENU,0}, | ||||
|   {ADMIN_CVAR,0}, | ||||
|   {ADMIN_MENU,0}, | ||||
|   {ADMIN_CFG,0}, | ||||
|   {ADMIN_CFG,0}, | ||||
|  | ||||
|   {ADMIN_CFG,0}, | ||||
|   {ADMIN_CFG,1}, | ||||
|  | ||||
|   {ADMIN_LEVEL_A,0} | ||||
| } | ||||
|  | ||||
| new g_coloredMenus | ||||
| new g_cstrikeRunning | ||||
| new g_funModule | ||||
|  | ||||
| public plugin_init() { | ||||
|   register_plugin("Menus Front-End",AMXX_VERSION_STR,"AMXX Dev Team")   | ||||
|  | ||||
|   register_dictionary("menufront.txt") | ||||
|   register_dictionary("common.txt") | ||||
|  | ||||
|   register_menucmd(register_menuid("AMX Mod X Menu"),1023,"actionMenu")  | ||||
|   register_clcmd("amxmodmenu","cmdMenu",ADMIN_MENU,"- displays menus")     | ||||
|  | ||||
|   g_coloredMenus = colored_menus() | ||||
|   g_cstrikeRunning = cstrike_running() | ||||
|   g_funModule = is_module_loaded("Fun") | ||||
| } | ||||
|  | ||||
| public actionMenu(id,key) { | ||||
|   switch (key) { | ||||
|     case 8: displayMenu(id,++g_menuPosition[id]) | ||||
|     case 9: displayMenu(id,--g_menuPosition[id]) | ||||
|     default: client_cmd(id, g_menuCmd[ g_menuPosition[id] * 8 + key ] ) | ||||
|   } | ||||
|   return PLUGIN_HANDLED | ||||
| } | ||||
|  | ||||
| displayMenu(id,pos) { | ||||
|   if (pos < 0)  return | ||||
|      | ||||
|   new menuBody[512] | ||||
|   new b = 0 | ||||
|   new start = pos * 8 | ||||
|    | ||||
|   if ( start >= MENUS_NUMBER ) | ||||
|     start = pos = g_menuPosition[id] = 0 | ||||
|        | ||||
|   new len = format(menuBody,511, | ||||
|    g_coloredMenus ? "\yAMX Mod X Menu\R%d/%d^n\w^n" : "AMX Mod X Menu %d/%d^n^n" , pos+1, 2 ) | ||||
|      | ||||
|   new end = start + 8 | ||||
|   new keys = MENU_KEY_0 | ||||
|    | ||||
|   if (end > MENUS_NUMBER ) | ||||
|     end = MENUS_NUMBER | ||||
|      | ||||
|   new flags = get_user_flags(id) | ||||
|      | ||||
|   for (new a = start; a < end; ++a) { | ||||
|       if ( a == MENUS_NUMBER - 1 && !g_funModule )  | ||||
|         continue // checks if there is fun module for teleport menu | ||||
|    | ||||
|       if ( (flags & g_menuAccess[a][0]) && ( g_menuAccess[a][1] ? g_cstrikeRunning : 1 ) ) { | ||||
|         keys |= (1<<b) | ||||
|         len += format(menuBody[len],511-len,"%d. %L^n",++b, id, g_menuBody[ a ] ) | ||||
|       } | ||||
|       else { | ||||
|         ++b      | ||||
|         if ( g_coloredMenus ) | ||||
|           len += format(menuBody[len],511-len, "\d%d. %L^n\w",b, id, g_menuBody[ a ] ) | ||||
|         else | ||||
|           len += format(menuBody[len],511-len, "#. %L^n", id, g_menuBody[ a ] ) | ||||
|  | ||||
|       } | ||||
|   } | ||||
|        | ||||
|   if (end != MENUS_NUMBER ) { | ||||
|     format(menuBody[len],511-len,"^n9. %L...^n0. %s", id, "MORE", id, pos ? "BACK" : "EXIT") | ||||
|     keys |= MENU_KEY_9 | ||||
|   } | ||||
|   else format(menuBody[len],511-len,"^n0. %s", id, pos ? "BACK" : "EXIT") | ||||
|   | ||||
|   show_menu(id,keys,menuBody) | ||||
| } | ||||
|  | ||||
| public cmdMenu(id,level,cid) { | ||||
|   if (cmd_access(id,level,cid,1)) | ||||
|     displayMenu(id,g_menuPosition[id] = 0) | ||||
|   return PLUGIN_HANDLED | ||||
| } | ||||
							
								
								
									
										667
									
								
								plugins/dod/plmenu.sma
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										667
									
								
								plugins/dod/plmenu.sma
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,667 @@ | ||||
| /* AMX Mod X | ||||
| *   Players Menu Plugin | ||||
| * | ||||
| * by the AMX Mod X Development Team | ||||
| *  originally developed by OLO | ||||
| * | ||||
| * This file is part of AMX Mod X. | ||||
| * | ||||
| * | ||||
| *  This program is free software; you can redistribute it and/or modify it | ||||
| *  under the terms of the GNU General Public License as published by the | ||||
| *  Free Software Foundation; either version 2 of the License, or (at | ||||
| *  your option) any later version. | ||||
| * | ||||
| *  This program is distributed in the hope that it will be useful, but | ||||
| *  WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||||
| *  General Public License for more details. | ||||
| * | ||||
| *  You should have received a copy of the GNU General Public License | ||||
| *  along with this program; if not, write to the Free Software Foundation, | ||||
| *  Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||||
| * | ||||
| *  In addition, as a special exception, the author gives permission to | ||||
| *  link the code of this program with the Half-Life Game Engine ("HL | ||||
| *  Engine") and Modified Game Libraries ("MODs") developed by Valve, | ||||
| *  L.L.C ("Valve"). You must obey the GNU General Public License in all | ||||
| *  respects for all of the code used other than the HL Engine and MODs | ||||
| *  from Valve. If you modify this file, you may extend this exception | ||||
| *  to your version of the file, but you are not obligated to do so. If | ||||
| *  you do not wish to do so, delete this exception statement from your | ||||
| *  version. | ||||
| */ | ||||
|  | ||||
| #include <amxmodx> | ||||
| #include <amxmisc> | ||||
| #include <dodx> | ||||
|  | ||||
| new g_menuPosition[33] | ||||
| new g_menuPlayers[33][32] | ||||
| new g_menuPlayersNum[33] | ||||
| new g_menuOption[33] | ||||
| new g_menuSettings[33] | ||||
|  | ||||
| new g_menuSelect[33][64] | ||||
| new g_menuSelectNum[33] | ||||
|  | ||||
| #define MAX_CLCMDS 24 | ||||
|  | ||||
| new g_clcmdName[MAX_CLCMDS][32] | ||||
| new g_clcmdCmd[MAX_CLCMDS][64] | ||||
| new g_clcmdMisc[MAX_CLCMDS][2] | ||||
| new g_clcmdNum | ||||
|  | ||||
| new g_coloredMenus | ||||
|  | ||||
| public plugin_init() { | ||||
|   register_plugin("Players Menu",AMXX_VERSION_STR,"AMXX Dev Team") | ||||
|  | ||||
|   register_dictionary("plmenu.txt") | ||||
|   register_dictionary("common.txt") | ||||
|  | ||||
|   register_clcmd("amx_kickmenu","cmdKickMenu",ADMIN_KICK,"- displays kick menu") | ||||
|   register_clcmd("amx_banmenu","cmdBanMenu",ADMIN_BAN,"- displays ban menu") | ||||
|   register_clcmd("amx_slapmenu","cmdSlapMenu",ADMIN_SLAY,"- displays slap/slay menu") | ||||
|   register_clcmd("amx_teammenu","cmdTeamMenu",ADMIN_LEVEL_A,"- displays team menu") | ||||
|   register_clcmd("amx_clcmdmenu","cmdClcmdMenu",ADMIN_LEVEL_A,"- displays client cmds menu") | ||||
|  | ||||
|   register_menucmd(register_menuid("Ban Menu"),1023,"actionBanMenu") | ||||
|   register_menucmd(register_menuid("Kick Menu"),1023,"actionKickMenu") | ||||
|   register_menucmd(register_menuid("Slap/Slay Menu"),1023,"actionSlapMenu") | ||||
|   register_menucmd(register_menuid("Team Menu"),1023,"actionTeamMenu") | ||||
|   register_menucmd(register_menuid("Client Cmds Menu"),1023,"actionClcmdMenu") | ||||
|  | ||||
|   g_coloredMenus = colored_menus() | ||||
|  | ||||
|   new clcmds_ini_file[64] | ||||
|   get_configsdir(clcmds_ini_file, 63) | ||||
|   format(clcmds_ini_file, 63, "%s/clcmds.ini", clcmds_ini_file) | ||||
|   load_settings(clcmds_ini_file) | ||||
| } | ||||
|  | ||||
| /* Ban menu */ | ||||
|  | ||||
| public actionBanMenu(id,key) { | ||||
|   switch (key) { | ||||
|     case 7: { | ||||
|       ++g_menuOption[id] | ||||
|       g_menuOption[id] %= 3 | ||||
|        | ||||
|       switch(g_menuOption[id]){ | ||||
|       case 0: g_menuSettings[id] = 0 | ||||
|       case 1: g_menuSettings[id] = 5 | ||||
|       case 2: g_menuSettings[id] = 60 | ||||
|       }      | ||||
|        | ||||
|       displayBanMenu(id,g_menuPosition[id]) | ||||
|     } | ||||
|     case 8: displayBanMenu(id,++g_menuPosition[id]) | ||||
|     case 9: displayBanMenu(id,--g_menuPosition[id]) | ||||
|     default: { | ||||
|       new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key] | ||||
|        | ||||
|       new name[32], name2[32], authid[32],authid2[32] | ||||
|       get_user_name(player,name2,31) | ||||
|       get_user_authid(id,authid,31) | ||||
|       get_user_authid(player,authid2,31) | ||||
|       get_user_name(id,name,31) | ||||
|       new userid2 = get_user_userid(player) | ||||
|  | ||||
|       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] ) | ||||
|  | ||||
|       switch (get_cvar_num("amx_show_activity")) { | ||||
|         case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_BAN_2",name,name2) | ||||
|         case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_BAN_1",name2) | ||||
|       } | ||||
|  | ||||
|       if (equal("4294967295",authid2)) { /* lan */ | ||||
|         new ipa[32] | ||||
|         get_user_ip(player,ipa,31,1) | ||||
|         server_cmd("addip %d %s;writeip",g_menuSettings[id],ipa) | ||||
|       } | ||||
|       else | ||||
|         server_cmd("banid %d #%d kick;writeid",g_menuSettings[id],userid2) | ||||
|  | ||||
|       server_exec() | ||||
|  | ||||
|       displayBanMenu(id,g_menuPosition[id]) | ||||
|     } | ||||
|   } | ||||
|   return PLUGIN_HANDLED | ||||
| } | ||||
|  | ||||
| displayBanMenu(id,pos) { | ||||
|   if (pos < 0)  return | ||||
|      | ||||
|   get_players(g_menuPlayers[id],g_menuPlayersNum[id]) | ||||
|      | ||||
|   new menuBody[512] | ||||
|   new b = 0 | ||||
|   new i | ||||
|   new name[32] | ||||
|   new start = pos * 7 | ||||
|    | ||||
|   if (start >= g_menuPlayersNum[id]) | ||||
|     start = pos = g_menuPosition[id] = 0 | ||||
|      | ||||
|   new len = format(menuBody,511, g_coloredMenus ?  | ||||
|     "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", | ||||
|     id,"BAN_MENU",pos+1,(  g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) ) | ||||
|  | ||||
|   new end = start + 7 | ||||
|   new keys = MENU_KEY_0|MENU_KEY_8 | ||||
|  | ||||
|   if (end > g_menuPlayersNum[id]) | ||||
|     end = g_menuPlayersNum[id] | ||||
|      | ||||
|   for (new a = start; a < end; ++a) { | ||||
|     i = g_menuPlayers[id][a] | ||||
|     get_user_name(i,name,31) | ||||
|      | ||||
|     if ( is_user_bot(i) || access(i,ADMIN_IMMUNITY) ) { | ||||
|       ++b    | ||||
|       if ( g_coloredMenus ) | ||||
|         len += format(menuBody[len],511-len,"\d%d. %s^n\w",b,name) | ||||
|       else | ||||
|         len += format(menuBody[len],511-len,"#. %s^n",name) | ||||
|     } | ||||
|     else { | ||||
|       keys |= (1<<b) | ||||
|       len += format(menuBody[len],511-len,"%d. %s^n",++b,name) | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   if ( g_menuSettings[id] ) | ||||
|     len += format(menuBody[len],511-len,"^n8. %L^n", id, "BAN_FOR_MIN", g_menuSettings[id] ) | ||||
|   else | ||||
|     len += format(menuBody[len],511-len,"^n8. %L^n", id, "BAN_PERM" ) | ||||
|  | ||||
|   if (end != g_menuPlayersNum[id]) { | ||||
|     format(menuBody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT") | ||||
|     keys |= MENU_KEY_9 | ||||
|   } | ||||
|   else format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT") | ||||
|  | ||||
|   show_menu(id,keys,menuBody,-1,"Ban Menu") | ||||
| } | ||||
|  | ||||
| public cmdBanMenu(id,level,cid) { | ||||
|   if (!cmd_access(id,level,cid,1)) | ||||
|     return PLUGIN_HANDLED | ||||
|  | ||||
|   g_menuOption[id] = 1 | ||||
|   g_menuSettings[id] = 5 | ||||
|   displayBanMenu(id,g_menuPosition[id] = 0) | ||||
|  | ||||
|   return PLUGIN_HANDLED  | ||||
| } | ||||
|  | ||||
| /* Slap/Slay */ | ||||
|  | ||||
| public actionSlapMenu(id,key) { | ||||
|   switch (key) { | ||||
|     case 7: { | ||||
|       ++g_menuOption[id] | ||||
|       g_menuOption[id] %= 4 | ||||
|       switch (g_menuOption[id]) { | ||||
|         case 1: g_menuSettings[id] = 0 | ||||
|         case 2: g_menuSettings[id] = 1 | ||||
|         case 3: g_menuSettings[id] = 5 | ||||
|       } | ||||
|       displaySlapMenu(id,g_menuPosition[id]) | ||||
|     } | ||||
|     case 8: displaySlapMenu(id,++g_menuPosition[id]) | ||||
|     case 9: displaySlapMenu(id,--g_menuPosition[id]) | ||||
|     default: { | ||||
|       new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key] | ||||
|        | ||||
|       new name2[32] | ||||
|       get_user_name(player,name2,31) | ||||
|        | ||||
|       if (!is_user_alive(player)) { | ||||
|         client_print(id,print_chat,"%L",id,"CANT_PERF_DEAD",name2) | ||||
|         displaySlapMenu(id,g_menuPosition[id]) | ||||
|         return PLUGIN_HANDLED | ||||
|       } | ||||
|              | ||||
|       new authid[32],authid2[32], name[32] | ||||
|  | ||||
|       get_user_authid(id,authid,31) | ||||
|       get_user_authid(player,authid2,31) | ||||
|       get_user_name(id,name,31) | ||||
|          | ||||
|       if ( g_menuOption[id] ) { | ||||
|         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 ) | ||||
|         switch (get_cvar_num("amx_show_activity")) { | ||||
|           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]) | ||||
|         }      | ||||
|       } | ||||
|       else { | ||||
|         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: 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) | ||||
|         } | ||||
|       } | ||||
|        | ||||
|       if ( g_menuOption[id]) | ||||
|         user_slap(player, ( get_user_health(player) >  g_menuSettings[id]  ) ? g_menuSettings[id] : 0 ) | ||||
|       else | ||||
|         user_kill( player ) | ||||
|        | ||||
|       displaySlapMenu(id,g_menuPosition[id]) | ||||
|     } | ||||
|   } | ||||
|   return PLUGIN_HANDLED | ||||
| } | ||||
|  | ||||
|  | ||||
| displaySlapMenu(id,pos) { | ||||
|   if (pos < 0)  return | ||||
|  | ||||
|   get_players(g_menuPlayers[id],g_menuPlayersNum[id]) | ||||
|  | ||||
|   new menuBody[512] | ||||
|   new b = 0 | ||||
|   new i | ||||
|   new name[32], team[8] | ||||
|   new start = pos * 7 | ||||
|  | ||||
|   if (start >= g_menuPlayersNum[id]) | ||||
|     start = pos = g_menuPosition[id] = 0 | ||||
|  | ||||
|   new len = format(menuBody,511, g_coloredMenus ?  | ||||
|     "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", | ||||
|     id,"SLAP_SLAY_MENU",pos+1,(  g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) ) | ||||
|      | ||||
|   new end = start + 7 | ||||
|   new keys = MENU_KEY_0|MENU_KEY_8 | ||||
|    | ||||
|   if (end > g_menuPlayersNum[id]) | ||||
|     end = g_menuPlayersNum[id] | ||||
|  | ||||
|   for (new a = start; a < end; ++a) { | ||||
|     i = g_menuPlayers[id][a] | ||||
|     get_user_name(i,name,31) | ||||
|     get_user_team(i,team,7) | ||||
|  | ||||
|     if ( !is_user_alive(i) || access(i,ADMIN_IMMUNITY) ) { | ||||
|       ++b    | ||||
|       if ( g_coloredMenus ) | ||||
|         len += format(menuBody[len],511-len,"\d%d. %s\R%s^n\w", b,name,team) | ||||
|       else | ||||
|         len += format(menuBody[len],511-len,"#. %s   %s^n",name,team) | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|       keys |= (1<<b) | ||||
|  | ||||
|       len += format(menuBody[len],511-len, g_coloredMenus ?  | ||||
|         "%d. %s\y\R%s^n\w" : "%d. %s   %s^n",++b,name,team) | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   if ( g_menuOption[id] ) | ||||
|     len += format(menuBody[len],511-len,"^n8. %L^n",id,"SLAP_WITH_DMG",g_menuSettings[id] ) | ||||
|   else | ||||
|     len += format(menuBody[len],511-len,"^n8. %L^n",id,"SLAY") | ||||
|  | ||||
|   if (end != g_menuPlayersNum[id]) { | ||||
|     format(menuBody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT") | ||||
|     keys |= MENU_KEY_9 | ||||
|   } | ||||
|   else format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT") | ||||
|  | ||||
|   show_menu(id,keys,menuBody,-1,"Slap/Slay Menu") | ||||
| } | ||||
|  | ||||
| public cmdSlapMenu(id,level,cid) | ||||
| { | ||||
|   if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED | ||||
|  | ||||
|   g_menuOption[id] = 0 | ||||
|   g_menuSettings[id] = 0 | ||||
|  | ||||
|   displaySlapMenu(id,g_menuPosition[id] = 0) | ||||
|  | ||||
|   return PLUGIN_HANDLED  | ||||
| } | ||||
|  | ||||
| /* Kick */ | ||||
|  | ||||
| public actionKickMenu(id,key) | ||||
| { | ||||
|   switch (key) { | ||||
|     case 8: displayKickMenu(id,++g_menuPosition[id]) | ||||
|     case 9: displayKickMenu(id,--g_menuPosition[id]) | ||||
|     default: { | ||||
|       new player = g_menuPlayers[id][g_menuPosition[id] * 8 + key] | ||||
|  | ||||
|       new authid[32],authid2[32], name[32], name2[32] | ||||
|       get_user_authid(id,authid,31) | ||||
|       get_user_authid(player,authid2,31) | ||||
|       get_user_name(id,name,31) | ||||
|       get_user_name(player,name2,31)       | ||||
|       new userid2 = get_user_userid(player) | ||||
|  | ||||
|       log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^"",  | ||||
|           name,get_user_userid(id),authid, name2,userid2,authid2 ) | ||||
|  | ||||
|       switch (get_cvar_num("amx_show_activity")) { | ||||
|         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) | ||||
|       } | ||||
|  | ||||
|       server_cmd("kick #%d",userid2) | ||||
|       server_exec() | ||||
|              | ||||
|       displayKickMenu(id,g_menuPosition[id]) | ||||
|     } | ||||
|   } | ||||
|   return PLUGIN_HANDLED | ||||
| } | ||||
|  | ||||
| displayKickMenu(id,pos) { | ||||
|   if (pos < 0)  return | ||||
|  | ||||
|   get_players(g_menuPlayers[id],g_menuPlayersNum[id]) | ||||
|  | ||||
|   new menuBody[512] | ||||
|   new b = 0 | ||||
|   new i | ||||
|   new name[32] | ||||
|   new start = pos * 8 | ||||
|  | ||||
|   if (start >= g_menuPlayersNum[id]) | ||||
|     start = pos = g_menuPosition[id] = 0 | ||||
|  | ||||
|   new len = format(menuBody,511, g_coloredMenus ? | ||||
|     "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", | ||||
|     id,"KICK_MENU",pos+1,(  g_menuPlayersNum[id] / 8 + ((g_menuPlayersNum[id] % 8) ? 1 : 0 )) ) | ||||
|  | ||||
|   new end = start + 8 | ||||
|   new keys = MENU_KEY_0 | ||||
|  | ||||
|   if (end > g_menuPlayersNum[id]) | ||||
|     end = g_menuPlayersNum[id] | ||||
|  | ||||
|   for (new a = start; a < end; ++a) { | ||||
|     i = g_menuPlayers[id][a] | ||||
|     get_user_name(i,name,31) | ||||
|      | ||||
|     if ( access(i,ADMIN_IMMUNITY) ) { | ||||
|       ++b    | ||||
|       if ( g_coloredMenus ) | ||||
|         len += format(menuBody[len],511-len,"\d%d. %s^n\w",b,name) | ||||
|       else | ||||
|         len += format(menuBody[len],511-len,"#. %s^n",name) | ||||
|  | ||||
|     } | ||||
|     else { | ||||
|       keys |= (1<<b) | ||||
|       len += format(menuBody[len],511-len,"%d. %s^n",++b,name) | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   if (end != g_menuPlayersNum[id]) { | ||||
|     format(menuBody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT") | ||||
|     keys |= MENU_KEY_9 | ||||
|   } | ||||
|   else  format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT") | ||||
|  | ||||
|   show_menu(id,keys,menuBody,-1,"Kick Menu") | ||||
| } | ||||
|  | ||||
| public cmdKickMenu(id,level,cid) { | ||||
|   if (cmd_access(id,level,cid,1)) | ||||
|     displayKickMenu(id,g_menuPosition[id] = 0) | ||||
|  | ||||
|   return PLUGIN_HANDLED  | ||||
| } | ||||
|  | ||||
| /* Team menu */ | ||||
|  | ||||
| public actionTeamMenu(id,key) { | ||||
|   switch (key) { | ||||
|     case 7:{ | ||||
|       g_menuOption[id] = 1 - g_menuOption[id] | ||||
|       displayTeamMenu(id,g_menuPosition[id]) | ||||
|     } | ||||
|     case 8: displayTeamMenu(id,++g_menuPosition[id]) | ||||
|     case 9: displayTeamMenu(id,--g_menuPosition[id]) | ||||
|     default: { | ||||
|       new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key] | ||||
|       new authid[32],authid2[32], name[32], name2[32] | ||||
|       get_user_name(player,name2,31) | ||||
|       get_user_authid(id,authid,31) | ||||
|       get_user_authid(player,authid2,31) | ||||
|       get_user_name(id,name,31) | ||||
|  | ||||
|       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] ? "Allies" : "Axis"  ) | ||||
|  | ||||
|       switch (get_cvar_num("amx_show_activity")) { | ||||
|         case 2: client_print(0,print_chat,"%L",id,"ADMIN_TRANSF_2",name,name2,g_menuOption[id] ? "Allies" : "Axis" ) | ||||
|         case 1: client_print(0,print_chat,"%L",id,"ADMIN_TRANSF_1",name2,g_menuOption[id] ? "Allies" : "Axis" ) | ||||
|       } | ||||
|  | ||||
|       dod_user_kill(player) | ||||
|       engclient_cmd(player,"jointeam", g_menuOption[id] ?  "1" : "2" ) | ||||
|  | ||||
|       displayTeamMenu(id,g_menuPosition[id]) | ||||
|     } | ||||
|   } | ||||
|   return PLUGIN_HANDLED | ||||
| } | ||||
|  | ||||
| displayTeamMenu(id,pos) { | ||||
|   if (pos < 0)  return | ||||
|  | ||||
|   get_players(g_menuPlayers[id],g_menuPlayersNum[id]) | ||||
|  | ||||
|   new menuBody[512] | ||||
|   new b = 0 | ||||
|   new i, iteam | ||||
|   new name[32], team[8] | ||||
|   new start = pos * 7 | ||||
|  | ||||
|   if (start >= g_menuPlayersNum[id]) | ||||
|     start = pos = g_menuPosition[id] = 0 | ||||
|  | ||||
|   new len = format(menuBody,511, g_coloredMenus ?  | ||||
|     "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", | ||||
|     id,"TEAM_MENU",pos+1,(  g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) ) | ||||
|  | ||||
|   new end = start + 7 | ||||
|   new keys = MENU_KEY_0|MENU_KEY_8 | ||||
|  | ||||
|   if (end > g_menuPlayersNum[id]) | ||||
|     end = g_menuPlayersNum[id] | ||||
|  | ||||
|   for (new a = start; a < end; ++a) { | ||||
|     i = g_menuPlayers[id][a] | ||||
|     get_user_name(i,name,31) | ||||
|     iteam = get_user_team(i,team,7) | ||||
|  | ||||
|     if ( (iteam == (g_menuOption[id] ? 1 : 2)) || access(i,ADMIN_IMMUNITY) ) { | ||||
|       ++b    | ||||
|       if ( g_coloredMenus ) | ||||
|         len += format(menuBody[len],511-len,"\d%d. %s\R%s^n\w",b,name,team) | ||||
|       else | ||||
|         len += format(menuBody[len],511-len,"#. %s   %s^n",name,team) | ||||
|     } | ||||
|     else { | ||||
|       keys |= (1<<b) | ||||
|       len += format(menuBody[len],511-len, g_coloredMenus ?  | ||||
|         "%d. %s\y\R%s^n\w" : "%d. %s   %s^n",++b,name,team) | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   len += format(menuBody[len],511-len,"^n8. %L^n",id,"TRANSF_TO",g_menuOption[id] ? "Allies" : "Axis" ) | ||||
|  | ||||
|   if (end != g_menuPlayersNum[id]) | ||||
|   { | ||||
|     format(menuBody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT") | ||||
|     keys |= MENU_KEY_9 | ||||
|   } | ||||
|   else format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT") | ||||
|  | ||||
|   show_menu(id,keys,menuBody,-1,"Team Menu") | ||||
| } | ||||
|  | ||||
| public cmdTeamMenu(id,level,cid) { | ||||
|   if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED | ||||
|  | ||||
|   g_menuOption[id] = 0 | ||||
|  | ||||
|   displayTeamMenu(id,g_menuPosition[id] = 0) | ||||
|  | ||||
|   return PLUGIN_HANDLED  | ||||
| } | ||||
|  | ||||
| /* Client cmds menu */ | ||||
|  | ||||
| public actionClcmdMenu(id,key) { | ||||
|   switch (key) { | ||||
|     case 7:{ | ||||
|       ++g_menuOption[id] | ||||
|       g_menuOption[id] %= g_menuSelectNum[id] | ||||
|       displayClcmdMenu(id,g_menuPosition[id]) | ||||
|     } | ||||
|     case 8: displayClcmdMenu(id,++g_menuPosition[id]) | ||||
|     case 9: displayClcmdMenu(id,--g_menuPosition[id]) | ||||
|     default: { | ||||
|       new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key] | ||||
|       new flags = g_clcmdMisc[g_menuSelect[id][g_menuOption[id]]][1] | ||||
|       if (is_user_connected(player)) { | ||||
|         new command[64], authid[32], name[32], userid[32] | ||||
|         copy(command,63,g_clcmdCmd[g_menuSelect[id][g_menuOption[id]]]) | ||||
|         get_user_authid(player,authid,31) | ||||
|         get_user_name(player,name,31) | ||||
|         num_to_str(get_user_userid(player),userid,31) | ||||
|         replace(command,63,"%userid%",userid) | ||||
|         replace(command,63,"%authid%",authid) | ||||
|         replace(command,63,"%name%",name) | ||||
|         if (flags & 1) { | ||||
|           server_cmd(command) | ||||
|           server_exec() | ||||
|         } | ||||
|         else if (flags & 2) | ||||
|           client_cmd(id,command) | ||||
|         else if (flags & 4) | ||||
|           client_cmd(player,command) | ||||
|       } | ||||
|       if (flags & 8) displayClcmdMenu(id,g_menuPosition[id]) | ||||
|     } | ||||
|   } | ||||
|   return PLUGIN_HANDLED | ||||
| } | ||||
|  | ||||
| displayClcmdMenu(id,pos) { | ||||
|   if (pos < 0) return | ||||
|  | ||||
|   get_players(g_menuPlayers[id],g_menuPlayersNum[id]) | ||||
|  | ||||
|   new menuBody[512] | ||||
|   new b = 0 | ||||
|   new i | ||||
|   new name[32] | ||||
|   new start = pos * 7 | ||||
|  | ||||
|   if (start >= g_menuPlayersNum[id]) | ||||
|     start = pos = g_menuPosition[id] = 0 | ||||
|  | ||||
|   new len = format(menuBody,511, g_coloredMenus ?  | ||||
|     "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", | ||||
|     id, "CL_CMD_MENU", pos+1,(  g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) ) | ||||
|  | ||||
|   new end = start + 7 | ||||
|   new keys = MENU_KEY_0|MENU_KEY_8 | ||||
|  | ||||
|   if (end > g_menuPlayersNum[id]) | ||||
|     end = g_menuPlayersNum[id] | ||||
|  | ||||
|   for (new a = start; a < end; ++a) { | ||||
|     i = g_menuPlayers[id][a] | ||||
|     get_user_name(i,name,31) | ||||
|  | ||||
|     if ( !g_menuSelectNum[id] || access(i,ADMIN_IMMUNITY) ) { | ||||
|       ++b    | ||||
|       if ( g_coloredMenus ) | ||||
|         len += format(menuBody[len],511-len,"\d%d. %s^n\w",b,name) | ||||
|       else | ||||
|         len += format(menuBody[len],511-len,"#. %s^n",name) | ||||
|     } | ||||
|     else { | ||||
|       keys |= (1<<b) | ||||
|       len += format(menuBody[len],511-len,"%d. %s^n",++b,name) | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   if ( g_menuSelectNum[id] ) | ||||
|     len += format(menuBody[len],511-len,"^n8. %s^n", g_clcmdName[g_menuSelect[id][g_menuOption[id]]] ) | ||||
|   else | ||||
|     len += format(menuBody[len],511-len,"^n8. %L^n",id,"NO_CMDS") | ||||
|    | ||||
|   if (end != g_menuPlayersNum[id]) { | ||||
|     format(menuBody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT") | ||||
|     keys |= MENU_KEY_9 | ||||
|   } | ||||
|   else format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT") | ||||
|  | ||||
|   show_menu(id,keys,menuBody,-1,"Client Cmds Menu") | ||||
| } | ||||
|  | ||||
| public cmdClcmdMenu(id,level,cid) { | ||||
|   if (!cmd_access(id,level,cid,1)) | ||||
|     return PLUGIN_HANDLED | ||||
|  | ||||
|   new flags = get_user_flags(id) | ||||
|  | ||||
|   g_menuSelectNum[id] = 0 | ||||
|  | ||||
|   for (new a = 0; a < g_clcmdNum; ++a) | ||||
|     if (g_clcmdMisc[a][0] & flags) | ||||
|       g_menuSelect[id][g_menuSelectNum[id]++] = a | ||||
|  | ||||
|   g_menuOption[id] = 0 | ||||
|  | ||||
|   displayClcmdMenu(id,g_menuPosition[id] = 0) | ||||
|  | ||||
|   return PLUGIN_HANDLED | ||||
| } | ||||
|  | ||||
| load_settings( szFilename[] ) { | ||||
|   if ( !file_exists ( szFilename ) )  | ||||
|     return 0 | ||||
|  | ||||
|   new text[256], szFlags[32], szAccess[32] | ||||
|   new a,  pos = 0 | ||||
|  | ||||
|   while ( g_clcmdNum < MAX_CLCMDS && read_file (szFilename,pos++,text,255,a) ) { | ||||
|     if ( text[0] == ';' ) continue | ||||
|  | ||||
|     if ( parse( text , g_clcmdName[g_clcmdNum] , 31 , | ||||
|       g_clcmdCmd[g_clcmdNum] ,63,szFlags,31,szAccess,31 ) > 3 ) | ||||
|     {      | ||||
|       while ( replace( g_clcmdCmd[ g_clcmdNum ] ,63,"\'","^"") ) { | ||||
|           // do nothing | ||||
|       } | ||||
|  | ||||
|       g_clcmdMisc[ g_clcmdNum ][1] = read_flags ( szFlags ) | ||||
|       g_clcmdMisc[ g_clcmdNum ][0] = read_flags ( szAccess ) | ||||
|       g_clcmdNum++   | ||||
|     } | ||||
|   } | ||||
|   return 1 | ||||
| } | ||||
|  | ||||
| public plugin_modules() | ||||
| { | ||||
| 	require_module("dodx") | ||||
| } | ||||
							
								
								
									
										42
									
								
								plugins/dod/plugins.ini
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										42
									
								
								plugins/dod/plugins.ini
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| ; AMX Mod X plugins | ||||
|  | ||||
| ; Admin Base - Always one has to be activated | ||||
| admin.amxx		; admin base (required for any admin-related) | ||||
| ;admin_sql.amxx		; admin base - SQL version (comment admin.amxx) | ||||
|  | ||||
| ; Basic | ||||
| admincmd.amxx		; basic admin console commands | ||||
| adminhelp.amxx		; help command for admin console commands | ||||
| adminslots.amxx		; slot reservation | ||||
| multilingual.amxx	; Multi-Lingual management | ||||
|  | ||||
| ; Menus | ||||
| menufront.amxx		; front-end for admin menus | ||||
| cmdmenu.amxx		; command menu (speech, settings) | ||||
| plmenu.amxx		; players menu (kick, ban, client cmds.) | ||||
| ;telemenu.amxx		; teleport menu (Fun Module required!) | ||||
| mapsmenu.amxx		; maps menu (vote, changelevel) | ||||
|  | ||||
| ; Chat / Messages | ||||
| adminchat.amxx		; console chat commands | ||||
| ;antiflood.amxx		; prevent clients from chat-flooding the server | ||||
| scrollmsg.amxx		; displays a scrolling message | ||||
| imessage.amxx		; displays information messages | ||||
| adminvote.amxx		; vote commands | ||||
|  | ||||
| ; Map related | ||||
| nextmap.amxx		; displays next map in mapcycle | ||||
| mapchooser.amxx		; allows to vote for next map | ||||
| timeleft.amxx		; displays time left on map | ||||
|  | ||||
| ; Configuration | ||||
| pausecfg.amxx		; allows to pause and unpause some plugins | ||||
| statscfg.amxx		; allows to manage stats plugins via menu and commands | ||||
|  | ||||
| ; DOD X Stats Plugins | ||||
| statscfg.amx		; allows to manage stats plugins via menu and commands | ||||
| stats.amx		; stats on death or round end (DoD X Module required!) | ||||
| ;statssounds.amx	; precache plugin for stats plugins | ||||
| ;stats_logging.amx	; weapons stats logging (DoD X Module required!) | ||||
|  | ||||
| ; Custom - Add 3rd party plugins here | ||||
							
								
								
									
										1055
									
								
								plugins/dod/stats.sma
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1055
									
								
								plugins/dod/stats.sma
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										66
									
								
								plugins/dod/stats_logging.sma
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										66
									
								
								plugins/dod/stats_logging.sma
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| /* AMX Mod script. (Feb 4th, 2003) | ||||
|  * | ||||
|  * Stats Logging | ||||
|  * by JustinHoMi | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #include <amxmodx> | ||||
| #include <dodx> | ||||
|  | ||||
| new g_pingSum[33] | ||||
| new g_pingCount[33] | ||||
|  | ||||
| public plugin_init() | ||||
|   register_plugin("Stats Logging","0.20dod","AMXX Dev Team") | ||||
|  | ||||
| public client_disconnect(id) { | ||||
|   if ( is_user_bot( id ) || !isDSMActive() ) return PLUGIN_CONTINUE | ||||
|   remove_task( id ) | ||||
|   new szTeam[16],szName[32],szAuthid[32], iStats[9], iHits[8], szWeapon[16] | ||||
|   new iUserid = get_user_userid( id ) | ||||
|   get_user_info(id,"team", szTeam, 15 ) | ||||
|   szTeam[0] -= 32; | ||||
|   get_user_name(id, szName ,31 ) | ||||
|   get_user_authid(id, szAuthid , 31 ) | ||||
|   for(new i = 1 ; i < DODMAX_WEAPONS; ++i ) { | ||||
|     if( get_user_wstats( id , i ,iStats , iHits ) )   { | ||||
|       xmod_get_wpnlogname( i , szWeapon , 15 ) | ||||
|       log_message("^"%s<%d><%s><%s>^" triggered ^"weaponstats^" (weapon ^"%s^") (shots ^"%d^") (hits ^"%d^") (kills ^"%d^") (headshots ^"%d^") (tks ^"%d^") (damage ^"%d^") (deaths ^"%d^") (score ^"%d^")", | ||||
|         szName,iUserid,szAuthid,szTeam,szWeapon,iStats[4],iStats[5],iStats[0], iStats[2],iStats[3],iStats[6],iStats[1],iStats[7]) | ||||
|       log_message("^"%s<%d><%s><%s>^" triggered ^"weaponstats2^" (weapon ^"%s^") (head ^"%d^") (chest ^"%d^") (stomach ^"%d^") (leftarm ^"%d^") (rightarm ^"%d^") (leftleg ^"%d^") (rightleg ^"%d^")", | ||||
|         szName,iUserid,szAuthid,szTeam,szWeapon,iHits[1],iHits[2],iHits[3],  iHits[4],iHits[5],iHits[6],iHits[7]) | ||||
|     } | ||||
|   } | ||||
|   new iTime = get_user_time( id , 1 ) | ||||
|   log_message("^"%s<%d><%s><%s>^" triggered ^"time^" (time ^"%d:%02d^")", | ||||
|     szName,iUserid,szAuthid,szTeam, (iTime / 60),  (iTime % 60) ) | ||||
|   log_message("^"%s<%d><%s><%s>^" triggered ^"latency^" (ping ^"%d^")", | ||||
|     szName,iUserid,szAuthid,szTeam, (g_pingSum[id] / ( g_pingCount[id] ? g_pingCount[id] : 1 ) ) ) | ||||
|   return PLUGIN_CONTINUE | ||||
| } | ||||
|  | ||||
| public client_putinserver(id) { | ||||
|   if ( !is_user_bot( id ) ){ | ||||
|     g_pingSum[ id ] = g_pingCount[ id ] = 0 | ||||
|     set_task( 19.5 , "getPing" , id , "" , 0 , "b" ) | ||||
|   } | ||||
| } | ||||
|  | ||||
| public getPing( id ) { | ||||
|   new iPing, iLoss | ||||
|   get_user_ping( id , iPing, iLoss) | ||||
|   g_pingSum[ id ] += iPing | ||||
|   ++g_pingCount[ id ] | ||||
| } | ||||
|  | ||||
| isDSMActive(){ | ||||
|   if ( get_cvar_num("dodstats_pause") )  | ||||
|     return 0 | ||||
|   return 1 | ||||
| } | ||||
|  | ||||
| public plugin_modules() | ||||
| { | ||||
| 	require_module("dodx") | ||||
| } | ||||
							
								
								
									
										29
									
								
								plugins/dod/statssounds.sma
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										29
									
								
								plugins/dod/statssounds.sma
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| /* | ||||
| * Plugin for sounds precache | ||||
| */ | ||||
|  | ||||
| #include <amxmodx> | ||||
|  | ||||
| public plugin_precache(){ | ||||
| 	precache_sound( "misc/impressive.wav") | ||||
| 	precache_sound( "misc/headshot.wav") | ||||
| 	precache_sound( "misc/multikill.wav") | ||||
| 	precache_sound( "misc/doublekill.wav") | ||||
| 	precache_sound( "misc/godlike.wav") | ||||
| 	precache_sound( "misc/ultrakill.wav") | ||||
| 	precache_sound( "misc/killingspree.wav") | ||||
| 	precache_sound( "misc/rampage.wav") | ||||
| 	precache_sound( "misc/unstoppable.wav") | ||||
| 	precache_sound( "misc/monsterkill.wav") | ||||
| 	precache_sound( "misc/humiliation.wav") | ||||
|  | ||||
| 	precache_sound( "misc/takenlead.wav" )  | ||||
| 	precache_sound( "misc/tiedlead.wav" )  | ||||
| 	precache_sound( "misc/lostlead.wav" )  | ||||
|  | ||||
| 	return PLUGIN_CONTINUE | ||||
| } | ||||
|  | ||||
| public plugin_init() { | ||||
|   register_plugin("DoD Sounds Precache","0.20dod","SidLuke") | ||||
| } | ||||
		Reference in New Issue
	
	Block a user