边缘世界 RimWorld

边缘世界 RimWorld

RimTalk
Outdated Dialogue and Suggested Solution
Sometimes the Currently: {GetStatus(pawn)} field correctly reflects the current situation, but other times it shows outdated information.

During my testing, I found that the same symptom applies to 'Nearby Pawns'. For example, Pawn A will talk about a job that Pawn B finished hours ago, which is reflected in the Nearby: {nearbyText} field.

To find the common cause, I looked at the code and saw that both methods call GetStatus(). Since this method calls GetInspectString(), it seems it should successfully retrieve and update the current status. However, this is where the problem seems to be.

This led me to suspect that the data within the GetInspectString() method might be updated erratically in-game. So, I tried replacing it with the GetJobReport() method, and to my surprise, the symptoms disappeared. Using this method no longer causes the 'outdated information' issue; instead, it generates prompts based on the pawn's current job.

I believe the old version of RimTalk also used the GetJobReport() method to retrieve the current status. While I'm not a RimWorld modder, this problem didn't exist back then, which strongly supports my hypothesis. The results of my test also back this claim.

In conclusion, it seems the 'outdated information' issue is a problem with the GetInspectString() method itself (or, more accurately, the game's own calculation/update method). In my opinion, this makes the method unsuitable for real-time dialogue.

Please feel free to correct me if I've misunderstood anything.
Thank you so much for your wonderful mod and dedication!
< >
正在显示第 1 - 11 条,共 11 条留言
Juicy  [开发者] 9 月 23 日 上午 8:33 
Thanks for the finding. That really explains it and I think you’re spot on. I’ll investigate and see if I can replace the method with a better approach.
Cosmosteller 9 月 23 日 上午 11:13 
@Juicy Thanks for your positive response. I did some more testing with the original GetInspectString method, and it was difficult to notice the symptom in a minimized mod environment (Harmony, Interaction Bubbles, Rimtalk). I'm not sure if the issue isn't happening in that setup or if I just haven't experienced it yet.

I found a few people in the community who have had similar issues, but there wasn't enough data or information to identify the cause. Please let me know if you need any additional data or help!
Cosmosteller 9 月 24 日 上午 9:28 
@Juicy I wanted to give you some feedback based on my experience playing with the fork version. I'm seeing a very positive effect from the one-line change that switched the method from pawn.GetInspectString() to pawn.GetJobReport(). The old method returned a considerable amount of information, including things like royalty titles with the empire name or currently equipped weapons. However, the new method returns purely the current activity, which makes the dialogue feel much smoother. Just wanted to share my thoughts in case they're helpful:)
ziozia8383 9 月 24 日 上午 9:59 
Hi. I've been playing with this mod for 3 days, and I'm very impressed! However, it often happens that the dialogue between the pawns starts in different parts of the map... I think that if we could somehow add voiceovers to the dialogues using a neural network, we could hide the text bubbles and avoid searching for the characters all over the map... But how do this?
Juicy  [开发者] 9 月 24 日 下午 5:53 
@ziozia8383
Thanks for the idea. It's something that I also have thought of adding but not sure how it would support multiple pawns talking at the same time. I suggest mods like ChatLog Overlay which does a good job showing interactions on an overlay so you don’t have to search for pawns.
Juicy  [开发者] 9 月 24 日 下午 5:55 
@Cosmosteller That’s good to know. The thing is GetJobReport() only gives minimal information, which often causes pawns to miss the context. That’s why it was changed to GetInspectString()
Red Phalcon 9 月 27 日 下午 2:28 
引用自 ziozia8383
Hi. I've been playing with this mod for 3 days, and I'm very impressed! However, it often happens that the dialogue between the pawns starts in different parts of the map... I think that if we could somehow add voiceovers to the dialogues using a neural network, we could hide the text bubbles and avoid searching for the characters all over the map... But how do this?

Theres a chatlog overlay mod that adds a box kinda of like MMO chat. you can filter what shows up in there.
Juicy  [开发者] 17 小时以前 
Hey @Cosmostelle, I had the same problem with GetInspectString(). Not sure if it’s vanilla caching or the mod, but I swapped it out for a simpler approach, so it shouldn’t happen anymore.
@Juicy That's awesome news! I've been playing the game a bit, and I can confirm that the issue is completely gone. Thank you so much for the work!
引用自 Juicy
Hey @Cosmostelle, I had the same problem with GetInspectString(). Not sure if it’s vanilla caching or the mod, but I swapped it out for a simpler approach, so it shouldn’t happen anymore.

Juicy Thank you for this mod I just have one 1 question I've notice that recently you've added another option in the create a character screen. There is the "Persona Tab" with the conversation style and another option called Personality. I am a little confused as to how they both work together since they may conflict if the conversation style as "Happy and Cheerful" and the Personality "Dark and Depressing". And it also shows the Pawns strong opinions as well. Do these strong opinions align with the ideology of the pawn or would they conflict? And since there is no way to enable or disable the Personality option. In the Persona Tab you can just leave it blank but in the personality tab you are forced to choose one. Just wanted some clarity and thanking you again for a great mod!
Juicy  [开发者] 5 小时以前 
Hi @rafaelpicc, are you maybe using a different mod alongside this one? I only moved the original Persona button so that it now shows up next to the race info. There shouldn’t be any extra “Personality” tab added by my mod.
< >
正在显示第 1 - 11 条,共 11 条留言
每页显示数: 1530 50