Jump to content

How do I make all faction members attack the player from a dialogue option?


Nawor3565

Recommended Posts

So I have a faction set up, consisting of 5 NPCs in an area. One of the NPCs is a guard, who has a ForceDialogue event with the player as soon as the player enters the area. What I would like to happen is, should the player choose a specific dialogue option, every member of the faction becomes aggressive and attacks the player. However, I CANNOT get this to work. I use akspeaker.startcombat(Game.GetPlayer()) in the End Dialogue papyrus fragment, and the guard does become aggressive, but no one else in the faction does. If I attack the guard first with a bow/arrow, everyone will become aggressive like you'd expect, but if the guard initiates combat, I can attack him and no one else will care. I understand why, it's just like what happens with the Dark Brotherhood contracts, where every target has a dialogue option that will make them aggressive and allow you to kill them without it being considered murder. But I cannot figure out what the best way is to work around it. I tried adding akSpeaker.SendAssaultAlarm() to the papyrus fragment but that didn't change anything. Can anyone help me figure out what the most straightforward way to do this would be? Thanks!

Link to comment
Share on other sites

  • 1 month later...

I can think of a something but it depends how your 5 NPCs are set up in terms of their aggression. Are they normally unaggressive, agressive etc? Best if they're aggressive for this.

 

If you make all 5 actors aliases in the quest, you could give them all two factions in their alias faction tab.

 

Alias faction 1 is a faction that is neutral (or friendly) towards the player faction. If the actors are aggressive this faction would have to be a friend of the player to stop them attacking on sight. This is the faction they are in when the quest starts,and is conditioned to be valid when the quest is < stage '#'.

 

Alias Faction 2 is a faction that is an enemy of the player. It is conditioned to be valid when the quest is >= stage '#'.

 

Now in the end fragment of your dialogue line, just add GetOwningQuest90.SetStage(#) and they should all become enemies at the same time since their friendly faction is no longer valid and their enemy faction is.

 

Stage # is just a dummy stage to set so that the actors move out of their friendly faction into their enemy faction.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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