JohntheHero Posted May 19, 2016 Share Posted May 19, 2016 So, this has to do with Quests. I'm using the CK. I only have two Quest stages: Recruit the NPC (Index 10) and Fire the NPC (Index 20). They do as their name implies. Here are their Papyrus Fragments: Recruit the NPC (Index 10): FollowersScript.GetScript().SetCompanion(BoxComp.GetActorReference())Fire the NPC (Index 20): FollowersScript.GetScript().DismissCompanion(BoxComp.GetActorReference()) I have four scenes. In the first scene, you can recruit my NPC which ends on Index 10 because, obviously, you've recruited them. In my second scene, you can say "I don't need you anymore" which moves the conversation to the third scene, where you confirm their firing, ending on Index 20. In the fourth and final scene, you can rehire my NPC which is supposed to end on Index 10. This is supposed to be a continuous cycle. HERE IS THE PROBLEM: The Quest doesn't move to Index 10. You get hung on up Index 20. Yes, they're rehired BUT when you speak to them, and choose the TALK option, the option to rehire them is still there. The dialogue didn't change to what I'd set if you were on Index 10 initially. Basically, I'm able to continuously rehire my NPC and not talk about the things I had previously set to talk about if you were on Index 10. I can provide more information if necessary. Link to comment Share on other sites More sharing options...
oli4r Posted May 20, 2016 Share Posted May 20, 2016 Do you have added conditions on the first greeting in your scenes? You should go to the rehire scene, and open the first greeting. There add a condition like this aprox: getstage ; quest ; value == 20 So this way this dialog is only availble when you have fired your npc. See pic attached, let me know if this helps Link to comment Share on other sites More sharing options...
JohntheHero Posted May 20, 2016 Author Share Posted May 20, 2016 Do you have added conditions on the first greeting in your scenes? You should go to the rehire scene, and open the first greeting. There add a condition like this aprox: getstage ; quest ; value == 20 So this way this dialog is only availble when you have fired your npc. See pic attached, let me know if this helpsI got it! Thanks, all is working now! Link to comment Share on other sites More sharing options...
patcazzo Posted May 21, 2016 Share Posted May 21, 2016 (edited) I have a different approach for the conditionals of companions. I think using stages can result in bugs. For example if you "hire" another former companion like Cait your custom companion will be dismissed without updating the stage after all the vanilla script handels this differently. Instead of stages I check for the faction of the companion: hasbeencompanionfaction, currentcompanionfaction. Use GetInFaction to check for them. recruit condition would be hasbeencompanionfaction == 0, currentcompanionfaction == 0follow/companion: currentcompanionfaction == 1 Here I don't check for hasbeencompanionfactionfired/rerecruit: hasbeencompanionfaction == 1, currentcompanionfaction == 0 you can use scripts also with conversation options so instead of adding scripts to the stages of the quest add FollowersScript.GetScript().SetCompanion(BoxComp.GetActorReference()) and FollowersScript.GetScript().DismissCompanion(BoxComp.GetActorReference()) them to the papyrus/script snippet box of the conversation option. Edited May 21, 2016 by patcazzo Link to comment Share on other sites More sharing options...
Recommended Posts