Jump to content

[LE] Certain misc tab dialogue is not working while follower is following


Recommended Posts

I have a custom voiced follower that is not commenting on player shouts, pickpocket attempts, corpse noticing and a few other dialogue topics under the misc tab. As soon as the follower is dismissed, the dialogue plays again. I found that this issue was also present in vanilla followers (I tested it with Uthgerd the Unbroken), however, other follower mods like Sofia don't have this issue.

My follower is using a modified version of the vanilla follower script, and the vanilla follower package. The follower quest ha a global condition (GetIsID == Myfollower).

 

Another small issue I am having is that packages sometimes don't have any effect. An example is the sleep package of a custom NPC. As soon as the package is within its schedule parameters, the NPC just stands completely still.

 

Any help is appreciated! :smile:

 

The modified version of the vanilla follower script that I used:

Scriptname NQFollowerScript extends Quest

Actor Property PlayerREF Auto
ReferenceAlias Property FollowerAlias Auto
Faction Property DismissedFollowerFaction Auto
Faction Property CurrentHireling Auto
Message Property  FollowerDismissMessage Auto

Message Property  FollowerDismissMessageWait Auto
SetHirelingRehire Property HirelingRehireScript Auto
Actor Property Ljaco Auto
;Property to tell follower to say dismissal line
Int Property iFollowerDismiss Auto Conditional
NQSindreFollowVar Property QS Auto
Armor Property Ring Auto
Armor Property RingUnplayable Auto

Quest Property lQuest Auto
Bool Updated

Function SetFollower(ObjectReference FollowerRef)
	actor FollowerActor = FollowerRef as Actor
	FollowerActor.RemoveFromFaction(DismissedFollowerFaction)
	If FollowerActor.GetRelationshipRank(PlayerREF) <3 && FollowerActor.GetRelationshipRank(PlayerREF) >= 0
		FollowerActor.SetRelationshipRank(PlayerREF, 3)
	EndIf
	FollowerActor.SetPlayerTeammate()
	;FollowerActor.SetActorValue("Morality", 0)
	FollowerAlias.ForceRefTo(FollowerActor)
	QS.SindreFollow = 1
	FollowerActor.EvaluatePackage()
	If lQuest.GetStage() <= 30
		Ljaco.Disable()
	endIf
	RegisterForSingleUpdateGameTime(24*2)
	Updated = 1
	FollowerAlias.GetActorRef().RemoveItem(Ring)
	FollowerAlias.GetActorRef().AddItem(RingUnplayable)
EndFunction
 

Function FollowerWait()
	actor FollowerActor = FollowerAlias.GetActorRef() as Actor
	FollowerActor.SetActorValue("WaitingForPlayer", 1)
	;follower will wait 3 days
	FollowerAlias.RegisterForSingleUpdateGameTime(72) 
EndFunction
 

Function FollowerFollow()
	actor FollowerActor = FollowerAlias.GetActorRef() as Actor
	FollowerActor.SetActorValue("WaitingForPlayer", 0)
	SetObjectiveDisplayed(10, abdisplayed = false)
	FollowerActor.EvaluatePackage()
EndFunction

 
Function DismissFollower(Int iMessage = 0, Int iSayLine = 1, bool combatdismiss = false)
	If FollowerAlias && FollowerAlias.GetActorReference().IsDead() == False
		If iMessage == 0
			FollowerDismissMessage.Show()
		ElseIf iMessage == 4
			FollowerDismissMessageWait.Show()
		Else
			;failsafe
			FollowerDismissMessage.Show()
		EndIf
		actor DismissedFollowerActor = FollowerAlias.GetActorRef() as Actor
		DismissedFollowerActor.StopCombatAlarm()
		DismissedFollowerActor.AddToFaction(DismissedFollowerFaction)
		DismissedFollowerActor.SetPlayerTeammate(false)
		DismissedFollowerActor.RemoveFromFaction(CurrentHireling)
		DismissedFollowerActor.SetActorValue("WaitingForPlayer", 0)
		;hireling rehire function
		HirelingRehireScript.DismissHireling(DismissedFollowerActor.GetActorBase())
		QS.SindreFollow = 0
		QS.UsePackage = 0
		If iSayLine == 1
			iFollowerDismiss = 1
			DismissedFollowerActor.EvaluatePackage()
			;Wait for follower to say line
			Utility.Wait(2)
		EndIf
		FollowerAlias.Clear()
		iFollowerDismiss = 0
		;don't set count to 0 if Companions have replaced follower
		If iMessage == 2
			;do nothing
		EndIf
		If combatdismiss == 1
			QS.DR = 2
		endIf
	EndIf
		Ljaco.Enable()
	FollowerAlias.GetActorRef().RemoveItem(RingUnplayable)
	FollowerAlias.GetActorRef().AddItem(Ring)
EndFunction
Link to comment
Share on other sites

What conditions have you set for the dialogues? Try GetInFaction - CurrentFollowerFaction == 1 or GetStage with the stage your follower is following the player. I raised the stage directly after follower is following so I can always use GetStage - MyFollowerQuest >=10 because GetInFaction ot always triggers.

Link to comment
Share on other sites

What conditions have you set for the dialogues? Try GetInFaction - CurrentFollowerFaction == 1 or GetStage with the stage your follower is following the player. I raised the stage directly after follower is following so I can always use GetStage - MyFollowerQuest >=10 because GetInFaction ot always triggers.

I don't think that's the case, since the idle dialogue works even though it has the exact same conditions. I will try to set a condition for when the follower is following, and see if it works.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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