03-20-2013, 10:51 PM
Pentru inceput aveti nevoie de Pawno.
Sa incepem.
Intrati in GM/FS si creati o variabila
tO mica explicatie pentru
Ok, acum am creat meniul, dar avem nevoie de unele elemente, in care puteti alege din meniu. Sa le adaugati sub CreateMenu pe cele create mai devreme.
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");
O mica explicatie pentru
menuid: idiul meniului
column: coloana in care elementul va fi indicat
text: textul elementului
Bine, acum ca am creat un meniu complet, cu elemente ce ar trebui sa se intample atunci cand va alegeti un element?Mai intai vom crea o variabilă care detine ceea ce playerul se uita la meniu,acest lucru se face cu "GetPlayerMenu":
Acum, cand cineva alege ceva pe meniu, menuid va fi salvat în "CurrentMenu".
Acum trebuie sa verifice ca au selectat pe meniu:
Acum, avem nevoie de o comanda pentru a afisa meniul. Acesta este cel mai usor pas. Doar o comparatie cu strcmp si cu ShowMenuForPlayer. Dupa cum ar trebui sa stiti, acest lucru vine sub OnPlayerCommandText:
Sa incepem.
Intrati in GM/FS si creati o variabila
Code:
new Menu:teleportmenu;
Adaugati asta sub OnGameModInit()
t
Code:
eleportmenu = CreateMenu("Teleportmenu", 2, 200.0, 100.0, 150.0, 150.0);
Code:
CreateMenu(title, columns, Float:x, Float:y, Float:col1width, Float:col2width);
Title: titlul de meniu
Columns: Numarul de aici defineste modul in care coloanele sunt folosite [2 este de maximum]
Float: x: Inaltimea meniului de pe ecran [la stanga la dreapta]
Float: y: Latimea meniului de pe ecran [sus si in jos]
Float: col1width: latimea primei coloane
Float: col2width: latimea coloanei a doua
Ok, acum am creat meniul, dar avem nevoie de unele elemente, in care puteti alege din meniu. Sa le adaugati sub CreateMenu pe cele create mai devreme.
Code:
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");
O mica explicatie pentru
Code:
AddMenuItem(menuid, column, text);
column: coloana in care elementul va fi indicat
text: textul elementului
Bine, acum ca am creat un meniu complet, cu elemente ce ar trebui sa se intample atunci cand va alegeti un element?Mai intai vom crea o variabilă care detine ceea ce playerul se uita la meniu,acest lucru se face cu "GetPlayerMenu":
Code:
new Menu:CurrentMenu = GetPlayerMenu(playerid);
Acum, cand cineva alege ceva pe meniu, menuid va fi salvat în "CurrentMenu".
Acum trebuie sa verifice ca au selectat pe meniu:
Code:
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!");
}
}
}
Acum, avem nevoie de o comanda pentru a afisa meniul. Acesta este cel mai usor pas. Doar o comparatie cu strcmp si cu ShowMenuForPlayer. Dupa cum ar trebui sa stiti, acest lucru vine sub OnPlayerCommandText:
Code:
if(strcmp(cmdtext, "/teleport", true) == 0)
{
ShowMenuForPlayer(teleportmenu,playerid);
return 1;
}