Jump to content

Companion Scripting and Dialogue


RBRoAB

Recommended Posts

Also, how much do you know about creating NPCs?

I want to create a few dialogue topics, and have that lead to asking to follow.

 

And, I'm not too worried about involving this. It'll probably come in much later if anything. But since my NPC is a Protectron, is there any way I could have him start out disabled, or broken, sort of like Ed-E?

 

If not, it's completely fine. I'm very grateful for all the help you've given me already.

Link to comment
Share on other sites

Alright, idle chatter.

 

- create a new quest

- give it 2 stages, 10 and 100. Add fail quest to 100

- add a topic, and in the possible responses, add all of the idle chatter

- flag "random" on each one - make this the quest script

 

scn SCRIPTNAMEHERE

float timer

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

 

SCRIPTNAMEHERE - obvious

TIMEINSECS - time in seconds between talking (willow uses 300, niner uses 180, cass used something much higher, ect.) depends how talkative you want them to be

ACTORREFHERE - the companions ref id

TOPICIDHERE - topic ID that stores all of the responses

 

One last thing you can do is add a variable called IsAllowedToTalk, or something, andd at that as an extra condition. You can turn this on and off to tell the companions whether they're allowed to talk.

 

Last thing to do is to start the quest in game. Pretty basic, as soon as they're added as a companion, add the script SetStage (guestID) 10.

Link to comment
Share on other sites

Setting up the basic stuff is easy, though you'll probably want to read up on basic quest scripting and such on the GECK wiki. I could tell you all of it now, but then you'd have trouble down the line when you wanted to do anything else. It's pretty simple stuff though.

 

As for the repair thing, pretty easy. I'm not sure how E-DE did it, but I'd go with something like this.

 

- dupe the companion

- make this clone dead by default

- make them a per ref, give them a ref name

- set the real companion to disable by default

- add an onactivate script to the dead version

- script holds a fade to black timer than disables the dead version and enables the alive one

Link to comment
Share on other sites

So it's bare bones finished. A little broken though. he's got some dialogue issues I need to figure out. And also, when I hire him as a companion, he'll enter new interiors with me, but stands still.

 

His companion wheel seems to work for the most part.

And until I decide to add in the broken/disabled protectron, I'm using a science skill challenge.

It works, has a success and fail, even gives experience reward. But I'm having issues using it with dialogue. Like it will show up again after success and failure. I don't mind that it shows up after failure.

 

For now, I'll put the idle chatter on hold. I think I should have a working companion with now flaws or bugs first.

I know this is a lot for me to ask of you, so if you don't mind, please help. Don't worry about answering everything, we can go one at a time.

Link to comment
Share on other sites

The idle chatter script I gave you wasn't complete. You can't indent properly here, so I used 5 spaces instead.

 

This might make more sense.

 

scn SCRIPTNAMEHERE

float timer

begin GameMode
       
[indent]if ( timer > TIMEINSECS ) && ACTORREFHERE.GetPlayerTeamMate == 1 && player.IsSneaking == 0 && player.IsInCombat == 0
[indentX2]ACTORREFHERE.say TOPICIDHERE
[indentX2]set timer to 0
[indent]else
[indentX2]set timer to timer + getsecondspassed
[indent]endif
End

 

Where it says indent hit tab to create the space.

You're gonna have trouble in the future though cause this is page 1 book 1 of how to script. Not being condescending but I really suggest that you get the basics down before going any further. You will probably learn the rest of hat you want to do in the process.

 

None of it is too tech minded, it's just logic and common sense. The first hurdle, which is learning proper syntax and the law of scripting, is a biggie. Once you get over that, everything else comes easier. Trust me, I was in the EXACT same position as you around 4 months ago.

Link to comment
Share on other sites

I don't have any problem learning it. It's just tough to find on the internet. I haven't had a lot of luck with guides, and most people who know scripting don't speak english well. If you know of any good guides, and that sort of thing, could you point me in the direction?

 

And I've solved some problems with AI packages. But maybe you know the answer to this one. My Protectron doesn't move very quickly. I've seen some NPC mods where if the NPC gets to far behind, it moves to player. Is that fairly simple?

Finally, I've had issues with dialogue. I did as you suggested. I created dialogue in detection and combat. Not all of the topics in those work, and even though they're all random, the NPC says the same things, not any of the other random choices.

 

I don't know if those have to do with scripting though.

 

by the by, I got your idle chatter to work and it runs fantastically, thank you! This one does run random comments.

Edited by RBRoAB
Link to comment
Share on other sites

  • Recently Browsing   0 members

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