hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.16. 04:57



Jelenlévő felhasználók

Jelenleg 331 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 329 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [4 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Amx Mod Menu [Kiírása] színesen
HozzászólásElküldve:2013.07.22. 00:25 
Offline
Felfüggesztve
Avatar

Csatlakozott:2013.06.09. 18:47
Hozzászólások:2004
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
Üdv! A kérdésem az lenne, hogy lehet valahogy színesíteni azt hogy pl ha valakit bannolok, akkor:

Kód:
ADMIN_KICK_1 = [b]ADMIN: %s kirugva[/b]
ADMIN_KICK_2 = [b]ADMIN %s: %s kirugva[/b]
IP_REMOVED = Ip "%s" eltavolitva a ban-listarol
AUTHID_REMOVED = Authid "%s" eltavolitva a ban-listarol
ADMIN_UNBAN_1 = [b]ADMIN: %s ban visszavonasa[/b]
ADMIN_UNBAN_2 = [b]ADMIN %s: %s ban visszavonasa[/b]
ADMIN_ADDBAN_1 = [b]ADMIN: ban %s[/b]
ADMIN_ADDBAN_2 = [b]ADMIN %s: ban %s[/b]
BANNED = [b]banolva[/b]
REASON = [b]ok[/b]
FOR_MIN = [b]%s percre[/b]
PERM = [b]orokre[/b]
CLIENT_BANNED = felhasznalo "%s" banolva
ADMIN_SLAY_1 = ADMIN: %s megolve
ADMIN_SLAY_2 = ADMIN %s: %s megolve
CLIENT_SLAYED = Client "%s" megolve
ADMIN_SLAP_1 = ADMIN: %s megutve %d sebzessel
ADMIN_SLAP_2 = ADMIN %s: megutve %s %d sebzessel
CLIENT_SLAPED = Client "%s" megutve %d sebzessel
MAP_NOT_FOUND = Palya ezen a neven nem talalhato vagy nem megfelelo
ADMIN_MAP_1 = ADMIN: palyavaltas %s
ADMIN_MAP_2 = ADMIN %s: palyavaltas %s
NO_MORE_CVARS = Nem lehet tobb cvars hozaadni az rcon hozzafereshez!
UNKNOWN_CVAR = Ismeretlen cvar: %s
CVAR_NO_ACC = Nincs engedelyed a cvar-hoz
CVAR_IS = Cvar "%s" is "%s"
PROTECTED = PROTECTED
SET_CVAR_TO = %s beallitva cvar %s to "%s"
CVAR_CHANGED = Cvar "%s" atalitva "%s"-ra.
LOADED_PLUGINS = Aktualis betoltott pluginok
NAME = nev
VERSION = verzio
AUTHOR = keszito
FILE = file
STATUS = allas
PLUGINS_RUN = %d plugin osszesen, %d fut
LOADED_MODULES = Aktualis betoltott pluginok
NUM_MODULES = %d mod
FILE_NOT_FOUND = File "%s" nem talalhato
ADMIN_CONF_1 = ADMIN: config vegrehajtasa %s
ADMIN_CONF_2 = ADMIN %s: config vegrehajtasa %s
PAUSED = Pillanat alj
UNPAUSED = Pillanat alj vege
UNABLE_PAUSE = A szerveren nem lehet megallitani a jatekot. Valodi jatekosok kellenek.
SERVER_PROC = Server proceed %s
PAUSING = Pillanat alj
UNPAUSING = Pillanat alj vege
PAUSE = Pillanat alj
UNPAUSE = Pillanat alj vege
COM_SENT_SERVER = Parancssor "%s" elkuldve a szerver konzolba
CLIENTS_ON_SERVER = Jatekosok a szerveren
IMMU = imm
RESERV = res
ACCESS = engedely
TOTAL_NUM = Osszesen %d
SKIP_MATCH = kihagy "%s" (matching "%s")
SKIP_IMM = kihagy "%s" (immunity)
KICK_PL = Kirug "%s"
YOU_DROPPED = Le lettel csatlakoztatva, mert az admin csak bizonyos csapat tagjait hagyta fent
KICKED_CLIENTS = kirugva %d clients
ADMIN_LEAVE_1 = ADMIN: leave %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: leave %s %s %s %s
ADMIN_NICK_1 = ADMIN: nevvaltas %s-rol "%s"-ra
ADMIN_NICK_2 = ADMIN %s: nevvaltas %s rol "%s"ra
CHANGED_NICK = [b]Nevvaltas %s rol "%s"ra[/b]

Ezeket a kiírásokat valahogy nem lehet színesíteni?
Bármilyen ötletet elfogadok!
Valahogy biztos lehet színesíteni, csak a kérdés hogy hogy! :)
***************************************************************
Nem akarok új témát nyitni, ezért ide írom!

Hogy lehet át írni azt a menüt, amikor pl bebindelem hogy: bind "p" amxmodmenu és előjön egy menü, és ugye ki van írva hogy Amxmod Menu SÁRGÁVAL!
Azt hol tudom át írni?

Előre is köszi válaszotokat!

Üdv.
Anonymous1337

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Amx Mod Menu [Kiírása] színesen
HozzászólásElküldve:2013.07.22. 02:04 
Offline
Őskövület
Avatar

Csatlakozott:2011.12.28. 00:35
Hozzászólások:2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Anonymous1337 írta:
Üdv! A kérdésem az lenne, hogy lehet valahogy színesíteni azt hogy pl ha valakit bannolok, akkor:

Kód:
ADMIN_KICK_1 = [b]ADMIN: %s kirugva[/b]
ADMIN_KICK_2 = [b]ADMIN %s: %s kirugva[/b]
IP_REMOVED = Ip "%s" eltavolitva a ban-listarol
AUTHID_REMOVED = Authid "%s" eltavolitva a ban-listarol
ADMIN_UNBAN_1 = [b]ADMIN: %s ban visszavonasa[/b]
ADMIN_UNBAN_2 = [b]ADMIN %s: %s ban visszavonasa[/b]
ADMIN_ADDBAN_1 = [b]ADMIN: ban %s[/b]
ADMIN_ADDBAN_2 = [b]ADMIN %s: ban %s[/b]
BANNED = [b]banolva[/b]
REASON = [b]ok[/b]
FOR_MIN = [b]%s percre[/b]
PERM = [b]orokre[/b]
CLIENT_BANNED = felhasznalo "%s" banolva
ADMIN_SLAY_1 = ADMIN: %s megolve
ADMIN_SLAY_2 = ADMIN %s: %s megolve
CLIENT_SLAYED = Client "%s" megolve
ADMIN_SLAP_1 = ADMIN: %s megutve %d sebzessel
ADMIN_SLAP_2 = ADMIN %s: megutve %s %d sebzessel
CLIENT_SLAPED = Client "%s" megutve %d sebzessel
MAP_NOT_FOUND = Palya ezen a neven nem talalhato vagy nem megfelelo
ADMIN_MAP_1 = ADMIN: palyavaltas %s
ADMIN_MAP_2 = ADMIN %s: palyavaltas %s
NO_MORE_CVARS = Nem lehet tobb cvars hozaadni az rcon hozzafereshez!
UNKNOWN_CVAR = Ismeretlen cvar: %s
CVAR_NO_ACC = Nincs engedelyed a cvar-hoz
CVAR_IS = Cvar "%s" is "%s"
PROTECTED = PROTECTED
SET_CVAR_TO = %s beallitva cvar %s to "%s"
CVAR_CHANGED = Cvar "%s" atalitva "%s"-ra.
LOADED_PLUGINS = Aktualis betoltott pluginok
NAME = nev
VERSION = verzio
AUTHOR = keszito
FILE = file
STATUS = allas
PLUGINS_RUN = %d plugin osszesen, %d fut
LOADED_MODULES = Aktualis betoltott pluginok
NUM_MODULES = %d mod
FILE_NOT_FOUND = File "%s" nem talalhato
ADMIN_CONF_1 = ADMIN: config vegrehajtasa %s
ADMIN_CONF_2 = ADMIN %s: config vegrehajtasa %s
PAUSED = Pillanat alj
UNPAUSED = Pillanat alj vege
UNABLE_PAUSE = A szerveren nem lehet megallitani a jatekot. Valodi jatekosok kellenek.
SERVER_PROC = Server proceed %s
PAUSING = Pillanat alj
UNPAUSING = Pillanat alj vege
PAUSE = Pillanat alj
UNPAUSE = Pillanat alj vege
COM_SENT_SERVER = Parancssor "%s" elkuldve a szerver konzolba
CLIENTS_ON_SERVER = Jatekosok a szerveren
IMMU = imm
RESERV = res
ACCESS = engedely
TOTAL_NUM = Osszesen %d
SKIP_MATCH = kihagy "%s" (matching "%s")
SKIP_IMM = kihagy "%s" (immunity)
KICK_PL = Kirug "%s"
YOU_DROPPED = Le lettel csatlakoztatva, mert az admin csak bizonyos csapat tagjait hagyta fent
KICKED_CLIENTS = kirugva %d clients
ADMIN_LEAVE_1 = ADMIN: leave %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: leave %s %s %s %s
ADMIN_NICK_1 = ADMIN: nevvaltas %s-rol "%s"-ra
ADMIN_NICK_2 = ADMIN %s: nevvaltas %s rol "%s"ra
CHANGED_NICK = [b]Nevvaltas %s rol "%s"ra[/b]

