BGforgeNet / Fallout2_Unofficial_Patch

Fallout 2 Unofficial Patch, updated
https://forums.bgforge.net/viewforum.php?f=39
131 stars 9 forks source link

fix for SLAVE_SKEEV #107

Closed dzmitry-rudnouski closed 1 year ago

dzmitry-rudnouski commented 1 year ago

If you are SLAVE_SKEEVE but not stupid - talk to Skeeve or Barkus, dialog is broken and nothing happens: scr00000 scr00001 SLOT07.zip

This happens because following nodes work for stupid dude only: https://github.com/BGforgeNet/Fallout2_Unofficial_Patch/blob/master/scripts_src/valtcity/vcbarkus.ssl#L848 https://github.com/BGforgeNet/Fallout2_Unofficial_Patch/blob/master/scripts_src/valtcity/vcskeeve.ssl#L853

That's why I've added additional check for dude_is_stupid.

burner1024 commented 1 year ago

What did you expect to happen? Still nothing happens when talking to Skeev. SLAVE_SKEEV is gated behind low int options way before that.

dzmitry-rudnouski commented 1 year ago

The situation is following. Dude got SLAVE_SKEEV status when he was dumb. After that he got smarter (INT>=4) and now talks to Skeeve or to Barkus again.

According to talk_p_proc game flow goes to Node035 for Skeeve or for Node033 for Barkus: https://github.com/BGforgeNet/Fallout2_Unofficial_Patch/blob/master/scripts_src/valtcity/vcskeeve.ssl#L375 https://github.com/BGforgeNet/Fallout2_Unofficial_Patch/blob/master/scripts_src/valtcity/vcbarkus.ssl#L253

But these nodes contain NLowOptions only, which are not visible for smart dude. As result we see broken dialogs in both cases. According to dialogs dude should be escorted to another location (see screenshots in 1st comment), but it doesn't happen. As I see two solutions is possible here:

  1. Replace NLowOption with NOption (with INT param = 001), so it will be visible not only for dumb, but for smart also.
  2. Do not allow to go to Node035, Node 033 for smart dude (this is done in current pull request).

I'm ok with both solutions, but solution 2 looks better, because in solution 1 smart dude answers with dumb phrases - it looks strange.

burner1024 commented 1 year ago

The situation is following. Dude got SLAVE_SKEEV status when he was dumb. After that he got smarter (INT>=4) and now talks to Skeeve or to Barkus again.

I got that. But your patch still changes nothing in my testing.

Regarding option 2, line 230 "Shamble off" is not a low int response per se. It describes an action, so it could be used for a normal int character. Maybe just add a dot at the end to correct grammar.

In general, I'm not too eager to work on cases of characters flipping between dumb and normal, since that mostly results in situations that are simply not supported by game logic, and defeats the purpose of playing the low int character in the first place.

dzmitry-rudnouski commented 1 year ago

With my patch applied you should see another dialog branches: scr00000 scr00001

Do you propose to replace NLowOption with NOption for 'Shamble off' only? I'm ok, but this fixes Skeeve case only, there is no same option for Barkus.

Regarding flipping between dumb and normal - these cases could happen not only when you playing low int character. It could happen for normal character when he uses Psycho.

burner1024 commented 1 year ago

Do you propose to replace NLowOption with NOption for 'Shamble off' only? I'm ok, but this fixes Skeeve case only, there is no same option for Barkus.

Just saying it's an option.

With my patch applied you should see another dialog branches:

Strange, but I don't. Could you attach compiled script?

dzmitry-rudnouski commented 1 year ago

Yes, scripts.zip

burner1024 commented 1 year ago

I was talking to the wrong character. It does make changes. I don't like the solution, I think thematically once Barkus designated you as a servant, he should keep treating you as such, at least until you get citizenship. But it's a rare case, so I guess it's just as well.