Pim_gd's Mods - DialogueActions v4.08 (15 Jan 2017) (1 Viewer)

Pim_gd

Content Creator
Joined
Jan 25, 2013
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

I don't have a lot of time... so expect snarky responses.

"I would expect start2 to always run, but it never does."
Your fault.
intro:"[intro2][intro3]"
intro2:"aaaaaaaaaaa"
intro3:"bbbbbbbbbb"
test it and see what happens. Reactive interrupts is based on this.

"What was gained by changing the way clothing is added and removed? The new variables are an order of magnitude more difficult to use, and I don't see any new benefit."
You are doing it wrong.
Want the old way of doing things?
"cuffs":"Leather,0,0,0,230,229,255"
sure.
"da.clothes.cuffs":"Leather,0,0,0,230,229,255"
Not really an order of magnitude.

With v1, you want to read clothing variables?
You can't.
In v2 you can.

You want to make her shirt more transparent?
v1: {"set":{"tops":"Shirt,255,255,255,0.8"}}
aww fuck now she HAS to have a shirt and it HAS to be white

v2: {"set":{"da.clothes.tops.a":"-0.2"}} (Yeah, that works)
you can do the same thing you do to normal dialogue variables ("+1", "-1")
and you can now set colors individually.

Please, READ THE DOCUMENTATION.

It looks like variables for Sby's breast expansion mod cannot be used in combination with [VA_SET_VARIABLE... or [VA_SET_VARIABLEBYNAME...

[VA_SET_VARIABLE_var1_*breastsize*]

*var1* = 0
Have you done these on different lines? (if not: inserts happen first, then triggers)
If so, have you tried *breastsize*? (If that shows 0 then I don't HAVE a variable value I can use)

Now for the actual issues:
- I left debug tracing on, v2.01 (up in 12 hours or so) will have that turned off
- String comparison is not possible *da.clothes.tops.type == da.clothes.bottoms.type* will be false in all cases because NaN equals NaN is false. I'll have to look into not parsing shit as a number until I need it as a number. That probably won't be in v2.01.
 

WeeWillie

Content Creator
Joined
Nov 8, 2013
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

Pim_gd said:
Your fault.
intro:"[intro2][intro3]"
intro2:"aaaaaaaaaaa"
intro3:"bbbbbbbbbb"
test it and see what happens. Reactive interrupts is based on this.

No, it's your fault.

Reactive interrupts don't seem to work anymore. For the following:
intro:"[intro2]Here's a delay to try the interrupt.[intro3]"
intro2:"aaaaaaaaaaa"
intro3:"bbbbbbbbbb"

If I do nothing, I see "bbbbbbbbbb". However, if I interrupt, instead of seeing "aaaaaaaaaa", I see nothing.
 

aztlan

Casual Client
Joined
Sep 14, 2013
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

WeeWillie said:
Pim_gd said:
Your fault.
intro:"[intro2][intro3]"
intro2:"aaaaaaaaaaa"
intro3:"bbbbbbbbbb"
test it and see what happens. Reactive interrupts is based on this.

No, it's your fault.

Reactive interrupts don't seem to work anymore. For the following:
intro:"[intro2]Here's a delay to try the interrupt.[intro3]"
intro2:"aaaaaaaaaaa"
intro3:"bbbbbbbbbb"

If I do nothing, I see "bbbbbbbbbb". However, if I interrupt, instead of seeing "aaaaaaaaaa", I see nothing.

I think the issue is that it is trying to play intro2 immediately but she is still interrupted so it does not play. If you change intro2 to:
intro2:"aaaaaaaaaaa"{"style":"him"}
it will play fine.

The next line after an interrupt should be a Him or Thought line.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

Ugh.
Learn how SDT works before blaming me.

When you put two non-action triggers (that is, a trigger that will get resolved as "queue this line as next line to play") on the same line, the second one will overwrite the first one, when it is reached, that is.

Basically, you can't do what you tried to do with your dialogue.
Take another look at my guide to see how you can detect the setting of player name.

My dialogue guide said:
There's just the problem of the player's name being displayed. So how do we get rid of that?
We can wrap it in a trigger.
general:"[generalUnnamed]*[YOU][generalNamed]*"
generalNamed:"So, is* YOU* your real name or just an alias?"
generalUnnamed:"So, is batdude your real name or just an alias?"

Now SDT will try to find the line associated with the player's name - likely there isn't any. Even if there was, the next line is quickly set to generalNamed afterwards.
The only thing that makes this solution imperfect is that triggers with spaces in them will still be displayed. So if you are Mr. Bob, you'd see [Mr. Bob] displayed before the dialogue would switch to the name. You should probably check if the name is set, and use that to set the value of a variable. Then you can use that, instead of displaying the players name.
 

WeeWillie

Content Creator
Joined
Nov 8, 2013
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

Pim_gd said:
Ugh.
Learn how SDT works before blaming me.

When you put two non-action triggers (that is, a trigger that will get resolved as "queue this line as next line to play") on the same line, the second one will overwrite the first one, when it is reached, that is.

You sadden me, Pim_gd. For the most part, I do know how SDT works, and you should know that from the dialogs I've written and the discussions we've had. I use this feature extensively. In this example case, I made a bone-head error that aztlan so graciously and politely pointed out... I forgot to add "{"style":"him"}". So yes, I made a mistake. And yes, I purposely put in a "Your fault", which I normally wouldn't do, as a friendly jib at you cause you throw accusatory terms around all the time; attempting a taste of your own medicine, and judging by your pissy reaction it seems to illustrate at least that point :). And yes, correcting my error, interrupts do work. Apologies.

As for clothing, I see now the advantages of the new method.
The main gotcha is that the current method quietly fails with no error messages if the syntax is off. Maybe a new Dialogue Checker would solve that issue, but would it be possible to make the clothing names case-insensitive? Clothing generated with the GENERATE button is all lower case, but DA 2.0 requires the clothing to to start with a capital. That means with copy and paste, we need to remember to change the one letter. It's a small thing.

Pim_gd said:
Please, READ THE DOCUMENTATION.
What this directed at me? Cause yes, I read the documentation, and I thank you for it. But please understand that documentation is always 100% clear to the person writing it, but rarely is 100% clear to the person reading.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

I didn't have a lot of time so I skipped the step where I read my post once again and edit out all (or most of them anyway) the snarky parts.
... perhaps they could have been worded better. ("You'll find this, and all other things I've said here here and here in the provided documentation")

WeeWillie said:
but would it be possible to make the clothing names case-insensitive
Nope.
"shirt" and "Shirt" can be different pieces of clothing.
Generate button, by the way, generates a character code.
When you set all settings for a piece of clothing with da.clothes.<clothingType>, you use charcode syntax. That's why that will support lowercase (... and if it doesn't, but did in v1.15, let me know), and da.clothes.<clothingType>.type doesn't.

