Menü készítés Üdv, most egy egyszeru menüt fogunk készíteni ez most egy tele menü lesz,
de lehet akármi kocsi spawnolo fegyver lehívó de ez a menüpontok tartalmától függ.
Na lássunk is hozzá...
1. Elsonek változót hozunk létre a módunk & scriptünk elejére.
new Menu:tele;
Magyarázat:new: változó
Menu: ezzel tudjuk hogy menüt készítünk
tele: változónk neve (ezt át lehet írni)
2.Aztán a menüpontokat hozzuk létre...Ezt az OnGameModeInit alá írd:
tele = CreateMenu(\"Teleport Men¬\", 2, 55.0, 200.0, 100.0, 80.0);
AddMenuItem(tele, 0, \"LosSantos\");
AddMenuItem(tele, 0, \"SanFierro\");
AddMenuItem(tele, 0, \"LasVenturas\");
Magyarázat:tele: változónk neve
CreateMenu: menü létrehozása
\"Teleport Menu\": ez a menünk címe
2,55.0,200.0,100.0,80.0.: ez a menü mérete, és a helyzete
AddMenuItem(tele, 0, \"LasVenturas\"); : ez a menüpont, ami \" \" között van az leszs a menü pont neve.
3. Most pedig a menüpontok tulajdonságait fogjuk beállítani...
A public OnPlayerSelectedMenuRow(playerid, row) alá írjuk. Ha nincs akkor hozzunk létre egyet.
new Menu:current;
current = GetPlayerMenu(playerid);
if(current == tele)
{
switch(row)
{
case 0:SetPlayerPos(playerid, x, y, z);
}
switch(row)
{
case 1:SetPlayerPos(playerid, x, y, z);
}
switch(row)
{
case 2:SetPlayerPos(playerid, x, y, z);
}
}
Magyarázat: switch(row)
{
case 0:SetPlayerPos(playerid, x, y, z); // ez a menüpot tartalma, ez fog történni ha kiválasztjuk
}
4. Most egy parancsot hozunk létre amivel elojön az adott játékosnak a menü.
Az OnPlayerCommandsText alá:
if (strcmp(\"/tele\", cmdtext, true, 4) == 0)
{
ShowMenuForPlayer(tele, playerid);
return 1;
}
Magyarázat:
ShowMenuForPlayer: megjeleníti a menüt ha beírjuk a parancsot.
REMÉLEM SEGÍTETT VALAKINEK. Kezdo vok úgy hogy ne számítsatok tolem jobbat
És mostmár jöhetnek a kritikák.
Itt egy minta az egészrol:
new Menu:tele;
public OnGameModeInit()
{
tele = CreateMenu(\"Teleport Men¬\", 2, 55.0, 200.0, 100.0, 80.0);
AddMenuItem(tele, 0, \"LosSantos\");
AddMenuItem(tele, 0, \"SanFierro\");
AddMenuItem(tele, 0, \"LasVenturas\");
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:current;
current = GetPlayerMenu(playerid);
if(current == tele)
{
switch(row)
{
case 0:SetPlayerPos(playerid, x, y, z);
}
switch(row)
{
case 1:SetPlayerPos(playerid, x, y, z);
}
switch(row)
{
case 2:SetPlayerPos(playerid, x, y, z);
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/tele\", cmdtext, true, 4) == 0)
{
ShowMenuForPlayer(tele, playerid);
return 1;
}
return 0;
}