WeeWillies's Mods - DialogueActions v3.00 (17 April 2014) (2 Viewers)

WeeWillie

Content Creator
Joined
Nov 8, 2013
Many thanks to pim_gd for providing v2.04 and to Gollum before him! I've just added a small amount to the work done by the giants before me.

DialogueActions - v3.00 (17 April 2014)
Current version is v3.00, uploaded 17 April 2014.
Code:
v3.00 (by WeeWillie, 4/17/14)
- Added [VA_SAVE_SAVEGAME_<SAVENAME>],[VA_LOAD_SAVEGAME_<SAVENAME>], which save to disk any global variables set by [VA_SET_GLOBALVARIABLE...]
- Added [VA_CLEAR_SAVEGAME_<SAVENAME>] which deletes a save game made via [VA_SAVE_SAVEGAME_<SAVENAME>]
- When DialogueActions first loads, it clears out the active dialog.  This is to avoid issues where a dialog is loaded through the character menu (i.e. Scene->Custom), and then on next load of SDT automatically runs without having the needed folder initializations.
- When the frame rate gets 10fps or below, DA clears the spit, and if fps still doesn't rise, it clears the cum strands in an attempt to correct the poor framerate.  When frame rate is low, other commands like animtools and character loads begin to fail.
- Added [BUTTON<1-10>_ON][BUTTONALL_ON][BUTTON<1-10_OFF][BUTTONALL_OFF], used in conjuction with "da.button<1-10>.name" for a button GUI.
- Added audio triggers, [SLAP],[AH_HARD],[OH_HARD],[OH_SOFT], and [OW].
- Added ability to load a mod via dialog using [LOAD_MOD] and [CLEAR_MOD] in conjuntion with "da.mod.load"

v2.04
- Fixed a bug with string comparison and parentheses.
- Added [HIDE_HIS_ARM], which hides (and only hides) his arm. Recommend [RELEASE] to be paired with this.
- Added [SHOW_HIS_ARM].

v2.03
- Fixed [GAG] causing a internal crash which led to line freeze and infinite choking
- Altered the way [VA_SET_VARIABLE_<var1>_<value>] works: [VA_SET_VARIABLE_<var1>_+=<value>] for adding numbers, [VA_SET_VARIABLE_<var1>_-=<value>] for substracting numbers, [VA_SET_VARIABLE_<var1>_<value>] for directly setting the value (which will cast string to number)

v2.02
- Fixed a bug in equation evaluation where *4 + 3* would turn into 43. (should be 7)

v2.01
- Turned off debug messages (left them on by accident)
- Implemented string comparison (but if you have spaces in a string they will get ignored)

v2.00
- Fixed a bug where a trigger could get skipped due to low framerate
- Fixed a bug where triggers at the start of the line would get skipped
- Fixed a bug where her masturbation would continue if the game was paused
- Ending masturbation with [MASTURBATE_OFF] now no longer changes her right arm position (if changed by animtools)
- Special characters (such as periods) are now no longer filtered from triggers for DialogueActions.
- Merged VariableArithmetic into DialogueActions

- Changed the way backgrounds, charcodes, dialogues and hair files are loaded
-- (variable) background {write only} -> (variable) da.background.load {write only}
-- (variable) loadCharCode {write only} -> (variable) da.charcode.load {write only}
-- (variable) hair {write only} -> (variable) da.hair.load {write only}
-- (variable) loadDialogue {write only} -> (variable) da.dialogue.load {write only}

- Changed the way clothing is set
-- (variable) <clothingType> {write only} -> (variable) da.clothes.<clothType> {read AND write} (clothType later explained in greater detail)

- Changed triggers:
-- [FLASH_<hex>] - Fades the screen to hex color, lasts indefinitely
-- any triggers with arm resetting may cause minor graphical glitches. Fixable with [FIX_ARMS] ([FIX_LEFT_ARM][FIX_RIGHT_ARM])

