ApacheTech-VintageStory-Mods / ApacheTech.VintageMods.CampaignCartographer

Mod for Vintage Story: Adds multiple Cartography related features to the game, such as custom waypoint icons, GPS, auto waypoint markers, and more.
7 stars 4 forks source link

[Open For Discussion] "Inactive" players cannot be found on map. #5

Open Aledark789 opened 2 years ago

Aledark789 commented 2 years ago

did .cm plr Pallafintius (name of a player) like 2 mins after he logged in, i crashed 6 mins after his log in actually last part of my client-main

Running on 64 bit Windows with 16 GB RAM Game Version: v1.16.1-rc.2 (Unstable) Loaded Mods: bettercrates@1.4.0-rc.2, extrachests@1.5.0-rc.2, prinzips-ore-themepack@1.2.3, tradeomat@1.6.0, game@1.16.1-rc.2, zoombuttonreborn@1.2.0, automap@0.1.8, carboncopy@0.1.7, carrycapacity@0.6.4, extraoverlays@1.1.0, farmlanddropssoil@1.4.0, medievalexpansion@3.7.1, prospectorinfo@3.1.2, creative@1.16.1-rc.2, survival@1.16.1-rc.2, workbenchexpansion@1.4.1, campaigncartographer@2.0.0-pre.2, bricklayers@0.8.0 2022-01-19 00:49:44: Critical error occurred System.NullReferenceException: Object reference not set to an instance of an object. at ApacheTech.VintageMods.CampaignCartographer.Features.CentreMap.CentreMapClient.OnPlayerOption(String subCommandName, Int32 groupId, CmdArgs args) at Vintagestory.Client.NoObf.HudDialogChat.OnNewClientToServerChatLine(Int32 groupId, String message, EnumChatType chattype, String data) at Vintagestory.Client.NoObf.ClientEventManager.TriggerNewClientChatLine(Int32 groupid, String message, EnumChatType chattype, String data) at Vintagestory.Client.NoObf.HudDialogChat.OnKeyDown(KeyEvent args) at Vintagestory.Client.NoObf.GuiManager.OnKeyDown(KeyEvent args) at Vintagestory.Client.NoObf.ClientMain.OnKeyDown(KeyEvent args) at Vintagestory.Client.NoObf.ClientPlatformWindows.game_KeyDown(Object sender, KeyboardKeyEventArgs e) at System.EventHandler1.Invoke(Object sender, TEventArgs e) at System.EventHandler1.Invoke(Object sender, TEventArgs e) at OpenTK.Platform.NativeWindowBase.OnKeyDown(Key key, Boolean repeat) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\Platform\NativeWindowBase.cs:line 129 at OpenTK.Platform.Windows.WinGLNative.HandleKeyboard(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\Platform\Windows\WinGLNative.cs:line 639 at OpenTK.Platform.Windows.WinGLNative.WindowProcedure(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\Platform\Windows\WinGLNative.cs:line 828 at OpenTK.Platform.Windows.Functions.DispatchMessage(MSG& msg) at OpenTK.Platform.Windows.WinGLNative.ProcessEvents() in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\Platform\Windows\WinGLNative.cs:line 1554 at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 368 at _onk6uFpqwcbPW6YzuZhhUdPywZf._VX8KgZtGV3ZCueYlgfrjdPvyuhh(_eyDkp85wcsatK4hyRtVBSqG8y9l , String[] ) at _RE6vupBBnuxpHTQrO531ET777xk._VX8KgZtGV3ZCueYlgfrjdPvyuhh(ThreadStart )

Event Log entries containing Vintagestory.exe, the latest 3

{ TimeGenerated = 2022-01-18 20:09:26, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.16.1.0, time stamp: 0x61e3e36b Faulting module name: nvoglv64.dll, version: 30.0.14.9649, time stamp: 0x617068e7 Exception code: 0xc0000409 Fault offset: 0x00000000012820e5 Faulting process ID: 0x21ec Faulting application start time: 0x01d80cce3b655cdb Faulting application path: C:\VSTEST\Vintagestory.exe Faulting module path: C:\Windows\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_44dc4eefedc0d082\nvoglv64.dll Report ID: a347b8cf-efcb-434c-9921-7c46f5c916eb Faulting package full name: Faulting package-relative application ID: }

{ TimeGenerated = 2022-01-16 18:10:30, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.16.0.0, time stamp: 0x61dc5145 Faulting module name: KERNELBASE.dll, version: 10.0.19041.1466, time stamp: 0xe01c7650 Exception code: 0xc000041d Fault offset: 0x0000000000034f69 Faulting process ID: 0x498 Faulting application start time: 0x01d80b2e3506e888 Faulting application path: C:\VSTEST\Vintagestory.exe Faulting module path: C:\Windows\System32\KERNELBASE.dll Report ID: eb3a79e9-1ee9-4117-8648-cc615456cb74 Faulting package full name: Faulting package-relative application ID: }

{ TimeGenerated = 2022-01-16 18:10:28, Site = , Source = Application Error, Message = Faulting application name: Vintagestory.exe, version: 1.16.0.0, time stamp: 0x61dc5145 Faulting module name: KERNELBASE.dll, version: 10.0.19041.1466, time stamp: 0xe01c7650 Exception code: 0xc0020001 Fault offset: 0x0000000000034f69 Faulting process ID: 0x498 Faulting application start time: 0x01d80b2e3506e888 Faulting application path: C:\VSTEST\Vintagestory.exe Faulting module path: C:\Windows\System32\KERNELBASE.dll Report ID: 81c650cb-e0d7-46a3-a7af-5fbb6522fc2d Faulting package full name: Faulting package-relative application ID: }

**part of the relevant client-main 19.1.2022 00:15:04 [Error] System.ArgumentOutOfRangeException: The given value was not found within the collection. Parameter name: assetCode Actual value was smallberrybush-blueberry-empty. 19.1.2022 00:16:25 [Error] System.ArgumentOutOfRangeException: The given value was not found within the collection. Parameter name: assetCode Actual value was smallberrybush-blueberry-empty. 19.1.2022 00:16:26 [Error] System.ArgumentOutOfRangeException: The given value was not found within the collection. Parameter name: assetCode Actual value was smallberrybush-blueberry-empty. 19.1.2022 00:20:04 [Error] System.ArgumentOutOfRangeException: The given value was not found within the collection. Parameter name: assetCode Actual value was bigberrybush-redcurrant-empty. 19.1.2022 00:22:04 [Error] System.ArgumentOutOfRangeException: The given value was not found within the collection. Parameter name: assetCode Actual value was bigberrybush-blackcurrant-flowering. 19.1.2022 00:42:57 [Warning] OpenAL Error during construction before of sound game:sounds/creature/drifter-idle1.ogg: InvalidValue 19.1.2022 00:49:44 [Fatal] Game Version: v1.16.1-rc.2 (Unstable) Loaded Mods: bettercrates@1.4.0-rc.2, extrachests@1.5.0-rc.2, prinzips-ore-themepack@1.2.3, tradeomat@1.6.0, game@1.16.1-rc.2, zoombuttonreborn@1.2.0, automap@0.1.8, carboncopy@0.1.7, carrycapacity@0.6.4, extraoverlays@1.1.0, farmlanddropssoil@1.4.0, medievalexpansion@3.7.1, prospectorinfo@3.1.2, creative@1.16.1-rc.2, survival@1.16.1-rc.2, workbenchexpansion@1.4.1, campaigncartographer@2.0.0-pre.2, bricklayers@0.8.0 2022-01-19 00:49:44: Critical error occurred System.NullReferenceException: Object reference not set to an instance of an object. at ApacheTech.VintageMods.CampaignCartographer.Features.CentreMap.CentreMapClient.OnPlayerOption(String subCommandName, Int32 groupId, CmdArgs args) at Vintagestory.Client.NoObf.HudDialogChat.OnNewClientToServerChatLine(Int32 groupId, String message, EnumChatType chattype, String data) at Vintagestory.Client.NoObf.ClientEventManager.TriggerNewClientChatLine(Int32 groupid, String message, EnumChatType chattype, String data) at Vintagestory.Client.NoObf.HudDialogChat.OnKeyDown(KeyEvent args) at Vintagestory.Client.NoObf.GuiManager.OnKeyDown(KeyEvent args) at Vintagestory.Client.NoObf.ClientMain.OnKeyDown(KeyEvent args) at Vintagestory.Client.NoObf.ClientPlatformWindows.game_KeyDown(Object sender, KeyboardKeyEventArgs e) at System.EventHandler1.Invoke(Object sender, TEventArgs e) at System.EventHandler1.Invoke(Object sender, TEventArgs e) at OpenTK.Platform.NativeWindowBase.OnKeyDown(Key key, Boolean repeat) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\Platform\NativeWindowBase.cs:line 129 at OpenTK.Platform.Windows.WinGLNative.HandleKeyboard(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\Platform\Windows\WinGLNative.cs:line 639 at OpenTK.Platform.Windows.WinGLNative.WindowProcedure(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\Platform\Windows\WinGLNative.cs:line 828 at OpenTK.Platform.Windows.Functions.DispatchMessage(MSG& msg) at OpenTK.Platform.Windows.WinGLNative.ProcessEvents() in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\Platform\Windows\WinGLNative.cs:line 1554 at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 368 at _onk6uFpqwcbPW6YzuZhhUdPywZf._VX8KgZtGV3ZCueYlgfrjdPvyuhh(_eyDkp85wcsatK4hyRtVBSqG8y9l , String[] ) at _RE6vupBBnuxpHTQrO531ET777xk._VX8KgZtGV3ZCueYlgfrjdPvyuhh(ThreadStart )

Crash written to file at "C:\Users\admin\AppData\Roaming\VintagestoryData\Logs\client-crash.txt"

19.1.2022 00:49:44 [Notification] Exiting game now. Server running=False. Exit reason: Game crashed

ApacheTech commented 2 years ago

To keep this as a client-side only feature, there are a few things to think about.

  1. Any player that was online when you logged on will be fine.
  2. Any player that logs on after you will not be displayed on the map, and cannot be centred-on, until you are less than 128 blocks apart.

This is a vanilla issue. Players are not counted as "Active" if they are more than 128 blocks away.

Currently, there's no way to query the server, to get an "Inactive" player's location. I'm hoping this will change in a future update.

For now, I've "fixed" this issue by adding user feedback saying, "Cannot find player {0} at this time. They may be out of range. Re-logging will display them on the map.". It's not a perfect fix, but I'd prefer to keep this particular function as client-side only.

ApacheTech commented 2 years ago

I'm happy to leave this report open to get feedback and suggestions on any other possible fixes.

Aledark789 commented 1 year ago

I mean it wouldnt be in your hands, but i was thinking if Tyron would put a randommagicnumber on nb of trackedplayers and dissociate them from entities....i kinda wish hed do the same for dropped items on ground too...

Perhaps we could achieve better results with a randomchunkplayerscheckpos with a ms refresh send to all people, least on connect and then per x ammount of time?

Im just throwing it out there. You know way more than i do. Wed need Tyron to rework his structure i guess to actually work.