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.
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
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
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. 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.
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.
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.
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
Spoiler:(zum lesen bitte Text markieren)
Code:
//====================== 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)
//=====================================================
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.
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)
Fragen zu Returning 2.0 oder alternativem Balacing?
Fast alle Antworten gibt es entweder im Startpost oder als bereits gestellte Frage in diesem Thread
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?
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?
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.