olerid02 Posted June 28, 2017 Share Posted June 28, 2017 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 More sharing options...
Tasheni Posted June 29, 2017 Share Posted June 29, 2017 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 More sharing options...
olerid02 Posted June 29, 2017 Author Share Posted June 29, 2017 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 More sharing options...
Recommended Posts