Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] Błędy w pluginie /menu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
10 odpowiedzi w tym temacie

#1 Makale

    Wszechwidzący

  • Użytkownik

Reputacja: 12
Początkujący

  • Postów:234
  • Lokalizacja:Płock
Offline

Napisano 16.05.2012 18:22

Siemka. Na podstawie innego pluginu napisałem inny ... Teraz chciałem pozmieniać trochę go i nie chcę się skompilować .. błędów nawaliłem sporo i nie wiem w czym tki problem ... Mógłby mi ktoś miły (lub też nie) wytłumaczyć dokładnie gdzie zrobiłem błędy? To mój drugi plugin więc jestem zielonek.
Oto plug:


#include <amxmodx>
#include <amxmisc>

#define PLUGIN "menu_jail_imp-skill"
#define VERSION "2.0"
#define AUTHOR "Makale"



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


}

public menu(id)
{
if(get_user_team(id) == 2) {
new menu = menu_create("\rMenu dla Klawisza", "wybieranie_CT")
menu_additem(menu, "\wProwadz", "1", 0)
menu_additem(menu, "\wAresztuj wieznia /d(musisz do niego podejsc)", "2", 0)
menu_additem(menu, "\wFreeDay menu", "3", 0)
menu_additem(menu, "\wWalka wiezniow", "4", 0)
menu_additem(menu, "\wCzapki", "5", 0)
menu_additem(menu, "\wTransfer do TT", "6", 0)
menu_additem(menu, "\wNastepna mapa", "7", 0)
menu_additem(menu, "\wCzas do konca mapy", "8", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

menu_display(id, menu, 0)
}
if(get_user_team(id) == 1) {
new menu = menu_create("\rMenu dla Wieznia", "wybieranie_T")
menu_additem(menu, "\wCzapki", "1", 0)
menu_additem(menu, "\wCzas do konca mapy", "2", 0)
menu_additem(menu, "\wNastepna mapa", "3", 0)
menu_additem(menu, "\wWybierz zyczenie \d(dla ostatniego wieznia)", "4", 0)
menu_additem(menu, "\wOtowrz cele \d(cele sie otworza gdy 80% tt zrobi to samo co Ty)", "5", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)

menu_display(id, menu, 0)
}
}

public wybieranie_CT(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)

new key = str_to_num(data)


switch(key)
{
case 1: {
client_cmd(id,"say /simon")
menu_destroy(menu)
return PLUGIN_HANDLED
}

case 2: {
client_cmd(id,"say /arrest")
menu_destroy(menu)
return PLUGIN_HANDLED
}

case 3: {
client_cmd(id,"say /fd")
menu_destroy(menu)
return PLUGIN_HANDLED
}
case 4: {
client_cmd(id,"say /box")
client_print(id, print_chat,"Walka wlaczona!")
menu_destroy(menu)
return PLUGIN_HANDLED
}

case 5: {
client_cmd(id,"say /czapki")
menu_destroy(menu)
return PLUGIN_HANDLED
}

case 6: {
client_cmd(id,"say /nomic")
menu_destroy(menu)
return PLUGIN_HANDLED
}

case 7: {
client_cmd(id,"say timeleft")
return PLUGIN_CONTINUE
}

case 8: {
client_cmd(id,"say nextmap")
menu_destroy(menu)
return PLUGIN_HANDLED
}
}
menu_destroy(menu)
return PLUGIN_HANDLED

}

public wybieranie_T(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64]
new acces, callback
menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)

new key = str_to_num(data)


switch(key)
{
case 1: {
client_cmd(id,"say /czapki")
menu_destroy(menu)
return PLUGIN_HANDLED
}

case 2: {
client_cmd(id,"say timeleft")
return PLUGIN_CONTINUE
}

case 3: {
client_cmd(id,"say nextmap")
menu_destroy(menu)
return PLUGIN_HANDLED
}

case 4: {
client_cmd(id,"say /duel")
client_print(id, print_chat,"Wybierz zyczenie!")
menu_destroy(menu)
return PLUGIN_HANDLED
}

case 5: {
client_cmd(id,"say_team /cele")
menu_destroy(menu)
return PLUGIN_HANDLED
}
menu_destroy(menu)
return PLUGIN_HANDLED
}



