Bug bei Login

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,
    Ich habe folgendes Problem:
    Ich habe ein schönes Login System mit Textdraws erstellt.
    Nachdem man sein Passwort eingegeben hat, muss man auf "Einloggen" drücken.
    Da fängt schon das Problem an: Mit einer Wahrscheinlichkeit von 80% crasht der Client.
    Wenn man glück hat, wird man gespawnt und das nur bei "point zero" und Tot.
    Am Client kann es nicht liegen, da ich schon 3 Mal rein gekommen bin und bei meinem Kollegen das gleiche passiert.


    Ich zerbreche mir schon seit 2 Tagen den Kopf über den Code:
    Wenn man den "Einloggen" Knopf drückt:
    else if(clickedid == Textdraw33) //BoxEinloggen
    {

    if(strlen(LogInPW[playerid]) == 0)
    {
    LogDotRes[playerid] = 1;
    TextDrawSetString(Textdraw36,"*");
    ShowPlayerDialog(playerid,DIALOG_OK,DIALOG_STYLE_MSGBOX,"{FF9100}Einloggen","Du musst ein Passwort eingeben !\n (Einfach auf die Passwort Box klicken)","OK","");
    }

    else if(strcmp(LogInPW[playerid],dini_Get(User,"Passwort"),false)== 0)
    {

    PlayerTextDrawHide(playerid,Textdraw35[playerid]);
    print("loggedin hide");
    TextDrawHideForPlayer(playerid,Textdraw24);
    TextDrawHideForPlayer(playerid,Textdraw25);
    TextDrawHideForPlayer(playerid,Textdraw26);
    TextDrawHideForPlayer(playerid,Textdraw27);
    TextDrawHideForPlayer(playerid,Textdraw28);
    TextDrawHideForPlayer(playerid,Textdraw29);
    TextDrawHideForPlayer(playerid,Textdraw30);
    TextDrawHideForPlayer(playerid,Textdraw31);
    TextDrawHideForPlayer(playerid,Textdraw32);
    TextDrawHideForPlayer(playerid,Textdraw33);
    TextDrawHideForPlayer(playerid,Textdraw34);
    TextDrawHideForPlayer(playerid,Textdraw36);
    CancelSelectTextDraw(playerid);

    TextDrawSetString(Textdraw36,"*");
    InLogInBox[playerid] = 0;
    LogDotRes[playerid] = 0;
    Loadplayer(playerid);
    BoxPW[playerid] = "";
    LogInPW[playerid] = "";
    SetCameraBehindPlayer(playerid);
    TogglePlayerSpectating(playerid, 0);
    LoggedIn[playerid] = 1;

    TextDrawShowForPlayer(playerid,Textdraw5);
    TextDrawShowForPlayer(playerid,Textdraw6);
    TextDrawShowForPlayer(playerid,Textdraw7);
    TextDrawShowForPlayer(playerid,Textdraw8);

    TextDrawShowForPlayer(playerid,Textdraw9);
    TextDrawShowForPlayer(playerid,Textdraw10);
    TextDrawShowForPlayer(playerid,Textdraw11);
    TextDrawShowForPlayer(playerid,Textdraw12);
    TextDrawShowForPlayer(playerid,Textdraw13);
    TextDrawShowForPlayer(playerid,Textdraw16);
    PlayerTextDrawShow(playerid,Textdraw17[playerid]);
    StopAudioStreamForPlayer(playerid);

    if(dini_Int(User,"HatKonto") == 1)
    {
    TextDrawShowForPlayer(playerid,Textdraw14);
    TextDrawShowForPlayer(playerid,Textdraw15);
    PlayerTextDrawShow(playerid,Textdraw18[playerid]);
    }
    }

    else
    {
    LogDotRes[playerid] = 1;
    TextDrawSetString(Textdraw36,"*");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_MSGBOX,"{FF9100}Einloggen","Falsches Passwort !","Einloggen","");
    }
    }


    Hier noch Bildliche unterstützung:


    Meine anfrage wäre, ob jemand das fixxen kann... ?


    MfG
    RAiNBoMb


  • Zeig mal die public OnPlayerSpawn (war früher bei mir auch bei mir hats daran gelegen)

  • OnPlayerSpawn benutz ich nur für das Krankenhaus...
    public OnPlayerSpawn(playerid)
    {
    new User[32];
    format(User,32,"/User/%s.ini",GetPName(playerid));

    switch(Tot[playerid])
    {
    case 0:
    {
    if(dini_Int(User,"Skin") == 0)
    {
    dini_IntSet(User,"Skin",2);
    SetPlayerSkin(playerid, 2);
    }

    else
    {
    SetPlayerSkin(playerid, dini_Int(User,"Skin"));
    }
    }

    case 1:
    {
    SetPlayerPos(playerid,1160.815063, -1324.329467, 15.098136);
    TogglePlayerSpectating(playerid,1);
    TogglePlayerControllable(playerid,0);
    //1286.258178, -1324.843261, 43.276679
    InterpolateCameraPos(playerid, DPX[playerid], DPY[playerid], DPZ[playerid], 1225.278442, -1308.195556, 17.473649, 10000);
    InterpolateCameraLookAt(playerid, 1291.243530, -1324.691406, 43.627956, 1220.674316, -1310.138793, 17.633779, 1000);
    ClearCFP(playerid);
    SendClientMessage(playerid,RED,"---|Krankenhaus|---");
    SendClientMessage(playerid,RED,"Du wurdest mit einem Rettungswagen hierhergebracht");
    SendClientMessage(playerid,RED,"weil du Ohnmächtig aufgefunden wurdest !");
    SendClientMessage(playerid,RED,"Je nach schwere deiner Verletzungen wird ein Arzt");
    SendClientMessage(playerid,RED,"dich 2 bis 8 Ingame Minuten behandeln !");
    SendClientMessage(playerid,RED,"Dir werden deine Waffen und Behandlungskosten abgezogen !");
    SendClientMessage(playerid,RED,"---|Krankenhaus|---");
    ResetPlayerWeapons(playerid);
    Tot[playerid] = 0;
    switch(random(3))
    {
    case 0:
    {
    SetTimerEx("KHTimer",30000,0,"d",playerid);
    GivePMoney(playerid,-200);
    }

    case 1:
    {
    SetTimerEx("KHTimer",60000,0,"d",playerid);
    GivePMoney(playerid,-400);
    }

    case 2:
    {
    SetTimerEx("KHTimer",90000,0,"d",playerid);
    GivePMoney(playerid,-600);
    }

    case 3:
    {
    SetTimerEx("KHTimer",1200000,0,"d",playerid);
    GivePMoney(playerid,-800);
    }
    }
    }
    }
    return 1;
    }


    Aber hier nochmal der OnPlayerRequestClass
    public OnPlayerRequestClass(playerid, classid)
    {
    new User[32];
    format(User,32,"/User/%s.ini",GetPName(playerid));

    TextDrawShowForPlayer(playerid,Textdraw0);
    TextDrawShowForPlayer(playerid,Textdraw1);
    TextDrawShowForPlayer(playerid,Textdraw2);
    TextDrawShowForPlayer(playerid,Textdraw3);
    TextDrawShowForPlayer(playerid,Textdraw4);
    SelectTextDraw(playerid, ORANGE);
    InTDBox[playerid] = 1;
    LoggedIn[playerid] = 0;

    switch(dini_Exists(User))
    {
    case 0:
    {
    TextDrawSetString(Textdraw4,"Registrieren");
    SetSpawnInfo(playerid,0,dini_Int(User,"Skin"),409.0820,-1544.0743,32.2734,224.0865,0,0,0,0,0,0);
    }

    case 1:
    {
    TextDrawSetString(Textdraw4,"Einloggen");
    SetSpawnInfo(playerid,0,dini_Int(User,"Skin"),dini_Float(User,"X"),dini_Float(User,"Y"),dini_Float(User,"Z"),dini_Float(User,"A"),0,0,0,0,0,0);
    }
    }

    SpawnPlayer(playerid);

    TogglePlayerSpectating(playerid, 1);

    return 1;
    }

  • Seh ich gerade auch. Mach mal da, wo er sich erfolgreich eingelogt hat ein SpawnPlayer(playerid); hin (da ich keinen Fehler im Quode finde sag ich dir ein paar Sachen di du ausprobieren kannst ein paar Zeilen drüber die erste ^^)


    Ich glaube unfähiger kann ich nicht sein...
    Danke, es funktioniert :D

  • Beitrag von Tom Sunder ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.