PDK POWRACA
Witam, chciałbym pokazać wam dzisiaj jak stworzyć menu.
Krok 1:
Na samej górze mapy dodajemy zmienną przechowującą nasze menu:
Kod
new Menu:mojemenu;
Krok 2:
W publicu OnGameModeInit(); dodajemy:
Kod
mojemenu = CreateMenu("Moje menu", 1, 200.0, 100.0, 150.0, 150.0);
Argumenty do tej funkcji to:
CreateMenu(title, columns, Float:x, Float:y, Float:col1width);
gdzie:
title - Nazwa twojego menu
columns - Ilość kolumn jakie ma zawierać twoje menu
Float:x i Float:y - Jest to ustawienie pozycji twojego menu na monitorze gracza
Float: col1width - Szerokośc kolumny
Krok 3:
Ok teraz dodajmy obiekty (maximum 12) do naszego menu.
Pod linijką CreateMenu w publicu OnGameModeInit(); wstawiamy:
Kod
AddMenuItem(mojemenu, 0, "tekst");
AddMenuItem(mojemenu, 0, "tekst2");
AddMenuItem(mojemenu, 0, "tekst3");
AddMenuItem(mojemenu, 0, "tekst4");
itd.
Gdzie :
mojemenu - Identyfikator menu
0 - Identyfikator kolumny (ZAWSZE ZACZYNAMY OD 0 !)
"tekst" - Treść obiektu
Krok 4:
Teraz w publicu OnPlayerSelectedMenuRow(playerid, row) dodajemy co ma się dziać gdy gracz wybierze pole z Naszego menu.
Pod tym publikiem musimy zdeklarować stałą:
Kod
new Menu:CurrentMenu = GetPlayerMenu(playerid);
Jest to stała pobierająca nazwę naszego menu.
Teraz, pod tą liniją dodajemy:
Kod
if(CurrentMenu == mojemenu)
{
switch(row)
{
case 0: // Obiekt 1
{
// Co ma się dziać gdy gracz wybierze pierwszą pozycję z menu
}
case 1: // Obiekt 2
{
// Co ma się dziać gdy gracz wybierze drugą pozycję z menu
}}}
Krok 5 (ostatni):
Wywołujemy nasze menu za pomocą komendy /menu
Kod
if(strcmp(cmdtext, "/teleport", true) == 0)
{
ShowMenuForPlayer(mojemenu,playerid); // Gdzie mojemenu to nazwa menu które ma się wyświetlić
return 1;
}
------------------------------------------------
Jak dodać więcej niż jedną kolumnę ? To proste !
w linijce :
Kod
CreateMenu(title, columns, Float:x, Float:y, Float:col1width);
w polu COLUMNS wpisujemy ilość kolum ile nam potrzeba, przy czym na końcu po Float:col1width musimy jeszcze dodać szerokośc pozostałych kolumn czyli Float:col2width itd.
Teraz w AddMenuItem musimy zmienić identyfikator kolumny np:
AddMenuItem(mojemenu, 1, "test"); // Obiekt będzie wyświetlany w drugiej kolumnie
Offline