/* z - menu
/* x - puste (jb radio - robie)
/* c - puste (jb radio - robie)
/* v - rewizja



Za pomoc dzięki.
  • +
  • -
  • 0

Poszukuję: serwerów do sieci, grafika do sieci oraz kilku stron WWW (prywatnych), adminów na serwery, itp.

Szukasz zajęcia na wolne chwile ? Pisz !

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

Zapraszam !


#2 ParadisO

    Wszechmogący

  • Power User

Reputacja: 128
Zaawansowany

  • Postów:689
  • Lokalizacja:Częstochowa
Offline

Napisano 16.05.2012 18:37

po tym
case 5: {
client_cmd(id,"say_team /cele")
menu_destroy(menu)
return PLUGIN_HANDLED
}

musisz dać jeszcze jedną klamrę zamykającą :)
  • +
  • -
  • 1

#3 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.05.2012 03:18

1. Przeczytaj ten poradnik: Dobre i złe nawyki tworzenia menu - AMXX.pl: Support AMX Mod X bo widzę, że nie wiesz do czego służy info. Dodatkowo możesz uprościć dosyć znacznie to menu, gdyż używasz samych komend (nawet komend say samych)
2. brak klamry zamykającej
3. Kod SMA wstawia się w odpowiednich znacznikach [sma] na tym forum
4. Nieładnie jest komuś bindować klawisz z... Jest on używany do komend radiowych i nie tylko, więc gdy ktoś pójdzie na inny serwer CS, będzie miał Twojego binda i zamiast działania domyślnego tego klawisza będzie spamował w czacie /menu. Lepiej użyj klawisza V i binduj tam komendę bez say (dodatkowo dodaj deklarację komendy nie-say, np /menu samego) lub "podczep" się pod domyślną komendę znajdującą się pod klawiszem Z (komenda radio1, pamiętaj aby zwrócić plugin_handled, aby zablokować domyślne menu z CSa. Nie wiem, czy nie będziesz musiał dodatkowo przyblokować pojedyńczych komunikatów radiowych, jak coś to pytaj)

Użytkownik GwynBleidD edytował ten post 17.05.2012 03:18

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#4 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 18.05.2012 03:02

NIE BINDUJ klawiszy graczom. Jest to bardzo nie ładne i tylko stracisz graczy, którzy będą musieli na nowo konfigurować Ustawienia.
@UP Ingerowanie w ustawienia gracza, zwłaszcza autobindowanie jest niedość, że zabronione przez Regulamin forum AMXX.pl, to jeszcze bardzo irytujące dla graczy.
Nie wiem w ogóle, dlaczego NAKŁANIASZ DO BINDOWANIA :yikes: Osobiście np. mam pod "V" spray i nie wyobrażam sobie, żeby mi ktoś miał cokolwiek tam bindować.
Każdy ma inną konfigurację klawiszy i nie można nakłaniać, żeby bindować komuś klawisz V, no halo? :facepalm:

#5 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 18.05.2012 10:39

Zauważyłeś słowo "lepiej" w moim poście? Nie namawiam, ale jak już ma to robić to lepiej niech robi na domyślnie nieprzypisanym do niczego klawiszu... Zresztą bardzo wiele serwerów binduje właśnie klawisz V jako menu serwera.

Użytkownik GwynBleidD edytował ten post 18.05.2012 10:39

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#6 Makale

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 12
Początkujący

  • Postów:234
  • Lokalizacja:Płock
Offline

Napisano 18.05.2012 20:54

ParadisO - dzięki

GwynBleidD :
AD1.Zwróc uwagę, że co innego jest dla TT jak i CT, więc nie wiem jak te same komendy say ..
AD2 Podziękował
AD3 Sory, nie czytałem reg - pośpiech. Sory
AD4 Co to tego z to tylko pod testy. Zrobię pod V, gdy zmienie binda w innym pluginie.

Nie wiem, czy nie będziesz musiał dodatkowo przyblokować pojedyńczych komunikatów radiowych, jak coś to pytaj)

Właśnie o co chodzi ? :) Wcześniej mi podobne menu chodziło ...

benio101 - to tylko pod testy bo mi się ot tak sobie z wpisało ...
  • +
  • -
  • 0

Poszukuję: serwerów do sieci, grafika do sieci oraz kilku stron WWW (prywatnych), adminów na serwery, itp.

Szukasz zajęcia na wolne chwile ? Pisz !

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

Zapraszam !


#7 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 19.05.2012 19:08

co do 1 punktu, np tak:

public menu(id) {
new menu
if(get_user_team(id) == 2) {
menu = menu_create("\rMenu dla Klawisza", "wybieranie")

menu_additem(menu, "\wProwadz", "/simon")
menu_additem(menu, "\wAresztuj wieznia /d(musisz do niego podejsc)", "/arrest")
menu_additem(menu, "\wFreeDay menu", "/fd")
menu_additem(menu, "\wWalka wiezniow", "/box")
menu_additem(menu, "\wCzapki", "/czapki")
menu_additem(menu, "\wTransfer do TT", "/nomic")

} else if(get_user_team(id) == 1) {
menu = menu_create("\rMenu dla Wieznia", "wybieranie")
menu_additem(menu, "\wCzapki", "/czapki")
menu_additem(menu, "\wWybierz zyczenie \d(dla ostatniego wieznia)", "/duel")
menu_additem(menu, "\wOtowrz cele \d(cele sie otworza gdy 80% tt zrobi to samo co Ty)", "/cele")
}
menu_additem(menu, "\wNastepna mapa", "nextmap");
menu_additem(menu, "\wCzas do konca mapy", "timeleft");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, menu);
}

public wybieranie(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}

new cmd[32], access;
menu_item_getinfo(menu, item, access, cmd, 31);
client_cmd(id, "say %s", cmd);

menu_destroy(menu);
return PLUGIN_HANDLED;
}

Przy okazji opcje sprawdzenia next mapy i czasu do końca dałem dla obu teamów, będą one wyświetlane w menu również dla spectów dzięki temu ;) No wylądowały one przez to na końcu menu, ale to chyba nie problem :P

Właśnie o co chodzi ? :) Wcześniej mi podobne menu chodziło ...


Tu nie jestem po prostu pewien, czy komendy radio1, radio2, radio3 są wykonywane po stronie serwera czy klienta. Jeśli po stronie klienta, to może się zdarzyć, że po nadpisaniu w serwerze tych komend będą one prawidłowo działały i będą wyświetlały odpowiednie menu, ale dodatkowo wybranie odpowiedniego numeru z tych menu również będzie emitowało komendę radiową, która domyślnie pod tym numerem jest zapisana (return PLUGIN_HANDLED tu może nie wystarczyć). Ale jak już pisałem, nie jestem pewien bo dawno tego nie stosowałem w pluginach. Póki nie sprawdzisz to się nie dowiesz ;) Jeśli emitowałoby to komendy radiowe, będziesz musiał je ręcznie blokować.

Użytkownik GwynBleidD edytował ten post 19.05.2012 19:10

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#8 Makale

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 12
Początkujący

  • Postów:234
  • Lokalizacja:Płock
Offline

Napisano 20.05.2012 14:40

Wow :) Kodzik mili oko ;P
Podczas kompilacji mam błędy ;/

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

menu_jail_imp-skill.sma(13) : warning 217: loose indentation
menu_jail_imp-skill.sma(32) : warning 217: loose indentation
menu_jail_imp-skill.sma(50) : error 088: number of arguments does not match definition

1 Error.
Could not locate output file menu_jail_imp-skill.amxx (compile failed).



#include <amxmodx>
#include <amxmisc>

#define PLUGIN "menu_jail_imp-skill"
#define VERSION "2.0"
#define AUTHOR "Makale"



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


}

public menu(id) {
new menu
if(get_user_team(id) == 2) {
menu = menu_create("\rMenu dla Klawisza", "wybieranie")

menu_additem(menu, "\wProwadz", "/simon")
menu_additem(menu, "\wAresztuj wieznia /d(musisz do niego podejsc)", "/arrest")
menu_additem(menu, "\wFreeDay menu", "/fd")
menu_additem(menu, "\wWalka wiezniow", "/box")
menu_additem(menu, "\wCzapki", "/czapki")
menu_additem(menu, "\wTransfer do TT", "/nomic")

} else if(get_user_team(id) == 1) {
menu = menu_create("\rMenu dla Wieznia", "wybieranie")
menu_additem(menu, "\wCzapki", "/czapki")
menu_additem(menu, "\wWybierz zyczenie \d(dla ostatniego wieznia)", "/duel")
menu_additem(menu, "\wOtowrz cele \d(cele sie otworza gdy 80% tt zrobi to samo co Ty)", "/cele")
}
menu_additem(menu, "\wNastepna mapa", "nextmap");
menu_additem(menu, "\wCzas do konca mapy", "timeleft");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, menu);
}

public wybieranie(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}

new cmd[32], access;
menu_item_getinfo(menu, item, access, cmd, 31);
client_cmd(id, "say %s", cmd);

menu_destroy(menu);
return PLUGIN_HANDLED;
}

Użytkownik Makale edytował ten post 20.05.2012 14:40

  • +
  • -
  • 0

Poszukuję: serwerów do sieci, grafika do sieci oraz kilku stron WWW (prywatnych), adminów na serwery, itp.

Szukasz zajęcia na wolne chwile ? Pisz !

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

Zapraszam !


#9 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 21.05.2012 03:09

zamień linie 49 i 50 na te:
new cmd[32], access, callback;
menu_item_getinfo(menu, item, access, cmd, 31, _, _, callback);


A te warningi to po prostu pomieszane wcięcia. Naprawisz wcięcia i wszystko będzie OK.

Użytkownik GwynBleidD edytował ten post 21.05.2012 03:10

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#10 Makale

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 12
Początkujący

  • Postów:234
  • Lokalizacja:Płock
Offline

Napisano 21.05.2012 18:31

Dzięki za pomoc + poleciały. Ostrzeżeń wszystkich nie usunąłem, aż dziwne :D

Jeszcze raz dzięki :)
  • +
  • -
  • 0

Poszukuję: serwerów do sieci, grafika do sieci oraz kilku stron WWW (prywatnych), adminów na serwery, itp.

Szukasz zajęcia na wolne chwile ? Pisz !

b_350_20_5A6C3E_383F2D_D2E1B5_2E3226.png

Zapraszam !


#11 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 21.05.2012 18:34

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych