Adding ATV support to dialogues?

Deviant Alias

Potential Patron
Joined
Jul 10, 2018
Likes
4
#1
I've finally started working on a dialogue in earnest after my post months ago. I can make a basic oral dialogue without issue, even going so far as having two sets of lines based off whether she is being held. But I plan on adding ATV support, and that's where I've hit a snag. Looking through other dialogues that support it, I've mimicked their setup.
Which is to use the ATV_position variable to determine which lines should play. So it would look something akin to:
-General lines-
general:"[gen*atv_position*]"
general:"[gen*atv_position*]"
general:"[gen*atv_position*]"
general:"[gen*atv_position*]"
With atv_position of course being initialized first, and set to 0 which is what ATV uses for 'oral'. I've added categories for each ATV number, for the various positions, which resemble:
gen0:"Oh boy, I get to be an example?"
gen0:"I'm a sample text! A legend!"{"style":"Thought"}
gen0:"No, I said I would MAKE an example of you. It's a saying!"{"style":"Him"}
-three sets of gen lines for numbers 1-3, for the other ATV positions-
So that when a line is called for, it checks the atv_position variable's value and plays an appropriate line for the position and line type. This does work, but this is where we come across the snag. I'm encountering a lot of dead air using this method as lines only play when her mouth isn't full. Even line types that should play regardless of her state, like Thoughts and Him lines. If I write the dialogue in a basic manner, not using triggers to fire lines everything works fine. How do I work around this? Is it just as simple as adding '{"style":"Him"}' and '{"style":"Thought"}' to some of the master lines? So the lists would resemble:
general:"[gen*atv_position*]"
general:"[genthought*atv_position*]"{"style":"Thought"}
general:"[genhim*atv_position*]"{"style":"Him"}

gen0:"But if I'm made an example, that makes me an example!"
genthought0:"What am I not understanding?"{"style":"thought"}
genhim0:"You know what, you aren't worth it. Just go away."{"style":"him"}

Any help would be appreciated. I'll have the basic version of my first dialogue up sometime soon. ATV compatibility will come after I've resolved this issue. Thank you.
 

edgelord 3000

Content Creator
Joined
Jan 16, 2018
Likes
38
#2
I use dialogueactions' da.mouthfull variable for all it's worth in my dialogues. Something like this should work:

general:"[gen_mf*da.mouthfull == true*_*atv_position*]"{"style":"him"}
gen_mf0_0:"But if I'm made an example, that makes me an example!"
gen_mf1_0:"What am I not understanding?"{"style":"thought"}
gen_mf1_0:"You know what, you aren't worth it. Just go away."{"style":"him"}
 

SkyHeart

Avid Affiliate
Joined
Apr 17, 2017
Likes
38
#3
general:"[gen*atv_position*]"
general:"[gen*atv_position*]"
general:"[gen*atv_position*]"
general:"[gen*atv_position*]"
Hi

The dialogue gets stuck here as all the "general" linetypes are {"style":"speak"}
This way, you have no thoughts or him lines either because it doesn't get to the
gen0:"<>" / gen1:"<>" / etc

What I recommend doing is this:
  1. Change all those to be "him" lines, as him can be played regardless of her state (thought can't be played if she's passed out)
    • They should look like this:
      • general:"[gen*atv_position*]" {"style":"him"}
        general:"[gen*atv_position*]" {"style":"him"}
        general:"[gen*atv_position*]" {"style":"him"}
  2. Change the trigger so you can get a more accurate description of her state:
    • general:"[gen*atv_position*_*da.mouthfull == true*_*da.oxygenPercentage > 70*]" {"style":"him"}
      general:"[gen*atv_position*_*da.mouthfull == true*_*da.oxygenPercentage > 70*]" {"style":"him"}
      general:"[gen*atv_position*_*da.mouthfull == true*_*da.oxygenPercentage > 70*]" {"style":"him"}
  3. Now the trigger will lead to lines like these:
    • gen0_0_1:"<>" (These can be whatever type of lines you want as she is not passed out, and she doesn't have anything in her mouth)
    • gen0_1_1:"<>" (Mouth full, but still conscious, so these should only be thought or him lines)
    • gen0_0_0:"<>" AND gen0_1_0:"<>" (Due to how fast da.oxygenPercentage grows if she's still below 70 oxygen when the line fires than she's passed out so these should only be him lines)
      • Position is irelevant to the example so I hope you get what I wanted to say

Other little notes:
  • You only really need one " general:"[gen*atv_position*_*da.mouthfull == true*_*da.oxygenPercentage > 70*]" {"style":"him"} " line as they all have the same trigger, having more than one doesn't change anything
    • What you need more of is the gen<x>_<y>_<z> lines
  • If it seems to complicated, you could stop after step 1, it just means that even after that trigger it could still find lines it can't play
    • Now I think STD searches again for the same linetype until it exhausted all posibilities or found one that it can play but, if memory serves me right, It's faster with step 2 and 3.
      • So the just of this note is: If you don't intend on making a big dialogue you could stop at step 1 as performace won't affected
All of this does require DialogueActions, so be sure to have that installed.

If you have any further questions, let me know
Have fun writing!
 
Last edited:

Deviant Alias

Potential Patron
Joined
Jul 10, 2018
Likes
4
#4
Hi

The dialogue gets stuck here as all the "general" linetypes are {"style":"speak"}
This way, you have no thoughts or him lines either because it doesn't get to the
gen0:"<>" / gen1:"<>" / etc

What I recommend doing is this:
  1. Change all those to be "him" lines, as him can be played regardless of her state (thought can't be played if she's passed out)
    • They should look like this:
      • general:"[gen*atv_position*]" {"style":"him"}
        general:"[gen*atv_position*]" {"style":"him"}
        general:"[gen*atv_position*]" {"style":"him"}
      [
    If you have any further questions, let me know
    Have fun writing!
I think for now I'll just change the master lines to Him in style, thank you. I added several of them to mimic what I saw done in the other dialogues that had ATV support. I was unsure if it was actually required. Good to know I only need the one line, thanks!
 
Top Bottom