Level wird nicht vergeben

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,


    wenn ich mich regestriere wird mir mein Level nicht gegeben. Also es steht "0"


    Hier der OnPlayerConnect:


    public OnPlayerConnect(playerid){ if(IsPlayerNPC(playerid))return 1; //Ein NPC soll sich ja nicht registrieren sonst käme er ja nicht auf unseren Server new Spielerdatei[128],string[128],string2[128]; //Spielerdatei,sowie 2 Strings format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid)); //Ist klar if(dini_Exists(Spielerdatei)) //Hier wird abgefragt ob der User Bereits registriert ist { //Wenn ja , dann... format(string,sizeof(string),"{FFFFFF}Herzlich Willkommen zurück auf meinem Server {FFFA00}%s.\n{FFFFFF}Gib unten bitte dein Passwort ein!",SpielerName(playerid)); //String1...... ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login Vorgang",string,"Einloggen","Abbrechen"); //Login Dialog mit der Info string } else { //Falls nicht format(string2,sizeof(string2),"{FFFFFF}Herzlich willkommen {FFFA00}%s.\n{FFFFFF}Da dies dein erster Besuch hier ist musst du dich erst registrieren.\nBitte gib unten dein gewünschtes Passwort ein!",SpielerName(playerid)); //String 2 ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrierungs Vorgang",string2,"Register","Abbrechen"); //Register-Dialog mit der Info string2 } return 1;}



    Hier Wird der Spieler Geladen und Regestriert:


    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,COLOR_RED, "Erfolgreich registriert.");
    dini_IntSet(Spielerdatei,"Level",1);
    dini_IntSet(Spielerdatei,"Banned",0);
    dini_IntSet(Spielerdatei,"Adminlevel",0);
    dini_IntSet(Spielerdatei,"Fraktion",0);
    dini_IntSet(Spielerdatei,"Geld",0);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }



    Vielen Dank für deine Hilfe.
    Gruß

  • stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,COLOR_RED, "Erfolgreich registriert.");
    SetPlayerScore(playerid,1);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Banned",0);
    dini_IntSet(Spielerdatei,"Adminlevel",0);
    dini_IntSet(Spielerdatei,"Fraktion",0);
    dini_IntSet(Spielerdatei,"Geld",0);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    versuch das mal so... (ungetestet)


    Mit freundlichen Grüßen
    German_ScripterHD


  • Er muss doch nicht nur die dini_Int's... setzen, sonder das Level, das Geld und die Fraktionsnummer am Anfang bei der Registration angeben. Dies durch
    enthaltene Funktionen von SA-MP wie GivePlayerMoney, oder SetPlayerScore, oder durch die SetPVar Funktionen von DINI.
    Versuchs mal so:


    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,COLOR_RED, "Erfolgreich registriert.");
    SetPlayerScore(playerid,1);
    dini_IntSet(Spielerdatei,"Level",1));
    dini_IntSet(Spielerdatei,"Banned",0);
    dini_IntSet(Spielerdatei,"Adminlevel",0);
    dini_IntSet(Spielerdatei,"Fraktion",0);
    dini_IntSet(Spielerdatei,"Geld",1500);
    // Das hat er also nach der Registrierung:
    SetPlayerScore(playerid, 1); //Für das Level
    SetPVarInt(playerid,"Banned", 0); //Gebannt = Nein
    SetPVarInt(playerid,"Adminlevel",0); //Adminlevel veständlich auf 0 in der Spielerdatei
    SetPVarInt(playerid,"Fraktion",0); //Seine Fraktion in der Spielerdatei am Anfang natürlich auch auf 0
    GivePlayerMoney(playerid, 1500); //Geld muss man auch vergeben, ich habe dir mal 1500 gesetzt. Kannst du verändern
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    Ich hoffe, ich konnte dir helfen. Falls ich eine falsche Hilfe geleistet habe, bitte korrigieren.