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

 

Seite 13 von 34 « Erste ... 26910111213141516172024 ... Letzte »
Ergebnis 241 bis 260 von 668
  1. Beiträge anzeigen #241 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    Zitat Zitat von mud-freak Beitrag anzeigen
    Ah okay, honest mistake. I can have a look once I have time. Probably next week.
    Thank you, if u would have time pls just look into a trial for a extended patch. I think the problem those new funcs needs to be started from init_global . I do not know how to swap that in Ninja.
    https://www.sendspace.com/file/ti7z43
    Geändert von pawbuj (07.02.2020 um 09:32 Uhr)

  2. Beiträge anzeigen #242 Zitieren
    Rock Me Amadeus  Avatar von Askanius
    Registriert seit
    Oct 2009
    Beiträge
    3.972
     
    Askanius ist offline
    Hey,

    gibt es nicht irgendwo eine Liste mit allen Patches? Ich finde sie leider gerade nicht. Mittlerweile hat es ja einige hochinteressante Sachen wie die Fackel-Hotkeys oder dass Händler nicht mehr ihre Waffen wechseln.

  3. Beiträge anzeigen #243 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von Askanius Beitrag anzeigen
    Hey,

    gibt es nicht irgendwo eine Liste mit allen Patches? Ich finde sie leider gerade nicht. Mittlerweile hat es ja einige hochinteressante Sachen wie die Fackel-Hotkeys oder dass Händler nicht mehr ihre Waffen wechseln.
    Soweit dort hochgeladen, finden sich die Patches wie andere auch auf der Downloadseite von Worldofgothic.


    Zitat Zitat von pawbuj Beitrag anzeigen
    Thank you, if u would have time pls just look into a trial for a extended patch. I think the problem those new funcs needs to be started from init_global . I do not know how to swap that in Ninja.
    https://www.sendspace.com/file/ti7z43
    I don't understand your upload. There are "loose" files that are different from the VDF; inside the VDF there is a file called "Text1" that is not referenced from anywhere. Other than that the patch is unchanged.
    Geändert von mud-freak (12.02.2020 um 21:14 Uhr)

  4. Beiträge anzeigen #244 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von Blubbler Beitrag anzeigen
    Code:
    [i] 00:00 ++++++++++++++ Start by  ++++++++++++++
    [i] 00:00 Info:  5 J: NINJA: Loading Ninja v2.0.01, built 2019-11-16 16:16:25, CRC-32: 0xA01D3681 .... <zError.cpp,#462>
    [i] 00:00 Info:  5 J: NINJA: Registering console command .... <zError.cpp,#462>
    [i] 00:00 Info:  5 J: NINJA: Reading ignore list from ini .... <zError.cpp,#462>
    [i] 00:00 Info:  5 J: NINJA: Detecting/sorting patches .... <zError.cpp,#462>
    [i] 00:00 Info:  5 X: Vid_SetDevice: No changes ... .... <zRndD3D_Vid.cpp,#355>
    [i] 00:00 Info:  5 X: Vid_SetScreenMode: Setting New Mode... .... <zRndD3D_Vid.cpp,#577>
    [i] 00:00 Info:  4 X: RND_D3D: SetMode .. .... <zRndD3D_Vid.cpp,#500>
    [i] 00:01 Info:  5 X:   Store Device: NVIDIA GeForce GTX 650 Ti .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   zCDXTCCache_D3D :: ClearCache: Surfaces to clear - 0 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: 1024 x 768 x 32(device:0 mode:0) .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPerDX: D3DXInitialize done .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPerDX: Found NVIDIA GeForce GTX 650 Ti \ Microsoft Direct3D Hardware Transform and Lighting acceleration capable device .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPerDX: Switching to NVIDIA GeForce GTX 650 Ti \ Microsoft Direct3D Hardware Transform and Lighting acceleration capable device .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPerDX: Hardware TnL supported. .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_TestCapabilities: Device has passed capability tests. .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   D3D Device-Info: szDriver=nvldumd.dll .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   D3D Device-Info: szDescription=NVIDIA GeForce GTX 650 Ti .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   D3D Device-Info: wProduct=0 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   D3D Device-Info: wVersion=0 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   D3D Device-Info: wSubVersion=0 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   D3D Device-Info: wBuild=0 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   D3D Device-Info: dwVendorId=4318 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   D3D Device-Info: dwDeviceId=4550 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   D3D Device-Info: dwSubSysId=298193072 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   D3D Device-Info: dwRevision=161 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_EnumTextureCallback: Store RGB Format .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_EnumTextureCallback: Store RGB Format .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_EnumTextureCallback: Store RGB Format .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_EnumTextureCallback: Store RGB Format .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_EnumTextureCallback: Device supports DXT1 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_EnumTextureCallback: Device supports DXT2 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_EnumTextureCallback: Device supports DXT3 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_EnumTextureCallback: Device supports DXT4 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_EnumTextureCallback: Device supports DXT5 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: Maximal texture width  -> 16384 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: Maximal texture height -> 16384 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: Alpha testing supported .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: no w-buffering .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: Color-Buffer depth:32 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: Z-Buffer depth:32 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: caps - windowed mode possible .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: caps - gamma correction enabled .... <zRndD3D_Init.cpp,#785>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: caps - total videomem:4294901760 .... <zRndD3D_Init.cpp,#804>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: caps - free videomem:4288544768 .... <zRndD3D_Init.cpp,#805>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: caps - w-based fog supported .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: Start to rebuild vertexbuffers ... .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   XD3D_InitPort: Vertexbuffers rebuild done. .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   Start to rebuild saved textures (lightmaps) ... .... <zError.cpp,#462>
    [i] 00:01 Info:  5 X:   Number of rebuild textures:0 .... <zError.cpp,#462>
    [i] 00:01 Info:  3 D: TEX: texMaxSize: 16384, texScaleSize: 4, texScaleBPP: -1 .... <zTexture.cpp,#556>
    [i] 00:01 Info:  4 X: RND_D3D: SetMode .. .... <zRndD3D_Vid.cpp,#500>
    [i] 00:01 Info:  5 X:   Vid_SetMode: No changes ... .... <zRndD3D_Vid.cpp,#508>
    [i] 00:01 Info:  5 U: FNT: Loading Font: font_default.tga .... <zFonts.cpp,#196>
    [i] 00:01 Info:  4 B: FONT: Loading Font-Data: \_WORK\DATA\TEXTURES\_COMPILED\FONT_DEFAULT.FNT .... <zFonts.cpp,#361>
    [i] 00:01 Info:  3 C: MUS: Loading file 'system\music.src or .dat' .... <zMusic_DM.cpp,#371>
    [i] 00:01 Info:  5 U:PAR: Loading MUSIC.DAT .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:PAR: Linking skipped. .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:PAR: Symbols   : 285 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:PAR: Code Size : 2872 bytes. .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:PAR: Linking ok (0s). .... <zError.cpp,#462>
    [i] 00:01 Info:  5 J:NINJA: Adding divider symbol .... <zError.cpp,#462>
    [i] 00:01 Info:  5 C: *** Miles Sound System implementation v 0.1 .... <zSndMSS.cpp,#485>
    [i] 00:01 Info:  3 C: SND: Loading file 'system\sfx.src or .dat' .... <zSndMSS.cpp,#508>
    [i] 00:01 Info:  5 U:PAR: Loading SFX.DAT .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:PAR: Linking skipped. .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:PAR: Symbols   : 2993 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:PAR: Code Size : 40163 bytes. .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:PAR: Linking ok (0s). .... <zError.cpp,#462>
    [i] 00:01 Info:  5 J:NINJA: Adding divider symbol .... <zError.cpp,#462>
    [i] 00:01 Info:  5 C: *** mss.dll version 6.1c .... <zSndMSS.cpp,#634>
    [i] 00:01 Info:  5 C: success :Device: DirectSound - MSS Mixer .... <zSndMSS.cpp,#685>
    [i] 00:01 Info:  5 C: found 3d sound provider: Miles Fast 2D Positional Audio .... <zSndMSS.cpp,#2165>
    [i] 00:01 Info:  5 C: used 3d sound provider: Miles Fast 2D Positional Audio .... <zSndMSS.cpp,#2184>
    [i] 00:01 Info:  5 C: found filter: Autopan Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Capture Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Chorus Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Compressor Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Flange Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: HighPass Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Lagrangian Interpolator .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: LowPass Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Mono Delay Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Parametric EQ Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Reverb1 Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Reverb2 Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Reverb3 Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: Stereo Delay Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  5 C: found filter: ShelvingEQ Filter .... <zSndMSS.cpp,#701>
    [i] 00:01 Info:  4 C: opening reverb3 filter processor .... <zSndMSS.cpp,#712>
    [i] 00:01 Info:  5 D: zCSoundManager: script sounds registered: 104 .... <zError.cpp,#462>
    [i] 00:01 Info:  3 D: MSH: Loading Mesh: GROUNDSHADOW.MSH .... <zMesh.cpp,#3168>
    [w] 00:01 Warn:  0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    [w] 00:01 Warn:  0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    [w] 00:01 Warn:  0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    [w] 00:01 Warn:  0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    [w] 00:01 Warn:  0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    [w] 00:01 Warn:  0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    [w] 00:01 Warn:  0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    [w] 00:01 Warn:  0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    [w] 00:01 Warn:  0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    [w] 00:01 Warn:  0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    [i] 00:01 Info:  5 D: Loading lensflare-script 'lensflare.zen' (28 fx). .... <zError.cpp,#462>
    [i] 00:01 Info:  5 D: ARC: .. Closing (1 objects) .... <zError.cpp,#462>
    [i] 00:01 Info:  5 D: ARC: .. Closing (37 objects) .... <zError.cpp,#462>
    [i] 00:01 Info:  3 D: PFX: Loading pfx-script ... .... <zParticle.cpp,#249>
    [i] 00:01 Info:  3 D:   PFX: Loading file 'system\particlefx.src or .dat' .... <zParticle.cpp,#253>
    [i] 00:01 Info:  5 U:  PAR: Loading PARTICLEFX.DAT .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:  PAR: Linking skipped. .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:  PAR: Symbols   : 4586 .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:  PAR: Code Size : 95004 bytes. .... <zError.cpp,#462>
    [i] 00:01 Info:  5 U:  PAR: Linking ok (0s). .... <zError.cpp,#462>
    [i] 00:01 Info:  5 J:  NINJA: Adding divider symbol .... <zError.cpp,#462>
    [i] 00:01 Info:  3 D:   MSH: Loading Mesh: DEMON_DIE.MSH .... <zMesh.cpp,#3168>
    [i] 00:02 Info:  3 D:   MSH: Loading Mesh: COLDUMMY.MSH .... <zMesh.cpp,#3168>
    [w] 00:02 Warn:  0 D:   z3d(zCMesh::Load): Could not load Mesh: healbody.3ds .... <zMesh.cpp,#429>
    [i] 00:02 Info:  3 D:   MSH: Loading Mesh: ITMI_RING_01.MSH .... <zMesh.cpp,#3168>
    [w] 00:02 Warn:  0 D:   z3d(zCMesh::Load): Could not load Mesh: HEALBODY.3DS .... <zMesh.cpp,#429>
    [i] 00:02 Info:  3 D:   MSH: Loading Mesh: TELEPORT_AURA.MSH .... <zMesh.cpp,#3168>
    [i] 00:02 Info:  3 D:   MSH: Loading Mesh: NC_OREHEAP_PFX.MSH .... <zMesh.cpp,#3168>
    [w] 00:02 Warn:  0 D:   z3d(zCMesh::Load): Could not load Mesh: Healbody.3DS .... <zMesh.cpp,#429>
    [i] 00:02 Info:  3 D:   PFX: Num ParticleFX: 280 .... <zParticle.cpp,#299>
    [i] 00:02 Info:  4 D: INPUT: Initializing DirectInput .. .... <zInput_Win32.cpp,#377>
    [i] 00:02 Info:  4 D:   INPUT: keyboard initialized .... <zInput_Win32.cpp,#388>
    [i] 00:02 Info:  4 D:   INPUT: mouse initialized. .... <zInput_Win32.cpp,#395>
    [i] 00:02 Info:  0 D: *** zEngine-Init ... Done ! .... <zEngine.cpp,#156>
    [w] 00:02 Warn:  0 B: ERR: BLOCK-END unexpected: D:\dev\gothic\current_work\ZenGin\_Dieter\zEngine.cpp line 156 .... <zError.cpp,#419>
    [i] 00:02 ---------------
    [i] 00:02 Info:  4 B: GMAN: Open InitScreen .... <oGameManager.cpp,#741>
    [i] 00:03 Info:  5 C: *** Visual FX Implementation v0.5 .... <zError.cpp,#462>
    [i] 00:03 Info:  3 C: VFX: Loading file 'system\visualfx.src or .dat' .... <oVisFX.cpp,#751>
    [i] 00:03 Info:  5 U:PAR: Loading VISUALFX.DAT .... <zError.cpp,#462>
    [i] 00:03 Info:  5 U:PAR: Linking skipped. .... <zError.cpp,#462>
    [i] 00:03 Info:  5 U:PAR: Symbols   : 1170 .... <zError.cpp,#462>
    [i] 00:03 Info:  5 U:PAR: Code Size : 14713 bytes. .... <zError.cpp,#462>
    [i] 00:03 Info:  5 U:PAR: Linking ok (0s). .... <zError.cpp,#462>
    [i] 00:03 Info:  5 J:NINJA: Adding divider symbol .... <zError.cpp,#462>
    [i] 00:03 Info:  3 B: SG: Initializing savegame-manager ... .... <osavegame.cpp,#244>
    [i] 00:03 Info:  3 C: VFX: Loading file 'system\visualfx.src or .dat' .... <oVisFX.cpp,#751>
    [i] 00:03 Info:  5 U:PAR: Loading VISUALFX.DAT .... <zError.cpp,#462>
    [i] 00:03 Info:  5 U:PAR: Linking skipped. .... <zError.cpp,#462>
    [i] 00:03 Info:  5 U:PAR: Symbols   : 1170 .... <zError.cpp,#462>
    [i] 00:03 Info:  5 U:PAR: Code Size : 14713 bytes. .... <zError.cpp,#462>
    [i] 00:03 Info:  5 U:PAR: Linking ok (0s). .... <zError.cpp,#462>
    [i] 00:03 Info:  5 J:NINJA: Adding divider symbol .... <zError.cpp,#462>
    [i] 00:03 Info:  5 B: SPC: Loading binary output-library 'OU.BIN' ... .... <zCCSManager.cpp,#384>
    [i] 00:03 Info:  3 B: CSLib: loading library ... .... <zCCSLib.cpp,#33>
    [i] 00:03 Info:  3 B:   CSLib: Number of items: 9617 (UnArc) .... <zCCSLib.cpp,#39>
    [i] 00:03 Info:  3 B:   CSLib: Sorting library ... .... <zCCSLib.cpp,#57>
    [i] 00:03 Info:  3 B:   CSLib: finished loading library .... <zCCSLib.cpp,#64>
    [i] 00:03 Info:  3 D: MSH: Loading Mesh: MAGICFRONTIER_OUT.MSH .... <zMesh.cpp,#3168>
    [i] 00:03 Info:  3 B: GAME: Loading file 'content\gothic.src or .dat' .... <oGame.cpp,#716>
    [i] 00:03 Info:  5 U:PAR: Loading GOTHIC.DAT .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:PAR: Linking skipped. .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:PAR: Symbols   : 44998 .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:PAR: Code Size : 1418225 bytes. .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:PAR: Linking ok (0s). .... <zError.cpp,#462>
    [i] 00:04 Info:  5 J:NINJA: Adding divider symbol .... <zError.cpp,#462>
    [i] 00:04 Info:  5 J:NINJA: Adding helper symbols .... <zError.cpp,#462>
    [i] 00:04 Info:  3 B: NPC: Loading file 'content\fight.src or .dat' .... <oNpc_Fight.cpp,#136>
    [i] 00:04 Info:  5 U:PAR: Loading FIGHT.DAT .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:PAR: Linking skipped. .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:PAR: Symbols   : 369 .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:PAR: Code Size : 7042 bytes. .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:PAR: Linking ok (0s). .... <zError.cpp,#462>
    [i] 00:04 Info:  5 J:NINJA: Adding divider symbol .... <zError.cpp,#462>
    [i] 00:04 Info:  3 U: AI: Reading Script-fight-ai finished .... <oNpc_Fight.cpp,#154>
    [i] 00:04 Info:  5 U: NPC: Found player-perception AssessMagic. .... <oNPC.cpp,#14567>
    [i] 00:04 Info:  5 U:GUILDS:Guild-attitude-table changed : GIL_ATTITUDES .... <oGuilds.cpp,#132>
    [i] 00:04 Info:  5 U: INF: 1947 Infos found. .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:TRADE: 2 ItemReactModules found. .... <zError.cpp,#462>
    [i] 00:04 Info:  3 C: MENU: Initializing menusystem .... <zmenu.cpp,#104>
    [i] 00:04 Info:  3 C:   MENU: Loading file 'system\menu.src or .dat' .... <zmenu.cpp,#108>
    [i] 00:04 Info:  5 U:  PAR: Loading MENU.DAT .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:  PAR: Linking skipped. .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:  PAR: Symbols   : 1105 .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:  PAR: Code Size : 30617 bytes. .... <zError.cpp,#462>
    [i] 00:04 Info:  5 U:  PAR: Linking ok (0s). .... <zError.cpp,#462>
    [i] 00:04 Info:  5 J:  NINJA: Adding divider symbol .... <zError.cpp,#462>
    [i] 00:04 Info:  5 C:   Creating Sound Instance MENU_BROWSE   (alternative: 0) .... <zSndMSS.cpp,#1208>
    [i] 00:04 Info:  5 C:   Creating Sound Instance MENU_SELECT   (alternative: 0) .... <zSndMSS.cpp,#1208>
    [i] 00:04 Info:  5 C:   Creating Sound Instance MENU_ESC   (alternative: 0) .... <zSndMSS.cpp,#1208>
    [w] 00:04 Warn:  0 B: ERR: BLOCK-END unexpected: D:\dev\gothic\current_work\Gothic\_Bert\oGameManager.cpp line 586 .... <zError.cpp,#419>
    [i] 00:04 Info:  5 U: FNT: Loading Font: font_old_10_white_hi.tga .... <zFonts.cpp,#196>
    [i] 00:04 Info:  4 B: FONT: Loading Font-Data: \_WORK\DATA\TEXTURES\_COMPILED\FONT_OLD_10_WHITE_HI.FNT .... <zFonts.cpp,#361>
    [i] 00:04 Info:  5 U: FNT: Loading Font: font_old_10_white.tga .... <zFonts.cpp,#196>
    [i] 00:04 Info:  4 B: FONT: Loading Font-Data: \_WORK\DATA\TEXTURES\_COMPILED\FONT_OLD_10_WHITE.FNT .... <zFonts.cpp,#361>
    [i] 00:04 Info:  5 U: FNT: Loading Font: font_old_20_white.tga .... <zFonts.cpp,#196>
    [i] 00:04 Info:  4 B: FONT: Loading Font-Data: \_WORK\DATA\TEXTURES\_COMPILED\FONT_OLD_20_WHITE.FNT .... <zFonts.cpp,#361>
    [i] 00:04 Info:  5 U: FNT: Loading Font: font_old_20_white_hi.tga .... <zFonts.cpp,#196>
    [i] 00:04 Info:  4 B: FONT: Loading Font-Data: \_WORK\DATA\TEXTURES\_COMPILED\FONT_OLD_20_WHITE_HI.FNT .... <zFonts.cpp,#361>
    [i] 00:04 Info:  4 B: GMAN: MenuScreen .... <oGameManager.cpp,#766>
    [i] 00:04 Info:  3 B: GMAN: Entering Menu-Section .... <oGameManager.cpp,#1227>
    [i] 00:04 Info:  3 B: VID: Videomode found .... <oGameManager.cpp,#1034>
    [i] 00:04 Info:  4 B: GMAN: Menu started (outgame) .... <oGameManager.cpp,#1252>
    [i] 00:04 Info:  5 X: [LoadThemeByScript]: Loaded first music band. .... <zError.cpp,#462>
    [i] 00:04 Info:  4 B: GMAN: Menu finished .... <oGameManager.cpp,#1258>
    [i] 00:04 Info:  4 B: MENU: NEW_GAME .... <oGameManager.cpp,#1307>
    [i] 00:04 Info:  4 B: GMAN: Menu-Selection "New Game" world.zen .... <oGameManager.cpp,#1329>
    [i] 00:04 Info:  1 B: GMAN: Loading the World ... .... <oGameManager.cpp,#1333>
    [i] 00:04 Info:  5 U: INF: 1947 Infos found. .... <zError.cpp,#462>
    [i] 00:04 Info:  5 B: GAME: OpenLoadscreen .... <oGame.cpp,#931>
    [i] 00:05 Info:  5 B: GAME: OpenLoadscreen finished .... <oGame.cpp,#976>
    [i] 00:05 Info:  3 B: ---------- 0% ---------- .... <zviewprogressbar.cpp,#142>
    [i] 00:05 Info:  3 B: ---------- 11% ---------- .... <zviewprogressbar.cpp,#142>
    [i] 00:05 Info:  3 U: GAM: Loading startup-data: "world.zen"... .... <oGame.cpp,#2917>
    [i] 00:05 Info:  1 D:   WORLD: Loading WorldFile.. WORLD.ZEN .... <zWorld.cpp,#2300>
    [i] 00:05 Info:  3 B:     ---------- 13% ---------- .... <zviewprogressbar.cpp,#142>
    [i] 00:05 Info:  3 D:     BSP: Loading Mesh & BSP.. .... <zBSP.cpp,#5363>
    [i] 00:05 Info:  3 D:     MESH: Loading Mesh.. .... <zBSP.cpp,#5401>
    [i] 00:05 Info:  3 D:     BSP : Loading Tree.. .... <zBSP.cpp,#5413>
    [i] 00:05 Info:  5 D:     WORLD: Loading VobTree .. .... <zError.cpp,#462>
    [i] 00:05 Info:  3 B:     ---------- 19% ---------- .... <zviewprogressbar.cpp,#142>
    [i] 00:05 Info:  5 C:     Creating Sound Instance CAMPFIRE2   (alternative: 0) .... <zSndMSS.cpp,#1208>
    [i] 00:05 Info:  5 D:     MDL: Loading Model-MDL 'FIREPLACE_MIDDLE.ASC' .... <zModelProto.cpp,#4029>
    [i] 00:05 Info:  5 C:     Shutting down MSS .... <zSndMSS.cpp,#554>
    [i] 00:05 Info:  5 X:     EmergencyExit: Releasing all DirectX-Objects ... .... <zRndD3D_Render.cpp,#266>
    [i] 00:05 Info:  5 X:     EmergencyExit: D3DXUninitialize done .... <zRndD3D_Render.cpp,#284>
    [w] 00:05 Warn:  0 X:     [RND3D-Destructor]: Can't uninitialize D3DX Utility Library ! Error: D3DXERR_D3DXNOTSTARTEDYET .... <zRndD3D.h,#124>
    [i] 00:05 Info:  5 X:     [RND3D-Destructor]: D3DXUninitialize done .... <zRndD3D_Render.cpp,#292>
    [w] 00:06 Warn:  0 C:     lost focus, setting to windowed mode .... <zWin32.cpp,#1254>
    [w] 00:06 Warn:  0 ==    ===================================== UNHANDLED EXCEPTION OCCURED ====================================================== .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 ==    ============================================ CRASH INFOS: ============================================================== .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 GO    THIC 1.08k_mod, Parser Version: 50 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 Us    er:  christisn,  CPUType: 586,  Mem: 2048 MB total, 2048 MB free .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 St    artup Options: .... <zWin32.cpp,#2393>
    [w] 00:06 Warn:  0 -g    ame:welt_der_verurteilten_1_03.ini
    
     .... <zWin32.cpp,#2394>
    [w] 00:06 Warn:  0 ==    ============================================= CALLSTACK : ============================================================== .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:006F86F4 (0x0126F49C 0x00000000 0x1A1F4AC8 0x19BF51A0) GothicMod.exe, zCPar_Symbol::GetValue()+20 byte(s), D:\dev\gothic\current_work\ZenGin\_Ulf\zParser_Symbol.cpp, line 575+7 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:0067B72E (0x19BF51A0 0x000000B1 0x19BF51A0 0x00516188) GothicMod.exe, oCMOB::Unarchive()+590 byte(s), D:\dev\gothic\current_work\Gothic\_Ulf\oMobInter.cpp, line 598+104 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:0068139E (0x19BF51A0 0x00000001 0x0000226D 0x00000000) GothicMod.exe, oCMobFire::Unarchive()+14 byte(s), D:\dev\gothic\current_work\Gothic\_Ulf\oMobInter.cpp, line 2035+13 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:00516188 (0x00000000 0x005F8072 0x19BF51A0 0x0000226D) GothicMod.exe, zCArchiverGeneric::ReadObject()+1992 byte(s), D:\dev\gothic\current_work\ZenGin\_Dieter\zArchiverGeneric.cpp, line 1274 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:005161BE (0x19BF51A0 0x0000226D 0x1797EFA4 0x1797EF80) GothicMod.exe, zCArchiverGeneric::ReadObject()+14 byte(s), D:\dev\gothic\current_work\ZenGin\_Dieter\zArchiverGeneric.cpp, line 1282 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:005F8072 (0x1797EFA4 0x19BF51A0 0x0000000E 0x1797EFA4) GothicMod.exe, zCWorld::UnarcTraverseVobs()+306 byte(s), D:\dev\gothic\current_work\ZenGin\_Dieter\zWorld.cpp, line 2056+20 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:005F82AA (0x1797EFA4 0x00000000 0x1797EF80 0x19BF51A0) GothicMod.exe, zCWorld::UnarcTraverseVobs()+874 byte(s), D:\dev\gothic\current_work\ZenGin\_Dieter\zWorld.cpp, line 2138+10 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:005F82AA (0x00000000 0x19BF51A0 0x19BF51A0 0x007D06E8) GothicMod.exe, zCWorld::UnarcTraverseVobs()+874 byte(s), D:\dev\gothic\current_work\ZenGin\_Dieter\zWorld.cpp, line 2138+10 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:005F86BB (0x19BF0000 0x00000000 0x1797EF80 0x1797EF80) GothicMod.exe, zCWorld::Unarchive()+955 byte(s), D:\dev\gothic\current_work\ZenGin\_Dieter\zWorld.cpp, line 2231 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:006D6728 (0xFFFFFFFF 0x00514700 0x19BF51A0 0x1A1ED018) GothicMod.exe, oCWorld::Unarchive()+40 byte(s), D:\dev\gothic\current_work\Gothic\_Ulf\oWorld.cpp, line 380 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:007A32D9 (0x1A1ED018 0x00000001 0x00000000 0x00000000) GothicMod.exe, SetFileAttributesA()+102717 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:0050A377 (0xFFFFFFFF 0x005161BE 0x1797EF80 0x005F8B22) GothicMod.exe, zCArchiverFactory::CreateArchiverRead()+199 byte(s), D:\dev\gothic\current_work\ZenGin\_Dieter\zArchiver.cpp, line 296 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:007A346E (0x00000000 0x179851C0 0x1797EF80 0x00000002) GothicMod.exe, SetFileAttributesA()+103122 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:005F8B22 (0x00000001 0x00000000 0x0126FB40 0x007D06E8) GothicMod.exe, zCWorld::LoadWorld()+290 byte(s), D:\dev\gothic\current_work\ZenGin\_Dieter\zWorld.cpp, line 2343 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:006D6C4D (0x0126FB40 0x00000000 0x0126FC14 0x178CC008) GothicMod.exe, oCWorld::LoadWorld()+669 byte(s), D:\dev\gothic\current_work\Gothic\_Ulf\oWorld.cpp, line 447+13 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:0063F286 (0x0126FB40 0x0126FB70 0xFFFFFFFE 0x0126FB70) GothicMod.exe, oCGame::LoadWorldStartup()+246 byte(s), D:\dev\gothic\current_work\Gothic\_Ulf\oGame.cpp, line 2920 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:0063E6BB (0xFFFFFFFE 0x0126FC10 0x0126FCA4 0x00000011) GothicMod.exe, oCGame::LoadWorld()+395 byte(s), D:\dev\gothic\current_work\Gothic\_Ulf\oGame.cpp, line 2685 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:0063C166 (0xFFFFFFFE 0x0126FC10 0x0126FC28 0x00000000) GothicMod.exe, oCGame::LoadGame()+246 byte(s), D:\dev\gothic\current_work\Gothic\_Ulf\oGame.cpp, line 2023 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:0042834E (0x00000000 0x0077A8D8 0x012D36C5 0x0126FEB4) GothicMod.exe, CGameManager::Menu()+2398 byte(s), D:\dev\gothic\current_work\Gothic\_Bert\oGameManager.cpp, line 1337 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:00424EBE (0x007D1078 0x766C31E1 0x00EB0EBC 0x178CC008) GothicMod.exe, CGameManager::Run()+974 byte(s), D:\dev\gothic\current_work\Gothic\_Bert\oGameManager.cpp, line 683 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:006D867B (0x00278000 0x0000002C 0x00000000 0x00000132) GothicMod.exe, MainProg()+75 byte(s), D:\dev\gothic\current_work\Gothic\_Ulf\Phoenix.cpp, line 115 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:004F4326 (0x00400000 0x00000000 0x012D36C5 0x00000001) GothicMod.exe, HandledWinMain()+966 byte(s), D:\dev\gothic\current_work\ZenGin\_Carsten\zWin32.cpp, line 772 .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:004F3E90 (0x00400000 0x00000000 0x012D36C5 0x00000001) GothicMod.exe, WinMain()+128 byte(s), D:\dev\gothic\current_work\ZenGin\_Carsten\zWin32.cpp, line 684+21 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 00    23:0077A9B8 (0xA468007E 0x6400779B 0x000000A1 0x89645000) GothicMod.exe, WinMainCRTStartup()+224 byte(s) .... <zError.cpp,#467>
    [w] 00:06 Warn:  0 ==    ===================================== UNHANDLED EXCEPTION OCCURED ====================================================== .... <zError.cpp,#467>
    [w] 00:08 Warn:  0 B:     GMAN: gameSession is existing. Call CGameManager::Done() before! .... <oGameManager.cpp,#360>
    [i] 00:08 Info:  1 B:     VFILE: Deinitializing filesystem (VDFS) .... <Zdisk_vdfs.cpp,#570>
    [i] 00:08 Info:  2 B:     zDSK: 0 files were simultanously open! .... <Zdisk_vdfs.cpp,#576>
    [i] 00:08 Info:  3 B:     VP: zBinkPlayer deinitialized .... <zbinkplayer.cpp,#46>
    Es passiert nicht bei allen Mods. Ich wollte zum schnelleren Test erst eine Polnisch->Englisch-Übersetzung für eine Minimod namens Ustawka nehmen, aber die ging problemlos.


    Ich habe jetzt mal einen Spielstand ausprobiert und es passiert das Selbe.


    Ich wollte mal in die Gothic.DAT von dem Welt der Verurteilten Patch hineinschauen, aber die ist wohl nicht vernünftig geschrieben, denn sie lässt sich nicht mit DecDat öffnen. Scheinbar gaukelt die Datei vor größer zu sein als sie ist. Ich weiß nicht genau wie dieses Übersetzungstool funktioniert, aber vielleicht hinterlässt es nicht ganz so saubere DAT-Dateien, sodass da Speicherüberlappungen auftreten.
    Das ist kein Problem in Ninja.

  5. Beiträge anzeigen #245 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    @mud-freak

    I have problem with initalize following funcs.

    Code:
    func void Ninja_Additional_Patch_Init() {    if (GOTHIC_BASE_VERSION == 1){
        
        MEM_InitAll();    
        Ninja_FixMobSwitches_Init();// Start_Up/Init_Global();
        Ninja_FixAttitudes_Init();  // Start_Up/Init_Global();
        ZS_Sleep ();          // ZS/();
            };
    
    /*
     * Initialization function called by Ninja after "Init_Global" (G2) / "Init_<Levelname>" (G1)
     */
    func void Ninja_ColorFocusVobs_Init() {
        MEM_InitAll();
        HookEngineF(oCGame__UpdateStatus, 8, Ninja_ColorFocusVobs_UpdateStatus);
        
        //Ninja_Additional_Patch_Init();
        };
        };
    FixMobSwitches and FixAttitudes was run in my mod from Startup/Init_Global. It was working without a problem. Now FixAttitutes leads to crash and FixMobSwitches cause no change in a game. ZS_Sleep is just a swap of standard sleep routine.

    My question is Do I initalize these funcs properly?
    Geändert von pawbuj (13.02.2020 um 10:27 Uhr)

  6. Beiträge anzeigen #246 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von pawbuj Beitrag anzeigen
    FixMobSwitches and FixAttitudes was run in my mod from Startup/Init_Global. It was working without a problem. Now FixAttitutes leads to crash and FixMobSwitches cause no change in a game. ZS_Sleep is just a swap of standard sleep routine.

    My question is Do I initalize these funcs properly?
    Well, you will have to investigate. Show some initiative. Start by thoroughly reading the entire Ninja documentation and try to understand what you need to adjust in the functions to avoid incompatibilities.

  7. Beiträge anzeigen #247 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    I have cancelled
    Code:
    Mem_InitAll ();
    in first start-up func and at least func FixMobSwitches & swapped ZS_Sleep works now. Thanks for a tip!

    Code:
    func void Ninja_Additional_Patch_Init() {    if (GOTHIC_BASE_VERSION == 1){    
        //MEM_InitAll();    
        Ninja_FixMobSwitches_Init();// Start_Up/Init_Global();
        Ninja_FixAttitudes_Init();  // Start_Up/Init_Global();
        ZS_Sleep ();          // ZS/();
            };
    
    /*
     * Initialization function called by Ninja after "Init_Global" (G2) / "Init_<Levelname>" (G1)
     */
    func void Ninja_ColorFocusVobs_Init() {
        MEM_InitAll();
         //HookEngineF(oCGame__UpdateStatus, 8, Ninja_ColorFocusVobs_UpdateStatus);
        
         Ninja_Additional_Patch_Init();
        };
        };
    Geändert von pawbuj (13.02.2020 um 14:36 Uhr)

  8. Beiträge anzeigen #248 Zitieren
    Provinzheld
    Registriert seit
    May 2017
    Ort
    Neue Lager
    Beiträge
    206
     
    ErzSchmuggler ist offline
    Erstmal vielen Dank für die Updates und deine Zeit in dem Projekt .

    Meine Gedanken zu Ninja sind:

    Könnte eine Mod-Installation bald wie bei den Gothic 3 CM ausschauen?

    Über ein Installationsmenü können wir erweitert entscheiden, welche Änderungen wir in unser Spiel patchen möchten.

    Vielleicht könnte man auch Alternativen aufzeigen, mehrere Varianten anbieten wenn man so will;
    ob Stat-Powerups und Belohnungen in LP kosten übergehen
    ob man die ein oder andere Upgrade Möglichkeit der Klaue Beliars haben möchte

    Ich finde damit könnte man dem Spieler noch freier Entscheiden lassen, wie SEIN Gothic erlebniss ausschauen soll.
    Oder wenn einem einzelne Dinge Grundlegend nicht gefallen, kann man sie auslassen.

    Ich werde prüfen, ob man dies für mein Projekt umsetzen kann und bin gespannt auf Updates und kommende Patches
    Geändert von ErzSchmuggler (27.02.2020 um 14:08 Uhr) Grund: gramatik

  9. Beiträge anzeigen #249 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.487
     
    Cryp18Struct ist offline
    Wenn man spine nutzt kann man vor Start einer Modifikation bequem auswählen welche patches aktiviert sein sollen und welche nicht:
    [Bild: attachment.php?s=7d2383b2871bcfee1e97bac017336eb4&attachmentid=48927&d=1582816653&thumb=1]

  10. Beiträge anzeigen #250 Zitieren
    Waldläufer
    Registriert seit
    Mar 2008
    Beiträge
    166
     
    Joni1337 ist offline
    Hi

    Ich hatte am anfang des Threads gesehen dass "Respawn" als patch vorgeschlagen wurde.

    Ich erinnere mich noch an die Respawn MOD version welche immer ganz toll funktioniert hat. (https://www.worldofgothic.de/dl/download_201.htm)
    Leider war diese (wie alle mods) nie mit anderen kombinierbar

    Die alte mod habe ich mit etwas hilfe decompilen können und ihre funktionalität scheint mir relativ "einfach"?! (ich kann sie als amateur gut nachvollziehen)
    Sie löst beim schlafen einfach die "b_respawnen" datei der mod aus welche die monster in der welt neu spawned.
    Man kann die funktion über einen dialog bei bosper EIN oder AUS schalten.
    Ich habe die decompilierten dateien in den Anhang gelegt falls irgendwer sich das angucken möchte (sowohl ganze gothic.dat als auch nur die b_monster_respawnen.d)

    Leider war ich an der Stelle überfragt ob und vorallem wie man die mod funktion in einen patch für ninja umschreiben sollte?!
    Ist dies für jemanden ohne viel vorerfahrung mit gothic modding möglich?
    Würde mich auch interessieren was ihr von der respawn mod als patch idee haltet



    Ninja scheint echt unendlich viele möglichkeiten zu ermöglichen, viele entdecken/lernen es heute erst :P (habs letzte woche erst entdeckt)
    Angehängte Dateien

  11. Beiträge anzeigen #251 Zitieren
    Alter Medizinmann Avatar von Tentarr
    Registriert seit
    May 2016
    Beiträge
    17.604
     
    Tentarr ist offline
    Ich finde des schwierig, da man so ja leicht das Balacing von vielen Mods zerstören könnte, natürlich ist das immer so eine Frage im Singleplay, andererseits hat sich der Modder auch was bei dem Balacing gedacht.
    Forumsuche ist blöd ? Dann benutz doch einfach die Threadinternesuche,einfach hier nachlesen:
    https://forum.worldofplayers.de/foru...1#post26090118

    Fragen zu Returning 2.0 oder alternativem Balacing?
    Fast alle Antworten gibt es entweder im Startpost oder als bereits gestellte Frage in diesem Thread

    https://forum.worldofplayers.de/forum/threads/1536606-RETURNING-v2-0-und-Alternatives-Balancing-Installation-Stand-Fragen-Antworten-28




  12. Beiträge anzeigen #252 Zitieren
    Waldläufer
    Registriert seit
    Mar 2008
    Beiträge
    166
     
    Joni1337 ist offline
    Zitat Zitat von Tentarr Beitrag anzeigen
    Ich finde des schwierig, da man so ja leicht das Balacing von vielen Mods zerstören könnte, natürlich ist das immer so eine Frage im Singleplay, andererseits hat sich der Modder auch was bei dem Balacing gedacht.
    Ja, das balancing bzw die schwierigkeit kann durch die mod etwas flöten gehen.
    Man kommt wahrscheinlich eher an die Gothic 2 vanilla schwierigkeit dran als Nacht des Raben.

    Mir gehts eher ums richtige "Rollenspiel" feeling, ich nutze gothic mehr als rollenspiel sandbox und ignorier die story zum großteil.
    Dafür ist die Respawnmod heute noch wirklich fantastisch, die welt fühlt sich sehr lebendig an wenn hier und da mal ein paar neue wölfe spawnen

    Vorallem die laufwege machen sehr viel mehr spaß mit der mod, da man immer wieder kämpfen kann.

    Aber ja sie macht das spiel VIEL einfacher, das kann man nicht abstreiten.

    (Jedoch konnte man bei der alten mod, über einen dialog von bosper die spawns AN/AUS schalten, dadurch kann man gut selbst entscheiden wieviel extra Erfahrungspunkte ins spiel kommen)


    Das größere problem sehe ich eher bei mods welche die monster positionen stark verändern, ich weiss nicht ob ein patch dort nicht zum Absturz führen könnte (müsste man mal ausprobieren :P )

  13. Beiträge anzeigen #253 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Unabhängig von dem Balancinggedanken (man könnte für wieder gespawnte Monster einfach nicht erneut Erfahrungspunkte geben, oder das zumindest als Option im Spielmenü integrieren) ist die Sache nicht so ganz einfach. Durch das Skript "b_monster_respawnen.d" was du angehängt hast, wird - zum Einen - deutlich, dass jedes Monster explizit an einen bestimmten Wegpunkt gespawnt wird - und zum Anderen - dass jedes Monster seine eigene Instanz bekommen hat. Das ist im originalen Gothic nicht so. Dort gehen alle Blutfliegen von der gleichen Instanz aus und können nicht individuell identifiziert werden.

    Daraus ergeben sich folgende Probleme:
    1. Die Wegpunkte in jeder Mod sind anders. Wenn einer nicht gefunden wird, wird der NPC an den Usprungskoordinaten der Welt eingefügt. Das wäre in Khorinis z.B. der Hafen und damit furchtbar unpraktisch.
    2. Jede Mod enthält andere Monster an anderen Orten.
    3. Gleiche Monster teilen identische Instanzen.
    Der Ansatz aus der Respawn Mod funktioniert für einen Patch also leider ganz und gar nicht. Ohne Weiteres ist es also auch nicht möglich Monster gezielt zu respawnen.

    Man müsste das ganze automatisieren, da man weder Wegpunkte noch Monsterinstanzen als bekannt voraussetzen kann. Ein Ansatz wäre bei jedem Tod eines NPC zu prüfen ob es sich um ein Monster handelt (z.B. mit npc.guild > GIL_SEPERATOR_HUM) und Informationen zum Standpunkt und der Instanz zu einer Art Liste hinzufügen. Da wird es aber schon schwierig:
    1. Was ist mit freundlichen Orks und anderen freundlichen Monstern, dessen Gilden-ID größer ist als GIL_SEPERATOR_HUM? Gilden unterscheiden sich in Mods sehr.
    2. Was ist mit Storyrelevanten Boss-Gegnern (e.g. Drachen in G2)? Solche Ausnahmen lassen sich nicht festlegen, weil es je nach Mod andere Boss-Gegner gibt, die nicht respawnen dürfen.
    3. Wegpunkte sind Strings - die lassen sich nicht in Spielstände speichern (Wenn man sie wirklich nur als zStrings mit PermMem speichert könnte es klappen ohne damit den Speicherstand bei Entfernen des Patches zu zerstören). Oder man speichert die X,Y,Z Koordinaten. Dann: Position zum Zeitpunkt des Todes? Wenn der Spieler seine Monster zu NPCs lockt spawnen die dort und töten möglicherweise schwache Storyrelevante NPC.
    4. Instanzen lassen sich nicht in Spielständen speichern, weil die Symbolindices sich durch Updates der Mod verschieben könnten. Möglicherweise ließen sich ihre Namen als String speichern, siehe oben.
    5. Viel gravierender: Wie speichert man die Liste mit Instanzennamen und Wegpunktnamen (oder Koordinaten)? Hier ebenso: Ohne neue Klasse, um den Speicherstand bei Entfernen des Patches nicht kaputt zumachen. (Vielleicht zwei zCArrays von Strings, eine mit Instanz- und eine mit Wegpunktnamen?)
    6. Dann bräuchte man eine unbestimmte Anzahl solcher Listen für die unbekannte Anzahl und Namen der verschiedenen Welten der Mod. Da wird das ganze um noch ein ganzes Stück komplizierter.
    So ein Patch wäre theoretisch möglich, würde aber seeeeehr viel (Denk-)Arbeit und sehr gute Kenntnisse vom Skripten erfordern. Ich wüsste aus dem Stegreif nicht, wie man den Patch vollständig realisieren könnte. Es wäre spannend daran herumzutüfteln, aber mir fehlt dazu die Zeit.

    Wenn sich jemand erfahrenes daran probieren wollte, wäre das sehr interessant.
    Geändert von mud-freak (28.02.2020 um 09:13 Uhr)

  14. Beiträge anzeigen #254 Zitieren
    Waldläufer
    Registriert seit
    Mar 2008
    Beiträge
    166
     
    Joni1337 ist offline
    Hi
    Erstmal vielen lieben Dank für die Antwort !

    Deine lösung würde ein deutlich besseres respawn system schaffen als die mod.
    Es ist leider eine leicht komplizierte lösung (ich hatte schon probleme nur die idee zu verstehen )
    Ich weiss nicht wieviele talentierte modder überhaupt die fähigkeit hätten dies umzusetzen.

    Mir fallen unter umständen ein paar "workarounds" für die Probleme ein, was die sache aber nicht unbedingt vereinfacht.....
    Die alte modifikation (b_respawnen) hat überwiegend nur Wildtiere respawned, Monster wie Trolle, Eschenmenschen und Orks waren nicht dabei.
    Dadurch wurden die freundlichen NPC's/Bosse in der Regel ausgelassen.

    Punkt 3/4/5 könnte man lösen indem die patch version auch nur mit neuen savegames funktioniert, die alte mod war auch nur auf neuen savegames spielbar, deshalb hatte sie auch die möglichkeit den respawn IM SPIEL bei bosper in einem dialog AN und AUS zu stellen.

    Man konnte somit auch ohne respawn mod mit den savegames spielen vermutlich wäre dies heute immernoch die einfachste lösung (die mögichkeit in savegames informationen zu speichern würde die sache etwas erleichtern???)


    Ich hätte auch noch zwei halbwegs unabhängige fragen:
    1. Wäre es möglich (und einfach) aus der ursprünglichen modifikation einen Patch zu machen ???
    2. Wüsstest du zufällig ob es einfacher wäre die "High Vegetation Mod" zum patch umzuschreiben ?

    Mir kam die idee da ich gerne Respawnmod+High Vegetation mod verbinden wollte.
    Ging davon aus die respawn mod sei die bessere zum umschreiben, vllt hab ich mich da aber getäuscht?

  15. Beiträge anzeigen #255 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Eine Vorlage für so ein dynamisches Respawn-System gibt es bereits im LeGo-Thread, allerdings ist da noch ein bisschen Arbeit nötig, um die Kanten glatt zu schleifen (z.B. eben Respawn nur für Wölfe, Blutfliegen, ...).

    Die Savegameproblematik, von der mud-freak spricht, hat einen technischen Grund: Wenn man den Respawn-Patch nicht mehr verwendet, kann es zu Abstürzen beim Laden des Spielstandes kommen. Das wäre momentan nur händisch reparierbar. Andersherum, also den Patch erst im laufenen Spielstand zu aktivieren, sollte allerdings keine Probleme machen.

    Die High-Vegetation Mod fügt vermutlich Objekte in der Welt ein, liefert also ihre eigene Welt (.zen) mit. Sollte eine Mod Änderungen an der Spielwelt machen (sehr häufig) lässt sich das nicht kombinieren.


    @mud-freak: Vielleicht wird es Zeit, Ninja und PermMem kompatibel zu machen. Wenn Ninja die selber eingefügten Klassen bzw. Symbole markieren könnte (oder eine Liste dieser Symbole bereitstellt), könnte LeGo sie beim Laden ignorieren. Dann müsste man, denke ich, nur noch darüber nachdenken, ob wir die Daten behalten oder verwerfen (Verwerfen könnte ärgerlich sein, falls ein Spieler mal ausversehen ohne diese Mod speichert, behalten würde bedeuten, dass wir ggf. sehr viele nutzlose Sachen im Savegame mit herumschleppen). Gedanken dazu?

  16. Beiträge anzeigen #256 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Wenn man den Respawn-Patch nicht mehr verwendet, kann es zu Abstürzen beim Laden des Spielstandes kommen. Das wäre momentan nur händisch reparierbar.
    Um Abstürze muss man sich zum Glück da keine Sorgen machen. Das wird mit Ninja 2 verhindert; es wird nichts PermMem-relevantes abgespeichert was Patchspezifische Dinge enthält.


    Zitat Zitat von Lehona Beitrag anzeigen
    @mud-freak: Vielleicht wird es Zeit, Ninja und PermMem kompatibel zu machen. Wenn Ninja die selber eingefügten Klassen bzw. Symbole markieren könnte (oder eine Liste dieser Symbole bereitstellt), könnte LeGo sie beim Laden ignorieren. Dann müsste man, denke ich, nur noch darüber nachdenken, ob wir die Daten behalten oder verwerfen (Verwerfen könnte ärgerlich sein, falls ein Spieler mal ausversehen ohne diese Mod speichert, behalten würde bedeuten, dass wir ggf. sehr viele nutzlose Sachen im Savegame mit herumschleppen). Gedanken dazu?
    Ja, da hatte ich schon einige.

    PermMem ist bereits mit Ninja kompatibel. Es lässt sich nach wie vor alles damit speichern und laden, solange darunter keine Referenzen zu Symbolen aus dem Patch auftauchen. Das bedeutet automatisch, das folgende Instanzen von Ninja beim Speichern übersprungen werden: FFITEM@, A8HEAD@, _BUTTON@, CALLBACKDATA@, RENDERITEM@, LCBUFF, lCEvent-Elemente und die Kinder-Handles von alle denen. (Wichtig ist hier, dass man diese weiterhin benutzen kann, sie wandern nur nicht in den Speicherstand und müssen entsprechend neu angelegt werden). Das macht Ninja, wie du auch vorschlägst, in dem es Symbol IDs markiert.

    Die Idee von Ausnahmenbehandlung beim Laden in LeGo geht leider nicht, denn wir können nicht die LeGo Version in allen bisher veröffentlichten Mods aktualisieren.

    Die einzige Alternative wäre es, eine separate PermMem-Speicherdatei anzulegen, von der LeGo standardmäßig nichts weiß. Die wäre spezifisch für LeGo in Ninja und könnte dann mit Sicherheitschecks die Patchspezifischen Handles laden. Das wirkt sehr attraktiv, wird aber glaube ich sehr kompliziert und hässlich, z.B. wegen des Handle-counters, der zweigleisig fahren muss.

    Ich muss sagen ich bin mit der jetzigen Situation recht zufrieden und sehe da keine Probleme. Bisher habe ich alle meine (verschieden komplizierten) Patches gut damit erstellen können. Man muss zwar manchmal auf die Bequemlichkeit verzichten, ein paar der LeGo-Klassen speichern zu können, aber man kann einfach alle Referenzen zu Symbolen über ihren Namen als String abspeichern. So könnte man sich seine Buttons, oder Buffs usw. einfach manuell abspeichern und beim Laden über die Strings wieder seine Patchspezifischen Symbole holen und sich seinen Button, usw. wieder zusammensetzen.



    Daher sollte sich das Respawn-System auch relativ leicht machen lassen. Vielleicht nicht die beste Variante, aber so kam mir das gerade in den Kopf:

    Man legt sich einen zCArray von zStrings an und speichert die Handlenummer in eine Variable (Variablen bleiben dank Ninja in Speicherständen enthalten auch wenn man einen Patch zwischenzeitlich entfernt). In die zStrings speichert man jeweils den Namen der Welt. In einem zweiten zCArray sammelt man an den entsprechenden selben Indizes (für jede Welt) die Handlenummbern von weitern zCArrays von zStrings in denen die Instanznamen von Monstern enthalten sind, die zu respawnen sind. In einem dritten zCArray entsprechend die Wegpunkte für die gesammelten Monster oder drei zCArrays mit Koordinaten. Damit sollte auf der technischen Seite alles passen, es fehlt nur noch die Differenzierung von Monstern, welche vom Respawn-System erfasst werden sollen und eine Überlegung wann der Respawn stattfindet.

  17. Beiträge anzeigen #257 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    In my Ninja file I add "refusetalk" code which it can be enabled/disabled from my Gothic.ini. However func is permamently enabled. Can anybody let me know what am I doing wrong?

    Code:
    func void Ninja_Additional_PatchG1G2_Init()     {
        
    if  (STR_ToInt(MEM_GetGothOpt("NINJA_FIXPACK", "refusetalk") ))    
        { B_AssessTalk ();          // B funcs/();                
        };        
    };
    Code:
    /* * Initialization function called by Ninja after "Init_Global" (G2) / "Init_<Levelname>" (G1)
     */
    func void Ninja_ColorFocusVobs_Init() 
        {    
        MEM_InitAll();
        HookEngineF(oCGame__UpdateStatus, 8, Ninja_ColorFocusVobs_UpdateStatus);  
        
         // Read INI Settings
        MEM_Info("Initializing entries in Gothic.ini.");
        
        Ninja_Additional_PatchG1G2_Init();  
        Ninja_Additional_PatchG1_Init();
        
        Ninja_RingMax_Init();
    };
    Geändert von pawbuj (04.03.2020 um 12:39 Uhr)

  18. Beiträge anzeigen #258 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von pawbuj Beitrag anzeigen
    In my Ninja file I add "refusetalk" code which it can be enabled/disabled from my Gothic.ini. However func is permamently enabled. Can anybody let me know what am I doing wrong?

    Code:
    func void Ninja_Additional_PatchG1G2_Init()     {
        
    if  (STR_ToInt(MEM_GetGothOpt("NINJA_FIXPACK", "refusetalk") ))    
        { B_AssessTalk ();          // B funcs/();                
        };        
    };
    Code:
    /* * Initialization function called by Ninja after "Init_Global" (G2) / "Init_<Levelname>" (G1)
     */
    func void Ninja_ColorFocusVobs_Init() 
        {    
        MEM_InitAll();
        HookEngineF(oCGame__UpdateStatus, 8, Ninja_ColorFocusVobs_UpdateStatus);  
        
         // Read INI Settings
        MEM_Info("Initializing entries in Gothic.ini.");
        
        Ninja_Additional_PatchG1G2_Init();  
        Ninja_Additional_PatchG1_Init();
        
        Ninja_RingMax_Init();
    };
    Hi!

    First things first: Your code still does not follow the naming conventions. Please(!) read the documentation:
    If your patch is named "ColorFocusVobs", name your symbols (functions, variables, ...) with Ninja_ColorFocusVobs_* .
    But I see functions starting with Ninja_ColorFocusVobs_, Ninja_Additional_PatchG1G2_, and Ninja_RingMax_. That is wrong.
    Also, I can only appeal to you again: Trust me, make separate patches. The patch for coloring the focus vobs seemed fine - leave it like that and release it. Make separate patches for other ideas.


    As for checking the entry in the ini-file, it looks like it should work. But what is the call to B_AssessTalk supposed to do at this point? This makes no sense. More importantly, like I have said before (and as is written in the documentation), you cannot presuppose any symbols. B_AssessTalk might not exist in certain mods. You have to do it like so:
    Code:
    if (MEM_GetSymbol("B_AssessTalk")) {
        MEM_CallByString("B_AssessTalk");
    };
    This still makes no sense to call from that function. What exactly are you trying to achieve?


    It is really important that you read the documentation. I don't know how often I wrote this.

  19. Beiträge anzeigen #259 Zitieren
    Local Hero
    Registriert seit
    Feb 2013
    Beiträge
    236
     
    pawbuj ist offline
    Hi. My idea is to create common patch for both G1&G2 in one piece-patch. In the nearest future add other features connected with chest color like need picklock skil in G1. Anyway I will fix the for proper naming mentioned funcs too.


    So my idea is upgrade AI or fix some ZS routines.



    The whole func u asked below.
    Code:
    FUNC int oCInfoManager_GetInfoCount (var int npcInstance, var int herInstance) //oCInfo *{
        //00664A30  .text     Debug data           ?GetInfoCount@oCInfoManager@@QAEHPAVoCNpc@@0@Z
        const int oCInfoManager__GetInfoCount_G1 = 6703664;
    
    
        //0x00702940 public: int __thiscall oCInfoManager::GetInfoCount(class oCNpc *,class oCNpc *)
        const int oCInfoManager__GetInfoCount_G2 = 7350592;
    
    
        var int oCInfoManager__GetInfo;
        oCInfoManager__GetInfo = MEMINT_SwitchG1G2(oCInfoManager__GetInfoCount_G1, oCInfoManager__GetInfoCount_G2);
        
        var oCNpc slf;    slf = Hlp_GetNpc (npcInstance);
        var oCNpc her;    Her = Hlp_GetNpc (herInstance);
        
        CALL_PtrParam (MEM_InstToPtr (slf));
        CALL_PtrParam (MEM_InstToPtr (Her));
        CALL__thiscall (MEM_Game.infoman, oCInfoManager__GetInfo);
        
        return CALL_RetValAsPtr();
    };
    
    
    FUNC INT oCInfoManager_GetInfo (var int npcInstance, var int herInstance, var int index) //oCInfo *
    {
        //00664E50  .text     Debug data           ?GetInfo@oCInfoManager@@QAEPAVoCInfo@@PAVoCNpc@@0H@Z
        const int oCInfoManager__GetInfo_G1 = 6704720;
    
    
        //0x00702D60 public: class oCInfo * __thiscall oCInfoManager::GetInfo(class oCNpc *,class oCNpc *,int)
        const int oCInfoManager__GetInfo_G2 = 7351648;
        
        var int oCInfoManager__GetInfo;
        oCInfoManager__GetInfo = MEMINT_SwitchG1G2(oCInfoManager__GetInfo_G1, oCInfoManager__GetInfo_G2);
        
        var oCNpc slf;    slf = Hlp_GetNpc (npcInstance);
        var oCNpc her;    Her = Hlp_GetNpc (herInstance);
        
        CALL_IntParam (index);
        CALL_PtrParam (MEM_InstToPtr (slf));
        CALL_PtrParam (MEM_InstToPtr (Her));
        CALL__thiscall (MEM_Game.infoman, oCInfoManager__GetInfo);
        
        return CALL_RetValAsPtr();
    };
    /******************************************************************************************** 
    *    B_AssessTalk                                                                            *
    *    ============                                                                            *
    *    Wird dem ZS_AssessTalk vorgeschaltet, wenn ein NSC aktiv angesprochen wird                *
    *    und löscht die INVINCIBLE-Flags                                                            * 
    ********************************************************************************************/ 
    
    
    
    
    func void B_AssessTalk ()
    {
        PrintDebugNpc    (PD_ZS_FRAME,    "B_AssessTalk");
        
        var C_Npc her;
        var C_Npc rock;
        
        //extra_refusetalk ();//from Fawkes 8.02.2019r. 
        //---
    
    
        var int infoCount;
        infoCount = oCInfoManager_GetInfoCount (self, other);
        
        if ((infoCount == 0)&&(self.npcType == npctype_main))
        {
            //B_Say (self,other,"$NOTNOW");
            B_SayOverlay (self, other, "$NOTNOW");
            Print ("");
            return;
        };
        if ((infoCount > 1)&&(self.npcType == npctype_main))
        {
            
            Print ("");
            AI_StartState(self,ZS_Talk,1,"");
            return;
    };
        if (infoCount == 1)     {
            
            
            var int infoPtr;
            infoPtr = oCInfoManager_GetInfo (self, other, 0);
            
            if (infoPtr)
            {
                var oCInfo dlgInstance;
                dlgInstance = _^ (infoPtr);
                
                if ((Hlp_StrCmp (dlgInstance.description, DIALOG_ENDE))&&(self.npcType == npctype_main))
                {
                    B_SayOverlay (self, other, "$NOTNOW");
                    Print ("");
                    return;
                };
            };
        };
    
    
        
        if (Npc_IsInState(self, ZS_Smoke)) //MH: Blubber Mobsi machte Probleme! 
        {
            Npc_ClearAIQueue(self);
            AI_StandUpQuick(self);
            AI_StartState    (self, ZS_Talk, 0, "");
        }
        else if (C_BodystateContains(self,BS_MOBINTERACT)) 
        {
            return;
        };
            
        //-------- Verhindern von Ansprechen durch übernommene NSCs --------
        var C_NPC her;     her = Hlp_GetNpc(PC_Hero); 
        var C_NPC rock; rock = Hlp_GetNpc(PC_Rockefeller);
        
        if ( (Hlp_GetInstanceID(her)!=Hlp_GetInstanceID(Hero))&&(Hlp_GetInstanceID(rock)!=Hlp_GetInstanceID(Hero)) ) 
        {    
            B_Say (self,other,"$NOTNOW");
        }
        else
        {
            Npc_SetPercTime    ( self, 3);
            self.aivar[AIV_INVINCIBLE] = FALSE;
            hero.aivar[AIV_INVINCIBLE] = FALSE;
            hero.aivar[AIV_IMPORTANT]  = FALSE;        // Dialog kommt NICHT aufgrund einer Important-Info zustande
            
            Npc_ClearAIQueue(self);
                            
            Npc_SetPercTime    (self, 1);
            if ( (!C_BodystateContains(self, BS_SIT)) || (!Npc_CanSeeNpc(self, hero)) )
            {
                AI_StartState    (self, ZS_Talk, 1, ""); //nicht sitzen UND/ODER nicht sehen: sauber aufstehen/zustand beenden
            }
            else
            {
                AI_StartState    (self, ZS_Talk, 0, ""); //sitzen UND sehen --> sitzenbleiben
            };
        };
    };
    Another request. How to write new AI variables in a Ninja patch.

    Code:
    /* * New AI variables. You might need to adjust their index to the next highest! See AI_Constants.d
     */
    const int AIV_PERMATT = 43;
    const int AIV_TEMPATT = 44;
    Geändert von pawbuj (04.03.2020 um 20:02 Uhr)

  20. Beiträge anzeigen #260 Zitieren
    Local Hero
    Registriert seit
    Feb 2017
    Beiträge
    270
     
    F a w k e s ist offline
    Hello pawbuj,
    Just a note - I cannot recommend to use this at all - it might mess up dialogs in other mods

    Imagine that you have NPC, where dialogs will be available only under following circumstances:
    DIA_NPC_Exit - exit dialog available only once player decided whether he wants to follow Innos or Beliar.
    DIA_NPC_Hello - player has to decide whether he wants to follow Innos or Beliar - only once player started dialog interaction
    DIA_NPC_LookingForQuest - dialog is available only once player decided whether he wants to follow Innos or Beliar.

    B_AssessTalk which you are suggesting to use would never allow player to start ZS_Talk with NPC - as there is no available dialog unless you are already talking with NPC.
    I found out the hard way - well beta-tester helping me with my mod found out - he was not able to talk with NPC having very similar dialog logic as shown below:
    Code:
    var int PlayerChosePath;
        const int PlayerPath_Innos = 1;
        const int PlayerPath_Beliar = 2;
        
    INSTANCE DIA_NPC_Exit (C_Info) {
        npc        = someNPC;
        condition    = DIA_NPC_Exit_Condition;
        information    = DIA_NPC_Exit_Info;
        permanent    = TRUE;
        description    = DIALOG_ENDE;
    };
    
    FUNC INT DIA_NPC_Exit_Condition () {
        if (PlayerChosePath > 0) {        //Player has to go through dialog DIA_NPC_Hello
            return TRUE;
        };
        return FALSE;
    };
    
    FUNC VOID DIA_NPC_Exit_Info () {
        AI_StopProcessInfos (self);
    };
    
    INSTANCE DIA_NPC_Hello (C_Info) {
        npc        = someNPC;
        condition    = DIA_NPC_Hello_Condition;
        information    = DIA_NPC_Hello_Info;
        important    = TRUE;
        permanent    = FALSE;
    };
    
    FUNC INT DIA_NPC_Hello_Condition () {
        if (NPC_IsInState (self, ZS_Talk)) {    //NPC has to be in ZS_Talk state (player has to interact with NPC and start dialog)
            return TRUE;
        };
        return FALSE;
    };
    
    FUNC VOID DIA_NPC_Hello_Info () {
        Info_ClearChoices (DIA_NPC_Hello);
        Info_AddChoice (DIA_NPC_Hello, "I choose path of Innos.", DIA_NPC_Choose_Innos);
        Info_AddChoice (DIA_NPC_Hello, "I choose path of Beliar.", DIA_NPC_Choose_Beliar);
    };
    
    FUNC VOID DIA_NPC_Choose_Innos () {
        Info_ClearChoices (DIA_NPC_Hello);
        PlayerChosePath = PlayerPath_Innos;
    };
    
    FUNC VOID DIA_NPC_Choose_Beliar () {
        Info_ClearChoices (DIA_NPC_Hello);
        PlayerChosePath = PlayerPath_Beliar;
    };
    
    INSTANCE DIA_NPC_LookingForQuest (C_Info) {
        npc        = someNPC;
        condition    = DIA_NPC_LookingForQuest_Condition;
        information    = DIA_NPC_LookingForQuest_Info;
        important    = TRUE;
        permanent    = FALSE;
    };
    
    FUNC INT DIA_NPC_LookingForQuest_Condition () {
        if (PlayerChosePath > 0) {        //Player has to go through dialog DIA_NPC_Hello
            return TRUE;
        };
        return FALSE;
    };
    
    FUNC VOID DIA_NPC_LookingForQuest_Info () {
        //start quest
    };

Seite 13 von 34 « Erste ... 26910111213141516172024 ... Letzte »

Berechtigungen

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