Dialogue questions I have

edgelord 3000

Content Creator
Joined
Jan 16, 2018
Likes
40
#21
Sorry, forget the previous examples I've given out, they're not what I actually want to achieve. What I REALLY want is a way to make the AUTO-lines optional. Basically, any normal line would have three linetriggers: one that checks of auto is enabled, and if it is, checks whether he's holding her or not and turns auto off, one that points to the line where she says the things she needs to say, and one that again checks if auto is enabled, and starts auto if it is.

Not only that, but the part where she says what she has to say also already checks if her mouth is full of penis as well. Man, I'm making this hard for myself.

edit: "auto" will be a variable, that's what the trigger would have to check for. I don't know of any way to check if a player has activated auto or not in the GUI, and if I did this would probably be much easier...
edit2: come to think of it, the last auto trigger would have to check the "da.held" variable as well. Damnit all.
 
Last edited:

Deltavoid

Content Creator
Joined
May 24, 2018
Likes
30
#22
Just split it up into multiple lines or if optimization and check conditions are not too big of a problem for you, use check conditions. you could use multiple variables in a single trigger.
 
Last edited:

edgelord 3000

Content Creator
Joined
Jan 16, 2018
Likes
40
#25
New issue!

As far as I can tell, if I have a regular Speak line, the game will patiently queue the line for quite a while (or until a higher priority line is being built) until her mouth is free to say it. But if I in addition have a Thought line, the game will disregard the Speak line and always play the Thought line. This is especially noticeable if you use auto, as you can have twenty Speak lines and one Thought line, and the Thought line plays twenty times.

Is there a way to force the game to queue a Speak line instead of the Thought line? I thought about doing something like this:
Code:
general:"[thought]"{"style":"Thought"}
general:"[speak]"{"style":"Thought"}

thought:"thought"{"style":"Thought"}
speak:"speak"
but that just results in dead lines.
 

SyntaxTerror

Content Creator
Joined
Jul 24, 2014
Likes
536
#26
You may make a "story" with "chapters", ie. lines that will play one after another and never repeat.

You can force the next line to be read by adding its name in the saying.

Example:
Code:
general:"1st speak[general_a]"
general_a:"2nd speak[general_a]"
general_b:"1st thought [general_c]"{"style":"Thought"}
general_c:"3rd speak"
It should play "1st speak" then "2nd speak" then "1st thought" then "3rd speak" (but maybe the "1st speak" line will be played multiple times).

To be sure to read all the lines only once and in order, you'll have to add a parameter (eg. "chapter") and change the parameters names.

Example:
Code:
initial_settings:{"chapter":"a"}

general:"[general_*chapter*]"

general_a:"1st speak"{"set":{"chapter":"b"}}
general_b:"2nd speak"{"set":{"chapter":"c"}}
general_c:"1st thought"{"style":"Thought","set":{"chapter":"d"}}
general_d:"3rd speak"{"set":{"chapter":"e"}}

etc.
This will display the same things and displaying "1st speak" only once.

Note that I wrote dialogs long time ago and that i'm not that familiar with dialog writing, nor having tested the examples i gave you...

Good luck
 

edgelord 3000

Content Creator
Joined
Jan 16, 2018
Likes
40
#27
That works if I'm willing to accept the lines never repeating (I'm not, but I think I can work something out with DA's random function), but now the thought lines will never play unless she have her mouth free, which is not the intended result, unfortunately.
 

SyntaxTerror

Content Creator
Joined
Jul 24, 2014
Likes
536
#28
That works if I'm willing to accept the lines never repeating (I'm not, but I think I can work something out with DA's random function)
To have some lines randomly repeating, without having the chain of lines playing, just add copies, without the forced link to the next one:
Code:
initial_settings:{"chapter":"a"}

general:"[general_*chapter*]"

general_a:"1st speak"{"set":{"chapter":"b"}}
general_b:"2nd speak"{"set":{"chapter":"c"}}
general_c:"1st thought"{"style":"Thought","set":{"chapter":"d"}}
general_d:"3rd speak"{"set":{"chapter":"e"}}

general_c:"1st thought"{"style":"Thought"}
general_c:"1st thought"{"style":"Thought"}
general_c:"1st thought"{"style":"Thought"}

etc.
The more times you copy a duplicate line, the more this line has chances to be played.
Nevertheless, it is better to have similar lines than exact copies, for the sake of diversity in the dialog (eg. "Suck my cock baby", "Put it in your mouth honey", etc.).

Keep in mind that having dialogs that play the way you want is a very difficult goal to reach, even if you have a forced chain of lines to be said.

Random dialogs will almost never play the lines as you want to, because of randomness itself: it is like tossing a coin and wanting to have heads, tails, heads, tails, heads, tails, heads, tails... Unfortunately, probabilities don't work that way!

Good luck.
 

edgelord 3000

Content Creator
Joined
Jan 16, 2018
Likes
40
#29
Thanks, but the issue now is that the thought lines are never played unless her mouth is free. So it's kinda the opposite problem now.
 

sby

Content Creator
Joined
Sep 11, 2012
Likes
394
#30
it probably does queue the speak line, it just ends up never getting played becuase of the flood of thoughts that are capable of being played. try using my monitor dialog and see how it acts.
I think what you are looking for is a way to hold back repeated lines, which should be possible. holla if interested.
 

edgelord 3000

Content Creator
Joined
Jan 16, 2018
Likes
40
#31
You're right, it does queue them up, and seems to do this check of "is it possible to play this line now? No? Well let's just play the line that can be played". While in a dialog of only speak lines, it will hold on to the queued up line until it's ready to be played. I don't know how long it will hold on to it, I got tired of waiting after a couple of minutes.

I think what you are looking for is a way to hold back repeated lines, which should be possible. holla if interested.
Not quite, what I think I want is equality between Speak and Thought lines when her mouth is full.
I got an idea to use vanilla checks and DA's random function to choose between lines:
Code:
general:"[speakline]"{"style":"Speak", "check":{"*da.random*":"<=0.5"}}
general:"[thoughtline]"{"style":"Thought", "check":{"*da.random*":">=0.5"}}
speakline:"speak"{"style":"Speak"}
thoughtline:"thought"{"style":"Thought"}
I believe this should work, except I'm getting "da.random is undefined" in the log, which means I fucked up somewhere. I'll read the documentation more thorough for that. But what's worse is that I learned earlier in the thread that vanilla checks are bad for performance, and in the dialog I'm gonna use this for almost every single line will have a potential thought line, which means that I'll have to a LOT of checks...

Btw, in regards to the monitordialog mod, is it possible to move the monitor box or make it slightly transparent or something? It's kind of a bitch to X out of the dialog log when that monitor box is in the way...
 

edgelord 3000

Content Creator
Joined
Jan 16, 2018
Likes
40
#33
Yup, the * made it not work, removing them makes it work like I hoped it would. How much does the checks affect performance, anyway?
 
Top Bottom