Pravljenje jednostavnog MENU-a
Menu-i u PAWNu
Menu-i izgledaju vrlo komplicirani i teski mnogim igracima za skriptanje, iako nisu. Ovdje cu vam pokazati kako napravit jednostavan menu. Na kraju cemo dobiti teleport menu.
Prvi koraci
Prvi moramo napraviti Menu. Ubaci liniju nakon #includes, #defines, forwards :
Kod:
new Menu:teleportmenu;
Napravili smo jednu vrstu skladista za menu. Sada moramo napraviti Menu unutar toga. Upisi ovo u OnGameModeInit():
Kod:
teleportmenu = CreateMenu("Teleportmenu", 2, 200.0, 100.0, 150.0, 150.0);
Sada malo objasnjena vezano za CreateMenu.
Kod:
CreateMenu(title, columns, Float:x, Float:y, Float:col1width, Float:col2width);
title: Ovo definira zaglavlje menu tablice.
columns:Broj definira koliko je stupaca koristeno.
Float
Visina menu-a
Float:y: Sirina menu-a
Float:col1width: Sirina prvog stupca
Float:col2width: Sirina drugog stupca
Dodavanje podataka u menu-u
Sada imamo Meni ali trebamo neke podatke koje mozete izabrati u meni-u. Dodajete ih preko AddMenuItem. Tako ih dodajemo ispod CreateMenu:
Kod:
AddMenuItem(teleportmenu, 0, "LS");
AddMenuItem(teleportmenu, 0, "LS");
AddMenuItem(teleportmenu, 0, "SF");
AddMenuItem(teleportmenu, 0, "SF");
AddMenuItem(teleportmenu, 0, "LV");
AddMenuItem(teleportmenu, 0, "LV");
AddMenuItem(teleportmenu, 1, "Grove Street");
AddMenuItem(teleportmenu, 1, "Starfish Tower");
AddMenuItem(teleportmenu, 1, "Wheel Arch Angels");
AddMenuItem(teleportmenu, 1, "Jizzys");
AddMenuItem(teleportmenu, 1, "4 Dragons");
AddMenuItem(teleportmenu, 1, "Come-a-Lot");
Objasnjenje za AddMenuItem:
Kod:
AddMenuItem(menuid, column, text);
menuid: ID Menu-a u kojem bi podatak trebao biti prikazan.
column: Stupac u kojem bi podatak trebao biti prikazan
text: Naziv podatka
Pravljenje efekata za podatke
U gore navedenim koracima napravili smo menu, ali sta bi se trebalo desiti kada odaberemo jedan od podataka? U ovom primjeru pravimo teleport menu pa bi trebali biti teleportirani na mjesto na koje zelimo. Ovo je napravljeno u OnPlayerSelectedMenuRow(playerid, row).
Najbolji nacin da ovo uradimo je da promjenimo nesto. Prvi korak je da uzmemo menuid da ogranicimo efekte u menu-u. Trebali bi napraviti novu varijablu za ovo. Moja se zove :
Kod:
new Menu:CurrentMenu = GetPlayerMenu(playerid);
Sada, kad netko otvori menu, menuid ce biti snimljen pod Current. Sada trebamo provjeriti ID u Current, s obzirom na to da je to nas menu:
Kod:
if (CurrentMenu == teleportmenu)
{
...
}
Napredovanjem prema sljedecim koracima vrijeme je za zamjenu. Ovo bi trebalo izgledati ovako:
Kod:
if(CurrentMenu == teleportmenu)
{
switch(row)
{
case 0: //Grove Street
{
SetPlayerPos(playerid, 2493.9133, -1682.3986, 13.3382);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, 0xFFFFFFFF, "Welcome to Grove Street");
}
case 1: //Starfish Tower
{
SetPlayerPos(playerid, 1541.2833, -1362.4741, 329.6457);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, 0xFFFFFFFF, "Welcome to the top of Starfish Tower");
}
case 2: //Wheel Arch Angels
{
SetPlayerPos(playerid, -2705.5503, 206.1621, 4.1797);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, 0xFFFFFFFF, "Welcome to the Wheel Arch Angels tuning-shop");
}
case 3: //Jizzys
{
SetPlayerPos(playerid, -2617.5156, 1390.6353, 7.1105);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, 0xFFFFFFFF, "Welcome to Jizzy's Nightclub!");
}
case 4: //4Dragons
{
SetPlayerPos(playerid, 2028.5538, 1008.3543, 10.8203);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, 0xFFFFFFFF, "Welcome to the Four Dragons Casino");
}
case 5: //Com-a-Lot
{
SetPlayerPos(playerid, 2169.1838, 1122.5426, 12.6107);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, 0xFFFFFFFF, "Welcome to the Come-a-Lot casino!");
}
}
}
Kada je sve napravljeno tocno kako sam naveo efekti za meni-e su uspjesno napravljeni.
Zadnji koraci
Sada trebamo komandu kojom prikazemo meni. Ovo je najlaksi korak. Samo usporedba s strcmpom i ShowMenuForPlayer. Kao sto bi trebali znati ovo smjestamo pod: OnPlayerCommandText
Kod:
if(strcmp(cmdtext, "/teleport", true) == 0)
{
ShowMenuForPlayer(teleportmenu,playerid);
return 1;
}
Zaista lako, nije li?
Posljednje rijeci
Nakon sto ste ovo procitali I shvatili, probajte napraviti vlastiti menu. Kao sto ste vidjeli nije tako tesko, ali bi impresioniralo igrace na serveru. Mozete napraviti jako lijepe efekte na ovaj nacin, takodjer mozete iskoristiti za prodavnice, gunshopove i slicno.
Zelim vam svu srecu u pravljenju ove, kao i svih ostalih skripti !
NAPOMENA: Svaki pokusaj i svako kopiranje ovog teksta ili dijela ovog teksta strogo ce se kaznjavati!