Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Seite 24 von 27 « Erste ... 13172021222324252627 Letzte »
Ergebnis 461 bis 480 von 538
  1. Beiträge anzeigen #461 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.639
     
    Bisasam ist offline
    Ich habe mir mal einen MEM_Debug Print für ZSpy in der Init ausgeben lassen. Wird bei jedem Ladevorgang korrekt ausgegeben. Die Init wird folglich immer richtig aufgerufen. Nur die AI-Functions wollen nicht immer.

    Meine Version ist "LeGo 2.7.1"


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  2. Beiträge anzeigen #462 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von Bisasam Beitrag anzeigen
    Ich habe mir mal einen MEM_Debug Print für ZSpy in der Init ausgeben lassen. Wird bei jedem Ladevorgang korrekt ausgegeben. Die Init wird folglich immer richtig aufgerufen. Nur die AI-Functions wollen nicht immer.

    Meine Version ist "LeGo 2.7.1"
    Danke, das sieht ja soweit sehr gut aus.

    Würdest du vielleicht noch ein paar MEM_Debug Prints in die PC_SCHMIEDEN_TEST_Info und an den Anfang der AI-Funktion schreiben? (Falls du das nicht schon getan hast.)

  3. Beiträge anzeigen #463 Zitieren
    Local Hero
    Registriert seit
    Feb 2017
    Beiträge
    270
     
    F a w k e s ist offline
    Hello Bisasam,
    maybe there is an issue with TauscheSchwert, EntferneRohstahl - is it using self variable within ?
    Code:
    AI_Function (self,TauscheSchwert);
    AI_Function (self,EntferneRohstahl);
    If so this might be the cause of issue, self is not initialized by default. Try to update it by yourself:
    Code:
    func void TauscheSchwert (){
        //self is not initialized by AI_Function, you have to do it by yourself atm -->
        self = _^ (ECX);
    };
    
    func void EntferneRohstahl (){
        //self is not initialized by AI_Function, you have to do it by yourself atm -->
        self = _^ (ECX);
    };
    I am using slightly modified version of LeGo, where I have updated function _AI_FUNCTION_EVENT in AI_Function.d to do it by default (I believe mud-freak confirmed future version of LeGo will do this, but for now maybe you can update it as well in your script):
    Code:
    func void _AI_FUNCTION_EVENT() {
        var string s0; var string s1;
        var int i0; var int i1; var int fnc;
        var int ptr; ptr = EBP + 88;
        MEMINT_StackPushVar(ptr);
        var string AniName; AniName = MEMINT_PopString();
    
    //--- >MOD
    
        //Initialize self
        self = _^ (ECX);
    
    //--- <MOD

  4. Beiträge anzeigen #464 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline

    final()

    Ich möchte einfach nur mal sagen, das "final()" genial ist.

    Ich bin von Go(lang) sowas von verwöhnt, was "defer" Statements angeht.

    Durch Final kann ich viele doppelte Funktionsaufrufe in verschachtelungen entfernen und mir sicher sein, das Pointer auch wirklich frei sind oder "Globale" variablen richtig zurückgesetzt wurden

  5. Beiträge anzeigen #465 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.244
     
    Milky-Way ist gerade online
    Zitat Zitat von Cryp18Struct Beitrag anzeigen
    Ich verstehe zwar nicht warum da 2 mal DIAG_Reset aufgerufen wird(Dialoggesten werden ja gar nicht manipuliert?), aber auffälliges kann ich da nicht entdecken.
    Ich nehme an das Problem ist nicht reproduzierbar mit diesem Trialog und ist nur bei dem einem Spieler passiert?
    Ich greife mein Trialog-Problem hier noch mal auf, weil sich ein zweiter Spieler gemeldet hat, bei dem dasselbe Problem aufgetreten ist -- allem anschein nach beimselben Trialog.

    Das Spiel denkt, dass der Trialog noch läuft, und eventuell sind auch ein paar Npc nicht korrekt in ihre richtigen Körper versetzt. Das klingt für mich so, als würde _TRIA_Finish() nicht ausgeführt. Kann es etwas geben, wodurch nach TRIA_Finish die AI_Queue des Spielers kaputt geht? (dort wird ja _TRIA_FINISH eingetragen)


    Was mir sonst noch auffällt:
    TRIA_LAST und TRIA_SELF sind in diesem Spielstand unterschiedliche Werte, obwohl im Trialog, der angeblich noch läuft, der letzte Npc-Wechsel ist "TRIA_Next(TRIA_Calvin);" und
    Code:
    var c_npc TRIA_Calvin; TRIA_Calvin = Hlp_GetNpc(loa_none_6601_calvin);
    ist auch der Npc, der im Dialog "self" sein sollte (in der Instanz als npc eingetragen ist). Hat das eventuell etwas zu bedeuten?

  6. Beiträge anzeigen #466 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.487
     
    Cryp18Struct ist offline
    Habt ihr vielleicht irgendwelchen code, der ausgeführt wird während der Trialog läuft?
    Triggerscript-Schleife oder framefunctions die irgendwelchen Kram prüft und dann Npc_ClearAIQueue aufruft?

    Könnte irgendwas sein was mit dem Trialog gar nichts zu tun hat...
    Code:
    func void calledEverySecond(){
        if(MIS_XYZ == LOG_RUNNING{
            if(abc){
                // do x, do y, do z...
                [...]
                Npc_ClearAIQueue(hero);
            };
        };)
    };
    )

    Da müsste man dann mit InfoManager_hasFinished() oder so sicherstellen das solcher kram nur gemacht wird wenn gerade kein Dialog läuft.

  7. Beiträge anzeigen #467 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    ich habe mal wieder bisschen mit dem zSpy gelauscht und dabei leider festgestellt, das ich für meinen Geschmack zu viele Handles missbrauche. (Anim8)

    Bevor ich mir jetzt ein halbgaren Handle-Pool dafür schreibe, wollte ich mal fragen, ob jemand diese Arbeit bereits gemacht hat.


    Edit: ich sehe gerade, das Anim8 sicht nicht wirklich recyclen lässt zumindest fällt mir da nichts ein, was getan werden kann ohne mindestens eine "wenn anim-queue leer" funktion.

    Theoretisch könnte man hier ja "einfach" jedes Handle direkt wegsichern und prüfen ob die queue leer ist und nur dann ein handle zum "poolen" gültig machen, aber das ist irgendwie unsauber :/
    Geändert von Kirides (20.02.2021 um 15:45 Uhr)

  8. Beiträge anzeigen #468 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von Kirides Beitrag anzeigen
    ich habe mal wieder bisschen mit dem zSpy gelauscht und dabei leider festgestellt, das ich für meinen Geschmack zu viele Handles missbrauche. (Anim8)

    Bevor ich mir jetzt ein halbgaren Handle-Pool dafür schreibe, wollte ich mal fragen, ob jemand diese Arbeit bereits gemacht hat.


    Edit: ich sehe gerade, das Anim8 sicht nicht wirklich recyclen lässt zumindest fällt mir da nichts ein, was getan werden kann ohne mindestens eine "wenn anim-queue leer" funktion.

    Theoretisch könnte man hier ja "einfach" jedes Handle direkt wegsichern und prüfen ob die queue leer ist und nur dann ein handle zum "poolen" gültig machen, aber das ist irgendwie unsauber :/
    Du missbrauchst die Handles ja nicht. Du (ver)brauchst sie. Über welche Größenordnung sprechen wir denn? Wir haben neulich die mögliche Handlezahl verdoppelt (noch nicht in der neusten LeGo Version).

    Es gäbe noch die Möglichkeit Anim8 auch handle-los zur Verfügung zustellen. Etwa wie man das von View-Pointer vs. View-Handle Funktionen, bzw. create vs. new kennt. Das hatte ich mal angesprochen, aber wegen der erhöhten Handlezahl wieder verworfen.

    Andernfalls sollte das Recyclen von Anim8-Handles doch recht einfach sein oder irre ich mich da?
    Das Anim8-Objekt ohne “RemoveIfEmpty” erstellen und jedes mal beim Anlegen eines Anim8-Objektes abfragen ob ein leeres Verfügbar ist und dieses dann anstatt eines neuen weiterverwenden (neue Befehle der Queue anhängen Startwerte und Data aktualisieren).

  9. Beiträge anzeigen #469 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Du missbrauchst die Handles ja nicht. Du (ver)brauchst sie. Über welche Größenordnung sprechen wir denn? Wir haben neulich die mögliche Handlezahl verdoppelt (noch nicht in der neusten LeGo Version).

    Es gäbe noch die Möglichkeit Anim8 auch handle-los zur Verfügung zustellen. Etwa wie man das von View-Pointer vs. View-Handle Funktionen, bzw. create vs. new kennt. Das hatte ich mal angesprochen, aber wegen der erhöhten Handlezahl wieder verworfen.

    Andernfalls sollte das Recyclen von Anim8-Handles doch recht einfach sein oder irre ich mich da?
    Das Anim8-Objekt ohne “RemoveIfEmpty” erstellen und jedes mal beim Anlegen eines Anim8-Objektes abfragen ob ein leeres Verfügbar ist und dieses dann anstatt eines neuen weiterverwenden (neue Befehle der Queue anhängen Startwerte und Data aktualisieren).
    Wir reden hier ein einer Grßenzahl von 5 Handles (2x Head, 3xCommand) pro Aktion und diese müssten auch nicht gespeichert werden, da diese sehr kurzlebig sind.
    Ganz speziell geht es hier um den Quickloot Patch welchen ich noch immer nicht 100%-ig freigeben möchte.

    Dort wird eine xy bewegung eines TextView mit Anim8 realisiert für die aufgehobenen Items. Schnell schießt die Handlezahl weit über 1000 und das *nur* für den Quickloot Patch (+ mods die diesen integrieren)

    Eine Handle-lose alternative wäre wirklich super.

    Aber ich möchte natürlich auch nicht unnötig aufwand erzeugen, bisher habe ich keine Berichte über kaputte savegames durch Quickloot erhalten. Und ich denke auch nicht, das dies sehr wahrscheinlich ist.


    Edit: mir ist auch aufgefallen, das "Anim8_RemoveDataIfEmpty" nur ausgeführt wird, wenn "Anim8_RemoveIfEmpty" auch gesetzt ist (Und das es keine Version für Pointer (free) gibt)
    Geändert von Kirides (21.02.2021 um 12:59 Uhr)

  10. Beiträge anzeigen #470 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Du musst bedenken, dass es 2^32 gültige Handles gibt und sich die Performance durch verbrauchte Handles nicht beeinflussen lassen sollte. Selbst bei 1000 Handles pro Sekunde hast du noch ca. 16 Millionen Sekunden bzw ~4600 Stunden Spielzeit vor dir, bis das Limit erreicht ist.

  11. Beiträge anzeigen #471 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Du musst bedenken, dass es 2^32 gültige Handles gibt und sich die Performance durch verbrauchte Handles nicht beeinflussen lassen sollte. Selbst bei 1000 Handles pro Sekunde hast du noch ca. 16 Millionen Sekunden bzw ~4600 Stunden Spielzeit vor dir, bis das Limit erreicht ist.
    Oh, irgendwie hatte ich 65.000 (ushort) handles im Kopf und nicht uint. Das macht das alles natürlich fraglich
    Woran erkenn ich eingentlich ob ein Handle im savegame landet, oder einfach nur "verbraucht" wird ? (archive-flag?)

    ich schaue mir grade viele Stellen im code an, da bei mir plötzlich das Speichern ~1.5 Sekunden gedauert hat (LeGo PermMem dauer)
    Da wollte ich einfach mal wissen wie viel davon an irgendwelchen Handles liegen kann. Benutze in meiner Mod nur 3 Frame-Functions und sonst fast ausschließlich EngineHooks und Anim8 sachen.

  12. Beiträge anzeigen #472 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von Kirides Beitrag anzeigen
    Woran erkenn ich eingentlich ob ein Handle im savegame landet, oder einfach nur "verbraucht" wird ? (archive-flag?)
    Was genau meinst du? Alle aktuell gültigen Handles und deren Objekte siehst du in der SCRPTSAVE.SAV Datei. Sobald ein Handle gelöscht wird, ist davon im Spielstand auch nichts mehr übrig.

    Zitat Zitat von Kirides Beitrag anzeigen
    ich schaue mir grade viele Stellen im code an, da bei mir plötzlich das Speichern ~1.5 Sekunden gedauert hat (LeGo PermMem dauer)
    Da wollte ich einfach mal wissen wie viel davon an irgendwelchen Handles liegen kann. Benutze in meiner Mod nur 3 Frame-Functions und sonst fast ausschließlich EngineHooks und Anim8 sachen.
    Was am Speichervorgang in PermMem am längsten dauert ist meines Wissens nach das Sortieren des Handle-Hashtables (abgesehen vom Schreiben der SCRPTSAVE.SAV Datei). Dabei spielt wieder nur die Anzahl der aktuell gültigen Handles eine Rolle (wie viele es jemals gab ist nicht ausschlaggebend).

  13. Beiträge anzeigen #473 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Was am Speichervorgang in PermMem am längsten dauert ist meines Wissens nach das Sortieren des Handle-Hashtables (abgesehen vom Schreiben der SCRPTSAVE.SAV Datei). Dabei spielt wieder nur die Anzahl der aktuell gültigen Handles eine Rolle (wie viele es jemals gab ist nicht ausschlaggebend).
    Das ist übrigens nur ein Insertion-Sort und damit tendenziell ziemlich langsam. Das könnte man entweder durch eine richtige Sortierfunktion ersetzen oder überlegen, ob man das überhaupt sortieren muss Sortierte Handles sind nett zum Debuggen, aber sonst nicht weiter nützlich - glaube ich.

  14. Beiträge anzeigen #474 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Das ist übrigens nur ein Insertion-Sort und damit tendenziell ziemlich langsam. Das könnte man entweder durch eine richtige Sortierfunktion ersetzen oder überlegen, ob man das überhaupt sortieren muss Sortierte Handles sind nett zum Debuggen, aber sonst nicht weiter nützlich - glaube ich.
    Anstatt in einer verketteten Liste könnte man aus dem Hashtable ein zCArray machen und dann qsort aus der Engine nehmen.
    Sortierte Handles waren wenn ich mich nicht irre teilweise für Objekte sinnvoll, die andere Handles referenzieren. Damit waren die Handles beim Unarchiven bereits gültig. Ein anderes Beispiel ist die Priority von Sprites.

  15. Beiträge anzeigen #475 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.639
     
    Bisasam ist offline
    Wir haben ja die LeGo FrameFunction... Gibts auch ne LeGo SecondFunction also für jede Sekunde statt jeden Frame? Ich hab mir die vorhandenen Funktionen angesehen, aber ich bin unsicher ob das abgedeckt ist. Bisher arbeite ich mit Triggerscripts in der Welt...


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  16. Beiträge anzeigen #476 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.487
     
    Cryp18Struct ist offline
    Zitat Zitat von https://lego.worldofplayers.de/?FrameFunctions
    delay : Verzögerung zwischen den Aufrufen in Millisekunden. (0 == jeden Frame)
    wenn du da 1000 rein schreibst, ist es eine Sekunde.
    Code:
    FF_ApplyExt(myFunc, 1000, -1); // myFunc aufrufen, alle 1000ms (== 1 Sekunde), unendlich oft

  17. Beiträge anzeigen #477 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von Kirides Beitrag anzeigen
    mir ist auch aufgefallen, das "Anim8_RemoveDataIfEmpty" nur ausgeführt wird, wenn "Anim8_RemoveIfEmpty" auch gesetzt ist (Und das es keine Version für Pointer (free) gibt)
    Ich weiß nicht, ob da nicht eine tiefere Absicht hinter steckte. Ein Anim8-Objekt, das mit Daten erstellt wurde, geht davon aus, dass die Handler-Funktion auch einen entsprechenden Parameter erwartet. Wenn später das Anim8-Objekt "leer" ist und die Daten auf Null gesetzt werden, könnte es ja sein, dass später nur etwas der Queue angehängt aber keine neuen Daten angehängt werden. Dann legt die Anim8-Loop beim Aufruf der Handler-Funktion ein Argument zu wenig auf den Datenstack. Die Handler-Funktion nimmt dann etwas vom Stack, was sie gar nicht soll und das könnte unschöne Folgen haben.

    Da die Absicht des Nicht-Löschens wahrscheinlich ist, das Anim8-Objekt weiter zu verwenden und dessen Queue neu zu füllen, tut man dies ja sowieso manuell. Zu dem Zeitpunkt kann man die Daten ja manuell löschen, bzw. ersetzen.

    Zitat Zitat von Kirides Beitrag anzeigen
    (Und das es keine Version für Pointer (free) gibt)
    Ich muss zugeben, ich verstehe diesen Satz leider nicht.

    Meinst du damit, dir fehlt eine Variante Daten als Pointer anstatt als Handle anzuhängen? Das war wohl Absicht so, denn Anim8-Objekte wandern ja in den Spielstand. Nach Spiellanden wäre ein Pointer als Daten ungültig und es gibt auch keinen sinnvollen Weg das zu prüfen. Ansonsten können die Daten sein, was du möchtest (solange es ein Integer ist), solang du nicht Anim8_RemoveDataIfEmpty verwendest.

  18. Beiträge anzeigen #478 Zitieren
    Held Avatar von GiftGrün
    Registriert seit
    Jun 2011
    Ort
    Gewächshaus des Assassinen
    Beiträge
    5.010
     
    GiftGrün ist offline
    Möglicherweise war das so zu verstehen, dass Kirides sich eine Funktion Anim8_Free() wünschen würde?
    “Da ist auch noch ein anderer Geruch in der Luft, der Geruch von Feuern, die in der Ferne brennen, mit einem Hauch Zimt darin - so riecht das Abenteuer!”
    ― aus Walter Moers' "Die 13 1/2 Leben des Käpt'n Blaubär"

  19. Beiträge anzeigen #479 Zitieren
    Ritter Avatar von Kirides
    Registriert seit
    Jul 2009
    Ort
    Norddeutschland
    Beiträge
    1.780
     
    Kirides ist offline
    Zitat Zitat von GiftGrün Beitrag anzeigen
    Möglicherweise war das so zu verstehen, dass Kirides sich eine Funktion Anim8_Free() wünschen würde?
    mehr oder weniger.
    Anim8 arbeitet immer mit handles und das automatische schließen einer Animation kann auch nur mit handles arbeiten.
    Das macht auch vollkommen sinn, so wie Anim8 aufgebaut ist - es erlaubt dir Animationen über Spielstände hinweg zu sichern.

    Das ganze war nur jammern auf höchstem Niveau.

    Im Endeffekt stimme ich mudfreak da zu. Ich hatte nur fälschlicherweise die Annahme das "Handles" auf wenige zehntausende begrenzt waren. bei 3 Handles 3-5 Handles pro Aufruf und Sekunde hätte das nicht lange gehalten.

    Aber wie gesagt - falsche Annahme meinerseits.

  20. Beiträge anzeigen #480 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.244
     
    Milky-Way ist gerade online
    Ich habe ein Problem, vermutlich mit LeGo-Talente.

    In der B_InitNpcGlobals (ausgerufen aus der Init unserer Welt) haben wir folgenden Code:
    Code:
      // Said's concubines don't fight
      TAL_SetValue(SaidConcubine1, AIV_DontFight, TRUE);
      TAL_SetValue(SaidConcubine2, AIV_DontFight, TRUE);
      TAL_SetValue(SaidConcubine3, AIV_DontFight, TRUE);
    
      // Crazy Monk does not fight
      TAL_SetValue(loa_wm_6722_CrazyMonk, AIV_DontFight, TRUE);
    Mit diesen Zeilen in der Init-Funktion kommt während des Ladens zwei mal der Stacktrace im zSpy:
    Code:
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_BOWRUN, this:T_BOW_2_BOWRUN .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_BOWRUN, this:T_BOW_2_BOWRUN .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_CBOWRUN, this:T_CBOW_2_CBOWRUN .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_CBOWRUN, this:T_CBOW_2_CBOWRUN .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKL_2_WALK .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKR_2_WALK .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKL_2_WALK .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKR_2_WALK .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKL_2_WALK .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKR_2_WALK .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WOUNDED, this:S_DEAD .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WOUNDEDB, this:S_DEADB .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WOUNDED, this:T_DEAD .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WOUNDEDB, this:T_DEADB .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WOUNDEDB, this:T_WOUNDEDB_2_DEADB .... <zModelProto.cpp,#3352>
    00:37 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WOUNDED, this:T_WOUNDED_2_DEAD .... <zModelProto.cpp,#3352>
    00:47 Warn:  0 U:        WAY: Ladder highpoint error (LOA_FM_TOSWAMP_005/LOA_FM_TOSWAMP_006 .... <oWaynet.cpp,#236>
    00:47 Warn:  0 U:        WAY: Ladder highpoint error (LOA_HAFEN_BOOTSBAUER_WERFT_OBEN_07/LOA_HAFEN_BOOTSBAUER_WERFT_OBEN_06 .... <oWaynet.cpp,#236>
    00:47 Warn:  0 U:        WAY: Ladder highpoint error (LOA_ST_TURM_OBEN_01/LOA_ST_TURM_OBEN_02 .... <oWaynet.cpp,#236>
    00:47 Warn:  0 U:        WAY: Ladder highpoint error (LOA_ST_TURM_18/LOA_ST_TURM_17 .... <oWaynet.cpp,#236>
    00:48 Warn:  0 U:        WAY: Ladder highpoint error (BL_13/BL_22 .... <oWaynet.cpp,#236>
    00:48 Warn:  0 U:        WAY: Ladder highpoint error (LOA_ISLE_KORSAREN_WT_02/LOA_ISLE_KORSAREN_WT_01 .... <oWaynet.cpp,#236>
    00:48 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: 1, this:T_FISTRUN_2_FISTRUNL .... <zModelProto.cpp,#3352>
    00:48 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: 1, this:T_MAGRUN_2_MAGRUNL .... <zModelProto.cpp,#3352>
    00:48 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: 1, this:T_RUN_2_RUNL .... <zModelProto.cpp,#3352>
    00:48 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: T_MAG_2_MAGRUN .... <zModelProto.cpp,#4016>
    00:48 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: T_MAGRUN_2_MAG .... <zModelProto.cpp,#4016>
    00:48 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: T_FISTRUN_2_FISTRUNL .... <zModelProto.cpp,#4016>
    00:48 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: T_FISTRUN_2_FISTRUNL .... <zModelProto.cpp,#4016>
    00:48 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: T_FISTRUNL_2_JUMP .... <zModelProto.cpp,#4016>
    00:48 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: T_JUMP_2_STAND .... <zModelProto.cpp,#4016>
    00:48 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: T_FISTWALKL_2_FISTWALK .... <zModelProto.cpp,#4016>
    00:48 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: T_FISTWALKL_2_FISTWALK .... <zModelProto.cpp,#4016>
    00:48 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: 1, this:T_SWIMF_2_SWIM .... <zModelProto.cpp,#3352>
    00:48 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: 1, this:T_SWIM_2_SWIMF .... <zModelProto.cpp,#3352>
    00:48 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKL_2_WALK .... <zModelProto.cpp,#3352>
    00:48 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKR_2_WALK .... <zModelProto.cpp,#3352>
    00:48 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_RUN, this:T_RUNL_2_RUN .... <zModelProto.cpp,#3352>
    00:49 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_RUN, this:T_RUNR_2_RUN .... <zModelProto.cpp,#3352>
    00:49 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKBL_2_WALK .... <zModelProto.cpp,#3352>
    00:49 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKBR_2_WALK .... <zModelProto.cpp,#3352>
    00:49 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKL_2_WALK .... <zModelProto.cpp,#3352>
    00:49 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKR_2_WALK .... <zModelProto.cpp,#3352>
    00:49 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: S_FISTATTACK .... <zModelProto.cpp,#4016>
    00:49 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: S_FISTATTACK .... <zModelProto.cpp,#4016>
    00:49 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: S_FISTRUNL .... <zModelProto.cpp,#4016>
    00:49 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: S_FISTWALKL .... <zModelProto.cpp,#4016>
    00:49 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: T_FALL_2_FALLEN .... <zModelProto.cpp,#4016>
    00:50 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: 1, this:T_FISTWALKL_2_FISTWALK .... <zModelProto.cpp,#3352>
    00:50 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: 1, this:T_FISTWALKR_2_FISTWALK .... <zModelProto.cpp,#3352>
    00:52 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: S_FISTRUNL .... <zModelProto.cpp,#4016>
    00:52 Warn:  0 N:           MSB: Frame-Number is out of bounds (AniEvents), ani: T_FISTRUNL_2_FISTRUN .... <zModelProto.cpp,#4016>
    00:54 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKL_2_WALK .... <zModelProto.cpp,#3352>
    00:54 Warn:  0 D:         zModel(zCModelAni::ResolveReferences): Could not find nextAni: S_WALK, this:T_WALKR_2_WALK .... <zModelProto.cpp,#3352>
    00:56 Warn:  0 Q:     Deleted 0 corrupted light vobs out of 4490 total light vobs.
    00:56 Fault: 0 Q:       [start of stacktrace]
    00:56 Fault: 0 Q:               MEMINT_HANDLEERROR(2, 'MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.') +   62 bytes
    00:56 Fault: 0 Q:               MEM_WARN('MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.') +   21 bytes
    00:56 Fault: 0 Q:               MEM_PTRTOINST(238378308)                                       +   77 bytes
    00:56 Fault: 0 Q:               MEM_ARRAYWRITE(0, 2, 1)                                        +   28 bytes
    00:56 Fault: 0 Q:               TAL_SETVALUE((instance)643072056, 2, 1)                        +  133 bytes
    00:56 Fault: 0 Q:               B_INITNPCGLOBALS()                                             +   60 bytes
    00:56 Fault: 0 Q:               INIT_WORLD()                                                   +   25 bytes
    00:56 Fault: 0 Q:       [end of stacktrace]
    00:56 Warn:  0 Q:       MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.
    00:56 Fault: 0 Q:       [start of stacktrace]
    00:57 Fault: 0 Q:               MEMINT_HANDLEERROR(3, 'MEM_ArrayWrite: pos out of bounds: 2')  +   62 bytes
    00:57 Fault: 0 Q:               MEM_ERROR('MEM_ArrayWrite: pos out of bounds: 2')              +   21 bytes
    00:57 Fault: 0 Q:               MEM_ARRAYWRITE(0, 2, 1)                                        +   92 bytes
    00:57 Fault: 0 Q:               TAL_SETVALUE((instance)643072056, 2, 1)                        +  133 bytes
    00:57 Fault: 0 Q:               B_INITNPCGLOBALS()                                             +   60 bytes
    00:57 Fault: 0 Q:               INIT_WORLD()                                                   +   25 bytes
    00:57 Fault: 0 Q:       [end of stacktrace]
    00:57 Fault: 0 Q:       MEM_ArrayWrite: pos out of bounds: 2
    00:58 Warn:  0 C:       SCRIPT: Wld_SetMobRoutine(): could not find a vob with name: LIGHTTOWER .... <oGameExternal.cpp,#252>
    00:58 Warn:  0 C:       SCRIPT: last parser func-name: INIT_WORLD .... <oGameExternal.cpp,#262>
    00:58 Warn:  0 C:       SCRIPT: Wld_SetMobRoutine(): could not find a vob with name: FIREPLACE .... <oGameExternal.cpp,#252>
    00:58 Warn:  0 C:       SCRIPT: last parser func-name: INIT_WORLD .... <oGameExternal.cpp,#262>
    00:58 Warn:  0 C:       SCRIPT: Wld_SetMobRoutine(): could not find a vob with name: FIREPLACE .... <oGameExternal.cpp,#252>
    00:58 Warn:  0 C:       SCRIPT: last parser func-name: INIT_WORLD .... <oGameExternal.cpp,#262>
    00:58 Warn:  0 C:       SCRIPT: Wld_SetMobRoutine(): could not find a vob with name: LIGHTTOWER .... <oGameExternal.cpp,#252>
    00:59 Warn:  0 C:       SCRIPT: last parser func-name: INIT_WORLD .... <oGameExternal.cpp,#262>
    00:59 Warn:  0 D:     zModel.cpp(zCModel::StartAni): Ani not found: CALL II 9118160 1 5472 .... <zModel.cpp,#2581>
    00:59 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    00:59 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    00:59 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    00:59 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    00:59 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    00:59 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    01:00 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    01:00 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    01:00 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    01:00 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    01:00 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    01:00 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    01:00 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    01:00 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    01:00 Warn:  0 U:     NPC: No Route found :Santor \ LOA_KMP_6605_SANTOR (LOA_FLMain_Mittelhaus_009) .... <oNpc_Move.cpp,#1481>
    01:00 Fatal:-1 U:    PAR: Error DoStack. ( line 160 ) .... <zParser.cpp,#599>
    01:02 Warn:  0 X:     [RND3D-Destructor]: Can't uninitialize D3DX Utility Library ! Error: D3DXERR_D3DXNOTSTARTEDYET .... <zRndD3D.h,#127>
    sowie eine Error-Box (array position 2 out of bounds), mit der das Spiel aber (noch) nicht abstürzt.

    und dann nach 2 Sekunden oder so im Spiel kommt der Fehler
    DoStack (line 160)
    im zSpy, Spiel beendet sich, sonst keine Fehlermeldung, keine "verwandten" Infos im zSpy selbst mit Level 10 und alle Infos etc. an.

    Wenn ich die SaidConcubine# auskommentiere, dann kommen die StackTraces nicht mehr im zSpy, aber das Spiel stürzt noch ab mit DoStack error.

    Wenn ich die Zeile des CrazyMonk auskommentiere, kommt der Absturz nicht mehr. Wenn ich dann mit goto vob loa_wm_6722_CrazyMonk zu ihm fliege, dann bekomme ich ständig
    Code:
    02:02 Fault: 0 Q:             MEMINT_HANDLEERROR(2, 'MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.') +   62 bytes
    02:02 Fault: 0 Q:             MEM_WARN('MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.') +   21 bytes
    02:02 Fault: 0 Q:             MEM_PTRTOINST(247618884)                                       +   77 bytes
    02:02 Fault: 0 Q:             MEM_ARRAYREAD(0, 2)                                            +   22 bytes
    02:02 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +  122 bytes
    02:02 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:02 Fault: 0 Q:     [end of stacktrace]
    02:02 Warn:  0 Q:     MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.
    02:02 Fault: 0 Q:     [start of stacktrace]
    02:02 Fault: 0 Q:             MEMINT_HANDLEERROR(3, 'MEM_ArrayRead: pos out of bounds: 2')   +   62 bytes
    02:02 Fault: 0 Q:             MEM_ERROR('MEM_ArrayRead: pos out of bounds: 2')               +   21 bytes
    02:02 Fault: 0 Q:             MEM_ARRAYREAD(0, 2)                                            +   86 bytes
    02:02 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +  122 bytes
    02:02 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:02 Fault: 0 Q:     [end of stacktrace]
    02:02 Fault: 0 Q:     MEM_ArrayRead: pos out of bounds: 2
    02:02 Fault: 0 Q:     [start of stacktrace]
    02:02 Fault: 0 Q:             MEMINT_HANDLEERROR(3, 'MEM_Realloc: ptr is 0 but oldsize is not 0.') +   62 bytes
    02:02 Fault: 0 Q:             MEM_ERROR('MEM_Realloc: ptr is 0 but oldsize is not 0.')       +   21 bytes
    02:02 Fault: 0 Q:             MEM_REALLOC(0, 0, 6)                                           +   50 bytes
    02:02 Fault: 0 Q:             _TAL_CHECKSIZE(9)                                              +   73 bytes
    02:02 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +   74 bytes
    02:02 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:02 Fault: 0 Q:     [end of stacktrace]
    02:02 Fault: 0 Q:     MEM_Realloc: ptr is 0 but oldsize is not 0.
    02:02 Fault: 0 Q:     [start of stacktrace]
    02:02 Fault: 0 Q:             MEMINT_HANDLEERROR(2, 'MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.') +   62 bytes
    02:02 Fault: 0 Q:             MEM_WARN('MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.') +   21 bytes
    02:02 Fault: 0 Q:             MEM_PTRTOINST(247618884)                                       +   77 bytes
    02:02 Fault: 0 Q:             MEM_ARRAYREAD(0, 2)                                            +   22 bytes
    02:02 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +  122 bytes
    02:02 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:02 Fault: 0 Q:     [end of stacktrace]
    02:02 Warn:  0 Q:     MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.
    02:02 Fault: 0 Q:     [start of stacktrace]
    02:02 Fault: 0 Q:             MEMINT_HANDLEERROR(3, 'MEM_ArrayRead: pos out of bounds: 2')   +   62 bytes
    02:02 Fault: 0 Q:             MEM_ERROR('MEM_ArrayRead: pos out of bounds: 2')               +   21 bytes
    02:02 Fault: 0 Q:             MEM_ARRAYREAD(0, 2)                                            +   86 bytes
    02:02 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +  122 bytes
    02:02 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:02 Fault: 0 Q:     [end of stacktrace]
    02:02 Fault: 0 Q:     MEM_ArrayRead: pos out of bounds: 2
    02:03 Fault: 0 Q:     [start of stacktrace]
    02:03 Fault: 0 Q:             MEMINT_HANDLEERROR(3, 'MEM_Realloc: ptr is 0 but oldsize is not 0.') +   62 bytes
    02:03 Fault: 0 Q:             MEM_ERROR('MEM_Realloc: ptr is 0 but oldsize is not 0.')       +   21 bytes
    02:03 Fault: 0 Q:             MEM_REALLOC(0, 0, 6)                                           +   50 bytes
    02:03 Fault: 0 Q:             _TAL_CHECKSIZE(9)                                              +   73 bytes
    02:03 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +   74 bytes
    02:03 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:03 Fault: 0 Q:     [end of stacktrace]
    02:03 Fault: 0 Q:     MEM_Realloc: ptr is 0 but oldsize is not 0.
    02:03 Fault: 0 Q:     [start of stacktrace]
    02:03 Fault: 0 Q:             MEMINT_HANDLEERROR(2, 'MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.') +   62 bytes
    02:03 Fault: 0 Q:             MEM_WARN('MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.') +   21 bytes
    02:03 Fault: 0 Q:             MEM_PTRTOINST(247618884)                                       +   77 bytes
    02:03 Fault: 0 Q:             MEM_ARRAYREAD(0, 2)                                            +   22 bytes
    02:03 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +  122 bytes
    02:03 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:03 Fault: 0 Q:     [end of stacktrace]
    02:03 Warn:  0 Q:     MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.
    02:03 Fault: 0 Q:     [start of stacktrace]
    02:03 Fault: 0 Q:             MEMINT_HANDLEERROR(3, 'MEM_ArrayRead: pos out of bounds: 2')   +   62 bytes
    02:03 Fault: 0 Q:             MEM_ERROR('MEM_ArrayRead: pos out of bounds: 2')               +   21 bytes
    02:03 Fault: 0 Q:             MEM_ARRAYREAD(0, 2)                                            +   86 bytes
    02:03 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +  122 bytes
    02:03 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:03 Fault: 0 Q:     [end of stacktrace]
    02:03 Fault: 0 Q:     MEM_ArrayRead: pos out of bounds: 2
    02:03 Fault: 0 Q:     [start of stacktrace]
    02:03 Fault: 0 Q:             MEMINT_HANDLEERROR(3, 'MEM_Realloc: ptr is 0 but oldsize is not 0.') +   62 bytes
    02:03 Fault: 0 Q:             MEM_ERROR('MEM_Realloc: ptr is 0 but oldsize is not 0.')       +   21 bytes
    02:03 Fault: 0 Q:             MEM_REALLOC(0, 0, 6)                                           +   50 bytes
    02:03 Fault: 0 Q:             _TAL_CHECKSIZE(9)                                              +   73 bytes
    02:03 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +   74 bytes
    02:03 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:03 Fault: 0 Q:     [end of stacktrace]
    02:03 Fault: 0 Q:     MEM_Realloc: ptr is 0 but oldsize is not 0.
    02:03 Fault: 0 Q:     [start of stacktrace]
    02:03 Fault: 0 Q:             MEMINT_HANDLEERROR(2, 'MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.') +   62 bytes
    02:03 Fault: 0 Q:             MEM_WARN('MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.') +   21 bytes
    02:03 Fault: 0 Q:             MEM_PTRTOINST(247618884)                                       +   77 bytes
    02:03 Fault: 0 Q:             MEM_ARRAYREAD(0, 2)                                            +   22 bytes
    02:03 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +  122 bytes
    02:03 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:03 Fault: 0 Q:     [end of stacktrace]
    02:03 Warn:  0 Q:     MEM_PtrToInst: ptr is NULL. Use MEM_NullToInst if that's what you want.
    02:03 Fault: 0 Q:     [start of stacktrace]
    02:03 Fault: 0 Q:             MEMINT_HANDLEERROR(3, 'MEM_ArrayRead: pos out of bounds: 2')   +   62 bytes
    02:03 Fault: 0 Q:             MEM_ERROR('MEM_ArrayRead: pos out of bounds: 2')               +   21 bytes
    02:03 Fault: 0 Q:             MEM_ARRAYREAD(0, 2)                                            +   86 bytes
    02:03 Fault: 0 Q:             TAL_GETVALUE((instance)632363208, 2)                           +  122 bytes
    02:03 Fault: 0 Q:             B_ASSESSENEMY()                                                + 1615 bytes
    02:03 Fault: 0 Q:     [end of stacktrace]
    02:03 Fault: 0 Q:     MEM_ArrayRead: pos out of bounds: 2
    02:04 Warn:  0 D:     zModel.cpp(zCModel::StartAni): Ani not found: R_ROAM1 .... <zModel.cpp,#2581>
    02:05 Warn:  0 D:     zModel.cpp(zCModel::StartAni): Ani not found: R_ROAM2 .... <zModel.cpp,#2581>
    02:05 Warn:  0 D:     zModel.cpp(zCModel::StartAni): Ani not found: R_ROAM2 .... <zModel.cpp,#2581>
    02:06 Warn:  0 D:     zModel.cpp(zCModel::StartAni): Ani not found: R_ROAM1 .... <zModel.cpp,#2581>
    02:06 Warn:  0 D:     zModel.cpp(zCModel::StartAni): Ani not found: R_ROAM3 .... <zModel.cpp,#2581>
    02:07 Warn:  0 D:     OBJ: Memory leaks found! .... <zObject.cpp,#699>
    (kein Absturz, aber natürlich trotzdem nicht schön)

    Was könnte da mit den Talenten passiert sein?

    Wir haben in der AI_Constants.d
    Code:
    var int AIV_DontFight;
    Und in der Init_global() Funktion
    Code:
    	/* Hier werden die Talent-"Konstanten" einmalig befüllt, daher diese Konstruktion mit der Variablen*/
    	if (!createTalents) {
    		// AIV_CHAINLIGHTNING = TAL_CreateTalent();
    		// AIV_LIGHTNINGSTORM = TAL_CreateTalent();
    		// AIV_CROSSBOW_UPGRADE = TAL_CreateTalent();
    		// AIV_GREETED = TAL_CreateTalent();
    		// AIV_TRADER = TAL_CreateTalent();
    		AIV_FORGET_ATTACK = TAL_CreateTalent();
    		//MEM_Error(ConcatStrings("AIV_FORGET_ATTACK: ", IntToString(AIV_FORGET_ATTACK)));
    		AIV_DontFight = TAL_CreateTalent();
    		//MEM_Error(ConcatStrings("AIV_DontFight: ", IntToString(AIV_DontFight)));
    		AIV_IgnoreWeapon = TAL_CreateTalent();
    		//MEM_Error(ConcatStrings("AIV_IgnoreWeapon: ", IntToString(AIV_IgnoreWeapon)));
    		AIV_MAKE_MINIMAL_DAMAGE = TAL_CreateTalent();
    		//MEM_Error(ConcatStrings("AIV_MAKE_MINIMAL_DAMAGE: ", IntToString(AIV_MAKE_MINIMAL_DAMAGE)));
    
    		LOA_FAKE_GUILD_SAID_BANDITS = TAL_CreateTalent();
    		//MEM_Error(ConcatStrings("LOA_FAKE_GUILD_SAID_BANDITS: ", IntToString(LOA_FAKE_GUILD_SAID_BANDITS)));
    
    		createTalents = TRUE;
    	};
    sowie in der Startup.d definiert
    Code:
    var int createTalents;

    an diverse Stellen in den Wahrnehmungen fragen wir ab
    Code:
    if (TAL_GetValue(self, AIV_DontFight) == TRUE)
    weil diese Npc praktisch alles in der Welt ignorieren


    Ich habe einen Spielstand, bei dem das verlässlich auftritt, kann also ggf. munter testen

Seite 24 von 27 « Erste ... 13172021222324252627 Letzte »

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide