SaveAllPlayers

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
  • Guten Abend,


    Ich wollte fragen wie ich ein stock machen kann das es ALLE Spieler die auf dem Server sind speichert :/


    So sieht mein stock aus, dass es einen Spieler speichert, ich will aber etwas das es alle Spieler speichert ;)

    stock SavePlayer(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"Accounts/%s.txt",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"Geld",Spieler[playerid][pGeld]);
    dini_IntSet(accFormat,"Score",Spieler[playerid][pScore]);
    dini_IntSet(accFormat,"Adminlvl",Spieler[playerid][pAdminlvl]);
    dini_IntSet(accFormat,"Viplvl",Spieler[playerid][pViplvl]);
    }
    Spieler[playerid][eingeloggt] = 0;
    return 1;
    }

  • Ja mach einen Befehl oder so mit einer Schleife, die SavePlayer(i); bewirkt;)


  • for(new i=0; i<MAX_PLAYERS; i++)
    {
    SavePlayers(i);
    }


    //edit: Verbessert!

    Einmal editiert, zuletzt von Sa-MP Helfer ()

  • for(new i = 0; i <MAX_PLAYERS; i++){
    if(IsPlayerConnected(i)){
    SavePlayers(i);
    }
    }

  • Das heißt wenn cih das so mache müsste es gehen?



    stock SaveAllPlayers(i)
    {
    for(new i = 0; i <MAX_PLAYERS; i++){
    if(IsPlayerConnected(i)){
    dini_IntSet(accFormat,"Geld",Spieler[i][pGeld]);
    dini_IntSet(accFormat,"Score",Spieler[i][pScore]);
    dini_IntSet(accFormat,"Adminlvl",Spieler[i][pAdminlvl]);
    dini_IntSet(accFormat,"Viplvl",Spieler[i][pViplvl]);
    }
    }
    return 1;
    }

  • Nein lass es einfach so wie bisher und füg in einer Stelle die Schleife ein.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Sind wieder leute unterwegs die Beiträge farmen.. ^^


    b2t: Es würde so gehen.

  • Ach ja und du bist du King:D
    Dann speichert der aber immer, wenn sich wahrscheinlich einer ausloggt alle Spieler!

  • Zitat

    Ach ja und du bist du King:D

    Ye


    b2t:


    Ich würde es unter OnGameModeExit schreiben ;) Ansonsten ganz normal.

  • :rolleyes:
    Es würde so nicht gehen.
    stock SaveAllPlayers(i) // // 1. Mal i
    {
    for(new i = 0; i <MAX_PLAYERS; i++){ // hier gäbes ne Warnung, i wird schon verwendet
    if(IsPlayerConnected(i)){ // auch NPCs speichern?
    dini_IntSet(accFormat,"Geld",Spieler[i][pGeld]); //accFormat existiert nicht
    dini_IntSet(accFormat,"Score",Spieler[i][pScore]); // hier auch
    dini_IntSet(accFormat,"Adminlvl",Spieler[i][pAdminlvl]);
    dini_IntSet(accFormat,"Viplvl",Spieler[i][pViplvl]); //genauso hier
    }
    }
    return 1;
    }

  • OnGameModeExit


    :D dann würden ja nur die Accounts gespeichert werden, wenn der Server restartet wird und wenn man sich einfach so ausloggt passiert nix ^^


    Setze es einfach ohne Schleife unter OnPlayerDisconnect ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Wenn Ich das so mache:


    stock SaveAllPlayers(i)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"Accounts/%s.txt",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    for(new i = 0; i <MAX_PLAYERS; i++){
    if(IsPlayerConnected(i)){
    dini_IntSet(accFormat,"Geld",Spieler[playerid][pGeld]);
    dini_IntSet(accFormat,"Score",Spieler[playerid][pScore]);
    dini_IntSet(accFormat,"Adminlvl",Spieler[playerid][pAdminlvl]);
    dini_IntSet(accFormat,"Viplvl",Spieler[playerid][pViplvl]);
    }
    }
    }
    return 1;
    }


    oder vlt so:


    public OnGameModeExit()
    {
    for(new i = 0; i <MAX_PLAYERS; i++){
    if(IsPlayerConnected(i)){
    SavePlayer(i);
    }
    }
    return 1;
    }


    ??


    edit:// Code hinzugefügt ..