skinnytecboy Posted October 17, 2014 Share Posted October 17, 2014 "The iCookie will change the face of food forever, exclaimed the young marketing person. People will buy it and love and eventually want more. And when they do, that is when we release an app that let's them create their own recipes (at a cost of course). Heck, we can even forcibly make them download a recipe by bono from U2" Link to comment Share on other sites More sharing options...
bojanni Posted October 17, 2014 Author Share Posted October 17, 2014 (edited) Yeah, I deduced it to the fact it's an alias issue. I just can't seem to figure out why the alias is not being filled. I created two quests: 1. BO_FollowerControlQuest with the alias set-up and the Bo_FollowerControlQuest attached to it2. BO_FollowerDialogueQuest with all the dialogue and recruitment options (from the tutorial I found on your site). So, is it a problem that the alias is in a different quest other than the dialogue quest? BO_FollowerControlQuest: Scriptname BO_FollowerControlQuestScript extends Quest GlobalVariable Property BO_MaximumFollowerCount AutoReferenceAlias Property BO_FollowerAlias AutoFaction Property DismissedFollower AutoFaction Property CurrentHireling AutoMessage Property FollowerDismissMessage AutoMessage Property FollowerDismissMessageWedding AutoMessage Property FollowerDismissMessageCompanions AutoMessage Property FollowerDismissMessageCompanionsMale AutoMessage Property FollowerDismissMessageCompanionsFemale AutoMessage Property FollowerDismissMessageWait AutoSetHirelingRehire Property HirelingRehireScript Auto ;Property to tell follower to say dismissal lineInt Property iFollowerDismiss Auto Conditional Function SetFollower(ObjectReference FollowerRef) actor FollowerActor = FollowerRef as Actor FollowerActor.RemoveFromFaction(DismissedFollower) If FollowerActor.GetRelationshipRank(Game.GetPlayer()) < 3 && FollowerActor.GetRelationshipRank(Game.GetPlayer()) >= 0FollowerActor.SetRelationshipRank(Game.GetPlayer(), 3) EndIf FollowerActor.SetPlayerTeammate() ;FollowerActor.SetAV("Morality", 0) BO_FollowerAlias.ForceRefTo(FollowerActor) BO_MaximumFollowerCount.SetValue(1)EndFunction Function FollowerWait() actor FollowerActor = BO_FollowerAlias.GetActorRef() as Actor FollowerActor.SetAv("WaitingForPlayer", 1) ;SetObjectiveDisplayed(10, abforce = true) ;follower will wait 3 days BO_FollowerAlias.RegisterForUpdateGameTime(72) EndFunction Function FollowerFollow() actor FollowerActor = BO_FollowerAlias.GetActorRef() as Actor FollowerActor.SetAv("WaitingForPlayer", 0) SetObjectiveDisplayed(10, abdisplayed = false) EndFunction Function DismissFollower(Int iMessage = 0, Int iSayLine = 1) If BO_FollowerAlias && BO_FollowerAlias.GetActorRef().IsDead() == False If iMessage == 0 FollowerDismissMessage.Show() ElseIf iMessage == 1 FollowerDismissMessageWedding.Show() ElseIf iMessage == 2 FollowerDismissMessageCompanions.Show() ElseIf iMessage == 3 FollowerDismissMessageCompanionsMale.Show() ElseIf iMessage == 4 FollowerDismissMessageCompanionsFemale.Show() ElseIf iMessage == 5 FollowerDismissMessageWait.Show() Else ;failsafe FollowerDismissMessage.Show() EndIf actor DismissedFollowerActor = BO_FollowerAlias.GetActorRef() as Actor DismissedFollowerActor.StopCombatAlarm() DismissedFollowerActor.AddToFaction(DismissedFollower) DismissedFollowerActor.SetPlayerTeammate(false) DismissedFollowerActor.RemoveFromFaction(CurrentHireling) DismissedFollowerActor.SetAV("WaitingForPlayer", 0) ;hireling rehire function HirelingRehireScript.DismissHireling(DismissedFollowerActor.GetActorBase()) If iSayLine == 1 iFollowerDismiss = 1 DismissedFollowerActor.EvaluatePackage() ;Wait for follower to say line Utility.Wait(2) EndIf BO_FollowerAlias.Clear() iFollowerDismiss = 0 ;don't set count to 0 if Companions have replaced follower If iMessage == 2 ;do nothing Else BO_MaximumFollowerCount.SetValue(0) EndIf EndIf EndFunction Edited October 17, 2014 by bojanni Link to comment Share on other sites More sharing options...
Mattiewagg Posted October 17, 2014 Share Posted October 17, 2014 Are all your properties filled? Have you set up the alias so it points directly to your follower as shown in the tutorial? Just looked through the tutorial again and noticed a potential error. If you've just got the one follower, then try making the alias a specific reference that points to your follower, not an empty forced reference. If that works report back to me and I'll change it in the tutorial. Link to comment Share on other sites More sharing options...
bojanni Posted October 17, 2014 Author Share Posted October 17, 2014 Well, I had the alias set up like this: http://imgur.com/PdXpsAi I changed it to this: http://imgur.com/0MEjDB7 That immediately exposed all the follower-options (like wait here, show your inventory etc.). I don't think that's right? Also one other thing: In the tutorial it sets the condition on the follow / recruit dialogue for CurrentFollowerFaction = 1. When I do that, the dialogue option doesn't appear. I also set up this condition on the dismiss topic, and also that option doesn't appear, even with the forced reference. I added to faction to my NPC though. In-game info: http://imgur.com/YYns1ZL Papyrus says (with forced ref) [10/17/2014 - 10:26:59PM] Error: Cannot call ForceRefTo() on a None object, aborting function callstack:[bO_FollowerControlQuest (CD0274F6)].BO_FollowerControlQuestScript.SetFollower() - "BO_FollowerControlQuestScript.psc" Line 27.TIF__04033188.Fragment_0() - "TIF__04033188.psc" Line 9 My NPC doesn't seem to exist. Link to comment Share on other sites More sharing options...
Mattiewagg Posted October 17, 2014 Share Posted October 17, 2014 Well, I had the alias set up like this: http://imgur.com/PdXpsAi I changed it to this: http://imgur.com/0MEjDB7 That immediately exposed all the follower-options (like wait here, show your inventory etc.). I don't think that's right? Also one other thing: In the tutorial it sets the condition on the follow / recruit dialogue for CurrentFollowerFaction = 1. When I do that, the dialogue option doesn't appear. I also set up this condition on the dismiss topic, and also that option doesn't appear, even with the forced reference. I added to faction to my NPC though. In-game info: http://imgur.com/YYns1ZL Papyrus says (with forced ref) [10/17/2014 - 10:26:59PM] Error: Cannot call ForceRefTo() on a None object, aborting function callstack:[bO_FollowerControlQuest (CD0274F6)].BO_FollowerControlQuestScript.SetFollower() - "BO_FollowerControlQuestScript.psc" Line 27.TIF__04033188.Fragment_0() - "TIF__04033188.psc" Line 9 My NPC doesn't seem to exist.Huh. So I remember why now you need that - you force the ref when they accept you as a follower. I'm not sure why the ref isn't forcing correctly. When they're accepted as a follower, it should cause the script to run the ForceRefTo() and make your speaker (follower) the follower alias. For some reason, this doesn't seem to be working for you. Link to comment Share on other sites More sharing options...
skinnytecboy Posted October 17, 2014 Share Posted October 17, 2014 What's the purpose of the hireling property? Just had a peek a the fab "Sofia" and noticed that it contains a separate script for hireling... Surely a bog standard follower doesn't even use hireling functions? Link to comment Share on other sites More sharing options...
bojanni Posted October 17, 2014 Author Share Posted October 17, 2014 Welll... I think it's pretty important.. I just checked the properties of my BO_FollowerControlQuestScript and compared it to vanilla. I hadn't set a property for currenthireling - faction and set it's value to currenthireling. Set HirelingRehireScript to DialogueFollower and..... My NPC which I hate right now, follows me.... it's magic... and Matthias mentioning Properties :) Thankyou Thankyou Thankyou!!! Link to comment Share on other sites More sharing options...
Mattiewagg Posted October 17, 2014 Share Posted October 17, 2014 Welll... I think it's pretty important.. I just checked the properties of my BO_FollowerControlQuestScript and compared it to vanilla. I hadn't set a property for currenthireling - faction and set it's value to currenthireling. Set HirelingRehireScript to DialogueFollower and..... My NPC which I hate right now, follows me.... it's magic... and Matthias mentioning Properties :smile: Thankyou Thankyou Thankyou!!! Is there anything I should change in the tutorial so this is more clear - for future reference, when I do overhaul it. Link to comment Share on other sites More sharing options...
skinnytecboy Posted October 17, 2014 Share Posted October 17, 2014 Is this the end? Is it truly solved once and for all? Erm, no. I think for the sake of Googledom, we need to create a concise tutorial. I swear that when I upload Ben 2.2 I will include the script source so that everyone can see how it's done. That way, given the right tools, anyone can do it. I still have a bit of testing to do,I will update here if I'm successful or not. Matt, as usual sir, you're a star. Bojanni, I don't think our biscuit story is finished.. Link to comment Share on other sites More sharing options...
Mattiewagg Posted October 17, 2014 Share Posted October 17, 2014 Is this the end? Is it truly solved once and for all? Erm, no. I think for the sake of Googledom, we need to create a concise tutorial. I swear that when I upload Ben 2.2 I will include the script source so that everyone can see how it's done. That way, given the right tools, anyone can do it. I still have a bit of testing to do,I will update here if I'm successful or not. Matt, as usual sir, you're a star. Bojanni, I don't think our biscuit story is finished..And I'll reference your mod in the updated tutorial so when you do figure out people can see it's possible. Again, I apologize for the hassle this has taken both of you with my tutorial. It's a top priority once I get some free time after sending off the dialogue to VAs (for Immersive Quests that is). Link to comment Share on other sites More sharing options...
Recommended Posts