Liveplayer 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
  • Unser Server läuft auf Basis des GNE scripts und das auch normalerweise fehlerfrei,
    doch seit kurzem passiert es ab und zu, dass ein einzelner Spieler nicht "richtig" connectet und darauf hin
    immer ID 0 spectatet und sobald dieser nutzer etwas schreibt, taucht er im chat auf als "Liveplayer NAME".
    Wir schaffen es leider nicht diesen Bug zu reproduzieren und brauchen daher mal eure Hilfe :)


    Hier der Server-Log (betroffener Nutzer war Alucard):
    http://pastebin.com/WF7AJJyH




    Bei Bedarf schicke ich auch Teile des Scripts.


    MfG
    Josh

  • Willkommen auf Breadfish!


    Zitat

    [14:42:29] [join] Alucard has joined the server (3:X.X.X.X)
    [14:42:29] [debug] Run time error 4: "Array index out of bounds"
    [14:42:29] [debug] Accessing element at negative index -1231819799
    [14:42:29] [debug] AMX backtrace:
    [14:42:29] [debug] #0 00006094 in public OnPlayerConnect () from GBCL.amx


    Das wird der Fehler sein.


    Erstelle in deinem /pawno/ Ordner mal eine Datei "pawn.cfg" und schreibe dort "-d3" rein (ohne die Anführungszeichen). Dann öffne die pawno.exe und kompiliere deinen Code erneut.
    Anschließend starte den Server mit der neuen amx Datei neu und poste dann erneut was im Log steht, wenn der Fehler passiert. Es steht dann die Fehlerzeile im Code dabei, die kannst du dann auch gleich mit posten.

  • so hab den server jetzt kurz laufen lassen.
    http://pastebin.com/NGwUBR1K


    PS (Jetzt ist Jack Smith betroffen):


    [16:57:50] [join] Jack.Smith has joined the server (8:217.234.127.146)
    [16:57:50] [debug] Run time error 5: "Invalid memory access"
    [16:57:50] [debug] AMX backtrace:
    [16:57:50] [debug] #0 00007c7c in public OnPlayerConnect () at C:\Users\LordTourette\Desktop\Scripting GBR\German Big City Life WiP\pawno\include\M_Bot.inc:750


    PSS:
    http://pastebin.com/QzgA3TQY
    Nochmal nen etwas längerer Log

  • Hast du, bevor du die pawn.cfg erstellt hast, eine mehrzeilige Meldung mit vielen Zahlen im Compiler gehabt?
    Falls ja, füge mal das hier unter den Includes ein:
    #pragma dynamic 100000
    Erhöhe die Zahl etwas, falls die Meldung bleibt. Mit der pawn.cfg wird die Meldung immer bleiben, also versuche es ohne die pawn.cfg, verschiebe die solange auf den Desktop (pawno.exe neu starten).

  • Hey Jeffry, erstmal danke für die ganzen Antworten.
    Aber leider ändert dies Garnichts... Wir haben auch nicht , wie du sagtest mehrzeilige Meldungen mit vielen Zahlen im Compiler gehabt. Keine Ahnung wieso. Aber ich habe das #pragma dynamic von 8213 auf 100000 gesetzt. Aber immernoch kommen diese Fehler auf.


    Leider verbuggt langsam ALLES bei uns...
    beim /goto (id) wird nichtmehr allgemein bei den Admins angezeigt, dass sie sich porten.
    Bei anderen Befehlen kommt garkeine Meldung mehr...


    Und gestern Abend hat ALLES funktioniert. Nur heute Morgen ist ein Spieler (Alucard) online gekommen, und hatte eben diesen Livebug.
    Was für Ideen hättest du denn noch, um dieses Problem fixxen zu können ? :/

  • Hast du irgendwelche Änderungen in der Zeit gemacht, während alles ging bis es plötzlich nicht mehr ging?
    Ansonsten lade dir das Server Paket nochmal herunter und kompiliere mit der pawno.exe daraus nochmal deinen Code, und starte den Server dann vom neuen Paket aus, vielleicht hilft das.


    Irgendwas passt auf jeden Fall nicht beim Zugriff auf den Speicher.

  • Wie meinst du, es stimmt was nicht mit dem Speicher. Meinst du, dass der Server nicht richtig auf den Registerscript/den Gespeicherten Accounts zugreifen kann, und deswegen so rumbuggt?


    Hm ... Müsste ich schauen :( Wirklich was verändert habe ich nicht ...

  • Naja, dieser Fehler hier ist nicht wirklich zu erklären, es gibt auch keine sinnvollen Lösungen dazu:

    Zitat

    [16:57:50] [debug] Run time error 5: "Invalid memory access"


    Das einzigste was du noch machen kannst, ist in dem Callback in dem das kommt, also OnPlayerConnect, zwischen jede Zeile einen Print zu setzen und zu schauen, wann genau es wirklich abstürzt. Das kannst du ja im Bereich von Zeile 750 der M_Bot.inc machen, da laut crashdetect dort der Fehler ist, soweit ich das gesehen habe ist das aber nur eine "new" Zeile, sprich eine Speicherdeklaration, was darauf hinweisen kann, dass in diese Richtung etwas nicht stimmt. Aber versuch das mit den Prints mal.

  • Nur so rein aus Interesse.... Da ja dauerhaft diese Fehler auftreten NACHDEM jemand den Liveplayer bug einmal HATTE .... kann man nicht einfach M_Bot komplett entfernen? :) Oder wie taucht überhaupt dieser Liveplayer bug auf? Weil ja ziemlich viele Leute davon im Internet berichten. Kann ja nicht sein, dass niemand einen Fixx parat hat ^^

  • Ok ich denke ich weiß jetzt was du meinst und wahrscheinlich meinst du das hier:




    Header size: 14444 bytes
    Code size: 3410844 bytes
    Data size: 26915824 bytes
    Stack/heap size: 400000 bytes; estimated max. usage: unknown, due to recursion
    Total requirements:30741112 bytes

  • Ja, genau das. Diese Meldung darf nicht vorhanden sein, wenn die pawn.cfg im pawno Ordner nicht existiert.
    Lösche diese, starte die pawno.exe neu und kompiliere den Code dann nochmal. Falls die Meldung nicht weg geht, erhöhe den Wert beim pragma dynamic.

  • Okay. Nun haben wir dieses Problem :D ABER nur mit diesem Player :
    [00:46:20] [join] Raiden has joined the server (3:217.234.127.146)
    [00:46:20] [debug] Run time error 5: "Invalid memory access"
    [00:46:20] [debug] AMX backtrace:
    [00:46:20] [debug] #0 00007c7c in public OnPlayerConnect () at C:\Users\LordTourette\Desktop\Scripting GBR\German Big City Life WiP\pawno\include\m_bot.inc:750


    Ich verstehe nicht, warum das kommt -.-* Wir haben pragma nun auf 600000



    Und danke das du immer so schnell antwortest.

  • Das ist halt der Code aus dem Include der die Probleme verursacht und da M_Bot.inc die ganzen Bans regelt, können wir das nicht ganz so einfach entfernen. Was auch wunderlich ist, ist dass er nur bei dieser Abfrage
    laut Serverlog den Runtime Error 5 ausgibt. Aber bei anderen Abfragen steht es im Grunde genommen fast genauso, aber da gibt er keine Error aus :/



    http://pastebin.com/chWPQrmu

  • Klappt es denn, wenn du diesen Code-Teil auskommentierst?
    Falls ja, dann schreibe das
    new banstring[128];
    mal ganz oben in die Include rein, gleich in die erste Zeile. Überall dort wo du dann eine Warnung bekommst, dass diese Variable bereits existiert löschst du das
    new banstring[128];
    weg (du hast es ja global deklariert).


    Geht es dann?

  • Hey Jeffry. Sorry das ich solang nicht geantwortet hab.
    Ich habe nun einiges versucht... unteranderem von der "Variable" gLastDriver, die in der Error Zeile meistens ist (manchmal auch oldcar) , versucht die Variable einfach zu erhöhen. Leider kommt IMMER beim Compilen Error 32 Array out of bounds...


    Langsam weiß ich wirklich keinen Ausweg mehr -.-* Aber kann auch kein Anderes Script nutzen...
    Außerdem will ich ja nur dieses ... ._. Haben nun auch objekte hinzugefügt... Nun laden ältere Objecte garnicht mehr... Oo Und teilweise andere oBjekte 2x... statt 1x....


    im Script ist "MAX_OBJECTS" mit 50 declariert... aber höher kann ichs nicht , da dann ein Fehler kommt... :(



    Helf mir/Uns :DDDD



    PS: Was du gestern geschrieben hast, habe ich nicht wirklich verstanden... :/

  • Naja, wie gesagt, das Problem ist bei dem Code der Speicher, aus irgendeinem Grund kann er da nicht richtig drauf zugreifen.


    Den Code, von dem pastebin, den du gepostet hast, setze den mal in einen Kommentar, damit er praktisch entfernt ist:
    /*
    Code hier
    */


    Dann kompiliere den Code. Kommt der Fehler mit dem Invalid memory access dann noch immer?


    Falls der Fehler aus dem Teil dann weg ist, dann lösche dort das
    new banstring[128];
    aus dem Code und überall im Code (also der Include) wo das noch vorkommt (new banstring). Anschließend schreibe das
    new banstring[128];
    ganz oben in die erste Zeile der Include und kompiliere den Code neu.