Playerdaten nach GMX alle 0

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
    Habe nen Problem.
    Wenn ich einen GMX per SendRconCommand("gmx"); mache sind nach dem GMX alle Variablen der Spieler, die online waren auf 0 gesetzt.
    Bin schon am verzweifeln, habe das INI System 3 mal gewechselt ( dini, SII, Blackfox´ INI System ).
    Wenn ich ganz normal off und online gehe wird alles normal gespeichert!
    Haben nen Selfmade also kein GF.
    Hier mein Code aus OnGameModeExit und OnPlayerDisconnect:


    OnGameModeExit: for(new i = 0; i<MAX_PLAYERS; i++) if(IsPlayerConnected(i)) SavePlayer(i);


    OnPlayerDisconnect:public OnPlayerDisconnect(playerid, reason)
    {
    SavePlayer(playerid);
    new lstring[80];
    if(!reason) format(lstring,sizeof lstring,"%s hat den Server durch einen Time Out verlassen!", pn(playerid));
    if(reason) format(lstring,sizeof lstring,"%s hat den Server verlassen!", pn(playerid));
    SendClientMessageToAll(Grey, lstring);
    TextDrawHideForPlayer(playerid, RealClock[0]);
    TextDrawHideForPlayer(playerid, RealClock[1]);
    TextDrawHideForPlayer(playerid, RealClock[2]);
    TextDrawHideForPlayer(playerid, Tacho[playerid]);
    TextDrawHideForPlayer(playerid, NeedsBox);
    TextDrawHideForPlayer(playerid, Probedrive[playerid]);
    return 1;
    }


    Bitte helift mir :(


    MfG
    Evil

  • public SavePlayer(i)
    {
    if(IsPlayerConnected(i))
    {
    new sform[128];
    format(sform, sizeof sform, "/Cars/%d.ini", i);
    if(fexist(sform))
    {
    if(INI_Open(sform))
    {
    INI_WriteInt("Admin", Player[i][Admin]);
    INI_WriteInt("Leader", Player[i][Leader]);
    INI_WriteInt("Skin", Player[i][Skin]);
    INI_WriteInt("Herkunft", Player[i][Herkunft]);
    INI_WriteInt("Money", Player[i][Money]);
    INI_WriteInt("FrakRank", Player[i][FrakRank]);
    INI_WriteInt("Banned", Player[i][Banned]);
    INI_WriteInt("Bank", Player[i][Bank]);
    INI_WriteInt("Credit", Player[i][Credit]);
    INI_WriteInt("Alter", Player[i][Alter]);
    INI_WriteInt("Handy", Player[i][Handy]);
    INI_WriteInt("Kills", Player[i][Kills]);
    INI_WriteInt("Death", Player[i][Death]);
    INI_WriteInt("Arrested", Player[i][Arrested]);
    INI_WriteInt("Level", Player[i][Level]);
    INI_WriteInt("Phone", Player[i][Phone]);
    INI_WriteInt("HandyTP", Player[i][HandyTP]);
    INI_WriteInt("Zigs", Player[i][Zigs]);
    INI_WriteInt("Uhr", Player[i][Uhr]);
    INI_WriteInt("Stats", Player[i][Stats]);
    INI_WriteInt("Hunger", Player[i][Hunger]);
    INI_WriteInt("Durst", Player[i][Durst]);
    INI_WriteInt("Harndrang", Player[i][Harndrang]);
    INI_WriteInt("HouseKey", Player[i][HouseKey]);
    INI_WriteInt("RentHouseKey", Player[i][RentHouseKey]);
    INI_WriteInt("SpawnP", Player[i][SpawnP]);
    INI_WriteInt("Sex", Player[i][Sex]);
    INI_WriteInt("CarKey", Player[i][CarKey]);
    INI_WriteInt("CarKey2", Player[i][CarKey2]);
    INI_WriteInt("CarKey3", Player[i][CarKey3]);
    INI_WriteInt("CarsOwn", Player[i][CarsOwn]);
    INI_WriteInt("RentCarKey", Player[i][RentCarKey]);
    INI_WriteInt("Job", Player[i][Job]);
    INI_WriteInt("Respekt", Player[i][Respekt]);
    INI_WriteInt("DutySkin", Player[i][DutySkin]);
    INI_Save();
    INI_Close();
    }
    }
    }
    return 1;
    }


    Der Login Dialog


    new strr[128], pw[MaxPW];
    format(strr, sizeof strr, "/Players/%s.ini", pn(playerid));
    format(pw, MaxPW, "%s", dini_Get(strr, "PW"));
    if(strcmp(inputtext, pw, true) == 0)
    {
    Spawned[playerid] = 1;
    FirstSpawn[playerid] = 1;
    LoadPlayer(playerid);
    SetSpawnInfo(playerid, Player[playerid][Team], Player[playerid][Skin], 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
    SpawnPlayer(playerid);
    TextDrawHideForPlayer(playerid, WelcomeDraw1);
    TextDrawHideForPlayer(playerid, WelcomeDraw2);
    TextDrawHideForPlayer(playerid, WelcomeDraw3);
    return 1;
    }
    else
    {
    format(str, sizeof str, "{FF7700}Willkommen zurück, {FF0000}%s!\n{FF7700}Du kannst dich unten mit deinem Passwort einloggen!", pn(playerid));
    ShowPlayerDialog(playerid, DLogin, 1, "Login", str, "Login", "Abbrechen");
    SendClientMessage(playerid, Yellow, "Falsches Passwort!");
    return 1;
    }


    und public LoadPlayer


    public LoadPlayer(i)
    {
    new str[128];
    format(str, sizeof str, "/Players/%s.ini", pn(i));
    Player[i][Admin] = INI_ReadInt("Admin");
    Player[i][Team] = INI_ReadInt("Team");
    Player[i][Leader] = INI_ReadInt("Leader");
    Player[i][Skin] = INI_ReadInt("Skin");
    Player[i][Herkunft] = INI_ReadInt("Herkunft");
    Player[i][Money] = INI_ReadInt("Money");
    Player[i][FrakRank] = INI_ReadInt("FrakRank");
    Player[i][Banned] =INI_ReadInt("Banned");
    Player[i][Bank] = INI_ReadInt("Bank");
    Player[i][Credit] = INI_ReadInt("Credit");
    Player[i][Alter] = INI_ReadInt("Alter");
    Player[i][Handy] = INI_ReadInt("Handy");
    Player[i][Kills] = INI_ReadInt("Kills");
    Player[i][Death] = INI_ReadInt("Death");
    Player[i][Arrested] = INI_ReadInt("Arrested");
    Player[i][Level] = INI_ReadInt("Level");
    Player[i][Phone] = INI_ReadInt("Phone");
    Player[i][HandyTP] = INI_ReadInt("HandyTP");
    Player[i][Zigs] = INI_ReadInt("Zigs");
    Player[i][Uhr] = INI_ReadInt("Uhr");
    Player[i][Stats] = INI_ReadInt("Stats");
    Player[i][Hunger] = INI_ReadInt("Hunger");
    Player[i][Durst] = INI_ReadInt("Durst");
    Player[i][Harndrang] = INI_ReadInt("Harndrang");
    Player[i][HouseKey] = INI_ReadInt("HouseKey");
    Player[i][RentHouseKey] = INI_ReadInt("RentHouseKey");
    Player[i][SpawnP] = INI_ReadInt("SpawnP");
    Player[i][Sex] = INI_ReadInt("Sex");
    Player[i][CarKey] = INI_ReadInt("CarKey");
    Player[i][CarKey2] = INI_ReadInt("CarKey2");
    Player[i][CarKey3] = INI_ReadInt("CarKey3");
    Player[i][RentCarKey] = INI_ReadInt("RentCarKey");
    Player[i][CarsOwn] = INI_ReadInt("CarsOwn");
    Player[i][Job] = INI_ReadInt("Job");
    Player[i][Respekt] = INI_ReadInt("Respekt");
    Player[i][DutySkin] = INI_ReadInt("DutySkin");
    INI_Close();
    return 1;
    }

  • du solltest die daten speichern am besten wenn er disconnected


    public OnPlayerDisconnect(playerid,reason)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"/Accounts/%s.ini",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"bankgeld",Spieler[playerid][bankgeld]);
    }
    Spieler[playerid][eingeloggt] = 0;
    Spieler[playerid][bankgeld] = 0;
    }


    so gehts bei mir ;)


    //edit: einfach: wenn die datei existiert direkt NUR speichern


    Ich übernehme keine Verantwortung für sämtliches Bild oder Ton Material meiner Beiträge oder meiner Signatur.
    Ich übernehme keine Verantwortung für die Richtigkeit oder Aktualität meiner Beiträge oder Signatur!




    Selfmade Signature <3

    http://www.youtube.com/user/NMasterHD



  • o.0
    das geht ja mal gar nicht:
    public SavePlayer(i)
    format(sform, sizeof sform, "/Cars/%d.ini", i);


    1. ordner Cars?
    2. du speicherst es mit der id? die id ändert isch aber bei jedem connect.

  • Ahhhhhhhhhh, danke Sniper ;D
    Das wär mir nicht aufgefallen ^^


    //Edit: soll auch format(sform, sizeof sform, "/Players/%s.ini", pn(i)); heißen ^^


    //Edit:
    Das funktioniert immernoch nicht -.-
    Habe jetzt den Pfad ausgebessert. Will trozdem nicht funktionieren -.-