BGforgeNet/Fallout2_Unofficial_Patch

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

Closed this issue · 15 comments

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.

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

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?

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.

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

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

  • I disabled looting for Skynet for now. (You could check its animations, maybe there's something that can be re-used as looting.)
  • I can't find the talk about stealing from robots that Lexx mentions. You could look for it, or ask again on forums, maybe someone will clarify. Until then, nothing can be done.
  • Regarding contributing, it depends on what do you want to do. For small bugs, can send direct pull requests. For larger problems and/or feature requests, probably better open an issue and discuss first, as there's no guarantee that your pull will be accepted.

Some extra info:

  • only critters with "biped" body type can be planted items in their inventory by player.
  • body type also affects the default reaction upon using skills on them, or if a critter itself can search healing drugs or weapons in their inventory and use them
  • thus, it's not feasible to change Skynet's body type just for this.
  • however, theoretically it might be possible to switch body type back and forth just when the skill is used, with sfall hooks. Nevertheless, this is not in scope for UPU nor Party Orders.

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.

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.
rotators/Fo1in2@2069724

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

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.

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).

You can barter with Goris?

Yes.
scr00007

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.

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.