←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Czy po wybraniu z menu EXIT m...

Zablokowany

  • +
  • -
Rivit - zdjęcie Rivit 11.05.2014

Witam. Mam taki fragment kodu:
if(item == MENU_EXIT){
    menu_destroy(menu)
    return PLUGIN_CONTINUE
}
Czy musze potem niszczyc menu? Czy wystarczy samo return?
Odpowiedz

  • +
  • -
BlackPerfum - zdjęcie BlackPerfum 11.05.2014

Nie trzeba go niszczyć, lecz jeśli go nie zniszczysz amxx będzie przechowywał o nim informacje. Tworzenie menu w plugin_init nie różni się niczym od tworzenia w innym etapie gry. Najlepiej by było wszystkie stworzyć raz ( nie ważne w jakim etapie gry (tylko nie za wcześnie) ) i wszystkie niszczyć w plugin_end (lub innym evencie pod koniec mapy choc pewnie nic by sie nie stało gdybyś nie zniszczył menu bo samo by się zniszczyło) ale to tylko moja wizja dobrego działania i nie zawsze mozemy menu tworzyc raz. Czasem potrzebujemy dynamizmu a funkcje od menu nie daja nam 100% kontroli. Gdyby nie wbudowane info i możliwośc zmiany nazwy itemu w połowicznym locie to bym wybrał stare menu ale cóz nie mozna miec wszystkiego. Funkcje w której odbierasz opcje wybrane przez gracza nie musisz nawet zakańczać instrukcją return. Tylko pamiętaj że opcja wyjscie/dalej/wstecz także do ciebie dochodzi. a nie zawsze jest to pożądana

 

 

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 11.05.2014

Widze ze wróciłeś na forum.

Ostatnie zdanie. Jak to do mnie dochodzi??
A jesli nie będę uzywal juz tego menu drugi raz to oplaca sie zniszczyc?
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 11.05.2014

Nie będziesz używał drugi raz? Niszcz. Jestem wręcz przekonany, że gdybyś tak tworzył bardzo dużo tych menu i ich nie niszczył, to serwer w końcu by nie wyrabiał. A co do sposobu i miejsca tworzenia menu, są o tym przynajmniej 3 tematy w poradnikach.
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 11.05.2014

Dobra.

Ale o co chodzi z tym:
Tylko pamietaj ze opcja wyjscia/dalej/wstecz takze do ciebie dochodzi, a nie zawsze jest to pozadane - BlackPerfum
?
Odpowiedz

  • +
  • -
BlackPerfum - zdjęcie BlackPerfum 11.05.2014

O to chodzi że jak ktoś kliknie 8/9/0 (domyślne klawisze wstecz/dalej/wyjscie) to takze idzie do ciebie a jeśli nie sprawdzasz klawiszy tylko lecisz na wszystkie tą samą funkcją to może spowodować błąd

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 11.05.2014

O to chodzi że jak ktoś kliknie 8/9/0 (domyślne klawisze wstecz/dalej/wyjscie) to takze idzie do ciebie a jeśli nie sprawdzasz klawiszy tylko lecisz na wszystkie tą samą funkcją to może spowodować błąd

 

 

Jak to idzie do mnie?

Dalej nie rozumiem

Odpowiedz

  • +
  • -
BlackPerfum - zdjęcie BlackPerfum 11.05.2014

heh najmniej związana rzecz z tematem cię zaciekawiła xD

#define MENU_EXIT	-3
#define	MENU_BACK	-2
#define MENU_MORE	-1

Pamiętaj po prostu o tym a nic złego ci się nie stanie

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 11.05.2014

No okej czyli mam też robić taki fragment dla tych trzech opcji???

Odpowiedz

  • +
  • -
BlackPerfum - zdjęcie BlackPerfum 11.05.2014

To zależy od tego jak operujesz nad 3 parametrem handlera (domyślnie zmienna "item"). Jeśli if/switch to okey ale jeśli po prostu używasz tą zmienną jako danych tzn. masz np. menu w którym można sobie hp dodać 1 opcja 10 druga 20 itd 17 opcja 170 hp.

 

I robisz coś takiego w handlerze:

public LapiePrzyciski(id,menu,item)
{
	set_user_health(id,get_user_health(id)+item*10)
}

W takim przypadku (o ile nie popełniłem literówki w 4 linijkach kodu) jak gracz kliknie wyjscie/dalej/wstecz to zabierze mu hp 30/10/20

Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 11.05.2014

Z tego co się orientuję, to wstecz/dalej nie łapie w handlerze, ale wyjście jak najbardziej.
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 11.05.2014

Aaaa. O to chodziło cały czas.

dzięki. Juz rozumiem.

Rozwiazane.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 12.05.2014

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany