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] Czy dobrze stworzyłem menu?


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 Xterq

    Banned

  • Zbanowany

Reputacja: -7
Nowy

  • Postów:71
  • Imię:Marek
  • Lokalizacja:Kamienna Góra
Offline

Napisano 07.11.2012 17:11

Cześć :D
Czy jest dobrze zrobione te menu:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
     register_clcmd("say /gildia", "Gildia")
}


public Gildia(id)
{
	    new menu = menu_create("Menu Gildi:^n", "Menu1Handler")
    
	    new aktywna=menu_makecallback("aktywna_func");
	    new nieaktywna=menu_makecallback("nieaktywna_func");
    
	    new AuthID[35]
	    get_user_name(id,AuthID,34)
	    tryb[id] = 0
    
	    if(gildia_lvl[id] == 0) tryb[id] = 0
	    else if(equal(AuthID,nazwa_zalozycial[id])) tryb[id] = 1
	    else tryb[id] = 2
    
	    switch(tryb[id])
    
	    {    
	    case 1:    
	    {
    
	    menu_additem(menu, "Zaloz gildie","",0,aktywna);
	    menu_additem(menu, "Ogolnie","",0,aktywna);
    
	    }
	    case 1:    
	    {
    
	    if(ilosc_czlonkow[id] < 2+gildia_lvl[id]) menu_additem(menu, "Zapros graczy","",0,aktywna);
	    if(ilosc_czlonkow[id] < 2+gildia_lvl[id]) menu_additem(menu, "Zapros graczy","",0,nieaktywna);
    
	    menu_additem(menu, "Opis Gildi","",0,aktywna);
    
	    if(player_lvl[id]>5) menu_additem(menu, "Wplac expa","",0,aktywna);
	    if(player_lvl[id]>5) menu_additem(menu, "Wplac expa","",0,nieaktywna);
    
	    if(player_kamien[id]) menu_additem(menu, "Daj Kamienia","",0,aktywna);
	    if(player_kamien[id]) menu_additem(menu, "Daj Kamienia","",0,nieaktywna);
    
	    if(ilosc_czlonkow[id]>1) menu_additem(menu, "Wyrzuc Gracza","",0,aktywna);
	    if(ilosc_czlonkow[id]>1) menu_additem(menu, "Wyrzuc Gracza","",0,nieaktywna);
    
	    menu_additem(menu, "Rozdaj punkty","",0,aktywna);
	    menu_additem(menu, "Usun Gildie","",0,aktywna);
    
	    }
	    case 2:    
	    {    
    
	    menu_additem(menu, "Opis Gildi","",0,aktywna);
    
	    if(player_lvl[id]>5) menu_additem(menu, "Wplac expa","",0,aktywna);
	    if(player_lvl[id]>5) menu_additem(menu, "Wplac expa","",0,nieaktywna);
    
	    if(player_kamien[id]) menu_additem(menu, "Daj Kamienia","",0,aktywna);
	    if(player_kamien[id]) menu_additem(menu, "Daj Kamienia","",0,nieaktywna);
    
	    menu_additem(menu, "Odejdz z gildi","",0,aktywna);
    
	    menu_display(id, menu)
}


#2 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 07.11.2012 17:54

Masz 2 razy case 1: w switchu po co? Popraw to bo nawet nie wiem jak wg Ciebie powinno działać.

Nie podaje się 2x tych samych opcji w menu, jedną z handlerem aktywna, drugą z nieaktywna. Tworzysz JEDEN handler, który będzie sprawdzał czy daną opcję dla gracza uaktywnić czy nie, albo tworzysz 2 tak jak tutaj, zwracające sztywno ustalone wartości, ale za pomocą odpowiednich warunków umieszczasz opcję z jednym tylko odpowiednim handlerem. Dla czytelności kodu polecam miniwarunki (warunek?wartość_gdy_spełniony:wartość_gdy_niespełniony) jeśli chcesz się trzymać 2. sposobu.

Masz różną liczbę i kolejność opcji w zależności od warunku w switchu. Przydałoby się jakoś je później od siebie rozróżnić w handlerze, a najlepiej jest to zrobić poprzez użycie pola info w odpowiedni sposób. http://amxx.pl/topic...tworzenia-menu/ tu masz tego dobry opis.

Odpowiedź na Twoje pytanie: nie jest dobrze zrobione to menu

Użytkownik GwynBleidD edytował ten post 07.11.2012 17:55

  • +
  • -
  • 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


#3 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 14.11.2012 18:14

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




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

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