[1.3.0] Hospitality

Started by Orion, March 13, 2015, 11:19:16 AM

Previous topic - Next topic

Canute

Quote from: masaykh on June 14, 2017, 05:32:03 AM
i suppose this error from your mod
and no raids ...
I bet you got hugslib mod installed too, why you can't use the featur eto upload the error log there, and just post the link ?
The log provide much more information too.

Orion

@Walking Problem: Yeah I find the thinknode stuff really hard to debug because it doesn't say exactly what went wrong and where. Can you narrow it down more?

@masaykh: I don't see any indicators why the error should be from my mod. What makes you think so?

@wafflep90: I'm glad there are people left who get it to work, thanks for your message!

khearn

#1697
I just ran into the "Visitor from Walkblem" problem. Here's what happened (so far). A visitor, Sammy, showed up from Walkblem, accompanied by a host of Sallys, Maidens, and Worker slaves (no Unsullied, though) and 3 snow leopards. The slaves all proceeded to a spot NE of my buildings, but Sammy didn't make it that far. She was old and slow, so she trailed behind them, and then started wandering around just south of my buildings (they arrived from the SW).

I sent my trader to trade with her with no problems. I thought it a bit odd that she didn't come inside to the guest bed I had set up for her, but other than that I ignored her for a while, as I had 3 prisoners my social pawn was busy with.

After a while I checked on her and noticed that she was berzerk and attacking a wild cassowary. Being old, with a bad back and armed with an awful wooden shiv (can you get any worse than that?), she was doing one point to it, and it was doing 8 to her. It wasn't long before she was taken down by the cassowary (how embarassing!). I rescued her, stuck her in a bed, and had someone tend to her wounds. In the mean time, the various slaves and leopards just milled around in the same area they had originally stopped.

After a while I got a message saying something like "The visitors from Walkblem are leaving with one wounded." Or maybe it was that they were leaving one wounded. But nobody left at this time.

Eventually, Sammy healed up and I got a popup saying that she wanted to join my colony. I probably should have declined, but she actually looked useful, despite her age and infirmity, so I accepted. No noticeable problems at this point.

However, a little while later, I suddenly started getting spammed by continuous mesages in the upper left saying "Visitors from Walkblem Slavers Transport Company are leaving.", accompanied by continuous beeping.

The game is still moving OK, so I just turned off the sound and am letting it run. The slaves and leopards are all in various stages of starvation now, and some have lost consciousness. I'm hoping they'll all die peacefully and things will go back to normal. I just hope the leopards don't go berzerk. I also hope I don't miss some important message in the upper left, since it's continuously scrolling the message about leaving.

I'll report back as things progress.

Update: The slaves have started peacefully dying. The leopards are still only serverly starving.

Orion

Yeah... Mods that add animals to guests break hospitality and there is a chance that you can't recover from this bug now.

khearn

All of the slaves have died, and the message spam has stopped. A couple of leopards are still alive, but downed due to starvation.

So it does seem to be recoverable, if you can tolerate the spam for a while until the slaves all starve to death. It's interesting that the spam stopped while a couple of leopards are still alive. So either the messages are only created by the slaves and not the leopards, or they are only created by non-downed animals.

JerryBi

i updated your mod to 1.17d and got this problem

WalkingProblem

Quote from: Orion on June 14, 2017, 11:16:24 AM
Yeah... Mods that add animals to guests break hospitality and there is a chance that you can't recover from this bug now.

Actually the funny thing was that, I never had this problem previously; although some ppl had encountered it, but I wasnt able to recreate this problem.

Its only recently then I managed to see this problem with my own eyes.

