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

Tworzenie menu - przykłady


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

#1 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 13.12.2012 07:50

*
Popularny

Tworzenie menu

Wstęp wróć
Flagi gracza: wróć
W pliku "amxconst.inc"
Spoiler

Dodatkowo przydatny będzie ten temat -> http://amxx.pl/topic/60353-flagi/

Wywołanie funkcji komendą: wróć
Potrzebne/użyte funkcje:
  • register_clcmd
    register_clcmd(const client_cmd[], const function[], flags = -1, info[] = "");
    

    client_cmd[] - komenda która musi zostać wpisana w konsoli gracza
    function[] - nazwa funkcji która zostanie uruchomiona (musi to być funkcja publiczna)
    flags - flagi dostępu
    info - opis funkcji
  • lub register_concmd
    register_concmd(const cmd[], const function[], flags = -1, info[] = "");
    

    cmd[] - komenda która musi zostać wpisana w konsoli gracza lub w konsoli serwera
    function[] - nazwa funkcji która zostanie uruchomiona (musi to być funkcja publiczna)
    flags - flagi dostępu
    info - opis funkcji
  • client_print - do wyświetlenia tekstu u gracza
    client_print(index, type, const message[], any:...);
    

    index - id gracza
    type - typ wiadomości

    print_chat - wiadomość na czacie
    print_center - na środku ekranu
    print_console - w konsoli
    print_notify - w konsoli w trybie developerskim

    message[] - wiadomość
    any:... - ciągi formatujące
  • cmd_access - do sprawdzania praw dostępu do funkcji, która jest wywoływana komendą
    cmd_access(id, level, cid, num, bool:accesssilent = false);
    

    id - indeks gracza wywołującego komendę
    level - poziom dostępu
    cid - identyfikator komendy
    num - ilość parametrów razem z komendą (gdy brak parametrów podajemy 1)
    accesssilent - opcjonalny, jeśli podasz true, to komunikaty z błędami nie będą pokazywane
Przykład:
Spoiler


Formatowanie tekstu: wróć
^n - nowa linia
^t - odstęp, inaczej tabulator (różniący się od spacji)
\w - dalszy tekst będzie miał kolor biały
\y - dalszy tekst będzie miał kolor zółty
\r - dalszy tekst będzie miał kolor czerwony
\d - dalszy tekst będzie miał kolor szary
\R - dalszy tekst będzie wyrównany do prawej

Do formatowania tekstu (nie tylko w menu), można używać format lub formatex dla większej przejrzystości, a szczególnie gdy mamy dużo tekstu do formatowania.

Definicje klawiszy: wróć
W pliku "amxconst.inc"
Spoiler


Użycie switcha: wróć
Warto używać, szczególnie gdy w menu (i nie tylko) mamy dużo opcji.
Przykład:
Spoiler


Stare menu wróć
Do stworzenia starego menu, potrzebujemy:
  • register_menucmd
    register_menucmd(menuid, keys, const function[]);
    

    menuid - id naszego menu, które tworzy się za pomocą "register_menuid"
    keys - jakie klawisze ma rozpoznawać nasze menu, liczba 1023 jest dla wszystkich (od 1 do 0)
    function[] - nazwa funkcji w której pokazujemy menu
  • register_menuid
    register_menuid(const menu[], outside = 0);
    

    menu[] - nazwa menu
    outside - zamieniamy na 1, gdy menu jest z innego źródła, np. inny plugin
  • show_menu
    show_menu(index, keys, const menu[], time = -1, const title[] = "");
    

    index - id gracza
    keys - jakie klawisze ma rozpoznawać nasze menu, liczba 1023 jest dla wszystkich (od 1 do 0)
    menu[] - treść menu
    time - czas (w sekundach) wyświetlania menu, -1 oznacza, że menu zamknie się dopiero, gdy gracz naciśnie jakiś dostępny klawisz
    title[] - nazwa menu
  • Jest jeszcze register_menu, ale ja nigdy z tego nie korzystałem, więc nie będę teraz tej funkcji opisywał.
Przykład:
Spoiler

