Jump to content

Recommended Posts

Posted

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!

  • 1 month later...
Posted

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.

  • Recently Browsing   0 members

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