problem bei mein Banksystem

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
  • new player_money[MAX_PLAYERS];


    Speichern tu ich über dini


    und hier die commands /abheben /einzahlen


    if(!strcmp(cmd,"/einzahlen",true))
    {
    new lform[128];
    tmp = strtok(cmdtext,idx);
    if(!tmp[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze /einzahlen [Geld]");
    new lamoney = strval(tmp);
    if(lamoney > GetPlayerMoney(playerid))return SendClientMessage(playerid,0xFF0000FF,"Du hast nicht so viel Geld !");
    if(lamoney < 1)return SendClientMessage(playerid,0xFF0000FF,"Der Betrag muss über 0$ liegen!");
    player_money[playerid]+=lamoney;
    GivePlayerMoney(playerid,-lamoney);
    format(lform,sizeof lform,"Du hast %d$ auf dein Konto eingezahlt.",lamoney);
    SendClientMessage(playerid,0x00FF00FF,lform);
    format(lform,sizeof lform,"Gesamtbetrag : %d$",player_money[playerid]);
    return SendClientMessage(playerid,0x00FF00FF,lform);
    }
    if(!strcmp(cmd,"/abheben",true))
    {
    new lform[128];
    tmp = strtok(cmdtext,idx);
    if(!tmp[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze /abheben[Geld]");
    new lamoney = strval(tmp);
    if(lamoney > player_money[playerid])return SendClientMessage(playerid,0xFF0000FF,"Du hast nicht so viel Geld auf dein Konto!");
    if(lamoney < 1)return SendClientMessage(playerid,0xFF0000FF,"Der Betrag muss über 0$ liegen!");
    player_money[playerid]-=lamoney;
    GivePlayerMoney(playerid,lamoney);
    format(lform,sizeof lform,"Du hast %d$ von deinem Konto abgehoben",lamoney);
    SendClientMessage(playerid,0x00FF00FF,lform);
    format(lform,sizeof lform,"Kontostand : %d$",player_money[playerid]);
    return SendClientMessage(playerid,0x00FF00FF,lform);
    }


    Wie mache ich das das gespeichert wird
    MFG Mipu

  • Ja habe ich hier
    public OnPlayerConnect(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    SetPlayerSkin(playerid, dini_Int(accFormat,"skin"));
    SetPlayerWantedLevel(playerid,dini_Int(accFormat,"wanted"));
    SpawnPlayer(playerid);
    if(fexist(accFormat))


    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");


    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(response)
    {
    switch(dialogid) // dialogid auswählen
    {
    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");

    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
    {
    Spieler[playerid][Admin] = dini_Int(accFormat,"Admin");
    Spieler[playerid][grab] = dini_Int(accFormat,"grab");
    Spieler[playerid][jail] = dini_Int(accFormat,"jail");
    Spieler[playerid][jailtime] = dini_Int(accFormat,"jailtime");
    Spieler[playerid][tot] = dini_Int(accFormat,"tot");
    Spieler[playerid][job] = dini_Int(accFormat,"job");
    Spieler[playerid][team] = dini_Int(accFormat,"team");
    Spieler[playerid][versicherung] = dini_Int(accFormat,"versicherung");
    Spieler[playerid][leader] = dini_Int(accFormat,"leader");
    Spieler[playerid][wanted] = dini_Int(accFormat,"wanted");
    Spieler[playerid][aFuhrerschein] = dini_Int(accFormat,"aFuhrerschein");
    Spieler[playerid][harziv] = dini_Int(accFormat,"harziv");
    Spieler[playerid][perso] = dini_Int(accFormat,"perso");
    Spieler[playerid][pduty] = dini_Int(accFormat,"pduty");
    Spieler[playerid][skin] =SetPlayerSkin(playerid, dini_Int(accFormat,"skin"));
    Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
    Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
    Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
    GivePlayerMoney(playerid,dini_Int(accFormat,"bank"));
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    case DIALOG_REG: // ID Registrieren
    {
    if(!strlen(inputtext)) // Text darf nicht = Null sein Null im Sinne von nichts
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    Spieler[playerid][eingeloggt] = 1;
    SetPlayerSkin(playerid, dini_Int(accFormat,"skin"));
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
    }
    }


    Wie kann ich das denn einbauen ??


    MFG Mipu

    Einmal editiert, zuletzt von Optiimal ()

  • Du hast doch bestimmt auch einen SpielerUpdate ?


    Da darfst du nicht vergessen >>>


    GetPlayerMoney(....


    sonst wird das immer wieder auf null gesetzt!

  • wenn du GodFather benutzt ja...



    public OnPlayerUpdate(playerid);
    {



    Aber bevor du irgendwas postest, es wir kein Geld gespeichert?


    oder nur auf der Bank nicht?

  • bei GodFather gibt es PlayerInfo


    was benutzt du?


    SpielerInfo?



    und hast du ein SpielerUpdate?

  • if(!strcmp(cmd,"/einzahlen",true))
    {
    new lform[128];
    tmp = strtok(cmdtext,idx);
    if(!tmp[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze /einzahlen [Geld]");
    new lamoney = strval(tmp);
    if(lamoney > GetPlayerMoney(playerid))return SendClientMessage(playerid,0xFF0000FF,"Du hast nicht so viel Geld !");
    if(lamoney < 1)return SendClientMessage(playerid,0xFF0000FF,"Der Betrag muss über 0$ liegen!");
    bank[playerid]+=lamoney;
    GivePlayerMoney(playerid,-lamoney);
    format(lform,sizeof lform,"Du hast %d$ auf dein Konto eingezahlt.",lamoney);
    SendClientMessage(playerid,0x00FF00FF,lform);
    format(lform,sizeof lform,"Gesamtbetrag : %d$",player_money[playerid]);
    return SendClientMessage(playerid,0x00FF00FF,lform);
    }



    Und jetzt noch ein SpielerUpdate!


    Und wie ich sehe hast du kein Geld in der Ini?

  • Aber Geld wird gespeichert ??
    habe gerade gesehen hab das ausgelassen in der ini sry


    und danke


    Edit: da bekomme ich diese fehler


    C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\myrl.pwn(780) : warning 217: loose indentation
    C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\myrl.pwn(830) : warning 217: loose indentation
    C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\myrl.pwn(1158) : warning 217: loose indentation
    C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\myrl.pwn(1692) : warning 217: loose indentation
    C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\myrl.pwn(1700) : error 028: invalid subscript (not an array or too many subscripts): "bank"
    C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\myrl.pwn(1700) : warning 215: expression has no effect
    C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\myrl.pwn(1700) : error 001: expected token: ";", but found "]"
    C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\myrl.pwn(1700) : error 029: invalid expression, assumed zero
    C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\myrl.pwn(1700) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    bank[playerid]+=lamoney;


    das ist zeile ^1700 ??

    Einmal editiert, zuletzt von Optiimal ()

  • Also ich hab das so >>>




    enum sInfo
    {
    sKennwort[128],
    sLevel,
    sGeld,
    sBank,
    sAdmin,
    sArbeit,
    sArbeitslos,
    sBoss,
    sAngestellter,
    sRang,
    sGeschlecht,
    sAlter,
    sSkin,
    sHaus,
    sBiz,
    sEingesperrt,
    sTot,
    sWantedLevel,
    sVerbrechen,
    sWarns,
    sGesperrt,
    sInt,
    sVir,
    sTut,
    sReg,
    Float:sTx,
    Float:sTy,
    Float:sTz
    };
    new SpielerInfo[MAX_PLAYERS][sInfo];



    Und du?



    mit der new pls .. >>>

  • Also nun noch mal ... Firefox insterliert :D


    if(!strcmp(cmd,"/einzahlen",true))
    {
    new lform[128];
    tmp = strtok(cmdtext,idx);
    if(!tmp[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze /einzahlen [Geld]");
    new lamoney = strval(tmp);
    if(lamoney > GetPlayerMoney(playerid))return SendClientMessage(playerid,0xFF0000FF,"Du hast nicht so viel Geld !");
    if(lamoney < 1)return SendClientMessage(playerid,0xFF0000FF,"Der Betrag muss über 0$ liegen!");
    Spieler[playerid][bank]+=lamoney;
    GivePlayerMoney(playerid,-lamoney);
    format(lform,sizeof lform,"Du hast %d$ auf dein Konto eingezahlt.",lamoney);
    SendClientMessage(playerid,0x00FF00FF,lform);
    format(lform,sizeof lform,"Gesamtbetrag : %d$",Spieler[playerid][bank]);
    return SendClientMessage(playerid,0x00FF00FF,lform);
    }
    if(!strcmp(cmd,"/abheben",true))
    {
    new lform[128];
    tmp = strtok(cmdtext,idx);
    if(!tmp[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze /abheben[Geld]");
    new lamoney = strval(tmp);
    if(lamoney > player_money[playerid])return SendClientMessage(playerid,0xFF0000FF,"Du hast nicht so viel Geld auf dein Konto!");
    if(lamoney < 1)return SendClientMessage(playerid,0xFF0000FF,"Der Betrag muss über 0$ liegen!");
    Spieler[playerid][bank]-=lamoney;
    GivePlayerMoney(playerid,lamoney);
    format(lform,sizeof lform,"Du hast %d$ von deinem Konto abgehoben",lamoney);
    SendClientMessage(playerid,0x00FF00FF,lform);
    format(lform,sizeof lform,"Kontostand : %d$",Spieler[playerid][bank]);
    return SendClientMessage(playerid,0x00FF00FF,lform);
    }



    ^^

    Einmal editiert, zuletzt von Xx[Kevin]xX ()

  • Also ich habe das jetzt so


    if(!strcmp(cmd,"/einzahlen",true))
    {
    new lform[128];
    tmp = strtok(cmdtext,idx);
    if(!tmp[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze /einzahlen [Geld]");
    new lamoney = strval(tmp);
    if(lamoney > GetPlayerMoney(playerid))return SendClientMessage(playerid,0xFF0000FF,"Du hast nicht so viel Geld !");
    if(lamoney < 1)return SendClientMessage(playerid,0xFF0000FF,"Der Betrag muss über 0$ liegen!");
    Spieler[playerid][bank]+=lamoney;
    GivePlayerMoney(playerid,-lamoney);
    format(lform,sizeof lform,"Du hast %d$ auf dein Konto eingezahlt.",lamoney);
    SendClientMessage(playerid,0x00FF00FF,lform);
    format(lform,sizeof lform,"Gesamtbetrag : %d$",Spieler[playerid][bank]);
    return SendClientMessage(playerid,0x00FF00FF,lform);
    }
    if(!strcmp(cmd,"/abheben",true))
    {
    new lform[128];
    tmp = strtok(cmdtext,idx);
    if(!tmp[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze /abheben[Geld]");
    new lamoney = strval(tmp);
    if(lamoney > player_money[playerid])return SendClientMessage(playerid,0xFF0000FF,"Du hast nicht so viel Geld auf dein Konto!");
    if(lamoney < 1)return SendClientMessage(playerid,0xFF0000FF,"Der Betrag muss über 0$ liegen!");
    Spieler[playerid][bank]-=lamoney;
    GivePlayerMoney(playerid,lamoney);
    format(lform,sizeof lform,"Du hast %d$ von deinem Konto abgehoben",lamoney);
    SendClientMessage(playerid,0x00FF00FF,lform);
    format(lform,sizeof lform,"Kontostand : %d$",Spieler[playerid][bank]);
    return SendClientMessage(playerid,0x00FF00FF,lform);
    }


    Einzahlen funkt ja aber abheben nicht da kommt immer du hast nicht so viel geld auf dein Konto !?!?


    Edit: in der Scriptfile wird es aber gespeichert

    2 Mal editiert, zuletzt von Optiimal ()

  • du hast bei dem else für das abheben player_money....


    änder einfach alles was player_money heißt zu Spieler[playerid][bank]

  • hmm danke erstmal für deine antwort
    aber der zeigt mir in den scriptfiles bei bank immer soviel an was ich eigentlich cash in der hand habe


    Passwort=
    wanted=0
    skin=280
    Geld=2400
    Score=3
    aFuhrerschein=1
    Admin=4
    team=2
    leader=2
    pduty=0
    perso=1
    harziv=0
    job=0
    versicherung=0
    grab=0
    tot=0
    jail=0
    jailtime=0
    ArrestZeit=0
    bank=2400


    Muss ich das vill so speichern


    dini_IntSet(accFormat,"bank",Spieler[playerid][bank]);


    Statt so


    dini_IntSet(accFormat,"bank",GetPlayerMoney(playerid));


    MFG Mipu