←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Ustawianie nazwy forum w menu za pomocą Cvara

Kłusownik's Photo Kłusownik 31.05.2012

Witam!

Proszę o pomoc. Nie mogę coś zrobić aby nazwa forum w menu była ustawiana za pomoca cvarów.

Co ja robie:


new gPcvarForum;

[...]

public plugin_init()
{
	 gPcvarForum=register_cvar("amx_forum", "adres forum")
[...]
}
[menu]

public Bf2menu(id)
{
if (!get_pcvar_num(gPcvarBF2Active))
return PLUGIN_CONTINUE;
new menu = menu_create("\wMenu Glowne", "menu_handler");
menu_additem(menu, "[...]", "0", 0);
new forum[32]
get_pcvar_string(gPcvarForum,forum, 31)
menu_addtext(menu, "Forum: %s",forum)

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menuselection[id]=MENU_MAIN;
menu_display(id, menu, 0);

return PLUGIN_CONTINUE;
}

Z góry dzięki za pomoc.


Błąd:
// .../...(15) : error 035: argument type mismatch (argument 3)
Edited by Kłusownik, 31.05.2012 14:24.
Quote

  • +
  • -
Pan PrO's Photo Pan PrO 31.05.2012

od kiedy get_pcvar_string(gcvarForum,forum, 31) to warunek :facepalm:



new gPcvarForum;

[...]

public plugin_init()
{
gPcvarForum=register_cvar("amx_forum", "adres forum")
[...]
}
[menu]

public Bf2menu(id)
{
if (!get_pcvar_num(gPcvarBF2Active))
return PLUGIN_CONTINUE;

new forum[32];
get_pcvar_string(gcvarForum,forum, 31);

new menu = menu_create("\wMenu Glowne", "menu_handler");
menu_additem(menu, "[...]", "0", 0);
menu_addtext(menu, "Forum: %s",forum)

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menuselection[id]=MENU_MAIN;
menu_display(id, menu, 0);

return PLUGIN_CONTINUE;
}

Edited by Pan PrO, 31.05.2012 14:32.
Quote

Kłusownik's Photo Kłusownik 31.05.2012

Wzorowałem się na pluginie pokazuj amxx i tam tak jest :)
Popraw jak możesz swoja wypowiedź bo nic nie widać same [color=%%%%]

I prosiłbym o pomoc co zmienić...


Zmieniłem jak ty i nadal to samo...
Edited by Kłusownik, 31.05.2012 14:40.
Quote

  • +
  • -
GwynBleidD's Photo GwynBleidD 31.05.2012

Podaj dokładnie która to linijka, w której wyświetla ten warning.
Quote

  • +
  • -
dasiek's Photo dasiek 31.05.2012

Może spróbuj tak?

public Bf2menu(id)
{
if (!get_pcvar_num(gPcvarBF2Active))
  return PLUGIN_CONTINUE;

new menu = menu_create("\wMenu Glowne", "menu_handler");
new forum[32],txt[64];
get_cvar_string("amx_forum",forum, 31)
format(txt,64,"Forum %s",gPcvarForum)
menu_addtext(menu, txt)

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menuselection[id]=MENU_MAIN;
menu_display(id, menu, 0);

return PLUGIN_CONTINUE;
}
Quote

  • +
  • -
sebul's Photo sebul 31.05.2012

:facepalm: x2

od kiedy get_pcvar_string(gcvarForum,forum, 31) to warunek :facepalm:

Z tego co się orientuję, to "get_pcvar_string" zwraca liczbę wczytanych liter, czyli może być w warunku.

Co do samego kodu
new gPcvarForum;

[...]

public plugin_init()
{
gPcvarForum=register_cvar("amx_forum", "adres forum")
[...]
}
[menu]

public Bf2menu(id)
{
if (!get_pcvar_num(gPcvarBF2Active))
return PLUGIN_CONTINUE;

new menu = menu_create("\wMenu Glowne", "menu_handler");
menu_additem(menu, "[...]");
new forum[64]; get_pcvar_string(gPcvarForum, forum, 31);
formatex(forum, 63, "Forum: %s", forum);
menu_addtext(menu, forum);

menuselection[id]=MENU_MAIN;
menu_display(id, menu);

return PLUGIN_CONTINUE;
}
Quote