Do you open the source code to this mod? So that I can help to fix it (because I can't fix without the source code)

TheUnspeakable

#1702
Minor issue that I ran into.

A bed that has been flagged as guest was reinstalled by me.
The bed that was placed works fine but next to it is the icon for an uninstalled bed, colored for guests. 
It can be hauled away and offers an "install" button but that button does not do anything.

Update:  Ok suddenly I'm getting a flood of Friendlies coming to my rescue, raids still happen, and when a trader finally showed up when I try to trade with them the pawn goes up to them, stands there a second and then walks away.  There is no trading popup.  (Additional mods that modify trade groups or job activity include Work Tab and Refugee Stats)  Save available upon request.

Orion

@khearn: It's good that it can be recovered from.

@masaykh: Could be a by chance. I really can't tell much more without a full log.

@Walking Problem: The source code can be found here. If there's specific code you think should be changed, you can also create pull requests.

@TheUnspeakable: How odd. I'll try around a bit with reinstalling beds. Do you have developer mode on? Did you receive any errors? It sounds like you should have encountered a lot of errors.

WalkingProblem

Quote from: Orion on June 15, 2017, 07:25:54 AM
@Walking Problem: The source code can be found here. If there's specific code you think should be changed, you can also create pull requests.

Thanks Orion, I let you know if I'm able to find a fix for it.

TheUnspeakable

#1705
Sadly I did not have developer mode on.  Is there any way to recover those errors from a save?

Upon loading in developer mode and trying to make him trade again, I got this:
JobDriver threw exception in initAction. Pawn=Lumpy, Job=TradeWithPawn A=Thing_Human699038, Exception: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.TransferableUtility.TransferAsOne (Verse.Thing a, Verse.Thing b) [0x00000] in <filename unknown>:0
  at RimWorld.TransferableUtility.TransferableMatching[Tradeable] (Verse.Thing thing, System.Collections.Generic.List`1 transferables) [0x00000] in <filename unknown>:0
  at RimWorld.TradeDeal.AddToTradeables (Verse.Thing t, Transactor trans) [0x00000] in <filename unknown>:0
  at RimWorld.TradeDeal.AddAllTradeables () [0x00000] in <filename unknown>:0
  at RimWorld.TradeDeal.Reset () [0x00000] in <filename unknown>:0
  at RimWorld.TradeDeal..ctor () [0x00000] in <filename unknown>:0
  at RimWorld.TradeSession.SetupWith (ITrader newTrader, Verse.Pawn newPlayerNegotiator) [0x00000] in <filename unknown>:0
  at RimWorld.Dialog_Trade..ctor (Verse.Pawn playerNegotiator, ITrader trader) [0x00000] in <filename unknown>:0
  at RimWorld.JobDriver_TradeWithPawn+<MakeNewToils>c__Iterator3F.<>m__B6 () [0x00000] in <filename unknown>:0
  at Verse.AI.JobDriver.TryActuallyStartNextToil () [0x00000] in <filename unknown>:0  lastJobGiver=, curJob.def=TradeWithPawn, curDriver=RimWorld.JobDriver_TradeWithPawn
Verse.Log:Error(String)
Verse.AI.Pawn_JobTracker:StartErrorRecoverJob(String)
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath(LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey4F2:<>m__7DA()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.Pawn_JobTracker:TryTakeOrderedJob(Job, JobTag)
RimWorld.<AddHumanlikeOrders>c__AnonStorey440:<>m__641()
Verse.FloatMenuOption:Chosen(Boolean)
Verse.FloatMenuOption:DoGUI(Rect, Boolean)
Verse.FloatMenu:DoWindowContents(Rect)
Verse.FloatMenuMap:DoWindowContents(Rect)
Verse.<WindowOnGUI>c__AnonStorey2C4:<>m__1B1(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, GUISkin, Int32, Single, Single, GUIStyle)


When I scrolled over to where I had store the weird psuedo bed, I got this:
Exception drawing MinifiedFurniture692741: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.MinifiedThing.DrawAt (Vector3 drawLoc, Boolean flip) [0x00000] in <filename unknown>:0
  at Verse.Thing.Draw () [0x00000] in <filename unknown>:0
  at Verse.ThingWithComps.Draw () [0x00000] in <filename unknown>:0
  at Verse.DynamicDrawManager.DrawDynamicThings (Verse.DrawTargetDef drawTarget) [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.DynamicDrawManager:DrawDynamicThings(DrawTargetDef)
Verse.Map:MapUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

and the icon for the bed disappeared.
When I zoomed out the log started going crazy will hundreds of errors.  I activated the destroy tool and deleted the now invisible but still clickable bad pseudo-bed.  Now I can trade again.

Will attempt to duplicate with log.

Edit: Successfully duplicated.

Bug occurs when reinstalling a Guest bed into a prisoner room.

No errors thrown at event.  Same hundreds of errors when the icon is on screen.
Exception doing inspect pane: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.MinifiedThing.get_LabelNoCount () [0x00000] in <filename unknown>:0
  at Verse.Thing.get_Label () [0x00000] in <filename unknown>:0
  at Verse.Thing.get_LabelCap () [0x00000] in <filename unknown>:0
  at RimWorld.InspectPaneUtility.AdjustedLabelFor (IEnumerable`1 selected, Rect rect) [0x00000] in <filename unknown>:0
  at RimWorld.MainTabWindow_Inspect.GetLabel (Rect rect) [0x00000] in <filename unknown>:0
  at RimWorld.InspectPaneUtility.InspectPaneOnGUI (Rect inRect, IInspectPane pane) [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
RimWorld.InspectPaneUtility:InspectPaneOnGUI(Rect, IInspectPane)
RimWorld.MainTabWindow_Inspect:DoWindowContents(Rect)
Verse.<WindowOnGUI>c__AnonStorey2C4:<>m__1B1(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, GUISkin, Int32, Single, Single, GUIStyle)

and
Exception in UIRootUpdate: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.InstallBlueprintUtility.ExistingBlueprintFor (Verse.Thing th) [0x00000] in <filename unknown>:0
  at RimWorld.MinifiedThing.DrawExtraSelectionOverlays () [0x00000] in <filename unknown>:0
  at RimWorld.SelectionDrawer.DrawSelectionOverlays () [0x00000] in <filename unknown>:0
  at RimWorld.MapInterface.MapInterfaceUpdate () [0x00000] in <filename unknown>:0
  at RimWorld.UIRoot_Play.UIRootUpdate () [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
RimWorld.UIRoot_Play:UIRootUpdate()
Verse.Root:Update_Patch1(Object)
Verse.Root_Play:Update()

repeated ad nauseum.

With the problem item deleted, I will continue to run this save and see if I get any more allies coming to my rescue.


Canute

TheUnspeakable,
I think it could help if you post the complete error log, use the share log button down left at the debug log window and post the link.

Orion

@TheUnspeakable: Thanks for your time reproducing the bug. I will see if I can recreate it here as well (quite possibly).

Daelight

I am experiencing the same bug as khearn but mine isn't going away.
This is the error that is being spammed:

System.NullReferenceException: Object reference not set to an instance of an object
  at Hospitality.LordToil_VisitPoint.Leave () [0x00000] in <filename unknown>:0
  at Hospitality.LordToil_VisitPoint.Cleanup () [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Lord.GotoToil (Verse.AI.Group.LordToil newLordToil) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Transition.Execute (Verse.AI.Group.Lord lord) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Transition.CheckSignal (Verse.AI.Group.Lord lord, TriggerSignal signal) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Lord.CheckTransitionOnSignal (TriggerSignal signal) [0x00000] in <filename unknown>:0
  at Verse.AI.Group.Lord.LordTick () [0x00000] in <filename unknown>:0
  at Verse.AI.Group.LordManager.LordManagerTick () [0x00000] in <filename unknown>:0
  at Verse.Map.MapPostTick () [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.Map:MapPostTick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

Here is a quick video of it in action: https://www.youtube.com/watch?v=kc9DgWZz9mo&feature=youtu.be

Any ideas? I am completely clueless when it comes to these sort of things, any help is greatly appreciated :)

Chrome

Just wanted to let you know your mod is awsome and I hope you keep up the amazing work you're doing!
Thank you for this great addition to the game!