s1.png


Nowe menu wróć
Do stworzenia nowego menu, potrzebujemy:
  • menu_create - tworzenie menu oraz jego uchwytu
    menu_create(const title[], const handler[], ml = 0);
    

    title[] - nazwa menu oraz jego nagłówek gdy MPROP_TITLE nie ustawione
    handler[] - nazwa funkcji do której będą przekazywane informacje (musi to być funkcja publiczna)
    ml - nie trzeba podawać
  • menu_makecallback - tworzenie funkcji kontrolnej
    menu_makecallback(const function[]);
    

    function[] - nazwa funkcji kontrolnej (musi to być funkcja publiczna), w dalszej części będzie to bardziej opisane
  • menu_additem - dodawania opcji
    menu_additem(menu, const name[], const info[] = "", paccess = 0, callback = -1);
    

    menu - uchwyt stworzonego wcześniej menu
    name[] - nazwa dodawanej opcji
    info[] - dodatkowe informacje, które można przekazać do menu
    paccess - flagi dostępu do danej opcji, w dalszej części będzie to bardziej opisane
    callback - funkcja kontrolna, w dalszej części będzie to bardziej opisane
  • menu_setprop - konfiguracja menu
    menu_setprop(menu, prop, ...);
    

    menu - uchwyt stworzonego wcześniej menu
    prop - opcja z listy (plik "newmenus.inc"):

    #define MPROP_PERPAGE	1	/* Liczba opcji na stronę (param1 = liczba, 0=bez stronnicowania, 7=domyślnie oraz maksymalnie) */
    #define MPROP_BACKNAME 2 /* Nazwa opcji Back/Wstecz (param1 = tekst) */
    #define MPROP_NEXTNAME 3 /* Nazwa opcji Next/Dalej (param1 = tekst) */
    #define MPROP_EXITNAME 4 /* Nazwa opcji Exit/Wyjście (param1 = tekst) */
    #define MPROP_TITLE 5 /* Nagłówek menu (param1 = tekst) */
    #define MPROP_EXIT 6 /* Opcja wyjścia? (param1 = liczba, MEXIT_ALL - zawsze, MEXIT_NEVER - nidgy) */
    #define MPROP_NOCOLORS 8 /* Czy usunąć automatyczne kolory(param1 = liczba, 0=domyślnie) */
    #define MPROP_NUMBER_COLOR 10 /* Kolor numerów opcji (param1 = tekst, "\r"=domyślny) */

    ... - wartość wybranej opcji
  • menu_display - wyświetlenie menu
    menu_display(id, menu, page = 0);
    

    id - id gracza
    menu - uchwyt stworzonego wcześniej menu
    page - strona w menu, którą ma wyświetlić jako pierwszą
  • menu_destroy - niszczenie menu
    menu_destroy(menu);
    

    menu - uchwyt stworzonego wcześniej menu
  • menu_item_getinfo - pobieranie informacji z menu (nie do końca opisane)
    menu_item_getinfo(menu, item, &access, info[], infolen, name[] = "", namelen = 0, &callback);
    

    menu - uchwyt stworzonego wcześniej menu
    item - podajemy numer opcji z menu (zaczyna się od 0)
    access - flagi dostępu do danej opcji
    info[] - dodatkowe informacje danej opcji
    infolen - maksymalna długość tablicy info[]
    name[] - nazwa danej opcji
    namelen - maksymalna długość tablicy name[]
    callback - ? (chyba id/uchwyt z funkcji "menu_makecallback")
Przykłady:
Gdy menu jest zawsze takie same dla każdego gracza, wystarczy utworzyć je tylko raz
Spoiler

n1.png

Gdy menu zmienia się, czyli nie jest ciągle takie same, wtedy trzeba tworzyć je oraz niszczyć za każdym razem (z wykorzystaniem get_user_team)
Spoiler

n1.png

Przykład wykorzystania menu_item_getinfo, dodatkowo wykorzystane zostało także: is_user_alive, is_user_connected, get_user_name oraz num_to_str
Spoiler

n2a.png n2b.png