Gość_21977_* 31.05.2012

new forum[32]
get_pcvar_string(gPcvarForum,forum, 31)
menu_addtext(menu, "Forum: %s",forum)

Gdzie Wy tu widzicie warunek? :facepalm: ×3

@down: To wybacz najmocniej. Nie sądziłem, że autor zmieni kod, bez podawania nawet o tym informacji.
Quote

  • +
  • -
sebul's Photo sebul 31.05.2012

new forum[32]
get_pcvar_string(gPcvarForum,forum, 31)
menu_addtext(menu, "Forum: %s",forum)

Gdzie Wy tu widzicie warunek? :facepalm: ×3

Użytkownik Kłusownik edytował ten post dziś, 15:24

History of post edits

if (!get_pcvar_num(gPcvarBF2Active) & get_pcvar_string(gPcvarForum,forum, 31))
return PLUGIN_CONTINUE;


Oczywiście tu i tak ten warunek nie ma najmniejszego sensu, ale "get_pcvar_string" w warunku może być.
Quote

Kłusownik's Photo Kłusownik 31.05.2012

Niestety nie czyta cvara i powtarza zapis

np.:
formatex(forum, 63, "Forum: %s", forum);
menu_addtext(menu, forum);

To w menu pisze:

Forum: Forum:

Błąd kompilacji:
//AMXXPC compile.exe // by the AMX Mod X Dev Team
//
// bf2rank.sma // bf2/menu.inl(24) : warning 217: loose indentation
// bf2/menu.inl(31) : warning 217: loose indentation
// Header size: 5244 bytes
// Code size: 97900 bytes
// Data size: 77552 bytes
// Stack/heap size: 16384 bytes; max. usage is unknown, due to recursion
// Total requirements: 197080 bytes
// // 2 Warnings.
// Done.
//
// Compilation Time: 3,95 sec
// ----------------------------------------


Sma:

{
if (!get_pcvar_num(gPcvarBF2Active))
return PLUGIN_CONTINUE;

new menu = menu_create("\wBF2 \yElite Army^n\rMenu Glowne", "menu_handler");

menu_additem(menu, "\yPomoc", "0", 0);
menu_additem(menu, "\wStatysyki", "1", 0);
menu_additem(menu, "\yKup Odznaki \r/ \yVIP", "2", 0);
menu_additem(menu, "\wRezerwacja Nicku", "3", 0);
menu_additem(menu, "\rAdministracja^n", "4", ADMIN_LEVEL);
menu_additem(menu, "\wSklep", "5", 0);
menu_additem(menu, "\yZadania", "6", 0);
menu_addtext(menu, "^n\yWykonane przez \r~kiss", 0)
new forum[64]; get_pcvar_string(gPcvarForum, forum, 31);
formatex(forum, 63, "\yForum: \r%s", forum);
menu_addtext(menu, forum);
new headadmin[64]; get_pcvar_string(gPcvarHeadAdmin, headadmin, 31);
formatex(headadmin, 63, "\r%s", headadmin);
menu_addtext(menu, headadmin);

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

menuselection[id]=MENU_MAIN;

menu_display(id, menu, 0);


return PLUGIN_CONTINUE;
}

Edited by Kłusownik, 31.05.2012 18:13.
Quote

  • +
  • -
sebul's Photo sebul 31.05.2012

formatex coś nie zawsze działa przy takim zastosowaniu.
{
if (!get_pcvar_num(gPcvarBF2Active))
return PLUGIN_CONTINUE;

new menu = menu_create("\wBF2 \yElite Army^n\rMenu Glowne", "menu_handler");

menu_additem(menu, "\yPomoc", "0", 0);
menu_additem(menu, "\wStatysyki", "1", 0);
menu_additem(menu, "\yKup Odznaki \r/ \yVIP", "2", 0);
menu_additem(menu, "\wRezerwacja Nicku", "3", 0);
menu_additem(menu, "\rAdministracja^n", "4", ADMIN_LEVEL);
menu_additem(menu, "\wSklep", "5", 0);
menu_additem(menu, "\yZadania", "6", 0);
menu_addtext(menu, "^n\yWykonane przez \r~kiss", 0)
new temp1[32], temp2[64];
get_pcvar_string(gPcvarForum, temp1, 31);
formatex(temp2, 63, "\yForum: \r%s", temp1);
menu_addtext(menu, temp2);
get_pcvar_string(gPcvarHeadAdmin, temp1, 31);
formatex(temp2, 63, "\r%s", temp1);
menu_addtext(menu, temp2);

menuselection[id]=MENU_MAIN;

menu_display(id, menu, 0);


return PLUGIN_CONTINUE;
}

