Nie sugeruj się długością poradnika! Tak na prawdę to się robi bardzo szybko, ja tylko dokładnie wytłumaczyłem jak to zrobić i tak wyszło
Załóżmy że mamy podstawowe menu admina:

Ale jednak ktoś pragnie dodać parę opcji np.: robienie screenshotów, odbanowanie kogoś lub najzwyklej usunąć bądź zmienić kolejność.
Otwieramy menufront.sma dowolnym edytorem tekstowym. Znajduje się on w addons/amxmodx/scripting
Jeżeli go tam nie ma, udostępniam w załączniku.
Zjeżdżamy trochę na dół i widzimy takie coś:
AddDefaultMenus()
{
new flags;
AddMenuLang("KICK_PLAYER", "amx_kickmenu", get_clcmd_flags("amx_kickmenu", flags) ? flags : ADMIN_KICK , "Players Menu")
AddMenuLang("BAN_PLAYER", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
AddMenuLang("SLAP_SLAY", "amx_slapmenu", get_clcmd_flags("amx_slapmenu", flags) ? flags : ADMIN_SLAY, "Players Menu")
AddMenuLang("TEAM_PLAYER", "amx_teammenu", get_clcmd_flags("amx_teammenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
AddMenuLang("CHANGEL", "amx_mapmenu", get_clcmd_flags("amx_mapmenu", flags) ? flags : ADMIN_MAP, "Maps Menu")
AddMenuLang("VOTE_MAPS", "amx_votemapmenu", get_clcmd_flags("amx_votemapmenu", flags) ? flags : ADMIN_VOTE, "Maps Menu")
AddMenuLang("SPECH_STUFF", "amx_speechmenu", get_clcmd_flags("amx_speechmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
AddMenuLang("CLIENT_COM", "amx_clcmdmenu", get_clcmd_flags("amx_clcmdmenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
AddMenuLang("SERVER_COM", "amx_cmdmenu", get_clcmd_flags("amx_cmdmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
AddMenuLang("CVARS_SET", "amx_cvarmenu", get_clcmd_flags("amx_cvarmenu", flags) ? flags : ADMIN_CVAR, "Commands Menu")
AddMenuLang("CONFIG", "amx_cfgmenu", get_clcmd_flags("amx_cfgmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
AddMenuLang("LANG_SET", "amx_langmenu", get_clcmd_flags("amx_langmenu", flags) ? flags : ADMIN_CFG, "Multi-Lingual System")
AddMenuLang("STATS_SET", "amx_statscfgmenu", get_clcmd_flags("amx_statscfgmenu", flags) ? flags : ADMIN_CFG, "Stats Configuration")
AddMenuLang("PAUSE_PLUG", "amx_pausecfgmenu", get_clcmd_flags("amx_pausecfgmenu", flags) ? flags : ADMIN_CFG, "Pause Plugins")
AddMenuLang("RES_WEAP", "amx_restmenu", get_clcmd_flags("amx_restmenu", flags) ? flags : ADMIN_CFG, "Restrict Weapons")
AddMenuLang("TELE_PLAYER", "amx_teleportmenu", get_clcmd_flags("amx_teleportmenu", flags) ? flags : ADMIN_CFG, "Teleport Menu")
}
Na początku zajmiemy się dodaniem menu (komendy) od UnBan menu - AMXX.pl: Support AMX Mod X a potem AMX SSBan v2.6 [UPDATE:10.Jul.2010] - AlliedModders
Najpierw instalujemy oba pluginy.
Po wgraniu przechodzimy do edycji kodu źródłowego menufront.sma.
UnBan Menu
Załóżmy że UnBan menu chcemy mieć pod banowaniem.
Duplikujemy linijkę:
AddMenuLang("BAN_PLAYER", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
Ma to wyglądać tak:
AddMenuLang("KICK_PLAYER", "amx_kickmenu", get_clcmd_flags("amx_kickmenu", flags) ? flags : ADMIN_KICK , "Players Menu")
AddMenuLang("BAN_PLAYER", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
AddMenuLang("BAN_PLAYER", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
AddMenuLang("SLAP_SLAY", "amx_slapmenu", get_clcmd_flags("amx_slapmenu", flags) ? flags : ADMIN_SLAY, "Players Menu")
I tak jak nasz kochany DarkGL napisał w poście niżej, nie trzeba edytować plików lang!

Wystarczy zmienić:
AddMenuLang
Na
AddMenu
I teraz zmieniamy wpis "BAN_PLAYER" na tekst który pokaże się w menu.
Wpiszmy np.: "Odbanuj gracza":
AddMenu("Odbanuj gracza", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
Następnie edytujemy komendy aby wywołać menu unbana.
Zmieniamy
AddMenu("Odbanuj gracza", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
Na
AddMenu("Odbanuj gracza", "amx_unbanmenu", get_clcmd_flags("amx_unbanmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
Teraz definiujemy pod jaką flagą będzie można użyć tej opcji. Ja zostawie ADMIN_BAN
Ważne aby na końcu było "Players Menu" chyba że menu dotyczy czegoś innego.
Na koniec zapisujemy edytowany kod źródłowy, kompilujemy i podmieniamy na serwerze z oryginalnym plikiem.
- Kompilować można tak:
- Wkleić kod tutaj: Kompilator - AMXX.pl: Support AMX Mod X
- Skompilować lokalnie: Kompilacja lokalna - AMXX.pl: Support AMX Mod X
Efekt końcowy dodania UnBan Menu do amxmodmenu:

Po wybraniu "Odbanuj gracza" wykonuje się komenda "amx_unbanmenu" czyli otwiera się już menu pluginu UnBan Menu

UnBan menu dodane, teraz SSBan.
AMX SSBan
Dodamy dwa menu - same SS i SS + Ban
Załóżmy że chcemy mieć pod numerem 6 i 7
Myślałem że będzie koło siebie a reszte w takim odstępie jak na początku ale potem numer 8 się przyłączy...
Musimy teraz zduplikować dwa wpisy i dać nad oryginałem aby wyglądało to tak:
AddMenuLang("TEAM_PLAYER", "amx_teammenu", get_clcmd_flags("amx_teammenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
AddMenuLang("CHANGEL", "amx_mapmenu", get_clcmd_flags("amx_mapmenu", flags) ? flags : ADMIN_MAP, "Maps Menu")
AddMenuLang("VOTE_MAPS", "amx_votemapmenu", get_clcmd_flags("amx_votemapmenu", flags) ? flags : ADMIN_VOTE, "Maps Menu")
AddMenuLang("CHANGEL", "amx_mapmenu", get_clcmd_flags("amx_mapmenu", flags) ? flags : ADMIN_MAP, "Maps Menu")
AddMenuLang("VOTE_MAPS", "amx_votemapmenu", get_clcmd_flags("amx_votemapmenu", flags) ? flags : ADMIN_VOTE, "Maps Menu")
AddMenuLang("SPECH_STUFF", "amx_speechmenu", get_clcmd_flags("amx_speechmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
W sumie robimy jak poprzednio czyli zmieniamy AddMenuLang w obu przypadkach na AddMenu a potem "CHANGEL" i "VOTE_MAPS" zmieniamy na nasz tekst np.: "Menu screenshotow" i "Menu screenshotow + ban"
AddMenu("Menu screenshotow", "amx_mapmenu", get_clcmd_flags("amx_mapmenu", flags) ? flags : ADMIN_MAP, "Maps Menu")
AddMenu("Menu screenshotow + ban", "amx_votemapmenu", get_clcmd_flags("amx_votemapmenu", flags) ? flags : ADMIN_VOTE, "Maps Menu")
Teraz komendy, flage i końcowy napis:
AddMenu("Menu screenshotow", "amx_ssmenu", get_clcmd_flags("amx_ssmenu", flags) ? flags : ADMIN_KICK, "Commands Menu")
AddMenu("Menu screenshotow + ban", "amx_ssbanmenu", get_clcmd_flags("amx_ssbanmenu", flags) ? flags : ADMIN_BAN, "Commands Menu")
Dlaczego Commands Menu a nie Players Menu?
Nie wiem ale działa.
W pierwszym przypadku (UnBan menu) zaś nie działa Commands Menu.
Zapisujemy, kompilujemy (tak jak wcześniej) i podmieniamy plik (plugin).
Tak powinien wyglądać nasz edit:
AddDefaultMenus()
{
new flags;
AddMenuLang("KICK_PLAYER", "amx_kickmenu", get_clcmd_flags("amx_kickmenu", flags) ? flags : ADMIN_KICK , "Players Menu")
AddMenuLang("BAN_PLAYER", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
AddMenu("Odbanuj gracza", "amx_unbanmenu", get_clcmd_flags("amx_unbanmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
AddMenuLang("SLAP_SLAY", "amx_slapmenu", get_clcmd_flags("amx_slapmenu", flags) ? flags : ADMIN_SLAY, "Players Menu")
AddMenuLang("TEAM_PLAYER", "amx_teammenu", get_clcmd_flags("amx_teammenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
AddMenu("Menu screenshotow", "amx_ssmenu", get_clcmd_flags("amx_ssmenu", flags) ? flags : ADMIN_KICK, "Commands Menu")
AddMenu("Menu screenshotow + ban", "amx_ssbanmenu", get_clcmd_flags("amx_ssbanmenu", flags) ? flags : ADMIN_BAN, "Commands Menu")
AddMenuLang("CHANGEL", "amx_mapmenu", get_clcmd_flags("amx_mapmenu", flags) ? flags : ADMIN_MAP, "Maps Menu")
AddMenuLang("VOTE_MAPS", "amx_votemapmenu", get_clcmd_flags("amx_votemapmenu", flags) ? flags : ADMIN_VOTE, "Maps Menu")
AddMenuLang("SPECH_STUFF", "amx_speechmenu", get_clcmd_flags("amx_speechmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
AddMenuLang("CLIENT_COM", "amx_clcmdmenu", get_clcmd_flags("amx_clcmdmenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
AddMenuLang("SERVER_COM", "amx_cmdmenu", get_clcmd_flags("amx_cmdmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
AddMenuLang("CVARS_SET", "amx_cvarmenu", get_clcmd_flags("amx_cvarmenu", flags) ? flags : ADMIN_CVAR, "Commands Menu")
AddMenuLang("CONFIG", "amx_cfgmenu", get_clcmd_flags("amx_cfgmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
AddMenuLang("LANG_SET", "amx_langmenu", get_clcmd_flags("amx_langmenu", flags) ? flags : ADMIN_CFG, "Multi-Lingual System")
AddMenuLang("STATS_SET", "amx_statscfgmenu", get_clcmd_flags("amx_statscfgmenu", flags) ? flags : ADMIN_CFG, "Stats Configuration")
AddMenuLang("PAUSE_PLUG", "amx_pausecfgmenu", get_clcmd_flags("amx_pausecfgmenu", flags) ? flags : ADMIN_CFG, "Pause Plugins")
AddMenuLang("RES_WEAP", "amx_restmenu", get_clcmd_flags("amx_restmenu", flags) ? flags : ADMIN_CFG, "Restrict Weapons")
AddMenuLang("TELE_PLAYER", "amx_teleportmenu", get_clcmd_flags("amx_teleportmenu", flags) ? flags : ADMIN_CFG, "Teleport Menu")
}
Screen edytowanego "amxmodmenu":

Dowód że działa:


Jeżeli nie dostałeś oczopląsu, zrozumiałeś poradnik i udało ci się edytować menu to gratuluję!

Załączone pliki
Użytkownik Abes Mapper edytował ten post 24.02.2011 18:36
Poprawienie zgodnie z zaleceniami w poście niżej