tModLoader

tModLoader

GTA SA Mission passed Respect +
Конфликт с модом JoJoStands
Каким-то образом последнее обновление сломало совместимость. Вот, что творится в логах. Возможно, такая беда может произойти и с другими модами.

System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Terraria.Player.GetModPlayer[T](T baseInstance) in tModLoader\Terraria\Player.TML.cs:line 114
at JoJoStands.Projectiles.JoJoGlobalProjectile.OnSpawn(Projectile projectile, IEntitySource source) in JoJoStands\Projectiles\GlobalProjectile.cs:line 60
at Terraria.ModLoader.ProjectileLoader.OnSpawn(Projectile projectile, IEntitySource source) in tModLoader\Terraria\ModLoader\ProjectileLoader.cs:line 136
at Terraria.Projectile.NewProjectile(IEntitySource spawnSource, Single X, Single Y, Single SpeedX, Single SpeedY, Int32 Type, Int32 Damage, Single KnockBack, Int32 Owner, Single ai0, Single ai1, Single ai2) in tModLoader\Terraria\Projectile.cs:line 9359
at GTA.Configs.MissionCompleteConfig.OnChanged() in GTA\Configs\MissionCompleteConfig.cs:line 53
at Terraria.ModLoader.Config.ConfigManager.OnChangedAll() in tModLoader\Terraria\ModLoader\Config\ConfigManager.cs:line 187
at Terraria.Main.PrepareLoadedModsAndConfigsForSingleplayer() in tModLoader\Terraria\Main.TML.cs:line 666
at DMD<System.Void Terraria.Main:DrawMenu(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
at TerrariaAmbience.Core.MethodDetours.Main_DrawMenu(orig_DrawMenu orig, Main self, GameTime gameTime)
at Hook<System.Void TerrariaAmbience.Core.MethodDetours::Main_DrawMenu(Terraria.On_Main+orig_DrawMenu,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DrawMenu(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at DMD<DMD<>?26495031::Terraria.Main::DoDraw>(Main this, GameTime gameTime)
at MapWorldVIew.MapWorldVIew.On_Main_DoDraw(orig_DoDraw orig, Main self, GameTime gameTime)
at Hook<System.Void MapWorldVIew.MapWorldVIew::On_Main_DoDraw(Terraria.On_Main+orig_DoDraw,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DoDraw(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at Terraria.Main.Draw_Inner(GameTime gameTime)
at DMD<System.Void Terraria.Main:Draw(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
at Macrocosm.Common.Debugging.DebugDrawing.Draw(orig_Draw orig, Main self, GameTime gameTime)
at Hook<System.Void Macrocosm.Common.Debugging.DebugDrawing::Draw(Terraria.On_Main+orig_Draw,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:Draw(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.RunLoop()
at Microsoft.Xna.Framework.Game.Run()
at Terraria.Program.RunGame()
[15:22:12.350] [Main Thread/DEBUG] [TerrariaSteamClient]: Send: shutdown
< >
Showing 1-6 of 6 comments
P3W  [developer] 15 Jun @ 1:06am 
я обновил код, попробуй сейчас вроде проблема должна пропасть и сори что не сразу увидел xd
Last edited by P3W; 15 Jun @ 1:08am
P3W  [developer] 15 Jun @ 1:07am 
если проблема осталась то опиши пожалуйста от чего именно у тебя это происходит
Murst 24 Jun @ 11:07pm 
Нет. Проблема не решилась. Всё также вылетает игра при попытке войти в меню выбора персонажа. Если верить объяснению нейронки, то:

Причина краша:

Ошибка IndexOutOfRangeException:

Возникла в методе JoJoStands.Projectiles.JoJoGlobalProjectile.OnSpawn при попытке получить данные игрока (Player.GetModPlayer).

Это произошло, когда мод GTA создавал снаряд (NewProjectile) в методе MissionCompleteConfig.OnChanged().

Конфликт модов:

GTA пытается создать снаряд до полной инициализации игрока (вероятно, на этапе загрузки меню).

JoJoStands в этот момент пытается обработать создание снаряда, но данные игрока ещё недоступны (индекс выходит за границы массива).

Триггер ошибки:

Метод ConfigManager.OnChangedAll() (вызывается при изменении конфигов) запустил MissionCompleteConfig.OnChanged() из GTA.

Это произошло во время подготовки к одиночной игре (Main.PrepareLoadedModsAndConfigsForSingleplayer).

Кусок лога с момента получения ошибок(возможно поможет что-то понять):

[09:58:43.564] [Main Thread/WARN] [tML]: Бесшумно пойманное исключение:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Terraria.Player.GetModPlayer[T](T baseInstance) in tModLoader\Terraria\Player.TML.cs:line 114
at JoJoStands.Projectiles.JoJoGlobalProjectile.OnSpawn(Projectile projectile, IEntitySource source) in JoJoStands\Projectiles\GlobalProjectile.cs:line 60
at Terraria.ModLoader.ProjectileLoader.OnSpawn(Projectile projectile, IEntitySource source) in tModLoader\Terraria\ModLoader\ProjectileLoader.cs:line 136
at Terraria.Projectile.NewProjectile(IEntitySource spawnSource, Single X, Single Y, Single SpeedX, Single SpeedY, Int32 Type, Int32 Damage, Single KnockBack, Int32 Owner, Single ai0, Single ai1, Single ai2) in tModLoader\Terraria\Projectile.cs:line 9359
at GTA.Configs.MissionCompleteConfig.OnChanged() in GTA\Configs\MissionCompleteConfig.cs:line 53
at Terraria.ModLoader.Config.ConfigManager.OnChangedAll() in tModLoader\Terraria\ModLoader\Config\ConfigManager.cs:line 187
at Terraria.Main.PrepareLoadedModsAndConfigsForSingleplayer() in tModLoader\Terraria\Main.TML.cs:line 666
at DMD<System.Void Terraria.Main:DrawMenu(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
at TerrariaAmbience.Core.MethodDetours.Main_DrawMenu(orig_DrawMenu orig, Main self, GameTime gameTime)
at Hook<System.Void TerrariaAmbience.Core.MethodDetours::Main_DrawMenu(Terraria.On_Main+orig_DrawMenu,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DrawMenu(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at DMD<DMD<>?65250612::Terraria.Main::DoDraw>(Main this, GameTime gameTime)
at MapWorldVIew.MapWorldVIew.On_Main_DoDraw(orig_DoDraw orig, Main self, GameTime gameTime)
at Hook<System.Void MapWorldVIew.MapWorldVIew::On_Main_DoDraw(Terraria.On_Main+orig_DoDraw,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DoDraw(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at Terraria.Main.Draw_Inner(GameTime gameTime)
at DMD<System.Void Terraria.Main:Draw(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
at Macrocosm.Common.Debugging.DebugDrawing.Draw(orig_Draw orig, Main self, GameTime gameTime)
at Hook<System.Void Macrocosm.Common.Debugging.DebugDrawing::Draw(Terraria.On_Main+orig_Draw,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:Draw(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.RunLoop()
at Microsoft.Xna.Framework.Game.Run()
at Terraria.Program.RunGame()
at Terraria.Program.LaunchGame_(Boolean isServer)
at Terraria.Program.LaunchGame(String[] args, Boolean monoArgs)
at Terraria.MonoLaunch.Main_End(String[] args)
at Terraria.MonoLaunch.<>c__DisplayClass1_0.<Main>b__1()

[09:58:43.568] [Main Thread/ERROR] [Terraria]: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Terraria.Player.GetModPlayer[T](T baseInstance) in tModLoader\Terraria\Player.TML.cs:line 114
at JoJoStands.Projectiles.JoJoGlobalProjectile.OnSpawn(Projectile projectile, IEntitySource source) in JoJoStands\Projectiles\GlobalProjectile.cs:line 60
at Terraria.ModLoader.ProjectileLoader.OnSpawn(Projectile projectile, IEntitySource source) in tModLoader\Terraria\ModLoader\ProjectileLoader.cs:line 136
at Terraria.Projectile.NewProjectile(IEntitySource spawnSource, Single X, Single Y, Single SpeedX, Single SpeedY, Int32 Type, Int32 Damage, Single KnockBack, Int32 Owner, Single ai0, Single ai1, Single ai2) in tModLoader\Terraria\Projectile.cs:line 9359
at GTA.Configs.MissionCompleteConfig.OnChanged() in GTA\Configs\MissionCompleteConfig.cs:line 53
at Terraria.ModLoader.Config.ConfigManager.OnChangedAll() in tModLoader\Terraria\ModLoader\Config\ConfigManager.cs:line 187
at Terraria.Main.PrepareLoadedModsAndConfigsForSingleplayer() in tModLoader\Terraria\Main.TML.cs:line 666
at DMD<System.Void Terraria.Main:DrawMenu(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
at TerrariaAmbience.Core.MethodDetours.Main_DrawMenu(orig_DrawMenu orig, Main self, GameTime gameTime)
at Hook<System.Void TerrariaAmbience.Core.MethodDetours::Main_DrawMenu(Terraria.On_Main+orig_DrawMenu,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DrawMenu(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at DMD<DMD<>?65250612::Terraria.Main::DoDraw>(Main this, GameTime gameTime)
at MapWorldVIew.MapWorldVIew.On_Main_DoDraw(orig_DoDraw orig, Main self, GameTime gameTime)
at Hook<System.Void MapWorldVIew.MapWorldVIew::On_Main_DoDraw(Terraria.On_Main+orig_DoDraw,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DoDraw(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at Terraria.Main.Draw_Inner(GameTime gameTime)
at DMD<System.Void Terraria.Main:Draw(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
[09:58:43.692] [Main Thread/FATAL] [tML]: Main engine crash

Совет: Скорее всего, проблема вызвана модом (модами). Попробуйте отключать моды поочерёдно и проверять, сохраняется ли проблема.

System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Terraria.Player.GetModPlayer[T](T baseInstance) in tModLoader\Terraria\Player.TML.cs:line 114
at JoJoStands.Projectiles.JoJoGlobalProjectile.OnSpawn(Projectile projectile, IEntitySource source) in JoJoStands\Projectiles\GlobalProjectile.cs:line 60
at Terraria.ModLoader.ProjectileLoader.OnSpawn(Projectile projectile, IEntitySource source) in tModLoader\Terraria\ModLoader\ProjectileLoader.cs:line 136
at Terraria.Projectile.NewProjectile(IEntitySource spawnSource, Single X, Single Y, Single SpeedX, Single SpeedY, Int32 Type, Int32 Damage, Single KnockBack, Int32 Owner, Single ai0, Single ai1, Single ai2) in tModLoader\Terraria\Projectile.cs:line 9359
at GTA.Configs.MissionCompleteConfig.OnChanged() in GTA\Configs\MissionCompleteConfig.cs:line 53
at Terraria.ModLoader.Config.ConfigManager.OnChangedAll() in tModLoader\Terraria\ModLoader\Config\ConfigManager.cs:line 187
at Terraria.Main.PrepareLoadedModsAndConfigsForSingleplayer() in tModLoader\Terraria\Main.TML.cs:line 666
at DMD<System.Void Terraria.Main:DrawMenu(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
at TerrariaAmbience.Core.MethodDetours.Main_DrawMenu(orig_DrawMenu orig, Main self, GameTime gameTime)
at Hook<System.Void TerrariaAmbience.Core.MethodDetours::Main_DrawMenu(Terraria.On_Main+orig_DrawMenu,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DrawMenu(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at DMD<DMD<>?65250612::Terraria.Main::DoDraw>(Main this, GameTime gameTime)
at MapWorldVIew.MapWorldVIew.On_Main_DoDraw(orig_DoDraw orig, Main self, GameTime gameTime)
at Hook<System.Void MapWorldVIew.MapWorldVIew::On_Main_DoDraw(Terraria.On_Main+orig_DoDraw,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:DoDraw(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at Terraria.Main.Draw_Inner(GameTime gameTime)
at DMD<System.Void Terraria.Main:Draw(Microsoft.Xna.Framework.GameTime)>(Main this, GameTime gameTime)
at Macrocosm.Common.Debugging.DebugDrawing.Draw(orig_Draw orig, Main self, GameTime gameTime)
at Hook<System.Void Macrocosm.Common.Debugging.DebugDrawing::Draw(Terraria.On_Main+orig_Draw,Terraria.Main,Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at SyncProxy<System.Void Terraria.Main:Draw(Microsoft.Xna.Framework.GameTime)>(Main , GameTime )
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.Game.RunLoop()
at Microsoft.Xna.Framework.Game.Run()
at Terraria.Program.RunGame()
[09:58:43.706] [Main Thread/DEBUG] [TerrariaSteamClient]: Send: shutdown
P3W  [developer] 1 Jul @ 9:01am 
так, ну если на этот раз не будет работать тогда я хз как эту херню решить :(
Last edited by P3W; 1 Jul @ 9:04am
Murst 9 Jul @ 2:20am 
Теперь всё работает. Несколько раз проверил
P3W  [developer] 10 Jul @ 3:45pm 
О кайф :steammocking:
< >
Showing 1-6 of 6 comments
Per page: 1530 50