Funkcja kontrolna: wróć
Każda opcja w menu może mieć swoją funkcję kontrolną, która może ją włączyć lub wyłączyć.

Do tworzenia funkcji kontrolnej wykorzystujemy menu_makecallback.

Przykład:
Spoiler

n3.png


Przykłady menu na flagę wróć
Zarówno w starym menu, jak i nowym można ograniczać dostęp albo do całego menu, albo do poszczególnych opcji w menu. Poniżej będzie to pokazane w obu stylach menu.
W starym menu wróć
Blokowanie całego menu, gdy można je wywołać tylko poprzez komendę
Spoiler

Blokowanie całego menu, gdy można je wywołać nie tylko poprzez komendę, np. menu wyświetla się także przy spawnie
Spoiler

Blokowanie opcji w menu po wciśnięciu klawisza (czyli bez blokowania klawiszy)
Spoiler

Blokowanie opcji w menu przed wciśnięciem klawisza (czyli z blokowaniem klawiszy)
Spoiler


W nowym menu wróć
Blokowanie całego menu, gdy można je wywołać tylko poprzez komendę
Spoiler

Blokowanie całego menu, gdy można je wywołać nie tylko poprzez komendę, np. menu wyświetla się także przy spawnie
Spoiler

Blokowanie opcji w menu po wciśnięciu klawisza
Spoiler

Blokowanie opcji w menu przed wciśnięciem klawisza
Spoiler

n4.png

Można jeszcze daną opcję dodawać na flagę przy użyciu menu_makecallback, ale nie warto tego używać do takich rzeczy, skoro są lepsze i szybsze sposoby (te które wymieniłem wyżej).

Paczka pluginów użytych w tym poradniku: Załączony plik  tworzenie_menu.rar   281,57 KB  188 Ilość pobrań


No i tym sposobem doszliśmy do końca ;]
Wróć na początek
sebul (13.12.2012 10:45):
Załączniki dodane.

  • +
  • -
  • 21

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


#2 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 13.12.2012 11:40

Jest jeszcze register_menu, ale ja nigdy z tego nie korzystałem, więc nie będę teraz tej funkcji opisywał.

Właśnie ja tego używam. Czy coś jest nie tak z tą funkcją, jest mniej optymalna, czy coś ?
  • +
  • -
  • 0

#3 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 13.12.2012 12:03

Używając "register_menuid" możesz sobie bez problemu zapisać gdzieś id menu, a to czasami może być przydatne, do tego jeśli damy taką samą nazwę jak nazwa jakiegoś standardowego menu i drugi parametr ustawimy na 1, to można podmienić takie menu jakimś swoim (chyba, ale na pewno można blokować inne menu). A czy jest bardziej optymalnie, to raczej nie.
  • +
  • -
  • 4

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


#4 MoVo

    Początkujący

  • Zbanowany

Reputacja: 3
Nowy

  • Postów:15
  • Imię:Madzia
  • Lokalizacja:Krakow
Offline

Napisano 15.12.2012 16:59

Ładna Robota. +
Dołączona grafika
Dołączona grafika
Na Sprzedaż ! 2x Serwery
Kocham Dawidka <3

#5 GT Team

    Ten lepszy xD

  • Zbanowany

Reputacja: 321
Wszechpomocny

  • Postów:1 435
  • GG:
  • Imię:Tomasz i Grzegorz
  • Lokalizacja:Wojkowice
Offline

Napisano 23.12.2012 14:45

Super poradnik, złapałem literówkę, strasznie mnie razi :D :
"dla większej przerzystości". Proszę cię popraw bo nie wytrzymam :D

Nowa wersja Tower Defense 0.2 Alpha | Inne Mody -> Nowości

 


#6 Nestea****Lemon

    Herbata ?!

  • Użytkownik

Reputacja: 81
Zaawansowany

  • Postów:313
  • GG:
  • Imię:Dawid
  • Lokalizacja:Radzyń Podlaski
Offline

Napisano 23.12.2012 14:59

Przydatny i estetyczny poradnik ;)
  • +
  • -
  • 0

