ArronDominion Posted November 24, 2014 Share Posted November 24, 2014 (edited) So I recently decided to incorporate the Hearthfire content, Dragonborn content, and the ability to set a custom house for Sniffs the Skooma Bear. (I am also going to reduce the volume of Sniffs, but that is not why I am here) I have run into an issue of the Dialogue fragments not updating properly to reflect the changes in the quest script (haven't fooled around with dialogue scripts too much outside of basics, so it might be something stupid on my part). So the original quest script (should look somewhat similar to the MarriageQuestMoveHouseScript [prob the wrong name, but you will get the idea], this is an old script from when I was newer to modding): Scriptname AJDCompanionHouseScript extends Quest ReferenceAlias Property SolitudeHouse Auto ReferenceAlias Property WindhelmHouse Auto ReferenceAlias Property MarkarthHouse Auto ReferenceAlias Property RiftenHouse Auto ReferenceAlias Property WhiterunHouse Auto ReferenceAlias Property SpouseHouse Auto ReferenceAlias Property WhiterunBarReference Auto ReferenceAlias Property WhiterunBarHouse Auto ReferenceAlias Property StayHereHouse Auto Function MoveCompanion (Actor Companion, ReferenceAlias NewHouse) ;Function puts the player companion in the correct alias to sandbox in the appropriate house ;Clear all the other house aliases before setting the new one If SolitudeHouse SolitudeHouse.Clear() EndIf If WindhelmHouse WindhelmHouse.Clear() EndIf If MarkarthHouse MarkarthHouse.Clear() EndIf If RiftenHouse RiftenHouse.Clear() EndIf If WhiterunHouse WhiterunHouse.Clear() EndIf If FollowHouse FollowHouse.Clear() EndIf If WhiterunBarHouse WhiterunBarHouse.Clear() EndIf If StayHereHouse StayHereHouse.Clear() EndIf NewHouse.ForceRefTo(Companion) EndFunction Function SpouseShop (Actor Spouse) ;Function checks to see if the player was a vendor before, if not, make them a MiscVendor EndFunction ReferenceAlias Property FollowHouse Auto Here is the new iteration of the script: Scriptname AJDCompanionHouseScript extends Quest ReferenceAlias Property SolitudeHouse Auto ReferenceAlias Property WindhelmHouse Auto ReferenceAlias Property MarkarthHouse Auto ReferenceAlias Property RiftenHouse Auto ReferenceAlias Property WhiterunHouse Auto ReferenceAlias Property SpouseHouse Auto ReferenceAlias Property WhiterunBarReference Auto ReferenceAlias Property WhiterunBarHouse Auto ReferenceAlias Property StayHereHouse Auto Function MoveCompanion (Actor Companion, ReferenceAlias NewHouse) ;Function puts the player companion in the correct alias to sandbox in the appropriate house ;Clear all the other house aliases before setting the new one ;Your solitude house If SolitudeHouse SolitudeHouse.Clear() EndIf ;Your windhelm house If WindhelmHouse WindhelmHouse.Clear() EndIf ;Your markarth house If MarkarthHouse MarkarthHouse.Clear() EndIf ;Your riften house If RiftenHouse RiftenHouse.Clear() EndIf ;Your whiterun house If WhiterunHouse WhiterunHouse.Clear() EndIf ;Sniffs follower package If FollowHouse FollowHouse.Clear() EndIf ;The Bannered Mare If WhiterunBarHouse WhiterunBarHouse.Clear() EndIf ;Sniffs stay here package If StayHereHouse StayHereHouse.Clear() EndIf ;Falkreath Lakeview house If BYOHLakeviewHouse BYOHLakeviewHouse.Clear() EndIf ;Morthal Windstad house If BYOHWindstadHouse BYOHWindstadHouse.Clear() EndIf ;Dawnstar Heljarchen house If BYOHHeljarchenHouse BYOHHeljarchenHouse.Clear() EndIf ;Raven Rock Severin House If DLC2SeverinHouse DLC2SeverinHouse.Clear() EndIf ;Your custom house If CustomHouse CustomHouse.Clear() EndIf NewHouse.ForceRefTo(Companion) EndFunction ;This function is designed to replace the current location of the custom house ;WARNING Only one custom house at a time ;2nd WARNING You might lose Sniffs if the custom house is removed while he is inside Function MoveMarker() AJDSkoomaBearCustomHouseMarker.MoveTo(AJDSniffs) EndFunction Function SpouseShop (Actor Spouse) ;Function checks to see if the player was a vendor before, if not, make them a MiscVendor EndFunction ReferenceAlias Property FollowHouse Auto ReferenceAlias Property BYOHLakeviewHouse Auto ReferenceAlias Property BYOHHeljarchenHouse Auto ReferenceAlias Property BYOHWindstadHouse Auto ReferenceAlias Property DLC2SeverinHouse Auto ReferenceAlias Property CustomHouse Auto ObjectReference Property AJDSkoomaBearCustomHouseMarker Auto ObjectReference Property AJDSniffs Auto The quest itself uses the Story Manager, and has an event node under Script Events in the SM Event Node sub-category. In the quest stage for this quest, I use the line, with kmyquest as AJDCompanionHouseScript: kmyquest.SpouseShop(Alias_Sniffs.GetActorRef()) For the dialogue options for the various follower options (Go to the bar, Go to my Whiterun House, etc.), I used the End script fragment (replace FollowHouse with the other ReferenceAlias listed in the quest): (GetOwningQuest() as AJDCompanionHouseScript).MoveCompanion(akspeaker, FollowHouse) The original fragments are keeping the original references and have not updated to reflect the new references. The problem comes in when I introduced the Hearthfire, Dragonborn, and Custom House logic in the mix. The new fragments do not recognize the ReferenceAliases from AJDCompanionHouseScript. Edit:I can call MoveMarker() without any issues. Also just remembered it would be helpful to see the ReferenceAliases:https://dl-web.dropbox.com/get/public%20share/wthsniffs/referencealiases.png?_subject_uid=41308520&w=AABcD_QXle2mtGzKNkHbLxl1HJLXIPlO_L2BF1oZeO0nDA Anyone have an idea on how to tackle this problem? Edited November 25, 2014 by Arron Dominion Link to comment Share on other sites More sharing options...
ArronDominion Posted November 25, 2014 Author Share Posted November 25, 2014 I decided to bypass the issue (still have no clue why it is thrashing at the changes, and not giving the fragments the reference aliases in the case of the newer aliases to the old fragments, and any aliases to the new fragments). Here is the resulting function I decided to use instead: ;This function is designed to replace the current MoveCompanion script with numeric input instead of ReferenceAlias input Function MoveCompanionInt(Actor Companion, Int Choice) ;Function puts the player companion in the correct alias to sandbox in the appropriate house ;Clear all the other house aliases before setting the new one ;Your solitude house If SolitudeHouse SolitudeHouse.Clear() EndIf ;Your windhelm house If WindhelmHouse WindhelmHouse.Clear() EndIf ;Your markarth house If MarkarthHouse MarkarthHouse.Clear() EndIf ;Your riften house If RiftenHouse RiftenHouse.Clear() EndIf ;Your whiterun house If WhiterunHouse WhiterunHouse.Clear() EndIf ;Sniffs follower package If FollowHouse FollowHouse.Clear() EndIf ;The Bannered Mare If WhiterunBarHouse WhiterunBarHouse.Clear() EndIf ;Sniffs stay here package If StayHereHouse StayHereHouse.Clear() EndIf ;Falkreath Lakeview house If BYOHLakeviewHouse BYOHLakeviewHouse.Clear() EndIf ;Morthal Windstad house If BYOHWindstadHouse BYOHWindstadHouse.Clear() EndIf ;Dawnstar Heljarchen house If BYOHHeljarchenHouse BYOHHeljarchenHouse.Clear() EndIf ;Raven Rock Severin House If DLC2SeverinHouse DLC2SeverinHouse.Clear() EndIf ;Your custom house If CustomHouse CustomHouse.Clear() EndIf ;;;;;;;;;;;;;;;;;;;;;;; ;Choice logic ;0 - Solitude ;1 - Windhelm ;2 - Markarth ;3 - Riften ;4 - Whiterun ;5 - Follow ;6 - Bannered Mare ;7 - Stay Here ;8 - Lakeview ;9 - Windstad ;10 - Heljarchen ;11 - Severin ;12 - Custom ;;;;;;;;;;;;;;;;;;;;;;; if Choice == 0 SolitudeHouse.ForceRefTo(Companion) ElseIf Choice == 1 WindhelmHouse.ForceRefTo(Companion) ElseIf Choice == 2 MarkarthHouse.ForceRefTo(Companion) ElseIf Choice == 3 RiftenHouse.ForceRefTo(Companion) ElseIf Choice == 4 WhiterunHouse.ForceRefTo(Companion) ElseIf Choice == 5 FollowHouse.ForceRefTo(Companion) ElseIf Choice == 6 WhiterunBarHouse.ForceRefTo(Companion) ElseIf Choice == 7 StayHereHouse.ForceRefTo(Companion) ElseIf Choice == 8 BYOHLakeviewHouse.ForceRefTo(Companion) ElseIf Choice == 9 BYOHWindstadHouse.ForceRefTo(Companion) ElseIf Choice == 10 BYOHHeljarchenHouse.ForceRefTo(Companion) ElseIf Choice == 11 DLC2SeverinHouse.ForceRefTo(Companion) Else CustomHouse.ForceRefTo(Companion) EndIf EndFunction I can move forward on the changes to the mod. I wish I understood what was going on in the original form of the function (did the Creation Kit thrash because the mod had cached data from its release that my system did not have anymore due to the cloud sync bug, or did I goof somewhere). Link to comment Share on other sites More sharing options...
Recommended Posts