Pim_gd's Advanced Dialogue Guide (v1.01 - updated 10 December 2013) (1 Viewer)

aztlan

Casual Client
Joined
Sep 14, 2013
Put the name of the line you want him to say in [] inside the quotes. Such as

general:"[hisline01]Do you like it when I scrape it with my teeth?"
hisline01:"Ouch!"{"style":"Him"}

The dialogue will automatically go to the last line in [] in your quote. (Unless it fails to reach them because she stops talking for whatever reason. If you want to avoid this problem make her lines thoughts instead of talking.) You can create quite long chains of back and forth like this. You can also use *variable* inside the [] to create branching scripts this way. Such as (assuming you have a 1/0 variable masochist):

general:"[hisline*masochist*]Do you like it when I scrape it with my teeth?"
hisline0:"Ouch! Stop that!"{"style":"Him"}
hisline1:"Yes! Don't stop!"{"style":"Him"}

This the first post on how to build dialogues or look at examples other people have done.
 

aztlan

Casual Client
Joined
Sep 14, 2013
One note - since I wrote the above comment the rules for parsing syntax has changed (I think) - now you need to put the [nextline] at the end of the line he/she speaks (but still inside the quotes), thus:

general:"Do you like it when I scrape it with my teeth?[hisline*masochist*]"
hisline0:"Ouch! Stop that!"{"style":"Him"}
hisline1:"Yes! Don't stop!"{"style":"Him"}
 

Samoth

Staff
Admin
Forums Moderator
Discord Moderator
Content Creator
2D Artist
Writer
Joined
Feb 13, 2016
I've been grappling with an issue in making my latest dialogue, and it looks like this thread might be a good place to ask my question.

I've been trying to get a character's costume to shift at one key scene, and the costume doesn't get removed. It's a .swf that I'm using through the MoreClothingMod, and it's multiple parts bound to a single slot. I've been trying to get fix it so her clothes disappear, but they don't want to listen to me. The character's breasts grow (which is intentional), but the clothes don't disappear; this wouldn't be an issue if the outfit's breast cups scaled, but they don't. I COULD just leave the breasts the size they already are, but I don't think they're ample enough for my intentions.

I'm attaching to this a brief bit of code that exemplifies the problem (the charcodes I attempt to load are all direct rips from my dialogue). You might need to either swap out the hair file used in the first change or download it (it's the Dark Hood from Mainem's Artist Alley thread), and the .swf for the outfit causing me this grief is Dante's Female Ninja (from his Artist Alley thread). I'm not 100% certain of the forum's policy on linking content made by someone other than yourself which is why I'm not simply including the relevant .swf and .png in this post.

If it helps, the setting from MoreClothingSettings I was using to cluster them all into one clothing type was this:
:CostumeTop:CostumeBottoms>CostumeTop:CostumeCollar>CostumeTop (after the filename=Display Name part, obviously. I was unable to rope in the body portion for some inane reason)

If I've somehow derped and missed something that seems important to share, let me know and I'll do my best to supply it.

Side note: I HAVE also tried allowing each part to be separately mapped to its own original spot (for this one that means a Top, a Collar, and a Bottom alongside the body) and that changed nothing.
 

Attachments

Test Dialogue.txt
3.6 KB · Views: 204

stuntcock

Content Creator
Joined
Jun 5, 2012
It's a .swf that I'm using through the MoreClothingMod, and it's multiple parts bound to a single slot.
Your dialogue refers to two different moreclothing entries: "Ninja Outfit" and "ninjaoutfit". This may partially explain the problem.

I've been trying to get fix it so her clothes disappear, but they don't want to listen to me.
dialogueActions uses a copy-pasted version of the charcode loading method from SDT.swf. Therefore it will not cooperate properly with other mods (such as moreclothing) which attach proxies to charcode-related activities.

Consequences:
  • you shouldn't use the "moreclothingbody" parameters in your dialogues, because it will always be ignored
  • your moreclothing configuration entry should merge the Body into one of the categories which you can control
    Code:
    Female_Ninja.swf=Ninja Outfit:CostumeBottoms:CostumeTop:CostumeCollar:Body>CostumeTop
  • you may need to create several moreclothing entries in order to ensure that your dialog can exert fine control over the costume state
    Code:
    Female_Ninja.swf=Ninja Outfit:CostumeBottoms:CostumeTop:CostumeCollar:Body>CostumeTop
    Female_Ninja.swf=Ninja Outfit (sleeveless):CostumeBottoms:CostumeCollar:CostumeTop:CostumeTop
 

sby

Content Creator
Coder
Joined
Sep 11, 2012
this is probably like the 4th time that it has been pointed out that DA uses its own copy of the function instead of calling it xD
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
Expect a fix later today as v4.02 via [LOAD_CHARCODE2] once I've figured out that bitbucket did to my download
 

sby

Content Creator
Coder
Joined
Sep 11, 2012
What's the issue you're fixing? Being unable to load Body from MoreClothing?
yeah, pretty much any mod that hooks the charcode load function to do bonus stuff.
mine are probably most of them. mods like penisrange, superbreast, superbelly, moreclothing, allalphasliders
 

