Zinsen berechnen?

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
  • Hey :P


    Ich möchte gerne für mein Payday system , dass der Spieler Zinsen bekommt.


    Wenn er garnichts hat , sprich kein Haus/Biz , bekommt er 3% Zinsen.
    Wenn er nur ein Haus/Biz hat , bekommt er 4% Zinsen und wenn er Ein Haus und ein Biz hat bekommt er 5% Zinsen , sprich für jedes "Extra" 1% Zinsen mehr.


    Nur weiß ich nicht wie ich es scripten soll :o


    Die Rechnung ohne alles wäre: GetPVarInt(playerid,"Kontostand")*3/1000



    public pimer(playerid)
    {
    pPlaytime[playerid]++; // ++ ist wie +1 also wird es alle 60000 milliskunden um 1 erhöht soll die Spielzeit sein
    if(pSincePayday[playerid] >= 35) // wenn Zeitseitpayday 60 oder über 6o ist wird das in der Klammer ausgelöst
    {
    new Spieler[64];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(playerid));
    new levelbonus;
    dini_IntSet(Spieler,"Levelpunkte",dini_Int(Spieler,"Levelpunkte")+1);
    new gehalt;
    if(GetPlayerFrakRang(playerid,0))
    {
    gehalt=2500;
    }
    if(GetPlayerFrakRang(playerid,1))
    {
    gehalt=4000;
    }
    if(GetPlayerFrakRang(playerid,2))
    {
    gehalt=5000;
    }
    if(GetPlayerFrakRang(playerid,3))
    {
    gehalt=6000;
    }
    if(GetPlayerFrakRang(playerid,4))
    {
    gehalt=9000;
    }
    if(GetPlayerFrakRang(playerid,5))
    {
    gehalt=12000;
    }
    if(dini_Int(Spieler,"Levelpunkte")>=dini_Int(Spieler,"Level"))
    {
    dini_IntSet(Spieler,"Levelpunkte",0);
    SetPlayerScore(playerid,dini_Int(Spieler,"Level")+1);
    new string[256];
    format(string,sizeof(string),"Du hast 0 von %i Levelpunkten!",GetPlayerScore(playerid));
    dini_IntSet(Spieler,"Level",GetPlayerScore(playerid));
    SendClientMessage(playerid,Orange,"~Payday~");
    SendClientMessage(playerid,Gelb,"Glückwunsch! Du bist ein Level aufgestiegen!");
    new string3[256];
    format(string3,sizeof(string3),"Du bist nun Level %i !",GetPlayerScore(playerid));
    SendClientMessage(playerid,Gelb,string3);
    SendClientMessage(playerid,Gelb,string);
    levelbonus=GetPlayerScore(playerid)*300;
    new bankkontostring[256];
    new levelbonusstring[256];
    new gehaltstring[256];
    new bankkontostringneu[256];
    format(bankkontostring,sizeof(bankkontostring),"Alter Kontostand: %i$",GetPVarInt(playerid,"Kontostand"));
    format(levelbonusstring,sizeof(levelbonusstring),"Levelbonus: %i$",levelbonus);
    //format(hartz4string,sizeof(hartz4string),"Hartz IV: 500");
    format(gehaltstring,sizeof(gehaltstring),"Gehalt: %i$",gehalt);
    SendClientMessage(playerid,Gelb,bankkontostring);
    SendClientMessage(playerid,Gelb,levelbonusstring);
    if(dini_Int(Spieler,"Hartz4")>=1)
    {
    SendClientMessage(playerid,Gelb,"Hartz IV: 500$");
    }
    SendClientMessage(playerid,Gelb,gehaltstring);
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand")+levelbonus);
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand")+gehalt);
    if(dini_Int(Spieler,"Hartz4")>=1)
    {
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand")+500);
    }
    format(bankkontostringneu,sizeof(bankkontostringneu),"Neuer Kontostand: %i$",GetPVarInt(playerid,"Kontostand"));
    SendClientMessage(playerid,Gelb,bankkontostringneu);
    pSincePayday[playerid] = 0;
    SpielerSpeichern(playerid);
    }
    else
    {
    new string[256];
    format(string,sizeof(string),"Du hast %i von %i Levelpunkten!",dini_Int(Spieler,"Levelpunkte"),GetPlayerScore(playerid));
    SendClientMessage(playerid,Orange,"~Payday~");
    SendClientMessage(playerid,Gelb,string);
    levelbonus=GetPlayerScore(playerid)*300;
    new bankkontostring[256];
    new levelbonusstring[256];
    new gehaltstring[256];
    new bankkontostringneu[256];
    format(bankkontostring,sizeof(bankkontostring),"Alter Kontostand: %i$",GetPVarInt(playerid,"Kontostand"));
    format(levelbonusstring,sizeof(levelbonusstring),"Levelbonus: %i$",levelbonus);
    format(gehaltstring,sizeof(gehaltstring),"Gehalt: %i$",gehalt);
    SendClientMessage(playerid,Gelb,bankkontostring);
    SendClientMessage(playerid,Gelb,levelbonusstring);
    if(dini_Int(Spieler,"Hartz4")>=1)
    {
    SendClientMessage(playerid,Gelb,"Hartz IV: 500$");
    }
    SendClientMessage(playerid,Gelb,gehaltstring);
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand")+levelbonus);
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand")+gehalt);
    if(dini_Int(Spieler,"Hartz4")>=1)
    {
    SetPVarInt(playerid,"Kontostand",GetPVarInt(playerid,"Kontostand")+500);
    }
    format(bankkontostringneu,sizeof(bankkontostringneu),"Neuer Kontostand: %i$",GetPVarInt(playerid,"Kontostand"));
    SendClientMessage(playerid,Gelb,bankkontostringneu);
    pSincePayday[playerid] = 0;
    SpielerSpeichern(playerid);
    }
    }
    else
    {
    pSincePayday[playerid]++; // ZEit seit Payday wird um 1 erhöht
    }
    return 1;
    }


  • Die Formel einen Zinsatz zu berechnen ist X / 100 * Y


    Und nicht X * Y / 1000

    Wer ist der Mensch hinter der Uniform? Ist euch das bekannt?
    Es ist der selbe der noch eben in Zivil neben euch stand.
    Warum wird er gehasst und so selten respektiert?
    Warum ist er derjenige der seinen Hals für euch riskiert?
    Trägt der Bulle eine Weste, das hat er früher nie gemacht,
    die Zeiten haben sich geändert und jeder Dienst ist ein Kampf!
    Warum gibt’s das SEK und warum sind sie so brutal?
    Und wieso hat wieder einer mit seinem Leben bezahlt?

  • Wieso um Gottes Willen definierst du so viele strings mit einem Index von 256 wenn du nicht einmal 80 nutzt? .....


    Keine Ahnung :D
    Das Payday System hab ich schon länger drin , da hab ich jeden string mit 256 definiert ^^


    Zitat

    Die Formel einen Zinsatz zu berechnen ist X / 100 * Y


    Und nicht X * Y / 1000


    Ist mir schon klar , aber wenn man bspw. 1,5kk aufm konto hat , mit einem Zinssatz von 3%, bekommt man 45k Zinsen.
    Da ich das für zu viel halte , mache ich halt /1000 :D

  • floatround braucht als Parameter eine Float-Tag Variable, weshalb man den Wert erst von einem Integer zu Float umwandeln muss.

    Zitat

    native floatround(Float:value, floatround_method:method=floatround_round);