[ROZWIĄZANE] Admin_level_h w menu
Aqku
21.03.2013
Witam. Mam pytanie czy da się zrobić żeby w tym menu:
Dało się zrobić żeby te 3 ostatnie opcje były widoczne dla zwykłych graczy, ale nie mogli oni nich używać? Bo aktualnie zwykli gracze nie widzą tych opcji . Już mówie: add(menuBody, 511, "\r6.\r [VIP]\w Ostry Sztylet \y(Speed + Grawitacja)\w^n", ADMIN_LEVEL_H) Nie działa, nie chce się komplikować.
public display_knife(id) { new menuBody[512] add(menuBody, 511, "\yZwykle Knifes\w^n^n") add(menuBody, 511, "\r1.\w Maczeta \y(Wiecej Damage\Mniejsza Szybkosc)\w^n") add(menuBody, 511, "\r2.\w Cichy Noz \y(Ciche Chodzenie)\w^n") add(menuBody, 511, "\r3.\w Maly Noz \y(Wieksza Szybkosc)\w^n") add(menuBody, 511, "\r4.\w Lekki Noz \y(Mniejsza Grawitacja)\w^n") add(menuBody, 511, "\r5.\w Leczniczy Noz \y(Regeneracja HP)\w^n^n") if(get_user_flags(id) & ADMIN_LEVEL_H) { add(menuBody, 511, "\r6.\r [VIP]\w Ostry Sztylet \y(Speed + Grawitacja)\w^n") add(menuBody, 511, "\r7.\r [VIP]\w Boski Noz \y(Ciche Chodzenie + Reg. HP)\w^n") add(menuBody, 511, "\r8.\r [VIP]\w Zabojczy Miecz \y(Wieksze Damage)\w^n^n") } add(menuBody, 511, "\r0.\w Exit^n") new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 | 1<<9 ) show_menu(id, keys, menuBody, -1, "Knife Mod") }
Dało się zrobić żeby te 3 ostatnie opcje były widoczne dla zwykłych graczy, ale nie mogli oni nich używać? Bo aktualnie zwykli gracze nie widzą tych opcji . Już mówie: add(menuBody, 511, "\r6.\r [VIP]\w Ostry Sztylet \y(Speed + Grawitacja)\w^n", ADMIN_LEVEL_H) Nie działa, nie chce się komplikować.
Klakier
21.03.2013
Coś takiego: ?
public display_knife(id)
{
new tytul[60], maczeta[60], cichy[60], maly[60], lekki[60], leczniczy[60], vip_ostry[60], vip_boski[60], vip_zabojczy[60];
formatex(tytul, charsmax(tytul), "\yZwykle Knifes");
new menu = menu_create(tytul, "display_knife_Handler");
new cb = menu_makecallback("cb_display_knife");
formatex(maczeta, charsmax(maczeta), "Maczeta \y(Wiecej Damage\Mniejsza Szybkosc)");
formatex(cichy, charsmax(cichy), "Cichy Noz \y(Ciche Chodzenie)");
formatex(maly, charsmax(maly), "Maly Noz \y(Wieksza Szybkosc)");
formatex(lekki, charsmax(lekki), "Lekki Noz \y(Mniejsza Grawitacja)");
formatex(leczniczy, charsmax(leczniczy), "Leczniczy Noz \y(Regeneracja HP)");
formatex(vip_ostry, charsmax(vip_ostry), "\r [VIP]\w Ostry Sztylet \y(Speed + Grawitacja)");
formatex(vip_boski, charsmax(vip_boski), "\r [VIP]\w Boski Noz \y(Ciche Chodzenie + Reg. HP)");
formatex(vip_zabojczy, charsmax(vip_zabojczy), "\r [VIP]\w Zabojczy Miecz \y(Wieksze Damage)");
menu_additem(menu, maczeta, "", 0, cb);
menu_additem(menu, cichy, "", 0, cb);
menu_additem(menu, maly, "", 0, cb);
menu_additem(menu, lekki, "", 0, cb);
menu_additem(menu, leczniczy, "", 0, cb);
menu_additem(menu, vip_ostry, "", 0, cb);
menu_additem(menu, vip_boski, "", 0, cb);
menu_additem(menu, vip_zabojczy, "", 0, cb);
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
}
public cb_display_knife(id, menu, item)
{
if((item == 5 || item == 6 || item == 7) && !(get_user_flags(id) & ADMIN_LEVEL_H))
return ITEM_DISABLED;
return ITEM_ENABLED;
}
Kawon
22.03.2013
Automatyczna wiadomość
Ten temat został przeniesiony z forum
AMX Mod X > Pytania dotyczące pluginów
do
Scripting AMXX > Pytania
Ten temat został przeniesiony z forum
AMX Mod X > Pytania dotyczące pluginów
do
Scripting AMXX > Pytania
Vasto_Lorde
23.03.2013
Zrób normalne menu. Ale w handle, jak ktoś wybierze opcje dla vipa a nie będzie go posiadał, po prostu wyświetl menu na nowo. Jeśli ktoś Będzie miał vipa to plugin przejdzie dalej.
Aqku
24.03.2013
public display_knife(id) { new menuBody menu_create("\yWybierz Noz", "knifemenu") menu_additem(menuBody, "\w Maczeta \y(Wiecej Damage\Mniejsza Szybkosc)", "0", 0) menu_additem(menuBody, "\w Cichy Noz \y(Ciche Chodzenie)", "1", 0) menu_additem(menuBody, "\w Maly Noz \y(Wieksza Szybkosc)", "2", 0) menu_additem(menuBody, "\w Lekki Noz \y(Mniejsza Grawitacja)", "3", 0) menu_additem(menuBody, "\w Leczniczy Noz \y(Regeneracja HP)", "4", 0) menu_additem(menuBody, "\r[VIP]\w Ostry Sztylet \y(Speed + Grawitacja)", "5", ADMIN_LEVEL_H) menu_additem(menuBody, "\r[VIP]\w Boski Noz \y(Ciche Chodzenie + Reg. HP)", "6", ADMIN_LEVEL_H) menu_additem(menuBody, "\r[VIP]\w Zabojczy Miecz \y(Wieksze Damage)", "7", ADMIN_LEVEL_H) menu_setprop(menuBody, MPROP_EXIT, MEXIT_ALL) menu_display(id, menuBody, 0) new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<9 ) show_menu(id, keys, menuBody, -1, "knifemenu") }
knife_mod2.sma(84) : error 035: argument type mismatch (argument 3)
Czemu show_mneu nie czyta tego menuBody? ;/
Edited by Aqku, 24.03.2013 12:33.
GwynBleidD
24.03.2013
Pomieszałeś ze sobą stare i nowe menu, po co? Przecież to kompletnie co innego!! Dodatkowo jeszcze błąd wielgachny przy menu_create masz...
Klakier
24.03.2013
Zrob tak jak ja ci podałem i dodaj jeszcze według swoich wymagań
public display_knife_Handler(id, menu, item)
Aqku
24.03.2013
Jak zrobie normalne menu to komplikuje się, menu działa vip knifes są zablokowane dla usera ale jak np. Wezmę Maczete to mi weznie Lekki nóż jak wezmę Lekki nóż to weźnie boski nóż... Ja troche tego nie ogarniam dlatego dam Wam całe .sma
http://amxx.pl/wklej...36413616732858/
http://amxx.pl/wklej...36413616732858/
GwynBleidD
24.03.2013
W starym typie menu numerowanie case masz od 1, nie od 0. W nowym typie menu używasz tylko menu_display, nie używasz show_menu, nie używasz keys, nie używasz jednego wielkiego stringa do wrzucenia zawartości menu. Kolorowanie jest automatyczne, więc \w na początku każdej opcji oraz \y na początku tytułu jest zbędne. Dodatkowo jak masz menu_create, musisz wrzucić wynik tej komendy do menuBody. Zmień więc to:
na to:
Czegoś jeszcze nie rozumiesz?
new menuBody
menu_create("\yWybierz Noz", "knifemenu")
na to:
new menuBody = menu_create("\yWybierz Noz", "knifemenu")
Czegoś jeszcze nie rozumiesz?
Aqku
24.03.2013
Teraz kompiluje, ale wybiera w ogóle złe noże tzn. klikne w Maczete to weznie inny nóż...
http://amxx.pl/wklej...36415606932858/
Wiem, ze nie mam używać keys, ale jak to inaczej zrobić.
http://amxx.pl/wklej...36415606932858/
Wiem, ze nie mam używać keys, ale jak to inaczej zrobić.
K!113r
24.03.2013
menu_display(id, keys, menuBody)
na
menu_display(id, menuBody)
i w knifemenu() case nie od 1 do 8, tylko od 0 do 7 (knifemenu(id, menu, item) czy zamiast item jak masz w switchu key knifemenu(id, menu, key) )
GwynBleidD
24.03.2013
W STARYM menu numerujemy od 1, w NOWYM menu numerujemy od 0. Nowe menu nie potrzebuje keys, wywalasz to CAŁKOWICIE! Samo sobie sprawdzi jakie klawisze są potrzebne na podstawie listy opcji.
Aqku
25.03.2013
UP@ Jeszcze jakby ktoś mógł to ogarnąć.
L 03/25/2013 - 20:08:17: Start of error session. L 03/25/2013 - 20:08:17: Info (map "de_dust2_long") (file "addons/amxmodx/logs/error_20130325.log") L 03/25/2013 - 20:08:17: Function is not present (function "kmodmsg") (plugin "knife_mod.amxx") L 03/25/2013 - 20:08:17: [AMXX] Displaying debug trace (plugin "knife_mod.amxx") L 03/25/2013 - 20:08:17: [AMXX] Run time error 10: native error (native "set_task") L 03/25/2013 - 20:08:17: [AMXX] [0] knife_mod2_1370834.sma::plugin_init (line 47)
Aqku
25.03.2013
No tak, przepraszam.
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event( "Damage", "event_damage", "be" ) register_event("CurWeapon","CurWeapon","be","1=1") g_Menu = register_menuid("knifemenu") g_Menu2 = register_menuid("rodzaj") g_Menu3 = register_menuid("vipknifemenu") register_menucmd(g_Menu, 1023, "knifemenu") register_menucmd(g_Menu2, 1023, "rodzaj") register_menucmd(g_Menu3, 1023, "vipknifemenu") register_clcmd("say /knife", "display_knife") CVAR_HIGHSPEED = register_cvar("km_highspeed","340") CVAR_LOWSPEED = register_cvar("km_lowspeed","170") CVAR_NORMSPEED = register_cvar("km_normspeed","300") CVAR_HEALTH_ADD = register_cvar("km_addhealth", "3") CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "75") CVAR_DAMAGE = register_cvar("km_damage", "2") CVAR_LOWGRAV = register_cvar("km_lowgravity" , "400") CVAR_NORMGRAV = get_cvar_pointer("sv_gravity") set_task(480.0, "kmodmsg", 0, _, _, "b") }