1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

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

Discussion in 'Loader Imports' started by WeeWillie, Apr 17, 2014.

  1. WeeWillie

    WeeWillie Casual Client Content Creator

    Joined:
    Nov 8, 2013
    Messages:
    339
    Likes Received:
    13
    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
     

    Attached Files:

    aliraja likes this.
  2. WeeWillie

    WeeWillie Casual Client Content Creator

    Joined:
    Nov 8, 2013
    Messages:
    339
    Likes Received:
    13
    Here is an example dialog showing the new features of DialogueActionsv3.00.
    Let me know if you have any issues or questions.

     

    Attached Files:

  3. ModGuy

    ModGuy Club Regular Content Creator

    Joined:
    Feb 17, 2011
    Messages:
    1,754
    Likes Received:
    22
    You're still avoiding the FPS issue, are proxies not a solution?
     
  4. WeeWillie

    WeeWillie Casual Client Content Creator

    Joined:
    Nov 8, 2013
    Messages:
    339
    Likes Received:
    13
    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?
     
  5. ModGuy

    ModGuy Club Regular Content Creator

    Joined:
    Feb 17, 2011
    Messages:
    1,754
    Likes Received:
    22
    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.
     
  6. WeeWillie

    WeeWillie Casual Client Content Creator

    Joined:
    Nov 8, 2013
    Messages:
    339
    Likes Received:
    13
    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.
     
  7. aztlan

    aztlan Swell Supporter

    Joined:
    Sep 14, 2013
    Messages:
    507
    Likes Received:
    15
    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.
     
  8. Square

    Square Avid Affiliate

    Joined:
    Sep 30, 2013
    Messages:
    120
    Likes Received:
    1
    You stole from the Giants. They will come for it, Vendrick.
     
    Favvy likes this.
  9. sby

    sby Club Regular Content Creator

    Joined:
    Sep 11, 2012
    Messages:
    1,339
    Likes Received:
    76
    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)
     
  10. BuckWild

    BuckWild Casual Client

    Joined:
    Feb 3, 2013
    Messages:
    342
    Likes Received:
    0
    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.
     
  11. WeeWillie

    WeeWillie Casual Client Content Creator

    Joined:
    Nov 8, 2013
    Messages:
    339
    Likes Received:
    13
    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.
     
  12. WeeWillie

    WeeWillie Casual Client Content Creator

    Joined:
    Nov 8, 2013
    Messages:
    339
    Likes Received:
    13
    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.
     
  13. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    721
    Likes Received:
    50
    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.
     
  14. WeeWillie

    WeeWillie Casual Client Content Creator

    Joined:
    Nov 8, 2013
    Messages:
    339
    Likes Received:
    13
    I've linked the source in the original post. Good to see you back, Pim_gd!
     
  15. aztlan

    aztlan Swell Supporter

    Joined:
    Sep 14, 2013
    Messages:
    507
    Likes Received:
    15
    That would be very nice. The checker is essential.
     
  16. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    721
    Likes Received:
    50
    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
     

    Attached Files:

  17. kjon

    kjon Potential Patron

    Joined:
    Dec 21, 2013
    Messages:
    79
    Likes Received:
    0
    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. :)
     
  18. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    721
    Likes Received:
    50
    That'd be the swf in the bin folder with the newest alter date.
    SDTDialogueActions.swf
     
  19. Gameboy739

    Gameboy739 Vivacious Visitor

    Joined:
    Oct 14, 2012
    Messages:
    88
    Likes Received:
    1
    Does anyone know why dialogue actions keeps stopping moreclothing mod?
     
  20. aztlan

    aztlan Swell Supporter

    Joined:
    Sep 14, 2013
    Messages:
    507
    Likes Received:
    15
    You have to put DA after moreclothingv3 then it will work fine.