WeeWillie said:
The main gotcha is that the current method quietly fails with no error messages if the syntax is off.
I cannot throw errors for non-existant triggers or variables. If you try to insert *breastsize*, how am I supposed to know you have BreastExpansion loaded? What if someone else makes a mod with dialogue functionality? You'd get annoying error messages all the time.

WeeWillie said:
But please understand that documentation is always 100% clear to the person writing it, but rarely is 100% clear to the person reading.
Suggestions are appreciated.

Additionally, I am pretty poor at detecting sarcasm (or atleast, so I have been told), so forgive me if I overreact to things intended as sarcasm.
... and a little secret for you - I'm actually a quite asocial bastard.
 

WeeWillie

Content Creator
Joined
Nov 8, 2013
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

I'm still having a dickens of a time understanding why this doesn't work. The example you give is for detecting for a non-existent Player name, not a specific name. In DA 1.15, this did work:

start:"[start2][start_*YOU*]" {"style":"him"}
start_Mistress:"[start_Female]" {"style":"him"}
start_Female:"The player is female.[start2]" {"style":"him","set":{"pFemale":1, "pPronoun":"she", "pCapPronoun":"She", "pIntensive":"her", "pPossessive":"hers"}}

start2:"This should run regardless if the player is male of female." {"style":"him"}

For example, if the player name is "Master", I thought that in the first line [start2] is set as a possible line. Then [start_Master] is tried. That line type doesn't exist, so start2 remains as the line to trigger. In DA 1.15 that's how it worked.

In your example
general:"[generalUnnamed]*[YOU][generalNamed]*"
generalNamed:"So, is* YOU* your real name or just an alias?"
generalUnnamed:"So, is batdude your real name or just an alias?"

For "Master", we get the equivalent of the line ""[generalUnnamed][Master][generalNamed]", right, so "generalNamed" overwrites linetype of "Master", and thus is run.

So how do I get lines like "start_Mistress" to run for the player name Mistress? Sorry for being dense here, but this is tricky stuff when you don't know the innards of the engine.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

