Beiträge von T4125Gamer

    Da ich gerade nicht so richtig weis habe ich nun Nitrado angerufen und Gefragt,
    #
    Eine Account Prüfung ist jetzt eingeleitet!


    Es gibt die Funktion Element untersuchen



    Zitat von lukas1177

    Das ist Fake Guthaben Zu 100 %


    Wenn ihr mal eine Seite zurück blättern würdet, würdet ihr sehen das ich das Guthaben bestätigt habe. Das Guthaben ist vorhanden. Das ist kein Fake. Ich habe die Seite neu geladen und ebenfalls neu aufrufen lassen.
    Das Geld ist vorhanden. Und jetzt hört endlich auf hier einen auf ober Maker zu machen und ewig zu schreiben "öhhh Fake, MELDEN!!!". Lest euch gefälligst alles komplett durch bevor ihr so eine schieße schreibt.

    So kann das auch nicht gehen.
    Mach die Spielerspeichern Funktion so:


    stock Spielerspeichern(playerid)
    {
    format(player, sizeof(player), "/Player/%s.ini",name[playerid]);
    dini_IntSet(player, "Money",GetPlayerMoney[playerid]);
    dini_IntSet(player,"Kills",GetPlayerScore[playerid]);
    return 1;
    }

    Ja, liegt an deiner Register Funktion. Du hast das:
    format(player, sizeof(player), "Player/%.ini",name(playerid));
    Richtig muss es aber so sein:
    format(player, sizeof(player), "Player/s%.ini",name(playerid));
    Du hast das "s" vergessen. So weiß der Server dann nicht wie die Datei heißt und gibt ihr einen zufälligen Namen.

    Ja, indem du bei jedem Kill den Score +1 machst.
    Dann änderst du das noch hier:
    dini_IntSet(DateiPfad,"Kills",GetPlayerScore(playerid));
    Zum setzten dann halt so:
    SetPlayerScore(playerid,dini_Int(DateiPfad,"Kills");

    1. warning 202: number of arguments does not match definition
    Du hast folgendes:
    ShowPlayerDialog(playerid, REGISTER,DIALOG_STYLE_INPUT,"Guten Tag %s,\nwie es aussieht, bist du neu hier. Bitte gebe ein Passwort ein!\n Aber vegesse es nicht und gebe es niemanden weiter!","Registrieren","Abbrechen");
    1. Fehlt da die Dialog Überschrift. Warum erklärt sich indem du diese Seite hier anschaust. http://wiki.sa-mp.com/wiki/ShowPlayerDialog
    2. Willst du dort %s anwenden, also das der Spielername angezeigt wird. So geht das nicht, da man in einem Dialog das nicht einfach so anzeigen lassen kann.
    Wie du dennoch den Spielernamen da rein bekommst zeig ich dir.
    Zuerst legen wir einen neuen String an mit dessen Hilfe wir den Namen in den Dialog reinbekommen.
    new dialogstring[LÄNGE]; //Bei Länge einfach die ungefähre Zeichenanzahl.
    Danach formatieren wir den String.
    format(dialogstring,sizeof(dialogstring),"%s");
    Jetzt müssen wir noch den Spielernamen irgendwie in das %s bzw. das %s zum Spielernamen machen. Das machen wir indem wir mit GetPlayerName den Namen herausfinden. Dazu ergänzen wir jetzt folgendes:
    new dialogstring[LÄNGE],sName[MAX_PLAYER_NAME]; //Bei Länge einfach die ungefähre Zeichenanzahl.
    Dann können wir nämlich mit GetPlayerName den Namen herausfinden.
    GetPlayerName(playerid,sName,sizeof(sName));
    Nun können wir "sName" dazu benutzen, den Spielernamen auf das %s zu legen. Dazu machen wir jetzt folgendes.
    format(dialogstring,sizeof(dialogstring),"%s",sName);
    Wenn wir uns jetzt "dialogstring" ausgeben lassen würden, dann würde der Name erscheinen. Machen wir das doch gleich in dem Dialog, doch bevor wir das machen passe ich das an deinen Dialog an.
    format(dialogstring,sizeof(dialogstring),"Guten Tag %s,\nwie es aussieht, bist du neu hier. Bitte gebe ein Passwort ein!\n Aber vegesse es nicht und gebe es niemanden weiter!",sName);
    ShowPlayerDialog(playerid, REGISTER,DIALOG_STYLE_INPUT,"Register",dialogstring,"Registrieren","Abbrechen");


    2. error 029: invalid expression, assumed zero
    Das kommt da du REGISTER statt Register genommen hast. Dein Dialog heißt REGISTER, doch die Funktion zum Registrieren heißt Register. Das heißt dann dass du
    REGISTER(playerid, MD5_Hash(inputtext));
    zu
    Register(playerid, MD5_Hash(inputtext));
    machen musst.


    3. error 010: invalid function or declaration
    Also eine Abfrage gehört keinesfalls einfach so ins Script rein. Da hast du das wohl falsch gesetzt. Mache das hier:
    if(dini_Exists(player))
    {
    ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Login","Hi%s!\nDein Account wurde gefunden. Bitte logge dich mit\nmit deinem Passwort ein!","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid, REGISTER,DIALOG_STYLE_INPUT,"Registration","Guten Tag %s,\nwie es aussieht, bist du neu hier. Bitte gebe ein Passwort ein!\n Aber vegesse es nicht und gebe es niemanden weiter!","Registrieren","Abbrechen");
    }
    In den Public OnPlayerConnect.


    4. error 017: undefined symbol "Spierdatei"
    Das kann so auch nicht gehen da du "player" statt Spielerdatei verwendet hast. Ändere also diese Zeile:
    if(strcmp(key,dini_Get(Spierdatei,"Key"),false))
    in
    if(strcmp(key,dini_Get(player,"Key"),false))


    5. warning 217: loose indentation und warning 219: local variable "name" shadows a variable at a preceding level
    Das "loose indenation" kommt daher dass die Zeilen nicht richtig eingerückt wurden. Entweder rückst du diese richtig ein oder du benutzt
    #pragma tabsize 0
    Kommen wir dann zum Schluss noch zu dem anderen Warning. Dieser sagt dir nur das der Name "name" schon verwendet wird. Ändere ihn also in irgendwas anderes um.

    Geld und Skin kannst du so speichern.


    dini_IntSet(DateiPfad,"Skin",GetPlayerSkin(playerid));
    dini_IntSet(DateiPfad,"Geld",GetPlayerMoney(playerid));


    Bei den Kills musst du die Kills auf eine Variable legen. Wenn du ein enum für die Spielerinfos hast dann mach es so bei OnPlayerDeath.


    public OnPlayerDeath(playerid, killerid, reason)
    {
    VariableFürInfo[killerid][Kills] ++;
    return 1;
    }
    Dann kannst du nämlich dort wo du es speichern lässt das so machen :


    dini_IntSet(DateiPfad,"Kills",VariableFürInfo[playerid][Kills]);


    Wenn du kein enum hast machst du es so:
    Global eine Varibale erstellen.
    new PlayerKills[MAX_PLAYERS];


    Und dann bei OnPlayerDeath:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    PlayerKills[killerid]++;
    return 1;
    }


    Beim Speichern machst du das dann so:


    dini_IntSet(DateiPfad,"Kills",PlayerKills[playerid]);