mit Adminbefehl alle Spieler speichern

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
  • Hey Brotfische,
    Ich bin fleißig am scripten ;) und hoffe diesmal ihr könnt mir was erklären.
    Man kann bei mir einen Spieler speichern mit stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"eingeloggt")==1)
    {
    new Spielerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Prem",GetPVarInt(playerid,"Prem"));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Gebannt",GetPVarInt(playerid,"Gebannt"));
    dini_IntSet(Spielerdatei,"Skin",GetPVarInt(playerid,"Skin"));
    dini_IntSet(Spielerdatei,"Job",GetPVarInt(playerid,"Job"));
    }
    return 1;
    }
    Ich möchte nun damit einen Befehl machen der soll "/saveall" heissen.
    Was soll dieser Befehl bringen? Er soll einfach 'Alle' Spieler speichern.
    Zweite sache ist auch mit diesem "SpielerSpeichern".
    Ich möchte auch einen Timer machen das er alle 5 oder 10 Minuten ( mal schauen^^ ) 'Alle' Spieler speichert.


    Hoffe ihr könnt mir helfen und es mir erklären ;).


    Mit freundlichen Grüßen,
    Dominik


    //edit:


    Hey ich glaub ich hab was durch zufall gefunden^^ Nicht in der SuFu.
    Würde das so klappen wenn ich den Timer bei "OnGameModeInit" reinhaue:
    [pwn]forward SaveAll();
    SetTimerEx("SaveAll",1000*30,1,"i",playerid);
    public SaveAll()
    {
    SpielerSpeichern();
    }
    [/pwn}


    Hoffe das klappt.
    MFG

    Einmal editiert, zuletzt von kingdome ()

  • Ehm wenn du alle spieler die verbunden sind speichern willst benutze ne MAX_PLAYERS schleife.

  • Also mach ein befehl mit /saveall.



    Dann mach eine Schleife woh alle spieler abgefragt werden.
    Und dann Speichern.


    Dann werden alle Spieler die auf deinen Server sind gespeichet




    Falls dus nicht kannst script ichs für dich schnell.




    MFG K44n

    Ich Scripte nicht mehr!
    Signatur zuletzt Aktualiesiert:11.07.2012





    MFG K44n

  • Damit es alle 5 Min speichert zum Beispiel bei OnGameModeInit
    new SpielerSpeichernTimer;//das kommt zu den andern news
    SpielerSpeichernTimer = SetTimer("AlleSpielerSpeichern",300000, 1); //300000 = 5 Minuten
    OnGameModeExit:
    KillTimer(SpielerSpeichernTimer);
    sonst irgendwohin:

    forward AlleSpielerSpeichern();
    public AlleSpielerSpeichern()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    SpielerSpeichern(i);
    }
    }
    }

  • Ich habe jetzt einen Befehl erstellt aber das klappt iwie nicht:
    if(strcmp(cmdtext,"/saveall",true)==0)
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    SpielerSpeichern();
    }
    }
    SendClientMessage(playerid, DUNKELROT, "Du bist kein Admin!");
    return 1;
    }

  • Versuchs mal so:
    if(strcmp(cmdtext,"/saveall",true)==0)
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    SpielerSpeichern(i);
    }
    }
    }
    SendClientMessage(playerid, DUNKELROT, "Du bist kein Admin!");
    return 1;
    }



    so müsste es funktionieren



    MFG K44n

    Ich Scripte nicht mehr!
    Signatur zuletzt Aktualiesiert:11.07.2012





    MFG K44n

  • Auch wenn du es jetzt schon hast. Du hast eher was ganz anderes wichtiges vergessen bei der Schleife.


    Bei dir:


    SpielerSpeichern();



    Bei K44n


    SpielerSpeichern(i);


    Du musst auch den Integer in der Schleife auch nutzen.



    Maddin is my Lord and Master :D
    Musel my one and only b0wm
    Bisafloah is the pokemon that pwns a lot of goddamn ponys.