Hallo,
In diesem Tut zeige ich euch wie ihr ein Dialog in Dialog macht.
Für die meisten sicherlich einfach aber für andere nicht.
Ich verweise hiermit darauf hin das Fehler die ich gemacht habe mir bitte gesagt werden.
Kommen wir hiermit zum Tutorial.
1.
Wir definieren als erstes die Dialoge die wir erstellen wollen.
//Ganz oben im Script
#define DIALOG_SHOP 0
#define DIALOG_PAKET1 1
#define DIALOG_PAKET2 2
2.
Jetzt gehen wir unter..
public OnPlayerCommandText(playerid, cmdtext[])
Und schreiben:
dcmd(shop,4,cmdtext);
dcmd ist ein schneller Commandstil, Shop der Command,
4 die Buchstaben(shop also 4),
und cmdtext ist unser Text.
Dann wieder schliessen und darunter:
dcmd_shop(playerid,params[])
{
#pragma unused params
ShowPlayerDialog(playerid,DIALOG_SHOP,DIALOG_STYLE_LIST, "Weapon Shop", "Paket 1\n2. Paket 2", "Ok", "Cancel");
return 1;
}
Wir nutzen keine Parameter daher: Unused params,
DIALOG_STYLE_LIST ist eine Liste,
WEAPONSHOP ist oben die Bezeichnung,
danach kommen eure Kategorien!
3.
Dann gehen wir unter:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
Und schreiben als Beispiel:
if(dialogid == DIALOG_SHOP)
{
if (response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid,DIALOG_PAKET1,DIALOG_STYLE_LIST, "Paket 1", "cool(siehe unten)", "Ok", "Cancel");
}
if(listitem == 1)
{
ShowPlayerDialog(playerid,DIALOG_DIALOG2,DIALOG_STYLE_LIST, "Paket 2", "\nCountry Rifle - 5000$", "Ok", "Cancel");
}
}
}
if(dialogid == DIALOG_PAKET1)
{
if (response)
{
if(listitem == 0)
{
if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid,ROT,"Not enough Money!");
GivePlayerWeapon(playerid, 28,500);
GivePlayerMoney(playerid, -2000);
}
}
}
if(dialogid == DIALOG_PAKET2)
{
if (response)
{
if(listitem == 0)
{
if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid,ROT,"Not enough Money!");
GivePlayerWeapon(playerid, 33,200);
GivePlayerMoney(playerid, -5000);
}
}
}
Also bei "if(dialogid == DIALOG_PAKET1)" ist das euer Paket 1
d.h. Wenn ihr nun /shop eingibt kommt Paket1 und Paket 2 die könnt ihr jetzt individuell gestalten!
Das heisst ihr könnt schreiben SendClientMessage(playerid,ROT,"Du bist cool ");
Und wenn er dann auf den Shop auf Paket 1 klickt
dann geht ein neuer Dialog auf mit dem Namen "Cool(siehe oben)"
Dann klickt er auf "cool" und bei ihm erscheint dann der Text.
Soweit verstanden? Ich hoffe ja. Ihr könnt nattürlich auch schreiben GivePlayWeapon(playerid, 38, 500); // Minigun
//edit: Danke für die Schnelle Freischaltung, 19.06Uhr.
//edit2: Fehler korrigiert
MFG.