Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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

  • Danke ^^ naja der haupt teil wollte ich ja nur zeigen wie man die in Dini speichert und auslesen kann^^ und das habe ich ja erklärt ^^
    und der Rest habe ich einfach so gemacht weil sonst würden manche wieder fragen kannste ma das machen usw ^^ naja da hatte ich es gleich dazu gemacht.


    Danke für für die Bewertung=)



    MFG


    xDNGRSx

  • Fragen wir das "DrunkLevel" ab. (das wird in milisek angegeben).


    Dort seht ihr SetPlayerDrunkLevel(playerid,millisek); so setzt ihr eures "DrunkLevel" nach den milisek die ihr angegeben hat ist der spieler solange betrunken..


    Vollkommender Blödsinn


    Der 2. Parameter ist die höhe des Betrunkenheits-Levels!


    Bitte korrigieren!!!


    Außerdem, geht der 2. Parameter !NICHT! über 50000!!!
    Bei 5000 wird das Player-Radar ausgeblendet!


    Quelle: http://wiki.sa-mp.com/wiki/SetPlayerDrunkLevel
    2. Quelle: http://wiki.sa-mp.com/wiki/GetPlayerDrunkLevel


    MfG NicoAiko