大佬您好,我想咨询一下如果一个pawn在不在当前地图中,也不在worldpawn中的话,还能在哪里找到吗?
情况是这样的,我最近开的几个存档都是玩到30天左右时会非常卡顿,查红字发现应该是您在本贴中所说的System.NullReferenceException典型空引用问题。大约是如下日志几秒钟就刷了几千条:
JobDriver threw exception in toil MakeNewToils's initAction for pawn Potato driver=JobDriver_WaitDowned (toilIndex=0) driver.job=(Wait_Downed (Job_609828))
System.NullReferenceException: Object reference not set to an instance of an object
at Verse.AI.JobDriver_Wait.<MakeNewToils>b__3_0 () [0x00006] in <1782cb69665b4d3abcdadb97df9ae541>:0
at (wrapper dynamic-method) Verse.AI.JobDriver.Verse.AI.JobDriver.TryActuallyStartNextToil_Patch0(Verse.AI.JobDriver)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch1 (string)
(wrapper dynamic-method) Verse.AI.JobUtility:Verse.AI.JobUtility.TryStartErrorRecoverJob_Patch1 (Verse.Pawn,string,System.Exception,Verse.AI.JobDriver)
(wrapper dynamic-method) Verse.AI.JobDriver:Verse.AI.JobDriver.TryActuallyStartNextToil_Patch0 (Verse.AI.JobDriver)
Verse.AI.JobDriver:ReadyForNextToil ()
(wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.StartJob_Patch1 (Verse.AI.Pawn_JobTracker,Verse.AI.Job,Verse.AI.JobCondition,Verse.AI.ThinkNode,bool,bool,Verse.ThinkTreeDef,System.Nullable`1<Verse.AI.JobTag>,bool,bool,System.Nullable`1<bool>,bool,bool)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob ()
Verse.AI.Pawn_JobTracker:JobTrackerTick ()
Verse.Pawn:Tick ()
Verse.ThingOwner:ThingOwnerTick (bool)
RimWorld.Planet.SitePart:SitePartTick ()
RimWorld.Planet.Site:Tick ()
RimWorld.Planet.WorldObjectsHolder:WorldObjectsHolderTick ()
RimWorld.Planet.World:WorldTick ()
(wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch4 (Verse.TickManager)
Verse.TickManager:TickManagerUpdate ()
(wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch0 (Verse.Game)
(wrapper dynamic-method) Verse.Root_Play:Verse.Root_Play.Update_Patch0 (Verse.Root_Play)
除了这条典型日志高速刷红字外,还有两条信息以大越五分之一的频率出现在红字中:
An error occurred while starting an error recover job. We have to stop now to avoid infinite loops. This means that the pawn is now jobless which can cause further bugs. pawn=Potato
Potato started 10 jobs in 10 ticks. List: (Wait_Downed (Job_609820)) (Wait (Job_609821)) , (Wait_Downed (Job_609822)) (Wait (Job_609823)) , (Wait_Downed (Job_609824)) (Wait (Job_609825)) , (Wait_Downed (Job_609826)) (Wait (Job_609827)) , (Wait_Downed (Job_609828)) (Wait (Job_609829))
因为不是一次出现这个问题卡死存档,每次出现问题时这些红字pawn似乎都会指向一个不同的pawn,并且看日志感觉都是工作指派的问题。我觉得消灭掉该pawn应该就能解决问题,想尝试一下。但是这些红字指向的pawn,我在我的地图上不可见,RuntimeCG清理不掉,在CE里尝试把我地图中的世界地图中的所有pawn都尝试灭掉了依然找不到红字指向的pawn并依旧疯狂报错,所以想咨询一下这类无处可寻的pawn,还有可能存在于什么地方,该在哪里找到并消灭呢?