Teraz będzie dobrze.
Quote

Kłusownik's Photo Kłusownik 31.05.2012

Dzięki wielkie :) Tylko teraz mały problemik bo Zamknij jest pod klawiszem: 12 :D
No a niestety chyba nikt nie ma takiego klawisza ^^

Mozna to jakoś zmienić aby tego forum nie czytało jako nowa opcja w menu?
Quote

  • +
  • -
GwynBleidD's Photo GwynBleidD 31.05.2012

Zmień
menu_addtext(menu, temp2); 

na
[sma]menu_addtext(menu, temp2,0); [/sma]
we wszystkich wystąpieniach addtext

A co do powyższych poprawek: można zmienić formatex na format. Z dokumentacji formatex jasno wynika, że nie można używać tej samej zmiennej na którą się zapisuje w parametrach, ponieważ nie jest ona buforowana.
Edited by GwynBleidD, 31.05.2012 18:46.
Quote

  • +
  • -
sebul's Photo sebul 31.05.2012

{
if (!get_pcvar_num(gPcvarBF2Active))
return PLUGIN_CONTINUE;

new menu = menu_create("\wBF2 \yElite Army^n\rMenu Glowne", "menu_handler");

menu_additem(menu, "\yPomoc", "0", 0);
menu_additem(menu, "\wStatysyki", "1", 0);
menu_additem(menu, "\yKup Odznaki \r/ \yVIP", "2", 0);
menu_additem(menu, "\wRezerwacja Nicku", "3", 0);
menu_additem(menu, "\rAdministracja^n", "4", ADMIN_LEVEL);
menu_additem(menu, "\wSklep", "5", 0);
menu_additem(menu, "\yZadania", "6", 0);
new temp1[32], temp2[128], len;
get_pcvar_string(gPcvarForum, temp1, 31);
len = formatex(temp2, 127, "^n\yWykonane przez \r~kiss^n\yForum: \r%s", temp1);
get_pcvar_string(gPcvarHeadAdmin, temp1, 31);
formatex(temp2[len], 127-len, " \r%s", temp1);
menu_addtext(menu, temp2, 0);

menuselection[id]=MENU_MAIN;

menu_display(id, menu, 0);


return PLUGIN_CONTINUE;
}

a jak to nie pomoże, to po prostu nie używaj "menu_addtext", czyli
{
if (!get_pcvar_num(gPcvarBF2Active))
return PLUGIN_CONTINUE;

new menu = menu_create("\wBF2 \yElite Army^n\rMenu Glowne", "menu_handler");

menu_additem(menu, "\yPomoc", "0", 0);
menu_additem(menu, "\wStatysyki", "1", 0);
menu_additem(menu, "\yKup Odznaki \r/ \yVIP", "2", 0);
menu_additem(menu, "\wRezerwacja Nicku", "3", 0);
menu_additem(menu, "\rAdministracja^n", "4", ADMIN_LEVEL);
menu_additem(menu, "\wSklep", "5", 0);
new temp1[32], temp2[128], len;
get_pcvar_string(gPcvarForum, temp1, 31);
len = formatex(temp2, 127, "\yZadania^n\yWykonane przez \r~kiss^n\yForum: \r%s", temp1);
get_pcvar_string(gPcvarHeadAdmin, temp1, 31);
formatex(temp2[len], 127-len, " \r%s", temp1);
menu_additem(menu, temp2, "6", 0);

menuselection[id]=MENU_MAIN;

menu_display(id, menu, 0);


return PLUGIN_CONTINUE;
}

Ogólnie poczytaj sobie ten temat http://amxx.pl/topic...tworzenia-menu/
Quote

Kłusownik's Photo Kłusownik 31.05.2012

O dzięki za poradnik :)
Zobaczę jak to będzie jak info będzie za exit :) może bedzie estetycznie i przy okazji przydatnie :)
Quote