PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ninja



Seiten : 1 2 [3] 4

neocromicon
27.01.2021, 21:17
Yeah das hat den "Das darf nicht passieren, melde es Lehona"-Bug in Gothic 1, mit ShowAlwaysImportantStats, behoben! Vielen dank :gratz

Gothaholic
01.02.2021, 01:20
kurze Frage: wenn ich Ninja aktualisieren will, muss ich die alte Version erst deinstallieren oder kann ich die neue Version einfach "drüber bügeln". :D

Kirides
01.02.2021, 08:00
kurze Frage: wenn ich Ninja aktualisieren will, muss ich die alte Version erst deinstallieren oder kann ich die neue Version einfach "drüber bügeln". :D

kannst so rüberbügeln, ist nur eine einzige DLL

mud-freak
01.02.2021, 08:21
kannst so rüberbügeln, ist nur eine einzige DLL

Das stimmt so nicht ganz. Je nach Gothic Installation sind es eine oder zwei DLLs und/oder Einträge in pre.load bzw. SystemPack.ini.

Wenn sich an deiner Gothic Installation nichts geändert hat (z.B. Union (de)installiert, SystemPack entfernt, usw.) solltest du es einfach drüber installieren können. Ansonsten ist das vorherige Deinstallieren notwendig.

Kirides
01.02.2021, 09:00
Das stimmt so nicht ganz. Je nach Gothic Installation sind es eine oder zwei DLLs und/oder Einträge in pre.load bzw. SystemPack.ini.

Wenn sich an deiner Gothic Installation nichts geändert hat (z.B. Union (de)installiert, SystemPack entfernt, usw.) solltest du es einfach drüber installieren können. Ansonsten ist das vorherige Deinstallieren notwendig.

Stimmt, habe eine veränderte Umgebung nicht mit einbezogen :o

Gothaholic
01.02.2021, 10:07
Wenn sich an deiner Gothic Installation nichts geändert hat (z.B. Union (de)installiert, SystemPack entfernt, usw.) solltest du es einfach drüber installieren können. Ansonsten ist das vorherige Deinstallieren notwendig.

danke, alles klar!

Kirides
05.02.2021, 11:21
Mir ist in meinem G2 Durchlauf aufgefallen, dass das Speichern merkbar länger gedauert hat.
Daraufhin habe ich mal den zSpy angeschmissen um zu gucken woran es liegen könnte.

Beim Speichern ist mir dann aufgefallen, dass jeder Patch ca. 1 Sekunde zur Speicherzeit hinzufügt (auf meinem System)

Die Ausgaben kommen auch entsprechend mit ~1 sekunde verzögerung im zSpy an.


Lässt sich hier vielleicht noch weiter optimieren?



...
01:57 Info: 5 D: ARC: .. Closing (1 objects) .... <zError.cpp,#465>
01:57 Info: 3 B: ---------- 98% ---------- .... <zViewProgressbar.cpp,#142>
01:57 Info: 3 B: ---------- 100% ---------- .... <zViewProgressbar.cpp,#142>
01:57 Info: 0 Q: === PermMem::Archive ===
01:58 Info: 0 Q: buffer used: 167828
01:58 Info: 0 Q: buffer cleaned: 167828
01:58 Info: 0 Q: objects created: 5585
01:58 Info: 0 Q: objects cleaned: 5585
01:58 Info: 0 Q: ellapsed time: 1136
01:58 Info: 0 Q: === Done ===
01:58 Info: 0 Q: Writing handles of patch CUSTOMBARPOSITIONS
01:58 Info: 0 Q: === PermMem::Archive ===
01:59 Info: 0 Q: buffer used: 0
01:59 Info: 0 Q: buffer cleaned: 0
01:59 Info: 0 Q: objects created: 0
01:59 Info: 0 Q: objects cleaned: 0
01:59 Info: 0 Q: ellapsed time: 970
01:59 Info: 0 Q: === Done ===
01:59 Info: 0 Q: Writing handles of patch ORDEREDLOGS
01:59 Info: 0 Q: === PermMem::Archive ===
02:00 Info: 0 Q: buffer used: 120
02:00 Info: 0 Q: buffer cleaned: 120
02:00 Info: 0 Q: objects created: 4
02:00 Info: 0 Q: objects cleaned: 4
02:00 Info: 0 Q: ellapsed time: 968
02:00 Info: 0 Q: === Done ===
02:00 Info: 0 Q: Writing handles of patch ITEMMAP
02:00 Info: 0 Q: === PermMem::Archive ===
02:01 Info: 0 Q: buffer used: 0
02:01 Info: 0 Q: buffer cleaned: 0
02:01 Info: 0 Q: objects created: 0
02:01 Info: 0 Q: objects cleaned: 0
02:01 Info: 0 Q: ellapsed time: 965
02:01 Info: 0 Q: === Done ===
...

mud-freak
05.02.2021, 12:59
Danke für den Hinweis. Ja, da lässt sich noch etwas machen. Werde ich ausbessern.

mud-freak
06.02.2021, 21:14
Es gibt eine neue Version von Ninja.