wait for v2.01
initial_settings:{"MistressName":"xMistress"}
start:"[VA_SET_VARIABLE_playername_x*YOU*][start2]"
start2:"[startFemale*playername == MistressName*]"
startFemale0:"not mistress"
startFemale1:"is mistress"

For vanilla, is not possible without pausing dialogue once.
 

WeeWillie

Content Creator
Joined
Nov 8, 2013
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

Pim_gd said:
wait for v2.01
initial_settings:{"MistressName":"xMistress"}
start:"[VA_SET_VARIABLE_playername_x*YOU*][start2]"
start2:"[startFemale*playername == MistressName*]"
startFemale0:"not mistress"
startFemale1:"is mistress"

For vanilla, is not possible without pausing dialogue once.
So why did my method work with v1.15 but no longer work with v2.0?

Pim_gd said:
Generate button, by the way, generates a character code.
Yep. It's a very handy way to design clothing with colors and transparency. You play the game and dress a character to look how you want, generate a character code, then cut and paste values from it. It's the best workflow I've found.

Pim_gd said:
When you set all settings for a piece of clothing with da.clothes.<clothingType>, you use charcode syntax. That's why that will support lowercase (... and if it doesn't, but did in v1.15, let me know), and da.clothes.<clothingType>.type doesn't.

Ahh, I hadn't realized that if you capitalize the clothing type, you don't need to capitalize the actual clothing item if you provide a cut and paste from a character code.

Okay, now that I know all the nuances, the new system isn't too bad. There's a few more steps when editing from a character code, and the lines do get a bit lengthy, but it's worth it for the functionality gains. It's not as bad as I originally encountered.

WeeWillie said:
Additionally, I am pretty poor at detecting sarcasm (or atleast, so I have been told), so forgive me if I overreact to things intended as sarcasm.
... and a little secret for you - I'm actually a quite asocial bastard.
All good. I always try to put an emoticon with my sarcasm. So yeah, my line should have said:
"Your fault :P" Sorry about that.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

WeeWillie said:
Pim_gd said:
wait for v2.01
initial_settings:{"MistressName":"xMistress"}
start:"[VA_SET_VARIABLE_playername_x*YOU*][start2]"
start2:"[startFemale*playername == MistressName*]"
startFemale0:"not mistress"
startFemale1:"is mistress"

For vanilla, is not possible without pausing dialogue once.
So why did my method work with v1.15 but no longer work with v2.0?
It did not work.
Try as you may, it will not work unless player name is "Female" or "Mistress".
DA v1 can't change the way triggers work.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
Re: Pim_gd's Mods - DialogueActions v2.01 (8 January 2014)

January 8, 2014
Introducing v2.01 of DialogueActions!
- Turned off debug messages (left them on by accident)
- Implemented string comparison (but if you have spaces in a string they will get ignored)
Link in OP, and the archive download in the second post has been updated as well.
 

WeeWillie

Content Creator
Joined
Nov 8, 2013
Re: Pim_gd's Mods - DialogueActions v2.01 (8 January 2014)

Pim_gd said:
It did not work.
Try as you may, it will not work unless player name is "Female" or "Mistress".
DA v1 can't change the way triggers work.

I am still curious though, why does the method not work? When it tries to find "start_Master", and the line doesn't exist, why doesn't it default back to the trigger before it, just like the interrupt choice method works? Is it that if a trigger doesn't exist, it still tries to do it, but just fails, while if it is a trigger that exists but is interrupted, it uses the last one set, having never tried the later one. Meaning, it will only try one trigger; it won't try, fail, then try another. I guess talking it out, that all makes sense now.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
Re: Pim_gd's Mods - DialogueActions v2.01 (8 January 2014)

WeeWillie said:
Pim_gd said:
It did not work.
Try as you may, it will not work unless player name is "Female" or "Mistress".
DA v1 can't change the way triggers work.

I am still curious though, why does the method not work? When it tries to find "start_Master", and the line doesn't exist, why doesn't it default back to the trigger before it, just like the interrupt choice method works? Is it that if a trigger doesn't exist, it still tries to do it, but just fails, while if it is a trigger that exists but is interrupted, it uses the last one set, having never tried the later one. Meaning, it will only try one trigger; it won't try, fail, then try another. I guess talking it out, that all makes sense now.
...
First, a listing of everything that has been written (by me) on the use of reactive interrupts.
dialogue_name:"Shut up!"

all:"CLEAR"
intro:"[shutup]Hello hello hello hello hello hello hello hello hello hello hello[hello]"
hello:"You didn't stop me!" {"style":"Thought"}
shutup:"Shut your trap!" {"style":"Him"}
interrupt:"-mllow!"