Ezeket a kiírásokat valahogy nem lehet színesíteni?
Bármilyen ötletet elfogadok!
Valahogy biztos lehet színesíteni, csak a kérdés hogy hogy! :)
***************************************************************
Nem akarok új témát nyitni, ezért ide írom!

Hogy lehet át írni azt a menüt, amikor pl bebindelem hogy: bind "p" amxmodmenu és előjön egy menü, és ugye ki van írva hogy Amxmod Menu SÁRGÁVAL!
Azt hol tudom át írni?

Előre is köszi válaszotokat!

Üdv.
Anonymous1337


Forrás kódot adj és meg színesetem a bannolás meg ezeket.

A másodiknál meg meg nyisd meg a langot és írd elé amit színezni akarsz és működni fog.
Én is úgy használtam régen és csak a színét írtam elé.

Színe:
\r = piros
\y = sárga
\w = fehér
\d = szürke

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Amx Mod Menu [Kiírása] színesen
HozzászólásElküldve:2013.07.22. 08:14 
Offline
Developer
Avatar

Csatlakozott:2011.06.01. 21:11
Hozzászólások:7966
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 537 alkalommal
A chat színesítés:

Megnyitod a forráskódot, amelyikben ezek a langok vannak.

Beleilleszted ezt a stockot a kód aljára: http://hlmod.hu/viewtopic.php?f=14&t=4800

Aztán ahol használva vannak a langot, client_printekben, annak az elejét átírod print_color-ra, egy példa:

SMA Forráskód: [ Mindet kijelol ]
  1. client_print(id, print_chat, "%L", "AMXMODX2", name)


--->

SMA Forráskód: [ Mindet kijelol ]
  1. print_color(id, "%L", "AMXMODX2", name)

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Amx Mod Menu [Kiírása] színesen
HozzászólásElküldve:2013.07.22. 08:35 
Offline
Felfüggesztve
Avatar

Csatlakozott:2013.06.09. 18:47
Hozzászólások:2004
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 220 alkalommal
pixxa112 írta:
Anonymous1337 írta:
Üdv! A kérdésem az lenne, hogy lehet valahogy színesíteni azt hogy pl ha valakit bannolok, akkor:

Kód:
ADMIN_KICK_1 = [b]ADMIN: %s kirugva[/b]
ADMIN_KICK_2 = [b]ADMIN %s: %s kirugva[/b]
IP_REMOVED = Ip "%s" eltavolitva a ban-listarol
AUTHID_REMOVED = Authid "%s" eltavolitva a ban-listarol
ADMIN_UNBAN_1 = [b]ADMIN: %s ban visszavonasa[/b]
ADMIN_UNBAN_2 = [b]ADMIN %s: %s ban visszavonasa[/b]
ADMIN_ADDBAN_1 = [b]ADMIN: ban %s[/b]
ADMIN_ADDBAN_2 = [b]ADMIN %s: ban %s[/b]
BANNED = [b]banolva[/b]
REASON = [b]ok[/b]
FOR_MIN = [b]%s percre[/b]
PERM = [b]orokre[/b]
CLIENT_BANNED = felhasznalo "%s" banolva
ADMIN_SLAY_1 = ADMIN: %s megolve
ADMIN_SLAY_2 = ADMIN %s: %s megolve
CLIENT_SLAYED = Client "%s" megolve
ADMIN_SLAP_1 = ADMIN: %s megutve %d sebzessel
ADMIN_SLAP_2 = ADMIN %s: megutve %s %d sebzessel
CLIENT_SLAPED = Client "%s" megutve %d sebzessel
MAP_NOT_FOUND = Palya ezen a neven nem talalhato vagy nem megfelelo
ADMIN_MAP_1 = ADMIN: palyavaltas %s
ADMIN_MAP_2 = ADMIN %s: palyavaltas %s
NO_MORE_CVARS = Nem lehet tobb cvars hozaadni az rcon hozzafereshez!
UNKNOWN_CVAR = Ismeretlen cvar: %s
CVAR_NO_ACC = Nincs engedelyed a cvar-hoz
CVAR_IS = Cvar "%s" is "%s"
PROTECTED = PROTECTED
SET_CVAR_TO = %s beallitva cvar %s to "%s"
CVAR_CHANGED = Cvar "%s" atalitva "%s"-ra.
LOADED_PLUGINS = Aktualis betoltott pluginok
NAME = nev
VERSION = verzio
AUTHOR = keszito
FILE = file
STATUS = allas
PLUGINS_RUN = %d plugin osszesen, %d fut
LOADED_MODULES = Aktualis betoltott pluginok
NUM_MODULES = %d mod
FILE_NOT_FOUND = File "%s" nem talalhato
ADMIN_CONF_1 = ADMIN: config vegrehajtasa %s
ADMIN_CONF_2 = ADMIN %s: config vegrehajtasa %s
PAUSED = Pillanat alj
UNPAUSED = Pillanat alj vege
UNABLE_PAUSE = A szerveren nem lehet megallitani a jatekot. Valodi jatekosok kellenek.
SERVER_PROC = Server proceed %s
PAUSING = Pillanat alj
UNPAUSING = Pillanat alj vege
PAUSE = Pillanat alj
UNPAUSE = Pillanat alj vege
COM_SENT_SERVER = Parancssor "%s" elkuldve a szerver konzolba
CLIENTS_ON_SERVER = Jatekosok a szerveren
IMMU = imm
RESERV = res
ACCESS = engedely
TOTAL_NUM = Osszesen %d
SKIP_MATCH = kihagy "%s" (matching "%s")
SKIP_IMM = kihagy "%s" (immunity)
KICK_PL = Kirug "%s"
YOU_DROPPED = Le lettel csatlakoztatva, mert az admin csak bizonyos csapat tagjait hagyta fent
KICKED_CLIENTS = kirugva %d clients
ADMIN_LEAVE_1 = ADMIN: leave %s %s %s %s
ADMIN_LEAVE_2 = ADMIN %s: leave %s %s %s %s
ADMIN_NICK_1 = ADMIN: nevvaltas %s-rol "%s"-ra
ADMIN_NICK_2 = ADMIN %s: nevvaltas %s rol "%s"ra
CHANGED_NICK = [b]Nevvaltas %s rol "%s"ra[/b]

