Jump to content

Packages, accessing ObjectList from outside


hereami

Recommended Posts

How its content could be passed to a quest alias or script, if is not an Actor?

 

Problem as an abstraction: how to allow an Actor to alter a random unprepared object found during Package execution (e.g. SetValue, AddItem, AddKeyword etc.).

 

Example. NPC finds (Find->ObjectList) a lootable object (actor or container) and then uses Say proc and triggers TopicInfo, which does GetDialogueTarget() to extract the exact targeted object for subsequent processing. BUT somehow a Container isn't treated as valid object by that function and probably it returns NULL (alias isn't updated to new value), despite the fact that Target does technically exist and Condition for Target inside Info still determines the type. Took some time to understand this unfortunate misbehaviour.

 

Good enough, but deficient as said. Can't see other methods for now. UseMagic wouldn't hit objects, even if ever worked. Problem is that exact target cannot be known utill NPC interacts, so events on target side, like OnActivate(), OnHit(), are useless here. I guess, weapons cannot apply any effect/script to non-living objects anyways.

Link to comment
Share on other sites

Little hard to follow what you are saying, but from what I gather in abstract terms...

 

Thinking about the "dogmeat found something" trick. Might have a script/trigger to help identify a stored/LL object then transmogrify/process upon discovery.

 

Weapons apply impact data to some objects. (That's a hook at least).

 

Not sure if that helps anything you are working on, but seemed to relate to what you were talking about. :blush:

Link to comment
Share on other sites

Well, thanks anyway. If more abstract, an object of interaction should be identified and extracted from inside actor's conscience (i.e. packages and procedures, Find proc in particular), not injected into his "mind" from outside (e.g. from event-driven quest, like for dogmeat and companions findings). Suppose it's a weird problem of npc's free will now, primarily the question and method above appeared thanks to ps4 limitations, then it becomes more interesting to model behaviour this way, even though makes no difference from viewpoint of a user, i guess...

Edited by hereami
Link to comment
Share on other sites

I think we got the answer to this in Todd Howard's interview on Lex Friedman's podcast. They talked about the loot system and he specifically brought up NPCs in previous Beth-games having been able to grab so called "treasures" i.e. reward-items in chests, before the player got to them, and that this had now been adjusted. So it's probably an intentional limitation in their packages.

They will still snatch legendary gear in the blink of an eye so not exactly water-tight. >:|

Link to comment
Share on other sites

I think we got the answer to this in Todd Howard's interview on Lex Friedman's podcast. They talked about the loot system and he specifically brought up NPCs in previous Beth-games having been able to grab so called "treasures" i.e. reward-items in chests, before the player got to them, and that this had now been adjusted. So it's probably an intentional limitation in their packages.

 

They will still snatch legendary gear in the blink of an eye so not exactly water-tight. >:|

Haha, curious. Nah, they're fine though, besides usual borrowing of weapons from dead player toon, one time i've seen them taking all clothes and armor, and marauder commented like "this dead meat should have something useful", amazing, paying zero respect to Hero of Commonwealth. I hate devs for ai castration in Fallout 76 (npc used to loot downed players, heh..), that's not a right way to make game more fun.

Think it's made differently in a harmless and flexible way. For example, REFR can have a flag NoAIAcquire to prevent npc access, but non-protected containers still can be looted even if locked. Also QuestObject flag in alias for most important thingies.

Edited by hereami
Link to comment
Share on other sites

Probably could, just not for PS. Though still can be a quest attempting to restart every 2-3 seconds and refill an alias, emulating continuous search. Allows explicit filtering, unlike Find, and easy access to subject, but looks too heavy and can't be shared by multiple actors.

 

Package >> Travel >> NPC.PlayIdle(NPCPickUpItemOrSomething) , in this context what is PlayIdle supposed to mean? Because there is undocumented procedure PlayIdle, which i haven't succeeded to crank up and suppose it's undone, or no?

Edited by hereami
Link to comment
Share on other sites

Package >> Travel >> NPC.PlayIdle(NPCPickUpItemOrSomething) , in this context what is PlayIdle supposed to mean? Because there is undocumented procedure PlayIdle, which i haven't succeeded to crank up and suppose it's undone, or no?

 

I meant the "pick up item" animations, the ones that play on actors when they Activate ("pick up") an item. They're under 3rdPPickupRoot (FormID: 0013FE07).

Edited by LarannKiar
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...