When you have a trigger that points to a line (such as [shutup] or [hello]), SDT sets that as the next line to run.
So in this example, intro is called...
intro:"[shutup]Hello hello hello hello hello hello hello hello hello hello hello[hello]"
now lets change this line so I can explain it a bit easier
we'll use this intro line
intro:"Hi! [shutup]Hello hello hello[hello]"

But SDT interprets triggers as it plays.
So here's what it does...

Start playing line by splitting line into words
During the playing of the line,
for each word as it comes up,
if the word is a trigger...
... then check to see if that's an action trigger (a trigger that does something, like [COUGH] or [NORMAL_MOOD]). If that's true...
... then perform that action.
... if it's not an action trigger, then look if we have lines named like the trigger. Set that as the next line to play.
... if the word is not a trigger, display the word character by character.

So let's view this line getting played twice...
Once normally...
intro:"Hi! [shutup]Hello hello hello[hello]"

start display
set style speak
Hi!
set shutup as next line
Hello
hello
hello
set hello as next line
play next line
next line is hello
play hello
hello:"You didn't stop me!" {"style":"Thought"}
set style thought
You
didn't
stop
me!
end display

And once with him interrupting.

start display
set style speak
Hi!
set shutup as next line
Hello
h
(at this point, cock is inserted)
add interrupt
-mllow!
wait for mouth to clear or timer to expire
if mouth clears, continue line from last word
if timer expires, play next line
(timer expires)
play next line
next line is shutup
play shutup
shutup:"Shut your trap!" {"style":"Him"}
set style him
Shut
your
trap!
end display
Player input is one of those things that's hard to handle. Communication is important for achieving better performance. So... how do you allow your player to interact with your dialogue?

One of the commonly used ways is using pulled_up and pulled_down. But those are rather limited functions - you only have 2 of them, and implementing a choice menu on that is just hard to do and clumsy to navigate.

Pim_gd came up with a solution for this. When the girl talks, you can interrupt her. The game will automatically add interrupt text, and then the line will eventually stop playing. But internally, SDT still has a next line queued.

So what if you changed the next line that SDT will play after the current line is finished... whilst the line is playing? The player could interrupt the line at the option that he wants.
An example, hooked up to pulled_up:

pulled_up:"Position switch? [switchHandjob]Sure, how about I use my hands? .БББ.БББ.БББ [switchFacefuck]Okay, how about facefucking me? .БББ.БББ.БББ [switchBlowjob] Just a blowjob, then? .БББ.БББ.БББ[dontSwitch]"
dontSwitch:"Or I could just continue."
switchHandjob:"Handjob it is![ARMS_HAND_JOB]" {"style":"Thought"}
switchFacefuck:"Facefucking it is![ARMS_LEGS][FACE_FUCK_STYLE]" {"style":"Thought"}
switchBlowjob:"Blowjob it is![ARMS_LEGS][NORMAL_STYLE]" {"style":"Thought"}

A few notes:
- You have to start with a speak line (no style or "style":"Speak"). Otherwise, no interrupts can be done.
- The follow up lines should be Thought or Him style. If her mouth is filled with cock, how is she gonna talk?
- You might have to explain to the user how to use this line. Have a line before the selection line explain how this works. f93 uses the following line for his shapeshifting succubus dialogue:
shiftdisguisechoice:"[NORMAL_MOOD]It's your choice. Just fill my mouth with your delicious cock when you want me to stop.БББББ.БББББ.БББББ.[shiftoffice] I could be that pretty lady you work for, she's so dominant.БББББ.БББББ.БББББ.[shiftfriend] Or maybe that friend you wish was one with benefits.БББББ.БББББ.БББББ.[shiftsister] Maybe you really do want me to be your sister for a while? Nobody would know.БББББ.БББББ.БББББ.[shiftsuccubus] Or maybe, just maybe, you really want to fuck me as I really am - a smoking hot demon girl.[general]Maybe you've changed your mind about me changing?БББББ.БББББ.БББББ.[shiftdisguisechoice][ANGRY_MOOD] Or maybe you've not been listening at all.[TAP_HANDS][NORMAL_MOOD]"
"When you have a trigger that points to a line (such as [shutup] or [hello]), SDT sets that as the next line to run."
SDT don't care that there are no such lines to play. It will just set the next line to play as that trigger.
It does that when it can't find an action associated with the trigger.
Thus, it does not revert back to start2 when it sees [start_Master].
 

