Jump to content

Companion Scripting and Dialogue


RBRoAB

Recommended Posts

I checked out the other custom NPC thread, but it didn't really ask the questions I need answers to.

 

Like a lot of people, I have made my own companions. I've made each one functional with the companion wheel, but that's it. Very basic

 

I've created custom dialogue using new quest in the geck, and also used that for scripting.

 

Now I'm looking to take that a step further. I've created a new creature companion. A protectron. Most of the basics I can handle. But I want this companion to say different things in different situations.

 

I already have voice clips. I've given voices to companions with just basic functions. But this will be more advanced.

 

A few examples, say things when combat has ended, say something when I sneak, say random things while exploring, say something when in caution (not just in danger).

 

I'm not looking for someone to do this for me, I'm looking for a guide, tutorial, or anyone who can push me in the right direction.

Link to comment
Share on other sites

Had the GECK open so I threw this together.

 

It's much simpler than you may think. The topics already exist, they're universal. You've just gotta go to the correct tab to find them.

 

For example, combat barks. Go to the combat tab, add the topic called "Attack" (don't make one, use the existing one) and add your characters combat barks to that. It really is that simple, you don't need to do anything else (other than add the actor ID condition as with all dialog.)

 

It really is that simple. Most of the topic titles speak for themselves, HealthQuarter is what's said when the character is badly hurt, and so on. You'll find most of what you're looking for in the combat and detection tabs. A few exist in the default topics one.

 

http://i47.tinypic.com/xahpz.jpg

Link to comment
Share on other sites

Saying random stuff whilst walking around requires a script. Just add all of the idle chatter to a single topic and flag random on each response.

 

scn SCRIPTNAMEHERE

float timer

begin GameMode

if ( timer > TIMEINSECONDSBETWEENTALKING ) && ACTORREFHERE.GetPlayerTeamMate == 1 && player.IsSneaking == 0 && player.IsInCombat == 0 && ACTORREFHERE.IsAllowedToTalk == 1
	ACTORREFHERE.say TOPICIDHERE
	set timer to 0
else
	set timer to timer + getsecondspassed
endif
End

 

IsAllowedToTalk is a global var that lets the player turn the idle chatter on and off. Add a switch to a topic.

Link to comment
Share on other sites

@ Mishaxhi

thanks again for the help

this is off topic, but this hasn't happened to me before and I can't figure it out

 

I'm creating a Protectron companion. I've made a package with "GetScriptVariable" but the ProtectronREF isn't showing up, and can't be selected via render window. Any ideas?

Link to comment
Share on other sites

  • Recently Browsing   0 members

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