BGforgeNet / Fallout2_Unofficial_Patch

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

Skynet bot "cannot pick up item" and it's not possible to place items on him via steal skill #95

Closed WebTiger89 closed 2 years ago

WebTiger89 commented 2 years ago

Skynet as party member does not behave like other party members. When pressing "G" to command a party member to pickup items does not work. The event display shows "cannot pickup item". Further it's not possible to place items on him via steal skill. I usually abuse the steal skill to place items on my party members to ditch the barter dialog which is anoyying but this does not work for Skynet. I get the message that its capacity is reached.

Lexx2k commented 2 years ago

Skynet doesn't have a pickup animation and can't pick up stuff from the ground.

burner1024 commented 2 years ago

Party commands are from Party Orders, not UPU. I didn't know Skynet doesn't have pickup animations, should probably remove it from that order. As for steal capacity, I think that's how it always worked. It can probably be changed, but I wonder if there's going to be some side effects, affecting other robots?

Lexx2k commented 2 years ago

Yup, can't steal from robots etc. There was some talk about it in the past, but I can't remember the details and why there was no fix in Sfall.

WebTiger89 commented 2 years ago

My bad. Should I report the issue regarding Skynet and pickup ability in Party Orders or are you aware of it?

WebTiger89 commented 2 years ago

Offtopic question: Are there any instructions about how to contribute? I'm thinking about the modification of the script files

burner1024 commented 2 years ago
burner1024 commented 2 years ago

Some extra info:

Lexx2k commented 2 years ago

I might test this out with the robot in ettu. However, as Skynet can actually carry items (via barter in dialog?), I feel like this might be within scope of the UP.

Lexx2k commented 2 years ago

This works:

procedure mrhandy_fix begin
   if (get_game_mode bwand INTFACELOOT) then begin
      if (loot_obj == Handy_ptr) then begin
         set_proto_data(obj_pid(Handy_ptr), PROTO_CR_BODY_TYPE, 0);
      end
   end
   else if (get_proto_data(obj_pid(Handy_ptr), PROTO_CR_BODY_TYPE) == 0) then begin
      set_proto_data(obj_pid(Handy_ptr), PROTO_CR_BODY_TYPE, 2);
   end
end

Called in HOOK_GAMEMODECHANGE - in my tests everything was good. There might be a more pretty way to do this, though. https://github.com/rotators/Fo1in2/commit/2069724e7be3b9cb1d0c84806b0fe0387ba73eee

/edit: Apparently Goris has the same issue. Could also be fixed like that.

burner1024 commented 2 years ago

I'm undecided about including it in UPU/RPU. Moreso for Goris, where'd he even put the items? Should this apply to other robots as well, then? Maybe add to FO2tweaks instead. Anyway, here's a script that should do it for Skynet gl_k_skynet_plant.int.zip.

Lexx2k commented 2 years ago

Well, if you can give them items via the dialog/barter interface, then IMO yes, it should be possible. Otherwise you should disable the bartering completely.

The dogs, as example, can't be bartered with even in dialog. So it really seems to be more an oversight that it doesn't work with the other critters.

Considering Fo2 has more such party members, maybe it would be better to check if the party member proto has the barter flag, and if true, switch body type temporarily to human. This way it would automatically work with all party members that by default can be traded with via dialog. (Fo1/ettu doesn't really have that issue, as outside of dogmeat (can't trade by default), and the new MrHandy, everyone is human).

burner1024 commented 2 years ago

You can barter with Goris?

Lexx2k commented 2 years ago

Yes. scr00007

WebTiger89 commented 2 years ago

You guys are awesome ❤️ Regarding contribution. I were asking because I would like to be able to

  1. Understand the script file syntax
  2. Do some adjustments, bug fixing and provide a pull request

I guess there is no documentation about this at one place. It would be cumbersome to collect all these informations. So my next question would be, if someone would take time for me to give me an introduction, maybe in a more intuitive way than github, e.g. discord or slack. I guess that would not take much time. Just need some person to ask specific questions.

burner1024 commented 2 years ago

gl_k_plant_fix.int.zip This should work for Goris also. There's no other party members with this issue, so I think it should be enough for now.

There's an entire forum dedicated to modding. See also some info here.