Blue Lightning

Avid Affiliate
Joined
Sep 8, 2014
The game tracks her breath level, and once it runs out, she passes out. I was wondering if there was a way of using this in dialogues, maybe as a line attribute, so that you could write dialogue that changes based on her breath level? So she could be written as getting progressively more excited the closer she got to passing out if you wanted a character that was into breathplay, or she could get progressively more desperate if you wanted to write her as being fearful of being choked out.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
The game tracks her breath level, and once it runs out, she passes out. I was wondering if there was a way of using this in dialogues, maybe as a line attribute, so that you could write dialogue that changes based on her breath level? So she could be written as getting progressively more excited the closer she got to passing out if you wanted a character that was into breathplay, or she could get progressively more desperate if you wanted to write her as being fearful of being choked out.
- Added da.breathPercentage for her breath level {read and write} (this drops first)
- Added da.oxygenPercentage for her oxygen level {read and write} (this drops when she starts passing out)

since DA v3.06 (was bugged in v3.04)

Keep in mind though that anything making her low breath is going to have her mouth be full. So thought/him lines only.
 

Blue Lightning

Avid Affiliate
Joined
Sep 8, 2014
- Added da.breathPercentage for her breath level {read and write} (this drops first)
- Added da.oxygenPercentage for her oxygen level {read and write} (this drops when she starts passing out)

since DA v3.06 (was bugged in v3.04)

Keep in mind though that anything making her low breath is going to have her mouth be full. So thought/him lines only.
Ah, I thought it might be something you need a mod for. So I'll have to rely on other methods for the vanilla version of the dialogue.

I had these all as Held lines in Thought style.
 

Samoth

Staff
Admin
Forums Moderator
Discord Moderator
Content Creator
2D Artist
Writer
Joined
Feb 13, 2016
I've been trying to figure out a system for a revision of one of my dialogues that involves counting the number of times the guy cums in order to progress the story after he cums X times. Specifically I use 5. My code (a sample of the portion that actually matters to this) ends up looking like this:

Code:
restart_blowjob_true:"You're still hard,ББББ I see.ББББББ I guess this just means more cum for me.ББББББ Just the way I like it.[appendclimax_*climax*]"
appendclimax_0:"[LOOK_UP][BLINK][COUGH]"{"style":"Thought","set":{"climax":1}}

The important part is that I'm hooking the proper code up to my restart lines because they only fire once after he cums. The 3 cum locations can fire independently of each other so one climax could lead to 3 separate counts if I hooked appendclimax up to those.

The reason I bring all this up is as follows: I want to have multiple positions to switch between (and that part IS working), but I can only get restart lines to fire when using the oral ones. The 3 positions that don't seem to work are a titfuck, a cowgirl position, and a doggystyle. I was wondering if there was maybe some other sort of way to track the climaxes (besides the Finishes variable since I don't believe I can have the game check for a given value of that, although I MIGHT be mistaken) so that I could get the dialogue to conclude once the 5th cum is achieved.
 

Blue Lightning

Avid Affiliate
Joined
Sep 8, 2014
With vaginal and anal positions in AnimTools, I always get cuminher lines, even if he's completely outside the body. Not sure about titfuck position, I'm not into that, so I almost never use that position. I don't think that restart lines trigger in any position other than oral, and they're not always reliable there either.

Is there a specific plot reason for the conclusion being tied to the fifth ejaculation? It seems like the user could just skip the story entirely by triggering five successive ejaculations with the J key.
 

Samoth

Staff
Admin
Forums Moderator
Discord Moderator
Content Creator
2D Artist
Writer
Joined
Feb 13, 2016
With vaginal and anal positions in AnimTools, I always get cuminher lines, even if he's completely outside the body. Not sure about titfuck position, I'm not into that, so I almost never use that position. I don't think that restart lines trigger in any position other than oral, and they're not always reliable there either.

Is there a specific plot reason for the conclusion being tied to the fifth ejaculation? It seems like the user could just skip the story entirely by triggering five successive ejaculations with the J key.

