mysql_fetch_row Servercrash

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 zusammen


    Ich habe in der Funktion das problem, wenn er den User laden soll das er sich da aufhängt wiso auch immer

    Spoiler anzeigen
    stock LoadPlayer(playerid,Key[])
    {
    new Data[1024],query[256],zielip[16],fuckWanted;
    format(query, 256, "SELECT * FROM `player` WHERE `Name` = '%s' AND `Passwort` = '%s'", PlayerInfo[playerid][Name],MD5_Hash(Key));
    mysql_query(query, (-1), (0), SQL);
    mysql_store_result(SQL);
    if(mysql_num_rows(SQL)!=0)
    {
    StopAudioStreamForPlayer(playerid);
    GetPlayerIp(playerid,zielip,sizeof(zielip));
    SetCameraBehindPlayer(playerid);
    SetPlayerPos(playerid,-61.7026,-36.9398,25.9801);
    SetPlayerFacingAngle(playerid,251.5858);
    SetPlayerVirtualWorld(playerid,playerid+1);
    TogglePlayerControllable(playerid, 0);
    TextDrawShowForPlayer(playerid,PlayerInfo[playerid][LadeACC][1]);
    mysql_free_result(SQL);
    format(query, sizeof(query),"SELECT * FROM `player` WHERE `Name` = '%s'",PlayerInfo[playerid][Name]);
    mysql_query(query, (-1), (0), SQL);
    mysql_store_result(SQL);
    mysql_fetch_row(Data, "|", SQL);
    if(sscanf(Data, "p<|>ds[64]s[128]dddddddddddds[128]s[128]s[16]dddddddddddddddddd",
    PlayerInfo[playerid][Userid],PlayerInfo[playerid][Name],PlayerInfo[playerid][Passwort],PlayerInfo[playerid][Admin],PlayerInfo[playerid][Job],PlayerInfo[playerid][Team],PlayerInfo[playerid][Geld],PlayerInfo[playerid][Skin],
    PlayerInfo[playerid][Level],PlayerInfo[playerid][Respekt],PlayerInfo[playerid][PayDay],PlayerInfo[playerid][PayDayTog],PlayerInfo[playerid][Rank],PlayerInfo[playerid][Leader],PlayerInfo[playerid][Banned],PlayerInfo[playerid][BanGrund],
    PlayerInfo[playerid][BanAdmin],PlayerInfo[playerid][IP],PlayerInfo[playerid][Nummer],PlayerInfo[playerid][Safeban],PlayerInfo[playerid][Helm],PlayerInfo[playerid][Jobvertrag],PlayerInfo[playerid][Star],PlayerInfo[playerid][Igvip],
    PlayerInfo[playerid][Jailtime],PlayerInfo[playerid][Carlic],PlayerInfo[playerid][Lkwlic],PlayerInfo[playerid][Bikelic],PlayerInfo[playerid][Helilic],PlayerInfo[playerid][Flylic],PlayerInfo[playerid][Bootlic],
    PlayerInfo[playerid][SpawnChange],PlayerInfo[playerid][SpawnHaus],PlayerInfo[playerid][Bank],PlayerInfo[playerid][President],fuckWanted))
    {
    printf("[Fehlercode Usr-26774] %s",PlayerInfo[playerid][Name]);
    SendClientMessage(playerid,cRed,"Fehlercode Usr-26774! Es konnten einige Daten nicht geladen werden (Keine Sorge deine Daten sind nicht verloren gegangen)");
    }
    new arschgeldwert = PlayerInfo[playerid][Geld];
    PlayerInfo[playerid][Geld] = 0;
    GivePlayerMoney(playerid, arschgeldwert);
    SetPlayerWantedLevel(playerid,fuckWanted);
    SetPlayerScore(playerid,PlayerInfo[playerid][Nummer]);
    if(PlayerInfo[playerid][Nummer]==0)
    SetPlayerNummer(playerid);
    format(PlayerInfo[playerid][IP],16,"%s",SplitIP(zielip));
    if(PlayerInfo[playerid][Safeban]!=0 && IsPlayerSafe(playerid)==0)
    {
    PlayerSafeJoin(playerid);
    ShowPlayerDialog(playerid,diaInfo,DIALOG_STYLE_MSGBOX,"GTA "Servername"","Du wurdest von "AC_BOT_NAME" gekickt, da du Safe Gebannt bist und den Launcher nicht eingeschaltet hast.\nSolltest du den Launcher bereits eingeschaltet haben, so starte den bitte neu und versuch dann wieder zu connecten.","Ok","");
    Kick(playerid);
    }
    if(IsPlayerSafe(playerid)==0)
    {
    format(query, sizeof(query), "{006100}[Join] %s hat den Server betreten.", PlayerInfo[playerid][Name]);
    SendClientMessageToAll(cGreen, query);
    }
    else
    {
    format(query, sizeof(query), "{006100}[{FF8000}Safe{006100}-Join] %s hat den Server betreten.", PlayerInfo[playerid][Name]);
    SendClientMessageToAll(cGreen, query);
    PlayerSafeJoin(playerid);
    }
    if(!CallRemoteFunction("WBB_CheckAccount","s", PlayerInfo[playerid][Name]))
    {
    CallRemoteFunction("WBB_Register","ssss", PlayerInfo[playerid][Name], "nicht definiert da Server erstellt", Key, zielip);
    SendClientMessage(playerid,cYellow,"Dein Forenaccount wurde soeben erstellt");
    }
    for(new s = 0; s < 3; s++)
    {
    SetTimerEx("LoadPlayerCar",1500,0,"dd",playerid,s);
    }
    if(PlayerInfo[playerid][Admin]==1)if(GetPlayerWBBGroup(PlayerInfo[playerid][Name],GroupSupport)==0)AddPlayerWBBGroup(PlayerInfo[playerid][Name], GroupSupport);
    else if(PlayerInfo[playerid][Admin]==2)if(GetPlayerWBBGroup(PlayerInfo[playerid][Name],GroupModerator)==0)AddPlayerWBBGroup(PlayerInfo[playerid][Name], GroupModerator);
    else if(PlayerInfo[playerid][Admin]==3)if(GetPlayerWBBGroup(PlayerInfo[playerid][Name],GroupSModerator)==0)AddPlayerWBBGroup(PlayerInfo[playerid][Name], GroupSModerator);
    else if(PlayerInfo[playerid][Admin]==4)if(GetPlayerWBBGroup(PlayerInfo[playerid][Name],GroupAdmin)==0)AddPlayerWBBGroup(PlayerInfo[playerid][Name], GroupAdmin);
    else if(PlayerInfo[playerid][Admin]==5)if(GetPlayerWBBGroup(PlayerInfo[playerid][Name],GroupFAdmin)==0)AddPlayerWBBGroup(PlayerInfo[playerid][Name], GroupFAdmin);
    if(IsPlayerMultiaccount(playerid)>1)
    {
    format(query, sizeof(query), "Spieler %s (id: %d) besitzt einen Multiaccount mit Spieler: %s.", PlayerInfo[playerid][Name],playerid,PlayerMultiaccount(playerid));
    AdminMessage(AC_BOT_NAME,query);
    }
    PlayerInfo[playerid][Logged]=1;
    SetPVarInt(playerid,"played",1);
    SpawnPlayer(playerid);
    SetPlayerVirtualWorld(playerid,0);
    TogglePlayerControllable(playerid, 1);
    mysql_free_result(SQL);
    ShowPlayerWelcomeDialog(playerid);
    handyUpdate(playerid);
    return 1;
    }
    else
    {
    mysql_free_result(SQL);
    format(query, 128, "{FFFFFF}Fehler{FF6E00} %s {FFFFFF}Das Passwort war Falsch", PlayerInfo[playerid][Name]);
    ShowPlayerDialog(playerid,diaLogin,DIALOG_STYLE_PASSWORD,"GTA "Servername"",query,"Login","");
    return 1;
    }
    }


    So langsam werd ich ziemlich sauer, da ich die Uhrsache einfach nicht finde

    All in all it's just another brick in the wall

  • Die zweite mysql_query ist komplett überflüssig


    du führst ganz am Anfang schon ein "SELECT *" (=alles) aus und drunter noch ein zweites mal ?(


    den teil
    mysql_free_result(SQL);
    format(query, sizeof(query),"SELECT * FROM `player` WHERE `Name` = '%s'",PlayerInfo[playerid][Name]);
    mysql_query(query, (-1), (0), SQL);
    mysql_store_result(SQL);
    mysql_fetch_row(Data, "|", SQL);


    mit mysql_fetch_row(Data, "|", SQL); ersetzen


    aber ob das den crash behebt ist fraglich

  • also wenn du print("Vor fetch");
    mysql_fetch_row(Data, "|", SQL);
    print("Nach fetch");

    machst, dann taucht "Vor fetch" auf und "nach fetch" nicht auf ? Wenn das nicht der Fall ist dann wären weitere print Befehle hilfreich um den Fehler zu lokalisieren.

  • der Log sagt ja nix und wenn ich data erhöhe hilft es auch nix
    er hängt an den einen fetch row


    //edit ich weiß woran es lag


    new Data[1024],query[256],zielip[16],fuckWanted;
    das habe ich zu das gesetzt:
    new Data[1024],query[256],zielip[16],fuckWanted=0;
    der sscanf wert wusste nix damit anzufangen^^

    All in all it's just another brick in the wall

    Einmal editiert, zuletzt von [DT]Beavis ()