Jump to content

A problem with "Idle Chatter"


bananakillerBRO

Recommended Posts

That script is just setting up your companion's initial "conditions". When do you intend the "idle conversation" to take place: when following (long or default), or "waiting", or only once "hired" or in the Lucky38 (sandboxing)? Each of those is another possible condition, but you may also want to know that they are not engaged in combat or some other activity, in which case you would need additional conditional tests.

 

Mktavish is pointing out that Seddon is using "Status" to indicate the companion is "following" at whatever distance, and that is the only time they should be barking "idle chatter", but even then only randomly.

 

So if you want to follow that example, you would add the "int Status" and "Set Status to 0" line to the script you posted, and then test "Status" in the topic conditional to determine that the companion is both following and combine that with testing the random result was what you wanted for the chance to determine if it was time to bark the conversational line.

 

-Dubious-

Where would I want to put the "Int Status" in the script? Just place it anywhere or is there someplace specific?

 

 

Link to comment
Share on other sites

In "scn Companion1Script", just after the "int Waiting" declaration would be fine but it could go anywhere in that part of the script before the "Begin Gamemode" line. All variable declarations have to precede any "Begin" blocks. Then place the initial "Set Status to 0" line anywhere among the similar lines, though I suggest just after the "Set IsFollowingLong to 0" to remind yourself it is related. You might want to put a comment after the end of the line like so:

Set Status to 0  ; Flag that one of the Idle Conversation states is active

Then when you set one of the other condition variables which you have decided will enable idle barks (e.g. when "Following" close or long), "Set Status to 1" at the same time.

 

But it may indeed be that you don't have to use "Status". As mentioned previously, it is a variable you define and use for your own purposes. In this instance, it is used so you only have to test one variable to determine an "idle conversation is permissible" package (FollowLong, FollowDefault, L38, possibly others) is active instead of checking for each package separately.

 

-Dubious-

Edited by dubiousintent
Link to comment
Share on other sites

ouch sorry , I don't understand that guy at all.

 

There will be no merging of sedon and cgy95

 

But that doesn't mean you can't figure out what you want to.

 

Which means ... if I could look at your file , then could prescribe the solution to this scenario.

 

Check the PM

Link to comment
Share on other sites

In "scn Companion1Script", just after the "int Waiting" declaration would be fine but it could go anywhere in that part of the script before the "Begin Gamemode" line. All variable declarations have to precede any "Begin" blocks. Then place the initial "Set Status to 0" line anywhere among the similar lines, though I suggest just after the "Set IsFollowingLong to 0" to remind yourself it is related. You might want to put a comment after the end of the line like so:

Set Status to 0  ; Flag that one of the Idle Conversation states is active

Then when you set one of the other condition variables which you have decided will enable idle barks (e.g. when "Following" close or long), "Set Status to 1" at the same time.

 

But it may indeed be that you don't have to use "Status". As mentioned previously, it is a variable you define and use for your own purposes. In this instance, it is used so you only have to test one variable to determine an "idle conversation is permissible" package (FollowLong, FollowDefault, L38, possibly others) is active instead of checking for each package separately.

 

-Dubious-

I got it working, turns out I forgot to enable Fallout behavior. I'm the equivalent of someone who calls tech support because he forgot to plug in his PC.

 

Thanks for the help you two, and since I have you I was wondering if either of you knew anything about factions? I'm having a problem with one.

Link to comment
Share on other sites

Just enough to know it can get complex in a hurry. "Factions" are "groups of members" with a relationship to other factions which affect the default behavior between members of those factions, and between members of the same faction. The actor's membership in a faction is processed by the game AI in determining another actor's reaction to them. The key thing is the relationship between factions, rather than between individuals.

 

You should not generally attempt to change anything about a faction's relationship with another faction. Instead create a new faction, decide which actor's or other factions you want to be members of your new faction, and then establish their relationships with other factions. If you haven't fully mapped out those inter-faction relationships, things get "surprising".

 

"Reputation" is about how members of various factions (including your own "Player" faction) feel about your character. While related, they are separate issues. Note you can have both positive and negative reputation (fame) with a given faction at the same time. AFAIK, "reputation" only applies to the Player character; not NPCs.

 

-Dubious-

Link to comment
Share on other sites

Just enough to know it can get complex in a hurry. "Factions" are "groups of members" with a relationship to other factions which affect the default behavior between members of those factions, and between members of the same faction. The actor's membership in a faction is processed by the game AI in determining another actor's reaction to them. The key thing is the relationship between factions, rather than between individuals.

 

You should not generally attempt to change anything about a faction's relationship with another faction. Instead create a new faction, decide which actor's or other factions you want to be members of your new faction, and then establish their relationships with other factions. If you haven't fully mapped out those inter-faction relationships, things get "surprising".

 

"Reputation" is about how members of various factions (including your own "Player" faction) feel about your character. While related, they are separate issues. Note you can have both positive and negative reputation (fame) with a given faction at the same time. AFAIK, "reputation" only applies to the Player character; not NPCs.

 

-Dubious-

I created a new faction for this raider group, that is initially not hostile. It worked good at first, they were neutral but if you attacked they would all starting shooting at the player, but I added dialog to a NPC in that faction and now for some reason they all attack me on sight. I've tried adding a new faction to the NPCS but that doesn't work, what is it I did wrong?

Link to comment
Share on other sites

Once you have "committed a crime" against one member of a faction, the entire faction is hostile to you (and your PlayerFaction). The only individual who tracks their relationships with a faction is the Player. All NPCs react based upon the Player's faction (and other factions the player is a member of) relationship with their faction, including your "companions" who become part of the "PlayerFaction" when they are "hired".

 

The dialog topics are a hierarchy of responses. The first response which tests all conditions as "true" is the response given. "Hostile" is right up there at the top, so they never get past it to say anything else. If you want them to say something before attacking, then you need to alter the response so that it causes them to bark before attacking. If you want them to bark only in the first instance, then you need to add a "DoOnce" conditional test to that response, and have a standard "attack response" after it in the hierarchy. Speaking always takes a bit of time, and "sounds" process independently of other script actions (meaning once started they run until done while the rest of the script is processed), so you just put the bark before the attack in the script.

 

Edit: It is worth noting that the game designers created separate "factions" for dialogue (e.g. "vSecuritronDialogueFaction", "vOuterVegasDialogueFaction", etc.) that could be tested for in dialogue conditionals in addition to the typical factions (i.e. "vStreetSecuritronFaction") for relationships with other factions.

 

-Dubious-

Edited by dubiousintent
Link to comment
Share on other sites

 

but I added dialog to a NPC in that faction and now for some reason they all attack me on sight.

 

 

Your dialogue is resulting in faction change ... unless some round abouts are getting there?

 

You need more control over things ... hard to say when you weave in vanilla ... guessing thats what youre doing?

Link to comment
Share on other sites

  • Recently Browsing   0 members

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