It's basically that the two are doing this before class and I didn't want to scrap the end dialogue, but my attempt at a revision intended to make it not directly jump from the last scene almost immediately into the ending. The dialogue now goes "ok, we have about half an hour until class. We can just keep going until then." Then the two proceed to continue (in the user's choice of position from those used during the initial sequence) until my original intended duration of 5 more ejaculations. Then the two would close up (in-story reason being that shortly before continuing the girl set a timer on her phone, so in-story the phone would go off) and finish out the dialogue.

There's already a story before the 5 free sex scenes and these scenes are sort of an extra - allowing the player to keep having the two fuck for more than just the initial attempt at each position. The restart lines are coded so they won't fire unless the main story has progressed to that point.
 

Blue Lightning

Avid Affiliate
Joined
Sep 8, 2014
It's basically that the two are doing this before class and I didn't want to scrap the end dialogue, but my attempt at a revision intended to make it not directly jump from the last scene almost immediately into the ending. The dialogue now goes "ok, we have about half an hour until class. We can just keep going until then." Then the two proceed to continue (in the user's choice of position from those used during the initial sequence) until my original intended duration of 5 more ejaculations. Then the two would close up (in-story reason being that shortly before continuing the girl set a timer on her phone, so in-story the phone would go off) and finish out the dialogue.

There's already a story before the 5 free sex scenes and these scenes are sort of an extra - allowing the player to keep having the two fuck for more than just the initial attempt at each position. The restart lines are coded so they won't fire unless the main story has progressed to that point.
Ah, interesting.

I would think that if you were using the variable "climax" as a counter for the free scene ejaculations, as long as you were able to rig the code to all the appropriate ejaculation/climaxing lines, you should be able to set the line appendclimax_5 to lead into your ending set piece.

I would be interested to see if a more experienced dialogue writer might know some tricks to make it easier to do what you want to do.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
try using SETVAR triggers in finishes, if it works then you're golden, the only downside is typing out all the cases you want to support (probably use finishOther to just add 1, but you'd have to write finish1, 2, 3, 4, 5, 6, 7, each to SETVAR_counter_1, 2, 3, 4, 5, 6, 7 etc...)
 
Last edited:

Samoth

Staff
Admin
Forums Moderator
Discord Moderator
Content Creator
2D Artist
Writer
Joined
Feb 13, 2016
Ah, interesting.

I would think that if you were using the variable "climax" as a counter for the free scene ejaculations, as long as you were able to rig the code to all the appropriate ejaculation/climaxing lines, you should be able to set the line appendclimax_5 to lead into your ending set piece.

The only issue with that (as I brought up before) is that when the ejaculation is in an oral position and includes 2 or 3 of the possible results (i.e. start it in her mouth then pull out and the rest on her face), both dialogues will fire. As a result, it'd set the variable up twice. That's why I wanted to rig it to Restart in the first place, before I learned it doesn't want to play nice with the non-oral positions.

try using SETVAR triggers in finishes, if it works then you're golden, the only downside is typing out all the cases you want to support (probably use finishOther to just add 1, but you'd have to write finish1, 2, 3, 4, 5, 6, 7, each to SETVAR_counter_1, 2, 3, 4, 5, 6, 7 etc...

I think I could make this work. Rig it into the orgasm dialogue on the non-oral scenes, rig into the restarts for the oral scenes...yeah, that would probably work (if this works I can leave this here and then it could be used for future reference for others looking to tie the length of a dialogue to the number of times the guy ejaculates). I could just make a single finishesOther and never define finishes1, finishes2, and so on, right? Because then it'd only have the one dialogue line available for *FINISHES* to call?

If this doesn't work then I might just scrap the idea and give a 6th button separated from the others that allows a person to conclude the story by clicking that button.
 

Slingerbult

Content Creator
Joined
Sep 15, 2012
I haven't looked at your code or read this thread in detail, but adressing specifically the problem of triggering a certain line/ending after a set number of ejaculations:

For simple, progressive dialogue I like to use a master variable such as "prog" for progression and substitute it into most line types. So general becomes gen*prog* and then I know that gen1 lines will take place in the beginning of the dialogue and gen5 only later, regardless of what causes prog to increase.

Now, rather than trusting the fickle restart line exclusively (or the *FINISHES* variable), put your trust in cum! More specifically, pre_cum, which will trigger exactly once per ejaculation provided you don't durdle after hitting 97% and it drops back to 95% or so.

So, pre_cum increases prog. Then what? Well restart is res*prog* so for example res5 cues the ending after five pre_cum events have triggered. But that's not all, gen5, pof5 (pull_off), bodycontactspaceheldpushorwtfsbycallshisgoddamnlinetypes5 also triggers the ending. Every conceivable line type that could trigger at all from doing ANYTHING, restarting or otherwise, always leads to the bitter end, as long as prog has the appropriate value. That is powerful and fool proof, the ending will cum, literally.

Hope that helps!
 

jase

Vivacious Visitor
Joined
Jun 4, 2014
I never use checks. There are horrible for performance, and if you use more than a handful of them, you'll see SDT come to a crawl.
Is this so? I can try to keep these to a minimum, but triggering branching from the base linetype can pre-empt her speak lines when I want to permit them to trigger where possible. For example, under one condition, let [vigorous] to keep attempting until the girl can speak, but under a different condition only his lines should run, whether she's able to speak or not. But branching something like this:

vigorous:"[vigorous*grudgefuck*]"{"style":"Thought"}​
Fires that line, so there's no condition for it to attempt again. But the line:
vigorous0:"Is this alright?"​
Won't be re-attempted if she's unable to speak. Is there really enough performance gain from avoiding checks to justify using delaying lines? Too often they bog down the pacing themselves. Hasn't anyone found themselves watching an empty dialog box for long enough to turn their anticipation into irritation? It doesn't give the impression that the dialog is performing well.
 

Users who are viewing this thread

Top


Are you 18 or older?

This website requires you to be 18 years of age or older. Please verify your age to view the content, or click Exit to leave.