Streamer Bug finden - Create/Delete-DynamicObject funktioniert sporadisch nicht.

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Ich habe das Problem an einigen Systemen, dass sich Objekte sporadisch nicht löschen lassen bzw. erstellen lassen, wenn diese Ingame erstellt werden.

    Das Problem lässt sich wie folgt provozieren:
    [Objekte OnGameModeInit laden] -> [/createatm - Zusätzliches Objekt erstellt] -> [/deleteatm von einem bei OnGameModeInit geladenem Objekt] -> [/createatm - Kein Automat zu sehen obwohl alle Ausgaben stimmen]


    Zusätzlich gibt es selten das Problem:
    [/deleteatm - Objekt wird aus der Datenbank gelöscht ist Ingame aber noch zu sehen]

    Das Laden und erstellen aus der Datenbank läuft in jedem Fall Problemlos beim laden unter OnGameModeInit.
    Versucht wurde mit der Streamer_Update Funktion zu arbeiten, erfolglos...

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Halli hallo, kannst du das mal in LoadAtm hinzufügen und schauen ob es etwas verbessert/schlechtert?


    Code
    if(AtmLabelID[atmid] != INVALID_3DTEXT_ID)
    {
        DestroyDynamic3DTextLabel(AtmLabelID[atmid]);
    }
        
    if(IsValidDynamicObject(AtmObjectID[atmid]))
    {
        DestroyDynamicObject(AtmObjectID[atmid]);
    }

    Das kommt über

    Code
    AtmLabelID[atmid] = CreateDynamic3DTextLabel("Bankautomat",GREEN,aInfo[atmid][aX],aInfo[atmid][aY],aInfo[atmid][aZ],4.0,INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0); //Objekt wird erstellt aber manchmal nicht angezeigt
    AtmObjectID[atmid] = CreateDynamicObject(19324,aInfo[atmid][aX],aInfo[atmid][aY],aInfo[atmid][aZ],0.0,0.0,aInfo[atmid][aR]); //Objekt wird erstellt aber manchmal nicht angezeigt



    Und in

    public
    OnATMDeleted(atmid)


    dann noch hinzufügen

    Code
    AtmLabelID[atmid] = INVALID_3DTEXT_ID;


    Nicht das es sich somehow neu setzt.

  • Das neuste Streamer Plugin wurde aufgespielt ohne Verbesserung. Das Skript ist im Gamemode kein Include

    Mogly1 keine Änderung gebracht, hatte ich zuvor schon versucht... :/

    Habe jetzt versucht, die Objekte komplett neu erstellen zu lassen, das macht er auch. Allerdings wenn ich wie oben beschrieben den Fehler provoziere spawnt er kein Objekt erstellt aber ein Datenbank Eintrag...

    Es ist komisch, dass dieser Fehler nur auftritt, wenn ich die Objekte lade -> Ein weiteres erstelle -> ein bereits vorher geladenes lösche -> ein neues erstelle
    Datenbank neu laden mit einem separaten Befehl lässt dieses Objekt nicht erscheinen (Server Neustart schon)

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

    3 Mal editiert, zuletzt von Jameso ()

  • Denke nicht das es daran liegt aber änder das mal:

    Code
    format(query, sizeof(query), "DELETE FROM atm WHERE ID = %d", aInfo[atmid][db_aid]);

    zu

    Code
    mysql_format(query, sizeof(query), "DELETE FROM atm WHERE ID = %d", aInfo[atmid][db_aid]);

    hast du irgendwie unten nicht gemacht, sonst aber immer benutzt.


    Nevermind, wenn es ja richtig aus printet.... (dann geht das mit dem format ja)

  • Habe jetzt versucht, die Objekte komplett neu erstellen zu lassen, das macht er auch. Allerdings wenn ich wie oben beschrieben den Fehler provoziere spawnt er kein Objekt erstellt aber ein Datenbank Eintrag...

    Das kann so viele Gründe haben.

    Stell dich mal an den Fleck, wo das sein soll, drück F5 und poste hier mal den Screen.


    Weiterhin brauchen wir mal mehr Infos, mit /dl kannst objektids sichtbar machen. Und printe mal, was im Code aufgerufen wird.

    Am Besten wäre natürlich noch, wenn du das System isolierst, indem du es in ein Include packst und static nutzt, dass wir wissen, dass da nicht noch was irgendwo manipuliert wird. Dann kannst du auch das Include teilen und man könnte es nachstellen.

    ast2ufdyxkb1.png


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

  • Tatsächlich ist die letzte Streamer Version drauf allerdings:
    *** Streamer Plugin: The plugin version (0x295) is older than the include file version (0x296) for this script. The plugin might need to be updated to the latest version.

    Obwohl ich die Plugin-Datei auch ersetzt habe.

    Weitere Infos, kann ich erst die Tage raus geben, wenn ich am PC bin, das sah ich spontan jetzt in den Logs...

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.