cY2lZ.gif

http://nestea-tdm.cba.pl <---- Nestea****Lemon Blog


Aktualnie tworzę moda do Minecrafta ^D^


#7 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 20.01.2013 14:15

Fajnie, tutaj taka ciekawostka, zamiast:
menu_additem(testmenu, "Tak", _, _, menucallback);
-->
menu_additem(testmenu, "Tak",.callback = menucallback);

Takie coś powinno także zadziałać ;)
  • +
  • -
  • 0

If you can dream it, you can do it.


#8 Klakier

    Volenti non fit iniuria

  • Power User

Reputacja: 391
Wszechpomocny

  • Postów:878
  • GG:
  • Imię:Sebastian
  • Lokalizacja:Mogilno
Offline

Napisano 20.01.2013 23:42

Mógłbyś jeszcze opisać: http://amxx.pl/dokum...6/menu-addblank
Niektórym się to przyda.

@edit miałem właśnie z tą funkcją problem, "dziczała" :D
sebul (21.01.2013 00:45):
Nie opiszę tego, bo funkcja ta w bardzo dziwny sposób działa (lub jest źle zrobiona/zbugowana) i według mnie jest mało praktyczna.

  • +
  • -
  • 0

Sell - System Klanów (wojny, top15 etc)

 

Kontakt GG: 7285018


#9 Gość_Lordzmozgem_*

  • Gość

Reputacja: 0

Offline

Napisano 31.01.2014 17:23

bardzo dobrze opisane :)

na pewno się przyda amatorom takim jak ja :D



#10 Petrus1610

    Zaawansowany

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:102
  • GG:
  • Imię:piotr
  • Lokalizacja:Kraków
Offline

Napisano 11.04.2014 11:46

Sorki, że odświeżę, ale mam pytanie.

 

Jak zrobić w starym menu, aby menu z opcjami TAK/NIE było pod numerkami np. 8/9?

 

Po prostu mam jedną funkcję, która wyświetla się w czasie gry i gracze przypadkowo klikają złe opcje. Proszę o pomoc.


  • +
  • -
  • 0

#11 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 11.04.2014 11:49

Na dzień dzisiejszy jest to możliwe wyłącznie ze starym menu. Tworzysz po prostu pozycje 8 i 9 ręcznie i te 2 klawisze rejestrujesz jako możliwe do naciśnięcia.
  • +
  • -
  • 0

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


#12 Petrus1610

    Zaawansowany

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:102
  • GG:
  • Imię:piotr
  • Lokalizacja:Kraków
Offline

Napisano 11.04.2014 15:33

Mam coś takiego:

    menu_additem(menu2, "Tak", nazwa_gracza[id]);
    menu_additem(menu2, "Nie", nazwa_gracza[id]);

i odpowiadające im case:

    switch(item)
    {
        case 0:
        {
}
case 1:
{
}

Dodaje menu_addblank(menu, 0); do momentu aż będzie 8,9 i zmieniam case na 8 i 9. Niestety, ale po uruchomieniu menu nic się nie wyświetla. Sorki, za pewnie trywialne pytania, ale proszę o pomoc jeszcze;p


  • +
  • -
  • 0

#13 VertekS

    Zaawansowany

  • Użytkownik

Reputacja: 48
Pomocny

  • Postów:80
  • Lokalizacja:amxxpc.exe
Offline

Napisano 11.04.2014 17:44

Na dzień dzisiejszy jest to możliwe wyłącznie ze starym menu. Tworzysz po prostu pozycje 8 i 9 ręcznie i te 2 klawisze rejestrujesz jako możliwe do naciśnięcia.

Funkcje menu_additem / menu_addblank służą do tworzenia NOWEGO menu. O tym, jak stworzyć takie menu jakie chcesz odsyłam do pierwszego postu tego wątku i punktu 2 "stare menu": http://amxx.pl/topic...ady/#stare_menu


  • +
  • -
  • 0

#14 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 11.04.2014 19:00

menu_addblank nie może być użyty na początku menu.


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


#15 Petrus1610

    Zaawansowany

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:102
  • GG:
  • Imię:piotr
  • Lokalizacja:Kraków
Offline

Napisano 11.04.2014 20:36

@up dzięki, o to mi chodziło!


  • +
  • -
  • 1

#16 elipson

    Nowy

  • Nowy

Reputacja: 0
Nowy

  • Postów:2
  • GG:
  • Imię:Kacper
  • Lokalizacja:Szczecin
Offline

Napisano 12.04.2014 20:31

Hmm wszystko dobrze i czytelnie napisane. Napracowałeś się i ułatwiłeś w pewnym stopniu nie któym osobą życie. + :)


  • +
  • -
  • 0

