Tabela Serwerów Pykownia.pl

ID Gra MOD Adres IP Monitoring GameTracker HLTV Połącz
#1 ONLY DD2 dd2.pykownia.pl
#2 JAILBREAK 193.33.177.16:27030 WRACAMY NIEBAWEM
#3 DEATHRUN 193.33.177.12:27060
Rust
#4 Vanilla 188.165.22.92:28755
Garry's Mod
#5 TTT 185.30.124.110:30201
TeamSpeak 3
#6 TeamSpeak 3 ts3.pykownia.pl
Zaloguj się, aby obserwować  
Obserwujący 0
AwIlL^^

[AMXX] Zaawansowane 4 - tworzenie menu

2 posty w tym temacie

Witam, tym razem coś prostszego, czyli tworzenie menu
Przedstawię tworzenie według nowych standardów, jak ktoś będzie chciał się dowiedzieć jak kiedyś się tworzyło menu, to może mnie o to poprosić i zrobię odpowiedni temat :)

wszystkie natywy, które są potrzebne są w newmenus.inc, dokumentacja jest podpięta pod dokumentację amxmodx.inc i nie trzeba tego dopisywać na początku pluginu

przydatnym natywem do menu może być register_clcmd - jest to rejestrowanie komendy, która wywołuje funkcje kiedy gracz wpisze komendę do konsoli :)
Budowa:
register_clcmd(const command[], const function[], flags = -1, comment[] = "");
command[] - komenda jaka, która wywołuje funkcje np "say /klasa" - kiedy gracz w chacie wpisze /klasa to wywoła się funkcja
function[] - nazwa funkcji, która ma się wywołać np "WybierzKlase"
flags - flagi dostępu np ADMIN_KICK i inne stałem ADMIN_ (opcjonalne)
comment[] - komentarz (opcjonalne)

register_clcmd("say /menu", "PokazMenu", ADMIN_LEVEL_H, "pod /menu gracze vip (flaga t) mają menu");

teraz można przejść do budowy funkcji "PokazMenu"

Spoiler

public PokazMenu(id)
{
    new menu = menu_create("\yMenu VIPa:\r", "PokazMenu_handler");
//tworzy menu i zwraca jego id
    //menu_create(const title[], const handler[]);
    //title[] - tytul menu
    //handler[] - funckja w ktorej opisuje sie dzialanie menu
    menu_additem(menu, "\ydodaj 100 hp"); //dodaje opcje do menu
    menu_additem(menu, "\ydodaj 50 hp");
    menu_setprop(menu, MPROP_EXITNAME, "\ywyjscie"); //zmiana napisu przycisku wyjścia na "wyjście", standardowo jest "exit"
    menu_display(id, menu); //pokazuje menu u gracza
}
public PokazMenu_handler(id, menu, item)
{

    //id - id gracza
    //menu - id menu
    //item - wybrana opcja przez gracza
    if(item == MENU_EXIT) //jezeli gracz przycisnal "wyjscie"
    {
        menu_destroy(menu);
//usuwa menu z pamięci serwa
        return PLUGIN_HANDLED; //przerywa działanie funkcji
    }
    switch(item)
//funkcja wielokrotnego wyboru
    {
        case 0:
//kiedy wybral 1
        {
            set_user_health(id, get_user_health(id)+100);
//wymaga dokumentacji fun, zmienia ilość hp gracza
        }
        case 1:
//kiedy wybral 2
        {
            set_user_health(id, get_user_health(id)+50);
//wymaga dokumentacji fun
        }
    }
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

Jest stworzone proste menu z dwiema opcjami 

nazwy opcji mogą być wyświetlone w czterech kolorach
\r - czerwony
\y - żółty
\w - biały
\d - szary
Aby zmienić kolor napisu to wystarczy przed napisem wpisać to co podałem wyżej

menu_setprop służy nie tylko do zmieniania napisu "exit" na "wyjscie", wszystko zależy od drugiego parametru MPROP_:
MPROP_PERPAGE - służy do ustawiania ile opcji ma być na jednej stronie, kiedy ustawi się na 0 to menu będzie składać się z jednej strony, na której będzie 10 opcji, maksymalnie można ustawić na 7, ale standardowo jest na 7
MPROP_BACKNAME - służy do zmiany nazwy przycisku powrotu na poprzednią stronę
MPROP_NEXTNAME - służy do zmiany nazwy przycisku przejścia do następnej strony
MPROP_EXITNAME - służy do zmiany nazwy przycisku wyjścia
MPROP_TITLE - służy do zmiany nazwy tytułu menu
MPROP_EXIT - nie używane, kiedyś co robiło, teraz nic nie robi, ale istnieje xD
MPROP_NOCOLORS - ustawia czy kolor nie ma być automatycznie ustawiany, nigdy nie używałem, ale chyba przyjmuje wartości tylko 0 lub 1, standardowo ustawione na 0
MPROP_NUMBER_COLOR - służy do zmiany koloru numerów opcji, za ostatni parametr wpisuje się znacznik koloru, np "\y", standardowo jest \r

później będę uzupełniał ten poradnik

2

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dobra Robota, wszystko fajnie i czytelnie opisane! :) Leci duży plusik! :P 

0

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Chcesz dodać odpowiedź ? Zaloguj się lub zarejestruj nowe konto.

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to bardzo łatwy proces!


Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!


Zaloguj się
Zaloguj się, aby obserwować  
Obserwujący 0