futaxmale Posted August 29, 2015 Posted August 29, 2015 can anyone help me with a script, im trying to make it so that when a actor spawns and the player is near or is in line of sight to walk/run toward the player and say something based on how many encounter the player has had with the actor. Dialogue: always says on encounter" can i cast a spell on you" Dialogue choice: Sure,No,Walkaway If you choice sure she will smile wickedly and say"Nuf erutuf rof riah ydnas, nus tresed eht sa ydnas," which backwards is "Sandy as the desert sun, sandy hair for future fun." and cast the spell. making your hair the same color as hers/ if you choice no or walkaway she will scream and attack you end first second encounter if you have sandy hair spell effect on she will cast "Tresed eht retaw llahs klim ruoy," which is "Your milk shall water the desert" backwards." you will spurt up to c-cup breasts" if you didn't already have them" and begin lactating. multiples encounters increase lactation. if you dont have sandy hair she will cast the spell to change it so on and so forth.
Veladarius Posted September 3, 2015 Posted September 3, 2015 The easiest way I can think of is to use a force greet package with a large radius and a condition so you can disable it once the dialogue is over (just enable it again after a while). You are going to need to do a force greet package anyways to start the dialogue. For the package set the NPC Wait location and Trigger Location to the player and they will automatically go to the player when it is active.
futaxmale Posted September 4, 2015 Author Posted September 4, 2015 The easiest way I can think of is to use a force greet package with a large radius and a condition so you can disable it once the dialogue is over (just enable it again after a while). You are going to need to do a force greet package anyways to start the dialogue. For the package set the NPC Wait location and Trigger Location to the player and they will automatically go to the player when it is active. Thank you so much really
futaxmale Posted September 4, 2015 Author Posted September 4, 2015 still cant figure it out, can anyone make the quest for me
TheDriedFinger Posted September 5, 2015 Posted September 5, 2015 What you're talking about doing is going to require much more than scripting work. It will also require more knowledge about quest forms, the components of quests that will produce dialogue options and lines in-game, and AI packages. Take a look at these two tutorials: http://www.creationkit.com/Bethesda_Tutorial_Planning_the_Questand http://www.creationkit.com/Bethesda_Tutorial_Packages Even if you do not actually follow the steps and create the quests, it will give you an introduction into what knowledge will be required for your project. That of course is just a bit fo a foundation. They will not cover some other aspects which you'll have to research elsewhere, such as forcegreet dialogue and AI packages, methods of spawning actors, and the specific scripts you're looking to write (hair colour changes, which I don't know how to do; the body changes, which I also don't know how to do - head into the Loverslab chat, some members have the link in their signature, and ask about that since a lot of the members there will know about that; and starting combat after a certain dialogue option is chosen, which you can figure out by looking and the Dragonborn DLC quest where the Cultists confront you then attack you after a brief chat). My personal preference for learning specific techniques is to look at what's done in the Vanilla quests that are functionally similar, and what's done in other mods.
futaxmale Posted October 13, 2015 Author Posted October 13, 2015 so i tried my hand at it ,but when the npc casts the spell it doesn't change the hair Scriptname lolr extends ActiveMagicEffect Event OnEffectStart(Actor ckTarget, Actor ckCaster) if Game.GetPlayer().HasPerk(Sandyperk) sandquest.setstage(20) else Game.Getplayer().AddPerk(Sandyperk) ActorBase PlayerBase = Target.GetActorBase() ActorBase sandwitch = Sandy.GetActorBase() PlayerRace = PlayerBase.GetRace() ; Replace all head parts int i = sandwitch.GetNumHeadParts() While i > 0 PlayerBase.SetNthHeadPart(sandwitch.GetNthHeadPart(i), i) i -= 3 endWhile Target.QueueNiNodeUpdate() sandquest.setstage(30) endif EndEvent Perk Property Sandyperk Auto Quest Property sandquest Auto Actor Property sandy Auto Actor Property PlayerRace Auto
ojanen Posted October 30, 2015 Posted October 30, 2015 I seem to you want to change the hair of the actor. You are using GetNthHeadPart(i) (I wonder that i = 3, Hair?). But GetNthHeadPart(3) does not mean the Hair. This means the fourth (counts start by 0) HeadPart from ascending order of FormID out of HeadPart with the ActorBase. If you want to Get the hair of ActorBase, it shall be as follows. And I use ChangeHeadPart instead of SetNthHeadPart in PSQ to change the HeadPart. HeadPart HairPart Int Hair = Sandy.GetLeveledActorBase().GetNumHeadParts() Int i = 0 While i < Hair If Sandy.GetLeveledActorBase().GetNthHeadPart(i).GetType() == 3 HairPart = Sandy.GetLeveledActorBase().GetNthHeadPart(i) i = Hair EndIf i += 1 EndWhile Game.Getplayer().ChangeHeadPart(HairPart)
futaxmale Posted October 30, 2015 Author Posted October 30, 2015 I seem to you want to change the hair of the actor. You are using GetNthHeadPart(i) (I wonder that i = 3, Hair?). But GetNthHeadPart(3) does not mean the Hair. This means the fourth (counts start by 0) HeadPart from ascending order of FormID out of HeadPart with the ActorBase. If you want to Get the hair of ActorBase, it shall be as follows. And I use ChangeHeadPart instead of SetNthHeadPart in PSQ to change the HeadPart. HeadPart HairPart Int Hair = Sandy.GetLeveledActorBase().GetNumHeadParts() Int i = 0 While i < Hair If Sandy.GetLeveledActorBase().GetNthHeadPart(i).GetType() == 3 HairPart = Sandy.GetLeveledActorBase().GetNthHeadPart(i) i = Hair EndIf i += 1 EndWhile Game.Getplayer().ChangeHeadPart(HairPart) thanks so much
Recommended Posts
Archived
This topic is now archived and is closed to further replies.