Helló.
Egyszerû Dialogos WeaponLekérõ.
Számít hogy a játékosnak mennyi pénze van, ha nincs pénze akkor nem tud fegyvert vásárolni.
Team DeathMatch szerverre van tervezve, szóval nincs megadva hogy hol kell lenni-e a játékosnak hogy használni tudja parancsot stb.
Nem teszteltem, szóval lehet hogy nem mûködik.
Készítõ: Ray Színkódok:
#define vpiros 0xFF6347AA
#define vkek 0x33CCFFAA
#define vzöld 0x9ACD32AA
A mód elejére:
#define bolt 100
Maga a Dialog:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == bolt)
{
if(response)
{
if(listitem == 0)
{
if(GetPlayerMoney(playerid) >= 1500) // megnézzük mennyi pénze van a játékosnak.
{
GivePlayerWeapon(playerid,31,150); // megadja a fegyvert hogyha van elegendõ pénze a játékosnak.
SendClientMessage(playerid, vzöld, \"Megvetted 1500$-ért az alábbi fegyvert: M4! | TölténySzám: +150db\"); // ha megvette a fegyvert akkor a szöveg.
GivePlayerMoney(playerid, GetPlayerMoney(playerid)-1500); // levonja a pénzt.
}
else
{
new formatpenz[128];
new szukseges = GetPlayerMoney(playerid)-1500 // Megnézi mennyi szükséges még hogy megvegye a fegyvert. Kivonja a játékosnak a pénzébõl a fegyver árát. (Pl. a játékosnak van 500$-ja, abból kivonva a fegyver árát 1000$-t kapunk.
format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges); // formázzuk a formatpenzt
SendClientMessage(playerid, vpiros, formatpenz); // elküldjük a játékosnak a msgt
}
}
if(listitem == 1)
{
if(GetPlayerMoney(playerid) >= 1000)
{
GivePlayerWeapon(playerid,30,150);
SendClientMessage(playerid, vzöld, \"Megvetted 1000$-ért az alábbi fegyvert: Ak47! | TölténySzám: +150db\");
GivePlayerMoney(playerid, GetPlayerMoney(playerid)-1000);
}
else
{
new formatpenz[128];
new szukseges = GetPlayerMoney(playerid)-1500
format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
SendClientMessage(playerid, vpiros, formatpenz);
}
}
if(listitem == 2)
{
if(GetPlayerMoney(playerid) >= 800)
{
GivePlayerWeapon(playerid,29,150);
SendClientMessage(playerid, vzöld, \"Megvetted 800$-ért az alábbi fegyvert: Mp5! | TölténySzám: +150db\");
GivePlayerMoney(playerid, GetPlayerMoney(playerid)-800);
}
else
{
new formatpenz[128];
new szukseges = GetPlayerMoney(playerid)-1500
format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
SendClientMessage(playerid, vpiros, formatpenz);
}
}
if(listitem == 3)
{
if(GetPlayerMoney(playerid) >= 800)
{
GivePlayerWeapon(playerid,33,30);
SendClientMessage(playerid, vzöld, \"Megvetted 800$-ért az alábbi fegyvert: Rifle! | TölténySzám: +30db\");
GivePlayerMoney(playerid, GetPlayerMoney(playerid)-800);
}
else
{
new formatpenz[128];
new szukseges = GetPlayerMoney(playerid)-1500
format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
SendClientMessage(playerid, vpiros, formatpenz);
}
}
if(listitem == 4)
{
if(GetPlayerMoney(playerid) >= 1200)
{
GivePlayerWeapon(playerid,34,30);
SendClientMessage(playerid, vzöld, \"Megvetted 1200$-ért az alábbi fegyvert: Sniper! | TölténySzám: +30db\");
GivePlayerMoney(playerid, GetPlayerMoney(playerid)-1200);
}
else
{
new formatpenz[128];
new szukseges = GetPlayerMoney(playerid)-1500
format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
SendClientMessage(playerid, vpiros, formatpenz);
}
}
if(listitem == 5)
{
if(GetPlayerMoney(playerid) >= 1000)
{
GivePlayerWeapon(playerid,27,50);
SendClientMessage(playerid, vzöld, \"Megvetted 1000$-ért az alábbi fegyvert: Combat! | TölténySzám: +50db\");
GivePlayerMoney(playerid, GetPlayerMoney(playerid)-1000);
}
else
{
new formatpenz[128];
new szukseges = GetPlayerMoney(playerid)-1500
format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
SendClientMessage(playerid, vpiros, formatpenz);
}
}
if(listitem == 6)
{
if(GetPlayerMoney(playerid) >= 750)
{
GivePlayerWeapon(playerid,25,60);
SendClientMessage(playerid, vzöld, \"Megvetted 750$-ért az alábbi fegyvert: Shotgun! | TölténySzám: +60db\");
GivePlayerMoney(playerid, GetPlayerMoney(playerid)-750);
}
else
{
new formatpenz[128];
new szukseges = GetPlayerMoney(playerid)-1500
format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
SendClientMessage(playerid, vpiros, formatpenz);
}
}
}
}
return 1;
}
A parancs, amivel elõhozza a dialogot a játékosnak:
CMD:shop(playerid, params[])
{
ShowPlayerDialog(playerid, bolt, DIALOG_STYLE_LIST, \"{8B4513}Shop - Bolt\", \"M4\\n\\
Ak47\\n\\
Mp5\\n\\
Rifle\\n\\
Sniper\\n\\
Combat\\n\\
Shotgun\", \"Megvesz\", \"Mégse\");
return 1;
}
Igen meglehetett volna rövidebben is írni, de direkt így csináltam, mert szerintem így átláthatóbb. (Amire gondolok: else, stb)