SSCANF gibt nichts am Enum weiter

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
  • Morgen zusammen


    Ich habe ein kleines Problem
    Bei mir wird von SSCANF nichts an mein Enum übermittelt
    Ich kann alles in der Datenbank stehen haben aber imgame kommt nix an
    Holen tut er alles nach den Log

    Code
    [Tue Dec 04 11:28:53 2012] Function: mysql_fetch_row executed with result: "1|Beavis|Snipped|5|1|4|172761|181|6|6|560|0|0|1|0|Test123|Beavis|127.0.|11880|NULL".


    So ist der Code
    stock LoadPlayer(playerid,Key[])
    {
    new Get[100],Data[1024];
    format(query, 256, "SELECT `Passwort` FROM `player` WHERE `Name` = '%s'", PlayerInfo[playerid][Name]);
    mysql_query(query, (-1), (0), SQL);
    mysql_store_result(SQL);
    mysql_fetch_row(Get, "|", SQL);
    if(!strcmp(MD5_Hash(Key), Get, true))
    {
    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);
    while(mysql_fetch_row(Data, "|", SQL))
    {
    sscanf(Data, "e<p<|>ds[64]s[128]dddddddddddds[128]s[128]s[16]dd>",PlayerInfo[playerid]);
    }
    GivePlayerMoney(playerid,PlayerInfo[playerid][Geld]);
    SetPlayerScore(playerid,PlayerInfo[playerid][Userid]);
    format(query, 128, "{006100}[Join] %s hat den Server betreten.", PlayerInfo[playerid][Name]);
    SendClientMessageToAll(cGreen, query);
    SpawnPlayer(playerid);
    }
    else
    {
    format(query, 128, "{FFFFFF}Fehler{FF6E00} %s {FFFFFF}Das Passwort war Falsch", PlayerInfo[playerid][Name]);
    ShowPlayerDialog(playerid,diaLogin,DIALOG_STYLE_PASSWORD,Servername,query,"Login","");
    }
    mysql_free_result(SQL);
    }


    und zu guter letzt die enum struktur
    enum PlayerEnum
    {
    Userid,
    Name[MAX_PLAYER_NAME],
    Passwort[128],
    Admin,
    Job,
    Team,
    Geld,
    Skin,
    Level,
    Respekt,
    PayDay,
    PayDayTog,
    Rank,
    Leader,
    Banned,
    BanGrund[128],
    BanAdmin[128],
    IP[16],
    Nummer,
    Safeban
    };


    Ich steh hier mit einen Fragezeichen
    Mein enum steht genau so wie es in der Reienfolge der Datenbank ist



    Ich hoffe auf hilfe von euch

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

  • Also wenn mich nicht alles täuscht, musst du das so nutzen:


    sscanf(Data, "p<|>e<ds[64]s[128]dddddddddddds[128]s[128]s[16]dd>",PlayerInfo[playerid]);


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Dann probiers mal nur so:


    sscanf(Data, "e<ds[64]s[128]dddddddddddds[128]s[128]s[16]dd>",PlayerInfo[playerid]);


    mfg. ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich hatte das p<|> weggelassen, da du es ja eigentlich schon durch mysql_fetch_row trennst (denke ich)...


    Aber maddin hat das auch noch n bissl anders, schreibs mal so:


    sscanf(Data, "e<p<|>{i}s[64]s[128]dddddddddddds[128]s[128]s[16]dd>",PlayerInfo[playerid]);


    mfg. :huh:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • wenn ich das erste auslasse, bekomm ich Probleme mit den Speichern, denn ich lass es nach Userid speichern nicht nach Name
    und dann müsste ich wieder ne menge umschreiben woraus ich einfach keine lust habe


    //e


    Wenn ich es umständlich mache klappt es
    sscanf(Data, "p<|>ds[64]s[128]dddddddddddds[128]s[128]s[16]dd",
    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]);
    Wiso geht die Kurzverfassung denn nicht?
    Ich versteh das einfach nicht

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

    Einmal editiert, zuletzt von iBeavis ()

  • Ich glaub das ist für das BlueG Plugin, bei Strickenkid gibts da irgendwie ne andere Funktion.
    PS: Ich Push den Thread weil ich genau dasselbe Problem hab =)


    das hat nix damit zu tun da sscanf den string splittet und mit mysql nur der string erstellt wird und dieser wird ja erstellt anscheinend

  • Ich glaub das ist für das BlueG Plugin, bei Strickenkid gibts da irgendwie ne andere Funktion.
    PS: Ich Push den Thread weil ich genau dasselbe Problem hab =)


    Dann solltest du einen eigenen Thread erstellen und dort das Problem schildern + die notwendigen Infos geben (code, enum struktur & tabellenstruktur der datenbank z.b).

    The fact is, I am right. And if you think I'm wrong, you are wrong.