Ezeket a kiírásokat valahogy nem lehet színesíteni?
Bármilyen ötletet elfogadok!
Valahogy biztos lehet színesíteni, csak a kérdés hogy hogy! :)
***************************************************************
Nem akarok új témát nyitni, ezért ide írom!

Hogy lehet át írni azt a menüt, amikor pl bebindelem hogy: bind "p" amxmodmenu és előjön egy menü, és ugye ki van írva hogy Amxmod Menu SÁRGÁVAL!
Azt hol tudom át írni?

Előre is köszi válaszotokat!

Üdv.
Anonymous1337


Forrás kódot adj és meg színesetem a bannolás meg ezeket.

A másodiknál meg meg nyisd meg a langot és írd elé amit színezni akarsz és működni fog.
Én is úgy használtam régen és csak a színét írtam elé.

Színe:
\r = piros
\y = sárga
\w = fehér
\d = szürke


Itt van(elvileg) az admincmd.sma
SMA Forráskód: [ Mindet kijelol ]
  1. /* AMX Mod X
  2. * Admin Commands Plugin
  3. *
  4. * by the AMX Mod X Development Team
  5. * originally developed by OLO
  6. *
  7. * This file is part of AMX Mod X.
  8. *
  9. *
  10. * This program is free software; you can redistribute it and/or modify it
  11. * under the terms of the GNU General Public License as published by the
  12. * Free Software Foundation; either version 2 of the License, or (at
  13. * your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful, but
  16. * WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  18. * General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public License
  21. * along with this program; if not, write to the Free Software Foundation,
  22. * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  23. *
  24. * In addition, as a special exception, the author gives permission to
  25. * link the code of this program with the Half-Life Game Engine ("HL
  26. * Engine") and Modified Game Libraries ("MODs") developed by Valve,
  27. * L.L.C ("Valve"). You must obey the GNU General Public License in all
  28. * respects for all of the code used other than the HL Engine and MODs
  29. * from Valve. If you modify this file, you may extend this exception
  30. * to your version of the file, but you are not obligated to do so. If
  31. * you do not wish to do so, delete this exception statement from your
  32. * version.
  33. */
  34.  
  35. #include <amxmodx>
  36. #include <amxmisc>
  37.  
  38. // This is not a dynamic array because it would be bad for 24/7 map servers.
  39. #define OLD_CONNECTION_QUEUE 10
  40.  
  41. new g_pauseCon
  42. new Float:g_pausAble
  43. new bool:g_Paused
  44. new bool:g_PauseAllowed = false
  45. new g_addCvar[] = "amx_cvar add %s"
  46.  
  47. new pausable;
  48. new rcon_password;
  49.  
  50. // Old connection queue
  51. new g_Names[OLD_CONNECTION_QUEUE][32];
  52. new g_SteamIDs[OLD_CONNECTION_QUEUE][32];
  53. new g_IPs[OLD_CONNECTION_QUEUE][32];
  54. new g_Access[OLD_CONNECTION_QUEUE];
  55. new g_Tracker;
  56. new g_Size;
  57.  
  58. stock InsertInfo(id)
  59. {
  60.  
  61. // Scan to see if this entry is the last entry in the list
  62. // If it is, then update the name and access
  63. // If it is not, then insert it again.
  64.  
  65. if (g_Size > 0)
  66. {
  67. new ip[32]
  68. new auth[32];
  69.  
  70. get_user_authid(id, auth, charsmax(auth));
  71. get_user_ip(id, ip, charsmax(ip), 1/*no port*/);
  72.  
  73. new last = 0;
  74.  
  75. if (g_Size < sizeof(g_SteamIDs))
  76. {
  77. last = g_Size - 1;
  78. }
  79. else
  80. {
  81. last = g_Tracker - 1;
  82.  
  83. if (last < 0)
  84. {
  85. last = g_Size - 1;
  86. }
  87. }
  88.  
  89. if (equal(auth, g_SteamIDs[last]) &&
  90. equal(ip, g_IPs[last])) // need to check ip too, or all the nosteams will while it doesn't work with their illegitimate server
  91. {
  92. get_user_name(id, g_Names[last], charsmax(g_Names[]));
  93. g_Access[last] = get_user_flags(id);
  94.  
  95. return;
  96. }
  97. }
  98.  
  99. // Need to insert the entry
  100.  
  101. new target = 0; // the slot to save the info at
  102.  
  103. // Queue is not yet full
  104. if (g_Size < sizeof(g_SteamIDs))
  105. {
  106. target = g_Size;
  107.  
  108. ++g_Size;
  109.  
  110. }
  111. else
  112. {
  113. target = g_Tracker;
  114.  
  115. ++g_Tracker;
  116. // If we reached the end of the array, then move to the front
  117. if (g_Tracker == sizeof(g_SteamIDs))
  118. {
  119. g_Tracker = 0;
  120. }
  121. }
  122.  
  123. get_user_authid(id, g_SteamIDs[target], charsmax(g_SteamIDs[]));
  124. get_user_name(id, g_Names[target], charsmax(g_Names[]));
  125. get_user_ip(id, g_IPs[target], charsmax(g_IPs[]), 1/*no port*/);
  126.  
  127. g_Access[target] = get_user_flags(id);
  128.  
  129. }
  130. stock GetInfo(i, name[], namesize, auth[], authsize, ip[], ipsize, &access)
  131. {
  132. if (i >= g_Size)
  133. {
  134. abort(AMX_ERR_NATIVE, "GetInfo: Out of bounds (%d:%d)", i, g_Size);
  135. }
  136.  
  137. new target = (g_Tracker + i) % sizeof(g_SteamIDs);
  138.  
  139. copy(name, namesize, g_Names[target]);
  140. copy(auth, authsize, g_SteamIDs[target]);
  141. copy(ip, ipsize, g_IPs[target]);
  142. access = g_Access[target];
  143.  
  144. }
  145. public client_disconnect(id)
  146. {
  147. if (!is_user_bot(id))
  148. {
  149. InsertInfo(id);
  150. }
  151. }
  152.  
  153. public plugin_init()
  154. {
  155. register_plugin("Admin Commands", AMXX_VERSION_STR, "AMXX Dev Team")
  156.  
  157. register_dictionary("admincmd.txt")
  158. register_dictionary("common.txt")
  159. register_dictionary("adminhelp.txt")
  160.  
  161.  
  162. register_concmd("amx_kick", "cmdKick", ADMIN_KICK, "<name or #userid> [reason]")
  163. register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<name or #userid> <minutes> [reason]")
  164. register_concmd("amx_banip", "cmdBanIP", ADMIN_BAN, "<name or #userid> <minutes> [reason]")
  165. register_concmd("amx_addban", "cmdAddBan", ADMIN_BAN, "<^"authid^" or ip> <minutes> [reason]")
  166. register_concmd("amx_unban", "cmdUnban", ADMIN_BAN, "<^"authid^" or ip>")
  167. register_concmd("amx_slay", "cmdSlay", ADMIN_SLAY, "<name or #userid>")
  168. register_concmd("amx_slap", "cmdSlap", ADMIN_SLAY, "<name or #userid> [power]")
  169. register_concmd("amx_leave", "cmdLeave", ADMIN_KICK, "<tag> [tag] [tag] [tag]")
  170. register_concmd("amx_pause", "cmdPause", ADMIN_CVAR, "- pause or unpause the game")
  171. register_concmd("amx_who", "cmdWho", ADMIN_ADMIN, "- displays who is on server")
  172. register_concmd("amx_cvar", "cmdCvar", ADMIN_CVAR, "<cvar> [value]")
  173. register_concmd("amx_plugins", "cmdPlugins", ADMIN_ADMIN)
  174. register_concmd("amx_modules", "cmdModules", ADMIN_ADMIN)
  175. register_concmd("amx_map", "cmdMap", ADMIN_MAP, "<mapname>")
  176. register_concmd("amx_cfg", "cmdCfg", ADMIN_CFG, "<filename>")
  177. register_concmd("amx_nick", "cmdNick", ADMIN_SLAY, "<name or #userid> <new nick>")
  178. register_concmd("amx_last", "cmdLast", ADMIN_BAN, "- list the last few disconnected clients info");
  179. register_clcmd("amx_rcon", "cmdRcon", ADMIN_RCON, "<command line>")
  180. register_clcmd("amx_showrcon", "cmdShowRcon", ADMIN_RCON, "<command line>")
  181. register_clcmd("pauseAck", "cmdLBack")
  182.  
  183.  
  184. rcon_password=get_cvar_pointer("rcon_password");
  185. pausable=get_cvar_pointer("pausable");
  186.  
  187.  
  188. }
  189.  
  190. public plugin_cfg()
  191. {
  192. // Cvars which can be changed only with rcon access
  193. server_cmd(g_addCvar, "rcon_password")
  194. server_cmd(g_addCvar, "amx_show_activity")
  195. server_cmd(g_addCvar, "amx_mode")
  196. server_cmd(g_addCvar, "amx_password_field")
  197. server_cmd(g_addCvar, "amx_default_access")
  198. server_cmd(g_addCvar, "amx_reserved_slots")
  199. server_cmd(g_addCvar, "amx_reservation")
  200. server_cmd(g_addCvar, "amx_sql_table");
  201. server_cmd(g_addCvar, "amx_sql_host");
  202. server_cmd(g_addCvar, "amx_sql_user");
  203. server_cmd(g_addCvar, "amx_sql_pass");
  204. server_cmd(g_addCvar, "amx_sql_db");
  205. server_cmd(g_addCvar, "amx_sql_type");
  206.  
  207. }
  208.  
  209. public cmdKick(id, level, cid)
  210. {
  211. if (!cmd_access(id, level, cid, 2))
  212. return PLUGIN_HANDLED
  213.  
  214. new arg[32]
  215. read_argv(1, arg, 31)
  216. new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF)
  217.  
  218. if (!player)
  219. return PLUGIN_HANDLED
  220.  
  221. new authid[32], authid2[32], name2[32], name[32], userid2, reason[32]
  222.  
  223. get_user_authid(id, authid, 31)
  224. get_user_authid(player, authid2, 31)
  225. get_user_name(player, name2, 31)
  226. get_user_name(id, name, 31)
  227. userid2 = get_user_userid(player)
  228. read_argv(2, reason, 31)
  229. remove_quotes(reason)
  230.  
  231. log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^" (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, reason)
  232.  
  233. show_activity_key("ADMIN_KICK_1", "ADMIN_KICK_2", name, name2);
  234.  
  235. if (is_user_bot(player))
  236. server_cmd("kick #%d", userid2)
  237. else
  238. {
  239. if (reason[0])
  240. server_cmd("kick #%d ^"%s^"", userid2, reason)
  241. else
  242. server_cmd("kick #%d", userid2)
  243. }
  244.  
  245. console_print(id, "[AMXX] Client ^"%s^" kicked", name2)
  246.  
  247. return PLUGIN_HANDLED
  248. }
  249.  
  250. public cmdUnban(id, level, cid)
  251. {
  252. if (!cmd_access(id, level, cid, 2))
  253. return PLUGIN_HANDLED
  254.  
  255. new arg[32], authid[32], name[32]
  256.  
  257. read_argv(1, arg, 31)
  258.  
  259. if (contain(arg, ".") != -1)
  260. {
  261. server_cmd("removeip ^"%s^";writeip", arg)
  262. console_print(id, "[AMXX] %L", id, "IP_REMOVED", arg)
  263. } else {
  264. server_cmd("removeid %s;writeid", arg)
  265. console_print(id, "[AMXX] %L", id, "AUTHID_REMOVED", arg)
  266. }
  267.  
  268. get_user_name(id, name, 31)
  269.  
  270. show_activity_key("ADMIN_UNBAN_1", "ADMIN_UNBAN_2", name, arg);
  271.  
  272. get_user_authid(id, authid, 31)
  273. log_amx("Cmd: ^"%s<%d><%s><>^" unban ^"%s^"", name, get_user_userid(id), authid, arg)
  274.  
  275. return PLUGIN_HANDLED
  276. }
  277.  
  278. /* amx_addban is a special command now.
  279.  * If a user with rcon uses it, it bans the user. No questions asked.
  280.  * If a user without rcon but with ADMIN_BAN uses it, it will scan the old
  281.  * connection queue, and if it finds the info for a player in it, it will
  282.  * check their old access. If they have immunity, it will not ban.
  283.  * If they do not have immunity, it will ban. If the user is not found,
  284.  * it will refuse to ban the target.
  285.  */
  286.  
  287. public cmdAddBan(id, level, cid)
  288. {
  289. if (!cmd_access(id, level, cid, 3, true)) // check for ADMIN_BAN access
  290. {
  291. if (get_user_flags(id) & level) // Getting here means they didn't input enough args
  292. {
  293. return PLUGIN_HANDLED;
  294. }
  295. if (!cmd_access(id, ADMIN_RCON, cid, 3)) // If somehow they have ADMIN_RCON without ADMIN_BAN, continue
  296. {
  297. return PLUGIN_HANDLED;
  298. }
  299. }
  300.  
  301. new arg[32], authid[32], name[32], minutes[32], reason[32]
  302.  
  303. read_argv(1, arg, 31)
  304. read_argv(2, minutes, 31)
  305. read_argv(3, reason, 31)
  306.  
  307.  
  308. if (!(get_user_flags(id) & ADMIN_RCON))
  309. {
  310. new bool:canban = false;
  311. new bool:isip = false;
  312. // Limited access to this command
  313. if (equali(arg, "STEAM_ID_PENDING") ||
  314. equali(arg, "STEAM_ID_LAN") ||
  315. equali(arg, "HLTV") ||
  316. equali(arg, "4294967295") ||
  317. equali(arg, "VALVE_ID_LAN") ||
  318. equali(arg, "VALVE_ID_PENDING"))
  319. {
  320. // Hopefully we never get here, so ML shouldn't be needed
  321. console_print(id, "Cannot ban %s", arg);
  322. return PLUGIN_HANDLED;
  323. }
  324.  
  325. if (contain(arg, ".") != -1)
  326. {
  327. isip = true;
  328. }
  329.  
  330. // Scan the disconnection queue
  331. if (isip)
  332. {
  333. new IP[32];
  334. new Name[32];
  335. new dummy[1];
  336. new Access;
  337. for (new i = 0; i < g_Size; i++)
  338. {
  339. GetInfo(i, Name, charsmax(Name), dummy, 0, IP, charsmax(IP), Access);
  340.  
  341. if (equal(IP, arg))
  342. {
  343. if (Access & ADMIN_IMMUNITY)
  344. {
  345. console_print(id, "[AMXX] %s : %L", IP, id, "CLIENT_IMM", Name);
  346.  
  347. return PLUGIN_HANDLED;
  348. }
  349. // User did not have immunity
  350. canban = true;
  351. }
  352. }
  353. }
  354. else
  355. {
  356. new Auth[32];
  357. new Name[32];
  358. new dummy[1];
  359. new Access;
  360. for (new i = 0; i < g_Size; i++)
  361. {
  362. GetInfo(i, Name, charsmax(Name), Auth, charsmax(Auth), dummy, 0, Access);
  363.  
  364. if (equal(Auth, arg))
  365. {
  366. if (Access & ADMIN_IMMUNITY)
  367. {
  368. console_print(id, "[AMXX] %s : %L", Auth, id, "CLIENT_IMM", Name);
  369.  
  370. return PLUGIN_HANDLED;
  371. }
  372. // User did not have immunity
  373. canban = true;
  374. }
  375. }
  376. }
  377.  
  378. if (!canban)
  379. {
  380. console_print(id, "[AMXX] You may only ban recently disconnected clients. Use ^"amx_last^" to view.");
  381.  
  382. return PLUGIN_HANDLED;
  383. }
  384.  
  385. }
  386.  
  387. // User has access to ban their target
  388. if (contain(arg, ".") != -1)
  389. {
  390. server_cmd("addip ^"%s^" ^"%s^";wait;writeip", minutes, arg)
  391. console_print(id, "[AMXX] Ip ^"%s^" added to ban list", arg)
  392. } else {
  393. server_cmd("banid %s %s;wait;writeid", minutes, arg)
  394. console_print(id, "[AMXX] Authid ^"%s^" added to ban list", arg)
  395. }
  396.  
  397. get_user_name(id, name, 31)
  398.  
  399. show_activity_key("ADMIN_ADDBAN_1", "ADMIN_ADDBAN_2", name, arg);
  400.  
  401. get_user_authid(id, authid, 31)
  402. log_amx("Cmd: ^"%s<%d><%s><>^" ban ^"%s^" (minutes ^"%s^") (reason ^"%s^")", name, get_user_userid(id), authid, arg, minutes, reason)
  403.  
  404. return PLUGIN_HANDLED
  405. }
  406.  
  407. public cmdBan(id, level, cid)
  408. {
  409. if (!cmd_access(id, level, cid, 3))
  410. return PLUGIN_HANDLED
  411.  
  412. new target[32], minutes[8], reason[64]
  413.  
  414. read_argv(1, target, 31)
  415. read_argv(2, minutes, 7)
  416. read_argv(3, reason, 63)
  417.  
  418. new player = cmd_target(id, target, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
  419.  
  420. if (!player)
  421. return PLUGIN_HANDLED
  422.  
  423. new authid[32], name2[32], authid2[32], name[32]
  424. new userid2 = get_user_userid(player)
  425.  
  426. get_user_authid(player, authid2, 31)
  427. get_user_authid(id, authid, 31)
  428. get_user_name(player, name2, 31)
  429. get_user_name(id, name, 31)
  430.  
  431. log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%s^") (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, minutes, reason)
  432.  
  433. new temp[64], banned[16], nNum = str_to_num(minutes)
  434. if (nNum)
  435. format(temp, 63, "%L", player, "FOR_MIN", minutes)
  436. else
  437. format(temp, 63, "%L", player, "PERM")
  438.  
  439. format(banned, 15, "%L", player, "BANNED")
  440.  
  441. if (reason[0])
  442. server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
  443. else
  444. server_cmd("kick #%d ^"%s %s^";wait;banid %s %s;wait;writeid", userid2, banned, temp, minutes, authid2)
  445.  
  446.  
  447. // Display the message to all clients
  448.  
  449. new msg[256];
  450. new len;
  451. new maxpl = get_maxplayers();
  452. for (new i = 1; i <= maxpl; i++)
  453. {
  454. if (is_user_connected(i) && !is_user_bot(i))
  455. {
  456. len = formatex(msg, charsmax(msg), "%L", i, "BAN");
  457. len += formatex(msg[len], charsmax(msg) - len, " %s ", name2);
  458. if (nNum)
  459. {
  460. len += formatex(msg[len], charsmax(msg) - len, "%L", i, "FOR_MIN", minutes);
  461. }
  462. else
  463. {
  464. len += formatex(msg[len], charsmax(msg) - len, "%L", i, "PERM");
  465. }
  466. if (strlen(reason) > 0)
  467. {
  468. formatex(msg[len], charsmax(msg) - len, " (%L: %s)", i, "REASON", reason);
  469. }
  470. show_activity_id(i, id, name, msg);
  471. }
  472. }
  473.  
  474. console_print(id, "[AMXX] %L", id, "CLIENT_BANNED", name2)
  475.  
  476. return PLUGIN_HANDLED
  477. }
  478.  
  479. public cmdBanIP(id, level, cid)
  480. {
  481. if (!cmd_access(id, level, cid, 3))
  482. return PLUGIN_HANDLED
  483.  
  484. new target[32], minutes[8], reason[64]
  485.  
  486. read_argv(1, target, 31)
  487. read_argv(2, minutes, 7)
  488. read_argv(3, reason, 63)
  489.  
  490. new player = cmd_target(id, target, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
  491.  
  492. if (!player)
  493. {
  494. // why is this here?
  495. // no idea
  496. // player = cmd_target(id, target, 9);
  497. return PLUGIN_HANDLED
  498. }
  499.  
  500. new authid[32], name2[32], authid2[32], name[32]
  501. new userid2 = get_user_userid(player)
  502.  
  503. get_user_authid(player, authid2, 31)
  504. get_user_authid(id, authid, 31)
  505. get_user_name(player, name2, 31)
  506. get_user_name(id, name, 31)
  507.  
  508. log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%s^") (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, minutes, reason)
  509.  
  510. new temp[64], banned[16], nNum = str_to_num(minutes)
  511. if (nNum)
  512. format(temp, 63, "%L", player, "FOR_MIN", minutes)
  513. else
  514. format(temp, 63, "%L", player, "PERM")
  515. format(banned, 15, "%L", player, "BANNED")
  516.  
  517. new address[32]
  518. get_user_ip(player, address, 31, 1)
  519.  
  520. if (reason[0])
  521. server_cmd("kick #%d ^"%s (%s %s)^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, reason, banned, temp, minutes, address)
  522. else
  523. server_cmd("kick #%d ^"%s %s^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, banned, temp, minutes, address)
  524.  
  525. // Display the message to all clients
  526.  
  527. new msg[256];
  528. new len;
  529. new maxpl = get_maxplayers();
  530. for (new i = 1; i <= maxpl; i++)
  531. {
  532. if (is_user_connected(i) && !is_user_bot(i))
  533. {
  534. len = formatex(msg, charsmax(msg), "%L", i, "BAN");
  535. len += formatex(msg[len], charsmax(msg) - len, " %s ", name2);
  536. if (nNum)
  537. {
  538. formatex(msg[len], charsmax(msg) - len, "%L", i, "FOR_MIN", minutes);
  539. }
  540. else
  541. {
  542. formatex(msg[len], charsmax(msg) - len, "%L", i, "PERM");
  543. }
  544. if (strlen(reason) > 0)
  545. {
  546. formatex(msg[len], charsmax(msg) - len, " (%L: %s)", i, "REASON", reason);
  547. }
  548. show_activity_id(i, id, name, msg);
  549. }
  550. }
  551.  
  552. console_print(id, "[AMXX] %L", id, "CLIENT_BANNED", name2)
  553.  
  554. return PLUGIN_HANDLED
  555. }
  556.  
  557. public cmdSlay(id, level, cid)
  558. {
  559. if (!cmd_access(id, level, cid, 2))
  560. return PLUGIN_HANDLED
  561.  
  562. new arg[32]
  563.  
  564. read_argv(1, arg, 31)
  565.  
  566. new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF | CMDTARGET_ONLY_ALIVE)
  567.  
  568. if (!player)
  569. return PLUGIN_HANDLED
  570.  
  571. user_kill(player)
  572.  
  573. new authid[32], name2[32], authid2[32], name[32]
  574.  
  575. get_user_authid(id, authid, 31)
  576. get_user_name(id, name, 31)
  577. get_user_authid(player, authid2, 31)
  578. get_user_name(player, name2, 31)
  579.  
  580. log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2)
  581.  
  582. show_activity_key("ADMIN_SLAY_1", "ADMIN_SLAY_2", name, name2);
  583.  
  584. console_print(id, "[AMXX] %L", id, "CLIENT_SLAYED", name2)
  585.  
  586. return PLUGIN_HANDLED
  587. }
  588.  
  589. public cmdSlap(id, level, cid)
  590. {
  591. if (!cmd_access(id, level, cid, 2))
  592. return PLUGIN_HANDLED
  593.  
  594. new arg[32]
  595.  
  596. read_argv(1, arg, 31)
  597. new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF | CMDTARGET_ONLY_ALIVE)
  598.  
  599. if (!player)
  600. return PLUGIN_HANDLED
  601.  
  602. new spower[32], authid[32], name2[32], authid2[32], name[32]
  603.  
  604. read_argv(2, spower, 31)
  605.  
  606. new damage = str_to_num(spower)
  607.  
  608. user_slap(player, damage)
  609.  
  610. get_user_authid(id, authid, 31)
  611. get_user_name(id, name, 31)
  612. get_user_authid(player, authid2, 31)
  613. get_user_name(player, name2, 31)
  614.  
  615. 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)
  616.  
  617. show_activity_key("ADMIN_SLAP_1", "ADMIN_SLAP_2", name, name2, damage);
  618.  
  619. console_print(id, "[AMXX] %L", id, "CLIENT_SLAPED", name2, damage)
  620.  
  621. return PLUGIN_HANDLED
  622. }
  623.  
  624. public chMap(map[])
  625. {
  626. server_cmd("changelevel %s", map)
  627. }
  628.  
  629. public cmdMap(id, level, cid)
  630. {
  631. if (!cmd_access(id, level, cid, 2))
  632. return PLUGIN_HANDLED
  633.  
  634. new arg[32]
  635. new arglen = read_argv(1, arg, 31)
  636.  
  637. if (!is_map_valid(arg))
  638. {
  639. console_print(id, "[AMXX] %L", id, "MAP_NOT_FOUND")
  640. return PLUGIN_HANDLED
  641. }
  642.  
  643. new authid[32], name[32]
  644.  
  645. get_user_authid(id, authid, 31)
  646. get_user_name(id, name, 31)
  647.  
  648. show_activity_key("ADMIN_MAP_1", "ADMIN_MAP_2", name, arg);
  649.  
  650. log_amx("Cmd: ^"%s<%d><%s><>^" changelevel ^"%s^"", name, get_user_userid(id), authid, arg)
  651.  
  652. new _modName[10]
  653. get_modname(_modName, 9)
  654.  
  655. if (!equal(_modName, "zp"))
  656. {
  657. message_begin(MSG_ALL, SVC_INTERMISSION)
  658. message_end()
  659. }
  660.  
  661. set_task(2.0, "chMap", 0, arg, arglen + 1)
  662.  
  663. return PLUGIN_HANDLED
  664. }
  665.  
  666. stock bool:onlyRcon(const name[])
  667. {
  668. new ptr=get_cvar_pointer(name);
  669. if (ptr && get_pcvar_flags(ptr) & FCVAR_PROTECTED)
  670. {
  671. return true;
  672. }
  673. return false;
  674. }
  675.  
  676. public cmdCvar(id, level, cid)
  677. {
  678. if (!cmd_access(id, level, cid, 2))
  679. return PLUGIN_HANDLED
  680.  
  681. new arg[32], arg2[64]
  682.  
  683. read_argv(1, arg, 31)
  684. read_argv(2, arg2, 63)
  685.  
  686. new pointer;
  687.  
  688. if (equal(arg, "add") && (get_user_flags(id) & ADMIN_RCON))
  689. {
  690. if ((pointer=get_cvar_pointer(arg2))!=0)
  691. {
  692. new flags=get_pcvar_flags(pointer);
  693.  
  694. if (!(flags & FCVAR_PROTECTED))
  695. {
  696. set_pcvar_flags(pointer,flags | FCVAR_PROTECTED);
  697. }
  698. }
  699. return PLUGIN_HANDLED
  700. }
  701.  
  702. if ((pointer=get_cvar_pointer(arg))==0)
  703. {
  704. console_print(id, "[AMXX] %L", id, "UNKNOWN_CVAR", arg)
  705. return PLUGIN_HANDLED
  706. }
  707.  
  708. if (onlyRcon(arg) && !(get_user_flags(id) & ADMIN_RCON))
  709. {
  710. // Exception for the new onlyRcon rules:
  711. // sv_password is allowed to be modified by ADMIN_PASSWORD
  712. if (!(equali(arg,"sv_password") && (get_user_flags(id) & ADMIN_PASSWORD)))
  713. {
  714. console_print(id, "[AMXX] %L", id, "CVAR_NO_ACC")
  715. return PLUGIN_HANDLED
  716. }
  717. }
  718.  
  719. if (read_argc() < 3)
  720. {
  721. get_pcvar_string(pointer, arg2, 63)
  722. console_print(id, "[AMXX] %L", id, "CVAR_IS", arg, arg2)
  723. return PLUGIN_HANDLED
  724. }
  725.  
  726. new authid[32], name[32]
  727.  
  728. get_user_authid(id, authid, 31)
  729. get_user_name(id, name, 31)
  730.  
  731. log_amx("Cmd: ^"%s<%d><%s><>^" set cvar (name ^"%s^") (value ^"%s^")", name, get_user_userid(id), authid, arg, arg2)
  732. set_cvar_string(arg, arg2)
  733.  
  734.  
  735. // Display the message to all clients
  736.  
  737. new cvar_val[64];
  738. new maxpl = get_maxplayers();
  739. for (new i = 1; i <= maxpl; i++)
  740. {
  741. if (is_user_connected(i) && !is_user_bot(i))
  742. {
  743. if (get_pcvar_flags(pointer) & FCVAR_PROTECTED || equali(arg, "rcon_password"))
  744. {
  745. formatex(cvar_val, charsmax(cvar_val), "*** %L ***", i, "PROTECTED");
  746. }
  747. else
  748. {
  749. copy(cvar_val, charsmax(cvar_val), arg2);
  750. }
  751. show_activity_id(i, id, name, "%L", i, "SET_CVAR_TO", "", arg, cvar_val);
  752. }
  753. }
  754.  
  755. console_print(id, "[AMXX] %L", id, "CVAR_CHANGED", arg, arg2)
  756.  
  757. return PLUGIN_HANDLED
  758. }
  759.  
  760. public cmdPlugins(id, level, cid)
  761. {
  762. if (!cmd_access(id, level, cid, 1))
  763. return PLUGIN_HANDLED
  764.  
  765. if (id==0) // If server executes redirect this to "amxx plugins" for more in depth output
  766. {
  767. server_cmd("amxx plugins");
  768. server_exec();
  769. return PLUGIN_HANDLED;
  770. }
  771.  
  772. new name[32], version[32], author[32], filename[32], status[32]
  773. new lName[32], lVersion[32], lAuthor[32], lFile[32], lStatus[32]
  774.  
  775. format(lName, 31, "%L", id, "NAME")
  776. format(lVersion, 31, "%L", id, "VERSION")
  777. format(lAuthor, 31, "%L", id, "AUTHOR")
  778. format(lFile, 31, "%L", id, "FILE")
  779. format(lStatus, 31, "%L", id, "STATUS")
  780.  
  781. new StartPLID=0;
  782. new EndPLID;
  783.  
  784. new Temp[96]
  785.  
  786. new num = get_pluginsnum()
  787.  
  788. if (read_argc() > 1)
  789. {
  790. read_argv(1,Temp,sizeof(Temp)-1);
  791. StartPLID=str_to_num(Temp)-1; // zero-based
  792. }
  793.  
  794. EndPLID=min(StartPLID + 10, num);
  795.  
  796. new running = 0
  797.  
  798. console_print(id, "----- %L -----", id, "LOADED_PLUGINS")
  799. console_print(id, "%-18.17s %-11.10s %-17.16s %-16.15s %-9.8s", lName, lVersion, lAuthor, lFile, lStatus)
  800.  
  801. new i=StartPLID;
  802. while (i <EndPLID)
  803. {
  804. get_plugin(i++, filename, 31, name, 31, version, 31, author, 31, status, 31)
  805. console_print(id, "%-18.17s %-11.10s %-17.16s %-16.15s %-9.8s", name, version, author, filename, status)
  806.  
  807. if (status[0]=='d' || status[0]=='r') // "debug" or "running"
  808. running++
  809. }
  810. console_print(id, "%L", id, "PLUGINS_RUN", EndPLID-StartPLID, running)
  811. console_print(id, "----- %L -----",id,"HELP_ENTRIES",StartPLID + 1,EndPLID,num);
  812.  
  813. if (EndPLID < num)
  814. {
  815. formatex(Temp,sizeof(Temp)-1,"----- %L -----",id,"HELP_USE_MORE", EndPLID + 1);
  816. replace_all(Temp,sizeof(Temp)-1,"amx_help","amx_plugins");
  817. console_print(id,"%s",Temp);
  818. }
  819. else
  820. {
  821. formatex(Temp,sizeof(Temp)-1,"----- %L -----",id,"HELP_USE_BEGIN");
  822. replace_all(Temp,sizeof(Temp)-1,"amx_help","amx_plugins");
  823. console_print(id,"%s",Temp);
  824. }
  825.  
  826. return PLUGIN_HANDLED
  827. }
  828.  
  829. public cmdModules(id, level, cid)
  830. {
  831. if (!cmd_access(id, level, cid, 1))
  832. return PLUGIN_HANDLED
  833.  
  834. new name[32], version[32], author[32], status, sStatus[16]
  835. new lName[32], lVersion[32], lAuthor[32], lStatus[32];
  836.  
  837. format(lName, 31, "%L", id, "NAME")
  838. format(lVersion, 31, "%L", id, "VERSION")
  839. format(lAuthor, 31, "%L", id, "AUTHOR")
  840. format(lStatus, charsmax(lStatus), "%L", id, "STATUS")
  841.  
  842. new num = get_modulesnum()
  843.  
  844. console_print(id, "%L:", id, "LOADED_MODULES")
  845. console_print(id, "%-23.22s %-11.10s %-20.19s %-11.10s", lName, lVersion, lAuthor, lStatus)
  846.  
  847. for (new i = 0; i < num; i++)
  848. {
  849. get_module(i, name, 31, author, 31, version, 31, status)
  850.  
  851. switch (status)
  852. {
  853. case module_loaded: copy(sStatus, 15, "running")
  854. default:
  855. {
  856. copy(sStatus, 15, "bad load");
  857. copy(name, charsmax(name), "unknown");
  858. copy(author, charsmax(author), "unknown");
  859. copy(version, charsmax(version), "unknown");
  860. }
  861. }
  862.  
  863. console_print(id, "%-23.22s %-11.10s %-20.19s %-11.10s", name, version, author, sStatus)
  864. }
  865. console_print(id, "%L", id, "NUM_MODULES", num)
  866.  
  867. return PLUGIN_HANDLED
  868. }
  869.  
  870. public cmdCfg(id, level, cid)
  871. {
  872. if (!cmd_access(id, level, cid, 2))
  873. return PLUGIN_HANDLED
  874.  
  875. new arg[128]
  876. read_argv(1, arg, 127)
  877.  
  878. if (!file_exists(arg))
  879. {
  880. console_print(id, "[AMXX] %L", id, "FILE_NOT_FOUND", arg)
  881. return PLUGIN_HANDLED
  882. }
  883.  
  884. new authid[32], name[32]
  885.  
  886. get_user_authid(id, authid, 31)
  887. get_user_name(id, name, 31)
  888.  
  889. log_amx("Cmd: ^"%s<%d><%s><>^" execute cfg (file ^"%s^")", name, get_user_userid(id), authid, arg)
  890.  
  891. console_print(id, "[AMXX] Executing file ^"%s^"", arg)
  892. server_cmd("exec %s", arg)
  893.  
  894. show_activity_key("ADMIN_CONF_1", "ADMIN_CONF_2", name, arg);
  895.  
  896. return PLUGIN_HANDLED
  897. }
  898.  
  899. public cmdLBack()
  900. {
  901. if (!g_PauseAllowed)
  902. return PLUGIN_CONTINUE
  903.  
  904. new paused[25]
  905.  
  906. format(paused, 24, "%L", g_pauseCon, g_Paused ? "UNPAUSED" : "PAUSED")
  907. set_cvar_float("pausable", g_pausAble)
  908. console_print(g_pauseCon, "[AMXX] Server %s", paused)
  909. g_PauseAllowed = false
  910.  
  911. if (g_Paused)
  912. g_Paused = false
  913. else
  914. g_Paused = true
  915.  
  916. return PLUGIN_HANDLED
  917. }
  918.  
  919. public cmdPause(id, level, cid)
  920. {
  921. if (!cmd_access(id, level, cid, 1))
  922. return PLUGIN_HANDLED
  923.  
  924. new authid[32], name[32], slayer = id
  925.  
  926. get_user_authid(id, authid, 31)
  927. get_user_name(id, name, 31)
  928. if (pausable!=0)
  929. {
  930. g_pausAble = get_pcvar_float(pausable)
  931. }
  932.  
  933. if (!slayer)
  934. slayer = find_player("h")
  935.  
  936. if (!slayer)
  937. {
  938. console_print(id, "[AMXX] %L", id, "UNABLE_PAUSE")
  939. return PLUGIN_HANDLED
  940. }
  941.  
  942. set_cvar_float("pausable", 1.0)
  943. g_PauseAllowed = true
  944. client_cmd(slayer, "pause;pauseAck")
  945.  
  946. log_amx("Cmd: ^"%s<%d><%s><>^" %s server", name, get_user_userid(id), authid, g_Paused ? "unpause" : "pause")
  947.  
  948. console_print(id, "[AMXX] %L", id, g_Paused ? "UNPAUSING" : "PAUSING")
  949.  
  950. // Display the message to all clients
  951.  
  952. new maxpl = get_maxplayers();
  953. for (new i = 1; i <= maxpl; i++)
  954. {
  955. if (is_user_connected(i) && !is_user_bot(i))
  956. {
  957. show_activity_id(i, id, name, "%L server", i, g_Paused ? "UNPAUSE" : "PAUSE");
  958. }
  959. }
  960.  
  961. g_pauseCon = id
  962.  
  963. return PLUGIN_HANDLED
  964. }
  965.  
  966. public cmdShowRcon(id, level, cid)
  967. {
  968. if (!cmd_access(id, level, cid, 2))
  969. return PLUGIN_HANDLED
  970.  
  971. new password[64]
  972.  
  973. get_pcvar_string(rcon_password, password, 63)
  974.  
  975. if (!password[0])
  976. {
  977. cmdRcon(id, level, cid)
  978. } else {
  979. new args[128]
  980.  
  981. read_args(args, 127)
  982. client_cmd(id, "rcon_password %s", password)
  983. client_cmd(id, "rcon %s", args)
  984. }
  985.  
  986. return PLUGIN_HANDLED
  987. }
  988.  
  989. public cmdRcon(id, level, cid)
  990. {
  991. if (!cmd_access(id, level, cid, 2))
  992. return PLUGIN_HANDLED
  993.  
  994. new arg[128], authid[32], name[32]
  995.  
  996. read_args(arg, 127)
  997. get_user_authid(id, authid, 31)
  998. get_user_name(id, name, 31)
  999.  
  1000. log_amx("Cmd: ^"%s<%d><%s><>^" server console (cmdline ^"%s^")", name, get_user_userid(id), authid, arg)
  1001.  
  1002. console_print(id, "[AMXX] %L", id, "COM_SENT_SERVER", arg)
  1003. server_cmd("%s", arg)
  1004.  
  1005. return PLUGIN_HANDLED
  1006. }
  1007.  
  1008. public cmdWho(id, level, cid)
  1009. {
  1010. if (!cmd_access(id, level, cid, 1))
  1011. return PLUGIN_HANDLED
  1012.  
  1013. new players[32], inum, cl_on_server[64], authid[32], name[32], flags, sflags[32]
  1014. new lImm[16], lRes[16], lAccess[16], lYes[16], lNo[16]
  1015.  
  1016. format(lImm, 15, "%L", id, "IMMU")
  1017. format(lRes, 15, "%L", id, "RESERV")
  1018. format(lAccess, 15, "%L", id, "ACCESS")
  1019. format(lYes, 15, "%L", id, "YES")
  1020. format(lNo, 15, "%L", id, "NO")
  1021.  
  1022. get_players(players, inum)
  1023. format(cl_on_server, 63, "%L", id, "CLIENTS_ON_SERVER")
  1024. console_print(id, "^n%s:^n # %-16.15s %-20s %-8s %-4.3s %-4.3s %s", cl_on_server, "nick", "authid", "userid", lImm, lRes, lAccess)
  1025.  
  1026. for (new a = 0; a < inum; ++a)
  1027. {
  1028. get_user_authid(players[a], authid, 31)
  1029. get_user_name(players[a], name, 31)
  1030. flags = get_user_flags(players[a])
  1031. get_flags(flags, sflags, 31)
  1032. console_print(id, "%2d %-16.15s %-20s %-8d %-6.5s %-6.5s %s", players[a], name, authid,
  1033. get_user_userid(players[a]), (flags&ADMIN_IMMUNITY) ? lYes : lNo, (flags&ADMIN_RESERVATION) ? lYes : lNo, sflags)
  1034. }
  1035.  
  1036. console_print(id, "%L", id, "TOTAL_NUM", inum)
  1037. get_user_authid(id, authid, 31)
  1038. get_user_name(id, name, 31)
  1039. log_amx("Cmd: ^"%s<%d><%s><>^" ask for players list", name, get_user_userid(id), authid)
  1040.  
  1041. return PLUGIN_HANDLED
  1042. }
  1043.  
  1044. hasTag(name[], tags[4][32], tagsNum)
  1045. {
  1046. for (new a = 0; a < tagsNum; ++a)
  1047. if (contain(name, tags[a]) != -1)
  1048. return a
  1049. return -1
  1050. }
  1051.  
  1052. public cmdLeave(id, level, cid)
  1053. {
  1054. if (!cmd_access(id, level, cid, 2))
  1055. return PLUGIN_HANDLED
  1056.  
  1057. new argnum = read_argc()
  1058. new ltags[4][32]
  1059. new ltagsnum = 0
  1060.  
  1061. for (new a = 1; a < 5; ++a)
  1062. {
  1063. if (a < argnum)
  1064. read_argv(a, ltags[ltagsnum++], 31)
  1065. else
  1066. ltags[ltagsnum++][0] = 0
  1067. }
  1068.  
  1069. new nick[32], ires, pnum = get_maxplayers() + 1, count = 0, lReason[128]
  1070.  
  1071. for (new b = 1; b < pnum; ++b)
  1072. {
  1073. if (!is_user_connected(b) && !is_user_connecting(b)) continue
  1074.  
  1075. get_user_name(b, nick, 31)
  1076. ires = hasTag(nick, ltags, ltagsnum)
  1077.  
  1078. if (ires != -1)
  1079. {
  1080. console_print(id, "[AMXX] %L", id, "SKIP_MATCH", nick, ltags[ires])
  1081. continue
  1082. }
  1083.  
  1084. if (get_user_flags(b) & ADMIN_IMMUNITY)
  1085. {
  1086. console_print(id, "[AMXX] %L", id, "SKIP_IMM", nick)
  1087. continue
  1088. }
  1089.  
  1090. console_print(id, "[AMXX] %L", id, "KICK_PL", nick)
  1091.  
  1092. if (is_user_bot(b))
  1093. server_cmd("kick #%d", get_user_userid(b))
  1094. else
  1095. {
  1096. format(lReason, 127, "%L", b, "YOU_DROPPED")
  1097. server_cmd("kick #%d ^"%s^"", get_user_userid(b), lReason)
  1098. }
  1099. count++
  1100. }
  1101.  
  1102. console_print(id, "[AMXX] %L", id, "KICKED_CLIENTS", count)
  1103.  
  1104. new authid[32], name[32]
  1105.  
  1106. get_user_authid(id, authid, 31)
  1107. get_user_name(id, name, 31)
  1108. 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])
  1109.  
  1110. show_activity_key("ADMIN_LEAVE_1", "ADMIN_LEAVE_2", name, ltags[0], ltags[1], ltags[2], ltags[3]);
  1111.  
  1112. return PLUGIN_HANDLED
  1113. }
  1114.  
  1115. public cmdNick(id, level, cid)
  1116. {
  1117. if (!cmd_access(id, level, cid, 3))
  1118. return PLUGIN_HANDLED
  1119.  
  1120. new arg1[32], arg2[32], authid[32], name[32], authid2[32], name2[32]
  1121.  
  1122. read_argv(1, arg1, 31)
  1123. read_argv(2, arg2, 31)
  1124.  
  1125. new player = cmd_target(id, arg1, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF)
  1126.  
  1127. if (!player)
  1128. return PLUGIN_HANDLED
  1129.  
  1130. get_user_authid(id, authid, 31)
  1131. get_user_name(id, name, 31)
  1132. get_user_authid(player, authid2, 31)
  1133. get_user_name(player, name2, 31)
  1134.  
  1135. client_cmd(player, "name ^"%s^"", arg2)
  1136.  
  1137. 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)
  1138.  
  1139. show_activity_key("ADMIN_NICK_1", "ADMIN_NICK_2", name, name2, arg2);
  1140.  
  1141. console_print(id, "[AMXX] %L", id, "CHANGED_NICK", name2, arg2)
  1142.  
  1143. return PLUGIN_HANDLED
  1144. }
  1145.  
  1146. public cmdLast(id, level, cid)
  1147. {
  1148. if (!cmd_access(id, level, cid, 1))
  1149. {
  1150. return PLUGIN_HANDLED;
  1151. }
  1152.  
  1153. new name[32];
  1154. new authid[32];
  1155. new ip[32];
  1156. new flags[32];
  1157. new access;
  1158.  
  1159.  
  1160. // This alignment is a bit weird (it should grow if the name is larger)
  1161. // but otherwise for the more common shorter name, it'll wrap in server console
  1162. // Steam client display is all skewed anyway because of the non fixed font.
  1163. console_print(id, "%19s %20s %15s %s", "name", "authid", "ip", "access");
  1164.  
  1165. for (new i = 0; i < g_Size; i++)
  1166. {
  1167. GetInfo(i, name, charsmax(name), authid, charsmax(authid), ip, charsmax(ip), access);
  1168.  
  1169. get_flags(access, flags, charsmax(flags));
  1170.  
  1171. console_print(id, "%19s %20s %15s %s", name, authid, ip, flags);
  1172. }
  1173.  
  1174. console_print(id, "%d old connections saved.", g_Size);
  1175.  
  1176. return PLUGIN_HANDLED;
  1177. }
  1178.  

Ezt szeretném megszínesíteni.
+ 1 kérdés: A menü részét hol találom? a langba? Köszi válaszotokat.

_________________
Ha elnyerte valamelyik témában a hozzászólásom a tetszésedet melyet olvastál, akkor egy egyszerű gombnyomással kifejezheted, hogy tetszett.


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [4 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 18 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole