←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

Po edytacji menu nie działa

Zablokowany

  • +
  • -
LucKy_skiLL - zdjęcie LucKy_skiLL 05.06.2011

Taki mam kod do menu na diablo, i jeżeli zmienie chodzby kolor czegos to od razu nie działa, w logach nic nie ma.

public showmenu(id)
{
new text[513]
new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9)


format(text, 512, "\yOpcje - ^n\w1. Informacje o przedmiocie^n\w2. Upusc obecny przedmiot^n\w3. Pokaz pomoc^n\w4. Uzyj mocy przedmiotu^n\w5. Kup Rune^n\w6. Informacje o statystykach^n^n\w0. Zamknij")

show_menu(id, keys, text)
return PLUGIN_HANDLED
}


public option_menu(id, key)
{
switch(key)
{
case 0:
{
iteminfo(id)

}
case 1:
{
dropitem(id)
}
case 2:
{
helpme(id)
}
case 3:
{
Use_Spell(id)
}
case 4:
{
buyrune(id)
}
case 5:
{
showskills(id)
}
case 9:
{
return PLUGIN_HANDLED
}
}

return PLUGIN_HANDLED
}
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 05.06.2011

Proponuje używać nowego menu, bo przy starym za dużo by tłumaczyć, żeby to działało (akurat tutaj prawdopodobnie źle jest rejestrowane te menu, dlatego się psuje). Przykładowy kod z nowym menu
public nowe_menu(id) {
new menu = menu_create("Nazwa menu", "nowe_menu_handle");

menu_additem(menu, "pierwsza opcja");
menu_additem(menu, "druga opcja");
menu_additem(menu, "trzecia opcja");

menu_setprop(menu, MPROP_BACKNAME, "Wroc");
menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
menu_display(id, menu);

return PLUGIN_HANDLED;
}

public nowe_menu_handle(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item) {
case 0: // pierwsza opcja
case 1: // druga opcja
case 2: // trzecia opcja
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Odpowiedz

  • +
  • -
LucKy_skiLL - zdjęcie LucKy_skiLL 06.06.2011

Tak zrobiłem menu

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "Niewiem"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /menu", "szybkie_menu")
}

public nowe_menu(id) {
new menu = menu_create("\r[DiabloMod] \wMenu serwera", "showmenu");

menu_additem(menu, "Informacje o przedmiocie");
menu_additem(menu, "Upusc obecny przedmiot");
menu_additem(menu, "Informacje o statystykach");
menu_additem(menu, "Sklep z Runa");
menu_additem(menu, "Sklep z Mana");
menu_additem(menu, "Questy");

menu_setprop(menu, MPROP_BACKNAME, "Wroc");
menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
menu_display(id, menu);

return PLUGIN_HANDLED;
}

public showmenu(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item) {
case 0: // client_cmd(id,"say /item")
case 1: // client_cmd(id,"say /drop")
case 2: // client_cmd(id,"say /czary")
case 3: // client_cmd(id,"say /rune")
case 4: // client_cmd(id,"say /mana")
case 5: // client_cmd(id,"say /questy")
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}



A takie mam błędy

diablo_menu.sma(39) : error 014: invalid statement; not in switch
diablo_menu.sma(39) : error 029: invalid expression, assumed zero
diablo_menu.sma(39 -- 40) : warning 215: expression has no effect
diablo_menu.sma(40) : error 014: invalid statement; not in switch
diablo_menu.sma(40) : fatal error 107: too many error messages on one line

Compilation aborted.
4 Errors.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 06.06.2011

case 0: // client_cmd(id,"say /item")

Bez "//" (dodałem to tylko po to, bo tak się dodaje komentarze do kodu w sma), do tego po co nowy plugin do takiego menu? Zrób to już bezpośrednio w modzie.
I skoro
register_clcmd("say /menu", "szybkie_menu")

to musisz menu dać w publicu "szybkie_menu".
Użytkownik sebul edytował ten post 06.06.2011 09:39
Odpowiedz

  • +
  • -
LucKy_skiLL - zdjęcie LucKy_skiLL 06.06.2011

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "Niewiem"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /menu", "nowe_menu")
}

public nowe_menu(id) {
new menu = menu_create("\r[DiabloMod] \wMenu serwera", "showmenu");

menu_additem(menu, "Informacje o przedmiocie");
menu_additem(menu, "Upusc obecny przedmiot");
menu_additem(menu, "Informacje o statystykach");
menu_additem(menu, "Sklep z Runa");
menu_additem(menu, "Sklep z Mana");
menu_additem(menu, "Questy");

menu_setprop(menu, MPROP_BACKNAME, "Wroc");
menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
menu_display(id, menu);

return PLUGIN_HANDLED;
}

public showmenu(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item) {
case 0: client_cmd(id,"say /item")
case 1: client_cmd(id,"say /drop")
case 2: client_cmd(id,"say /czary")
case 3: client_cmd(id,"say /rune")
case 4: client_cmd(id,"say /mana")
case 5: client_cmd(id,"say /questy")
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}



Tak bedzie dobrze, bo jestem w szkole i nie mam jak sprawdzic
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 06.06.2011

Powinno być dobrze.
Odpowiedz

  • +
  • -
LucKy_skiLL - zdjęcie LucKy_skiLL 06.06.2011

Może ktoś wdrążyć to menu do diablo, będę bardzo wdzięczny

Załączone pliki


Użytkownik LucKy_skiLL edytował ten post 06.06.2011 13:02
Odpowiedz
Zablokowany