Y_INI Login/Register "Stay Within World Boundries"

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, Breadfish User. Ich hab mal ein Y_INI Login/Register System gesucht und jaa, da bin ich eben auf eins gestoßen, funktioniert eigentlich ziemlich gut, aber wenn ich mich einlogge, dann bekomm ich dieses "Stay within World Boundries". Hier ist der Code vom Login/Register, ich hoffe mir kann jemand helfen:



    #include <a_samp>
    #include <YSI\y_ini>


    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    #define DIALOG_SUCCESS_1 3
    #define DIALOG_SUCCESS_2 4


    #define PATH "/Users/%s.ini"


    #define COL_WHITE "{FFFFFF}"
    #define COL_RED "{F81414}"
    #define COL_GREEN "{00FF22}"
    #define COL_LIGHTBLUE "{00CED1}"


    enum pInfo
    {
    pPass,
    pCash,
    pAdmin,
    pKills,
    pDeaths,
    pScore
    }
    new PlayerInfo[MAX_PLAYERS][pInfo];


    forward LoadUser_data(playerid,name[],value[]);
    public LoadUser_data(playerid,name[],value[])
    {
    INI_Int("Password",PlayerInfo[playerid][pPass]);
    INI_Int("Cash",PlayerInfo[playerid][pCash]);
    INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
    INI_Int("Kills",PlayerInfo[playerid][pKills]);
    INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
    INI_Int("Score",PlayerInfo[playerid][pScore]);
    return 1;
    }


    stock UserPath(playerid)
    {
    new string[128],playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),PATH,playername);
    return string;
    }


    stock udb_hash(buf[]) {
    new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n<length; n++)
    {
    s1 = (s1 + buf[n]) % 65521;
    s2 = (s2 + s1) % 65521;
    }
    return (s2 << 16) + s1;
    }


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    public OnGameModeInit()
    {
    SetGameModeText("Blank Script");
    return 1;
    }



    public OnPlayerRequestClass(playerid, classid)
    {
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    if(fexist(UserPath(playerid)))
    {
    INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Einloggen",""COL_WHITE"Gib unten dein Passwort ein um dich einzuloggen.","Login","Verlassen");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registrierung...",""COL_WHITE"Geb unterhalb dein Passwort ein um dich zu registrieren!.","Registrieren","Verlassen");
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    INI_WriteInt(File,"Score",GetPlayerScore(playerid));
    INI_Close(File);
    return 1;
    }



    public OnPlayerDeath(playerid, killerid, reason)
    {
    PlayerInfo[killerid][pKills]++;
    PlayerInfo[playerid][pDeaths]++;
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    switch( dialogid )
    {
    case DIALOG_REGISTER:
    {
    if (!response) return Kick(playerid);
    if(response)
    {
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registrierung..",""COL_RED"Du hast ein falsches Passwort eingegeben.\n"COL_WHITE"Geb unterhalb dein Passwort ein um dich zu registrieren!.","Registrieren","Verlassen");
    new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Password",udb_hash(inputtext));
    INI_WriteInt(File,"Cash",0);
    INI_WriteInt(File,"Admin",0);
    INI_WriteInt(File,"Kills",0);
    INI_WriteInt(File,"Deaths",0);
    INI_WriteInt(File,"Score",1);
    INI_Close(File);


    SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
    SpawnPlayer(playerid);
    }
    }


    case DIALOG_LOGIN:
    {
    if ( !response ) return Kick ( playerid );
    if( response )
    {
    if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
    {
    INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
    GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
    SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
    ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Erfolg!",""COL_GREEN"Du hast dich erfolgreich eingeloggt!!","Ok","");
    SpawnPlayer(playerid);
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Einloggen",""COL_RED"Du hast ein falsches Passwort eingegeben.\n"COL_WHITE"Gib unten dein Passwort ein um dich einzuloggen.","Login","Verlassen");
    }
    return 1;
    }
    }
    }
    return 1;
    }


    (Die unwichtigen Callbacks hab ich raus)


    //EDIT EGAL HAB AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); VERGESSEN!!

    Einmal editiert, zuletzt von #include ()