Kills und Deaths 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
  • hi,


    wie kann ich diese Kills und Deaths speichern. Also angezeigt werden sie schon, nur gespeichert eben noch nicht.


    new tode[MAX_PLAYERS], kills[MAX_PLAYERS];


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext,"/stats",true)==0) {
    new s[50];
    format(s,sizeof(s),"Kills: %d | Deaths: %d | Ratio: ",kills[playerid],tode[playerid]);
    SendClientMessage(playerid,0xFFFF00AA,s);
    }
    return 1;


    public OnPlayerDeath(playerid, killerid, reason)
    {
    tode[playerid]++;
    if(killerid!=INVALID_PLAYER_ID) {
    kills[killerid]++; }
    }
    return 1;


    Wie kann ich die Ratio berechnen?
    Und ist es möglich auch die gesamt Zeit anzuzeigen? (Also die Zeit, die ein Spieler schin imsgesamt mit dem Server verbunden war).
    Und wie kann ich mir auch noch die Score anzeigen lassen?


    Wäre als Noob froh über Hilfe.
    Habe die sufu schon benutzt, aber das klappt entweder nicht oder ich schnalls nich. :whistling:



    //edit Frage geändert.

  • hi, danke für die Antwort.
    also wie gesagt, die Kills/Deaths werden nur angezeigt und bis jetzt nicht gespeichert, der code dafür ist oben.
    Das System, dass ich bis jetzt habe sieht so aus und gespeichert werden Geld und Score.



    #include <dini>
    #define DIALOG_LOGIN 3
    #define DIALOG_REG 4
    enum spieler_daten
    {
    eingeloggt
    }


    Bei onplayerconnect:
    new Spieler[MAX_PLAYERS][spieler_daten];


    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Please login!","Next","Cancel");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Register","Please register!","Next","Cancel");
    }


    Bei onplayerdisconnect:
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {


    dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
    }
    Spieler[playerid][eingeloggt] = 0;


    Bei onplayerspawn:
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);


    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","Please login!","Next","Cancel");
    return SendClientMessage(playerid,0xFFFFFFFF,"No password entered!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
    {

    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));

    Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
    SendClientMessage(playerid,0xFFFFFFFF,"You has been loged in successfully.");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Please login!","Next","Cancel");
    SendClientMessage(playerid,0xFFFFFFFF,"The password you entered is invalid!");
    }
    }
    case DIALOG_REG: // ID Registrieren
    {
    if(!strlen(inputtext)) // Text darf nicht = Null sein Null im Sinne von nichts
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Register","Please register!","Next","Cancel");
    return SendClientMessage(playerid,0xFFFFFFFF,"The password is too short!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Account has been created successfully, you're loged in now.");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Please login!","Next","Cancel");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Register","Please register!","Next","Cancel");
    }
    }



    Jo, das wars im ganzen, wäre super, wenn du mir helfen könntest.
    danke schon mal.


    //edit: ja in einer Datei soll es dann gespeichert wewrden, genau wie das geld und die Score .