Neben (1.) der Unterstützung der neusten Änderungen von LeGo (https://github.com/Lehona/LeGo/compare/708e36fa87e3045f3bd48ac233b2dd7560b1bc96...f4cb515eda5028abb0e0baeafc4ead682bc7b c45), verringert sich (2.) auch die Speicherzeit von Patch-spezifischen PermMem-Dateien deutlich und (3.) die Vergabe von doppelten Symbolnamen von "Inline"-Strings (z.B. ÿ10023) wird vermieden.
An den nun unterstützten Neuerungen von LeGo ist wohl am interessantesten, dass sich nun Integervariablen an Handles binden lassen. Damit ist es möglich Handles eines Patches auch dann weiter zu verwenden, wenn sowohl der Patch als auch Ninja zwischenzeitlich entfernt wurden. Gewöhnliche Variablen bleiben dank Ninja nach Entfernen eines Patches zwar erhalten, wird allerdings auch Ninja entfernt, bleiben allenfalls nur die PermMem-Speicherdateien bestehen. Bei Wiedereinsetzen eines Patches waren Handles so nicht länger zuordbar, während die Objekte hinter Handles noch existierten (weitere Details hier). Über "gebundene" Integervariablen lässt sich dieses selten auftretende Problem überwinden. Hier ein Anwendungsbeispiel.


Sobald PermMem im Spiel war, konnte sich die Dauer des Spielspeicherns bei vielen Handles und aktiven Patches vervielfachen (vgl. hier). Das ist nun behoben und jeder weitere Patch fügt nur noch einige Millisekunden an Speicherzeit hinzu. (Auf meinem alten Laptop waren es unabhängig der Handle-Anzahl nur maximal 30 ms - nur sporadisch getestet.)


Viele Strings sind in den Skripten ja effektiv definiert, z.B. const string abc = "Hello!". Andere hingegen kommen nur im Skriptfluss vor, z.B. ConcatStrings("Hello", "World"). Ich nenne letztere mal "Inline"-Strings. Diese haben wie alle anderen Strings auch, ein Symbol. Dieses wird automatisch getreu eines ansteigenden String-Zählers benannt, z.B. ÿ10023. Diese Strings sind besonders für Übersetztungspatches (https://github.com/szapp/Ninja/wiki/Applications-and-Examples#translation-patch) interessant. Der String-Zähler startete bei Patches zuvor wieder beim Start (10000), sodass es vorkommen konnte, dass mehrere Stringsymbole den gleichen Namen trugen und nicht länger eindeutig identifizierbar waren. Das wäre für Übersetzungspatches problematisch geworden. Der Zähler wird nun nicht länger zurückgesetzt, sodass auch Inline-Strings eindeutige Namen haben.
Aktueller Download über Spine oder hier (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v2409-feb-6-2021).

Kirides
06.02.2021, 22:31
Es gibt eine neue Version von Ninja.

...
Sobald PermMem im Spiel war, konnte sich die Dauer des Spielspeicherns bei vielen Handles und aktiven Patches vervielfachen (vgl. hier). Das ist nun behoben und jeder weitere Patch fügt nur noch einige Millisekunden an Speicherzeit hinzu. (Auf meinem alten Laptop waren es unabhängig der Handle-Anzahl nur maximal 30 ms - nur sporadisch getestet.)

....

Grandios!

Danke - Damit ist meine Speicherzeit mit vielen Patches wieder Akzeptabel geworden.

schiffsbrüchiger
07.02.2021, 09:28
hey,
hab ninja runtergeladen und installiert wie in der anleitung von plasquar beschrieben(https://www.youtube.com/watch?v=DtgXAwzBJr8) und dann wollte ich die mana reg erweiterung benutzten, aber jedes mal wenn ich die wert ändere kommt der run out of memory error? wie ändere ich die manareg erweiterung ohne crash?

Kirides
07.02.2021, 12:46
hey,
hab ninja runtergeladen und installiert wie in der anleitung von plasquar beschrieben(https://www.youtube.com/watch?v=DtgXAwzBJr8) und dann wollte ich die mana reg erweiterung benutzten, aber jedes mal wenn ich die wert ändere kommt der run out of memory error? wie ändere ich die manareg erweiterung ohne crash?

Was für werte änderst du, wie änderst du sie und auf was änderst du sie?

schiffsbrüchiger
07.02.2021, 15:08
hey, ich wollte eigl nur den threshold von 50 auf 10 runtersetzen, dabei bin ich in direkt in die datei rein und hab den threshold wert von 50 auf 10 runtergesetzt und dann gespeichert

Kirides
07.02.2021, 16:30
hey, ich wollte eigl nur den threshold von 50 auf 10 runtersetzen, dabei bin ich in direkt in die datei rein und hab den threshold wert von 50 auf 10 runtergesetzt und dann gespeichert

Da dürfte normalerweise nichts passieren.

Können wir das hier klären? https://forum.worldofplayers.de/forum/threads/1526661-Patch-Manaregeneration-f%C3%BCr-alle

Wichtig wäre zu wissen wie genau dein Gothic installiert ist und welche anderen Mod / Patches / Plugins du verwendest.

schiffsbrüchiger
07.02.2021, 18:20
https://www.youtube.com/watch?v=DtgXAwzBJr8
so habe ich installiert, vanilla + mini mod, sonst nichts und die unveränderten ninja patches funktionieren soweit, aber wenn ich den wert abändere kommt access violiation und selbst wenn ich zurückändere kommt immer noch access violation :/
ist halt schade, weil sprinten ab 0 stärke und mana reg ab 0 mana wären schon gute qol sachen

N1kX
08.02.2021, 14:21
Mud-freak,
I hope you won't mind if we have a whole section. Of course, it is unlikely that anyone will create patches among us, but this makes it easier for me to edit the topics and update them.

https://worldofplayers.ru/forums/1149/

Tentarr
09.02.2021, 08:00
https://www.youtube.com/watch?v=DtgXAwzBJr8
so habe ich installiert, vanilla + mini mod, sonst nichts und die unveränderten ninja patches funktionieren soweit, aber wenn ich den wert abändere kommt access violiation und selbst wenn ich zurückändere kommt immer noch access violation :/
ist halt schade, weil sprinten ab 0 stärke und mana reg ab 0 mana wären schon gute qol sachen

Zuerst, es heißt nur Patches, nicht Ninja Patches.

Hast du es mal nur mit Vanilla ausprobiert, um zu testen, ob es an der Mini-Mod liegt?

mud-freak
12.02.2021, 14:30
Ich wollte noch einmal einen alten Vorschlag aufgreifen. Joni1337 hatte hier ein Respawn-Patch vorgeschlagen. Über Balancing-Probleme und Schwierigkeiten in der Implementierung hatten wir in den darauf folgenden Beiträgen diskutiert. Abgeschlossen wurde die Diskussion mit den damaligen Limitierungen von PermMem innerhalb von Patches.

Obwohl PermMem nun vollständig unterstützt wird (mit einigen wenigen Ausnahmen (https://github.com/szapp/Ninja/wiki/Inject-Changes#permmem-and-handles)), habe ich diese Diskussion noch nicht wieder aufgenommen.

Ich würde gern noch einmal darüber diskutieren und es ggf. zusammen umsetzen.


Aus technischer Sicht lässt sich das dynamische Respawn-System nun seit Ninja 2.2.02 gut umsetzen. (Mit der schon an anderen Stellen erwähnten, notwendigen Änderung von Symbolindices zu Instanznamen in der Respawnklasse.) Trotzdem bleiben andere technische Problem bestehen (Balancingsorgen lasse ich erst einmal außen vor). Ich füge mal der überbleibenden Punkte einer bisherigen Liste weitere Komplikationen/Ansätzen hinzu.

Wie oben erwähnt, müssen wir Instanznamen anstatt Symbolindices in der Respawn-Klasse speichern.
Die Respawn-Klasse müsste natürlich einen Patch-spezifischen einzigartigen Namen haben, damit sie nicht mit einem bestehenden Respawnsystem kollidiert.
Nicht alle Monster sollten respawnen. Wie könnte man feststellen, ob ein Monster ein Boss-Gegner (z.B. Drachen in G2), von Quest-spezifischer Instanz ist oder einer freundlichen Gilde angehört oder anderweitig ausgeschlossen werden sollte? Erste Idee wäre vielleicht in der Ini eine Liste von Instanznamen anzulegen, von NPCs die Respawnen sollen. Diese könnte ein Nutzer dann selbst erweitern oder reduzieren, z.B. respawnInstances=Scavenger,YBloodfly,Bloodfly. Diese Liste könnte aber sehr lang werden. Eine andere Idee wäre, ein Monster nur dann zu respawnen, wenn es mindestens X weitere Monster dieser Instanz in der Welt gibt, das würde zu mindest Boss-Gegner ausschließen.
Man könnte Monster ohne Erfahrungspunkte respawnen, damit die Balance nicht zu weit ausufert.
Der Handlecounter könnte bei vielen Respawn-Objeken in die Höhe gehen. Vielleicht könnte man Respawn-Objekte recyclen. Das ist aber nicht so wichtig.
Man sollte das existierende Respawn-System in einer unterliegenden Mod erkennen und in dem Falle, die Initialisierung des Repawn-Systems des Patches unterbinden.


Vielleicht könnte man hier zusammen etwas brainstormen und in gewisser Weise gemeinsamen den Patch entwickeln.


Eine Randnotiz: Gothic hat schon ein (meines Erachtens nach) vollständiges Respawn-System, das in der Engine lungert. Es wäre ein leichtes das einfach über einen Patch zu reaktivieren. Der gehörige Nachteil daran ist allerdings, dass die Auswirkungen des Patches sich nicht mehr entfernen ließen, wenn man den Patch deinstalliert. Daher würde ich lieber das dynamische Respawn System aus dem PermMem Beispiel bevorzugen.

Zocker01
15.02.2021, 10:13
[...] Ich würde gern noch einmal darüber diskutieren und es ggf. zusammen umsetzen. [...] Aus technischer Sicht lässt sich das dynamische Respawn-System nun seit Ninja 2.2.02 gut umsetzen.
[...] Vielleicht könnte man hier zusammen etwas brainstormen und in gewisser Weise gemeinsamen den Patch entwickeln.
§omg

Ich habe einen Vorschlag für einen Patch, mit dem man den Schwierigkeitsgrad jederzeit selbst ändern können sollte. Einstellbare Werte (in der Gothic.ini) wieviel LP und Attributspunkte (HP, Mana, Str, Dex) man pro Stufe extra dazu oder abgezogen bekommt. Man könnte das auf Rüstungspunkte ausweiten.
So würde man sich auch das Editieren von Saves mit dem GVE oder GSE zu diesem Zweck ersparen, was meiner Erfahrung nach durch Union (oder Plugins?) sowieso unmöglich geworden zu sein scheint. Das Cheaten im Marvin-Mode mit dessen einhergehenden Nebeneffekten auf das Spiel könnte man sich so auch ersparen.

edit:
Besonders die Idee, Rüstungspunkte abzuziehen, kam mir schon vor längerer Zeit in den Sinn.
Andererseits sollte diese "Bestrafung" damit ausgeglichen werden, dass NPCs neues Zeug bekommen, was dann aber wohl weitreichender wäre, und über einen einfachen Patch, der oben Genanntes bewirkt, hinausgehen würde. Das ist allgemein das "Problem" mit Gothic: Die Spielwelt entwickelt sich einfach nicht. Alle NPCs bleben unverändert gleich stark/schwach, während der PC zu einem Halbgott wird und neues/besonderes Zeug kommt auch keines hinzu.

Tentarr
16.02.2021, 08:54
§omg

Ich habe einen Vorschlag für einen Patch, mit dem man den Schwierigkeitsgrad jederzeit selbst ändern können sollte. Einstellbare Werte (in der Gothic.ini) wieviel LP und Attributspunkte (HP, Mana, Str, Dex) man pro Stufe extra dazu oder abgezogen bekommt. Man könnte das auf Rüstungspunkte ausweiten.
So würde man sich auch das Editieren von Saves mit dem GVE oder GSE zu diesem Zweck ersparen, was meiner Erfahrung nach durch Union (oder Plugins?) sowieso unmöglich geworden zu sein scheint. Das Cheaten im Marvin-Mode mit dessen einhergehenden Nebeneffekten auf das Spiel könnte man sich so auch ersparen.

edit:
Besonders die Idee, Rüstungspunkte abzuziehen, kam mir schon vor längerer Zeit in den Sinn.
Andererseits sollte diese "Bestrafung" damit ausgeglichen werden, dass NPCs neues Zeug bekommen, was dann aber wohl weitreichender wäre, und über einen einfachen Patch, der oben Genanntes bewirkt, hinausgehen würde. Das ist allgemein das "Problem" mit Gothic: Die Spielwelt entwickelt sich einfach nicht. Alle NPCs bleben unverändert gleich stark/schwach, während der PC zu einem Halbgott wird und neues/besonderes Zeug kommt auch keines hinzu.

Es wird nur unmöglich sofern man einen Punkt im Systempack hinzufügt, ob das Sinn macht wird derzeit noch diskutiert.

Kirides
18.02.2021, 11:45
Können Ninja basierte Patches eigentlich auch aus Gothics virtuellem Dateisystem gelesen werden?

Ich stelle mir gerade vor, wie ein Mod-Entickler für Spieler seine Mod zusammenpacken will und dazu gleich noch Patches mitliefern möchte.
Aktuell müllt da ja ziemlich die Installation der Spieler zu.
Gerade wenn man verschiedene Mods in einer Gothic Installation rumliegen hat, kann hier und da mal was kollidieren.

Ich verstehe ja, das die Patches eher "plug and play" sein sollen.
Aber für Modder ist es ja dennoch interessant, externe Funktionalität mitliefern zu können (aktuelles Beispiel wäre da z.B. die englische L'Hiver 1.1.6)

Lange Rede, kurzer Sinn:
Kann man Patches z.B. in eine MEINEMOD_NINJA.mod stopfen und Ninja dazu bewegen über das VDFS die Daten auszulesen, anstatt die Dateien alle einzeln nach Gothic\Data ablegen zu müssen?
ODER Patches auch aus *.MOD dateien auslesen lassen? (Problem damit könnte aber vermutlich das mit der Namensgebung der Patches werden)

Soweit ich sehe, können Patches nicht einfach zu einer "*.Mod" gemacht werden, da diese scheinbar nicht geladen werden, sehe ich das richtig? (kurzer Test des "Dauerhaftes Sprinten" patches lässt dies vermuten)


Nochmal mehr kontext:
Es gibt immernoch viele viele Spieler welche keine separate Gothic-Installation pro Mod (oder alternativ Spine) benutzen und sich deshalb öfter mal durch irgendwelche Mod-Installer sich die Installation für andere Mods zerschießen.

Ich bekomme oft Anfragen von Leuten, bei denen Mod A problemlos läuft aber nach installation von Mod B läuft nur noch Mod B und bei Mod A kommt beim Laden nur ein schwarzer Bildschirm (und einige Fehler im zSPY, wenn man den dann mal öffnet)
Da liegt es dann oft an irgendwelchen VDFs welche in das Data\-Verzeichnis kopiert werden anstatt ordnungsgemäß als *.MOD ausgeliefert zu werden.

Lehona
18.02.2021, 12:14
Eine Mod kann mehrere .mod-Dateien laden, indem sie die alle mit zwei(!) Leerzeichen getrennt in den VDF= Eintrag der mod.ini schreibt. Ob Ninja die dann erkennt steht aber auf einem anderen Blatt...

Kirides
18.02.2021, 12:45
Eine Mod kann mehrere .mod-Dateien laden, indem sie die alle mit zwei(!) Leerzeichen getrennt in den VDF= Eintrag der mod.ini schreibt. Ob Ninja die dann erkennt steht aber auf einem anderen Blatt...

Das ist ja genau das Ding. Nehmen wir an Modder A möchte Patch "PickLockHelper.vdf" mit seiner Mod verteilen.
Dafür möchte der Modder, damit es nicht zu namenskollisionen kommt, die VDF entsprechend umbenennen und als *.mod mitliefern. (MOD_TOLLERNAME_PickLockHelper.mod)

Nun kann Ninja damit nichts mehr anfangen.
1. Ninja ließt keine *.mod-Dateien
2. Ninja erwartet das die VDF genau so heißt (so vermute ich das) wie der Inhalt des Patches (VDF->NINJA/VDFNAME/Content/...)

Einige Modder möchten Fixes und andere Patches nicht umbedingt fest in ihre Mod einbauen (damit diese im Nachhinein noch vom Ersteller separat aktualisiert werden können z.B.)

Union Plugins werden oft zum fixen von Engine problemen, oder erweitern von Funktionalität verwendet und arbeiten komplett über das VDFS (man kann die Plugin-DLL in eine VDF, mit der entsprechenden Struktur legen und Union lädt das Plugin anschließend aus dem VDFS, oder extrahiert die DLL erst weg und führt es aus - dbzgl. bin ich überfragt)

(m)eine Idee wäre Ninja erlauben eine *.mod datei zu lesen, sowie den Namen des Patches über das VDFS auszulesen (NINJA/PATCH_NAME/...) anstelle über den original Dateinamen (PATCH_NAME.vdf)

dragonkiller1995
18.02.2021, 19:13
wäre es so zb möglich denn wasterland mod in die x in 1 zu bringen???

killyouridol
25.02.2021, 20:00
Kurze Frage. Könnte man per Ninja einen Charaktereditor basteln? Also nicht im Sinne von dem Marvin-Mode "edit abilities" sondern ein Charaktereditor im Sinne von "ich designe mir meinen Charakter. Haare. Gesicht. Körper. Tatoos. Etc.".

Steht ihr sowas eher kritisch gegenüber oder müsste das gehen?!

mud-freak
26.02.2021, 18:44
Es gibt eine neue Version von Ninja. An Ninja selbst ändert sich nichts, es wurden lediglich zwei weitere Kompatibilitätschecks hinzugefügt.

Aktueller Download über Spine oder hier (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v2509-feb-26-2021).

JudgeKyle
27.02.2021, 02:36
Dankeschön! :gratz

mud-freak
09.03.2021, 18:54
Ich habe die Namenskonventionen von Daedalussymbolen innerhalb eines Patch etwas angepasst, siehe Naming Conventions (https://github.com/szapp/Ninja/wiki/Inject-Changes#naming-conventions). Die Absichten dahinter ist:

Die Symbolnamen müssen nicht mehr so unpraktisch lang sein.
Die Leserlichkeit kann verbessert werden.
Ninja tritt weiter in den Hintergrund.
Es sollte einfach weiterhin die Einzigartigkeit der Symbolnamen gewährleistet sein. Falls der Patchname oder eine Abkürzung dessen eindeutig genug ist, mag es reichen, diese allen Symbolnamen voran zustellen.

Dabei möchte ich an den Sinn der Namenskonvention erinnern. Es ist nach wie vor im Interesse des Patcherstellers möglichst einzigartige Symbolnamen zu wählen.

Zum einen, damit nicht unabsichtlich Symbole einer unterliegenden Mod überschrieben werden. Dadurch könnte es im besten Fall zu unvorhersehbaren Bugs in der Mod kommen. Im schlimmsten Fall könnte es zu Abstürzen (und einem schlechten Ruf des Patches!) führen.
Zum anderen, damit weiterhin Kompatibilität gewährleistet ist, wenn ein Modersteller sich an Inhalten des Patches bedient. Je mehr Wörter im Symbolnamen enthalten sind, die auf einen Patch hinweisen, desto mehr ist der Modersteller dazu geneigt die Namen anzupassen. Das ist wichtig. Denn unterscheiden sich die Inhalte der Symbole der Mod und des Patches, kann es wieder zu Inkompatibilitäten führen.





Kurze Frage. Könnte man per Ninja einen Charaktereditor basteln? Also nicht im Sinne von dem Marvin-Mode "edit abilities" sondern ein Charaktereditor im Sinne von "ich designe mir meinen Charakter. Haare. Gesicht. Körper. Tatoos. Etc.".

Steht ihr sowas eher kritisch gegenüber oder müsste das gehen?!
"Per Ninja" kann man das streng genommen nicht. Aber per Skripten in einem Patch schon. Der entscheidende Punkt hier ist, dass Ninja da nicht viel zu tut.

Recht schnell und unsauber lässt sich so ein Charaktereditor bestimmt erstellen. Will man das aber stabil implementieren, müsste man sich ein paar Gedanken machen. Z.B. wie und wann ist dieser Charaktereditor zugänglich, wie kann man die verfügbaren Körper- und Gesichtstexturen einer Mod ermitteln, wie setzt man das Aussehen vorm Speichern zurück (damit der Patch sich entfernen lässt) und wie schreibt man die Werte in einen Speicherstand. Gute Skriptkenntnisse vorausgesetzt, sollte so ein Patch gut möglich sein.



Können Ninja basierte Patches eigentlich auch aus Gothics virtuellem Dateisystem gelesen werden? [...]

Dazu vielleicht erst einmal etwas zu der Absicht, siehe hier:


Einige Modder möchten Fixes und andere Patches nicht umbedingt fest in ihre Mod einbauen (damit diese im Nachhinein noch vom Ersteller separat aktualisiert werden können z.B.)

Ich stelle mir gerade vor, wie ein Mod-Entickler für Spieler seine Mod zusammenpacken will und dazu gleich noch Patches mitliefern möchte.

Diese beiden Aussagen passen für mich nicht zusammen und sind nicht nachvollziehbar. Möchte solch ein Modentwickler nun den Inhalt von einem Patch einbauen oder nicht? Sobald er etwas mitliefert (in welcher Form auch immer) muss er so oder so aktualisieren, sobald es Neuerungen gibt.

Ich mache mal einen Vergleich mit einem Texturpatch.


Ein Modersteller möchte die Texturen aus einem Patch in seine Mod integrieren. Dazu wird er diese möglicherweise nicht im VDF des Texturpatches mitliefern. Höchstwahrscheinlich wird er sich die Ressourcen aus dem VDF nehmen und sie seiner MOD-Datei hinzufügen.

Ein Modersteller möchte die Skripte aus einem Patch in seine Mod integrieren. Dazu ... sollte er sich - auch hier - die Ressourcen aus dem VDF nehmen und sie seiner MOD-Datei hinzufügen.

Ninja wird häufig missverstanden als eine Art neues Moddingtool mit dem neue Dinge machbar sind. Das ist falsch. Ninja ist nur eine "Hülle", mit der einzigen Absicht die Einschränkungen von modularen Patches mit rein grafischen Ressourcen aufzuheben und für alle in Gothic genutzten Ressourcen zu erweitern (Skripte, Animationen, Dialoge). Die Ressourcen selbst bleiben dabei die alten. In der Hinsicht fügt Ninja nichts neues hinzu, sondern hebt nur diese Limitierung auf.

Was ich damit sagen will: Es ist leider völlig fernab von der Absicht von Ninja. Wenn einem Modersteller die Inhalte eines Patches so sehr gefallen, dass er sie fest in seine Mod integrieren will (und er die Nutzung erfragt hat), kann er nach wie vor einfach die Ressourcen eines Patches in seine Mod integrieren. Ob das nun Texturen, Dialoge oder Skripte sind, sollte keinen Unterschied machen. (Wenn es um Skriptpatches geht, beinhalten diese vielleicht etwas mehr drumherum. Daher habe ich bspw. einige Skriptfeatures erst separat als Skripte im Editingforum gepostet, damit sie auch in Mods direkt genutzt werden können. Andere wiederum nicht, absichtlich.)


Abgesehen davon gibt es mittlerweile genug Lösungen für das unterliegende Problem (Verwaltung von Mods und Patches). Spine IST doch gerade die Lösung zu genau diesem Problem?! Wem das nicht gefällt, der kann auch den ganz alten VDF-Manager, der VDF und MOD-Datein einfach hin- und her schiebt nutzen (Link finde ich gerade nicht). Wer das auch nicht möchte, sollte vielleicht auf Mods zurückgreifen die vernünftig konzipiert sind mit MOD-Dateien und einem sinnvollen Setup. Ich verstehe das nicht ganz.

ThielHater
09.04.2021, 17:15
Ich wollte Ninja auch mal ausprobieren und habe angefangen einen Patch zu schreiben, der zwei übellaunige NPCs einfügt. Was die Initialisierung angeht, habe ich mich an die Dokumentation (https://github.com/szapp/Ninja/wiki/Applications-and-Examples#add-new-npc) gehalten. Mein Problem ist nun folgendes: Ich habe eine Speicherstand, bei dem sich der Held in der Nähe der neuen NPCs befindet. Wenn ich Gothic starte und den Spielstand lade, ist alles gut. Wenn ich mit den NPCs rede und den Spielstand erneut lade, sind sie manchmal nackt. Mal einer, mal beide. Ihr Inventar haben sie noch und auch ihr Aussehen, aber weder Waffe noch Rüstung werden equippt. Hast du einen Tipp, mud-freak? :dnuhr:

mud-freak
09.04.2021, 19:23
Könntest du die NPC Instanz-Skripte und den Tagesablauf zeigen, der ihnen dort verpasst wird?

Wenn ich raten müsste, würde ich sagen, dass vielleicht meine Idee mit MEM_GetAnyWP neulich doch nicht so gut war. Ich könnte mir vorstellen, dass der NPC außerhalb der Spawnrange und dadurch in reduzierter Form eingefügt wird, und dann durch den Tagesablauf nicht "enabled" wurde. Das ist aber nur eine Vermutung. Mit den Skripten lässt sich vielleicht noch mehr sagen. Bzgl. wie der Wegpunkt im Tagesablauf bestimmt wird, usw.

ThielHater
09.04.2021, 19:32
Ich hab den aktuellen Stand mal gezippt (https://www.gothic-reloaded-mod.de/upload/SalomonKain.zip), würde mich freuen wenn du da mal einen Blick drauf wirfst. Die Verwendung von Npc_GetNearestWP(hero) macht leider auch keinen Unterschied. Die NPC Instanzen entsprechen nicht der Naming Convention, ich weiß.

mud-freak
11.04.2021, 21:47
Kannst du mir einen zSpy-Auszug geben? Bei mir ist es nur einmal aufgetreten und da hatte ich nicht auf den zSpy geachtet. Jetzt kann ich es nicht mehr reproduzieren.
Ich habe schon so eine grobe Ahnung woran das liegen könnte.

Nebenbei: Der Vorschlag im Wiki geht ja davon aus, dass der Wegpunkt dynamisch über die Routine ermittelt wird. Da die Wegpunkte in den Tagesabläufen aber fix sind, brauchst du den Umweg über "MEM_GetAnyWP" nicht, sondern kannst direkt diese Wegpunkte einsetzen. Bedenke aber, dass die NPCs dann nur in die Welt eingefügt werden, wenn die Wegpunkte existieren. Wenn also Wegpunkte und auch Weltname im Vornherein festgelegt sind, lohnt es sich auch die aktuelle Welt vorm Einfügen zu überprüfen, denn die Funktion wird für jede Welt aufgerufen. Wenn der Patch für eine bestimmt Mod ist, sollte das OK sein. Aber es werden auch ziemlich viele Items, Variablen und Konstanten vorausgesetzt, die in anderen Mods nicht zwingend existieren und zu Parserfehlern führen würden.

ThielHater
12.04.2021, 17:48
Kannst du mir einen zSpy-Auszug geben?Na klar (https://www.gothic-reloaded-mod.de/upload/zSPYdefault.7z). §wink


Ich habe schon so eine grobe Ahnung woran das liegen könnte.Nachdem ich den zSpy auch mal auf 10 gestellt habe, erhielt ich beim zweiten Laden die Meldung "NPC: Someone has an illegal Reference to an Npc". Ich habe das jetzt noch mehrmals getestet. Das Problem betrifft nur Kain und tritt nur auf, wenn ich mit Salomon gekämpft habe.


Nebenbei: Der Vorschlag im Wiki geht ja davon aus, dass der Wegpunkt dynamisch über die Routine ermittelt wird. Da die Wegpunkte in den Tagesabläufen aber fix sind, brauchst du den Umweg über "MEM_GetAnyWP" nicht, sondern kannst direkt diese Wegpunkte einsetzen. Bedenke aber, dass die NPCs dann nur in die Welt eingefügt werden, wenn die Wegpunkte existieren.Okay, dann werde ich da noch einen Wegpunkt aus dem Tagesablauf nehmen. Ich dachte der Wegpunkt sei zweitranging und es ginge primär um den Aufruf von Wld_InsertNpc(), damit der NPC ins Spiel kommt, Gothic würde ihn ohnehin zum Wegpunkt aus dem Tagesablauf schicken.


Wenn der Patch für eine bestimmt Mod ist, sollte das OK sein. Aber es werden auch ziemlich viele Items, Variablen und Konstanten vorausgesetzt, die in anderen Mods nicht zwingend existieren und zu Parserfehlern führen würden.Der Patch ist für die Mod GothicGame_G1. Ich schau nochmal in die Doku, bestimmt hat Ninja da ein paar clevere Funktionen um die Kompatibilität sicher zu stellen. :)

mud-freak
14.04.2021, 08:48
Danke für den zSpy-Auszug. Ich weiß, was da für ein Fehler passiert und wie man den beheben kann. Davor würde ich allerdings noch gern herausfinden, wie/ob das mit nicht-archivierten NPCs zusammenhängt. Das werde ich mir noch einmal anschauen.



Ich schau nochmal in die Doku, bestimmt hat Ninja da ein paar clevere Funktionen um die Kompatibilität sicher zu stellen.
Ja, da gibt es tatsächlich etwas, allerdings wird das nicht dabei helfen Parserfehler zu vermeiden.

mud-freak
23.04.2021, 14:40
Den genauen Fehler der Fehlermeldung möchte ich nicht beheben. Das ist etwas zu heikel, bzw. die Fehlermeldung ist eh nur im Dev-modus sichtbar. Allerdings kann ich die Auswirkungen beheben - das wäre ja hier, dass der NPC ohne Rüstung spawned. Das habe ich lokal gefixt und nehme das in die nächste Version von Ninja mit auf. Falls dich Details zu dem Fehler und warum der NPC ohne Rüstung dastand interessieren, kann ich dir das gern noch per PN erläutern. Das spare ich mir jetzt an dieser Stelle.

ThielHater
23.04.2021, 14:50
Vielen Dank, dass du dich darum gekümmert hast. :gratz

neocromicon
24.04.2021, 17:04
Ich hätte evtl. noch eine kleine Verbesserung für das Batch Script.

Wäre es möglich das du noch mit einbaust das er gleich eine PatchName.vm (./Root) für den GothicVDFS Packer mit erstellt?

mud-freak
24.04.2021, 17:24
Ich hätte evtl. noch eine kleine Verbesserung für das Batch Script.

Wäre es möglich das du noch mit einbaust das er gleich eine PatchName.vm (./Root) für den GothicVDFS Packer mit erstellt?

Die sollte schon mit dem Batchskript erstellt werden.

mud-freak
24.04.2021, 17:32
Es gibt eine neue Version von Ninja. Damit werden die neusten Änderungen von LeGo (https://github.com/Lehona/LeGo/compare/f4cb515eda5028abb0e0baeafc4ead682bc7bc45...a7db05db2e8a2d0bd91aee84d4b15b904ae98 3f5) unterstützt. Intern werden des Weiteren VDF genauer verifiziert und die Handhabung von nicht-persistenten NPC leicht verbessert.

Aktueller Download über Spine oder hier (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v2610-apr-24-2021).

neocromicon
24.04.2021, 17:40
Die sollte schon mit dem Batchskript erstellt werden.
Ok also bei mir passiert da nix, auch mit Admin nicht. Führe es auch ausserhalb von C:\ aus.
Mir war nämlich auch schon so das das mal mit erstellt wurde, wieso sonst sollte man eine Beschreibung mit hinein schreiben.

JudgeKyle
25.04.2021, 05:07
Es gibt eine neue Version von Ninja.

Dankesehr! :gratz

Khorinis-Sleepwalk
26.04.2021, 11:37
Ich habe eine Idee zur Veränderung des LP-Systems der Minimod Balance, von der mir gesagt wurde ich könnte sie mithilfe von Ninja ggf. selbst umsetzen.

Mein Vorhaben: mit der Minimod Balance (Update) ist das LP-System so verändert, dass die Erfahrungspunkte die man bekommt in LP umgerechnet werden, sodass man durch das Töten der Monster je nach Erfahrungspunkte einzelne LPs bekommt (wenn es zu wenige sind eben gar keine) und durch das Level selbst nichts mehr direkt. Meine Idee wäre, eine Mischung aus Vanilla und Minimod Update zu machen, indem nur halb so viel Erfahrungspunkte in LP umgewandelt werden wie es jetzt der Fall ist und der Rest dann doch noch als LP am Stück bei Stufenaufstieg verteilt werden. Ich fände es ausgewogen wenn man pro Stufenaufstieg 5 LP bekommt und durch das neue Verrechnungssystem bis zum Aufstieg einer Stufe durch das Umrechnen der Erfahrungspunkte in LP beim Töten der Monster die anderen 5 LP bekommt.

Ist das machbar, kann mir da jemand helfen?

Kirides
29.04.2021, 10:49
Ich bin gerade auf den Riecher gekommen, dass es vielleicht sinnvoll wäre, wenn wir für Patches ein gesondertes Menü haben könnten.

Im Endeffekt habe ich jetzt einen Patch geschrieben, welcher als "Hauptmenü" für alle Patches dienen kann und Optional unterstützt werden kann.

Wie klingt das Konzept für euch Patch ersteller & weitere?


Funktionieren würde das ganze so, dass ein Patch ein MenuItem zum öffnen seines eigenen Menüs zum "Hauptmenü" hinzufügt.
Dann hat man nur einen Punkt in den Einstellungen für "Patch Menu" und darin würden sich dann entsprechend die einzelnen Patch-spezifischen "Menü öffner" befinden.

Initialisierung / Verwendung:


func void Ninja_MyPatch_Menu(var int menuPtr) { // Adjust name
MEM_InitAll();

// Get menu
var zCMenu menu; menu = _^(menuPtr);

if (Hlp_StrCmp(menu.name, "PATCHMENU_PATCHES")) {
var int added; added = MyPatch_PatchMenu_AddPatch("PATCHMENU_PATCH1_OPEN");
if (added) { };
return; // Menu options are added to the Patch Menu, skip everything else
};

// Not "PATCHMENU_PATCHES" section, do your regular thing
// optionally check if PATCHMENU is installed and skip regular menu creation.
};


Beispiel:
50491


Code für die Verwendung & den Check ob das PatchMenu installiert ist. (siehe: MyPatch_PatchMenu_AddPatch)


func int MyPatch_Ninja_GetPatchNum() {
if (!NINJA_PATCHES) {
return 0;
};
var zCArray arr; arr = _^(NINJA_PATCHES);
return arr.numInArray;
};

func int MyPatch_Ninja_GetPatchObj(var int index) {
if (index >= MyPatch_Ninja_GetPatchNum()) {
MEM_Error("Ninja_GetPatchObj: Index out of bounds!");
return 0;
};
return MEM_ArrayRead(NINJA_PATCHES, index);
};

func string MyPatch_Ninja_GetPatchName(var int index) {
var int patch; patch = MyPatch_Ninja_GetPatchObj(index);
if (patch) {
return STR_FromChar(patch+4);
} else {
return "";
};
};

func int MyPatch_PatchMenu_AddPatch(var string openMenuItem) {
const int once = 1;
const int supported = 0;
if (once) {
repeat(i, MyPatch_Ninja_GetPatchNum()); var int i;
if (Hlp_StrCmp(MyPatch_Ninja_GetPatchName(i), "PATCHMENU")) {
// The patch "PATCHNAME" is installed!
supported = 1;
break;
};
end;
once = 0;
};

if (!supported) { return 0; };

MEM_PushStringParam(openMenuItem);
MEM_CallByString("PatchMenu_AddPatch");
var int success; success = MEM_PopIntResult();
return success;
};

func void Ninja_MyPatch_Menu(var int menuPtr) { // Adjust name
MEM_InitAll();

// Get menu
var zCMenu menu; menu = _^(menuPtr);
// ...

if (Hlp_StrCmp(menu.name, "PATCHMENU_PATCHES")) {
MyPatch_PatchMenu_AddPatch("MYPATCH_MENU_OPEN");
};
};

mud-freak
30.04.2021, 08:38
Neulich wurde bei Union so ein Untermenü hinzugefügt, wenn ich mich nicht irre. Es wäre meiner Meinung nach sinnvoller, wenn ein Patch sich in dieses einklinkt, anstatt jetzt hier ein weiteres Untermenü zu erstellen. Es muss ja nicht alles doppelt sein und den Anschein von zwei Universen erwecken.

Sinnvoll fände ich, dass, wenn ein Patch Einstellungsmöglichkeiten hat, er sie nach wie vor in der Gothic.ini einpflegt. Wenn ihm das Erstellen/dynamische Formatieren eines Menü-Eintrags zu viel Arbeit ist oder es besser eingliedern möchte, kann er sich anstatt in das Optionsmenü "MENU_OPT_GAME", in das von Union einklinken. D.h. der Patchersteller kann sagen: Die Einstellungen sind alle komplett in der Gothic.ini zugänglich, wer es aber komfortabler will, braucht nur Union zu installieren, dann erscheinen dort Menü-Einträge. Auf der einen Seite ist das für den Spieler viel simpler und es gibt nur eines solcher Untermenüs und auf der anderen Seite entstehen keine anstrengenden Abhängigkeiten von anderen Patches und Installationen werden nicht wieder so kompliziert.

Kirides
30.04.2021, 08:44
Neulich wurde bei Union so ein Untermenü hinzugefügt, wenn ich mich nicht irre. Es wäre meiner Meinung nach sinnvoller, wenn ein Patch sich in dieses einklinkt, anstatt jetzt hier ein weiteres Untermenü zu erstellen. Es muss ja nicht alles doppelt sein und den Anschein von zwei Universen erwecken.

Sinnvoll fände ich, dass, wenn ein Patch Einstellungsmöglichkeiten hat, er sie nach wie vor in der Gothic.ini einpflegt. Wenn ihm das Erstellen/dynamische Formatieren eines Menü-Eintrags zu viel Arbeit ist oder es besser eingliedern möchte, kann er sich anstatt in das Optionsmenü "MENU_OPT_GAME", in das von Union einklinken. D.h. der Patchersteller kann sagen: Die Einstellungen sind alle komplett in der Gothic.ini zugänglich, wer es aber komfortabler will, braucht nur Union zu installieren, dann erscheinen dort Menü-Einträge. Auf der einen Seite ist das für den Spieler viel simpler und es gibt nur eines solcher Untermenüs und auf der anderen Seite entstehen keine anstrengenden Abhängigkeiten von anderen Patches und Installationen werden nicht wieder so kompliziert.

Das ist natürlich super, wenn es sowas bereits gibt.

Wo finde ich das (Finde nichs dbzgl. im Resource Manager) und wird das Menü / der Menüpunkt auch angezeigt, wenn man keine Union Plugins (nur Union, oder zusätzl. lediglich das Menü-Plugin) installiert hat?

mud-freak
30.04.2021, 08:55
Wo finde ich das (Finde nichs dbzgl. im Resource Manager) und wird das Menü / der Menüpunkt auch angezeigt, wenn man keine Union Plugins (nur Union, oder zusätzl. lediglich das Menü-Plugin) installiert hat?

Irgendwo wurde dieses Menü erklärt mitsamt Video. Leider finde ich das gerade bei bestem Willen nicht wieder. Ich meine, es sei schon seit Union 1.0i integriert. Wenn du dir z.B. das zGamePad Plugin installierst, solltest du das Menü finden können (nicht mehr sicher). Unter welchen Umständen das Menü erscheint und inwiefern man sich da einklinken könnte, kann ich nicht sagen.

N1kX
30.04.2021, 08:56
Das ist natürlich super, wenn es sowas bereits gibt.

Wo finde ich das (Finde nichs dbzgl. im Resource Manager) und wird das Menü / der Menüpunkt auch angezeigt, wenn man keine Union Plugins (nur Union, oder zusätzl. lediglich das Menü-Plugin) installiert hat?

For example zBrightLight
the menu appears only when any Union plugins are installed. So far, there are few of them, because the authors of plugins do not seek to do this.

Feuerkl1nge
01.05.2021, 02:29
Ist es vollkommen sicher für den Spielstand von 2.5.09 auf 2.6.10 zu aktualisieren? Könntest du das auf der ersten Seite kurz klarstellen, damit hier niemand mehr fragt?

Tentarr
03.05.2021, 13:25
@ Mud-Freak, so einfach als kurze Nachfrage nach ein paar Monaten. Ist meine Idee zu einer Art Meisterrunensystem noch aktuell?

Das soll keine Erwartungen/Druck oder irgendetwas ausüben, es hat mich einfach nur interessiert, ob du es mal versucht hast und ob was dabei rum gekommen ist, ob es noch in der To-Do-Liste mit unbestimmte Prio ist oder schon wieder aufgegeben wurde :D
Hab selber immer noch keine Zeit dafür, wie zum Zocken oder generell etwas anderes :(

Khorinis-Sleepwalk
05.05.2021, 08:07
kann mir vielleicht jemand ganz generell was zu meiner Idee oben (LP-System von Minimod Balance ändern - 5 LP pro Stufe, Rest verrechnen durch Kill/passive LP durch Quests) sagen? Würde mich auch schon über allgemeine Ideen zur Umsetzung freuen, bin da sehr interessiert ob und wie sowas machbar ist und kann es selber leider mangels Moddingkenntnisse nicht umsetzen.

DavidVanScouten
07.05.2021, 13:56
Hallo liebe Community,

Ninja funktioniert hervorragend auf GOTHIC II und es ist sehr hilfreich, - danke!

Jetzt versuche ich auch auf GOTHIC I (Gold-Edition + alle geforderten Patches) Ninja zu installieren.
Die Installation geht dann auch erfolgreich vonstatten, jedoch wenn ich GOTHIC I aus dem Starter starte, kommt kurz der "GOTHIC loading..." Splashscreen und nach wenigen Sekunden geht dieser weg und G I startet nicht!
Firewall und Antivir deaktiviert.

Kann mir jemand helfen?§wink


Grüße!
David

JudgeKyle
07.05.2021, 14:15
Jetzt versuche ich auch auf GOTHIC I (Gold-Edition + alle geforderten Patches) Ninja zu installieren.
Die Installation geht dann auch erfolgreich vonstatten, jedoch wenn ich GOTHIC I aus dem Starter starte, kommt kurz der "GOTHIC loading..." Splashscreen und nach wenigen Sekunden geht dieser weg und G I startet nicht!

Klingt ja merkwürdig, bei mir und bei gleicher Installation klappt es wunderbar. Hast du vielleicht doch vergessen irgendetwas zu installieren? Vielleicht magst du mal detaillierter aufschreiben, wie du es genau gemacht hast.

Wenn du ansonsten wissen möchtest, was und in welcher Reihenfolge ich alles installiert habe, kannst du gerne mal einen Blick in meine Anleitung werfen.

P.S.: Was ist denn bitte die Gothic 1 Gold Edition? Höre ich zum ersten Mal von. :D

DavidVanScouten
07.05.2021, 14:32
Klingt ja merkwürdig, bei mir und bei gleicher Installation klappt es wunderbar. Hast du vielleicht doch vergessen irgendetwas zu installieren? Vielleicht magst du mal detaillierter aufschreiben, wie du es genau gemacht hast.

Wenn du ansonsten wissen möchtest, was und in welcher Reihenfolge ich alles installiert habe, kannst du gerne mal einen Blick in meine Anleitung werfen.

P.S.: Was ist denn bitte die Gothic 1 Gold Edition? Höre ich zum ersten Mal von. :D

Danke für die schnelle Antwort!
Ich habe zwei Installations-CDs aus der "Gold-Games 6"-Edition (Spielemagazin) und funktioniert auch mit Mods schon jahrzehntelang.

Eine Anleitung habe ich auch durchgelesen.
https://www.worldofgothic.de/dl/download_652.htm
Deine kenne ich noch nicht, was die explizite Installation von Ninja und deren Vorraussetzungen ist. :D

JudgeKyle
07.05.2021, 15:52
Danke für die schnelle Antwort!
Ich habe zwei Installations-CDs aus der "Gold-Games 6"-Edition (Spielemagazin) und funktioniert auch mit Mods schon jahrzehntelang.

Eine Anleitung habe ich auch durchgelesen.
https://www.worldofgothic.de/dl/download_652.htm
Deine kenne ich noch nicht, was die explizite Installation von Ninja und deren Vorraussetzungen ist. :D

Du hast aber schon alle Patches, das Player Kit und das System Pack (bzw. Union) installiert? Wobei ich eigentlich davon ausgehe, da du ja nicht gerade neu bist, was Gothic betrifft.

Wenn du das alles installiert hast, sollte Ninja eigentlich problemlos funktionieren. Schwierig zu sagen, wo sonst das Problem bei dir liegen kann.

DavidVanScouten
07.05.2021, 15:57
Installationsreihenfolge im Admin-Modus:

1.) Original GOTHIC von zwei CDs auf eine andere Partition, als 'C.//' installiert..
2.) Gothic Patch 1.08h installiert.
3.) Gothic Patch 1.08k installiert.
4.) Gothic Player Kit 1.08k installiert.

Probegestartet: Läuft!

5.) NINJA installiert.
6.) UNION installiert.

EDIT!:
7.) Community Patch installiert.

- Probegestartet, Fehlermeldung: "Warning! There are symbols which can cause errors in the game..."

GOTHIC I startet NICHT! - Alles nach der Anleitung!

Dieses komische UNION hatte ich auch nie installiert und lässt sich auch nicht deinstallieren?!?...

mud-freak
07.05.2021, 16:06
Wenn du Union oder SystemPack nutzt (geht auch ohne beides) musst du Ninja anschließend installieren. Das sollte aber nicht mit dem merkwürdigen Fehler zusammenhängen, den du erhältst.

mud-freak
07.05.2021, 16:12
Ist es vollkommen sicher für den Spielstand von 2.5.09 auf 2.6.10 zu aktualisieren? Könntest du das auf der ersten Seite kurz klarstellen, damit hier niemand mehr fragt?
Ninja hat keinen Einfluss auf Spielstände.



@ Mud-Freak, so einfach als kurze Nachfrage nach ein paar Monaten. Ist meine Idee zu einer Art Meisterrunensystem noch aktuell?
Ich habe es mir nicht näher angeschaut. Momentan fehlt mir leider keine Zeit. Ob ich mir das anschaue, kann ich nicht sagen. Falls jemand sich daran versuchen, will kann ich aber gern ein paar Anstöße geben.



kann mir vielleicht jemand ganz generell was zu meiner Idee oben (LP-System von Minimod Balance ändern - 5 LP pro Stufe, Rest verrechnen durch Kill/passive LP durch Quests) sagen? Würde mich auch schon über allgemeine Ideen zur Umsetzung freuen, bin da sehr interessiert ob und wie sowas machbar ist und kann es selber leider mangels Moddingkenntnisse nicht umsetzen.
Die Wahrscheinlichkeit, dass sich jemand die Mühe gibt, ist vermutlich eher gering, da du der einzige Interessent bist. Dir wird nichts anderes übrig bleiben jemandem diese Idee schmackhaft genug zu machen, dass er sich selbst genug dafür interessiert, darin Zeit investieren zu wollen. Oder, du schaust dich ein bisschen im Modding um, und versuchst dir ein wenig anzueignen.
Edit: Sorry, ich habe nicht richtig gelesen. Du fragst ja gar nicht danach, dass jemand sich dem annimmt, sondern erst einmal nach groben Ideen und Einschätzungen. Entschuldigung. Ich würde sagen, dass man sich zu aller erst etwas in die Skripte der Minimod Balance einlesen muss, um zu schauen, wie das dort realisiert worden ist. Anschließend müsste man sich dann Gedanken machen, wie man daran "von Außen" herum schrauben kann. Ich denk machbar ist es auf jeden Fall.

DavidVanScouten
07.05.2021, 16:30
Wenn du Union oder SystemPack nutzt (geht auch ohne beides) musst du Ninja anschließend installieren. Das sollte aber nicht mit dem merkwürdigen Fehler zusammenhängen, den du erhältst.

Ich habe UNION weggelassen und den Community Patch installiert, danach Ninja installiert
Und diesmal gibts eine "Access Violation"! ...:dnuhr:

mud-freak
07.05.2021, 16:47
Hast du die Version 1.08k_mod (https://www.worldofgothic.de/dl/download_6.htm) installiert und die "Data Execution Prevention" (DEP) für die Gothic Exe-Dateien deaktiviert (für Details siehe z.B. die Spine FAQ (https://clockwork-origins.com/spine/#faq-question-1576926774006)) und hat das Spiel Schreibzugriff innerhalb des Installationsordners (ggf. das Spiel mit administrativen Rechten ausführen)?

Access Violation ist nicht gleich Access Violation. Da ist es immer gut, deren Textinhalt oder (besser noch) einen Screenshot davon zu zeigen.

DavidVanScouten
07.05.2021, 17:08
Hast du die Version 1.08k_mod (https://www.worldofgothic.de/dl/download_6.htm) installiert und die "Data Execution Prevention" (DEP) für die Gothic Exe-Dateien deaktiviert (für Details siehe z.B. die Spine FAQ (https://clockwork-origins.com/spine/#faq-question-1576926774006)) und hat das Spiel Schreibzugriff innerhalb des Installationsordners (ggf. das Spiel mit administrativen Rechten ausführen)?

Access Violation ist nicht gleich Access Violation. Da ist es immer gut, deren Textinhalt oder (besser noch) einen Screenshot davon zu zeigen.

Ich bin noch von der alten Gardde und hatte nie behauptet über "Spine" installiert zu haben (siehe Post #551).;)

Mittlerweile habe ich es selber herausgefunden und bin nach dieser Installationsanleitung vorgegangen:
https://docs.google.com/document/d/15jTh_VBplmpzZcPvzVU6w9uIluQ548HGvq3o4XXCZYw/edit

Da fehlt bei "JudgeKyle (https://forum.worldofplayers.de/forum/members/18795-JudgeKyle)" noch ein ganz wichtiger Punkt in der Anleitung...


Danke trotz Dem!

mud-freak
07.05.2021, 17:16
Ich bin noch von der alten Gardde und hatte nie behauptet über "Spine" installiert zu haben (siehe Post #551).
Das habe ich auch nicht gesagt. Ich habe nur aus Bequemlichkeit auf die Anleitung innerhalb der Spine-FAQ hingewiesen. Das Deaktivieren von DEP gilt sowohl mit als auch ohne Spine.



Mittlerweile habe ich es selber herausgefunden und bin nach dieser Installationsanleitung vorgegangen
[...]
Da fehlt bei "JudgeKyle" noch ein ganz wichtiger Punkt in der Anleitung...

Möchtest du uns noch verraten, wo bei dir die Installation zuvor gescheitert ist?

JudgeKyle
07.05.2021, 17:31
Mittlerweile habe ich es selber herausgefunden

Und woran lag es letztendlich?

Übrigens würde ich dir sehr empfehlen das System Pack oder Union zu installieren; gar nichts von beiden zu verwenden ist heutzutage auch eher eine Seltenheit.


Da fehlt bei "JudgeKyle (https://forum.worldofplayers.de/forum/members/18795-JudgeKyle)" noch ein ganz wichtiger Punkt in der Anleitung...

Ich wüsste ehrlich gesagt nicht, was in meiner Anleitung noch fehlt. Oder meinst du Ninja?

Es ist eine wundervolle Entwicklung und ich nutze es auch selbst mit so einigen Patches, allerdings wäre Ninja in meiner Anleitung irgendwie fehl am Platz, da es keinerlei grafische Aufwertung mitbringt. Grundsätzlich würde ich es aber definitiv empfehlen, gibt so viele schöne Patches mittlerweile, die das Spiel in vielerlei Hinsicht verbessern bzw. erweitern. Ich kann mud-freak nicht genug dafür danken. :)

N1kX
07.05.2021, 18:11
Hast du die Version 1.08k_mod (https://www.worldofgothic.de/dl/download_6.htm) installiert
by the way, the exe file in the patch is incorrect, it is better to use it from gothic1_playerkit, it is more recent there.
Well, the installers on G1 check the CRC with the version from playerkit.
https://www.worldofgothic.de/dl/download_34.htm

mud-freak
07.05.2021, 20:25
What do you mean by incorrect?

Khorinis-Sleepwalk
07.05.2021, 20:29
Die Wahrscheinlichkeit, dass sich jemand die Mühe gibt, ist vermutlich eher gering, da du der einzige Interessent bist. Dir wird nichts anderes übrig bleiben jemandem diese Idee schmackhaft genug zu machen, dass er sich selbst genug dafür interessiert, darin Zeit investieren zu wollen. Oder, du schaust dich ein bisschen im Modding um, und versuchst dir ein wenig anzueignen.
Edit: Sorry, ich habe nicht richtig gelesen. Du fragst ja gar nicht danach, dass jemand sich dem annimmt, sondern erst einmal nach groben Ideen und Einschätzungen. Entschuldigung. Ich würde sagen, dass man sich zu aller erst etwas in die Skripte der Minimod Balance einlesen muss, um zu schauen, wie das dort realisiert worden ist. Anschließend müsste man sich dann Gedanken machen, wie man daran "von Außen" herum schrauben kann. Ich denk machbar ist es auf jeden Fall.

Kein Problem! Danke für die Antwort, also zum Thema schmackhaft machen kann ich nur zurückfragen, ob das nicht viel ausgewogener klingt? :) Ich finde ja die Idee, dass die Lernpunkte nicht unnachvollziehbarer Weise mit Stufenaufstieg alle als Block kommen sollen gut, aber wenn man sie nur noch rein gestückelt als Einzel-Lps bekommt ist es wieder unausgewogen in die andere Richtung und man vermisst beim Aufstieg auch irgendwie was. Die Änderung wäre dann so eine Art Enhanced XP-Balancing - das ist zumindest meine Sichtweise, von der ich hoffe dass sie jemand teilen könnte (leider keine Ahnung wer von euch sich hier generell damit befassen könnte/bei wem ich Werbung machen soll :dnuhr::D)

Dass sich dann jemand für mich der Sache annimmt kann ich natürlich nicht erwarten, wäre aber meine Hoffnung, vor allem in Verbindung damit dass es hoffentlich ganz einfach ist (ich weiß von Modding so wenig dass ich das derzeit nicht schaffen könnte, vor allem auch nicht die Zeit zum Einarbeiten in die Materie nutzen könnte). Also sofern es nur einer Änderung bestimmter Zeilen benötigt und jemand der die Änderung interessant findet das umsetzt würde ich mich freuen!
Wenn nicht, müsste es schon zufällig extrem einfach sein damit ich da selber irgendwas machen kann^^

N1kX
08.05.2021, 05:19
What do you mean by incorrect?

The usual patch is intended for playing in the original, for mods you need to use from playerkit, there itself gothic.exe redone and refers to gothicmod.exe and gothicstarter.

mud-freak
08.05.2021, 06:34
The usual patch is intended for playing in the original, for mods you need to use from playerkit, there itself gothic.exe redone and refers to gothicmod.exe and gothicstarter.

That may be, but it does not make that patch "incorrect". In fact, Ninja in itself does not require the player kit.

But in the end, I think my link is wrong, regardless. My text says Version 1.08k_mod not Version 1.08k. That is a bit misleading on my part.

DavidVanScouten
10.05.2021, 09:28
...
Möchtest du uns noch verraten, wo bei dir die Installation zuvor gescheitert ist?
Klar!
Ich musste noch vor dem "Gothic 1 Community Patch (https://www.worldofgothic.de/index.php?section=download&id=660)" den "G1Classic-SystemPack-1.8.exe (https://github.com/GothicFixTeam/GothicFix/releases)" installieren, den ich in der Anleitung vermisst habe.

DavidVanScouten
10.05.2021, 09:38
Und woran lag es letztendlich?
...
Ich wüsste ehrlich gesagt nicht, was in meiner Anleitung noch fehlt. Oder meinst du Ninja?

...

Ich bin nach dieser Anleitung vorgegangen:
https://forum.worldofplayers.de/forum/threads/1564000-Anleitung-Gothic-1-Grafik-Aufwertung

und meinte diesen Patch:
G1Classic-SystemPack-1.8.exe (https://github.com/GothicFixTeam/GothicFix/releases)
Dieser ist ja bei Steam-Version nicht nötig, - und da ich Steam nicht nutze, gabs beim Fehlen dieses Patches die Fehlermeldungen.

Jetzt läufts!

JudgeKyle
10.05.2021, 15:37
Ich bin nach dieser Anleitung vorgegangen:
https://forum.worldofplayers.de/forum/threads/1564000-Anleitung-Gothic-1-Grafik-Aufwertung

und meinte diesen Patch:
G1Classic-SystemPack-1.8.exe (https://github.com/GothicFixTeam/GothicFix/releases)
Dieser ist ja bei Steam-Version nicht nötig, - und da ich Steam nicht nutze, gabs beim Fehlen dieses Patches die Fehlermeldungen.

Jetzt läufts!

Das System Pack sollte man schon installieren. :D

Übrigens fehlt dieses nicht in meiner Anleitung, sondern es wurde ersetzt durch Union (welches ja das System Pack 1.9 beinhaltet). Die Anleitung habe ich mit größtmöglicher Sorgfalt erstellt, das darfst du mir glauben. ;)

mud-freak
10.05.2021, 16:39
Um das noch einmal in den Kontext von Ninja zu bringen, um Missverständnisse zu vermeiden; Ninja benötigt weder SystemPack noch Union.
Dass es hier nicht ohne lief, scheint wohl andere Ursachen zu haben. Generell ist Gothic 1 mittlerweile nur schwer ohne eines der beiden zum Laufen zu bringen.

Tentarr
12.05.2021, 20:29
Ich habe es mir nicht näher angeschaut. Momentan fehlt mir leider keine Zeit. Ob ich mir das anschaue, kann ich nicht sagen. Falls jemand sich daran versuchen, will kann ich aber gern ein paar Anstöße geben.



Alles klar danke dir für die Antwort. Bei mir ist derzeit leider weiterhin für nichts Zeit. Ich hoffe dann einfach auf wen anders oder das ich mehr Zeit bekomme :D

N1kX
23.07.2021, 06:31
The new version of the G2 modification has a new balance-patches that integrate scripts into menu.dat cause a crash.
https://rpgrussia.com/threads/novoe-obnovlenie-skachat-ustanovit-vremennaja-tema.34125/


Patches that do not have interaction with menu.dat work without problems.
Lhaart could not find the reason for the departure.


//======================UNHANDLED EXCEPTION======================
Gothic2.exe caused a EXCEPTION_ACCESS_VIOLATION in module Gothic2.exe at 0023:00791B68, zCParser::DoStack()+520 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+12 byte(s)
EAX=5BF40235 EBX=00000000 ECX=00AB4118 EDX=1FDAC267 ESI=00AB4118
EDI=1D8240B0 EBP=00AB40C0 ESP=0135F540 EIP=00791B68 FLG=00210202
CS=0023 DS=002B SS=002B ES=002B FS=0053 GS=002B
//===================== INFOS =========================
Gothic II - 2.6 (fix), Parser Version: 50
User: NikX, CPUType: 586, Mem: 0 MB total, 0 MB free
//====================== CALLSTACK ========================
0023:00791B68 (0x007AA241 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+520 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+12 byte(s)
0023:00792504 (0x007AA241 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AA381 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AA682 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AACC0 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AACE1 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AADDE 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAE21 0x1DAF71B0 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007B1F04 0x00000001 0x00AB40C0 0x1D961E50) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792CBF (0x00AB40C0 0x0003BDAC 0x1D961E50 0x0045930B) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1551
0023:007929E7 (0x0135F9C0 0x00000001 0x0135FA14 0x1D961E50) Gothic2.exe, zCParser::CallFunc()+23 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1488+23 byte(s)
0023:0045930B (0x08AD588B 0x040CFB48 0x726F5F68 0x00000000) Gothic2.exe, zCNetEventManager::OnMessage()+3979 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zNetEventMan.cpp, line 286+386 byte(s)
0023:7288A8F9 (0x00000040 0x00000000 0x1D962A60 0x008D1E44) MSVCR100.dll, fclose()+85 byte(s)
0023:77800FA9 (0x02B50000 0x00000000 0x00000040 0x00457C93) ntdll.dll, RtlAllocateHeap()+201 byte(s)
0023:72880299 (0x1D961E50 0x1D961E50 0x0135FB64 0x00000000) MSVCR100.dll, malloc()+54 byte(s)
//=====================================================

//===================== MODULES =======================

Module list: names, addresses, sizes, time stamps and file times:
D:\Games\Gothic II NoTR Systempack\System\Gothic2.exe, loaded at 0x00400000 - 9038140 bytes - 3f966d87 - file date is 6/15/2021 18:21:50
D:\Games\Gothic II NoTR Systempack\System\BugslayerUtil.dll, loaded at 0x03000000 - 32827 bytes - 37f8d416 - file date is 1/22/2003 03:30:00
D:\Games\Gothic II NoTR Systempack\Data\$Templates$\ZBINKFIX.DLL, loaded at 0x0a010000 - 1764864 bytes - 5e88edc8 - file date is 7/22/2021 18:16:42
D:\Games\Gothic II NoTR Systempack\System\mss32.dll, loaded at 0x21100000 - 370688 bytes - 3e767330 - file date is 3/17/2003 19:15:30
D:\Games\Gothic II NoTR Systempack\System\binkw32.dll, loaded at 0x30000000 - 375808 bytes - 3e9e0f4d - file date is 4/16/2003 22:19:58
D:\Games\Gothic II NoTR Systempack\System\msdbi.dll, loaded at 0x63420000 - 102672 bytes - 37715ac8 - file date is 1/22/2003 03:30:00
C:\Windows\SYSTEM32\nvd3dum.dll, loaded at 0x6ece0000 - 18408816 bytes - 5e01c5f0 - file date is 12/28/2019 08:48:56
C:\Windows\SYSTEM32\HID.DLL, loaded at 0x70a40000 - 26624 bytes - 54503d63 - file date is 11/21/2014 07:50:20
C:\Windows\System32\dmsynth.dll, loaded at 0x70a50000 - 109568 bytes - 545047fc - file date is 11/21/2014 07:50:30
C:\Windows\System32\dmcompos.dll, loaded at 0x70a70000 - 75776 bytes - 54504815 - file date is 11/21/2014 07:50:30
C:\Windows\System32\dmime.dll, loaded at 0x70a90000 - 207360 bytes - 545047b6 - file date is 11/21/2014 07:50:30
C:\Windows\System32\DSOUND.dll, loaded at 0x70ad0000 - 517120 bytes - 54504746 - file date is 11/21/2014 07:50:34
C:\Windows\System32\dmusic.dll, loaded at 0x70b60000 - 111104 bytes - 54504753 - file date is 11/21/2014 07:50:30
C:\Windows\System32\dmloader.dll, loaded at 0x70b80000 - 41472 bytes - 5450482c - file date is 11/21/2014 07:50:30
C:\Windows\SYSTEM32\cryptnet.dll, loaded at 0x70b90000 - 132608 bytes - 5a26c20d - file date is 12/5/2017 20:58:06
C:\Windows\system32\nvspcap.dll, loaded at 0x70bc0000 - 2164080 bytes - 5d039ac6 - file date is 7/18/2019 04:31:52
C:\Windows\SYSTEM32\mscms.dll, loaded at 0x70de0000 - 503808 bytes - 589609ef - file date is 2/4/2017 22:05:56
C:\Windows\SYSTEM32\dxgi.dll, loaded at 0x70e60000 - 430176 bytes - 54503ca0 - file date is 11/21/2014 07:50:26
C:\Windows\system32\nvapi.dll, loaded at 0x70ed0000 - 4255360 bytes - 5e01c5db - file date is 12/28/2019 08:48:52
D:\Games\Gothic II NoTR Systempack\Data\$Templates$\ZMODELPROTOEXTENDER.DLL, loaded at 0x71310000 - 150016 bytes - 607f3699 - file date is 7/22/2021 18:16:42
C:\Windows\SYSTEM32\DINPUT8.dll, loaded at 0x71340000 - 171520 bytes - 54504929 - file date is 11/21/2014 07:51:42
D:\Games\Gothic II NoTR Systempack\Data\$Templates$\ZMOUSEFIX.DLL, loaded at 0x71380000 - 74240 bytes - 608ddbab - file date is 7/22/2021 18:16:42
C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.8387_none_50 94ca96bcb6b2bb\MSVCR90.dll, loaded at 0x713a0000 - 653968 bytes - 51ea24a5 - file date is 8/3/2013 09:40:18
D:\Games\Gothic II NoTR Systempack\System\imagehl2.dll, loaded at 0x71460000 - 85264 bytes - 35da03d4 - file date is 1/22/2003 03:30:00
D:\Games\Gothic II NoTR Systempack\Data\$Templates$\ZACTIVATECTRL.DLL, loaded at 0x71610000 - 41472 bytes - 5f1a02c0 - file date is 7/22/2021 18:16:42
C:\Windows\SYSTEM32\ucrtbase.DLL, loaded at 0x71620000 - 914584 bytes - 5caeb859 - file date is 4/12/2019 18:20:26
C:\Windows\SYSTEM32\api-ms-win-crt-environment-l1-1-0.dll, loaded at 0x71700000 - 11608 bytes - 5adc1e08 - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\api-ms-win-crt-locale-l1-1-0.dll, loaded at 0x71710000 - 11608 bytes - 5adc1e05 - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\api-ms-win-crt-string-l1-1-0.dll, loaded at 0x71720000 - 17240 bytes - 5adc1de1 - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\api-ms-win-crt-heap-l1-1-0.dll, loaded at 0x71730000 - 11608 bytes - 5adc1a54 - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\api-ms-win-crt-filesystem-l1-1-0.dll, loaded at 0x71740000 - 13152 bytes - 5adc1de0 - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\api-ms-win-crt-convert-l1-1-0.dll, loaded at 0x71750000 - 15192 bytes - 5adc1a54 - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\api-ms-win-crt-stdio-l1-1-0.dll, loaded at 0x71760000 - 17240 bytes - 5adc1dee - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\api-ms-win-crt-math-l1-1-0.dll, loaded at 0x71770000 - 21848 bytes - 5adc1ddc - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\api-ms-win-crt-runtime-l1-1-0.dll, loaded at 0x71780000 - 15704 bytes - 5adc1dfe - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\api-ms-win-crt-time-l1-1-0.dll, loaded at 0x71790000 - 13656 bytes - 5adc1a54 - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\VCRUNTIME140.dll, loaded at 0x717a0000 - 83224 bytes - 5d8e68be - file date is 9/27/2019 20:04:10
D:\Games\Gothic II NoTR Systempack\Data\$Templates$\UNION_ABI.DLL, loaded at 0x717c0000 - 2747904 bytes - 60f928f3 - file date is 7/22/2021 18:16:42
C:\Windows\SYSTEM32\D3DIM700.dll, loaded at 0x71a70000 - 887808 bytes - 54503b1d - file date is 11/21/2014 07:50:26
c:\program files (x86)\steam\GameOverlayRenderer.dll.tmp, loaded at 0x71b50000 - 1442024 bytes - 60bfee4d - file date is 6/9/2021 04:37:06
D:\Games\Gothic II NoTR Systempack\System\NINJA.DLL, loaded at 0x71ce0000 - 1288192 bytes - 608441df - file date is 4/24/2021 21:05:50
C:\Windows\SYSTEM32\d3d9.dll, loaded at 0x71e20000 - 1907384 bytes - 545049c1 - file date is 11/21/2014 07:50:30
C:\Windows\SYSTEM32\api-ms-win-crt-utility-l1-1-0.dll, loaded at 0x722a0000 - 11608 bytes - 5adc1e0f - file date is 4/26/2018 18:43:42
C:\Windows\SYSTEM32\MSVCP140.dll, loaded at 0x722b0000 - 450320 bytes - 5d8e68c4 - file date is 9/27/2019 20:04:10
D:\Games\Gothic II NoTR Systempack\System\SHW32.DLL, loaded at 0x72320000 - 4313600 bytes - 60c37575 - file date is 7/22/2021 18:09:30
C:\Windows\SYSTEM32\DCIMAN32.dll, loaded at 0x72860000 - 11776 bytes - 54504a1f - file date is 11/21/2014 07:50:30
C:\Windows\SYSTEM32\MSVCR100.dll, loaded at 0x72870000 - 774808 bytes - 580f7bc6 - file date is 11/3/2016 13:53:24
C:\Windows\SYSTEM32\MSVCP100.dll, loaded at 0x72930000 - 422040 bytes - 580f7bf5 - file date is 11/3/2016 13:53:24
D:\Games\Gothic II NoTR Systempack\System\vdfs32g.dll, loaded at 0x729a0000 - 447488 bytes - 60b2ae87 - file date is 7/22/2021 18:09:30
C:\Windows\SYSTEM32\DINPUT.dll, loaded at 0x72a20000 - 136192 bytes - 545048f9 - file date is 11/21/2014 07:51:42
C:\Windows\SYSTEM32\DDRAW.dll, loaded at 0x72a50000 - 544256 bytes - 54503a5b - file date is 11/21/2014 07:50:26
C:\Windows\SYSTEM32\ntmarta.dll, loaded at 0x72cf0000 - 154392 bytes - 54503d52 - file date is 11/21/2014 07:51:24
C:\Windows\SYSTEM32\dbghelp.dll, loaded at 0x73090000 - 1207296 bytes - 551b5864 - file date is 4/1/2015 07:31:02
C:\Windows\SYSTEM32\gpapi.dll, loaded at 0x73540000 - 115704 bytes - 5734a4d2 - file date is 5/12/2016 22:43:20
C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9600.19394_none_a9f59c4f01325ed5\COMCTL32.dll, loaded at 0x73930000 - 2107392 bytes - 5cf3f3aa - file date is 6/2/2019 21:05:08
C:\Windows\AppPatch\AcGenral.DLL, loaded at 0x73b40000 - 2473984 bytes - 5ce0259e - file date is 5/18/2019 20:32:52
C:\Windows\SYSTEM32\dwmapi.dll, loaded at 0x73db0000 - 102728 bytes - 54503bae - file date is 11/21/2014 07:50:30
C:\Windows\SYSTEM32\midimap.dll, loaded at 0x73dd0000 - 18944 bytes - 545049be - file date is 11/21/2014 07:50:34
C:\Windows\SYSTEM32\MSACM32.dll, loaded at 0x73de0000 - 89816 bytes - 54503d51 - file date is 11/21/2014 07:50:34
C:\Windows\SYSTEM32\msacm32.drv, loaded at 0x73e00000 - 23040 bytes - 545048d7 - file date is 11/21/2014 07:50:34
C:\Windows\SYSTEM32\powrprof.dll, loaded at 0x73e10000 - 255136 bytes - 54503d36 - file date is 11/21/2014 07:51:14
C:\Windows\SYSTEM32\AUDIOSES.DLL, loaded at 0x73e50000 - 370872 bytes - 5ce886f7 - file date is 5/25/2019 06:56:42
C:\Windows\SYSTEM32\AVRT.dll, loaded at 0x73eb0000 - 31496 bytes - 54503d85 - file date is 11/21/2014 07:51:40
C:\Windows\System32\ksuser.dll, loaded at 0x73ec0000 - 19096 bytes - 54503c49 - file date is 11/21/2014 07:50:34
C:\Windows\SYSTEM32\wdmaud.drv, loaded at 0x73ed0000 - 197120 bytes - 54503a7d - file date is 11/21/2014 07:50:34
C:\Windows\System32\MMDevApi.dll, loaded at 0x73f10000 - 331048 bytes - 54503afb - file date is 11/21/2014 07:50:34
C:\Windows\SYSTEM32\DEVOBJ.dll, loaded at 0x73f70000 - 127552 bytes - 54503cd9 - file date is 11/21/2014 07:51:24
C:\Windows\SYSTEM32\WINMMBASE.dll, loaded at 0x73fa0000 - 134280 bytes - 54503b8a - file date is 11/21/2014 07:50:34
C:\Windows\SYSTEM32\WINSPOOL.DRV, loaded at 0x73fd0000 - 399360 bytes - 5c5efcef - file date is 2/9/2019 21:16:50
C:\Windows\SYSTEM32\VERSION.dll, loaded at 0x74040000 - 26304 bytes - 54504a11 - file date is 11/21/2014 07:51:22
C:\Windows\SYSTEM32\WINMM.dll, loaded at 0x74050000 - 136840 bytes - 54503b0a - file date is 11/21/2014 07:50:34
C:\Windows\SYSTEM32\USERENV.dll, loaded at 0x74090000 - 98320 bytes - 5ce022f2 - file date is 5/22/2019 22:50:02
C:\Windows\SYSTEM32\WININET.dll, loaded at 0x740b0000 - 4386304 bytes - 5d085018 - file date is 6/18/2019 07:44:52
C:\Windows\SYSTEM32\iertutil.dll, loaded at 0x744f0000 - 2297344 bytes - 5ce88f71 - file date is 5/25/2019 05:42:40
C:\Windows\system32\rsaenh.dll, loaded at 0x74740000 - 192120 bytes - 568fe95c - file date is 1/9/2016 06:49:44
C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.9600.19402_ none_dad7ba065bccc1a3\gdiplus.dll, loaded at 0x74770000 - 1494016 bytes - 5d117989 - file date is 6/25/2019 06:32:00
C:\Windows\SYSTEM32\profapi.dll, loaded at 0x748f0000 - 52152 bytes - 54503d83 - file date is 11/21/2014 07:51:18
C:\Windows\SYSTEM32\CRYPTSP.dll, loaded at 0x74920000 - 96032 bytes - 54503d8e - file date is 11/21/2014 07:51:24
C:\Windows\SYSTEM32\NTASN1.dll, loaded at 0x74940000 - 165728 bytes - 54503d6a - file date is 11/21/2014 07:51:24
C:\Windows\SYSTEM32\bcrypt.dll, loaded at 0x74970000 - 111104 bytes - 58308a4d - file date is 11/19/2016 22:22:22
C:\Windows\SYSTEM32\ncrypt.dll, loaded at 0x74990000 - 120376 bytes - 5aa409eb - file date is 3/11/2018 00:04:44
C:\Windows\SYSTEM32\MPR.dll, loaded at 0x74a20000 - 87224 bytes - 54503d98 - file date is 11/21/2014 07:51:26
C:\Windows\SYSTEM32\UxTheme.dll, loaded at 0x74a40000 - 949760 bytes - 59dce019 - file date is 10/10/2017 19:58:40
C:\Windows\SYSTEM32\SHCORE.DLL, loaded at 0x74b30000 - 560392 bytes - 54c1b627 - file date is 1/23/2015 10:02:34
C:\Windows\SYSTEM32\urlmon.dll, loaded at 0x74bc0000 - 1323008 bytes - 5d084f4a - file date is 6/18/2019 07:41:24
C:\Windows\SYSTEM32\samcli.dll, loaded at 0x74d10000 - 64512 bytes - 54503d55 - file date is 11/21/2014 07:51:24
C:\Windows\system32\apphelp.dll, loaded at 0x74d30000 - 642560 bytes - 54504a2b - file date is 11/21/2014 07:51:14
C:\Windows\SYSTEM32\WSOCK32.dll, loaded at 0x74f10000 - 16384 bytes - 54504a16 - file date is 11/21/2014 07:51:20
C:\Windows\SYSTEM32\kernel.appcore.dll, loaded at 0x74f20000 - 29920 bytes - 54503d1a - file date is 11/21/2014 07:51:14
C:\Windows\SYSTEM32\bcryptPrimitives.dll, loaded at 0x74f30000 - 341384 bytes - 5a4b0740 - file date is 1/2/2018 11:03:26
C:\Windows\SYSTEM32\CRYPTBASE.dll, loaded at 0x74f90000 - 30984 bytes - 54504a6b - file date is 11/21/2014 07:51:18
C:\Windows\system32\IMM32.DLL, loaded at 0x74fa0000 - 141312 bytes - 54504a14 - file date is 11/21/2014 07:50:30
C:\Windows\SYSTEM32\PSAPI.DLL, loaded at 0x74fd0000 - 16504 bytes - 54503d92 - file date is 11/21/2014 07:51:14
C:\Windows\SYSTEM32\MSCTF.dll, loaded at 0x74fe0000 - 1124384 bytes - 59b40b3e - file date is 9/14/2017 06:14:24
C:\Windows\SYSTEM32\SETUPAPI.dll, loaded at 0x75100000 - 1782912 bytes - 5450383a - file date is 11/21/2014 07:51:14
C:\Windows\SYSTEM32\GDI32.dll, loaded at 0x752c0000 - 1085440 bytes - 5d117bb2 - file date is 6/25/2019 06:41:12
C:\Windows\SYSTEM32\WINTRUST.DLL, loaded at 0x75430000 - 245320 bytes - 57f4004f - file date is 10/5/2016 09:15:14
C:\Windows\SYSTEM32\NSI.dll, loaded at 0x75470000 - 20120 bytes - 54504af3 - file date is 11/21/2014 07:50:20
C:\Windows\SYSTEM32\RPCRT4.dll, loaded at 0x75480000 - 747520 bytes - 5c6ed242 - file date is 2/21/2019 21:31:04
C:\Windows\SYSTEM32\KERNELBASE.dll, loaded at 0x75540000 - 861184 bytes - 5ccf981a - file date is 5/6/2019 07:12:48
C:\Windows\SYSTEM32\SHELL32.dll, loaded at 0x75620000 - 19790160 bytes - 5ce888e3 - file date is 5/25/2019 06:59:56
C:\Windows\SYSTEM32\SspiCli.dll, loaded at 0x768e0000 - 104960 bytes - 57b8dfd7 - file date is 8/21/2016 03:55:20
C:\Windows\SYSTEM32\SHLWAPI.dll, loaded at 0x76900000 - 278352 bytes - 5450381c - file date is 11/21/2014 07:51:22
C:\Windows\SYSTEM32\ole32.dll, loaded at 0x76950000 - 1214720 bytes - 5ca9260f - file date is 4/7/2019 05:57:20
C:\Windows\SYSTEM32\OLEAUT32.dll, loaded at 0x76a80000 - 611656 bytes - 5c8c63bb - file date is 3/16/2019 08:29:06
C:\Windows\SYSTEM32\imagehlp.dll, loaded at 0x76b20000 - 74824 bytes - 54503c38 - file date is 11/21/2014 07:50:20
C:\Windows\SYSTEM32\KERNEL32.DLL, loaded at 0x76b40000 - 1040384 bytes - 5ccf9718 - file date is 5/6/2019 07:08:26
C:\Windows\SYSTEM32\USER32.dll, loaded at 0x76c80000 - 1376768 bytes - 58235bee - file date is 11/9/2016 22:25:06
C:\Windows\SYSTEM32\combase.dll, loaded at 0x76f60000 - 1563376 bytes - 5c0b3de9 - file date is 12/8/2018 10:32:24
C:\Windows\SYSTEM32\MSASN1.dll, loaded at 0x770e0000 - 51608 bytes - 54503d97 - file date is 11/21/2014 07:51:24
C:\Windows\SYSTEM32\WLDAP32.dll, loaded at 0x770f0000 - 324096 bytes - 5aedda99 - file date is 5/5/2018 21:23:56
C:\Windows\SYSTEM32\crypt32.dll, loaded at 0x77150000 - 1612504 bytes - 58de61ec - file date is 4/1/2017 02:59:40
C:\Windows\SYSTEM32\cfgmgr32.dll, loaded at 0x772e0000 - 241168 bytes - 54503d7a - file date is 11/21/2014 07:51:24
C:\Windows\SYSTEM32\sechost.dll, loaded at 0x77320000 - 257216 bytes - 550b921b - file date is 3/24/2015 02:45:06
C:\Windows\SYSTEM32\WS2_32.dll, loaded at 0x77380000 - 320720 bytes - 5736488a - file date is 5/15/2016 01:01:28
C:\Windows\SYSTEM32\clbcatq.dll, loaded at 0x773d0000 - 569128 bytes - 54503883 - file date is 11/21/2014 07:51:16
C:\Windows\SYSTEM32\ADVAPI32.dll, loaded at 0x77460000 - 507176 bytes - 5a4b1132 - file date is 1/2/2018 10:48:50
C:\Windows\SYSTEM32\msvcrt.dll, loaded at 0x774e0000 - 800008 bytes - 54504b2e - file date is 11/21/2014 07:51:38
C:\Windows\SYSTEM32\ntdll.dll, loaded at 0x777c0000 - 1502000 bytes - 5a4b127e - file date is 1/2/2018 10:58:08 //=====================================================

mud-freak
24.07.2021, 10:27
Hi, I am not sure what you are asking of me. I have too little context about the issue you describe. Is this a mod or patch; is the mod hooking something menu related; are there mod scripts you want me to look at, if so where?

It looks like it's a script issue, since the stack trace originates from Daedalus, and therefore nothing directly related to Ninja. There may be a symbol that the patches expect, that does not exist in the menu scripts of that particular mod. To find out which we'd need the original menu scripts.

N1kX
24.07.2021, 13:44
Hi, I am not sure what you are asking of me. I have too little context about the issue you describe. Is this a mod or patch; is the mod hooking something menu related; are there mod scripts you want me to look at, if so where?

It looks like it's a script issue, since the stack trace originates from Daedalus, and therefore nothing directly related to Ninja. There may be a symbol that the patches expect, that does not exist in the menu scripts of that particular mod. To find out which we'd need the original menu scripts.

Hello. I threw the menu.dat mod scripts into PM.
Modification - Gothic 2 Returning - New balance (22.07.2021) (The link to the mod is in my first message.)
Patch - ItemLocator
(In fact, any patch that makes changes to menu. dat - Itemlocator, Freeaim, ORDEREDLOGS, SHOWALWAYSIMPORTANTSTATS, STAMINA, etc.)

mud-freak
25.07.2021, 16:14
Thanks for the menu scripts. I cannot find any problems there. When parsing them with a clean Gothic there is no problem either.

It seems that the mod might be changing something in the engine, which changes the menu classes are behaving. Using some debugging helpers like the HRAV patch or other, you could try to find the Daedalus symbol names in the stack trace. That would help to find which portion of the code in the patches causes the issue.

If the crash happens before the debugging takes effect, it's a guessing game for me. I cannot possibly know what the mod changes in the engine. The scripts (to inject the menus) in the patches (extractable with the GothicVDFS) may offer some insights to the people who wrote the mod. The scripts call a few engine functions (zCMenuItem::Create, zCFont::GetFontY, zCArray::InsertAtPos), but only when in the respective menu. Other than that they typically access and the variables zCMenu.name and zCMenu.m_listItems_array of the current menu.

That's all I can offer.

Kirides
25.07.2021, 17:33
Returning New Balance heavily uses Union and class inheritance for modifiying game behavior.

This breaks things like Item/Npc checks for pointers (Hlp_Is_oCNpc, ...) and probably many more things.


@N1kX, did you try "OrderedLogs" with MenuIntegration=0 ?

N1kX
25.07.2021, 18:08
Returning New Balance heavily uses Union and class inheritance for modifiying game behavior.

This breaks things like Item/Npc checks for pointers (Hlp_Is_oCNpc, ...) and probably many more things.


@N1kX, did you try "OrderedLogs" with MenuIntegration=0 ?


This patch has been in fashion for a very long time, I haven't checked it.
I know that the KEEPTRADERWEAPONS patch works 100%
(I checked the launch of the mod with it)

As already mentioned, many classes in the mod are expanded and therefore, most likely, the mod will not be compatible with Ninja

mud-freak
25.07.2021, 19:56
This patch has been in fashion for a very long time, I haven't checked it.
I know that the KEEPTRADERWEAPONS patch works 100%
(I checked the launch of the mod with it)

As already mentioned, many classes in the mod are expanded and therefore, most likely, the mod will not be compatible with Ninja

No, that is kind of a direct contradiction. Ninja seems very well compatible with that mod (see your example of the KeepTradorWeapons-Patch). It is the individual patches, that presuppose the original Gothic class layout of certain classes, that are seemingly incompatible.


PS: If we knew in what way the mod alters the menu classes, the patches may be able to find a way around it. (If need be with the way Kirides proposes by disabling any menu integration.)

N1kX
26.07.2021, 14:07
I checked some patches again

just installed Ninja - without any plugins
perceptions of B_AssessDamage, B_AssessEnemy stop working, enemies Monsters / Npcs stop responding to blows.

Workaround - the mod starts with the plugin, but crashes when loading a save/starting a new game

//====================== CALLSTACK ========================0023:00791B68 (0x007AA310 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+520 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+12 byte(s)
0023:00792504 (0x007AA310 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AA450 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AA7AB 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB441 0x1D7AFE10 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007B1FD3 0x00000001 0x00AB40C0 0x1D43FF18) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792CBF (0x00AB40C0 0x0003BDB1 0x1D43FF18 0x0045930B) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1551
0023:007929E7 (0x0135F9C0 0x00000001 0x0135FA14 0x1D43FF18) Gothic2.exe, zCParser::CallFunc()+23 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1488+23 byte(s)
0023:0045930B (0xB62D2C4D 0x0400BB00 0x70F55F68 0x00000000) Gothic2.exe, zCNetEventManager::OnMessage()+3979 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zNetEventMan.cpp, line 286+386 byte(s)
0023:7097A8F9 (0x00000040 0x00000000 0x1D440B28 0x008D1E44) MSVCR100.dll, fclose()+85 byte(s)
0023:77DA0FA9 (0x02B80000 0x00000000 0x00000040 0x00457C93) ntdll.dll, RtlAllocateHeap()+201 byte(s)
0023:70970299 (0x1D43FF18 0x1D43FF18 0x0135FB64 0x00000000) MSVCR100.dll, malloc()+54 byte(s)
//=====================================================

ItemLocator - the mod starts, but when the formation of menu items from the menu.dat scripts begins, a crash occurs

//====================== CALLSTACK ========================0023:00791B68 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+520 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+12 byte(s)
0023:00792504 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAA5C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAD5D 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB39B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB4B9 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB4FC 0x1D77E648 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007B25DF 0x00000001 0x00AB40C0 0x1CB8E1F8) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792CBF (0x00AB40C0 0x0003BDBF 0x1CB8E1F8 0x0045930B) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1551
0023:007929E7 (0x0135F9C0 0x00000001 0x0135FA14 0x1CB8E1F8) Gothic2.exe, zCParser::CallFunc()+23 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1488+23 byte(s)
0023:0045930B (0x5F70044E 0x03C09690 0x70485F68 0x00000000) Gothic2.exe, zCNetEventManager::OnMessage()+3979 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zNetEventMan.cpp, line 286+386 byte(s)
0023:6FEFA8F9 (0x00000040 0x00000000 0x1CB8EE08 0x008D1E44) MSVCR100.dll, fclose()+85 byte(s)
0023:772F0FA9 (0x001B0000 0x00000000 0x00000040 0x00457C93) ntdll.dll, RtlAllocateHeap()+201 byte(s)
0023:6FEF0299 (0x1CB8E1F8 0x1CB8E1F8 0x0135FB64 0x00000000) MSVCR100.dll, malloc()+54 byte(s)
//=====================================================

Itemmap - the mod starts, but when the formation of menu items from the menu.dat scripts begins, a crash occurs (analog itemlocator)

//====================== CALLSTACK ========================0023:00791B68 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+520 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+12 byte(s)
0023:00792504 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAA5C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AADB7 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007ABA4D 0x1D79CAC8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007B25DF 0x00000001 0x00AB40C0 0x1D586030) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792CBF (0x00AB40C0 0x0003BDF6 0x1D586030 0x0045930B) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1551
0023:007929E7 (0x0135F9C0 0x00000001 0x0135FA14 0x1D586030) Gothic2.exe, zCParser::CallFunc()+23 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1488+23 byte(s)
0023:0045930B (0xB1717069 0x03FC6680 0x70485F68 0x00000000) Gothic2.exe, zCNetEventManager::OnMessage()+3979 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zNetEventMan.cpp, line 286+386 byte(s)
0023:6FEFA8F9 (0x00000040 0x00000000 0x1D586C40 0x008D1E44) MSVCR100.dll, fclose()+85 byte(s)
0023:772F0FA9 (0x02BF0000 0x00000000 0x00000040 0x00457C93) ntdll.dll, RtlAllocateHeap()+201 byte(s)
0023:6FEF0299 (0x1D586030 0x1D586030 0x0135FB64 0x00000000) MSVCR100.dll, malloc()+54 byte(s)
//=====================================================

Stamina - the mod starts, but when the formation of menu items from the menu.dat scripts begins, a crash occurs (Analog itemmap/itemlocator)

//====================== CALLSTACK ========================0023:00791B68 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+520 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+12 byte(s)
0023:00792504 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAA5C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAD5D 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB39B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB4B9 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB4FC 0x1D7A0188 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007B25DF 0x00000001 0x00AB40C0 0x1D74F020) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792CBF (0x00AB40C0 0x0003BE77 0x1D74F020 0x0045930B) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1551
0023:007929E7 (0x0135F9C0 0x00000001 0x0135FA14 0x1D74F020) Gothic2.exe, zCParser::CallFunc()+23 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1488+23 byte(s)
0023:0045930B (0x92503D17 0x03C09210 0x70485F68 0x00000000) Gothic2.exe, zCNetEventManager::OnMessage()+3979 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zNetEventMan.cpp, line 286+386 byte(s)
0023:6FEFA8F9 (0x00000040 0x00000000 0x1D74FC30 0x008D1E44) MSVCR100.dll, fclose()+85 byte(s)
0023:772F0FA9 (0x00290000 0x00000000 0x00000040 0x00457C93) ntdll.dll, RtlAllocateHeap()+201 byte(s)
0023:6FEF0299 (0x1D74F020 0x1D74F020 0x0135FB64 0x00000000) MSVCR100.dll, malloc()+54 byte(s)
//=====================================================

KeepTraderWeapons - the mod starts with the plugin, but crashes when loading a save/starting a new game

//====================== CALLSTACK ========================0023:00791B68 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+520 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+12 byte(s)
0023:00792504 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAA5C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AADB7 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007ABA4D 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007B25DF 0x1D7E41C0 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007CDBEF 0x00000001 0x00AB40C0 0x0813C740) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792CBF (0x00AB40C0 0x0003BD72 0x0135F79C 0x00459399) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1551
0023:007929E7 (0x0135F79C 0x00000001 0x0135F7F0 0x0813C740) Gothic2.exe, zCParser::CallFunc()+23 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1488+23 byte(s)
0023:00459399 (0x00000000 0x00400000 0x002F4040 0x0135FE70) Gothic2.exe, zCNetEventManager::OnMessage()+4121 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zNetEventMan.cpp, line 286+528 byte(s)
0023:00425C35 (0x00000000 0x00503270 0x0000002C 0x00010118) Gothic2.exe, CGameManager::Run()+1029 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 713
0023:0082933B (0x00000000 0x00000000 0x00000000 0x00000000) Gothic2.exe, SetFileAttributesA()+284535 byte(s)
//=====================================================

OrderedLogs - the mod starts, but when the formation of menu items from the menu.dat scripts begins, a crash occurs (Analog itemmap/itemlocator)

//====================== CALLSTACK ========================0023:00791B68 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+520 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+12 byte(s)
0023:00792504 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAA5C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAD5D 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB39B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB3BC 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB4B9 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB4FC 0x1D789748 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007B25DF 0x00000001 0x00AB40C0 0x1D71A018) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792CBF (0x00AB40C0 0x0003BDF7 0x1D71A018 0x0045930B) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1551
0023:007929E7 (0x0135F9C0 0x00000001 0x0135FA14 0x1D71A018) Gothic2.exe, zCParser::CallFunc()+23 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1488+23 byte(s)
0023:0045930B (0xB34353A1 0x041C9DC0 0x70485F68 0x00000000) Gothic2.exe, zCNetEventManager::OnMessage()+3979 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zNetEventMan.cpp, line 286+386 byte(s)
0023:6FEFA8F9 (0x00000040 0x00000000 0x1D71AC28 0x008D1E44) MSVCR100.dll, fclose()+85 byte(s)
0023:772F0FA9 (0x02F50000 0x00000000 0x00000040 0x00457C93) ntdll.dll, RtlAllocateHeap()+201 byte(s)
0023:6FEF0299 (0x1D71A018 0x1D71A018 0x0135FB64 0x00000000) MSVCR100.dll, malloc()+54 byte(s)
//=====================================================

OrderedLogs (with MenuIntegration=0) - the mod starts, but when the formation of menu items from the menu.dat scripts begins, a crash occurs (Analog itemmap/itemlocator)

//====================== CALLSTACK ========================0023:00791B68 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+520 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+12 byte(s)
0023:00792504 (0x007AA91C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAA5C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AAD5D 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB39B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB4B9 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AB4FC 0x1C8B4038 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007B25DF 0x00000001 0x00AB40C0 0x1C7A7028) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792CBF (0x00AB40C0 0x0003BDF7 0x1C7A7028 0x0045930B) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1551
0023:007929E7 (0x0135F9C0 0x00000001 0x0135FA14 0x1C7A7028) Gothic2.exe, zCParser::CallFunc()+23 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1488+23 byte(s)
0023:0045930B (0xB5AF20D2 0x03FC9480 0x70485F68 0x00000000) Gothic2.exe, zCNetEventManager::OnMessage()+3979 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zNetEventMan.cpp, line 286+386 byte(s)
0023:6FEFA8F9 (0x00000040 0x00000000 0x1C7A7C38 0x008D1E44) MSVCR100.dll, fclose()+85 byte(s)
0023:772F0FA9 (0x02C30000 0x00000000 0x00000040 0x00457C93) ntdll.dll, RtlAllocateHeap()+201 byte(s)
0023:6FEF0299 (0x1C7A7028 0x1C7A7028 0x0135FB64 0x00000000) MSVCR100.dll, malloc()+54 byte(s)
//=====================================================

I don't think that you can somehow get around this, because in the future mods will switch to Union and use their own classes, it will be impossible to adapt to everything. You can try it if you ask the authors of the mod for extended classes yourself.

Kirides
26.07.2021, 19:15
can you repeat the steps with HRAV patch alongside the respective patch? (as mud-freak mentioned in https://forum.worldofplayers.de/forum/threads/1515286-Ninja?p=26804248&viewfull=1#post26804248)

So we can actually see what happens, and not just DoStack (which is even less useful with patches, as they move depending on the mod...)

mud-freak
26.07.2021, 22:06
can you repeat the steps with HRAV patch alongside the respective patch? (as mud-freak mentioned in https://forum.worldofplayers.de/forum/threads/1515286-Ninja?p=26804248&viewfull=1#post26804248)

So we can actually see what happens, and not just DoStack (which is even less useful with patches, as they move depending on the mod...)

I suspect that won’t work. I assume the crash happens due to the difference in the NPC class that is used to bootstrap Ikarus. If my hunch is right, Ikarus cannot be used in that mod.

The idea of extending the NPC class lacked a bit of foresight… it should have worked, would any new variables be just appended at the end of the class. But there goes that… what a shame.

Kirides
27.07.2021, 07:20
I suspect that won’t work. I assume the crash happens due to the difference in the NPC class that is used to bootstrap Ikarus. If my hunch is right, Ikarus cannot be used in that mod.

The idea of extending the NPC class lacked a bit of foresight… it should have worked, would any new variables be just appended at the end of the class. But there goes that… what a shame.

interesting. While i don't use many flags, in the GD3D11 renderer i use some of the npc class' members. Though i had to implement inheritance-proof oCNpc checks and could not solely rely on the vtbl anymore.
while i don't know for sure, i think Union uses regular c++ syntax for inheritance "class oCNpcV2 : public oCNpc" this should lead to all members being "at the end" of the oCNpc class, or am i wrong?
That's atleast the syntax that is used in Union tutorials




template<class T>
T* As() {
zCClassDef* classDef = ((zCObject*)this)->_GetClassDef();
if ( CheckInheritance( classDef, T::GetStaticClassDef() ) ) { // e.g. oCNpc::GetStaticClassDef() -> 0x00ab1e20
return reinterpret_cast<T*>(this);
}
return nullptr;
}

bool CheckInheritance( const zCClassDef* def, const zCClassDef* target ) {
while ( def ) {
if ( def == target ) {
return true;
}
def = def->baseClassDef;
}
return false;
}

mud-freak
27.07.2021, 07:46
interesting. While i don't use many flags, in the GD3D11 renderer i use some of the npc class' members. Though i had to implement inheritance-proof oCNpc checks and could not solely rely on the vtbl anymore.
while i don't know for sure, i think Union uses regular c++ syntax for inheritance "class oCNpcV2 : public oCNpc" this should lead to all members being "at the end" of the oCNpc class, or am i wrong?
That's atleast the syntax that is used in Union tutorials




template<class T>
T* As() {
zCClassDef* classDef = ((zCObject*)this)->_GetClassDef();
if ( CheckInheritance( classDef, T::GetStaticClassDef() ) ) { // e.g. oCNpc::GetStaticClassDef() -> 0x00ab1e20
return reinterpret_cast<T*>(this);
}
return nullptr;
}

bool CheckInheritance( const zCClassDef* def, const zCClassDef* target ) {
while ( def ) {
if ( def == target ) {
return true;
}
def = def->baseClassDef;
}
return false;
}

Ah okay. I wasn't aware it's just inheriting the class. Then I don't know what causes the crash - and if it even happens during the initialization of Ikarus. The only critical thing I was thinking of is the bootstrapping of writing at arbitrary memory addresses using the helper NPC (https://github.com/Lehona/Ikarus/blob/fc058ea8bad0ea2d36645a3093ce3f9d71eb26ee/Ikarus.d#L363-L372). Other than that I don't see any class dependent action during the initialization of Ikarus (MEM_InitAll). That bootstrapping should be robust to an inherited class.

One could replace the Hlp_Is_... functions in Ikarus with objCheckInheritance (in the ScriptBin), a function I wrote a while ago, which is the same thing you mention here. I cannot imagine, however, how that is the origin of the crash.

I am not a big fan of this guessing game. If someone finds the root of the problem, I am happy to help adjust Ikarus.


PS: So, HRAV may actually work here after all. May be worth a try.

N1kX
31.07.2021, 05:16
I tried to run the mod with HRAV, unfortunately it could not decrypt AS.


You also probably missed my description of the work of Ninja itself - if you install it without patches, then the perceptions of the oCNpc class stop working - they become brainless.

mud-freak
02.08.2021, 09:02
Thanks for checking.
It’s also related to the inherited NPC class. I have an idea where the problem happens and I should be able to fix it. I’m on vacation at the moment, but I am sure I can fix it soon.
I will have a closer look at Ikarus too, to check if there are any more occasions with direct class checks.

mud-freak
03.09.2021, 07:26
Returning New Balance heavily uses Union and class inheritance for modifiying game behavior.

This breaks things like Item/Npc checks for pointers (Hlp_Is_oCNpc, ...) and probably many more things.

By the way, (I think) I have this fully fixed. I just haven't gotten around to release a new version of Ninja. I hope to get to it soon.

mud-freak
05.09.2021, 13:17
Es gibt eine neue Version von Ninja. Damit werden die neusten Änderungen von Ikarus (https://github.com/Lehona/Ikarus/compare/fc058ea8bad0ea2d36645a3093ce3f9d71eb26ee...93591080ecbb7880dd7808adb0b88c833421a 77c) und die neusten Änderungen von LeGo (https://github.com/Lehona/LeGo/compare/a7db05db2e8a2d0bd91aee84d4b15b904ae983f5...2c7aa0eab917bdf1304fceeee0d87bdefa5e8 47b) unterstützt. Intern wurden zwei Checks an zwei bestehende angeglichen für bessere Kompatibilität.

Aktueller Download über Spine oder hier (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v2711-sep-5-2021).

N1kX
05.09.2021, 13:42
Perceptions work in the new version of Return. Plugins seem to be running.
The ItemLocator plugin, when trying to highlight objects, crashes the game, there is no AS, only an error Gothic2.exe
Itemmap allows you to get AS
Here it is

//====================== CALLSTACK ========================
0023:00791B68 (0x007A303F 0x00AB4108 0x00000000 0x00AB40C0) Daedalus, mem_ptrtoinst()+123 byte(s) [zPAR_OP_IS] in Gothic2.exe, zCParser::DoStack()+520 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+12 byte(s)
0023:00792504 (0x007A8198 0x00AB4108 0x00000000 0x00AB40C0) Daedalus, mem_checkinheritance()+0 byte(s) [zPAR_TOK_CALL] in Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007A8328 0x00AB4108 0x00000000 0x00AB40C0) Daedalus, hlp_is_ocitem()+0 byte(s) [zPAR_TOK_CALL] in Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007A31CF 0x00AB4108 0x00000000 0x00AB40C0) Daedalus, mem_callbyptr()+0 byte(s) [zPAR_TOK_CALL] in Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007A637A 0x00AB4108 0x00000000 0x00AB40C0) Daedalus, mem_callbyid()+0 byte(s) [zPAR_TOK_CALL] in Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007A31CF 0x00AB4108 0x00000000 0x00AB40C0) Daedalus, mem_callbyptr()+0 byte(s) [zPAR_TOK_CALL] in Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007A31E6 0x1D47ECB0 0x00AB4118 0x00AB40C0) Daedalus, mem_callbyoffset()+0 byte(s) [zPAR_TOK_CALL] in Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792504 (0x007AC15C 0x2C099C70 0x00000000 0x0135F6E0) Daedalus, locals()+0 byte(s) [zPAR_TOK_CALL] in Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415
0023:00792CBF (0x2C099C70 0x00849BC4 0x007D0AE4 0x2C099C70) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1551
0023:007D0AC9 (0x00000000 0x00000011 0x00000006 0x00000080) Gothic2.exe, __RTDynamicCast()+143 byte(s)
//=====================================================

mud-freak
05.09.2021, 14:49
Perceptions work in the new version of Return. Plugins seem to be running.
The ItemLocator plugin, when trying to highlight objects, crashes the game, there is no AS, only an error Gothic2.exe
Itemmap allows you to get AS

Thanks for testing. I have sent you a private message.

mud-freak
05.09.2021, 16:11
Ein kleiner Hotfix zur vorherigen Version. Danke an N1kX für die schnelle Hilfe beim Testen.

Aktueller Download über Spine oder hier (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v2712-sep-5-2021).

FaChDa
06.09.2021, 14:17
Coole Sache. Danke für das Update! :gratz

Kirides
06.09.2021, 14:54
Um das nochmal klarer auszudrücken:

Mit der neuen Version von Ninja, sollten Patches nun noch viel kompatibler sein als zuvor.

Gerade im zusammenhang mit Union und Mods welche auf Union basieren
(z.B. Returning 2.0 New Alternative Balance und weitere kommende polnische & russische mods)

FaChDa
06.09.2021, 14:59
Mit der neuen Version von Ninja, sollten Patches nun noch viel kompatibler sein als zuvor.


Kann ich nur bestätigen. Gerade getestet mit ItemMap, ItemLocator und OrdererdLogs und alles lief wunderbar mit Returning NB. :)

Tentarr
07.09.2021, 10:01
Vielen Dank für die Arbeit :)

Roland54
07.09.2021, 10:21
Irgendwie bin ich im Moment wohl zu blond, um Ninja von Github zu laden. Was ich auch anklicke, da ist kein Download dabei, und selbst bauen will ich es nicht. Wie geht das denn jetzt?

Ich benutze übrigens den Firefox (aktuell).

Gothaholic
07.09.2021, 10:42
Irgendwie bin ich im Moment wohl zu blond, um Ninja von Github zu laden. Was ich auch anklicke, da ist kein Download dabei, und selbst bauen will ich es nicht. Wie geht das denn jetzt?

Ich benutze übrigens den Firefox (aktuell).

hm, hab's mir gerade mit Firefox herunter geladen, also am Browser liegt es nicht.
der (Download)Link unter "Assets" funktioniert nicht bei dir?

Cryp18Struct
07.09.2021, 10:44
Funktioniert bei mir in firefox:
50938
(Rechtsklick und "Ziel speichern unter" oder wie auch immer das auf deutsch heißt)

Roland54
07.09.2021, 10:49
Funktioniert bei mir jetzt auch, danke an alle. Aber ich möchte (fast) behaupten, dass ich unter Assets den Download der .exe vorhin nicht hatte. Jetzt geht der Download jedenfalls direkt.

DavidVanScouten
07.09.2021, 14:03
Ich habs auch gepackt! - Danke!

JudgeKyle
09.09.2021, 01:38
Danke für die stetigen Updates! :gratz

N1kX
25.09.2021, 12:53
I found 1 modification that does not work with Ninja patches due to the old versions of Ikarus and Lego. If there are no patches installed, the mod works.

Modification
https://forum.worldofplayers.de/forum/threads/1133528-Release-Aus-dem-Leben-eines-Diebes-2

Error

00:36 Warn: 0 =============================================== CALLSTACK : ============================================================== .... <zError.cpp,#474>00:36 Warn: 0 0023:00402EC0 (0x0135F718 0x00000000 0xFFFFFFFF 0x00AB4108) Gothic2.exe, std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign()+256 byte(s), P:\vs6\VC98\INCLUDE\xstring, line 123 .... <zError.cpp,#474>
00:36 Warn: 0 0023:00792624 (0x002C8F4D 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+3268 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1457+49 byte(s) .... <zError.cpp,#474>
00:36 Warn: 0 0023:00792504 (0x002C8F4D 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415 .... <zError.cpp,#474>
00:36 Warn: 0 0023:00792504 (0x002C9169 0x18797F30 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415 .... <zError.cpp,#474>
00:36 Warn: 0 0023:00792504 (0x002CFD32 0x00000001 0x00AB40C0 0x056A0AF0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1415 .... <zError.cpp,#474>
00:36 Warn: 0 0023:00792CBF (0x00AB40C0 0x00019A36 0x056A0AF0 0x0045930B) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1551 .... <zError.cpp,#474>
00:36 Warn: 0 0023:007929E7 (0x0135F9C0 0x00000001 0x0135FA14 0x056A0AF0) Gothic2.exe, zCParser::CallFunc()+23 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1488+23 byte(s) .... <zError.cpp,#474>
00:36 Warn: 0 0023:0045930B (0x00340000 0x00000000 0x0567F9A8 0x0135FE2C) Gothic2.exe, zCNetEventManager::OnMessage()+3979 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zNetEventMan.cpp, line 286+386 byte(s) .... <zError.cpp,#474>
00:36 Warn: 0 0023:7098019A (0x00000000 0x00000000 0x00000000 0x00000000) MSVCR100.dll, free()+28 byte(s) .... <zError.cpp,#474>
00:36 Warn: 0 ======================================= UNHANDLED EXCEPTION OCCURED ====================================================== .... <zError.cpp,#474>
00:43 Warn: 0 B: GMAN: gameSession is existing. Call CGameManager::Done() before! .... <oGameManager.cpp,#375>




HRAV it doesn't help

mud-freak
28.09.2021, 15:39
Yes, thanks for reporting. This has been known for a while and was discussed in various places (maybe even in the thread you linked).

JudgeKyle
01.10.2021, 22:51
Yes, thanks for reporting. This has been known for a while and was discussed in various places (maybe even in the thread you linked).

Yes, I was reporting it a while ago too.

mud-freak
02.10.2021, 03:53
It was known even before that :p

JudgeKyle
05.10.2021, 23:21
It was known even before that :p

I try my best. ;)

Ecos
31.10.2021, 10:00
Hallöchen,

ich habe aktuell Probleme Ninja Patches mit G1 zum laufen zu bekommen.

Meine G1 Installation:

Die genaue Installationsreihenfolge von Definitive Edtion 1.5.2 -> einzige Ausnahme, ich habe die aktuellste Version von Union (1.0k)



Gothic (https://www.gog.com/game/gothic) als Administrator installieren
Gothic - Patch 1.08k (https://www.worldofgothic.de/dl/download_6.htm) als Administrator installieren
Gothic - Playerkit v1.08k (https://www.worldofgothic.de/dl/download_34.htm) als Administrator installieren
Gothic - Playerkit v2.8 (https://rpgrussia.com/resources/gothic-1-playerkit-v-2-8.376/download) installieren
Gothic - Union 1.0j (https://www.worldofgothic.de/dl/download_651.htm) installieren
Gothic - Definitive Edition 1.5.2 (https://filehorst.de/d/dlcgzlBl) installieren
Gothic - Community Patch (https://forum.worldofplayers.de/forum/threads/1574630-Release-Gothic-1-Community-Patch) installieren (Optional)
Gothic - Upscaled 720p Videos (https://cloud.mail.ru/public/4dnV/5ps4XqCCr/720_DE/) installieren (Optional)



Anschließend habe ich noch das Texture Pack by Artemiano installiert + die aktuellste Version von Yet Another D3D11 Renderer (AVX) + Gras Addon.
Danach habe ich Ninja Ninja 2.7.12 installiert.
Ich habe schon in den jeweiligen Threads gesucht und nicht gefunden woran es liegen könnte.

Das Spiel an sich funktioniert einwandfrei. Sollte ich jedoch Patches wie Dauerhaftes Rennen/ LifeReg etc. installieren ändert sich im Spiel oder in der Gothic.ini nichts.
Selbst wenn ich G1 ohne der Definitive Edition starte, funktionieren die Ninja Patches nicht.
Union Plugins funktionieren einwandfrei.

Habe ich etwas übersehen? Muss es zwingend die Version Union 1.0j sein?
Gibt es eine Möglichkeit ingame nachzuvollziehen ob Ninja läuft?

EDIT:
Mit der test Version von Union klappt es jetzt -> 1.0l (System Pack 2.0)
Ich hoffe ich bekomme keine Probleme mit meinem bestehenden Speicherstand. (G1CP funktioniert vorher ja auch nicht)

N1kX
31.10.2021, 10:27
Habe ich etwas übersehen? Muss es zwingend die Version Union 1.0j sein?
Gibt es eine Möglichkeit ingame nachzuvollziehen ob Ninja läuft?

EDIT:
Mit der test Version von Union klappt es jetzt -> 1.0l (System Pack 2.0)
Ich hoffe ich bekomme keine Probleme mit meinem bestehenden Speicherstand. (G1CP funktioniert vorher ja auch nicht)


Most likely you had an empty systempack.ini
[PLUGINS]
Plugin List=Ninja**


In the new version 1.0L, a separate parameter has been created for ninja so that there are no more questions about why ninja does not work.

mud-freak
31.10.2021, 11:36
In the new version 1.0L, a separate parameter has been created for ninja so that there are no more questions about why ninja does not work.

Is this something I should know about?

N1kX
31.10.2021, 11:42
Is this something I should know about?

Union 1.0L

Union - system
- PluginList and IgnoreList parameters can override the launch of Ninja, so it is placed in a separate option in SystemPack.ini

In systempack.ini

[CORE]
Ninja = True

The parameter will be set to True by default
To disable Ninja, change to False

Thomas Derler
06.11.2021, 17:33
Bekomme bei Spine auch die Fehlermeldung „Ninja was attached too late (after VDFS)“. Ergänzung der systempack.ini bei Plugin List war leider nicht erfolgreich, die Ergänzung Ninja** wird leider automatisch wieder gelöscht.

Kirides
07.11.2021, 08:14
Bekomme bei Spine auch die Fehlermeldung „Ninja was attached too late (after VDFS)“. Ergänzung der systempack.ini bei Plugin List war leider nicht erfolgreich, die Ergänzung Ninja** wird leider automatisch wieder gelöscht.

- Welche Union Version?
- Spielst du mit Spine?

Wenn Nein:
- liegt die Ninja.dll im "...\Gothic\System\"-Ordner ?
- Hast du den Eintrag in der Systempack.INI auch 100%ig so geschrieben

PLUGINS]
PluginList = Ninja.dll**



Edit: Keine Ahnung wie ich geschafft habe das "bekomme bei Spine auch die Fehlermeldung" zu überlesen....

Thomas Derler
07.11.2021, 08:32
Spiele mit Spine und Union 1.0k.
Den Eintrag habe auch ich korrekt geschrieben.

Die Ninja.dll befindet sich leider nicht im system Ordner, dass wird das Problem sein.

mud-freak
07.11.2021, 08:48
Hier kursieren zu viele widersprüchliche oder unvollständige Ratschläge. Das ist gar nicht so kompliziert.

Wenn man Spine nutzt, sollte man keinerlei manuelle Justierungen vornehmen. Auch, dass sich keine Ninja.dll im System-Verzeichnis befindet ist dort korrekt. Spine aktiviert einzelne Tools, Patches und Mods auf Basis jedes einzelnen Spielstarts. Bei Nutzung von Spine muss/sollte man also nirgendwo etwas eintragen. Dafür ist allerdings auch notwendig, dass Ninja (und alle anderen Arten von Tools) ausschließlich über Spine installiert sind.

Nutzt man Spine nicht, sollte sich auch alles korrekt einpflegen, wenn man Ninja als letztes installiert, mit administrativen Rechten und nachdem man das Spiel evtl. schon einmal gestartet hatte.

Thomas Derler
07.11.2021, 08:58
Habe alles über Spine installiert, nichts manuell. Habe sonst auch keine manuellen Änderungen vorgenommen.

Wie krieg ich jedoch jetzt das Problem in den Griff, wenn ich manuell nichts eintragen soll?
Wenn ich in der systempack.ini bei PluginList = Ninja.dll** dazueintrage, wird der Eintrag automatisch wieder rausgelöscht und es kommt wieder die Fehlermeldung „Ninja was attached too late (after VDFS)“.

Bei Gothic 1 hatte ich das Problem vor ca. 2 Monaten auch, wurde dann glaube ich jedoch mit dem nächsten Update automatisch behoben.

mud-freak
07.11.2021, 09:02
Spine setzt den Eintrag automatisch, wird ihn also hier bei Spielstart fälschlicherweise entfernen. Du kannst noch probieren Spine als Administrator zu starten. Ansonsten solltest du dich mit dem Problem an Spine wenden. Dort läuft wohl etwas in der Aktivierung der Komponenten schief. Das scheint nichts mit Ninja zu tun zu haben.

Thomas Derler
07.11.2021, 09:46
Ok, werd ich machen.
Hab Spine soeben nochmals neu installiert, hat leider nichts gebracht.
Trotzdem danke soweit einmal.

Edit: Problem hat sich mit Neuinstallation von Gothic 2 erledigt.

pawbuj
01.12.2021, 12:13
Here as well, only as proof of concept, a python script (https://github.com/szapp/Ninja/wiki/assets/binToCsl.py) (right click, save as) was written to convert BIN files to CSL files. The script is not very optimized and very slow. Correctness and stability cannot be guaranteed and its usage is not recommended.
@mud-freak I do not understand this part of documentation. How the "python script" can be used to obtain a csl file ?

N1kX
12.12.2021, 05:21
Gratt:Чтобы работал и Ниндзя, полагаю, что Мадфрику надо вместо ogame: : init использовать ogame: : LoadParserFile. Тогда и сам Ниндзя заработает, и порядок работы с экстендером будет сохранен.

Gratt:In order for the Ninja to work, I believe that mud-freak should use ogame: : loadparserfile instead of game::init. Then the Ninja himself will work, and the order of work with the extender will be preserved.

It's the new mod

wrexwaz
12.12.2021, 05:59
Please fix for "The Chronicles Of Myrtana: Archolos" :(
https://forum.worldofplayers.de/forum/threads/1550316-Patch-Dauerhaft-Rennen-Infinite-Sprint-V2/page7?p=26887497&viewfull=1#post26887497

mud-freak
12.12.2021, 07:41
Gibt es Details zu dem Absturz? Ich lese überall nur von einem Crash.
Wann passiert der Absturz (Gothic start, Neuspiel, Ende des Ladebalkens, usw.)?
Kommt eine Fehlermeldung?
Gibt es eine Access Violation?
Ist der Crash deterministisch (passiert immer und zum gleichen Zeitpunkt)?
Was sagt der zSpy mit Level >= 6?
Passiert der Absturz nur wenn ein Patch aktiviert ist oder auch wenn einfach nur Ninja installiert ist?
Warum ist es meine Aufgabe, die rücksichtslose und scheinbar vor Release ungetestete Entwicklung von Software auszubaden?

N1kX
12.12.2021, 08:30
Gibt es Details zu dem Absturz? Ich lese überall nur von einem Crash.

Wann passiert der Absturz (Gothic start, Neuspiel, Ende des Ladebalkens, usw.)?
Kommt eine Fehlermeldung?
Gibt es eine Access Violation?
Ist der Crash deterministisch (passiert immer und zum gleichen Zeitpunkt)?
Was sagt der zSpy mit Level >= 6?
Passiert der Absturz nur wenn ein Patch aktiviert ist oder auch wenn einfach nur Ninja installiert ist?
Warum ist es meine Aufgabe, die rücksichtslose und scheinbar vor Release ungetestete Entwicklung von Software auszubaden?




I'm not experimenting right now, just playing with what works 100%. Gratt said that there is a parser there and when installing Ninja it will be
https://worldofplayers.ru/attachments/101275/
The mod will not start with gothicstarter or gothicstarter_mod, there will be the same error. In general, you'd better download the mod from steam/gog.
Also, in addition to their code parser, the volumes have a date stamp of 2098

mud-freak
12.12.2021, 08:57
Gratt said that there is a parser there and when installing Ninja it will be

Wait. Then, why should Ninja move it, why don't they move their parser? Naively speaking, Ninja was there first.

Thanks for the info.

Kirides
12.12.2021, 12:18
@mud-freak I do not understand this part of documentation. How the "python script" can be used to obtain a csl file ?

You can use this: https://forum.worldofplayers.de/forum/threads/1558352-ou2csl-Kompilierte-OU-bin-in-CSL-konvertieren

i hope the documentation about it's usage are clear enough

Netbek94
12.12.2021, 13:39
Hallo miteinander,

ich bin neu im Forum aber Gothic Fan seit Anbeginn der Zeit.
Hab auch Erfahrung mit ein Paar Mods für Gothic 1 (gespielt, nicht erstellt) und habe jetzt ein Problem mit Ninja in Kombination mit Gothic 2 DndR.
Hoffentlich könnt Ihr mir hier weiterhelfen:
Mein Ziel ist es Gothic 2 L'hiver mit Free Aiming und Quicklooten zu spielen.

Dazu bin ich folgendermaßen vorgegangen:
-Gothic 2 via Steam installieren
-Reportversion 2.6.0.0 (https://www.worldofgothic.de/dl/download_278.htm) installieren
-Playerkit istallieren
-Ninja 2.7.12 installieren

Sobald ich aber Ninja installiert habe, bekomme ich beim Spielstart IMMER den Access Violation Fehler.
Mach ich etwas falsch? Wofür genau braucht es eigentlich das Playerkit?

Danke schonmal, und sorry, falls ich im falschen Forum gelandet bin :/

pawbuj
12.12.2021, 14:29
You can use this: https://forum.worldofplayers.de/forum/threads/1558352-ou2csl-Kompilierte-OU-bin-in-CSL-konvertieren

i hope the documentation about it's usage are clear enough

Thanks for the tip. I made it before with my company programmist - he had to modify a code little bit.


"""Experimental script to convert Gothic BIN files to CSL files.

Source:
http://github.com/szapp/Ninja/wiki/Applications-and-Examples#translation-patch
"""
from __future__ import print_function
from datetime import datetime
import os
from struct import unpack
import sys


def convertOU(file, enc='utf-8'):
file = os.path.join( "D:\\tt", 'OU.bin')
print(file)
"""
Convert output units bin to csl

Parameters
----------
file : str
File path to the bin file

Returns
-------
buffer : str
String containing the ASCII converted content

Raises
------
ValueError :
If file has incorrect header
"""
type_names = {
1: 'string',
2: 'int',
3: 'float',
17: 'enum',
}

if not file.lower().endswith('.bin'):
raise ValueError('File has incorrect extension')

output = ''

with open(file, 'rb') as f:
if f.readline().rstrip().decode(enc) != 'ZenGin Archive':
raise ValueError('Header: Not a ZenGin archive')
if f.readline().rstrip().decode(enc) != 'ver 1':
raise ValueError('Header: Incorrect version')
if f.readline().rstrip().decode(enc) != 'zCArchiverBinSafe':
raise ValueError('Header: Incorrect class')
if f.readline().rstrip().decode(enc) != 'BIN_SAFE':
raise ValueError('Header: Incorrect mode')
if f.readline().rstrip().decode(enc) != 'saveGame 0':
raise ValueError('Header: Expected savegame state')
date = f.readline().rstrip().decode(enc)
if not date.startswith('date '):
raise ValueError('Header: Expected date')
date = date[date.find(' ')+1:]
user = f.readline().rstrip().decode(enc)
if not user.startswith('user '):
raise ValueError('Header: Expected user')
user = user[user.find(' ')+1:]
if f.readline().rstrip().decode(enc) != 'END':
raise ValueError('Header: Expected END')

# date = datetime.now().strftime('%d.%m.%Y %H:%M:%S')

output += (
'ZenGin Archive\r\n'
'ver 1\r\n'
'zCArchiverGeneric\r\n'
'ASCII\r\n'
'saveGame 0\r\n'
'date ' + date + '\r\n'
'user ' + user +'\r\n'
'END\r\n'
)

if unpack('<i', f.read(4))[0] < 2:
raise ValueError('Header: Invalid binary version')
obj_count = unpack('<i', f.read(4))[0]
chunk_pos = unpack('<i', f.read(4))[0]
pos_seek = f.tell()
f.seek(chunk_pos, 0)

output += 'objects ' + str(obj_count) + '\r\n'
output += 'END\r\n\r\n'

n_count = unpack('<i', f.read(4))[0]

var_names = [0] * n_count

for i in range(n_count):
str_len = unpack('<h', f.read(2))[0]
ind_val = unpack('<h', f.read(2))[0]
hash_val = unpack('<i', f.read(4))[0]

textbuffer = f.read(str_len).decode(enc)
textbuffer = textbuffer[:str_len] # + chr(0)
var_names[ind_val] = textbuffer
f.seek(pos_seek, 0)

idx = 0
in_block = 0
next_block = False

byte = ord(f.read(1))
while idx < obj_count and byte:
if next_block:
in_block += 1
next_block = False

if byte == 1:
str_len, = unpack('<h', f.read(2))
line = f.read(str_len).decode(enc)
if line != '[]':
next_block = True
idx = int(line[line.rfind(' '):-1])
else:
in_block -= 1

elif byte == 18:
var_n = var_names[unpack('<i', f.read(4))[0]]
type_n = type_names[ord(f.read(1))]
if type_n == 'string':
str_len, = unpack('<h', f.read(2))
line = var_n + '=' + type_n + ':' + f.read(str_len).decode(enc)
else:
val, = unpack('<i', f.read(4))
line = var_n + '=' + type_n + ':' + str(val)

output += '\t' * in_block + line + '\r\n'
byte = ord(f.read(1))

if output[-4:] == '[]\r\n':
output = output[:-4]

return output


if __name__ == '__main__':
if len(sys.argv) <= 1:
print('Usage: %s directory-containing-bin [encoding]'
% os.path.basename(sys.argv[0]))
#exit(1)

#os.chdir(sys.argv[1])
enc = 'ISO-8859-2'
#os.path.join( "D:\\tt",'OU.BIN')
#sys.argv[2] if len(sys.argv) >= 3 else 'utf-8'

out = convertOU('OU.BIN', enc)
with open('OU.csl', 'wb') as f: f.write(bytes(out, enc))

mud-freak
12.12.2021, 14:29
Gratt:Чтобы работал и Ниндзя, полагаю, что Мадфрику надо вместо ogame: : init использовать ogame: : LoadParserFile. Тогда и сам Ниндзя заработает, и порядок работы с экстендером будет сохранен.

Gratt:In order for the Ninja to work, I believe that mud-freak should use ogame: : loadparserfile instead of game::init. Then the Ninja himself will work, and the order of work with the extender will be preserved.
I don't know where this idea comes from. The issue has nothing to do with parsing, in fact it doesn't even have anything to do with Ninja. Ninja works fine with that mod. Even patches like No-Underwater-Effects run soothly and don't cause a crash.

In the end it's just an issue of the mod. It uses extensively modified scripts of LeGo, which prohibit patches, that depend LeGo, to run. Internal functions of LeGo are not meant to be modified. The mod would have to be fixed.

Here some details:

Der Grund dafür, warum viele (nicht alle!) Patches nicht mit dieser Mod funktionieren, ist, dass das Skriptpaket LeGo in der Mod stark abgeändert wurde. Es hat nichts mit Ninja zu tun.

LeGo wird eigentlich als Gesamtpaket in Mods verwendet und es ist nicht vorgesehen, dass in den internen Skripten Änderungen vorgenommen werden. U.A. um zu gewährleisten, dass Aktualisierungen zukünftiger Versionen übernommen werden können. Prinzipiell können Patches mit verschiedenen LeGo-Versionen gut umgehen, allerdings nur zu einem gewissen Grad. In der Mod wurde in internen LeGo-Funktionen einiges umgeschrieben. Einige Patches laufen deshalb nicht. Die Änderungen sind nicht alle schlecht, aber das hätte sicher zentral und offiziell in die aktive Entwicklung von LeGo aufgenommen werden können. In diesem Unwissen oder Eigensinn haben sich die Modentwickler möglichen LeGo-Updates verwehrt und auch entsprechende Kompatibilität aufgegeben.

Verschieden Ansätze und Ideen, wo das Problem hier an Ninja liege, sind also nicht korrekt (und teilweise eher absurde Spekulation). Das ist daran zu erkennen, dass die Mod problemlos mit Patches wie Keine-Unterwasser-Effekte funktioniert. Auch ist nicht korrekt, dass der Autosave-Patch mit der Mod funktionieren solle. Ich weiß nicht wo das herkommt. Das ist nämlich auch nicht der Fall.

Am Ende liegt es bei den Entwicklern, ob sie sich der offiziellen Versionen vom LeGo-Skriptpaket bedienen wollen. Sicher sind sie auch dazu eingeladen, ihre Änderungen in LeGo einfließen zu lassen. Ich halte das aber alles für eher unwahrscheinlich. Wenn jemand einen Draht zu ihnen hat, kann er es ja mal vorschlagen.

mud-freak
12.12.2021, 14:43
Thanks for the tip. I made it before with my company programmist - he had to modify a code little bit.
Looks like all he did was hardcode the file paths. That script was meant to run from command line by specifying file path and encoding as command line arguments. Anyway, glad the conversion worked in the end.



Hallo miteinander,

ich bin neu im Forum aber Gothic Fan seit Anbeginn der Zeit.
Hab auch Erfahrung mit ein Paar Mods für Gothic 1 (gespielt, nicht erstellt) und habe jetzt ein Problem mit Ninja in Kombination mit Gothic 2 DndR.
Hoffentlich könnt Ihr mir hier weiterhelfen:
Mein Ziel ist es Gothic 2 L'hiver mit Free Aiming und Quicklooten zu spielen.

Dazu bin ich folgendermaßen vorgegangen:
-Gothic 2 via Steam installieren
-Reportversion 2.6.0.0 (https://www.worldofgothic.de/dl/download_278.htm) installieren
-Playerkit istallieren
-Ninja 2.7.12 installieren

Sobald ich aber Ninja installiert habe, bekomme ich beim Spielstart IMMER den Access Violation Fehler.
Mach ich etwas falsch? Wofür genau braucht es eigentlich das Playerkit?

Danke schonmal, und sorry, falls ich im falschen Forum gelandet bin :/

Hier ein paar Hilfestellungen:
Das Spiel sollte nicht in C:\Program Files bzw. C:\Program Files (x86) installiert sein.
Ninja sollte mit administrativen Rechten installiert sein.
Gothic sollte im Zweifel mit administrativen Rechten gestartet werden.
Data Execution Prevention (DEP) sollte für Gothic deaktiviert sein.
Es könnte sinnvoll sein, entweder SystemPack oder Union zu installieren. Damit läuft Gothic tendenziell besser. In dem Falle, sollte Ninja anschließend installiert werden.
Mit dem PlayerKit kannst du beim Start von Gothic auswählen, welche Mod (z.B. in deinem Falle L'Hiver) du spielen willst.

pawbuj
31.12.2021, 11:03
Hi mud-freak I wanted to refresh my very old mod to G1 but I found there are some missing features while using last ninja update. After unistall everything works fine. Maybe outdated ikarus&lego pakacge?

The features like changed location of choice box, adding hero name in dialog boxes won't work.

EDIT: the update of ikarus&lego leads to the working features.

neocromicon
02.01.2022, 01:10
Bei der Polnischen Mod Ucieczka bekomme ich direkt den Error: Outdated patch found (Ninja < 2)
Gibt es dafür eine Lösung oder ist das wieder so ein "Geht nicht" Kandidat?

Es reicht nur Ninja selbst drin zu haben, für die Fehlermeldung. Ich habe es doppelt und dreifach geprüft das sich wirklich kein Patch reingeschlichen hat ;)

Edit: Hat sich erledigt, auf Spine war eine veraltete Version, also habe ich eine Manuell Installation probiert und da läuft Ninja und die Patches einwandfrei!

mud-freak
04.01.2022, 09:57
Ich habe mal nachgeschaut und die Fehlermeldung ist tatsächlich korrekt. Die Version der Mod, die derzeit auf Spine angeboten wird, ist sehr fragwürdig zusammen gestellt; mit vielen redundanten und unnötigen Dateien, Teilen eines veralteten SystemPacks und - warum auch immer - unvollständigen Teilen vom alten Ninja. Aus diesem Grund bricht Ninja korrekterweise das Spiel mit der Fehlermeldung ab.

Ich habe Bonne auf die veraltete Version der Mod aufmerksam gemacht. Er schaut sich nach der neueren Version der Mod um und wird sie wahrscheinlich in Spine aktualisieren.

Gothaholic
04.01.2022, 10:35
mal eine Verständnisfrage:

ich habe gerade gesehen dass in der ini der Atariar-Mod die Zeile "IncompatibleNinjaPatches=BetterTorches" enthalten ist. ich habe den Patch installiert und auf dieser Installation auch noch mehrere andere Mods die ich mehr oder weniger regelmäßig spiele. sollte ich den Patch beim Spielen von Atariar nun besser entfernen (was lästig wäre) oder wird er automatisch von der Atariar nicht geladen, funktioniert aber bei den andern Mods wie gewohnt?

Kirides
04.01.2022, 11:35
mal eine Verständnisfrage:

ich habe gerade gesehen dass in der ini der Atariar-Mod die Zeile "IncompatibleNinjaPatches=BetterTorches" enthalten ist. ich habe den Patch installiert und auf dieser Installation auch noch mehrere andere Mods die ich mehr oder weniger regelmäßig spiele. sollte ich den Patch beim Spielen von Atariar nun besser entfernen (was lästig wäre) oder wird er automatisch von der Atariar nicht geladen, funktioniert aber bei den andern Mods wie gewohnt?

Tl;dr : Alles sauber, kannst weitermachen. Der Patch wird in der Mod einfach nicht geladen, bei anderen Mods je nach Beschreibung aber weiterhin.

in der Mod.Ini "hat man nichts zu suchen" als Spieler, dort stehen alle Mod-relevanten Einstellungen.
IncompatibleNinjaPatches wird ebenso nur Mod-bezogen ausgewertet und sorgt dafür das die Patches die genau so heißen "BetterTorches.vdf" nicht geladen werden wenn sie vorhanden sind.

Gothaholic
04.01.2022, 12:30
danke für die flotte Antwort!



in der Mod.Ini "hat man nichts zu suchen" als Spieler, dort stehen alle Mod-relevanten Einstellungen.


schon klar, ich bin auch mehr oder weniger zufällig auf der Suche nach was anderem über den Eintrag gestolpert. einen Eintrag verändere ich aber schon in einer Mod.ini wenn ich ihn dort finde: "PicklockScramble", ich hasse Zufallsschlösser. :D

Kirides
04.01.2022, 15:38
...einen Eintrag verändere ich aber schon in einer Mod.ini wenn ich ihn dort finde: "PicklockScramble", ich hasse Zufallsschlösser. :D

Also sollen Modder in zukunft, wie bei The Chronicles of Myrtana: Archolos, fest im Code hinterlegen das die Schlösser immer andere Kombinationen haben? :D

Gothaholic
04.01.2022, 16:29
Also sollen Modder in zukunft, wie bei The Chronicles of Myrtana: Archolos, fest im Code hinterlegen das die Schlösser immer andere Kombinationen haben? :D

hängt halt davon ab wie sehr sie den Spieler an der Leine führen möchten...

mud-freak
30.03.2022, 22:06
Mit der Betaversion des Steam Workshops für Gothic 1 und 2, habe ich dort auch Ninja bereit gestellt.

Da ich nicht weiß ob (oder wie), man Workshop-Items Spiele-übergreifend hochlädt, gibt es zwei identische Items für jeweils Gothic 1 und Gothic 2.

Ninja im Steam Workshop Gothic 1 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786936496)
Ninja im Steam Workshop Gothic 2 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786910489)

Wenn jemand seinen Patch im Workshop bereitstellen will und dafür Ninja erforderlich ist, kann dieses ganz einfach in Steam als Voraussetzung markieren. Mit einem Klick auf das Bild gelangt man zu der Anleitung auf Steam.

https://steamuserimages-a.akamaihd.net/ugc/1820024071282234708/CD7B395F0BF844BE64103BC123C22B63EE135191/ (https://steamcommunity.com/sharedfiles/filedetails/?id=2779846714#5269601)

KnebelDE
14.04.2022, 15:09
Hallöchen!

Ich hab das Problem, dass Ninja bei mir dazu führt, dass das Spiel mit Violation Access beim Starten abschmiert.
Ich habe schon alles Mögliche probiert, neuinstallation etc. aber nichts hat geholfen.

Hat hier jemand eine Idee?
Ich hab die Fehlermeldung angehängt.

Vielen Dank vorab!

Kirides
14.04.2022, 15:34
Hallöchen!

Ich hab das Problem, dass Ninja bei mir dazu führt, dass das Spiel mit Violation Access beim Starten abschmiert.
Ich habe schon alles Mögliche probiert, neuinstallation etc. aber nichts hat geholfen.

Hat hier jemand eine Idee?
Ich hab die Fehlermeldung angehängt.

Vielen Dank vorab!

Welche Union Version, Ninja version, Patches und Plugins verwendest du?
Hast du den zParserExtender schon mal aktualisiert (muss man das überhaupt noch machen? Ich meine irgendwann musste man das mal händisch machen)

KnebelDE
14.04.2022, 18:00
Welche Union Version, Ninja version, Patches und Plugins verwendest du?
Hast du den zParserExtender schon mal aktualisiert (muss man das überhaupt noch machen? Ich meine irgendwann musste man das mal händisch machen)

Ich hab das ganz normal alles über Spine.
Patches / Plugins gibt es keine. Es wurde auf einer frischen Gothic 2 Installation ohne zusätzliche Mods getestet.

Barbrady
14.04.2022, 18:18
Ich fass es nicht. Es funktioniert tatsächlich. §ice
Ich habe es die ganze Zeit vermutet, aber kam nicht auf den Trichter, den Haken zu deaktivieren. Wie kann man nur so blöd sein? §pl§hehe
Vielen, vielen Dank

Hi ich kann euch beiden noch nicht ganz folgen.
Geht es darum das Steam Overlay zu deaktivieren? Da habe ich gemacht aber Ninja will noch immer nicht funktionieren. :(

KnebelDE
14.04.2022, 23:24
Ich würde mich freuen falls noch irgendwer eine Idee hat, warum Ninja egal in welcher Konfiguration, bei mir direkt zum Absturz führt.
Selbst bei einer cleanen G2 Installation ohne irgendwelche extra Mods. Liegts an Windows 11? Mag er den 12900K vielleicht nicht? Muss ja irgend sowas sein in dieser Richtung würde ich fast denken.
Alles andere erdenkliche hab ich schon ausprobiert & getestet.

N1kX
15.04.2022, 03:20
Do you have administrator rights? The game (Spine) is not install Program Files? The error indicates that the process of reading variables from files cannot begin

mud-freak
15.04.2022, 06:41
Neben den bereits gestellten zwei Fragen nach (1) administrativen Rechten und einer (2) Installation im Programme-Verzeichnis, hier ein Schwung an weiterer möglicher Ursachen, die du durchgehen kannst.

(3) Du kannst das ganze mal ohne Union probieren. Da im Stacktrace der Access Violation Union erwähnt wird, würde ich als erstes einmal vorschlagen es ohne Union zu probieren.

(4) Falls das nicht so einfach ist (schließlich musst du dafür Union deinstallieren), lade am besten Mal die Paths.d Datei hoch. Union ändert, aus unersichtlichen Gründen, die Paths.d im System-Verzeichnis. Der Fehler könnte damit zusammenhängen.

(5) Falls du Gothic zufällig über Steam oder Spine spielst, kannst du dort einmal die Integrität der Dateien prüfen um mögliche kaputte Dateien zu reparieren.

(6) Auch wenn der Fehler nicht den typischen Symptomen entspricht, überprüfe ob die Windows Datenausführung (DEP) entweder komplett oder zumindest für die Gothic Exe-Dateien deaktiviert ist. Eine schnelle Internetsuche zeigt wie das geht. Ich glaube aber wie gesagt nicht daran, dass es hier daran liegt.

(7) Generell wäre es gut zu wissen, ob Gothic über Steam, Spine oder beidem installiert ist.

mud-freak
15.04.2022, 06:55
Hi ich kann euch beiden noch nicht ganz folgen.
Geht es darum das Steam Overlay zu deaktivieren? Da habe ich gemacht aber Ninja will noch immer nicht funktionieren. :(

Willkommen im Forum!

Zu erst einmal ist festzustellen, ob dieser Lösungsweg für deinen Fall zutrifft. Hier geht es darum, dass Gothic durch Steam installiert ist und über Spine, und ausschließlich von dort mit Mods/Tools ausgestattet, gestartet wird. Wenn das bei dir auch der Fall ist und auch die Fehlermeldungen/Verhalten übereinstimmen, ist der Lösungsweg folgender.

In Spine gibt es eine Haken in der Einstellung zum Gothic-Pfad, ob Gothic mit Steam gestartet werden soll. Bonne6, der Entwickler von Spine, sagt, dass diese Einstellung momentan leider nicht immer verlässlich funktioniert da Steam etwas schwer zu bändigen lässt. Der Lösungsansatz hier war also, diesen Haken zu entfernen.

Wenn deine Gothic-Installation anders aussieht, schildere bitte genau wie Gothic und Ninja installiert sind. Die Lösung könnte dann anders aussehen.

KnebelDE
15.04.2022, 08:39
Neben den bereits gestellten zwei Fragen nach (1) administrativen Rechten und einer (2) Installation im Programme-Verzeichnis, hier ein Schwung an weiterer möglicher Ursachen, die du durchgehen kannst.
-> Mit Adminrechten startet es erst garnicht. Das Verzeichnis ist nicht in C bzw. Program Files sondern auf einer anderen Platte im Steam Ordner.

(3) Du kannst das ganze mal ohne Union probieren. Da im Stacktrace der Access Violation Union erwähnt wird, würde ich als erstes einmal vorschlagen es ohne Union zu probieren.
Ohne Union kommt der selbe Fehler.

(4) Falls das nicht so einfach ist (schließlich musst du dafür Union deinstallieren), lade am besten Mal die Paths.d Datei hoch. Union ändert, aus unersichtlichen Gründen, die Paths.d im System-Verzeichnis. Der Fehler könnte damit zusammenhängen.
Das check ich nicht so richtig sorry^^ Kannst du das bitte genauer erklären oder ist das nicht nötig weil es auch ohne Union das gleiche Ergebnis ist?

(5) Falls du Gothic zufällig über Steam oder Spine spielst, kannst du dort einmal die Integrität der Dateien prüfen um mögliche kaputte Dateien zu reparieren.
Ich spiele direkt über Spine

(6) Auch wenn der Fehler nicht den typischen Symptomen entspricht, überprüfe ob die Windows Datenausführung (DEP) entweder komplett oder zumindest für die Gothic Exe-Dateien deaktiviert ist. Eine schnelle Internetsuche zeigt wie das geht. Ich glaube aber wie gesagt nicht daran, dass es hier daran liegt.
Die ist bei mir generell deaktiviert

(7) Generell wäre es gut zu wissen, ob Gothic über Steam, Spine oder beidem installiert ist.
Nur die Steam Version

mud-freak
15.04.2022, 09:08
Mit Adminrechten startet es erst garnicht.Was genau ist es? Spine?



Ohne Union kommt der selbe Fehler.Das kann eigentlich nicht sein, da im Stacktrace explizit Union erwähnt wird. Zwar ähneln sich die Fehlermeldungen einer Access Violation, allerdings können sich die Details stark unterscheiden. Wenn du also ohne Union auch eine Access Violation Meldung erhältst, teile doch bitte auch dort einen Screenshot.



Das check ich nicht so richtig sorry^^ Kannst du das bitte genauer erklären oder ist das nicht nötig weil es auch ohne Union das gleiche Ergebnis ist?Wenn du zum Gothic-Verzeichnis navigierst, d.h. da wo Gothic installiert ist, findest du dort einen Ordner namens System vor. Darin ist eine Datei namens “Paths.d” enthalten. Diese kannst du (bspw. als ZIP-Archiv) irgendwo hochladen und den Link zum Download hier teilen.



Ich spiele direkt über SpineHast du die Integrität dort dann überprüfen lassen?



Nur die Steam VersionD.h. über Steam installiert und über Spine verwaltet und gestartet? Du erwähnst sowohl Steam als auch Spine, deshalb frage ich.


Wen das korrekt ist mit Steam und Spine, kannst du zwei Schritte ausprobieren.

1. Probiere mal den Haken bei “Mit Steam starten” (oder so ähnlich) in den Spine-Einstellungen, wie im Beitrag über deinem beschrieben, zu entfernen.
2. Zusätzlich kannst du in Steam bei den Einstellungen von Gothic unter “Beta”. “Keine” bzw. “None” auswählen. Zur Sicherheit anschließend in Steam die Integrität der Dateien überprüfen lassen. Danach in Spine die Integrität der Dateien überprüfen lassen.

Peter44
30.06.2022, 12:12
It is not possible to create a patch to the gothic 2 main game (1.32) with ninja?

Kirides
30.06.2022, 13:11
It is not possible to create a patch to the gothic 2 main game (1.32) with ninja?

No.

What stops you from playing NotR with the classic mod?

RagnarRPG
10.12.2022, 02:58
Einen guten Abend habe Folgendes Problem mit Ninja und ein anderes Problem wenn ich paar Mods aktiviert habe..
Habe mal viel Probiert und vieles getestet ohne Erfolg...
Hier mein Thema mit allen bisherigen Angaben...
https://forum.worldofplayers.de/forum/threads/1603551-Soundbugs-in-Gothic-2-DNdR
Ich komme leider nicht weiter...

Zocker01
01.01.2023, 21:32
Ich wollte mal wieder Vorschläge für weitere Patches einwerfen:
[...]
- Sneakkill/Schleichangriff-Mechanik
- Verbündeten und beschworenen Kreaturen via Tastendruck befehlen, einen anvisierten NPC anzugreifen

Bei der Gelegenheit möchte ich an ältere Ideen erinnern:


----------------------------------------------
- [...] Manaregeneration
--> Gibt es schon! Sowohl als Ninja-Patch, als auch als Unions-Plugin in verschiedenen Variationen. Ich selbst nutze die beiden Ninja-Patches von Kirides, da diese zusätzliche Konfigurationsmöglichkeiten bieten (prozentuale Verringerung der Regeneration von HP/Mana im Kampf).
- [...] permanente Boni nicht in die LP-Kosten einrechnen
- [...] Respawn von Gegnern +/oder Pflanzen
- [...] Schwierigkeitsgrad verändern
- [...] Seitwärtsrollen für Akrobaten
--> Gibt es schon! Unions-Plugin Anim_AcrobaticRollAnims
- Begleitern Waffen geben
--> Gibt es schon! Unions-Plugin zSharedItems (via Ressourcenmanager herunterladbar)
- Sprinten
--> Gibt es schon! Sowohl als Ninja-Patches, als auch als Unions-Plugin.
- Objekte im Laufen einsammeln können
--> Gibt es schon! Sowohl als Ninja-Patch, als auch als Unions-Plugin. (Quickloot)
- Klaue Beliars für Fernkämpfer nutzbar machen



- [...] prozentuale Heilung durch Lebensmittel
- [...] verbessertes Brat/Koch System
- [...] Wartesystem aus Bethesda-Spielen
- [...] Monstercounter
--> Gibt es schon! Ist Teil des Union-Plugins Union_Ext_Stat. Ich persönlich nutze es nicht, da mich die angezeigten Infos nicht interessieren und den Statusbildschirm tlw. verdecken (Auflösungsbedingt)
- [...] Learning per doing-system für Kampfskills
- [...] Auto speicher Funktion
--> Gibt es schon! Sowohl als Ninja-Patch, als auch als Unions-Plugin.
- [...] Erfahrungspunkte Balken
--> Gibt es schon! Union_XP_Bar
- Zudem fände ich es schön wenn man sowie in "The Returning 2" die neuen Idle Animationen dazu bekommt, für den Helden und andere NPCs evtl. auch.
--> Gibt es schon! Unions-Plugin RET2_Anims. Nutze ich persönlich auch nicht.

Habe soeben im "Wunsch-Plugin-Thread" für Union diese ein paar Jahre alten Vorschläge gepostet und ergänzt.
https://worldofplayers.ru/threads/42298/post-1167288

Habe in den Zitaten oben eingefügt, was es bereits gibt.



(https://worldofplayers.ru/threads/42298/post-1167288)

JimmDon
06.01.2023, 23:18
hi zusammen, sobald ich G2 (und auch Odyssee) mit Ninja (via Spine + Steam) starte, kommt eine Reihe an Fehlermeldungen:

[
======================================= UNHANDLED EXCEPTION OCCURED ======================================================
======================================= CRASH INFOS: =====================================================================
Startup Options:-game:GothicGame.ini
=============================================== CALLSTACK : ==============================================================
0023:0078F660 (0x0135F47C 0xFFFFFFFF 0x09EE6540 0x0135FC90) Gothic2.exe, zCParser::ParseFile, P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 780
0023:0046422E (0x0082E6F0 0x0A3D5140 0x09EE6721 0x00000014) Gothic2.exe, zCOption::Init()+1550 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zOption.cpp, line 793+48 byte(s)
0023:00470278 (0x00000000 0x0135FC90 0x0135FC90 0x00000000) Gothic2.exe, zInitOptions()+136 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zzBert.cpp, line 83
0023:00558C76 (0x0135FC98 0x00000000 0x0135FC90 0x0082E6F0) Gothic2.exe, zCEngine::Init()+150 byte(s), P:\dev\g2addon\release\ZenGin\_dieter\zEngine.cpp, line 116
0023:00426868 (0x00400000 0x013C27AE 0x0135FEB4 0x0035A000) Gothic2.exe, CGameManager::GameInit()+152 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 956
0023:00424DEE (0x008D422C 0x0082F0EC 0x00000001 0x001807BC) Gothic2.exe, CGameManager::Init()+382 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 493
0023:00781882 (0x0000002C 0x000E2FA6 0x0000001E 0x00000000) Gothic2.exe, MainProg()+66 byte(s), P:\dev\g2addon\release\Gothic\_ulf\Phoenix.cpp, line 110
0023:00503270 (0x00400000 0x00000000 0x013C27AE 0x0000000A) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169
0023:00502DFD (0x0135FEB8 0x00000000 0x013C27AE 0x0000000A) Gothic2.exe, WinMain()+141 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1054+17 byte(s)
0023:007D43F8 (0x00000004 0x0000FFFF 0x000000B8 0x00000000) Gothic2.exe, WinMainCRTStartup()+224 byte(s)


ohne Ninja gibt es keine Probleme.

habt ihr eine Idee?

Update: auch mit GOG Version klappts leider nicht

Gruß

Captain-Fruchtig
12.01.2023, 15:04
Meddl, bei mir taucht der selbe Fehler auf aber nur wenn man mit Ninja startet. (über Spine)

======================================= UNHANDLED EXCEPTION OCCURED ======================================================
======================================= CRASH INFOS: =====================================================================
Startup Options:-game:ODYSSEE.ini
=============================================== CALLSTACK : ==============================================================
0023:0078F660 (0x0135F2F8 0xFFFFFFFF 0x09B0ECA8 0x0135FB0C) Gothic2.exe, zCParser::ParseFile, P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 780
0023:0046422E (0x0082E6F0 0x085B4DF8 0x09B0ECD9 0x00000011) Gothic2.exe, zCOption::Init()+1550 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zOption.cpp, line 793+48 byte(s)
0023:00470278 (0x00000000 0x0135FB0C 0x0135FB0C 0x00000000) Gothic2.exe, zInitOptions()+136 byte(s), P:\dev\g2addon\release\ZenGin\_bert\zzBert.cpp, line 83
0023:00558C76 (0x0135FB14 0x00000000 0x0135FB0C 0x0082E6F0) Gothic2.exe, zCEngine::Init()+150 byte(s), P:\dev\g2addon\release\ZenGin\_dieter\zEngine.cpp, line 116
0023:00426868 (0x00400000 0x014E384A 0x0135FD30 0x00233000) Gothic2.exe, CGameManager::GameInit()+152 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 956
0023:00424DEE (0x008D422C 0x0082F0EC 0x00000001 0x001407F4) Gothic2.exe, CGameManager::Init()+382 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 493
0023:00781882 (0x0000002C 0x00000000 0x00000000 0x00000000) Gothic2.exe, MainProg()+66 byte(s), P:\dev\g2addon\release\Gothic\_ulf\Phoenix.cpp, line 110
0023:00503270 (0x00400000 0x00000000 0x014E384A 0x0000000A) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169
0023:00502DFD (0x0135FD34 0x00000000 0x014E384A 0x0000000A) Gothic2.exe, WinMain()+141 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1054+17 byte(s)
0023:71C161C2 (0x00000004 0x0000FFFF 0x000000B8 0x00000000) DDRAW.dll, RegisterSpecialCase()+178 byte(s)

mud-freak
13.01.2023, 16:26
Hallo, könnt ihr beiden eure Installationsumgebung etwas mehr erläutern. Ihr habt beide über Steam installiert und nutzt Spine zum Spielen, richtig? Welcher Branch (Spielversion) ist in Steam in den Spieleinstellungen ausgewählt? Habt ihr schon einen Integrationscheck von Spine ausprobiert? Wurde alles über Spine installiert? Was wurde alles dazu installiert?
Beachtet bitte, dass je vollständiger und detaillierter ihr diese Fragen erläutert, desto leichter fällt es, der Ursache auf den Grund zu gehen - ohne dass etliche Rückfragen nötig sind, wie das leider häufig der Fall ist.

DoubleDee
22.03.2023, 14:42
Ich würde mich freuen falls noch irgendwer eine Idee hat, warum Ninja egal in welcher Konfiguration, bei mir direkt zum Absturz führt.
Selbst bei einer cleanen G2 Installation ohne irgendwelche extra Mods. Liegts an Windows 11? Mag er den 12900K vielleicht nicht? Muss ja irgend sowas sein in dieser Richtung würde ich fast denken.
Alles andere erdenkliche hab ich schon ausprobiert & getestet.

Hey Ich hab genau das gleiche Problem ! Hast du bereits eine Lösung ? Ich hab G2 bei steam instaliert dann Spine , alles tacko.
Sobald Ich Ninja aktiviere (Haken rein) gehts nicht und ich bekomm AV!

würd mich freuen wenns bei dir geklappt hat ^^

DoubleDee
22.03.2023, 14:56
Hallo liebes World of Gothic Forum!

Ich habe Gothic II: Gold Classic über Steam auf Festplatte D:\SteamLibrary\steamapps\common\Gothic II installiert.
Dann Spine geladen und ausgeführt.
Getestet, läuft. (G2 dNdR 2.6.1-Systempack aktiviert)

Dann habe Ich diese Mods geladen:
-D3D11 Renderer Clockwork Edition
-TexturePack von Artemiano

Getestet, läuft.

Dann habe noch geladen: (Ninja ist ja installiert worden beim start)

-Quickloot
-Dauerhaftes Rennen
-Patch Menu

Jetzt geht goarnix mehr! §cry

Sobald Ich NUR den Haken bei NINJA rein mache, (nicht mal bei den anderen) versucht das Spiel zu starten, und Ich bekomme sofort die Meldung Access Violation! Wenn alle aktiviert sind demnach auch nicht.
Ohne Ninja gehts sofort wieder. Ich habe dann versucht anstatt Systempack, Union zu verwenden, geht mit Ninja auch nicht. ohne Ninja, kein problem.

Ninja scheint mir das Problem zu sein, aber Ich habe es auch schon manuell versucht, ohne Spine, ohne Erfolg. Ich fühle mich mit Spine ganz wohl weil Ich kein Pc-Spezi bin.
Beim Start öffnet sich auch manchmal ein kleines schwarzes Fenster mit dem Pfad der gothic.exe in der oberen leiste, und dann direkt A.V.

Ich habe auch in den erweiterten Systemsteuerungen die Datenausführungsverhinderung für die 3 Dateien im system Ordner von G2 deaktivert.
Ohne Erfolg.

Ich würde einfach gern mal wieder G2 spielen und endlich mal schneller laufen und looten können mehr nicht ^^
Ich versuche ein Bild anzuhängen...
5253252533

Einen Testlauf der Dateien von Steam und Spine hab Ich durchlaufen lassen.
i.O.

Betas und Steam Overlay is deaktiviert bei Steam Einstellungen.

Als Admin auch ausgeführt ohne Erfolg.

Lg DD

neocromicon
24.03.2023, 12:10
DDRAW.DLL ist eindeutig nen Fehler vom Renderer und hat wahrscheinlich nix mit Ninja zutun. Geht es ohne Renderer?

DoubleDee
25.03.2023, 10:38
DDRAW.DLL ist eindeutig nen Fehler vom Renderer und hat wahrscheinlich nix mit Ninja zutun. Geht es ohne Renderer?

Ne leider gehts auch dann nicht. Aber nur mit Renderer läufts halt Problemlos... Es ist als wolle das Spiel das Ich Vanilla spiele :D

Siehe AV bei diesen Einstellungen: (mit Union geht auch nicht)

52550
52549

pawbuj
04.04.2023, 20:03
any possibility to update Ninja ?

Playing in mod Othello very often I've got comunnicate something like:"This should never happened pls contact to Lehona".

neocromicon
04.04.2023, 22:53
any possibility to update Ninja ?

Playing in mod Othello very often I've got comunnicate something like:"This should never happened pls contact to Lehona".

Othello 2.0 Original or Buddygoths Othello?

mud-freak
05.04.2023, 00:20
any possibility to update Ninja ?

Playing in mod Othello very often I've got comunnicate something like:"This should never happened pls contact to Lehona".

Yes, this is fixed internally, but I haven’t released a new version yet. It concerns Gothic 1 only. I will release the fix in a few weeks.

pawbuj
05.04.2023, 10:47
Yes, this is fixed internally, but I haven’t released a new version yet. It concerns Gothic 1 only. I will release the fix in a few weeks.
Szaap u're great man !



Othello 2.0 Original or Buddygoths Othello?

Othello 2.0.17 PL

neocromicon
05.04.2023, 11:16
Othello 2.0 is not compatible with Ninja.
The Author have block this and plugins too

pawbuj
05.04.2023, 11:18
Othello 2.0 is not compatible with Ninja.
The Author have block this and plugins too
I have got antyblocker for it for own purposes.

reveroman
29.07.2023, 10:56
Das mit dem "Spruchrolle: ..." ist ein bisschen blöd, es *kann* schließlich mods geben die sich par-tu nicht an Namensgebungen halten ITSC_XXX, Item Kategorie Runen, etc. :/

Andernfalls: FocusItemDescriptions.zip (https://upload.worldofplayers.de/files12/FocusItemDescriptions.zip)

mit diesem Patch wird von dem aktuell fokussiertem Item die "description" anstelle des "name" dargestellt.
Die "description" ist hierbei meißt der detaillierte Name eines Items, welcher im Inventar als Überschrift dient.

z.B. Im Falle einer Spruchrolle "Feuerpfeil" ist der "name" -> "Spruchrolle" und die "description" -> "Feuerpfeil"
Für einen Wein wäre name -> "Wein" und description -> "Wein"

Hallo. Ich habe FocusItemDescriptions.vdf auf dem Return 2.0 Mod installiert und es funktioniert nicht. Könnten Sie mich bitte beraten, wie ich es für diese Mod anpassen kann, wenn es nicht zu schwierig ist. Ich habe nicht viel Ahnung vom Programmieren.
Ich benutze Ninja2.7.12.
Und gleichzeitig kann ich Sie oder jemand anderen, der sich mit der Erstellung von Plugins auskennt, bitten, einen Mod zu erstellen, der neue Gegenstände im Inventar markiert. Wie zMarkItems für Union.
Vielen Dank im Voraus.
(geschrieben mit der Hilfe des Übersetzers DeepL)


Übersetzt mit www.DeepL.com/Translator (kostenlose Version)

kenzo202
17.12.2023, 14:35
Hallo liebes World of Gothic Forum!

Ich habe Gothic II: Gold Classic über Steam auf Festplatte D:\SteamLibrary\steamapps\common\Gothic II installiert.
Dann Spine geladen und ausgeführt.
Getestet, läuft. (G2 dNdR 2.6.1-Systempack aktiviert)

Dann habe Ich diese Mods geladen:
-D3D11 Renderer Clockwork Edition
-TexturePack von Artemiano

Getestet, läuft.

Dann habe noch geladen: (Ninja ist ja installiert worden beim start)

-Quickloot
-Dauerhaftes Rennen
-Patch Menu

Jetzt geht goarnix mehr! §cry

Sobald Ich NUR den Haken bei NINJA rein mache, (nicht mal bei den anderen) versucht das Spiel zu starten, und Ich bekomme sofort die Meldung Access Violation! Wenn alle aktiviert sind demnach auch nicht.
Ohne Ninja gehts sofort wieder. Ich habe dann versucht anstatt Systempack, Union zu verwenden, geht mit Ninja auch nicht. ohne Ninja, kein problem.

Ninja scheint mir das Problem zu sein, aber Ich habe es auch schon manuell versucht, ohne Spine, ohne Erfolg. Ich fühle mich mit Spine ganz wohl weil Ich kein Pc-Spezi bin.
Beim Start öffnet sich auch manchmal ein kleines schwarzes Fenster mit dem Pfad der gothic.exe in der oberen leiste, und dann direkt A.V.

Ich habe auch in den erweiterten Systemsteuerungen die Datenausführungsverhinderung für die 3 Dateien im system Ordner von G2 deaktivert.
Ohne Erfolg.

Ich würde einfach gern mal wieder G2 spielen und endlich mal schneller laufen und looten können mehr nicht ^^
Ich versuche ein Bild anzuhängen...
5253252533

Einen Testlauf der Dateien von Steam und Spine hab Ich durchlaufen lassen.
i.O.

Betas und Steam Overlay is deaktiviert bei Steam Einstellungen.

Als Admin auch ausgeführt ohne Erfolg.

Lg DD

Moin zusammen,
ich habe mich nach vielem Lesen und häufigem nachschlagen in diesem herausragenden Forum dann auch mal angemeldet.

Ich hatte, nach mehreren Tagen des problemlosen Spielens mit Ninja und Quickloot ebenfalls plötzlich ohne erkennbaren Grund o.g. Problem, dass bei Programmstart direkt eine AV aufgetreten ist. Sobald ich Ninja in Spine rausgenommen habe, funktionierte es problemlos. Ich konnte ebenfalls mit dem Renderer spielen, obwohl auch bei mir ein Fehler bei der DDRAW.DLL angezeigt wurde.


Mein aktuell gut laufender Workaround unter Nutzung von Spine:

- Ninja nicht mehr verwenden
- quickloot nicht mehr verwenden
- systempack nicht mehr verwenden

statt dessen

- union (tool)
- quickloot,quicksafe und mehr

[ bei Bedarf gibts unter union noch ein paar mehr Mods: union thief helper (ähnlich Picklocker), Union simple Regen (Mana/Liferegeneration)]

Damit sind die von mir gewünschten funktionen immerhin wieder vorhanden, wenn auch viele Ninjamods damit wegfallen. Aber für mehr als diesen Workaround reichen meine IT-Skills auch leider nicht aus. Hoffe ich konnte damit helfen!

Nobbi Habogs
19.12.2023, 20:46
Ich würde kein Spine benutzen, es ist erstens für andere nicht nachvollziehbar welche Modifikationen genau verwendet werden und es ist möglich inkompatible Erweiterungen (Feature-Patches) zu installieren, die eigentlich nur unter Union oder Ninja laufen.

Das klingt alles irgendwie ganz toll, aber ich versteh bis heute nicht, warum man nicht einfach für jede Mod die man spielt eine eigene Installation anlegt. Das ist viel simpler und weniger fehleranfällig. Zudem Gothic 1/2 alles andere als groß sind. Wenn man einmal nen Problem mit Spine hat, ist praktisch alles im Arsch. Bei Problem mit einer einzelnen Installation, beschränkt sich das auch nur auf diese.
Und man spielt ja in der Regel auch nicht 3 Mods parallel, deshalb weiß ich eh nicht was der benefit davon sein soll so viele Mods parallel starten zu können. Und technische Probleme gibts auch hin und wieder, beim Advanced Inventory geht unter Spine z.B. der Mauszeiger bei mir nicht, trotz GRawInput (erzeugt Fehlermeldung)... Naja, hatte es wegen Archolos noch mal testweise drauf, aber das ist jetzt endgültig von meinem System verbannt, absolut unnütz in meinen Augen.

Tharr
10.03.2024, 12:20
I have got antyblocker for it for own purposes. Can you please provide me with antiblocker link? §wink

DoubleDee
30.04.2024, 09:42
Moin zusammen,
ich habe mich nach vielem Lesen und häufigem nachschlagen in diesem herausragenden Forum dann auch mal angemeldet.

Ich hatte, nach mehreren Tagen des problemlosen Spielens mit Ninja und Quickloot ebenfalls plötzlich ohne erkennbaren Grund o.g. Problem, dass bei Programmstart direkt eine AV aufgetreten ist. Sobald ich Ninja in Spine rausgenommen habe, funktionierte es problemlos. Ich konnte ebenfalls mit dem Renderer spielen, obwohl auch bei mir ein Fehler bei der DDRAW.DLL angezeigt wurde.


Mein aktuell gut laufender Workaround unter Nutzung von Spine:

- Ninja nicht mehr verwenden
- quickloot nicht mehr verwenden
- systempack nicht mehr verwenden

statt dessen

- union (tool)
- quickloot,quicksafe und mehr

[ bei Bedarf gibts unter union noch ein paar mehr Mods: union thief helper (ähnlich Picklocker), Union simple Regen (Mana/Liferegeneration)]

Damit sind die von mir gewünschten funktionen immerhin wieder vorhanden, wenn auch viele Ninjamods damit wegfallen. Aber für mehr als diesen Workaround reichen meine IT-Skills auch leider nicht aus. Hoffe ich konnte damit helfen!

Hi !

Danke Dir mein lieber so funktionierts ! Noch gar nicht drüber nach gedacht...

mud-freak
03.06.2024, 20:22
Es gibt eine neue Version von Ninja.

Im Mittelpunk steht die Unterstützung von Gothic 2 (Classic). Speziell wird die Reportversion 1.30fix (https://www.worldofgothic.de/dl/download_278.htm) benötigt. Ebenso wird nun Gothic Sequel (1.12f) unterstützt.[1] Bisherige Patches sind kompatibel in allen Bestandteilen außer - wie bereits zuvor - den versions-spezifischen Content-Skripten.[2] Die Dokumentation (https://github.com/szapp/Ninja/wiki) für Entwickler ist dahingehend aktualisiert.
Außerdem werden die neusten Änderungen von Ikarus (https://github.com/Lehona/Ikarus/compare/bae41b582b568780193691f57564add6ba5b18ee...8b6d8c959b09606a343de174e6ccdd4bf8c7e cd0) und die neusten Änderungen von LeGo (https://github.com/Lehona/LeGo/compare/2c7aa0eab917bdf1304fceeee0d87bdefa5e847b...785efd800b2ccae81b25d1c792fb04bbc28ea 969) unterstützt. Unter Anderem ist zusätzlich PermMem in Patches performanter.

[1] Ich distanziere mich von der Verbreitung und Nutzung von Gothic Sequel und dessen Inhalten und möchte dazu nicht auffordern. Ninja enthält keinerlei Inhalte des Gothic Sequel. Die Portierung fand für mich zu Forschungszwecken und zur Vollständigkeit aus Software-Sicht statt.

[2] Praktisch bedeutet das, dass speziell Skript-Patches aktualisiert werden müssen, um auch mit Gothic 2 (Classic) und Gothic Sequel zu laufen. Unterstützung von Gothic 1 und Gothic 2 dNdR ist aber unverändert gewährleistet und bedarf keiner Anpassung. Zur Info: In den kommenden Tagen werde ich neue Versionen von einigen Patches veröffentlichen.


Aktueller Download über Spine (https://clockwork-origins.com/spine/), im Steam Workshop von Gothic 1 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786936496) und Gothic 2 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786910489) oder auf GitHub (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v2813-jun-3-2024).


Ich würde mich freuen, wenn ein Moderator auch den Download in der Downloadsektion von World of Gothic aktualisiert. EDIT siehe unten


Des Weiteren stelle ich zwei Tools zur Verfügung, die ich für die Entwicklung und Pflege von Patches wärmstens empfehle.

Patch Validatator (https://github.com/marketplace/actions/vdf-patch-validator)


Patches zu erstellen, die hohe Kompatibilität gewährleisten, ist nicht einfach. In der Vergangenheit habe ich mir manchmal veröffentlichte Patches angeschaut und auf mögliche Probleme hingewiesen. Um die grundlegenden Probleme selbst zu identifizieren, habe ich eine GitHub Action geschrieben, die sich in GitHub Repositories einhängen lässt. Der Patch Validator (https://github.com/marketplace/actions/vdf-patch-validator) prüft bei jedem Git-Commit, ob der Patch gewisse Konventionen erfüllt und zeigt mögliche Kollisionen inkl. Datei- und Zeilenangaben auf. Folgende Dinge werden geprüft: Nameskonvention von globalen Daedalussymbolen (verhindert Kollisionen mit anderen Mods)
Namen von Ressourcen (Dateien im _work/Data Ordner) (verhindert das Überschreiben von Ressourcen in anderen Mods)
Referenzen zu möglicherweise nicht-existenten Daedalussymbolen (verhindert Unknown Identifier Parserfehler für Symbole die möglicherweise in unterliegenden Mods nicht existieren)
Überschreiben von kritischen DaedalussymbolenDie Prüfung von "möglicherweise nicht-existenten Daedalussymbolen" ist sehr streng, sodass z.B. sogar einige Daedalusklassen selbst definiert werden müssen (unter eigenem Namen). Schließlich kann es vorkommen, dass eine Mod bspw. die Menu-Klassen der Menüskripte umbenannt hat. Entsprechende Hinweise werden vom Patch Validator erklärt.

Beispiel Checkrun (https://github.com/szapp/Stamina/runs/24643421779)

Ich empfehle jedem Entwickler, diese GitHub Action auch zu Repositories von bestehenden Patches hinzuzufügen. Manche wiederkehrenden Fehlerberichte von Spielern können damit schon behoben werden.


Patch Template (https://github.com/szapp/patch-template)


Zur Initialisierung eines neuen Patches hatte ich ein Batchskript zur Verfügung gestellt. Stattdessen wurden meist bestehende Patches als Vorlage genommen und auch entsprechende Inkompatibilitäten, veraltete und ungenutzte Teile von Patches kopiert. Um dem entgegen zur wirken habe ich ein GitHub Template Repository erstellt. Template Repositories erlauben es, ein neues Repository mit gewisser Struktur von einer Schablone zu erstellen. Das Patch Template (https://github.com/szapp/patch-template) geht noch ein Stück weiter und initialisiert einen neuen Patch entsprechend von gewissen Anforderungen, die der Ersteller zu Beginn angibt. Außerdem enthält das resultierende Repository bereits einige Automatismen (Continuous Integration/Delivery). Darunter: Parsiphae (https://github.com/marketplace/actions/daedalus-parsiphae), eine GitHub Action basierend auf einem älteren Stand von Lehonas Parsiphae, die bei jedem Commit die Syntax der Skripte (wenn vorhanden) prüft
Patch Validator (https://github.com/marketplace/actions/vdf-patch-validator), die GitHub Action wie oben beschrieben, die bei jedem Commit die theoretische, grundlegende Kompatibilität des Patches prüft
VDFSBuilder (https://github.com/kirides/vdfsbuilder), eine GitHub Action von Kirides, die bei neuen Releases den Patch in ein finales VDF zusammensetzt und ggf. einer GitHub Release als Download anhängt - Vielen Dank für die Anpassungen in den letzten Wochen!Damit lässt sich ein Patch nicht nur einfacher pflegen, es erlaubt auch, dass Spieler direkt den Quellcode betrachten und auch GitHub Issues or Pullrequests eröffnen können.

Beispiel Repository initialisiert vom Patch Template (https://github.com/szapp/Stamina)

Auch wenn Entwickler ihre eigene Struktur gefunden haben, würde ich mich freuen, neue Patches in Zukunft ausgehend von dem Template auf GitHub zu erstellen. Denn so erkennen neue Entwickler direkt, dass es ein Template gibt und Patches werden "sauberer" und fehlerfreier erstellt.

mud-freak
04.06.2024, 11:01
Ein kleiner Hotfix zur vorherigen Version (siehe oben für die größeren Änderungen und Neuerungen). Durch ein Update der Build-Dependencies wurde Ninja nicht mehr richtig im Loader gelinkt. Das hatte nur Auswirkungen beim Spielen ohne SystemPack oder Union.

Aktueller Download über Spine (https://clockwork-origins.com/spine/), im Steam Workshop von Gothic 1 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786936496) und Gothic 2 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786910489) oder auf GitHub (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v2913-jun-4-2024).


Ich würde mich freuen, wenn ein Moderator auch den Download in der Downloadsektion von World of Gothic aktualisiert. EDIT siehe unten

uhrparis
04.06.2024, 16:32
Sind jetzt alle Mods die mit und auch ohne Ikarus und Lego erstellt worden sind, in diesem Patch kompatibel? Z.B: Die Mod Diebmod (Aus dem Leben eines Diebes)
stürzte immer noch ab, wenn Ninja-2.7.12 inkl. zb: ItemLocator.vdf und ItemMap.vdf installiert waren. Sind jetzt ja keine Plugins die in das Spiel konsequent eingreifen.

mud-freak
04.06.2024, 18:36
Sind jetzt alle Mods die mit und auch ohne Ikarus und Lego erstellt worden sind, in diesem Patch kompatibel? Z.B: Die Mod Diebmod (Aus dem Leben eines Diebes)
stürzte immer noch ab, wenn Ninja-2.7.12 inkl. zb: ItemLocator.vdf und ItemMap.vdf installiert waren. Sind jetzt ja keine Plugins die in das Spiel konsequent eingreifen.

Danke für die Nachfrage zu diesem Problem!

Konkret zur Frage: ja. Das ändert sich aber nicht durch dieses Update. Ninja selbst war schon immer mit allen Mods kompatibel.

Was allerdings Schwierigkeiten bereitet, und darauf willst du sicher hinaus, ist die Kompatibilität bei Verwendung von LeGo in einem Patch.
Ein paar Details wie es korrekt läuft:Da sich LeGo (zeitweise mehr, zeitweise weniger) noch in Entwicklung befindet kann es vorkommen, dass Mods mit einer anderen Version veröffentlicht wurden als später ein Skriptpatch. Mod und Patch setzen also gewisse Funktionalitäten von LeGo voraus, die sich ggf. gegenseitig ausschließen. Das ist erst einmal nicht das Problem von Ninja: Ninja ermöglicht modulare Patches bzgl. Output Units (Dialoge), Animationsdefinitionen, und Skripte. Die Umsetzung eines Patches, also die Nutzung von Ikarus oder LeGo, genauso wie die Zeitskripte oder ob der Held eine Glaze haben soll, hat mit Ninja also nichts zu tun. Obwohl das also gar nicht Sache von Ninja ist, was ein Patch denn nun genau anstellt, war die Inkompatibilität mit LeGo ein häufiges Problem von (speziell!) Skriptpatches. Deshalb habe ich versucht direkt durch Ninja kleine Unterschiede zwischen der LeGo-Version in einer Mod mit der LeGo-Version in einem Skriptpatch abzugleichen. Dank der guten Rückwärtskompatibilät von LeGo gelingt das ohne Probleme und jeder Patch der LeGo benötigt funktioniert mit jeder Mod die auch LeGo beinhaltet.Die Diebmod ist leider in einem Zeitraum erschienen in dem sich bei LeGo sehr viel getan hat. Die "LeGo" Skripte in der Mod unterscheiden sich grundlegend von LeGo und sind nicht mehr auf einen Nenner zu bringen. Ein Patch, der LeGo benutzt, verursacht Inkompatibilitäten. Die Diebmod ist die einzige Mod aus dem Zeitraum (die mir bekannt ist) und somit die einzige, bei der eine Inkompatibilität mit LeGo (nicht mit Ninja) besteht. Genau genommen ist diese Mod mit Ninja kompatibel, nur ist sie inkompatibel mit Skriptpatches, die LeGo benötigen. Der KeineUnterwasserEffekte-Patch z.B. ist kompatibel! Der Nutzen für eine Mod ist leider zu gering für mich, sich damit noch weiter auseinander zu setzen. Wie oben beschrieben geht Ninja schon die Extrameile, die gar nicht Teil von Ninjas Ziel ist. Die beste Möglichkeit das Problem zu lösen ist es, LeGo im Quellcode der Mod zu aktualisieren.

Zurück zu deiner Frage: An der Kombination von gewissen Skriptpatches und der Diebmod hat sich (und wird sich) von Seiten Ninjas nichts geändert. Trotzdem meine Rückfrage, da du die Diebmod nur als Beispiel aufführst: Meines Erachtens gibt es sonst keine Probleme. Gibt es neben der Diebmod und Archolos noch andere Mods bei der Inkompatibilitäten mit (Skript?)patches auftreten?

neocromicon
04.06.2024, 23:20
Erstmal danke das du jetzt echt noch ein Update rausgehauen hast :gratz

Aber hast du zufällig ein Schritt für Schritt Tutorial für das ganze GitHub zeugs, am besten für VSCode? Ich tue mir bis heute damit schwer ^^

mud-freak
05.06.2024, 06:04
Der Port zu den beiden weiteren Gothic-Versionen lag tatsächlich schon seit fast einem Jahr auf meinem Rechner. Es hat lang gedauert, die Zeit zu finden, das Update zu veröffentlichen. Schön zu hören, dass es anklang findet!

Ja, gern kann ich die Vorgehensweise mit GitHub etwas besser erklären; entweder hier im Forum oder an geeigneter Stelle auf GitHub oder in der Dokumentation von Ninja.

Kannst du etwas ausführen, welche Erklärungen genau zu einem besseren Verständnis betragen könnten? Ein zwingender Zusammenhang mit VSCode besteht z.B. hier nicht. Oder meinst du generell die Nutzung von Git, GitHub und co? Da wären bestehende Tutorials besser als ich das je könnte. Ich habe kein bestimmtes zur Hand, aber die gibt es wie Sand am Meer in Textform und auf Youtube.

mud-freak
05.06.2024, 14:06
Mit Hilfe von Devloun konnte ich ein potentielles Problem mit den letzten Neuerung feststellen. Das hängt mit PermMem-Handles in Patches zusammen. Ich werde versuchen, das möglichst schnell zu beheben. Da ich das aber ordentlich testen möchte und einen dritten "Hotfix" vermeiden will, kann es etwas dauern bis ich Ninja aktualisiere. Bis dahin kann es vorkommen, das Patches, die PermMem nutzen, das Laden von Speicherständen mit Ninja 2.8.13 und 2.9.13 verhindern.

mud-freak
05.06.2024, 20:11
Ein weiterer Hotfix zu den vorherigen Versionen (siehe oben für die größeren Änderungen und Neuerungen). Dieser Hotfix behebt einen Absturz, der durch fehlerhafte Initialisierung beim Spielladen in Verbindung mit PermMem-Handels auftreten konnte. Vielen Dank an Devloun für die Hilfe beim Eingrenzen des Fehlers.

Aktueller Download über Spine (https://clockwork-origins.com/spine/), im Steam Workshop von Gothic 1 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786936496) und Gothic 2 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786910489) oder auf GitHub (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v2914-jun-5-2024).


Ich hoffe wirklich, dass ich nicht noch etwas übersehen habe. Dieser Fix erschien mir aber kritisch genug, um schnell zu iterieren.


Ich würde mich freuen, wenn ein Moderator auch den Download in der Downloadsektion von World of Gothic aktualisiert.

Don-Esteban
05.06.2024, 20:53
Na das macht nicht "ein Moderator", sondern das mache ich. :)
Am Wochenende, wenn ich Serverzugriff habe.
Den Thread hab ich abonniert und werde somit über alle Neuigkeiten informiert.
Muss ich zur neuen Version noch alle Hotfixe dazu packen? (Hab aus Zeitmangel noch nicht auf github geschaut.)

Kirides
07.06.2024, 12:19
Es gibt eine neue Version von Ninja.

[...]


Danke für die ganze Arbeit!
Ninja ist ein wunderbares Tool für die Community.


Sektion CI/CD

Was mir aufgefallen war im "Stamina"-Repo, ist das es dort (noch) kein "Release" gibt.
GitHub schmeißt alle "Action"-Artefakte nach X-Tagen automatisch weg, glaub im Standard sind das 90 tage oder so.

In dem Template würde sich also ein Schnipsel anbieten der ein "Nightly"-Release anlegt, damit man immer zugriff auf das aktuelle Artefakt haben kann.
(Natürlich kann man den schnipsel optional machen, vllt will das ja nicht jeder)

Super finde ich das automatische Release-Management, also wenn manuell oder durchs "Taggen" eines commits ein Release erstellt wird.
Das hab ich so noch nie gesehen. Frage mich dabei aber auch, ob das sein muss, weil GitHub ja automatisch einen Tag erstellt, wenn ein Release entsprechend getaggt wird.


Sektion Kompatibilität

Es gibt neue und auch alte Mods, welche leider LeGo-Funktionen überschreiben und deshalb nicht mit Ninja+LeGo Patches kompatibel sind.
Ich erinnere mich nicht ob ich das schon mal gefragt hab, aber: gibt es eine Möglichkeit, alle Parser-Symbole in Patches die auf LeGo/Ikarus Verweisen auf eine "saubere" Instanz der Skripte zu verweisen?
Also sowas wie ein "Ninja_LeGo"-Namespace, wo jedee LeGo-Script Funktion einen neuen "eindeutigen" Präfix hat und Patches sich auf ein "stabiles" LeGo verlassen können?

mud-freak
07.06.2024, 13:02
Danke für die interessante Diskussion! Ich gehe mal einzeln auf deine Gedanken ein!

Sektion CI/CD


Was mir aufgefallen war im "Stamina"-Repo, ist das es dort (noch) kein "Release" gibt.
GitHub schmeißt alle "Action"-Artefakte nach X-Tagen automatisch weg, glaub im Standard sind das 90 tage oder so.
Genau, ein erstes Release sollte in den nächsten Tagen kommen. Artefakte werden hier nur erstellt, wenn man das Build-Workflow per Hand anschmeißt (meist eben, um das Resultat zu begutachten). Es war also nicht beabsichtigt, dass Dritte diese Artefakte nutzen. (Ich habe sie schnell rausgelöscht, um Missverständnisse zu vermeiden - ich hätte gern nur offizielle Releases im Umlauf.) Tatsächlich sollten die Repositories von meinen Patches noch gar nicht öffentlich sichtbar sein, aber durch mein holpriges Release von Ninja ist meine Zeitplanung etwas durcheinander geraten.


In dem Template würde sich also ein Schnipsel anbieten der ein "Nightly"-Release anlegt, damit man immer zugriff auf das aktuelle Artefakt haben kann.
(Natürlich kann man den schnipsel optional machen, vllt will das ja nicht jeder)
Daran hatte ich gedacht. In dem Kontext von Patches/Mods halte ich da persönlich nicht viel von, zumindest nicht in meiner Arbeitsweise, da ich die Versionskultur in der Gothicmoddingcommunity nicht besonders Spielerfreundlich finde. Zu viele (Zwischen-)versionen, die alle Support verlangen, möchte ich vermeiden. Wenn ein Nutzer des Template, bzw. der Workflows das anders gestalten möchte, kann er sich den Nightly-Ansatz selbst hinzufügen.


Super finde ich das automatische Release-Management, also wenn manuell oder durchs "Taggen" eines commits ein Release erstellt wird.
Das hab ich so noch nie gesehen. Frage mich dabei aber auch, ob das sein muss, weil GitHub ja automatisch einen Tag erstellt, wenn ein Release entsprechend getaggt wird.Ja, das ist etwas zweigleisig. Wenn man mag, kann man durch das Pushen eines Tags ein Release auslösen. Alternativ kann man aber auch einen Tag erstellen, durch das Erstellen eines Releases. Beides funktioniert; ohne dass bspw. doppelte Tags or Releases entstehen.

Sektion Kompatibilität


Es gibt neue und auch alte Mods, welche leider LeGo-Funktionen überschreiben und deshalb nicht mit Ninja+LeGo Patches kompatibel sind.
Vorab: Hast du da nähere Informationen? Leider ist das Feedback das bei mir ankommt kaum existent, da kaum jemand auf mich direkt oder auf diesen Forenthread zukommt. Ich weiß nur von der Diebmod und von Archolos, dass dort Probleme mit LeGo Versionen enstehen können. Kennst du weitere Mods, die ich auf dem Schirm haben sollte? Das hilft, denn manche Inkompatibilitäten lassen sich seitens der Patch-spezifischen LeGo Version ausbügeln.


Ich erinnere mich nicht ob ich das schon mal gefragt hab, aber: gibt es eine Möglichkeit, alle Parser-Symbole in Patches die auf LeGo/Ikarus Verweisen auf eine "saubere" Instanz der Skripte zu verweisen?
Also sowas wie ein "Ninja_LeGo"-Namespace, wo jedee LeGo-Script Funktion einen neuen "eindeutigen" Präfix hat und Patches sich auf ein "stabiles" LeGo verlassen können?
Das war mein erster Ansatz bei Ninja 2 in 2019. Leider geht das nicht, denn sowohl Ikarus als auch LeGo nutzen eindeutige/einzigartige Symbol, wie auch Konzepte, wie Singletons. Diese können nicht mehrmals existieren. Ein Beispiel sind die Daedalushacks von Ikarus, ein anderes sind manche LeGo Pakete. Ich hatte lange darüber nachgedacht und es bis Ninja 2.2.02 geschafft, sogar semi-separaten PermMem-Support für Patches zu gewährleisten. Viel mehr Spielraum ist bei Ikarus und LeGo leider nicht mehr drin, da die schon über 10 Jahre alt sind und die Ziele damals einfach andere waren. Auch Rückwärtskompatibilität von Ikarus und LeGo mit zukünftigen Mods sollte gewährleistet bleiben.

Trotzdem möchte ich das nicht unter den Tisch kehren. Ninja, sowie die Kompatibilitätsbemühungen von Ikarus und LeGo, und jüngst die Portierung von Ikarus, LeGo und Ninja zum Gothic Sequel and Gothic 2 Classic, sind ein Ein-Mann-Projekt und der Dialog und neue Ideen könnten nicht schaden. Andererseits ist es den Arbeitsaufwand nicht wert, wenn es wirklich nur zwei Mods sind, die mit LeGo-nutzenden Patches inkompatibel sind.

mud-freak
08.06.2024, 05:07
Am Wochenende, wenn ich Serverzugriff habe.
Den Thread hab ich abonniert und werde somit über alle Neuigkeiten informiert.

Es scheint, es gäbe noch ein weiteres Problem (https://github.com/szapp/Ninja/issues/32), das es auszubügeln gilt. Je nach dem wie groß der Aufwand vom Aktualisieren der Downloadsektion ist, kannst du dir tatsächlich noch etwas Zeit lassen. Evtl. kommt ein weiteres Update in den nächsten Tagen.

uhrparis
08.06.2024, 08:43
Die Mod "Dark Saga" stürzte ab, sobald sich Quickloot.vdf im Data Ordner befand.
Wäre es eigentlich machbar, eine GameTTS über Ninja zu kreieren?
So in etwas wie auf Basis der beiden ersten Tools? https://github.com/lexkoro/GameTTS/releases
Die Software GameTTS lässt sich mit Windows 7 Pro 64 Bit nicht starten oder stürzt während des Starts ab.

mud-freak
09.06.2024, 07:59
Die Mod "Dark Saga" stürzte ab, sobald sich Quickloot.vdf im Data Ordner befand.

Danke für den Hinweis! Ich habe das Problem allerdings nicht nachstellen können. Auf Spine: Dark Saga 1.0.5 DE, Ninja 2.9.14, Quickloot 1.9.5. Im Release-Thread konnte ich auch von keinen Problemen lesen. Vielleicht kannst du einmal deine Versionen und Installationen überprüfen und notfalls hier ein das Problem etwas genauer schildern. Ich bin sicher, das kriegen wir bei dir zum Laufen.


Wäre es eigentlich machbar, eine GameTTS über Ninja zu kreieren?
So in etwas wie auf Basis der beiden ersten Tools? https://github.com/lexkoro/GameTTS/releases
Die Software GameTTS lässt sich mit Windows 7 Pro 64 Bit nicht starten oder stürzt während des Starts ab.
Kannst du das etwas genauer erklären? Meinst du, dass das GameTTS eingebunden wird, um im laufenden Spiel das Audio für Dialoge zur Laufzeit zu erstellen? Auch wenn das theoretisch möglich wäre (wenn auch sinnvoller mit Union umzusetzen), gibt es kaum einen Mehrwert gegenüber einer Erstellung aller Audios bevor man das Spiel startet.

uhrparis
09.06.2024, 08:16
Die Version Dark Sag schaue ich noch mal an.
Es wäre für die Erstellung der Sprachausgabe wesentlich einfacher, wenn das umsetzbar wäre, dass GameTTS Tool in einer Ninja vdf zu packen und im Spiel damit zu arbeiten.
Könnte dann ja im Menü, wie beim Renderer vollzogen werden und Union halte ich für keine gute Idee.

mud-freak
09.06.2024, 10:41
Es wäre für die Erstellung der Sprachausgabe wesentlich einfacher, wenn das umsetzbar wäre, dass GameTTS Tool in einer Ninja vdf zu packen und im Spiel damit zu arbeiten.
Könnte dann ja im Menü, wie beim Renderer vollzogen werden
Ah, ich verstehe! Trotzdem stellt sich mir die Frage, was der Vorteil wäre. Warum sollte man damit im laufenden Gothic arbeiten? Es geht doch darum, Sprachausgaben (zu trainieren und) zu generieren. Das ganze innerhalb von Gothic stattfinden zu lassen ist für die Handhabung und Performance, sprich die Produktivität, nicht förderlich.


Union halte ich für keine gute Idee.
Darf ich fragen warum? Ich halte Ninja hingegen dafür völlig ungeeignet und Union genau das richtige. Ich glaube, es besteht generell die Annahme, dass Union und Ninja zwei Alternativen zu einander seien.

Kurz: Union ermöglicht es, Plugins für die Engine in C++ zu schreiben und zu kompilieren, um gewisse Dinge in der Engine umzugestalten. Das bietet sich wahnsinnig gut an, um grundlegende Mechaniken zu ändern, wie z.B. die Berechnung von Beleuchtung oder bessere Wegfindung von NSC. (Also eigentlich etwas, was wir mit Ikarus schon seit über 10 Jahren können, aber nun ohne Umwege direkt in C++.) Ninja hingegen erweitert Gothic minimal um die Möglichkeit Modding-Ressourcen aus dem Modkit modular zu modden. D.h. nicht nur Texturpatches können beliebig gestapelt und mit jeglicher Mod gespielt werden, sondern nun auch alle anderen Bereiche die man aus dem Modden mit dem Modkit kennt, darunter Dialoge, Animationsdefinitionen und Skripte. Ninja erlaubt so also keine magischen, neuen Implementierungen, sondern einfach, dass man seine coolen Modentwicklungen nicht nur in einer abgeschlossenen Mod, sondern auch modular als kleine Happen mit allen Mods kombinieren und zur Verfügung stellen kann. Erst in Kombination mit Ikarus entstehen dadurch beeindruckende Pakete.

Um auf die Idee zurück zukommen, ein Menü wie das des Renderers "mit Ninja" zu erstellen bedeutet, es also mit Daedalus zu skripten. Sicher ist es möglich eine komplette GUI mit Mausunterstützung zu skripten, aber wer würde das machen, wenn man das mit C++ viel einfacher schafft - von der Schnittstelle zu externen Prozessen, die man für ein GameTTS Tool bräuchte, ganz zu schweigen.

Kirides
09.06.2024, 19:26
Die Version Dark Sag schaue ich noch mal an.
Es wäre für die Erstellung der Sprachausgabe wesentlich einfacher, wenn das umsetzbar wäre, dass GameTTS Tool in einer Ninja vdf zu packen und im Spiel damit zu arbeiten.
Könnte dann ja im Menü, wie beim Renderer vollzogen werden und Union halte ich für keine gute Idee.

ich habe seit geraumer Zeit ein Tool rumliegen welches das Verarbeiten und erstellen von GameTTS Listen erleichtert.

Zusammen mit @FaChDa haben wir dieses Tool für die Returning 2 NB etc. verwendet.

Ich bin aktuell nur viel zu beschäftigt um das Tool und die noch ausstehenden Skript-Schnipsel weiter zusammen zu führen
um es für die breite Masse einfacher zu verwenden zu haben.

Das Tool sucht sich die Texte direkt aus einer VDF, kann eine bestehende "TTS-Datenbank" mit neuen Texten "updaten" und entsprechend auch eine TTS-Datenbank im GameTTS 1.1.5/1.1.6 Format ausgeben.

Ich hoffe das ich nach unserem Umzug und Nachmieter finden etc. Zeit finde das alles fertig zu machen.

mud-freak
10.06.2024, 21:02
Wie angekündigt kommt hier ein weiteres Update um einen Fehler in Verbindung mit der Bereitstellung von LeGo auszubügeln. Die vielen Updates der letzten Tage sind eine Folge der größeren Änderungen und Neuerungen. Bei diesem Update wird ein kritischer Fehler behoben, bei dem LeGo die PermMem Handles beim Laden nicht vollständig zurückgesetzt hat, was zu unschönen Nebeneffekten und auch Abstürzen beim Laden führen konnte. Vielen Dank an Avenire (https://github.com/Avenire) für das Finden und die Hilfe beim Eingrenzen des Fehlers (https://github.com/szapp/Ninja/issues/32).

Aktueller Download über Spine (https://clockwork-origins.com/spine/), im Steam Workshop von Gothic 1 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786936496) und Gothic 2 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786910489) oder auf GitHub (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v2915-jun-10-2024).

uhrparis
12.06.2024, 14:29
Im laufenden Spiel liegt der Vorteil darin, ich kann mich besser ins Spielgeschehen rein versetzen und den Dialog der NPcs besser vergleichen bzw. evtl. den Ton des Dialogs wie im waren Leben abändern.
So weit dies Software technisch möglich ist. Beim Tool Union gibt es einen entscheidenden Nachteil, die Optik leidet und zu viel Install Klimbim, was kein Mensch braucht. Es ist nicht möglich, die Sprachausgabe über Union laufen zu lassen, und neben dran läuft Ninja. Das führt unweigerlich zum Gothic.exe Absturz. Oft gehabt. Und optisch machen die Plugins für Ninja eine bessere Figur. In dem Menü könnte folgendes enthalten sein:

Text to Speech

Button Auswahl Visual hell / Dark

Button Gothic 1 Auswahl Original Sprecher

Button Gothic 2 Auswahl Original Sprecher

0 Stellung Spiel interne Original Stimme Schiebregler Lachen -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6

0 Stellung Spiel interne Orginal Stimme Schiebregler Gute Laune -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6

0 Stellung Spiel interne Original Stimme Schiebregler Ernst -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6

0 Stellung Spiel interne Original Stimme Schiebregler Zornig -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6

0 Stellung Spiel interne Original Stimme Schiebregler Wütend -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6

0 Stellung Spiel interne Original Stimme Schiebregler Betonung -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6

0 Stellung Spiel interne Original Stimme Schiebregler Ängstlich -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6

0 Stellung Spiel interne Original Stimme Schiebregler Dialekt -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6

0 Stellung Spiel interne Original Stimme Schiebregler Gierig -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6

0 Stellung Ton Normal Schiebregler langsam -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6 schnell

0 Stellung Ton Normal Schiebregler hoch -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6 tief

Button Text

Button speichern wav / mp3 C:\Program Files\SOUND\SPEECH


Lass dir Zeit Kirides. Ich hab erst mal GameTTS 1.16 auf Windows 7 64 Bit zum Laufen bekommen.
Als erstes erstelle ich Einstellungs-Profile per TGAs der NPCs. Nicht jede Einstellung passt zu jeden NPC.

Plasquar
13.06.2024, 07:03
Die Version Dark Sag schaue ich noch mal an.


Hab mir Dark Saga grad auch mal installiert, sowie die neuste Version von Ninja und da klappt alles im Zusammenhang mit Quickloot.

Briam
13.06.2024, 20:09
Ich wollte nochmal Rückmeldung zu dem Fehler geben den ich bereits im Odyssee Forum gepostet habe. Leider besteht das Problem immer noch auch nach den Ninja Update vor kurzem. Wen ich in Spine mit aktiviertem Ninja ein Spiel speichere kann ich es danach nicht mehr laden. Ohne aktiviertes Ninja geht es. Selsamerweise ist es aber möglich ein ganz neues Spiel zu starten (mit Ninja und aktueller Odyssee Version 2.7.4) hier ist dann Speichern und laden möglich. Mein alter Save ist halt auch schon vom Dezember 23 mit der Odyssee Version 2.7.3.1 evtl. hat der diese vielen Updates nicht vertragen.

mud-freak
13.06.2024, 20:37
Mein alter Save ist halt auch schon vom Dezember 23 mit der Odyssee Version 2.7.3.1 evtl. hat der diese vielen Updates nicht vertragen.

Welche Version spielst du im Moment? Ist es noch die 2.7.3.1? Die war glaube ich verbuggt - in dem Sinne, dass sie massenhaft ungenutzte Variablen hatte. Mit irgendeiner Version danach (vielleicht 2.7.3.4?) wurde das in Odyssee ausgebügelt.

Wenn du bereits mit 2.7.3.4 spielst und trotzdem noch Probleme hast, kannst du mir einen Gamesave schicken und auch einen direkten Link zu Odyssee? - Bzw. wenn du Spine nutzt, ist dort die Version von Odyssee nicht sowie so wieder eine ganz andere (2.7.1)? (Verstehe dieses Durcheinander mit den Versionen nicht ganz.) Tatsächlich habe ich nicht so große Lust mich da durch zu wühlen; das wird mich viel Zeit kosten. Aber ich biete das gern an, wenn du seitens deiner Installation wirklich alle Fehler ausschließen kannst und mir mit den oben genannten Informationen entgegen kommen kannst.


EDIT: Entschuldige, ich habe das nicht richtig mit deinen Posts im Odyssee-thread in Verbindung gebracht. Kannst du mir noch einmal sagen, ob das Problem erst seit Ninja 2.8.13 auftritt oder schon vor längerer Zeit?
Wenn es an den Odyssee Versionen und dem Update von 2.7.3.1 zu 2.7.4 liegt, kannst du einmal folgendes Probieren:
Starte ohne Ninja, lade einen Spielstand, speichere den Spielstand, Starte Gothic neu - diesmal mit Ninja und versuche den gerade erstellten Spielstand zu laden. Das wäre ein erster Ansatz.

Briam
13.06.2024, 21:02
Wenn es an den Odyssee Versionen und dem Update von 2.7.3.1 zu 2.7.4 liegt, kannst du einmal folgendes Probieren:
Starte ohne Ninja, lade einen Spielstand, speichere den Spielstand, Starte Gothic neu - diesmal mit Ninja und versuche den gerade erstellten Spielstand zu laden. Das wäre ein erster Ansatz.
Das wars, es läuft wieder. Vielen Dank.

mud-freak
13.06.2024, 21:04
Das wars, es läuft wieder. Vielen Dank.

Sehr gut, dass sich das so schnell hat lösen lassen! Danke, für die schnelle Rückmeldung und viel Spaß beim Weiterspielen!

N1kX
14.06.2024, 05:59
dass sie massenhaft ungenutzte Variablen hatte.

For this purpose, a union patch was made, which removes the engine's limitation of 65 thousand variables in saving.

zCutBinSafeHash

mud-freak
14.06.2024, 06:04
For this purpose, a union patch was made, which removes the engine's limitation of 65 thousand variables in saving.

zCutBinSafeHash

That's cool! I hope the developers/players of Odyssee are aware of this - and also the of origin of their problem, instead of shifting blame.
Do you have more details on what that plugin does exactly? UPDATE: Nevermind, I found it.

N1kX
14.06.2024, 07:38
The theme of the union patches. There is also a description of the patches and links to Google drive, where you can download them.
Патчи-улучшения - Patches-improvements
it can be installed, nothing will break in the game

Специальные патчи - Special patches
it can be installed, but some problems may occur.

Installed in system\autorun

https://worldofplayers.ru/threads/43009/

In general, at least now the player should have the following patches so that the bugs of the Gothic engine do not interfere:
zCEventManager_DoFrameActivity_Fix
zDeadNeverCollide
zDontDeleteMonsters
zEmitParticlesInstantly
zExchangeInteractItemFix
zInterruptInteractionItemDupeFix
zSaveMenuItemLeakFix
zViewOpenPosFix

Perfect:
zAlwaysSetFightAnis
zBowRelaxFix
zCEventManager_DoFrameActivity_Fix
zChangeParticlesLimit
zCollectFocusDelay
zCollectFocusInStrafe
zComboExtraHitFix
zDeadNeverCollide
zDisableNextSpellSetup
zDontDeleteMonsters
zDontInsertVarInstance
zDontSetUninitializedBodyState
zEmitParticlesInstantly
zExchangeInteractItemFix
zFailedRunJumpFix
zFallenTorchModeFix
zInterruptInteractionItemDupeFix
zNightMusicFix
zOverlayOrderFix
zRemoveWeaponFix
zRoughTurnings
zSaveMenuItemLeakFix
zSetFrameTimeFix
zSetWeaponModeFix
zSpellCollisionFix
zStackMobItems
zStandOnSpellCast
zViewOpenPosFix
zWmodeInitFix

uhrparis
14.06.2024, 12:30
Hab mir Dark Saga grad auch mal installiert, sowie die neuste Version von Ninja und da klappt alles im Zusammenhang mit Quickloot.

Nun ja, die neuere Version läuft ja auch über Union und neben dran läuft Ninja. Da funktionieren auch alle Plugins. Die erste Version ist die bessere Wahl, da wurden noch keine Exploits beseitigt. In Version 1 kann man zum Gott auf steigen, wenn man weis wie .:-) Exploits gehören zu einer guten Mod dazu.

WASILA
18.06.2024, 19:33
Ninja wird jedesmal in die Quarantäne von meinem G Data Internet Secrurity geworfen und blockiert.... Ist angeblich ein Trojaner....

Wie löse ich das Problem??

Die Option "erlauben" bietet mir G Data nicht.....

Homerclon
18.06.2024, 19:42
GData wird sicherlich eine "Ausnahme-Liste" haben, zu der man Ninja hinzufügen kann. Und sei es, das diese etwas versteckt irgendwo in den Einstellungen ist.
Du kannst auch die strenge der Heuristik reduzieren, welche genutzt wird um bisher unbekannte Schadsoftware zu erkennen - eine hohe Strenge erhöht zwar die Sicherheit, erzeugt aber auch mehr Falschpositiv-Meldungen.

Andernfalls gibts keine Lösung, außer die betroffene Datei direkt zu GData zu schicken, damit diese sie sich mal selbst anschauen, damit diese dann selbst irgendwann Ninja (die getestete Version) auf eine Ausnahmeliste setzen.

Allerdings braucht man seit Win8, spätestens Win10, kein separates Antiviren-Programm mehr, der in Windows integrierte Defender ist ausreichend.
In Vergleichstests von Antiviren-Software schneidet der Defender regelmäßig gut ab.

Fellabzieher
23.07.2024, 16:56
Hab das gleiche Problem mit GDATA , Vorsicht Trojaner an Board !

mud-freak
24.07.2024, 08:55
Leider sind mir da weitestgehend die Hände gebunden.

Aus Sicht eines skeptischen Nutzers kann ich empfehlen, (a) Ninja nur von offiziellen Quellen herunterzuladen, (b) Ninja mit den Prüfsummen abzugleichen und (c) ggf. den öffentlichen Quellcode zu begutachten. Der Quellcode in Assembly ist sicher nicht besonders gut nachvollziehbar. Aber da über die letzten Jahren keine Probleme bekannt wurden und vertrauenswürdige Webseiten wie World of Gothic den Download anbieten, kann man sich auf die Code-Änderungen zwischen den letzten Versionen auf GitHub konzentrieren, um sich zu vergewissern, dass ich da in der Zwischenzeit keine Schadsoftware eingeschleust habe. Sollte man damit zufrieden sein, sollte man Ninja einer Ausnahmeliste seiner Anti-Viren-Software hinzufügen, wie hier im Thread schon beschrieben.

Für alles weitere ist die Community gefragt, um Falsch-Positive direkt den Anti-Viren-Programmen zu melden und auf Virus-Check-Webseiten ihre Erfahrungen einzureichen.

Homerclon
24.07.2024, 20:59
Sogar den Windows Defender deaktiviert?
Bei Deinstallation eine dedizierten Antiviren-Software (mit Hintergrundüberwachung), wird der Windows Defender automatisch aktiviert. Wenn das nicht klappt, dann macht Windows darauf auch aufmerksam, wegen fehlendem Antiviren-Schutz.

WASILA
24.07.2024, 22:00
Ninja hat ein Trojaner oder vermutlich eher dass irgendwas in den neuesten Update so aussieht als das es ein Trojaner wäre Punkt mein G Data hat damit Probleme und wie man im Forum lesen kann ja schon einige andere Leute auch. Können die Menschen die Ninja entwickelt haben oder entwickeln da noch mal drüber schauen und vielleicht noch ein Update rausbringen? Das wäre super toll liebe Grüße Andreas

Homerclon
24.07.2024, 23:01
mud-freak, als Entwickler von Ninja, hat sich doch schon dazu zu Wort gemeldet - ein paar wenige Beiträge über diesem.
Darin steht u.a. wie man sichergehen kann, das man Ninja in der Version hat wie es von ihm vorgesehen war.

Es gibt Code, bzw. Funktionsweisen, der auch von Schadsoftware genutzt wird, weshalb Software die dieses nutzt, von Antiviren-Software als Schadsoftware erkannt werden kann, selbst wenn diese harmlos ist. Solche Software kann man an die Entwickler von Antiviren-Software schicken, damit diese sich die Software genauer ansehen, und dann auf eine Liste setzen das diese Software okay ist - und an die Nutzer ihrer Antiviren-Software verteilen. Nur wenn diese Software dann ein Update erhält, fängt das Spielchen wieder von vorne an.

Nobbi Habogs
30.07.2024, 22:46
Hab das gleiche Problem mit dem aktuellen Ninja Update bei GDATA.

Verstehe auch nicht warum die kein sauberes Update liefern die Version da vor war doch auch ok,also wissen die eigendlich wie es geht ?
Ich verstehe das Problem hier einfach nicht. Es ist einfach offensichtlich, dass Programme wie Ninja solche false-positives Meldungen auslösen. Ein bestehendes Programm wird genutzt, um es zu ermöglichen völlig ungefragt Code zu laden und auszuführen. Ninja ist wie eine Leiter, die man an eine große Schutzmauer anlehnt. Solche "Injector" waren auch schon immer ein beliebtes Mittel um Schadesoftware einzuschleusen.
Aber es ist mir immer noch unverständlich wie man heutzutage Geld für Anti-Viren-Software ausgeben kann, die nicht mal zwischen schädlicher und unschädlicher Software unterscheidet. Ein Schutzprogramm, dass ständig Alarm schlägt ist doch absolut unglaubwürdig. Seit fast 10 Jahren gibt es Windows 10 gibt es mit dem Windows Defender ein vollwertiges, kostenloses Antiviren-Schutzprogramm und seit 5 Jahren müsste das eigentlich jedem bekannt sein.

Das schlimmste ist noch, wie Leuten hier unterstellt wird sie würden Trojaner und Viren verbreiten, nur weil manche Nutzer Geld dafür bezahlen sich von unzuverlässigen Firmen sagen zu lassen was angeblich verseucht ist und was nicht. Das grenzt ja fast schon an Esoterik. Es gibt schon einen Grund warum es die Seite virustotal.com gibt. Ist sogar kostenlos!

SolariS12
31.07.2024, 07:46
As for the MoreRings-Patch, I fixed the error in the script above. This is the resulting patch, with all necessary changes. I tested it for both G1 and G2.

MoreRings.vdf (https://upload.worldofplayers.de/files12/MoreRings_01.zip)



As for the RefuseTalks-Patch, I looked into it and the situation is more messy than you (or I) thought. The way the patch is designed now, dialogs may be missed that rely on ZS_Talk in their condition (see Fawkes's concerns) but it also skips handling of certain behaviors (like hostility), such that NPCs give the "Not now!" comment in situations where they should not, instead of attacking or other things.

I am still fiddling around a bit, but at this point I would suggest to forget about this patch: It breaks more than it fixes. I advise you not to release it in this state!







This is not possible. You cannot set new AI variables with a patch.

Hello how to make More Rings works in New Balance? The patch you give does not work

N1kX
31.07.2024, 11:15
Hello how to make More Rings works in New Balance? The patch you give does not work

In the new balance, this feature was hard-coded, as I pointed out, or rather blocked.

Ara89
17.08.2024, 21:20
Habe Spine heute wieder installiert und ninja bleibt bei 99% stehen.... jemand ne Ahnung woran das liegen kann bzw wie man es behebt? :)

Milky-Way
18.08.2024, 13:12
Habe Spine heute wieder installiert und ninja bleibt bei 99% stehen.... jemand ne Ahnung woran das liegen kann bzw wie man es behebt? :)

Vermutlich möchtest du die Frage lieber im Modifikationen Forum stellen; wenn ich dich richtig verstehe, möchtest du spielen und Spine installiert Ninja nicht richtig, was eher an spine als an Ninja liegen dürfte.

Ara89
18.08.2024, 17:08
Vermutlich möchtest du die Frage lieber im Modifikationen Forum stellen; wenn ich dich richtig verstehe, möchtest du spielen und Spine installiert Ninja nicht richtig, was eher an spine als an Ninja liegen dürfte.

ok da hatte ich es tatsächlich zuerst gestellt und danach dachte ich hier wäre es richtig... ok dann tut es mir leid :D dann warte ich dort auf einen hinweis woran es liegen könnte :)

Eletron
18.08.2024, 21:13
Wenn ich Ninja manuell deinstallieren will, reicht es aus, wenn ich die Uninstaller.exe und Ninja.dll einfach lösche?

mud-freak
18.08.2024, 21:18
Wenn ich Ninja manuell deinstallieren will, reicht es aus, wenn ich die Uninstaller.exe und Ninja.dll einfach lösche?

Jein. Bei der manuellen Installation von Ninja prüft das Setup ob SystemPack oder Union oder keins der beiden installiert ist und wählt entsprechend, wie Ninja von Gothic geladen wird. Um das auch wieder korrekt rückgängig zu machen, ist es sinnvoll Ninja zu deinstallieren.

Eletron
18.08.2024, 21:23
Jein. Bei der manuellen Installation von Ninja prüft das Setup ob SystemPack oder Union oder keins der beiden installiert ist und wählt entsprechend, wie Ninja von Gothic geladen wird. Um das auch wieder korrekt rückgängig zu machen, ist es sinnvoll Ninja zu deinstallieren.

Super, danke :)

D.h. das löschen der Ninja.dll und der Uninstaller.exe und der anschließenden Neuinstallation einer anderen Version ist nicht ratsam? Das Problem ist, dass der Uninstaller nicht funktioniert, da ich unter Linux spiele.

Edit: Habs anders gelöst :)

mud-freak
19.08.2024, 07:21
D.h. das löschen der Ninja.dll und der Uninstaller.exe und der anschließenden Neuinstallation einer anderen Version ist nicht ratsam?
Wenn sich in der Gothic-Installation nicht viel getan hat, könnte das klappen.



Das Problem ist, dass der Uninstaller nicht funktioniert, da ich unter Linux spiele.
Falls ein komplettes manuelles Entfernen in Zukunft nötig wird und das Deinstallieren nicht klappt, sind folgende Schritte hilfreich:
Neben dem Löschen der Ninja.dll:
Wenn weder Union noch SystemPack vor Installation von Ninja präsent waren, sollte sich im Gothic\System Verzeichnis eine BugslayerUtilG.dll und eine BugslayerUtil.dll befinden. Die Datei, die mit "G" endet ist die ursprüngliche DLL. D.h. hier die BugslayerUtil.dll entfernen und die BugslayerUtilG.dll in zurück in BugslayerUtil.dll umbenennen.
Wenn das SystemPack installiert war, den Eintrag "Ninja.dll" aus der pre.load-Datei löschen (oder die pre.load entfernen, wenn nichts anderes enthalten ist). Wenn die Datei nicht existiert, siehe 1.
Wenn Union installiert war, den Eintrag "Ninja.dll**" aus der SystemPack.ini unter "[PLUGINS]" entfernen. Auch wenn der Eintrag mittlerweile nicht mehr nötig scheint, wird er vom Ninja Setup weiterhin erstellt zur Rückwärtskompatibilität.

Eletron
19.08.2024, 09:51
@mud-freak

Besten Dank, das hat mir sehr geholfen :gratz

mud-freak
06.09.2024, 12:19
Mit Ninja 3 ist die Portierung zum Gothic Sequel und Gothic 2 (Classic) abgeschlossen.

In dieser Version wird nur ein Absturz im Gothic Sequel behoben. Außerdem wird ein Absturz von Gothic beim Spielladen behoben, der auftrat wenn ein angelegter Zauber (Rune oder Spruchrolle) nicht mehr im Spiel existiert.


Aktueller Download über Spine (https://clockwork-origins.com/spine/), im Steam Workshop von Gothic 1 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786936496) und Gothic 2 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786910489) oder auf GitHub (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v3015-sep-6-2024).


Unterstützen kann jeder das Projekt durch melden von jeglichen Problemen hier in diesem Thread oder im GitHub Issue Tracker. Andere Wege der Unterstützung finden sich im GitHub Repository.

Energybreiti
06.09.2024, 13:49
Hallo MudFreak,

ich glaube es gibt mit der neuen Version ein Problem, bin mir aber nicht ganz sicher ob es mit dem Update zusammen hängt.

Gestern ging noch alles, heute wollte ich nach dem Update wieder mit G2 Returning starten, und nun zieht der Held keine Waffe mehr, nur noch die Animation. Bogenschießen geht auch nicht mehr. Verschießt kein Pfeil mehr.
Alle andern Spielstände gehen auch nicht. Ein Neustart funktioniert, da kann man die Waffe wieder ziehen. Bei anderen Modds das selbe Problem. ( Dirty Swamp, Odysee etc.):)

Ein anderes Update gab es nicht.

mud-freak
06.09.2024, 13:52
Danke dir für das schnelle Feedback! Ich habe auch vor einigen Minuten von Plazmatic auf Steam von diesem Problem gehört. Ich konnte es schon auf Ninja zurückführen. Ich bin gerade dabei das Problem zu beheben - nötigenfalls werde ich einen Reset zur letzten Version machen. Auf jeden Fall bis Ende des Tages sollte das wieder passen.

Bis dahin am besten das Spiel nicht in diesem Zustand speichern!

Energybreiti
06.09.2024, 13:54
Puh, das war schnell......alles klar, danke dir für die Info

mud-freak
06.09.2024, 13:57
Puh, das war schnell......alles klar, danke dir für die Info

Solltest du auf Steam spielen; dort konnte ich auf die vorherige Version zurücksetzen. Auf Steam sollte Ninja zumindest wieder laufen. Bei Spine ist das nicht so einfach. Und bei manueller Installation kannst du ja auf GitHub zur vorherigen Version (2.9.15) zurückgreifen.

Energybreiti
06.09.2024, 14:10
Solltest du auf Steam spielen; dort konnte ich auf die vorherige Version zurücksetzen. Auf Steam sollte Ninja zumindest wieder laufen. Bei Spine ist das nicht so einfach. Und bei manueller Installation kannst du ja auf GitHub zur vorherigen Version (2.9.15) zurückgreifen.

Blöde frage, bin da nicht so affine, spiele über Spine, kann ich das da auch selbst manuell auf den Stand der alten Version bringen?

mud-freak
06.09.2024, 14:17
Blöde frage, bin da nicht so affine, spiele über Spine, kann ich das da auch selbst manuell auf den Stand der alten Version bringen?

Ich kann es nicht empfehlen bei Spine manuell herum zu tüfteln, da es darauf ausgelegt ist alles selbst zu verwalten.
Allerdings kannst du in den entsprechenden Downloadordner von Ninja und dort die alte Ninja.dll hineinlegen. Der Standadpfad ist %APPDATA%\Clockwork Origins\Spine\mods\314\System. Das kannst du einfach so in die Adressleiste des Explorers kopieren und Enter drücken. Dort solltest du eine Ninja.dll finden die du mit dieser aus diesem ZIP-Archiv (https://upload.worldofplayers.de/files12/CkKqglk4SjjNFNinja.dll.2.9.15.zip) ersetzen kannst.

Damit du in Zukunft Spine gut nutzen kannst, solltest du (sobald ich das Problem behoben habe) Ninja innerhalb von Spine einmal deinstallieren und darin neu installieren.

N1kX
06.09.2024, 15:28
I checked on the current version of the new balance. After saving and loading the game, humans breaks down, it is no longer possible to get a weapon/ spell. There is no problem on 2.9.15.
breaks down forever in saving, deleting ninja won't help. I haven't tested it on the vanilla. (maybe there is this problem there too)

mud-freak
06.09.2024, 15:30
I checked on the current version of the new balance. After saving and loading the game, humans breaks down, it is no longer possible to get a weapon/ spell. There is no problem on 2.9.15.
breaks down forever in saving, deleting ninja won't help. I haven't tested it on the vanilla. (maybe there is this problem there too)

Thanks! Yes as discussed above, it's best to revert back to 2.9.15 for now. I am working on a fix. If I will not manage by tonight, I will rollback to 2.9.15 in a "new" version.

mud-freak
06.09.2024, 16:17
Dies ist ein Hotfix zu dem kritischen Bug in Ninja 3.0.15.

Hier wird einfach ein Teil des Updates wieder herausgenommen. Dabei handelte es sich, um den Versuch einen selten Absturz zu verhindern.

Danke für die Geduld! Ich konnte mit der neuen Version die Speicherstände wieder laden. Ich hoffe, dass das bei den Betroffenen auch der Fall ist. Sonst bitte ich um Entschuldigung und hoffe es wurde auf mehreren Saveslots gespeichert.


Aktueller Download über Spine (https://clockwork-origins.com/spine/), im Steam Workshop von Gothic 1 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786936496) und Gothic 2 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786910489) oder auf GitHub (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v3115-sep-6-2024).


Unterstützen kann jeder das Projekt durch melden von jeglichen Problemen hier in diesem Thread oder im GitHub Issue Tracker. Andere Wege der Unterstützung finden sich im GitHub Repository.

Damianut
06.09.2024, 16:21
Hallo §wink,

I started to test the your patch template (https://github.com/szapp/patch-template). I want to report that my code passed all test even though, I didn't pass (https://github.com/damianut/SilentXardas/blob/main/Ninja/SilentXardas/Content/init.d#L5) an argument to LeGo_MergeFlags function.

Since I don't need additional LeGo packages, then I understood the "/* DESIRED LEGO PACKAGES */" phrase in the way, that I don't have to write here anything. : P

Was LeGo_MergeFlags function available in any version of LeGo (https://github.com/Lehona/LeGo)? As I got an error about an syntax error, because of not providing an argument to LeGo_MergeFlags I guessed, that I have simply to provide a flag(s) here, but I wanted to see a definition of this function.

And I found it, but in Ninja.dll.

And how can I get .vdf file with the my plugin? The repository passed build test.

neocromicon
06.09.2024, 16:45
Gut dann wissen wir ja wo der Fehler auf einmal her kommt, war natürlich bestes Timing, das es das Returning Update gab und dann Ninja und keiner 100% weis was nun schuld war xD

mud-freak
06.09.2024, 16:51
Hallo §wink,

I started to test the your patch template (https://github.com/szapp/patch-template). I want to report that my code passed all test even though, I didn't pass (https://github.com/damianut/SilentXardas/blob/main/Ninja/SilentXardas/Content/init.d#L5) an argument to LeGo_MergeFlags function.

Hi!

Yes, both the syntax check and validator do not check the integrity of the scripts. The syntax check only checks for valid syntax and the validator focuses on compatible scripts.



Since I don't need additional LeGo packages, then I understood the "/* DESIRED LEGO PACKAGES */" phrase in the way, that I don't have to write here anything. : P
In cases where you need LeGo, but don't need to initialize any LeGo packages (like in your case with HookDaedalus), then you don't need to initialize LeGo. So you can remove that function call. Instead you will have to initialize Ikarus explicitly (MEM_InitAll();).



Was LeGo_MergeFlags function available in any version of LeGo (https://github.com/Lehona/LeGo)?
That function is not part of native LeGo. It is specific to script patches to initialize LeGo in a safe way (i.e. "merge" the remaining flags). The function is not documented anywhere aside from an explanation in the Ninja documentation. This is deliberate: The patch-specific version of LeGo is not meant for the public to avoid confusion and catastrophic effects if used in a normal modding environment. Best not to dig it up ;)



And how can I get .vdf file with the my plugin? The repository passed build test.
In the log of the build-action (https://github.com/damianut/SilentXardas/actions/runs/10740381798) you will find the VDF for download. Once you are ready to "release" your patch, you can also produce the VDF by either creating and pushing a tag (e.g. v1.0.0) to your GitHub or by creating a new release in GitHub. The VDF will be automatically be attached to a published release for download.

Energybreiti
06.09.2024, 16:52
Funktioniert wieder alles .

Danke und Große Klasse das du das so schnell behoben hast §wink
Kann ich nur den Hut ziehen wer bei sowas durchsieht :eek:

mud-freak
06.09.2024, 16:55
Gut dann wissen wir ja wo der Fehler auf einmal her kommt, war natürlich bestes Timing, das es das Returning Update gab und dann Ninja und keiner 100% weis was nun schuld war xD

Ja, das Timing war ansonsten ziemlich glücklich, weil wahrscheinlich nicht allzu viele Spieler online waren um die Uhrzeit. Und von Plazmatic auf Steam habe ich nur wenige Minuten nach dem Release die erste Rückmeldung dazu bekommen und konnte zumindest auf Steam das Update zügig zurückrollen.

WASILA
06.09.2024, 19:41
Vielen lieben Dank!
Jetzt mag G Data auch wieder Ninja :-)
Danke für Deine Mühe!

Damianut
07.09.2024, 16:18
Das ist ziemlich einfach möglich und erfordert effektiv nur eine Zeile Code:

instance ItMw_ShortSword1(C_Item) {
effect = "SPELLFX_FIRESWORD";
};wobei ItMw_ShortSword1 hier die Waffeninstanz ist.

Hier als kompletter Patch zum austesten und reinschauen: Ninja_FireSword.vdf (https://upload.worldofplayers.de/files11/Ninja_FireSword.zip)
Setzt man den Patch ein, wird jedes "Kurzschwert der Miliz" mit einem Feuereffekt versehen. Nimmt man den Patch wieder heraus, verschwindet auch der Effekt.

I dig out a quite old post :) and could be not update, but how it is possible, that by writing with Ninja:



instance ItMw_ShortSword1 (C_Item) {
effect = "SPELLFX_FIRESWORD";
};


the another properties are not overwritten. So the original name remains etc.

but when I write:



func int DIA_Addon_Ramon_FirstWarn_Condition()
{
return true;
};



it overwrites entire function?

mud-freak
07.09.2024, 17:05
Yes, correct. Gothic merges instance functions. That means new code is executed after the original. Callable functions are replaced.

Kirides
08.09.2024, 10:09
I dig out a quite old post :) and could be not update, but how it is possible, that by writing with Ninja:

[...]

it overwrites entire function?

On a technical level it's somewhat like "instances are just actions that apply values to a certain INSTANCE", their body consists of assignments (name = "value")
Thus overriding "instance functions" is merely adding additonal assignments, thus overriding previous values.

whereas functions contain logic, when should your overridden function be called? At the start? at the end? when should the game evaluate the result?
functions can theoretically contain very expensive code, having 10 "overrides" that all do the expensive things, just so that the last one wins, would be a huge waste of resources and cause of FPS drops

Damianut
09.09.2024, 16:57
having 10 "overrides" that all do the expensive things, just so that the last one wins, would be a huge waste of resources and cause of FPS drops

Thanks for the further explanation. :gratz


Ninja in Poland

Using the patches for Ninja is common in German Gothic community, but a situation is quite different abroad. When in Polish community you chat about the plugins, you know, that they are generally for Union.

That's why I wrote the article about Ninja – I briefly explained what Ninja is, and why you should install it. I also presented a list of the patches, which the most probably haven't an equivalent for Union.

I prepared English translation of the article. So you can read about Ninja from Polish perspective: Gothic Up (https://gothic.org.pl/en/gothic-en/mods-en/ninja-the-gothic-extension/).

And here the original, if Polish players will read this post: Gothic Up (https://gothic.org.pl/gothic/modyfikacje/ninja-rozszerzenie-do-gothica/).

mud-freak
09.09.2024, 18:05
Thank you again for this article. It's a good read! And thanks for sharing the link here, too!

Sebtho
05.10.2024, 17:10
Hi zusammen,

ich bin aktuell dabei einen kleinen Patch zu erstellen, tue mich allerdings mit der Validierung und Kompatibilität schwer. (Ich nutze den GitHub Workflow für den PatchValidator)

Zum einen wundere ich mich, dass vom Validator selbst TRUE als Symbol(richtiges Wort?) erkannt wird, vielleicht kann mich ja jemand erleuchten?

Zum anderen baut mein Script auf recht vielen Symbolen(?) aus dem Original auf, was man ja eigentlich nicht voraussetzen sollte. Leider gelingt es mir aber nicht Script-eigene Variablen zu nutzen, da ich keine gültige Zuweisung von PC_Hero zu meiner variable hinbekomme.
Ich hoffe jemand erkennt meinen Fehler und kann mir den richtigen Ansatz zeigen. :gratz

Eine andere Frage ist auch noch woher ich den Variablen Typen z.B. für PC_Hero meiner Variable kennen soll?
Vermutlich stell ich mich da einfach blöd an, aber kann man diese irgendwo nachschlagen, ohne gleich alle Spieldateien durchwühlen zu müssen ?

Oder ist meine Herangehensweise vlt. gar keine gute Idee für einen Patch?

Für ein Feedback oder sogar Verbesserungsvorschläge wäre ich echt dankbar. :gratz

Hier der aktuelle Code :



//*******************************************************
// Validation of Symbols
//*******************************************************
//var string FP_PC_Hero;


//Func void Ultimate validation (){

// if (MEM_FindParserSymbol("PC_Hero") != -1) {
// var zCPar_Symbol symb; symb = _^(MEM_GetSymbol("PC_Hero"));
// value = symb.content;
// }
//}


//*******************************************************
// Das Stoßgebet für Zwischendurch
//*******************************************************
INSTANCE FastPray_PC_PrayShrine_Pray_Better (C_Info)
{
npc = PC_Hero;
nr = 15;
condition = FastPray_PC_PrayShrine_Pray_Better_Condition;
information = FastPray_PC_PrayShrine_Pray_Better_Info;
permanent = 1;
description = "Beten - Besser";
};


FUNC INT FastPray_PC_PrayShrine_Pray_Better_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_PRAYSHRINE)
{
return 1;
};
};


FUNC VOID FastPray_PC_PrayShrine_Pray_Better_Info()
{
if (ShrineIsObsessed == 1)
{
SC_IsObsessed = TRUE;
PrintScreen (PRINT_SCIsObsessed, -1,-1,FONT_Screen,2);
Snd_Play ("DEM_Die");
}
else
{
Info_ClearChoices (FastPray_PC_PrayShrine_Pray_Better);
Info_AddChoice (FastPray_PC_PrayShrine_Pray_Better,Dialog_Back,FastPray_PC_PrayShrine_Pray_Bett er_Back);
if (Npc_HasItems (hero,ItMi_Gold) >=1000)
{
Info_AddChoice (FastPray_PC_PrayShrine_Pray_Better,"Ich will beten und spende 1000 Goldstücke.",FastPray_PC_PrayShrine_Pray_UltimatePay);
};
};
};


FUNC VOID FastPray_PC_PrayShrine_Pray_Better_Back ()
{
Info_ClearChoices (FastPray_PC_PrayShrine_Pray_Better);
};


//****************
// 1000 Gold - Modded Version
//****************
func VOID FastPray_PC_PrayShrine_Pray_UltimatePay ()
{
var int zufall; zufall = Hlp_Random(100);

Npc_RemoveInvItems (hero,ItMi_Gold, 1000);

// ----- Heute Schon gebetet? -----
if (PrayDay == Wld_GetDay())
{
PrintScreen (Print_BlessNone, -1, -1, FONT_SCREEN, 2);
}
else//heute noch nicht gebetet
{
if (Shrine_STR_Bonus < 10)
&& (hero.guild != GIL_KDF)
&& (hero.guild != GIL_NOV)
&& (zufall < 50)
{
B_BlessAttribute (hero, ATR_STRENGTH, 10);
Shrine_STR_Bonus += 10;
}
else if (Shrine_DEX_Bonus < 10)
&& (hero.guild != GIL_KDF)
&& (hero.guild != GIL_NOV)
&& (zufall >= 50)
{
B_BlessAttribute (hero, ATR_DEXTERITY, 10);
Shrine_DEX_Bonus += 10;
}
else if (Shrine_MANA_Bonus < 20)
&& (hero.guild != GIL_SLD)
&& (hero.guild != GIL_DJG)
{
B_BlessAttribute (hero, ATR_MANA_MAX, 10);
Shrine_MANA_Bonus += 10;
}
else
{
B_BlessAttribute (hero, ATR_HITPOINTS_MAX, 30);
};
};

//PrayDay = Wld_GetDay (); // Keine Limitierung auf 1 mal täglich mehr
Info_ClearChoices (FastPray_PC_PrayShrine_Pray_Better);
};


func void FastPray_Init_Internal (){


};

Kirides
06.10.2024, 09:30
Hi zusammen,

ich bin aktuell dabei einen kleinen Patch zu erstellen, tue mich allerdings mit der Validierung und Kompatibilität schwer. (Ich nutze den GitHub Workflow für den PatchValidator)

Zum einen wundere ich mich, dass vom Validator selbst TRUE als Symbol(richtiges Wort?) erkannt wird, vielleicht kann mich ja jemand erleuchten?
[...]
TRUE ist auch nur eine "const int TRUE = 1;" in den Scripten, es ist kein Sprachkonstrukt wie in modernen programmiersprachen (C hat auch kein true/false - älteres C zumindest)




Zum anderen baut mein Script auf recht vielen Symbolen(?) aus dem Original auf, was man ja eigentlich nicht voraussetzen sollte. Leider gelingt es mir aber nicht Script-eigene Variablen zu nutzen, da ich keine gültige Zuweisung von PC_Hero zu meiner variable hinbekomme.
Ich hoffe jemand erkennt meinen Fehler und kann mir den richtigen Ansatz zeigen. :gratz
[...]

Wenn dem der Fall ist, kann dein Patch nur in wenigen Mods genutzt werden, und dann auch nur in Gothic 2 vermutlich.




Eine andere Frage ist auch noch woher ich den Variablen Typen z.B. für PC_Hero meiner Variable kennen soll?
Vermutlich stell ich mich da einfach blöd an, aber kann man diese irgendwo nachschlagen, ohne gleich alle Spieldateien durchwühlen zu müssen ?
[...]

(Shameless plug)
Mit Visual Studio Code und meiner Erweiterung https://forum.worldofplayers.de/forum/threads/1539259-Ankündigung-VSCode-Daedalus-Extension/
kann man sehr komfortabel durch den Quellcode navigieren und auch Symbole suchen.

z.B. mit der Tastenkombination STRG+T 53973
Des weiteren kann man auch noch "zu den Definitionen" und anderen dingen springen, oder alle Verweise auf eine Variable anzeigen.

mud-freak
18.01.2025, 20:39
Es gibt eine neue Version von Ninja.

Damit wird die neuste Version von Ikarus (https://github.com/Lehona/Ikarus/releases/tag/v1.2.3) und die neuste Version von LeGo (https://github.com/Lehona/LeGo/releases/tag/v2.9.0) nun auch nach Versionsnummer unterstützt. Das ist nur eine Formalität, inhaltlich gibt es dort keine Änderungen.


Aktueller Download über Spine (https://clockwork-origins.com/spine/), im Steam Workshop von Gothic 1 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786936496) und Gothic 2 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786910489) oder auf GitHub (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v3116-jan-18-2025).


Unterstützen kann jeder das Projekt durch melden von jeglichen Problemen hier in diesem Thread oder im GitHub Issue Tracker. Andere Wege der Unterstützung (https://ko-fi.com/szapp) finden sich auch im GitHub Repository.

XardasLP
26.03.2025, 14:33
Es gibt eine neue Version von Ninja.

Damit wird die neuste Version von Ikarus (https://github.com/Lehona/Ikarus/releases/tag/v1.2.3) und die neuste Version von LeGo (https://github.com/Lehona/LeGo/releases/tag/v2.9.0) nun auch nach Versionsnummer unterstützt. Das ist nur eine Formalität, inhaltlich gibt es dort keine Änderungen.


Aktueller Download über Spine (https://clockwork-origins.com/spine/), im Steam Workshop von Gothic 1 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786936496) und Gothic 2 (https://steamcommunity.com/sharedfiles/filedetails/?id=2786910489) oder auf GitHub (https://github.com/szapp/Ninja/releases).

Der Changelog findet sich hier (https://github.com/szapp/Ninja/wiki/Changelog#v3116-jan-18-2025).


Unterstützen kann jeder das Projekt durch melden von jeglichen Problemen hier in diesem Thread oder im GitHub Issue Tracker. Andere Wege der Unterstützung (https://ko-fi.com/szapp) finden sich auch im GitHub Repository.

Hey,

Ninja wird von allen Browsern aufgrund vom Microsoft Defender direkt als Virus markiert und in Quarantäne verschoben.

Sahavel
27.03.2025, 07:53
Tag,
auch die Spine-Installation wird vom Windows-Defender blockiert, da dieser die Ninja.dll als Adware:Win32/Agent erkennt..

uhrparis
27.03.2025, 09:59
Grundsätzlich sollte Antiviren-Software deaktiviert werden, wenn es um Gothic 2 und deren Tools geht.
Geh auf Systemsteuerung, Verwaltung, Dienste und auf Windows Defender und stelle auf manuell.
Ich würde, wenn es für mich wäre, Defender gleich deaktivieren. Defender braucht kein Mensch mehr.

Homerclon
27.03.2025, 18:06
Grundsätzlich sollte Antiviren-Software deaktiviert werden, wenn es um Gothic 2 und deren Tools geht.
Geh auf Systemsteuerung, Verwaltung, Dienste und auf Windows Defender und stelle auf manuell.
Ich würde, wenn es für mich wäre, Defender gleich deaktivieren. Defender braucht kein Mensch mehr.
Sollte man NICHT.

Man braucht keine Antiviren-Software von Drittanbieter, der Windows-Defender ist ausreichend.
Speziell als Windows-Nutzer sollte man NICHT auf Antiviren-Software verzichten.
Wer Online-Banking macht, darf auch - auf jedem anderen Betriebssystem - nicht darauf verzichten. Denn sollte es zu einem Betrugsfall kommen, wird einem daraus einen Strick drehen.

hlennarz
28.03.2025, 14:45
Wenn Ich Gothic 1 mit Ninja über Spine starten will kommt immer die Fehlermeldung es sei eine Datei beschädigt. Neuinstallation von Ninja brachte keine Besserung.

Edit:
Jetzt auch bei Gothic 2 modifikationen. toll...

neocromicon
28.03.2025, 17:13
Wenn Ich Gothic 1 mit Ninja über Spine starten will kommt immer die Fehlermeldung es sei eine Datei beschädigt. Neuinstallation von Ninja brachte keine Besserung.

Edit:
Jetzt auch bei Gothic 2 modifikationen. toll...
Ninja/Union funktionieren nicht mehr - Anleitung reparieren. (https://forum.worldofplayers.de/forum/threads/1629761-Ninja-Union-funktionieren-nicht-mehr-Anleitung-reparieren)

New Visitor
29.03.2025, 11:34
Hallo

Während der Ausführung wurde Ninja als Bedrohung erkannt und von NORTON in Quarantäne versetzt.

Ninja unter spine (314) ist seit heute nicht mehr verwendbar, löschbar bzw. installierbar. Es hängt bei 99%.



MfG
New Visitor

Grand0815
29.03.2025, 14:55
Ich wollte nach nun über einem Jahr endlich mal Archolos spielen. Angeblich wurde Ninja über Spine nicht gefunden - Gut ok - Über Spine gelöscht - Neuinstallieren - bleibt bei 99% stehen.

Dann über WorldofGothic runtergeladen --> Virus erkannt. Ich habe echt keine Möglichkeit mehr Ninja neu zu installieren. Echt ärgerlich :-( Zumal nun auch alle anderen Mods nicht mehr starten bei Ninja nicht mehr da ist. Ätzend..

Kirides
30.03.2025, 09:40
Ich hab das ganze mal bei Microsoft Windows Defender eingereicht.

Es betrifft wohl nur neuere Versionen von Ninja, ich vermute mal das da irgend eine du..unkluge heuristik da seit neustem es mit irgendeinem virus vergleicht.

Wer weiß ob die Defender Leute da drauf gucken oder nicht...

54686


Um Dennoch Ninja benutzen zu können, muss man mit dem Defender eine Ausnahme hinzufügen wenn er die "Böswillige Software" erkennt

Dafür sobald "erkannt" wurde im Defender das Menü aufklappen von dem Treffer und bei Aktionen "Auf diesem Computer Zulassen" o.ä. auswählen und dann "Aktionen ausführen" klicken.
Dann bleibt Ninja vorhanden.

mud-freak
04.04.2025, 23:51
Ich hab das ganze mal bei Microsoft Windows Defender eingereicht.

Danke dir für die Initiative!

Ich probiere ab und zu in ein paar, eher wenigen, freien Minuten einige Ansätze.

Auszuprobieren, ob Code Signing da helfen kann (unwahrscheinlich), ist finanziell zu riskant, bzw. gestaltet sich bei den bisherigen 0 gesammelten Ko-Fi-Euros eher schwierig.

Adaanos
11.04.2025, 16:53
hab auch nur im Windows Defender die Ausnahme hinzugefügt und funktioniert super.
das waren 2 Klicks. :D

interessant ist aber das meine alte Installation von gothic 2 mit ninja (1 jahr alt) weiterhin ganz normal klappte. konnte es mit ninja starten und die patches gingen.