Chcesz się czegoś ode mnie dowiedzieć? Chcesz jakiś inforamcji? A może chciałbyś po prostu "od tak" napisać? Nic trudnego. Zapraszam na PW. Tylko pamiętaj. NIe spamuj. Gdy długo* czegasz na odpowiedź być może jestem zajęty ale spokojnie - odpiszę. :)

 

 

*długo - pojęcie względne.


#17 MrBully

    Wszechwidzący

  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:233
  • Imię:Mateusz
  • Lokalizacja:Nieznana
Offline

Napisano 19.08.2015 09:50

jest jeszcze możliwość tworzenia menu przez formatex przez używanie

iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0;

  :) też ciekawa opcja

`ps sory ze refreszuje po roku nie zwróciłem uwagi :(


Użytkownik TheMarkerxD edytował ten post 19.08.2015 09:57

  • +
  • -
  • 0

#18 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 19.08.2015 12:41

jest jeszcze możliwość tworzenia menu przez formatex przez używanie

iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0;

  :) też ciekawa opcja

`ps sory ze refreszuje po roku nie zwróciłem uwagi :(

Opisz to dokładniej


  • +
  • -
  • 0

#19 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 19.08.2015 16:48

jest jeszcze możliwość tworzenia menu przez formatex przez używanie

iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0;
  :) też ciekawa opcja
`ps sory ze refreszuje po roku nie zwróciłem uwagi :(

Nie bardzo rozumiem co masz na myśli, ale jeśli chodzi o używanie formatex do tworzenia menu, to tak owszem, jest to nawet napisane w pierwszym poście, a jeśli chodzi o jakąś zwykłą zmienną (nie stałą), to raczej jest to oczywiste.
  • +
  • -
  • 0

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


#20 MrBully

    Wszechwidzący

  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:233
  • Imię:Mateusz
  • Lokalizacja:Nieznana
Offline

Napisano 20.08.2015 10:09

 

jest jeszcze możliwość tworzenia menu przez formatex przez używanie

iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0;

  :) też ciekawa opcja

`ps sory ze refreszuje po roku nie zwróciłem uwagi :(

Opisz to dokładniej

 

 

 

 

 

jest jeszcze możliwość tworzenia menu przez formatex przez używanie

iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0;
  :) też ciekawa opcja
