| Menü készítés by=ALIEN
Üdv megint, most egy egyszerű 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.
Aki nem tudná mi az a menü.. itt van egy képróla: [KATT IDE]
Na lássunk is hozzá...
1. Elsőnek változót hozunk létre a módunk & scriptünk elejére.
new Menu:tele; // ez a változónk
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
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 előjö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.
Itt egy minta az egészről (javítva):
-
#include a_samp
-
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, 1, 1, 1);//x, y, z koordinátákat ide rakd
-
}
-
switch(row)
-
{
-
case 1:SetPlayerPos(playerid, 1, 1, 1);//x, y, z koordinátákat ide rakd
-
}
-
switch(row)
-
{
-
case 2:SetPlayerPos(playerid, 1, 1, 1);//x, y, z koordinátákat ide rakd
-
}
-
}
-
return 1;
-
}
-
public OnPlayerCommandText(playerid, cmdtext[])
-
{
-
if (strcmp("/tele", cmdtext, true, 4) == 0)
-
{
-
ShowMenuForPlayer(tele, playerid);
-
return 1;
-
}
-
return 0;
-
}
| |
Vagyis már az előzőnél tudom mi volt a probléma. Megcsináltam megint és most ez fogadott: