[GF- State Bank] - Tutorial by Cardoso

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
  • Sooo,


    ich hab schon oft gelesen, dass sich viele nicht intensiv mit dem Godfather beschäftigen und die schwereren Sachen einfach nicht "verstehen". Ich erkläre hier mal, was die "Stuff.ini" ist.
    Die Stuff.ini speicher folgendes:

    • Jackpot
    • Tax
    • Tax Value
    • Security


    Jackpot:
    Hier wird der aktuelle Jackpot gespeichert.


    Tax:
    Aktuelle inhalt der durch Steuern und /charity eingenommen wird.


    Taxi Value:
    Ist die Aktuelle Steuer beim PayDay.


    Security:
    Ist einfach nur ob Sicherheit ein / aus ist.


    Also nun sucht ihr in euerem Script nach /charity, dort wird das Geld in der Stuff.ini gespeichert.
    Nun koennt ihr, wenn ihr Geld aus der Staatskasse abziehen wollt folgendes in den Command schreiben:


    Tax -= Money;


    Natürlich geht es auch so:


    Tax += Money;


    Und so koennt ihr die Staatskasse im GOdfather im vollen umfang benutzen.


    Eine Abfrage koennte so aussehen:


    if(Tax < 1)
    {
    SendClientMessage(playerid, COLOR_RED, "The State is empty");
    return 1;
    }


    Ihr sollte immer, wenn ihr etwas einzahlt oder abhebt, folgendes noch dahin schreiben:


    SaveStuff();


    So dann mach ich doch gleich mal eine Erweiterung.


    Ich erkläre euch, wie ihr zum Beispiel noch eine GangKasse einbauen koennt. Ist relativ einfach.
    Als erstes sucht ihr in eurem Godfather Script nach "SaveStuff.ini".


    public SaveStuff()
    {
    new coordsstring[256];
    format(coordsstring, sizeof(coordsstring), "%d,%d,%d,%d", Jackpot,Tax,TaxValue,Security);
    new File: file2 = fopen("stuff.ini", io_write);
    fwrite(file2, coordsstring);
    fclose(file2);
    return 1;
    }


    Dann fügt ihr folgendes hinzu:


    new GangAccount = 0;
    format(coordsstring, sizeof(coordsstring), "%d,%d,%d,%d,%d", Jackpot,Tax,TaxValue,Security,GangAccount);


    So nun wird euer GangAccount in Zahlen schonmal in dieser .ini angezeigt.
    Nun sucht ihr nach "Public LoadStuff()".
    public LoadStuff()
    {
    new arrCoords[4][64];
    new strFromFile2[256];
    new File: file = fopen("stuff.ini", io_read);
    if (file)
    {
    fread(file, strFromFile2);
    split(strFromFile2, arrCoords, ',');
    Jackpot = strval(arrCoords[0]);
    Tax = strval(arrCoords[1]);
    TaxValue = strval(arrCoords[2]);
    Security = strval(arrCoords[3]);
    fclose(file);
    if(Security == 0 || Security == 1)
    {
    }
    else
    {
    GameModeExit();
    }
    }
    else
    {
    GameModeExit();
    }
    return 1;
    }
    Nun müsst ihr die Variablen erhöhen.


    new arrCoords[5][64]; //[4] um eins erhöhen, da immer von "0" gezählt wird.
    new strFromFile2[256];
    new File: file = fopen("stuff.ini", io_read);
    if (file)
    {
    fread(file, strFromFile2);
    split(strFromFile2, arrCoords, ',');
    Jackpot = strval(arrCoords[0]);
    Tax = strval(arrCoords[1]);
    TaxValue = strval(arrCoords[2]);
    Security = strval(arrCoords[3]);
    GangAccount = strval(arrCoords[4]); //um eins erhöhen !!


    So jetzt müsst ihr es nur noch ihn Befehlen einsetzen.
    Hier mal ein Beispiel:
    if(strcmp(cmd, "/gangcheckout", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5)
    {
    format(string, sizeof(string), "You have %d in your GangAccount", GangAccount);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    return 1;
    }


    Ich hoffe ihr versteht es.


    Mit freundlichen Grüßen,


    Cardoso


    Original used for:
    http://www.Extreme-Servers.de

    5 Mal editiert, zuletzt von Cardoso ()

  • Danke. Werden demnächst noch eine Erweiterung dafür geben.

  • naja einfach aber nicht schlecht nur warum nur für GF ? wenn du dein tut etwas anderst gemacht hättest neu dann würde es sogar für GF & NON GF gehen.



    Und ich Würde Empfehlen :


    strvalEx(arrCoords[3]); statt strval(arrCoords[3]); zu nehmen, denn dann kannst du dort auch Abziehen und Hinzufügen.



    bsp : für ein abheben und draufladen:


    if(strcmp(cmd, "/reinzahlen", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "/reinzahlen[geld]");
    return 1;
    }
    new geld= strval(tmp);
    if(GetPlayerMoney(playerid) < geld)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "So Viel Haben sie nicht");
    return 1;
    }
    GivePlayerMoney(playerid, -geld);
    GangAccount += geld;
    SaveStuff();
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "Sie Zahlten %d $ Ein", geld);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    return 1;
    }


    if(strcmp(cmd, "/abheben", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "/abheben [betrag]");
    return 1;
    }
    new geld= strval(tmp);
    if(betrag > geld)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "So Viel Geld befindet sich nicht in den Gang Account!");
    return 1;
    }
    new check= GangAccount - geld;
    if(check > GangAccount )
    {
    format(string, sizeof(string), "Nicht Möglich !.");
    SendClientMessage(playerid, COLOR_GRAD1, string);
    return 1;
    }
    GivePlayerMoney(playerid,geld);
    GangAccount -= geld;
    SaveStuff();
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "Sie heben%d $ von ihren Gang Konto ab", geld);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    return 1;
    }



    Edit : Was Gefixt

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

    Einmal editiert, zuletzt von Dog ()

  • Und ich Würde Empfehlen :


    strvalEx(arrCoords[3]); statt strval(arrCoords[3]); zu nehmen, denn dann kannst du dort auch Abziehen und Hinzufügen.


    w00t?


    Die Funktion strvalEx beschränkt nur den maximalen Wert der in einem String ist, bzw. ausgelesen wird.

  • Da es ein GF Tutorial ist, beschränkt es sich auf GF. Ich befasse mich nur mit GF, NON-GF ist für mich Zeitverschwendung.

  • Wie erstellt man command für /gehalt?
    und was muss man dann bei payday einfügen


    zb der leader von lspd entscheidet wie viel geld der member bekommt
    und dann bekommt der member pro payday das Geld.


    MFG fark_var

    2 Mal editiert, zuletzt von fark_var ()

  • Guck mein Tutorial an xD