`ps sory ze refreszuje po roku nie zwróciłem uwagi :(

 

Nie bardzo rozumiem co masz na myśli, ale jeśli chodzi o używanie formatex do tworzenia menu, to tak owszem, jest to nawet napisane w pierwszym poście, a jeśli chodzi o jakąś zwykłą zmienną (nie stałą), to raczej jest to oczywiste.

 

 

 

proszę bardzo

Spoiler

patrzcie na kawałem kodu który oznaczyłem czyli ShowSkillsMenu(id)

na podstawie tego pisze własny plugin na skille

#include <amxmodx>
#include <amxmisc>
#include <jailbreak>

#define PLUGIN "Nowe Menu"
#define VERSION "0.1"
#define AUTHOR "Sebul"

new skillmenu; 
new punktyhp[33];
new punktyhp_limit[33];
new jbpack;


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say /skille", "skillemenu");
	
	
}
public skillemenu( id )
{	
	static szMenu[ 512 ], iLen, iKeys;
	
	if( !iKeys )
	{
		iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_3 | MENU_KEY_4 | MENU_KEY_5 | MENU_KEY_6 | MENU_KEY_0;
	}
	
	
	
	iLen	=	formatex( szMenu, charsmax( szMenu ), "\yMenu Umiejętnościi^n^n" );
	iLen	+=	formatex( szMenu[ iLen ], 511 - iLen, "\r1. tekst");
	iLen	+=	formatex( szMenu[ iLen ], 511 - iLen, "\r2. tekst2" );
	iLen	+=	formatex( szMenu[ iLen ], 511 - iLen, "\r3. tekst3" );
	iLen	+=	formatex( szMenu[ iLen ], 511 - iLen, "\r4. tekst4" );
	
	iLen	+=	formatex( szMenu[ iLen ], 511 - iLen, "^n\r0. \wExit" );
	
	show_menu( id, iKeys, szMenu, -1, "Skills Menu" );
}


public SkillsMenu_Handler( id, iKey )
{
	switch( ( iKey + 1 ) % 10 )
	{
		case 0: {
			punktyhp_limit[id] ==10;
			if(punktyhp[id] < punktyhp_limit)
			{
		
			if(!sprawdz(id,60)) return PLUGIN_HANDLED;
				punktyhp[id]++;
			}
			else
			
			}
			else
					client_print(id, print_chat, "[Skille] Nie masz tyle szlugow.");
		}
		case 1: {
			client_print(id, print_chat, "opcja 2.");
		}
		case 2: {
			client_print(id, print_chat, "opcja 3.");
			
		}
		case 3: {
			client_print(id, print_chat, "opcja 4.");
			
		}
	}
	
	return PLUGIN_HANDLED;
}

public sprawdz(id,jbpack){
	if (get_user_jbpack[id] >= jbpack){
		get_user_jbpack[id] -= jbpack
		return true;
	}
	if(!is_user_alive(id)){
		ColorChat(id, GREEN, "[%s]^x01 Nie zyjesz", prefix);
		return false;
	}
	if(get_user_jbpack[id] < jbpack)
	{
		ColorChat(id, GREEN, "[%s]^x01 Nie masz tylu szlugow, aby to ulepszyć, prefix);
		return false;
	}
	return PLUGIN_CONTINUE;
}

on jeszcze jest w budowie :D

 

 

no i jeszcze że można  tak jak już tu wwymieniam to przez format  & menu czyli  tekst któy ma się pojawić w menu jest z format

dopiero pózniej skapnołem się ze można

użyć takiego czegoś jak tu niżej  ale w sumie na dobre mi wyszło nową wiedze nabyłem

public PrzydzielPunkty(id)
{
	new inteligencja[65];
	new zdrowie[60];
	new wytrzymalosc[60];
	new kondycja[60];
	new tytul[25];
	format(inteligencja, charsmax(inteligencja), "Inteligencja: \r%i \y(Zwieksza sile perkow i umiejetnosci klasy)", PobierzInteligencje(id, 1, 1, 1));
	format(zdrowie, charsmax(zdrowie), "Zdrowie: \r%i \y(Zwieksza zdrowie)", PobierzZdrowie(id, 1, 1, 1));
	format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: \r%i \y(Zmniejsza obrazenia)", PobierzWytrzymalosc(id, 1, 1, 1));
	format(kondycja, charsmax(kondycja), "Kondycja: \r%i \y(Zwieksza tempo chodu)", PobierzKondycje(id, 1, 1, 1));
	format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]);
	new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
	menu_additem(menu, inteligencja);
	menu_additem(menu, zdrowie);
	menu_additem(menu, wytrzymalosc);
	menu_additem(menu, kondycja);
	menu_setprop(menu, MPROP_EXIT, 0);
	menu_display(id, menu)

kawałem kodu qtm cod mod :)

 

mysle że to co napisałem przyda się w pianiu menu aczkolwiek 1 opcja nie jest aż tak stosowana  często  w większości menu z poradnika sebul i format z menu_additem jest stosowane


Użytkownik TheMarkerxD edytował ten post 20.08.2015 10:20

  • +
  • -
  • -1




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

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