11-06-21, 08:47 | #14781 |
Member
Joined: Feb 2006
Posts: 1,517
|
Help - save/load and enemy errors
I've just encountered two problems with my level that I'm pretty concerned about. Both have to do with saving and reloading I think.
The first issue is that I've started having the game crash when I either save or reload the level, but it only seems to happen pretty far along in the level. I haven't figured out at exactly what point the problem starts, but I will save and the game will crash, or save successfully and try to reload and then crash, or even reload and somehow the thing reloaded in the list of savegames in the title level Are there standard things to check when saving and loading starts crashing the game? The second issue I noticed is that enemies are starting to reappear. When I quit and went back into the game and loaded a savegame to test whether the level was working correctly, I returned to a room to find that an enemy I killed earlier was back in it's starting position - it was weird, it was there as if it was triggered but didn't move or react, although Lara "flinched" when touching it and made an "ah!" sound like she would if it were triggered, but it wasn't attacking or anything. I'm wondering if these problems might be connected? And, I'm worried, since I thought I was really close to finishing my level I posted here since my level does use fairly extensive scripting and thought *maybe* some of the problems might be related to that. If that's a possibility I could post my script. EDIT: I just checked and I don't think I'm hitting any limits quite yet... Total Rooms: 197 Total Moveables : 229 Total Statics : 51 Last edited by Craig Michaels; 11-06-21 at 08:55. |
11-06-21, 09:22 | #14782 |
Member
Joined: May 2010
Posts: 1,187
|
How many levels do you have in your game? Because if it's more than 7, you may be running into issues with hub limitations.
The difference between the game engines of TR1-3 and TR4 is that the hub system was introduced into the engine for The Last Revelation. Meaning that you can traverse back and forth between levels, without having the state of the levels within a hub reset back to the initial state. Contrasting this with TR1-3, which didn't allow this, and if a level jump occured, it was never to one of the previous levels. However, with this Hub system, there is a limit to how much the game can handle, because saving the current state for each level requires the savegame to store additional data, which slowly piles up, until it reaches a point that the game can't handle it anymore. TLR solves the problem of having too many level states to save, by having the ResetHub script command used every so often. It clears the saved states of levels so far to make room for new levels to save. This is done at a point between two level jumps when it is certain Lara won't be returning back anymore (starting a "new chapter"). Using ResetHub solves the issue with the savegames causing crashes, but it comes with other consequences. As mentioned, it clears the level states thus far, meaning if after this ResetHub you jump back to these previous levels, it will be as if you're passing them again for the first time (enemies are not killed, doors are not triggered, switches are not used). Another consequence is that that some items will get removed from the inventory - these are non-generic items, such as puzzle items, key items, pickup items, their associated combo items, examines, etc. What will remain in the inventory is medipacks, flares, the picked up ammo items and weapons. With TRNG, there are 2 more consequences to add to this: if you are using global variables or store variables to keep some data between level jumps - they will all get reset to 0, breaking any setups relying on such variables. The other consequence is if you are using the Diary feature, the pages from all diaries will be wiped out after the resethub, meaning that you will have to re-add them manually. ------- If you are not having any "hub" levels where Lara can backtrack to previous levels, you could utilise the ResetHub on some level half-way and this will reset the state of the levels in the save game data. You use this command the following way in the script: Code:
ResetHub= LvlNum It is of course understandable that you might not like the idea of losing some inventory items, losing diary pages or having variables reset to 0. Since there was an identical issue with the War of The Worlds project by Maati which heavily uses all of these features, I've developed a TRNG plugin that solves selected issues associated with ResetHub. These are the inventory items being removed, variables getting reset and diary pages being cleared out. But it doesn't completely get rid of clearing the level states, meaning that if you level jump back to a previous level after ResetHub, it will look like it hasn't been passed yet. I will be releasing this plugin very soon, on this weekend, I'll post about it here and in the WOTW thread. |
11-06-21, 10:01 | #14783 |
Member
Joined: Feb 2006
Posts: 1,517
|
|
11-06-21, 10:13 | #14784 |
Member
Joined: May 2010
Posts: 1,187
|
Are you using any plugins? Also, the crash log might provide a lead onto what's going on. If you could post that, it may help.
|
11-06-21, 10:31 | #14785 | |
Member
Joined: Feb 2006
Posts: 1,517
|
Quote:
Code:
Version=1.3.0.7 Date: 6 April 2017 (21:34:20) Size=2580480 bytes CRS=Disabled Last diagnostic mexage:Set in ImageMonoScreen image from TempImage Last directX error: One or more of the parameters passed to the method are incorrect. DIRECTX_STACK: ESP=0x5E0FE58 STACK_TRACE: 0x100D3C41 0x48F8AE 0x45EBE5 0x100C431D 0x4491E0 0x100D6955 0x451FB3 0x451166 0x475155 0x49E67C <CRASH DURING STACK TRACE> END_STACK_TRACE MEMORY CODE MAPPING: BASE START END ID PluginName (PluginVersion - TrngVersion) -------------------------------------------------------------------------------------- 10000000 10001000 1014A000 0 Tomb_NextGeneration (1.3.0.7 - 1.3.0.7) 7B470000 7B471000 7B4DAA00 1 Plugin_ClassicInventory (1.2.0.0 - 1.3.0.7) 5CA50000 5CA51000 5CA58400 2 Plugin_Rollingball (1.0.0.0 - 1.3.0.5) 5D890000 5D891000 5D896A00 3 Plugin_AODfanChocolateFanTR1 (1.0.0.2 - 1.3.0.7) 5C9E0000 5C9E1000 5C9F9E00 4 Plugin_TokyoSU (2.0.1.1 - 1.3.0.7) -------------------------------------------------------------------------------------- ............... QUICK DIAGNOSTIC LOG ............... WARNING: missing Header NG in "TITLE.TR4" level file At moment of crash the program was managing: .................................................... CRASH REASON: EXCEPTION_ACCESS_VIOLATION The thread tried to read from or write to a virtual address for which it does not have the appropriate access. EXTRA_INFO: VIOLATION ON READ AT OFFSET 0x2E7B0200 RECOVERABLE : YES CRASH OFFSET: 0x10045465 (Inside offset range of Tomb_NextGeneration) REGISTERS: EAX=2E7B0200 EBX=3C ECX=0 EDX=0 ESI=7CC EDI=776635B0 EBP=5E0FB70 EIP=10045465 ESP=5E0FB30 Stack=0x5E0FB30 pContesto=0x5E0F650 pInfoEccezione=0x5E0F600 PRIMARY_STACK: ESP=0x5E0FB30 STACK_TRACE: 0x100C42C8 0x475795 0x47AF2D 0x7B47361C 0x7B4C1A7D 0x7B4C0DC0 0x7B478475 0x7B4826D0 0x7B4C0CB9 0x7B4AE6DB 0x7B4ABA91 0x7B4B396F 0x7B4D7BB8 0x7B4C0955 0x7B4CC360 0x7B4C093D 0x7B4DA53B 0x7B4BE9A9 0x7B4BE7AD 0x7B477F42 0x7B47217E 0x7B4721DD 0x100D331A 0x100D7FE6 0x100D80AA 0x100D6955 0x451FB3 0x451166 0x475155 0x49E67C <CRASH DURING STACK TRACE> END_STACK_TRACE SECONDARY_STACK: ESP=0x19B0DC STACK_TRACE: 0x499ED7 0x48D323 0x48CC6B 0x48CACE END_STACK_TRACE OTHER_STACK: ESP=0xE2B150 STACK_TRACE: <CRASH DURING STACK TRACE> END_STACK_TRACE Some things I've done recently:
Code:
Application does not support just-in-time (JIT) debugging. See the end of this message for details. ************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at TombLib.Rendering.DirectX11.Dx11RenderingDrawingRoom.<>c__DisplayClass11_0.<GarbageCollectTexture>b__0(RenderingTextureAllocator allocator2, Map map2) at TombLib.Rendering.RenderingTextureAllocator.GarbageCollect(Boolean checkTime) at TombLib.Rendering.RenderingTextureAllocator.Get(RenderingTexture texture) at TombLib.Rendering.RenderingTextureAllocator.GetForTriangle(TextureArea texture) at TombLib.Rendering.DirectX11.Dx11RenderingDrawingRoom..ctor(Dx11RenderingDevice device, Description description) at TombLib.Rendering.DirectX11.Dx11RenderingDevice.CreateDrawingRoom(Description description) at TombEditor.Controls.PanelRendering3D.<.ctor>b__140_0(Room room) at TombLib.Utils.Cache`2.get_Item(KeyT key) at TombEditor.Controls.PanelRendering3D.OnDraw() at TombLib.Controls.RenderingPanel.OnPaint(PaintEventArgs e) at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer) at System.Windows.Forms.Control.WmPaint(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** Loaded Assemblies ************** mscorlib Assembly Version: 4.0.0.0 Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll ---------------------------------------- TombEditor Assembly Version: 1.3.14.0 Win32 Version: 1.3.14 CodeBase: file:///C:/Tomb%20Editor/TombEditor.exe ---------------------------------------- TombLib Assembly Version: 1.3.14.0 Win32 Version: 1.3.14 CodeBase: file:///C:/Tomb%20Editor/TombLib.DLL ---------------------------------------- NLog Assembly Version: 4.0.0.0 Win32 Version: 4.7.2.11786 CodeBase: file:///C:/Tomb%20Editor/NLog.DLL ---------------------------------------- System.Drawing Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 built by: NET48REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System Assembly Version: 4.0.0.0 Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- TombLib.Rendering Assembly Version: 1.3.14.0 Win32 Version: 1.3.14 CodeBase: file:///C:/Tomb%20Editor/TombLib.Rendering.DLL ---------------------------------------- System.Numerics.Vectors Assembly Version: 4.1.4.0 Win32 Version: 4.6.26515.06 CodeBase: file:///C:/Tomb%20Editor/System.Numerics.Vectors.DLL ---------------------------------------- System.Runtime Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Runtime.dll ---------------------------------------- DarkUI Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Tomb%20Editor/DarkUI.DLL ---------------------------------------- System.Windows.Forms Assembly Version: 4.0.0.0 Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- TombLib.Forms Assembly Version: 1.3.14.0 Win32 Version: 1.3.14 CodeBase: file:///C:/Tomb%20Editor/TombLib.Forms.DLL ---------------------------------------- System.Xml Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 built by: NET48REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- System.Configuration Assembly Version: 4.0.0.0 Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Core Assembly Version: 4.0.0.0 Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll ---------------------------------------- Microsoft.GeneratedCode Assembly Version: 1.0.0.0 Win32 Version: 4.8.4084.0 built by: NET48REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- System.Data Assembly Version: 4.0.0.0 Win32 Version: 4.8.4270.0 built by: NET48REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll ---------------------------------------- System.ServiceModel Assembly Version: 4.0.0.0 Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.ServiceModel/v4.0_4.0.0.0__b77a5c561934e089/System.ServiceModel.dll ---------------------------------------- System.Runtime.Serialization Assembly Version: 4.0.0.0 Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll ---------------------------------------- System.Runtime.Extensions Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Extensions/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Runtime.Extensions.dll ---------------------------------------- SharpDX.Toolkit Assembly Version: 2.4.2.0 Win32 Version: 2.4.2 CodeBase: file:///C:/Tomb%20Editor/SharpDX.Toolkit.DLL ---------------------------------------- SharpDX Assembly Version: 2.4.2.0 Win32 Version: 2.4.2 CodeBase: file:///C:/Tomb%20Editor/SharpDX.DLL ---------------------------------------- SharpDX.Toolkit.Compiler Assembly Version: 2.4.2.0 Win32 Version: 2.4.2 CodeBase: file:///C:/Tomb%20Editor/SharpDX.Toolkit.Compiler.DLL ---------------------------------------- SharpDX.Toolkit.Graphics Assembly Version: 2.4.2.0 Win32 Version: 2.4.2 CodeBase: file:///C:/Tomb%20Editor/SharpDX.Toolkit.Graphics.DLL ---------------------------------------- SharpDX.Direct3D11 Assembly Version: 2.4.2.0 Win32 Version: 2.4.2 CodeBase: file:///C:/Tomb%20Editor/SharpDX.Direct3D11.DLL ---------------------------------------- SharpDX.DXGI Assembly Version: 2.4.2.0 Win32 Version: 2.4.2 CodeBase: file:///C:/Tomb%20Editor/SharpDX.DXGI.DLL ---------------------------------------- Pfim Assembly Version: 0.5.2.0 Win32 Version: 0.5.2 CodeBase: file:///C:/Tomb%20Editor/Pfim.DLL ---------------------------------------- System.IO Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.IO/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.IO.dll ---------------------------------------- System.Drawing.PSD Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Tomb%20Editor/System.Drawing.PSD.DLL ---------------------------------------- SharpDX.D3DCompiler Assembly Version: 2.4.2.0 Win32 Version: 2.4.2 CodeBase: file:///C:/Tomb%20Editor/SharpDX.D3DCompiler.DLL ---------------------------------------- Microsoft.GeneratedCode Assembly Version: 1.0.0.0 Win32 Version: 4.8.4084.0 built by: NET48REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- Accessibility Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 built by: NET48REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll ---------------------------------------- CH.SipHash Assembly Version: 1.0.2.0 Win32 Version: 1.0.2.0 CodeBase: file:///C:/Tomb%20Editor/CH.SipHash.DLL ---------------------------------------- NAudio Assembly Version: 1.10.0.0 Win32 Version: 1.10.0.0 CodeBase: file:///C:/Tomb%20Editor/NAudio.DLL ---------------------------------------- Microsoft.GeneratedCode Assembly Version: 1.0.0.0 Win32 Version: 4.8.4084.0 built by: NET48REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- System.Text.Encoding Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Text.Encoding/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Text.Encoding.dll ---------------------------------------- ColorThief.Desktop.v45 Assembly Version: 1.1.0.1 Win32 Version: 1.1.0.1 CodeBase: file:///C:/Tomb%20Editor/ColorThief.Desktop.v45.DLL ---------------------------------------- NAudio.Flac Assembly Version: 1.0.5702.29018 Win32 Version: 1.0.5702.29018 CodeBase: file:///C:/Tomb%20Editor/NAudio.Flac.DLL ---------------------------------------- NAudio.Vorbis Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Tomb%20Editor/NAudio.Vorbis.DLL ---------------------------------------- MiniZ.Net Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Tomb%20Editor/MiniZ.Net.DLL ---------------------------------------- OptaneShellExt Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Program%20Files/Intel/OptaneShellExtensions/OptaneShellExt.dll ---------------------------------------- SharpShell Assembly Version: 2.2.0.0 Win32 Version: 2.2.0.0 CodeBase: file:///C:/Program%20Files/Intel/OptaneShellExtensions/SharpShell.DLL ---------------------------------------- log4net Assembly Version: 1.2.15.0 Win32 Version: 1.2.15.0 CodeBase: file:///C:/Program%20Files/Intel/OptaneShellExtensions/log4net.DLL ---------------------------------------- PinningServiceApi Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Program%20Files/Intel/OptaneShellExtensions/PinningServiceApi.DLL ---------------------------------------- System.ComponentModel.Composition Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.ComponentModel.Composition/v4.0_4.0.0.0__b77a5c561934e089/System.ComponentModel.Composition.dll ---------------------------------------- ************** JIT Debugging ************** Application does not support Windows Forms just-in-time (JIT) debugging. Contact the application author for more information. 1) Swapping Meshes Twice. I had a scenario in mind in which an object (Pushable_Object2) swapped meshes twice. First using a heavy A37 trigger (swapped mesh with Animating2_Mip) and then using a second heavy A37 trigger under a flyby cam (swapped mesh with Animating1_Mip) a while later. I'm not sure exactly why, but removing the second mesh swap was one of the things that meant my level wasn't crashing. Can you only swap meshes once, or are there any other limits about swapping meshes that would be helpful to know? EDIT 3: Looks like YES, swapping twice is something you can't do without reversing the first swap... see here: https://www.tombraiderforums.com/sho...6244&page=1318 So, new question: I'll try to figure out how to reverse the first swap before triggering the second swap. In that way, could I change the mesh twice, as long as I swap back to the original mesh in between? And if so, how do I swap back to the original, since meshes for pushable objects aren't an option in the A37 list. 2) Substituting Objects. I wanted to have two different 4-click raising blocks in my level, so I used the script command "AssignSlot= ANIMATING3_MIP, RAISING_BLOCK1" with a different raising block reassigned to the Animating3_Mip slot. However, when I saved and reloaded my level, the substitute raising block no longer had collision. I tried doing the same thing with the regular raising block and its collision remained. Is this a known problem, or did I set something up incorrectly? Last edited by Craig Michaels; 13-06-21 at 01:17. |
|
14-06-21, 12:17 | #14786 |
Member
Joined: Aug 2010
Posts: 456
|
Hi,
tried to use "BKGDF_ADD_DARKNESS" flag to CUST_BACKGROUND command but didn't see any effect. According to Paolone it gives a kind glass plate effect. Code:
Customize= CUST_BACKGROUND,BKGDT_INVENTORY,BKGDF_KEEP_GAME_SCREEN +BKGDF_ADD_DARKNESS, 200, IGNORE |
14-06-21, 16:15 | #14787 | |
Moderator
Joined: Dec 2011
Posts: 4,881
|
Yes, this is what he says:
Quote:
|
|
14-06-21, 16:44 | #14788 |
Member
Joined: Aug 2010
Posts: 456
|
|
15-06-21, 11:46 | #14789 |
Member
Joined: Feb 2009
Posts: 405
|
I want to use the Obelisk / Turn Switch Puzzle to "unlock" the pulley, but when I place the pulley and set it Invisible in the OCB (also put "1" into the OCB) window the pulley still can be pulled and activate some things..
what am I doing wrong here? EDIT: Found it.. apparently I accidentally placed the obelisks in such a way that the pulley is triggered. Oups. but another question arises for me. It is hard-coded that the pulley is activated. However, I would like to play a sound when the puzzle is solved (and a flyby). Basically I want to trigger something. I can certainly do that via a global trigger and condition trigger groups, but I can't think of how to set up the conditions for this in the TRNG. Anyone have an idea? Last edited by l.m.; 15-06-21 at 12:23. |
15-06-21, 19:00 | #14790 |
Moderator
Joined: Dec 2011
Posts: 4,881
|
It probably should be a GT_CONDITION_GROUP GlobalTrigger, naming a TriggerGroup containing the condition trigger(s) exported.
It depends on exacly when you want that special thing to be activated. Eg. if you want to do that when ANIMATING3 of the obelisk setup has been exploded, then it probably should be an "if that ANIMATING3 is killed" condition trigger exported. |
Thread Tools | |
|
|