←  Artykuły i Instrukcje

AMXX.pl: Support AMX Mod X i SourceMod

»

Edycja menu admina - "amxmodmenu"

  • +
  • -
Abes Mapper - zdjęcie Abes Mapper 23.02.2011

W tym poradniku postaram się wytłumaczyć jak edytować menu admina - "amxmodmenu"

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:
Dołączona grafika

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.

Efekt końcowy dodania UnBan Menu do amxmodmenu:
Dołączona grafika

Po wybraniu "Odbanuj gracza" wykonuje się komenda "amx_unbanmenu" czyli otwiera się już menu pluginu UnBan Menu
Dołączona grafika

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":
Dołączona grafika

Dowód że działa:
Dołączona grafika
Dołączona grafika

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
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 23.02.2011

zamiast AddMenuLang mozna uzyc AddMenu nie trzeba nic dopisywac do plikow txt tylko po prostu
AddMenu("Menu Screenshotow", "amx_ssmenu", get_clcmd_flags("amx_ssmenu", flags) ? flags : ADMIN_KICK, "Commands Menu")
Odpowiedz

  • +
  • -
MatisyaHu - zdjęcie MatisyaHu 23.02.2011

Dobre takiego czekos szukalem masz plusa +
I nie dostalem oczopląsu hahah :D
Odpowiedz

  • +
  • -
Abes Mapper - zdjęcie Abes Mapper 23.02.2011

Dobra zmieniłem że nie trzeba edytować plików lang ;)
Odpowiedz

  • +
  • -
AmD - zdjęcie AmD 23.02.2011

przyda się :) +
Odpowiedz

  • +
  • -
WazzaP - zdjęcie WazzaP 24.02.2011

Oj, to przyda się na KAŻDY serwer.
Odpowiedz

  • +
  • -
MaGeX - zdjęcie MaGeX 24.02.2011

Dołączona grafika

PRZYDA SIĘ!
Użytkownik MaGeX edytował ten post 24.02.2011 13:34
Odpowiedz

  • +
  • -
Leihto - zdjęcie Leihto 24.02.2011

Dlaczego Commands Menu a nie Players Menu?

Wydaje mi sie ze Commands Menu jest dla menu z komendami, a Players Menu pobiera nicki graczy ;)
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 24.02.2011

Commands Menu I Players Menu to po prostu nazwy plugów które "obsługuje" te komendy :D
nazwe pluga podaje sie w register_plugin
tak więc post @up to głupota :P
Odpowiedz

  • +
  • -
Abes Mapper - zdjęcie Abes Mapper 24.02.2011

No OK ale mógłbyś wytłumaczyć kiedy się to wpisuje? Bo tak jak wspomniałem Commands Menu już nie działa przy UnBan menu gdzie się wybiera graczy a w SSBan działa a tam także się wybiera graczy
Odpowiedz

FreZZy - zdjęcie FreZZy 24.02.2011

Cytat
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("UNBAN_PLAYER", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")


Na
Cytat
AddMenu("UNBAN_PLAYER", "amx_unbanmenu", get_clcmd_flags("amx_unbanmenu", flags) ? flags : ADMIN_BAN, "Players Menu")


to jest mały błąd - w związku z Podpowiedzią DarkGL'a - zamiast UNBAN_PLAYER powinno być wcześniej zmienione - "Odbanuj gracza" (2 razy)
Odpowiedz

  • +
  • -
xxdrago - zdjęcie xxdrago 19.03.2011

Podoba mi sie dodałem menu SS i działa:) a i jak dodać ten plugin do menu?
Admin_gag - AMXX.pl: Support AMX Mod X
Odpowiedz

  • +
  • -
Abes Mapper - zdjęcie Abes Mapper 19.03.2011

Byś musiał mieć do niego menu
Odpowiedz

  • +
  • -
xxdrago - zdjęcie xxdrago 19.03.2011

A dało by rade do robić takie menu? ;)
Odpowiedz

  • +
  • -
Qski - zdjęcie Qski 10.04.2011

Jak już dajesz załącznik to mogło by być już zrobione ^_^
Odpowiedz

Polonista - zdjęcie Polonista 11.04.2011

A DA RADE NP. ( pomocniczemenu ) ?
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 11.04.2011

noo nie wiem o co ci chodzi ale to nie temat na takie pytania zaloz nowy temat opisza tam dokladnie co chcesz osiagnac
Odpowiedz

  • +
  • -
ViHuRa - zdjęcie ViHuRa 12.04.2011

Dzięki za tut.
Odpowiedz

Stasiek - zdjęcie Stasiek 20.04.2011

Bardzo dobry poradnik osobiscie polecam i skorzystalem

PLUS dla ciebie
Odpowiedz

BraciiK - zdjęcie BraciiK 23.04.2011

wielki + !
Odpowiedz