Jump to content

Companion Wheel


Glenstorm

Recommended Posts

I've gone through the scripts and stuff related to Boone and Cass, but I can't find the line which triggers the companion wheel. How to enable it? Also how to assign the different buttons on the companion wheel to different commands? For example, how to tell the wheel that a given AI package is the Wait package for a custom companion?
Link to comment
Share on other sites

To get the wheel to pop up, they have to be your teammate. So the line that enables it is

 

setplayerteammate 1

 

But that doesn't make the buttons do anything. That uses certain topics, generally the ones that start with 'follower', like 'followerwait' and 'followertrade'. So if you give your follower those topics, the button on the wheel will link to the dialog and result script.

You also have to set up their packages to do things like wait, follow, etc.

Link to comment
Share on other sites

I recently released a plugin that is a basic companion with a fully working wheel that's intended to be used as a starting point for making a new companion.

 

Amigo Cafe

 

 

What Q. said is exactly right, you have to code specific "Followers" dialogue topics in order for the wheel to work. When you have "setplayerteammate 1" and you click on one of the wheel buttons the game engine sends a particular dialogue to the companion just as if the player had spoken it, and in those dialogue begin/end scripts, that's where the work gets done.

 

In Amigo Cafe the quest with all the wheel dialogue is DXEAmigoQuest, go to the Topics tab, and also for Stimpak healing through the wheel go to the Combat tab and look at the regenerating topic.

 

You can examine and you're welcome to use all the code from Amigo Cafe just put myself and the others in the file credits as per the Readme instructions.

Edited by drakeelvin
Link to comment
Share on other sites

Hello again.

 

Okay so I got the wheel working. I just got another question. How does the wheel "know" which options are currently active?

 

For example, I set companion to follow me through dialogue, then explicitly talks to them and tells them to wait. Next time I activate them, the companion wheel shows they are waiting (ie "Follow Me" is written on the option). How does it know this?

 

My bare-bones companion is immune to this wheel "sense" but all vanilla characters seem to have this feature. What governs this behaviour?

 

I hope I was clear enough.

Link to comment
Share on other sites

The game engine reads these variables on the Actor's Object script to know what state the wheel is supposed to be in.

 

scn RHKWendyNPCScript

;------------- Wheel Variables -------------
short CombatStyleRanged
short CombatStyleMelee
short IsFollowingDefault
short IsFollowingShort
short IsFollowingLong
short FollowerSwitchAggressive			; 0 = Passive (wait for player), 1 = Aggressive (attack when see enemy)
short Waiting

 

You need to set these as appropriate. You don't need to use them as the package control variables - just as flags.

Link to comment
Share on other sites

The game engine reads these variables on the Actor's Object script to know what state the wheel is supposed to be in.

 

scn RHKWendyNPCScript

;------------- Wheel Variables -------------
short CombatStyleRanged
short CombatStyleMelee
short IsFollowingDefault
short IsFollowingShort
short IsFollowingLong
short FollowerSwitchAggressive			; 0 = Passive (wait for player), 1 = Aggressive (attack when see enemy)
short Waiting

 

You need to set these as appropriate. You don't need to use them as the package control variables - just as flags.

 

Figured as much. But I wanted confirmation. Kudos!

Link to comment
Share on other sites

  • 1 year later...

The game engine reads these variables on the Actor's Object script to know what state the wheel is supposed to be in.

 

scn RHKWendyNPCScript

;------------- Wheel Variables -------------
short CombatStyleRanged
short CombatStyleMelee
short IsFollowingDefault
short IsFollowingShort
short IsFollowingLong
short FollowerSwitchAggressive			; 0 = Passive (wait for player), 1 = Aggressive (attack when see enemy)
short Waiting

 

You need to set these as appropriate. You don't need to use them as the package control variables - just as flags.

This was the only place I could find this particular answer so thanks! But...I added these shorts to my companions object script and I still have the same minor problem. The companion wheel still does not detect that my companion is following. When it pops up it reads "Follow Me". When I click it, the response doesn't show. Then, it reads "Wait Here". Now when I click it, the companions response shows and every time after. So, basically my first click doesn't do anything. Quite annoying. How do I fix that in the Geck? Please, take a second to reply. Thank you.

Link to comment
Share on other sites

I recently released a plugin that is a basic companion with a fully working wheel that's intended to be used as a starting point for making a new companion.

 

Amigo Cafe

 

 

What Q. said is exactly right, you have to code specific "Followers" dialogue topics in order for the wheel to work. When you have "setplayerteammate 1" and you click on one of the wheel buttons the game engine sends a particular dialogue to the companion just as if the player had spoken it, and in those dialogue begin/end scripts, that's where the work gets done.

 

In Amigo Cafe the quest with all the wheel dialogue is DXEAmigoQuest, go to the Topics tab, and also for Stimpak healing through the wheel go to the Combat tab and look at the regenerating topic.

 

You can examine and you're welcome to use all the code from Amigo Cafe just put myself and the others in the file credits as per the Readme instructions.

 

/\ old post but that link isnt found. id be interesting in seeing that

Link to comment
Share on other sites

  • Recently Browsing   0 members

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