Jump to content

Script help


futaxmale

Recommended Posts

Posted

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.

 

 

 

 

Posted

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.

Posted

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

Posted

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.

  • 1 month later...
Posted

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  
 
  • 3 weeks later...
Posted
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)

post-151376-0-87036000-1446228866_thumb.png

Posted

 

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

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...