Moin,
Ich möchte euch erstmal sagen um was es geht.
Es geht darum wenn ihr eine Bar mit Drinks zb.: Bier oder Wodka macht das man dann betrunken ist.
Ja ich zeige euch das nicht für ein GF sondern für eures Selfmade.
Was ihr braucht:
#include <ocmd>
#include <dini>
-Zeit + Spaß am Scripten=)
Inhaltsverzeichnis:
1. Speicherung
2. Laden
3. Bar Dialog
4. Cop Abfrage
5. Bitte Kommis =)
So kommen wir mal zu :
1. Speichern des "Drunk-Levels"
wir machen das alles in Dini.
ihr macht unter eurem Speicher Stock,
bei mir stock SpielerSpeichern(playerid)
dini_IntSet(Spielerdatei,"Drunk",GetPlayerDrunkLevel(playerid));
Das
dini_IntSet(Spielerdatei,"Drunk" ist die Variable die wir speichern wollen =)
und bei
GetPlayerDrunkLevel(playerid) Fragen wir das "DrunkLevel" ab. (das wird in milisek angegeben).
2. Laden des "DrunkLevels"
So jetzt müssen wir die Gespeicherte Variable auslesen und dem Spieler das "DrunkLevel" geben.
ihr geht in euren Lade Stock bei mir:
stock LoadAccount(playerid)
dort rein macht ihr
SetPlayerDrunkLevel(playerid,dini_Int(Spielerdatei,"Drunk"));
So mit
]SetPlayerDrunkLevel(playerid
Geben wir dem Spieler das "DrunkLevel".
Und mit
dini_Int(Spielerdatei,"Drunk")
Lesen wir die Variable die wir gespeichert haben aus.
3. Der Bar befehl=)
Wir machen uns einen Befehl!
if (strcmp("/kaufen", cmdtext, true, 10) == 0)
{
Kaufmenu(playerid);
return 1;
}
Dann erstellen wir uns die Public Kaufmenu(playerid)
dazu machen wir oben im Script
forward Kaufmenu(playerid);
dann geht ihr ganz nach unten ins Script und da macht ihr
public Kaufmenu(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,X,Y,Z))//eure Posi
{
ShowPlayerDialog(playerid,DIALOG_KAUFEN_BBAR,DIALOG_STYLE_LIST,"Bar-auswahl","Vodka 3$\nBecks 3$\nCocktail 3$","Kaufen","Abbrechen");
}
Jetzt definieren wir die Dialoge auch oben im Script
#define DIALOG_KAUFEN_BBAR 19
#define DIALOG_KAUFEN_BBAR1 20
#define DIALOG_KAUFEN_BBAR2 21
#define DIALOG_KAUFEN_BBAR3 22
Achtung die DIALOG IDS müssen angepasst werden!
dann geht ihr zu
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
dort kommt das rein!
if(dialogid == DIALOG_KAUFEN_BBAR)
{
if(response==0) { return 1; }
if(response==1) {}
{
if(listitem==0)
{
ShowPlayerDialog(playerid,DIALOG_KAUFEN_BBAR,DIALOG_STYLE_MSGBOX,"Vodka","Du hast Vodka getrunken, du bist jetzt betrunken!","Weiter","Abbrechen");
GivePlayerMoney(playerid,-3);
SetPlayerDrunkLevel(playerid,300000);
}
if(listitem==1)
{
ShowPlayerDialog(playerid,DIALOG_KAUFEN_BBAR1,DIALOG_STYLE_MSGBOX,"Becks","Du hast Becks getrunken, du bist jetzt betrunken!","Okay","Abbrechen");
GivePlayerMoney(playerid,-3);
SetPlayerDrunkLevel(playerid,150000);
}
if(listitem==2)
{
ShowPlayerDialog(playerid,DIALOG_KAUFEN_BBAR2,DIALOG_STYLE_MSGBOX,"Cocktails","Du hast Cocktails getrunken, du bist jetzt betrunken!","Okay","Abbrechen");
GivePlayerMoney(playerid,-3);
SetPlayerDrunkLevel(playerid,100000);
}
}
}
Dort seht ihr SetPlayerDrunkLevel(playerid,millisek); so setzt ihr eures "DrunkLevel" nach den milisek die ihr angegeben hat ist der spieler solange betrunken.
4. Die Cop abfrage
ocmd:dlevel(playerid,params[])
{
new string[128],string1[128];
if(!IstSpielerStaatsFrak(playerid)) return SendClientMessage(playerid,ROT,"Du bist in keiner Staatsfraktion.");
new pID;
if(sscanf(params,"u",pID))return SendClientMessage(playerid,BLAU,"/Drunklevel [playerid]");
if(GetPlayerDrunkLevel(pID)>0)
{
format(string1,sizeof(string1),"Der Spieler %s ist betrunken",Spielername(pID));
SendClientMessage(playerid,ROT,string1);
}
else if(GetPlayerDrunkLevel(pID)==0)
{
format(string,sizeof(string),"Der Spieler %s ist nicht betrunken",Spielername(pID));
SendClientMessage(playerid,ROT,string);
}
return 1;
}
So das war mein erstes Tutorial =) schreibt einfach mal was ich besser machen kann und was ich gut gemacht habe
MFG
xDNGRSx