Jump to content

Bypassing vanilla follower "Command" system


Recommended Posts

Edit4: Solved! You just need to add two functions: SetDoingFavor(false) and SetCanDoCommand(false)

 

Here's what the new function looks like:

 

 

Function SetFollowPackage(Actor akActor)

    int iTokensToAdd

    RemoveExistingTokens(akActor)
    
    iTokensToAdd = AAAFyTy_FollowerFramework_Message_FollowSelect.Show() + 1

    akActor.AddItem(AAAFyTy_FollowerFramework_NPCToken, iTokensToAdd)
    akActor.EvaluatePackage()
    akActor.SetDoingFavor(false)
    akActor.SetCanDoCommand(false)

EndFunction

 

The next roadblock in this follower framework, is making NPCs attack NPCs that are hostile to the player.

 

The easy way about this is to use SetPlayerTeammate(), which is what the vanilla follower system uses. However, this shoehorns the NPC to use the vanilla follower framework; when you activate the NPC, you get the Command prompt which brings up the Talk/Trade/Cancel/Wait dialogue menu.

 

That's a pain in the ass, as you then have to select the "Talk" dialogue to get to the dialogue from my framework.

 

I tried adding a condition to the vanilla Followers quest, but the Command prompt appeared regardless. Any idea how to avoid this, whilst still having NPCs attack hostiles (e.g, a Raider follower attacking other Raiders)? Adding the PlayerAlly faction to the RefCollection alias didn't do anything.

 

 

Edit: Turns out it's due to a different reason entirely. I've a package template based off the FollowPlayer template package, which activates the Command interaction.

 

So now I need to figure out how to have an NPC follow the player, without them being in the Command state.

 

 

Edit2: Seems to be tied to the Followers quest, that calls SetPlayerTeammate() with favor mode enabled.

 

 

Edit3: Alas, it seemed like the issue, but adding a check for the relevant keywords did nothing.

Edited by FiftyTifty
Link to comment
Share on other sites

  • Recently Browsing   0 members

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