tanksk1

Potential Patron
Joined
Jul 28, 2012
Re: Pim_gd's Mods - DialogueActions v2.00 (7 January 2014)

Pim_gd said:
It looks like variables for Sby's breast expansion mod cannot be used in combination with [VA_SET_VARIABLE... or [VA_SET_VARIABLEBYNAME...

[VA_SET_VARIABLE_var1_*breastsize*]

*var1* = 0
Have you done these on different lines? (if not: inserts happen first, then triggers)
If so, have you tried *breastsize*? (If that shows 0 then I don't HAVE a variable value I can use)

I have done this on different lines with the same result.
I have tried *breastsize* and it does work. I have also applied operators like *breastsize + 1* for example and they also work.

I appreciate your input and the content you have provided us. I will understand if this is something you don't want to be bothered about.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
Re: Pim_gd's Mods - DialogueActions v2.02 (9 January 2014)

January 9, 2014
Introducing v2.02 of DialogueActions!
- Fixed a bug in equation evaluation where *4 + 3* would turn into 43. (should be 7)
Link in OP, and the archive download in the second post has been updated as well.

I knew I should have left string comparison for a later version. Bleh. Thought of this bug just as I was about to go to bed.

As for testing that trigger thing...
DA should log triggers to the dialogue log. Can you test it again for me, and include the last 25 lines of the Dialogue log for me?
 

aztlan

Casual Client
Joined
Sep 14, 2013
Re: Pim_gd's Mods - DialogueActions v2.02 (9 January 2014)

Where does the dialog log go? Do I have to turn it on somehow?
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
Re: Pim_gd's Mods - DialogueActions v2.02 (9 January 2014)

Nevermind that, I have figured out your issue but I don't know how to solve it.
Since I have to sleep,
have IRC logs.

(1:37:10 AM) Pimgd: I don´t know how to fix a numeric set
(1:37:44 AM) Pimgd: here´s the thing
(1:37:44 AM) LC-DDM: what
(1:38:00 AM) Pimgd: {¨set¨:{¨var1¨:¨0¨}} is broken
(1:38:06 AM) Pimgd: {¨set¨:{¨var1¨:¨+1¨}} will add one
(1:38:16 AM) Pimgd: {¨set¨:{¨var1¨:¨-1¨}} will substract one
(1:38:30 AM) Pimgd: {¨set¨:{¨var1¨:-1}} will set to -1
(1:38:50 AM) LC-DDM: I just got on.
(1:38:53 AM) LC-DDM: That is like chinese.
(1:38:54 AM) LC-DDM: To me.
(1:38:57 AM) Pimgd: [VA_SET_VARIABLE_var1_+1] will add one
(1:39:10 AM) Pimgd: [VA_SET_VARIABLE_var1_1] should obviously set to one
(1:39:20 AM) Pimgd: f93 TM94
(1:39:23 AM) Pimgd: but...
(1:39:34 AM) Pimgd: what should this do?
(1:39:35 AM) Pimgd: [VA_SET_VARIABLE_var1_-1]

set -1 or substract 1?
...
or should I just alter the middle one to require =1?
hmhmhmmhhm
 

Slingerbult

Content Creator
Joined
Sep 15, 2012
Re: Pim_gd's Mods - DialogueActions v2.02 (9 January 2014)

Why was grow and shrink penis dropped and is there or will there be a way to affect penis size through dialogue? I also second the need for player input down the road, maybe something for 2.1? It's amazing how far this has come, we can now make our own erotic gamebook adventure!
 

WeeWillie

Content Creator
Joined
Nov 8, 2013
Re: Pim_gd's Mods - DialogueActions v2.02 (9 January 2014)

I'm seeing a bug where [GAG] doesn't seem to work. It gets stuck in an infinite loop. Just use the following repro case with DA 2.01, and Loader 5.34

start:"[GAG] I'm gagging." {"style":"thought"}

For me it infinite loops with a broken gag sounds without ever playing "I'm gagging."
 

aztlan

Casual Client
Joined
Sep 14, 2013
Re: Pim_gd's Mods - DialogueActions v2.02 (9 January 2014)

Same here. I've noticed this on a couple of other dialogs but had not narrowed it down to a particular line causing it. I only started hearing it in the last few days or so but had thought it was a random error. It looks like it was introduced in DA 2.00 Alpha or later or Loader 5.33Dev or later. DA 1.09 and Louder 5.33 (in combination) seem OK.
 

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.