Fraktionskasse für jede Fraktion individuell

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 liebe leute unzwar hab ich grade für mein Script das Fraktionkassen system umgeschrieben in Dialoge
    Alles soweit gut man kann ein und aus zahlen nur scheint es für jede Fraktion nur eine Kasse zu geben.
    Heißt wenn ich beim LSPD was einzahle hab ich die gleiche Summe beim LCN
    Wie kann ich das beheben?
    Hier der Code:
    //FKASSE
    if(dialogid == DIALOG_FKASSE)
    {
    if(response)
    {

    if(listitem == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_FKASSE2,DIALOG_STYLE_INPUT,"Einzahlen","Gebe den gewünschten Betrag ein den du einzahlen möchtest:","Einzahlen","Abbrechen");
    return 1;
    }
    if(listitem == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_FKASSE3,DIALOG_STYLE_INPUT,"Auszahlen","Gebe den gewünschten Betrag ein den du einzahlen möchtest:","Auszahlen","Abbrechen");
    return 1;
    }
    if(listitem == 2)
    {
    format(string,sizeof(string),"In der Fraktionskasse sind insgesamt $%d Dollar.",FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    }
    }
    //FKASSE einzahlen
    if(dialogid == DIALOG_FKASSE2)
    {

    if(response)
    {
    new amount = strval(inputtext);
    if(amount < 0 || amount > 1000000) return SendClientMessage(playerid,COLOR_RED,"Sie maximal nur 1 Mio. Doller einzahlen.");
    if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid,COLOR_RED,"Sie haben nicht soviel Geld.");
    FraktionsKasse[fraktion] += amount;
    GivePlayerMoney(playerid,-amount);
    format(string,sizeof(string),"Sie haben $%d in die Fraktionskasse eingezahlt. Gesamt: $%d",amount,FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_GREEN,string);
    format(string,sizeof(string),"%s hat $%d in die Fraktionskasse eingezahlt. Gesamt: $%d",sendername,amount,FraktionsKasse[fraktion]);
    SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
    SaveFraktionsKassen();
    }
    }
    //FKASSe auszahlen
    if(dialogid == DIALOG_FKASSE3)
    {
    if(response)
    {
    new amount = strval(inputtext);
    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),"Sie haben $%d aus der Fraktionskasse genommen. Gesamt: $%d",amount,FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_GREEN,string);
    format(string,sizeof(string),"%s hat $%d aus der Fraktionskasse genommen. Gesamt: $%d",sendername,amount,FraktionsKasse[fraktion]);
    SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
    SaveFraktionsKassen();
    }
    }

  • Ursprünglich wars ja so

    Spoiler anzeigen
    if(strcmp(cmd,"/fkasse",true) == 0)
    {
    new fraktion = 0;
    GetPlayerName(playerid,sendername,sizeof(sendername));
    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_LIGHTBLUE,"Benutze: /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_LIGHTBLUE,"Benutze: /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_RED,"Sie maximal nur 1 Mio. Doller einzahlen.");
    if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid,COLOR_RED,"Sie haben nicht soviel Geld.");
    FraktionsKasse[fraktion] += amount;
    GivePlayerMoney(playerid,-amount);
    format(string,sizeof(string),"Sie haben $%d in die Fraktionskasse eingezahlt. Gesamt: $%d",amount,FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_GREEN,string);
    format(string,sizeof(string),"%s hat $%d in die Fraktionskasse eingezahlt. Gesamt: $%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_LIGHTBLUE,"Benutze /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),"Sie haben $%d aus der Fraktionskasse genommen. Gesamt: $%d",amount,FraktionsKasse[fraktion]);
    SendClientMessage(playerid,COLOR_GREEN,string);
    format(string,sizeof(string),"%s hat $%d aus der Fraktionskasse genommen. Gesamt: $%d",sendername,amount,FraktionsKasse[fraktion]);
    SendLeaderMSG(fraktion+1,COLOR_LIGHTBLUE,string);
    SaveFraktionsKassen();
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Benutze /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_RED,"Sie sind in keiner Fraktion.");
    return 1;
    }

    habs halt danach geändert so dass man z.B. auf das Pickup im HQ geht und /fraktion schreibt dann kann man halt die Fraktionskasse auswählen und kommt auf die jeweilige Stelle mit dem Dialog
    deswegen hab ich das einfach nach ganz oben geschrieben diese new fraktion, bin Anfaänger in Pawn hab vorher bisschen Java gemacht daher hab ich ein paar Parallelen gezogen



  • Bitte schau dir nochmal an was an fraktion übergeben wird dan hast du auch des Rätsels Lösung.
    Ich geb mal ein Tipp noch dazu sollte dies nicht verändert werden so bleibt der wert fraktion = 0;
    Also 0 wie du es geschrieben hast