Der Spieler ist eingeloggt!

  • Vio Lite/Extended

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Der Spieler ist eingeloggt!

    Guten Morgen Hier der Fehlercode

    [03:47:04] ERROR: venox/register_login/register_login_server.lua:776: attempt to index local 'dsatz' (a nil value)
    [03:47:04] WARNING: venox/register_login/register_login_server.lua:772: dbExec failed; (1364) Field 'Spezial' doesn't have a default value
    [03:47:18] QUIT: ImoJimPro left the game
    [03:47:18] ERROR: venox/skills/skills_data_server.lua:16: attempt to compare nil with boolean

    Hier von den Zeilen 769 bis 780

    LUA-Quellcode: register_login_server

    1. local dsatz
    2. local result = dbPoll ( dbQuery ( handler, "SELECT * from inventar WHERE UID = ?", playerUID[pname] ), -1 )
    3. if not result or not result[1] then
    4. dbExec ( handler, "INSERT INTO inventar (UID) VALUES (?)", playerUID[pname] )
    5. result = dbPoll ( dbQuery ( handler, "SELECT * from inventar WHERE UID = ?", playerUID[pname] ), -1 )
    6. end
    7. dsatz = result[1]
    8. if dsatz["Wuerfel"] then
    9. vioSetElementData ( player, "dice", tonumber ( dsatz["Wuerfel"] ) )
    10. else
    11. vioSetElementData ( player, "dice", 0 )
    12. end
    Alles anzeigen
  • Sind denn alle Leute die irgendwas mit Venox haben so drauf?

    Anscheind hast du die tabels in der Datenbank nicht erstellt. (Nil value = nicht gegeben ) oder die dsatz value ist nicht gegeben -> mit dem Datenbank Server verbunden?


    P.s
    Zudem ist das Script viel zuverbuggt und ich würde dir empfehlen ein anderes zunehmen.

    Cobert schrieb:

    Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast
  • Damit hier auch mal eine etwas qualifiziertere Antwort ist...

    Deine 'dsatz' Variable ist nil. Diese sollte eigentlich in Zeile 7 (aus deinem Auszug) vom vorherigen result beschrieben werden. Jetzt kommt es scheinbar für neue Spieler zu dem Fall, dass in der Datenbank in der Tabelle 'inventar' noch kein Wert für den Spieler existiert. Deswegen ist da eine Abfrage, welche dies dann erstellen soll (Zeile 3 - 6). Allerdings wird dort dbExec genutzt, was zwar Grundsätzlich nicht verkehrt ist, aber in deinem Fall mit dem nachfolgenden Script Probleme macht. Denn dbExec läuft Asynchron. Das heißt dein Script läuft weiter und wartet nicht auf eine Antwort vom Datenbank Server. Während also dein Datenbank Server noch gar nichts von deinem INSERT INTO mit dbExec in Zeile 4 mitbekommen hat, fragt das Script schon danach in Zeile 5.
    Lange Rede kurzer Sinn, dbExec zu dbQuery ändern und mögliche Anpassungen vornehmen.

    Das wird dein Problem allerdings noch nicht vollständig beheben. Denn deine Query wird nicht durchgehen bzw. keinen Eintrag erstellen, da die Spalte "Spezial" keinen Standardwert (default value) hat. Entweder schreibst du in deine Query was da rein soll oder vergibst der Spalte einfach einen Standardwert. Eventuell ist das auch das einzige Problem und das dbExec passt seltsamerweise.
  • PewX schrieb:

    Damit hier auch mal eine etwas qualifiziertere Antwort ist...
    Qualifizierte Antwort auf eine Aufforderung wie "Hier Hund such den Stock" ?

    Ich frage mich wieso sowas überhaupt unterstützt wird.

    Cobert schrieb:

    Kannst dich jetzt hinter deiner Mauer aus passiv aggressiven Klassikern wie "mimimi" oder "typisch Com" natürlich wie der Boss fühlen, weil du es jetzt allen mal so richtig gegeben hast
  • PewX schrieb:

    Damit hier auch mal eine etwas qualifiziertere Antwort ist...

    Deine 'dsatz' Variable ist nil. Diese sollte eigentlich in Zeile 7 (aus deinem Auszug) vom vorherigen result beschrieben werden. Jetzt kommt es scheinbar für neue Spieler zu dem Fall, dass in der Datenbank in der Tabelle 'inventar' noch kein Wert für den Spieler existiert. Deswegen ist da eine Abfrage, welche dies dann erstellen soll (Zeile 3 - 6). Allerdings wird dort dbExec genutzt, was zwar Grundsätzlich nicht verkehrt ist, aber in deinem Fall mit dem nachfolgenden Script Probleme macht. Denn dbExec läuft Asynchron. Das heißt dein Script läuft weiter und wartet nicht auf eine Antwort vom Datenbank Server. Während also dein Datenbank Server noch gar nichts von deinem INSERT INTO mit dbExec in Zeile 4 mitbekommen hat, fragt das Script schon danach in Zeile 5.
    Lange Rede kurzer Sinn, dbExec zu dbQuery ändern und mögliche Anpassungen vornehmen.

    Das wird dein Problem allerdings noch nicht vollständig beheben. Denn deine Query wird nicht durchgehen bzw. keinen Eintrag erstellen, da die Spalte "Spezial" keinen Standardwert (default value) hat. Entweder schreibst du in deine Query was da rein soll oder vergibst der Spalte einfach einen Standardwert. Eventuell ist das auch das einzige Problem und das dbExec passt seltsamerweise.
    Ich küss einfach deine Augen PewX <3
    Kenne mich sehr gut mit "Vio Extended" und "Vio Ultimate" aus.

    Dream Reallife Scripter