- Added variables:
da.masturbation.herpleasure {read and write} - her masturbation pleasure (scale: 0-100)
da.random {read only} - returns a random value between 0 and 1. Example usage to make it 1-10: (you'll have to define x as "*" in initial_settings to get access to multiplication operator) [VA_SET_VARIABLE_var1_*da.random x 9 + 1 \ 1*] - formula is ( random * ( max - min ) ) + min \ 1
da.hair.load {write only} - For loading hair files. Only static images are supported right now. Delay set is possible, using [LOAD_HAIR]
da.background.load {write only} - For loading backgrounds. Delay set is possible, using either [CHANGE_BACKGROUND] or [FADE_BACKGROUND_<hex>]
da.dialogue.load {write only} - For loading dialogues. Acts instantly, might halt the current line from playing.
da.charcode.load {write only} - For loading (partial) charcodes.
da.clothes.<clothType>.<colorComponent> {read and write} 
--clothType = any of these: "ankleCuffs", "armwear", "bellyPiercing", "bottoms", "collar", "cuffs", "earring", "eyewear", "footwear", "gag", "headwear", "himBottoms", "himFootwear", "himTop", "legwear", "legwearB", "nipplePiercing", "panties", "tonguePiercing", "top", "tops"
--colorComponent = any of these: "r", "g", "b", "a", "r2", "g2", "b2", "a2". r, g, b and their r2, g2, b2 cousins are from 0 to 255. a and a2 are from 0 to 1

- Added triggers:
-- [BOUNCE_TITS_<power>] - BOUNCE_TITS, with custom power argument. Suggested max is 0.5. [BOUNCE_TITS] uses 0.15.
-- [FIX_ARMS] - Stops rubbing, rotates her hands back to normal
-- [FIX_LEFT_ARM] - FIX_ARMS, left arm only
-- [FIX_RIGHT_ARM] - FIX_ARMS, right arm only
-- [INSTANT_END_FLASH] - Instantly ends a FLASH effect, without fading
-- [INSTANT_FLASH_<hex>] - Instantly sets the screen to hex color. Only ends after [END_FLASH] or a variant thereof.
-- [INSTANT_FLASH_<hex>_<durationInMilliseconds>] - Instantly sets the screen to hex color, waits durationInMilliseconds milliseconds before ending the fade effect.
-- [FLASH_CHANGE_COLOR_<hex>] - changes the fade effect's color.
-- [LOAD_HAIR] - Loads a hair file set to the variable da.hair.load . Only works if the trigger is on the same dialogueline as the variable set for da.hair.load.
-- [VA_SET_VARIABLE_<variableName>_<value>] - Sets the named variable's value to the provided value. Example: [VA_SET_VARIABLE_var1_5].
-- [VA_SET_VARIABLEBYNAME_<variableTargetName>_<variableSourceName>] - Sets the named target variable's value to the value of the named source variable. Example: [VA_SET_VARIABLE_var1_var2].
-- [VA_SET_GLOBALVARIABLE_<globalVariableName>_<value>] - stores a value in DialogueAction's memory.
-- [VA_SET_GLOBALVARIABLEBYNAME_<globalVariableName>_<sourceVariableName>] - stores a value in DialogueAction's memory, using a dialogue variable's name to pull the value from.
-- [VA_LOAD_GLOBALVARIABLE_<globalVariableName>] - sets <globalVariableName> as a dialogue variable using the value stored in DialogueAction's memory.
-- [RANDOMIZE_HER_BODY] - Randomizes her body
-- [RESET_RESIST] - Resets her resistance. May cause first_dt, first_throat and intro lines to trigger again. Change resistances with charcode loading.
-- [TONGUE_OUT] - Moves her tongue out (might break through clenching teeth)
-- [TONGUE_IN] - Moves her tongue back in (it might pop back out 2 seconds later though)
-- [MASTURBATE_STOP] - instantly stops her masturbating (will still slowly drop her pleasure)

- Added linetypes:
-- "choking" - plays when her mouth is full and she is passing out (starting to look like she is passing out, breath at 0 and oxygen dropping)

- Added the following operators:
Operator	var1	var2	output
+		10	20	30 - Adds both sides together.
-		10	20	-10 - Substracts the right side from the left side.
/		10	20	0.5 - Divides the left side by the right side. If the right side is 0, ... then I don't know what happens. Check Adobe's manual for division by 0.
!=		10	20	1 - If both sides don't have the same value, returns 1. Returns 0 otherwise.
==		10	20	0 - If both sides have the same value, returns 1. Returns 0 otherwise.
>=		10	20	0 - If the left side is more than, or equal to the right side, returns 1. Otherwise returns 0.
<=		10	20	1 - If the right side is more than, or equal to the left side, returns 1. Otherwise returns 0.
>		10	20	0 - If the left side is more than the right side, returns 1. Otherwise returns 0.
<		10	20	1 - If the right side is more than the left side, returns 1. Otherwise returns 0.
=		10	20	20 - Whatever the result might have been, it's set to the right side.
&&		1	0	0 - Represents a boolean AND. Returns 1 if (var1 + var2) equals 2. Otherwise, returns 0.
||		1	0	1 - Represents a boolean OR. Returns 1 if (var1 + var2) equals or is more than 1. Otherwise, returns 0.	
%		10	4	2 - Returns the remainder of a division of var1 by var2. Represents a modulo.
*		10	20	200 - Returns var1 multiplied by var2. Note that you can't use this operator directly - you need to define a variable with * as it's value.
\		10	3	3 - Returns the floored value of a division of var1 by var2. Represents integer division.

You can use ( ) to specify ordering (other ordering is ignored).
You can use variables names inside the insertion *var1 + var2* and they will automatically be replaced with the value that they have *var1 + var2* -> *10 + 20* -> 30
Keep in mind that for this to work properly, variable names CANNOT have spaces in them, and variables CANNOT be attached to parentheses or an operator.
Thus, don't use *var1+(var2/var3)*, instead use *var1 + ( var2 / var3 )*.
Additionally, due to the way replacing of insertion values work, variable names CANNOT contain operators.


- Removed the following triggers:
-- [SHRINK_PENIS]
-- [GROW_PENIS]
-- [CLEAR] - Load an empty dialogue with da.dialogue.load

- Removed the following variables:
-- penisSize - write-only, scale 0-100
-- penisLength - write-only, scale 0-100
-- penisWidth - write-only, scale 0-100
-- maxPenisLength - write-only, scale unknown (0-100?)
-- maxPenisWidth - write-only, scale unknown (0-100?)
-- minPenisLength - write-only, scale unknown (0-100?)
-- minPenisWidth - write-only, scale unknown (0-100?)

See included documentation for basic examples on usage.

For versionlogs pre v2, see changelog in download.

[attachurl=1]

DialogueActions is a loader mod that exposes more game-actions to dialogue writers. This allows dialogue writers to write more engaging or interactive dialogues. Examples include having a dialogue play completely automatic, having her change clothes, having her masturbate and many more!
Full documentation is provided in the download.

Source can be found here:
Source
 

Attachments

SDTDialogueActionsv3.00.zip
85.8 KB · Views: 2,934

WeeWillie

Content Creator
Joined
Nov 8, 2013
MG said:
You're still avoiding the FPS issue, are proxies not a solution?

I'm being a big dummy. What do you mean that I'm avoiding the FPS issue, and a proxy would be a solution for what?
 

ModGuy

Content Creator
Joined
Feb 17, 2011
DA fails to detect triggers when FPS is low.
Hence detection is FPS bound instead of proxy bound.
Proxies are the solution to replacing out SDT's code and as such could be used to rewrite dialogue parsing or hook in to the methods to detect triggers consistently regardless of FPS.
 

WeeWillie

Content Creator
Joined
Nov 8, 2013
MG said:
DA fails to detect triggers when FPS is low.
Hence detection is FPS bound instead of proxy bound.
Proxies are the solution to replacing out SDT's code and as such could be used to rewrite dialogue parsing or hook in to the methods to detect triggers consistently regardless of FPS.

You are way beyond my experience level there. I put in a hacky FPS "solution", just cause it was easy to do and I knew how to do it. What you are talking about sounds like making core architectural changes to the heart of DialogueActions, which is beyond my abilities at the moment.

The only reason I published a DA3.00 is because some other writers wanted some of the features I was using in my own dialogs, and to make sure if pim_gd ever comes back to work on DA, I won't have to integrate my changes back in. Instead, he can work from where I left off, since I just added to his dev environment.

I'm hoping to move forward now on developing my own dialogue project using these features, but if the changes you are talking about are simple and you can educate me on what would need to be done, I could give it a try.
 

aztlan

Casual Client
Joined
Sep 14, 2013
Thanks much for posting this. Looking forward to seeing what it can do.

Buttons, saving and loading variables, more sounds, loading mods - very nice!

EDIT- the documentation is generally good. The instructions for da.mod.load and LOAD_MOD could be done explicitly but it seems clear after looking at the example.

However this feature loading additional mods does not seem to work. If I put the additional mod in $INIT$ and add it to mods.txt it loads at the beginning but I can't load it via DA. If I do not add it to mods.txt it never loads, whether include the LOAD_MOD command and da.mod.load or not. Using your dialogue the hair blinks when I load the Halo (stored in $INIT$) but there is no change other

The unload feature does seem to unload any mods I have installed.

The button and new sounds features seem to work well.
 

sby

Content Creator
Coder
Joined
Sep 11, 2012
i think dialogue actions might now be the mod that has had the most people working on it.

3 dev's, and intermixed input from modguy and myself. probably others that i don't know about as well.

(pretty sure modguy made suggestions and stuff, i am pretty sure that is where the action checking started)
 

BuckWild

Modder
Streamer
Joined
Feb 3, 2013
sby said:
i think dialogue actions might now be the mod that has had the most people working on it.

3 dev's, and intermixed input from modguy and myself. probably others that i don't know about as well.

(pretty sure modguy made suggestions and stuff, i am pretty sure that is where the action checking started)

I was actually quite surprised that WeeWillie took up the job to further improve Dialogue Actions. I thought he was a moderately skilled dialogue writer, but it appears I underestimated his knowledge of scripting.

And from the conversation I see from ModGuy and WeeWillie, I'm given the idea that this version has a serious flaw. I understand what ModGuy wants, but WeeWilie's last comment made his FPS fix sound much too ineffective.

I'd like a confirmation from ModGuy saying that WeeWillie did indeed do the right kind of fix. A hackjob really sounds ugly when it comes from someone who's skill in programming is not apparent to me. No offense to Willie, of course.
 

WeeWillie

Content Creator
Joined
Nov 8, 2013
BuckWild said:
I'd like a confirmation from ModGuy saying that WeeWillie did indeed do the right kind of fix. A hackjob really sounds ugly when it comes from someone who's skill in programming is not apparent to me. No offense to Willie, of course.

It depends which way you look at it. My "fix" is a hack that just gets rid of strands (spit and cum) when the fps goes low, and it does do its job in that respect.

One reason I really cared about low FPS is that under low FPS conditions, animtools via a dialog trigger can fail, which can really bork my Slave Trainer dialog. Pim_gd fixed the "low FPS loses trigger" issue with the addition of proxies. However, animtools does not do this, so it can be affected by low FPS. A real fix to that issue would be to add proxy handling of triggers in animtools.

My "fix" of removing strands helps with the animtools issue by slightly helping with FPS going low, but it doesn't completely fix the core animtools dropped trigger issue. The best answer from MG is that animtools and dialogue actions be changed so that DA handles the trigger via proxies, and calls are made into animtools to do the actual animation change.
 

WeeWillie

Content Creator
Joined
Nov 8, 2013
aztlan said:
However this feature loading additional mods does not seem to work. If I put the additional mod in $INIT$ and add it to mods.txt it loads at the beginning but I can't load it via DA. If I do not add it to mods.txt it never loads, whether include the LOAD_MOD command and da.mod.load or not. Using your dialogue the hair blinks when I load the Halo (stored in $INIT$) but there is no change other

The unload feature does seem to unload any mods I have installed.

Does the unload Halo button work for you in my example?

For your mod that doesn't unload, if you manually load it through the Modding->Import menu, does it get removed with the little back arrow button next to the "Swf Mod..." button?

Basically my code emulates that back arrow button, and I've found a mod that isn't removed using that back arrow. I'm not sure why.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
This thread could use a source download. If I had source I could probably add the new triggers and such to the checker, and it might even be usable again.
 

aztlan

Casual Client
Joined
Sep 14, 2013
Pim_gd said:
This thread could use a source download. If I had source I could probably add the new triggers and such to the checker, and it might even be usable again.

That would be very nice. The checker is essential.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
quickly added da.held and da.mouthfull as per sby's request.

added a copy of the project directory, there's a swf in the bin folder that will display the added behavior
 

Attachments

SDTDialogueActions_WW.rar
6.2 MB · Views: 315

kjon

Potential Patron
Joined
Dec 21, 2013
Emmmm Pim, could you please tell me what of all the swf files in the rar is the "new" DialogueActions?
I'm a bit lost.

Thanks in advance. :)
 

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.