Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2017-07-01, 23:07


Grace

Kierowca Pralki






Wiek: 24
Na forum: 3437 dni
Posty: 168
Nick w MP: Grace

Piwa: 1031

Respekt: 35,8

Cze??, ostatnio przegl?daj?c forum sampa (oczywi?cie to oficjalne) natkn??em si? na niespotkany mi dotychczas include, mianowicie gmenu. Dzi?ki temu includowi mo?emy w bardzo prosty spos?b stworzy? co? w stylu dialogu (np. z list?) tylko ?e w stylu GTA V!

Skrypt prezentuje si? w praktyce tak, dla przyk?adu:


Takie menu tworzy si? w spos?b bardzo podobny do zwyk?ego dialogu.
Dodatkowo, mo?e by? tylko 10 tych opcji na li?cie, gdy b?dzie ich wi?cej pojawi si? nowa kolumna z napisem przejscia dalej.

Dzia?anie w kodzie

Gdy pojawia si? nam takie menu, po ka?dym przej?ciu w g?r?, w d?? lub po zaakceptowaniu odtwarza si? nam d?wi?k. Sam autor includa umo?liwi? nam jego prost? zmian?. Wystarczy tylko zdefiniowa? w naszym skrypcie takie rzeczy:
Pawn
#define MENU_SOUND_UP              1054 //sound heard when player go UP
#define MENU_SOUND_DOWN          1054 //sound heard when player go DOWN
#define MENU_SOUND_CLOSE         1084 //sound heard when player close menu
#define MENU_SOUND_SELECT        1083 //sound heard when player select an item


Mamy funkcj? na pokazanie tego "menu" dla gracza:
Pawn
ShowPlayerMenu(playeridmenuidcaption[], info[], type[] = "Interaction Menu"selectioncolor 0x3F7FBFFFtextcolor 0xFFFFFFFFcaption_boxcolor 0xC51A71FFlistitem_boxcolor 0x000000FF);


Dodatkowo, mamy r?wnie? callback (a'la OnDialogResponse):
Pawn
forward OnMenuResponse(playeridmenuidresponselistitem);

Zwr??my uwag? na response, nie dzia?a ono tak jak by si? nam to wydawa?o. S? 4 typy tego parametru:
Pawn
#define MENU_RESPONSE_UP          0 //when a player press KEY_UP and select the previous item
#define MENU_RESPONSE_DOWN      1 //when a player press KEY_DOWN and select the next item
#define MENU_RESPONSE_CLOSE     2 //when a player press KEY_SECONDARY_ATTACK or KEY_ENTER to exit the menu
#define MENU_RESPONSE_SELECT    3 //when a player press KEY_SPRINT ot KEY_SPACE to select the respected item


A oto nadszedl czas na przyk?adowy skrypt:
Pawn
#define MENU_ID_ARENY (10)

CMD:areny(playerid)
{
    ShowPlayerMenu(playeridMENU_ID_ARENY"Areny""OneShoot(%d online)\nMinigun(0 online)\nRPG(0 online)\nDM(0 online)");
    return 1;
}

public OnMenuResponse(playeridmenuidresponselistitem)
{
    if(menuid == MENU_ID_ARENY)
    {
        if(response == MENU_RESPONSE_SELECT)
        {
            switch(listitem)
            {
                case 0:
                {
                                        // Tutaj nasz funkcja po wybraniu opcji.
                }
            }
        }
    }
    return 1;
}


Autorem include jest Gammix
Link do tematu gtao.pl.com
Link do includa od autora


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 2 piw(a):
Mateodor, Tobin
Tagi: gmenu
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Skrypty do SA-MP Odpowiedz do tematu

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku