Fraktionskassen einzahlungsfehler

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
  • Hallo ich hbae das fraktionskassensystem:


    Frowards:
    forward LoadFraktionsKassen();
    forward SaveFraktionsKassen();


    Laden
    public LoadFraktionsKassen()
    {
    new File:Kasse = fopen("Fraktionskassen.cfg",io_read);
    new idx = 0;
    new read[128];
    while(idx < sizeof(FraktionsKasse))
    {
    fread(Kasse,read);
    for(new x=0; x<strlen(read); x++)
    {
    if(read[x]== '\n')
    {
    read[x] = '\0';
    }
    }
    FraktionsKasse[idx] = strval(read);
    idx++;
    }
    fclose(Kasse);
    return 1;
    }

    Saven:
    public SaveFraktionsKassen()
    {
    new File:Kasse = fopen("Fraktionskassen.cfg",io_write);
    new write[24];
    for(new idx; idx < sizeof(FraktionsKasse); idx++)
    {
    format(write,sizeof(write),"%d\n",FraktionsKasse[idx]);
    fwrite(Kasse,write);
    }
    fclose(Kasse);
    return 1;
    }

    GameModeInit:

    LoadFraktionsKassen();
    Nach jeder einzahlung oder abbuchung
    SaveFraktionsKassen();
    Befehle
    // >>>>>>>>>>>>>>>>> Fraktionskassen-System <<<<<<<<<<<<<<<<<
    if(strcmp(cmd,"/fkasse",true) == 0)
    {
    new fraktion = 0;
    if(PlayerInfo[playerid][pMember] > 0) fraktion = PlayerInfo[playerid][pMember] - 1;
    if(PlayerInfo[playerid][pLeader] > 0) fraktion = PlayerInfo[playerid][pLeader] - 1;
    if(fraktion >= 0)
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_GRAD5," /fkasse [einzahlen/auszahlen] [Betrag]");
    format(string,sizeof(string)," Derzeit sind $%d in der Fraktionskasse!",FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_GRAD5,string);
    return 1;
    }
    if(strcmp(tmp,"einzahlen",true) == 0)
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_GRAD5," /fkasse einzahlen [Betrag]");
    format(string,sizeof(string)," Derzeit sind $%d in der Fraktionskasse!",FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_GRAD5,string);
    return 1;
    }
    new amount = strval(tmp);
    if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_WHITE," Bitte nur Summen in Höhe von 1 bis 1 Million Dollar!");
    if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid,COLOR_WHITE," Du hast nicht soviel Geld um es einzuzahlen!");
    FraktionsKasse[fraktion] += amount;
    GivePlayerMoney(playerid,-amount);
    format(string,sizeof(string)," Du hast $%d in die Fraktionskasse eingezahlt! Total: $%d",amount,FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof(string)," %s hat $%d in die Fraktionskasse eingezahlt! Total: $%d",sendername,amount,FraktionsKasse[fraktion]);
    SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
    SaveFraktionsKassen();
    }
    else if(strcmp(tmp,"auszahlen",true) == 0)
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_GRAD5," /fkasse auszahlen [Betrag]");
    format(string,sizeof(string)," Derzeit sind $%d in der Fraktionskasse!",FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_GRAD5,string);
    return 1;
    }
    new amount = strval(tmp);
    if(PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid,COLOR_WHITE," Nur Leader dürfen Geld aus der Fraktionskasse nehmen!");
    if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_WHITE," Bitte nur Summen in Höhe von 1 bis 1 Million Dollar!");
    if((FraktionsKasse[fraktion] - amount) < 0) return SendClientMessage(playerid,COLOR_WHITE," Du kannst keine Schulden machen!");
    FraktionsKasse[fraktion] -= amount;
    GivePlayerMoney(playerid,amount);
    format(string,sizeof(string)," Du hast $%d aus der Fraktionskasse genommen! Total: $%d",amount,FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_WHITE,string);
    format(string,sizeof(string)," %s hat $%d aus der Fraktionskasse genommen! Total: $%d",sendername,amount,FraktionsKasse[fraktion]);
    SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
    SaveFraktionsKassen();
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD5," /fkasse [einzahlen/auszahlen] [Betrag]");
    format(string,sizeof(string)," Derzeit sind $%d in der Fraktionskasse!",FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_GRAD5,string);
    }
    }
    else SendClientMessage(playerid,COLOR_WHITE," Du bist in gar keiner Fraktion!");
    return 1;
    }

    if(strcmp(cmd,"/setfkasse",true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 1337)
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_GRAD5," /setfkasse [FraktionsID] [Betrag]");
    return 1;
    }
    new fraktion = strval(tmp);
    if(fraktion < 0 || fraktion > 24) return SendClientMessage(playerid,COLOR_WHITE," Diese Fraktion gibt es nicht!");
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    format(string,sizeof(string)," /setfkasse %d [Betrag]",fraktion);
    SendClientMessage(playerid,COLOR_GRAD5,string);
    return 1;
    }
    new amount = strval(tmp);
    if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_WHITE," Bitte nur Summen in Höhe von 1 bis 1 Million Dollar!");
    format(string,sizeof(string)," %s hat die Fraktionskasse von %s auf $%d gesetzt!",sendername,Fracs[(fraktion-1)],amount);
    ABroadCast(COLOR_LIGHTRED,string,1337);
    FraktionsKasse[(fraktion-1)] = amount;
    }
    return 1;
    }



    Die Frage: Warum funktioniert dieser Code nicht???
    FraktionsKasse[1] += 5000;
    ich hatte das hier aus fkasse einzahlen raus genommen:
    FraktionsKasse[fraktion] += amount;
    da ich aber möchte das wenn etwas passiert in meinem fall die bombe explodiert,
    das ein fester betrag in eine fraktionskasse eingezahlt wird.
    also dachte cih ich ersetze
    FraktionsKasse[fraktion] += amount;
    durch
    FraktionsKasse[1] += 5000;
    demnach sollte doch fraktion 1 5000 bekommen ???
    das passiert aber nicht!?!


    Was kann cih amchen


    (C) BY LOH 0.4