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

Pim_gd's Mods - DialogueActions v4.06 (2 Oct 2016)

Discussion in 'Loader Imports' started by Pim_gd, Aug 27, 2013.

  1. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    719
    Likes Received:
    47
    DialogueActions - v4.06 (2 Oct 2016)
    Current "stable" version is v4.06, uploaded 2 October 2016. Check the bitbucket repo for the latest sources.

    Requires Loader 5.41b+
    Code:
    v4.06
    - Updated known bugs list with 2 entries, one for da's variables in check line-attributes not working, one for da.finishes being swallowed in any line with line-attributes
    - Added API function registerVariableReadHandler, which allows you to expose dialogue variables.
    - Updated API Documentation with small descriptions (one-liners) as to what you'd use the functions for.
    - Fixed a bug where lines with a line name that is 7 characters long ("general", "pre_cum", "restart", "swallow", "choking", button1 through 9) that only contains triggers was played instantly even although they shouldn't have
    
    v4.05
    - Fixes a bug with [DELETELOCALS_<vars>] so that it actually works
    - Make non-existing sound files give a red message, rather than an error
    - Added [CUM_BLOCK_ON] and [CUM_BLOCK_OFF], as well as da.blockingOrgasm to stop him from cumming
    
    v4.04
    - Added [LOAD_FULL_CHARCODE], which doesn't alter character codes that get loaded at all and directly passes them to SDT.
    - Added addLineChangeListener to API functions, to allow other mods to listen when a line is changed because this was previously not possible due to the way DA handles instant-lines.
    - Fixes a bug with loading non-existing saves.
    
    v4.03
    - Fixed a bug with start lines firing upon starting of SDT with an old dialogue; this caused an error popup for anyone with a debug flash player and it was annoying in general; it also broke MoreClothing every now and then because of this
    - Fixed [LOAD_MOD] - it now properly loads from the last loaded character folder and not $OVER$ like it did.
    
    v4.02
    - Reuploaded v4.01 to bitbucket because it somehow got murdered
    - Added [LOAD_CHARCODE2], which uses what this post said (https://www.undertow.club/threads/pim_gds-mods-dialogueactions-v4-01-7-aug-2015.5889/page-16#post-114156): "yes, we could simply remove the CharCodeAction.as::loadCharCode(...) method and invoke g.InGameMenu.loadData(...) instead." To load charcodes with sby support
    
    v4.01
    - Fixed a bug where switching dialogues would cause global variables to be automatically imported into the next dialogue, and values to be overwritten by initial_settings values.
    - Added api functions:
    -- registerVariableWriteListener allows you to recieve value updates from dialogue variables
    -- registerVariableWriteHandler allows you to intercept variable writes, exposing your own functions as dialogue variables
    -- getVariableValue allows you to retrieve a variable value as seen in variable insertions
    -- setVariableValue allows you to set a variable value as seen in the set line-attribute
    -- See Documentation/For Modders/Api.txt for more info
    - Added [PLAY_SFX_<filename>]. Plays a mp3 file from the last loaded character folder. Only 1 sound and 1 bgm can play at the same time for now.
    - Added [STOP_SFX]. Stops the sound started by PLAY_SFX, if it hasn't ended yet.
    - Fixed a bug in [STOP_BGM] where it would just crash DA.
    - Added da.finishes - read only variable to retrieve cum counter.
    
    v4.00
    - Migrated project to BitBucket/Git!
    - added [APPENDVAR_localVar1_value] - appends value to localVar1. [SETVAR_localVar1_1][APPENDVAR_localVar1_hello] will set localVar1's value to "1hello".
    - added [APPENDVARBYNAME_localVar1_localVar2] - appends the value of localVar2 to localVar1. Basic string concatenation.
    - added [APPENDVARBYNAEM_localVar1_localVar2] - alias for APPENDVARBYNAME to prevent issues with *ME* inserts.
    - removed cleaning at low FPS.
    - Added "registervariableWrite" to API. This allows you to make on-screen dialogue variable monitors - it's a onVariableWrite listener.
    
    v3.06
    - Fixed a bug with the values of da.breathPercentage, now it works properly (previously read gave bogus values and set did nothing due to a typo)
    - Removed white debug messages for loading variables from a savefile
    
    v3.05
    - Added "registerTrigger" to API. This function allows you to hook one of your functions up to a dialogue trigger.
    - Added [PLAY_BGM_<filename>]. This plays a music file from the last loaded character folder.
    - Added [STOP_BGM]. This stops playing the music file started by [PLAY_BGM_<filename>].
    - Added da.bgm.volume {write only}. Range 0 (mute) to 1 (full volume, default). This sets the volume of the background music started with [PLAY_BGM_<filename>].
    
    v3.04
    - Fixed a bug with da.herPleasure where setting to a number took a value between 0 and 1 instead of 0-100.
    - 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)
    - Added da.canSpeakLineTrigger for whether speak lines can trigger {read only} (based on gag, mouth full, passed out, and swallowing).
    - Added a feature where any line that ends with "_INSTANT" (as in "intro4_INSTANT") and only contains triggers is resolved instantly. This means you can do 100 triggers for setting variables and such in a single frame.
    - Added Mod Communication (Mod comms). See For "Modders/Api.txt". DialogueActions uses "DialogueActions" as api key.
    -- Added 1 function "runTriggerCode". Input is a string, like a trigger but without the brackets.
    
    v3.03
    - Fixed a bug with [SETVAR_localVar_-=number] that didn't work properly for positive numbers
    - Fixed a bug with [SETVAR_localVar_+=number] that didn't work properly for negative numbers
    
    v3.02
    - Added SETVARBYNAEM and SETGLOBALBYNAEM aliases for SETVARBYNAME and SETGLOBALBYNAME due to *a*[ME*b*] bug (they do the same thing but prevent the bug)
    - Added read/write variable da.pleasurePercentage, goes from 0 to 100, sets him pleasure. Setting it at 100 won't make him cum, you'll need the girl to finish the job.
    
    v3.01 (by Pimgd/WeeWillie)
    - Deprecated all triggers starting with "VA_" (VA_SET_GLOBALVARIABLE, VA_SET_GLOBALVARIABLEBYNAME, VA_LOAD_GLOBALVARIABLE, VA_SET_VARIABLE, VA_SET_VARIABLEBYNAME, VA_SAVE_SAVEGAME, VA_LOAD_SAVEGAME, VA_CLEAR_SAVEGAME)
    -- Deprecated triggers can still be used, but they may not perform optimally.
    -- VA_SET_VARIABLE and related triggers have bugs regarding setting of positive integers
    -- VA_SET_GLOBALVARIABLE and related triggers use a separate storage from SETGLOBAL.
    - Defines a new concept: Object variables. See "About Object variables.txt" in the documentation.
    - New triggers:
    -- [SETVOICE_voiceID] Alters the sound files used for [AH_HARD], [OH_HARD], [OH_SOFT], [OW]. Supported voiceID are 1 and 2. 1 is default.
    -- [SETVAR_localVar_value] - Sets localVar's value to value. Replaces VA_SET_VARIABLE.
    --- [SETVAR_localVar_+=value] - Adds value to localVar's value.
    --- [SETVAR_localVar_-=value] - Substracts value to localVar's value.
    -- [SETVARBYNAME_localVar1_localVar2] - Sets localVar1's value to localVar2's value. Replaces VA_SET_VARIABLEBYNAME.
    -- [SETGLOBAL_globalVar_value] - Sets globalVar's value to value, in global space. Replaces VA_SET_GLOBALVARIABLE. For a detailed explanation about global variables, see "About variable scopes.txt" in the documentation.
    -- [SETGLOBALBYNAME_globalVar_localVar] - Sets globalVar's value to localVar's value, in global space. Replaces VA_SET_GLOBALVARIABLEBYNAME. For a detailed explanation about global variables, see "About variable scopes.txt" in the documentation.
    -- [COPYOBJECT_layers_targetObjectVariable._sourceObjectVariable.] Copies all variable values from sourceObjectVariable to targetObjectVariable, up to <layers> deep. 0 layers means "all layers". Keep in mind that object variable notation requires a period at the end of the variable name. See "About object variables.txt" in the documentation for further details.
    -- [COPYOBJECT_layers_targetObjectVariable._sourceObjectVariable._USING_structInfoVariable] COPYOBJECT, but uses structInfoVariable to determine which variables need to be copied. Only variables present in both structInfoVariable and sourceObjectVariable will be copied.
    -- [DEFINEOBJECT_objectVariableName._variableName1_variableName2_variableNameN] Creates variables objectVariableName.variableName1 and so on. Initializes them to 0. Useful for COPYOBJECT USING. See "About object variables.txt" in the documentation for usage examples.
    -- [REGISTERGLOBALS_variable1_variable2_variableN] Copies the value of all provided variables into global variables with the same name, then links the variables together. Supports objects. See "About variable scopes.txt" in the documentation for more details about globals and linking variables.
    -- [UNREGISTERGLOBALS_variable1_variable2_variableN] Decouples ALL of the variables listed from global space. Supports objects.
    -- [DELETEGLOBALS_variable1_variable2_variableN] Decouples, then deletes ALL of the variables listed from global space. Supports objects.
    -- [DELETELOCALS_variable1_variable2_variableN] Deletes ALL of the variables listed from local space. Supports objects. WARNING! Does not decouple locals! If you create a new local variable with the same name, the value of that variable will get copied to the global variable too!
    -- [LOADGLOBALS_variable1_variable2_variableN] Loads all of the listed variables from global space into your dialogue. Links them automatically. Supports objects.
    -- [GETGLOBALS_variable1_variable2_variableN] Loads all of the listed variables from global space into your dialogue, unlinked. Existing links are not erased. Supports objects.
    -- [SETGLOBALS_variable1_variable2_variableN] Sets all of the listed variables from local space into the global space, unlinked. Existing links are not erased. Supports objects.
    -- [SAVESETVARS_name_variable1_variable2_variableN] Creates a savefile with name if not exists and adds the variables to the savefile. Supports objects. See "About variable scopes.txt" in the documentation for more information regarding savefiles.
    -- [SAVEGETVARS_name_variable1_variable2_variableN] Loads from a savefile with the supplied name the listed variables from the savefile. Supports objects.
    -- [SAVEREMOVEVARS_name_variable1_variable2_variableN] Removes variables from a savefile. Supports objects.
    -- [SAVEDELETE_name] Deletes a savefile.
    
    - Added write-only variables da.button<1-10>.varname. Useful for setting button names instantly via the set line-attribute; works the same as [SETVARBYNAME_da.button<1-10>.name_localVarName].
    - Fixed a bug that caused choking lines not to play properly (they used to play only if she was at more than 100% oxygen instead of less >_<)
    
    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. These trigger button<1-10> lines when pressed.
    - 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.
    

    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.

    Request a feature!
    DialogueActions:
    Code:
    Unsorted:
    3 vote (AaRL, T0mcat, TM94) - add "[MOUTH_OPEN]" as trigger - Opens her mouth
    3 vote (AaRL, T0mcat, TM94) - add "[MOUTH_CLOSED]" as trigger - Closes her mouth
    1 vote (T0mcat) - add "auto_speed" variable - alters her speed in auto movements (will have to look if this is even possible)
    1 vote (AaRL) - add "[BALLS_TWITCH]" as trigger - like [BOUNCE_TITS], but now his balls.
    1 vote (Slingerbult) - enable/disable mouse movement somehow via dialogue triggers
    1 vote (Slingerbult) - a convenient way to hide him/her entirely
    1 vote (denirth) - variables for ejaculation last locations, as well as fixing ejaculation linetype
    1 vote (AaRL) - [BREATHE_NORMAL]/[BREATHE_HEAVY] for making her breathe at different rates
    
    Declined:
    More arm/finger triggers - use animtools for that.
    
    How does this work?
    You can vote for an infinite amount of features and you can request features and I'll add them to the list. When making changes to the mods (or whenever I feel like it), I'll implement things from the list, based on how many votes a feature has and how long I estimate adding a feature would take. However, bigger features don't require more votes.
    And if you're not sure whether something is possible - just ask! Chances are I'll be able to make it work one way or another.
    Also, I'm a lazy person. Things get done or they don't get done. If you show me something you're working on which would benefit from a specific function, tell me and I'll try to help you out.
     

    Attached Files:

    Last edited: Oct 2, 2016
    aztlan, NoctSoul and Macnagum like this.
  2. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    719
    Likes Received:
    47
    Re: Pim_gd's Mods - VariableArithmeticV1.00 (27 August 2013)

    SOURCE HERE
    BitBucket repository <-- latest sources

    This post contains archives with source files and previous versions for my loader mods. Not very useful to the average user, but this could come in handy if a fatal bug was implemented in an update somehow.

    DialogueActions:
    Latest version: v3.06 (outdated - get sources from Bitbucket instead!)
    Last updated: 26 January 2015
    View attachment SDTDialogueActions3.rar
    Older version: v2.04
    Last updated: 10 January 2014
    View attachment SDTDialogueActions.rar
    Older version: v1.15
    Last updated: 27 December 2013
    View attachment DialogueActions.rar

    VariableArithmetic: (Outdated, merged into DialogueActions V2.00)
    Latest version: v1.08
    Last updated: 1 December 2013
    View attachment SDTVariableArithmetic.rar
     
  3. Bazinga

    Bazinga Potential Patron

    Joined:
    Jun 13, 2013
    Messages:
    19
    Likes Received:
    0
    Re: Pim_gd's Mods - VariableArithmeticV1.01 (27 August 2013)

    Wow, impressive reactivity! :D Thank you for adressing that.

    Seems rather powerful, I'll give it a try tomorrow I think.
     
  4. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    719
    Likes Received:
    47
    Re: Pim_gd's Mods - VariableArithmeticV1.02 (28 August 2013)

    August 28, 2013
    Introducing v1.02 of VariableArithmetic!
    - Renamed [UPDATE_VARIABLES] to [VA_UPDATE_VARIABLES]. All VariableArithmetic functions will be prefixed with VA_ - this is to allow easy validation for the checker (If I have to update 2 things each time I add a function here, I might think something is too much effort to put in), and to prevent namespace pollution ([UPDATE_VARIABLES] is pretty generic. [VA_UPDATE_VARIABLES] is not.)
    - Added [VA_SET_VARIABLE_<variableName>_<value>] as a custom trigger. Placing this trigger in a line will set the referenced variable's value to the provided value. This can be used to copy the value of one variable to the other. Example: [VA_SET_VARIABLE_var1_*var2*]. A word of warning - this uses a String internally, so I don't know if SDT still allows +1 incrementing via set lineattributes after this. But such a thing could be fixed, if it were the case.
    - Thanks to sby, allowed VariableArithmetic to function from the $INIT$ folder.
    Link in OP, and the archive download in the second post has been updated as well.

    EDIT: Updated the example dialogue to make use of [VA_UPDATE_VARIABLES] instead of [UPDATE_VARIABLES]. So if you were testing the mod and it didn't seem to work, try it with the new example dialogue.
     
  5. Leela

    Leela Potential Patron

    Joined:
    Mar 28, 2011
    Messages:
    93
    Likes Received:
    0
    Re: Pim_gd's Mods - VariableArithmeticV1.02 (28 August 2013)

    Math? Math! Really MATH! YES! Finally! Boolean operators? <Faint>

    Now I have to re-write all my dialogs to use this awesome new power.

    P.S. Thanks for the checker too. Much easier than digging through the dialog logs. Suppose someday I need to post some of the dialogs.
     
  6. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    719
    Likes Received:
    47
    Re: Pim_gd's Mods - VariableArithmeticV1.02 (28 August 2013)

    Hey, if you post them, I'll check them for you (provided you've done some of the cleaning with the checker already).
     
  7. Leela

    Leela Potential Patron

    Joined:
    Mar 28, 2011
    Messages:
    93
    Likes Received:
    0
    Re: Pim_gd's Mods - VariableArithmeticV1.02 (28 August 2013)

    Here's the first: http://www.sdtmods.com/index.php?topic=4338.msg63176#msg63176
    It's been checked and tested. I think all the double spaces left are intentional LOL. It's pretty complex and changes animations many times. Hopefully I've found all the ways it can get derailed or hung up.
     
  8. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    719
    Likes Received:
    47
    Re: Pim_gd's Mods - VariableArithmeticV1.03 (31 August 2013)

    August 31, 2013
    Introducing v1.03 of VariableArithmetic!
    - Added operators || and &&, representing boolean operation OR and AND respectively. OR = ((A+B)>=1), AND = ((A+B)==2)
    Link in OP, and the archive download in the second post has been updated as well.

    I wanted to supply a complete range of functionality, and whilst AND and OR were already implemented somehow (see below for a way how you could do that), it would get quite messy.
    Anyway, I've decided (as per ModGuy's suggestion) to move the technical details of VariableArithmetic to .txt files packaged with the mod. This declutters the OP (in the event I make more loader mods). I've left some of the details, because I'm not sure what the proper balance is between showcasing functionality (which might get people to think "Oooh, that's handy, I want that / that fixes my problem!") and preventing wall of text (which might get people to think "Whoa, this stuff is complicated... isn't there something simpler I can use?", followed by navigation to the previous webpage).

    AND:
    var1, var2,
    ((var1==3)+(var2==5))==2

    OR:
    var1, var2,
    ((var1==3)+(var2==5))>=1
    But, as you can see, this would get messy.
    If, for some reason, you would have need for XOR and NAND:

    XOR:
    var1, var2
    ((var1==3)+(var2==5))==1

    NAND:
    var1, var2
    ((var==3)+(var2==5))!=2

    In case of unholy need for XNOR (WHY WHY WHY)
    XNOR:
    var1, var2
    ((var1==3)+(var2==5))!=1
     
  9. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    719
    Likes Received:
    47
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    September 1, 2013
    Introducing v0.99 of DialogueActions!
    - I've taken over development of this mod from gollum. I'll be hosting the mod on this thread, as well as fixing any bugs that may be present... and most importantly, I'll be adding new features if you request them!
    - Added [BOUNCE_TITS] as a trigger, mostly to see if I could.
    Link in OP, and the archive download in the second post has been updated as well.
     
  10. tanksk1

    tanksk1 Potential Patron

    Joined:
    Jul 28, 2012
    Messages:
    52
    Likes Received:
    0
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    I vote for pleasurePercentage. Also, nice job so far. Also, this might seem a little odd, but what about a dialogue function that alters the skin tan slider?
     
  11. Leela

    Leela Potential Patron

    Joined:
    Mar 28, 2011
    Messages:
    93
    Likes Received:
    0
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    Are you a god?

    I might as well throw in my request. A dialog trigger when she runs out of breath and one when she finally passes out. Bonus round an action to set her breath level, essentially giving control over when she does or does not pass out.
     
  12. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    719
    Likes Received:
    47
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    Votes noted. v1.00 of DialogueActions will take a bit longer to develop than your usual update (which takes about 1-2 hours) because gollum managed to find the source for DialogueActions and it contains certain features that might be worth sharing (crotch rubbing, RIGHT_HAND_ON and LEFT_HAND_ON triggers, LEFT_ARM_BREAST ...) but he's not sure which ones work and which ones don't.

    And no, I'm not a god, I'm just a mortal programmer.
     
  13. Bazinga

    Bazinga Potential Patron

    Joined:
    Jun 13, 2013
    Messages:
    19
    Likes Received:
    0
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    Awesome work :D.
    I'd add on the to-do list: The possibility to change his appearance (clothes, skin...). Alteration of his pleasure too.
    And an action to load another BG? Don't know if that's possible.
     
  14. AaRL

    AaRL Swell Supporter

    Joined:
    Feb 17, 2011
    Messages:
    824
    Likes Received:
    0
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    OK, I figured it out. I forgot to place DialogueActions v0.99.swf in the mods.txt file. That fixed so disregard that PM Pimgd.

    I was looking at the triggers and have a few ideas:

    [SHRINK_PENIS] - To reduce the size of the penis (Like hes not into her at the moment or she has to do "more" for him to get hard)

    [FINGERS_MOUTH] - To make her stick her fingers in her mouth (Think after she masturbates...)

    [LICK_FINGERS] - To make her lick her fingers (Think after she masturbates...)

    [ARMS_HIS_SIDES] - To make her hold/caress his sides (Can use either hand/arm or both arms in commands)

    [ARMS_HIS_LEGS_FEEL] - To make her hold/caress his side of his legs (Like above, can use either arm or both arms in commands)

    ARMS_LEGS_FEEL] - To make her caress her legs (Like above, can use either arm or both arms in commands)

    [GRAB_BREASTS] - She holds her breast [Can use either hand or both and grab either breast or both)

    [GRAB_ASS] - She caresses/places her hands on her ass (Like above, can use either arm or both arms in commands)

    [FINGER_ASS] - She fingers herself (Can use either hand/arm or both arms in commands)

    Random thoughts:
    Is it possible to have her shake her head side to side like saying "no"?
    What about an "Auto Handjob" mode?
    What about background changing? (mentioned in post above mine, was typing mine up as posted)
    Also, can you change his clothes as well like the girls clothes? Both take off and put back on?
     
  15. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    719
    Likes Received:
    47
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    Added votes. DialogueActions does not support $INIT$ folder yet - that'll be implemented in v1.00. I'll release a test version soon. Test versions are buggy, people. This means things may not work and things might get removed. Gollum found the source code for DialogueActions and has sent it to me. However, he doesn't know what works, and I would like to try and update this DAILY for the coming time, if possible. I know how long it can take to write a dialogue, and it could take months before anything pops up using the new features (I've yet to see a single dialogue use VariableArithmetic).
    Expect the test version within 5 hours or so.

    Oh and AaRL, Auto Handjob seems to be achievable in-game via turning on the AUTO function by selecting the checkbox, then going to AUTO_HARD and making him let her go.
    The auto function seems to be strangely broken for DialogueActionsv1.00Test, so I'll try to see if I can make some things work.
     
  16. Pim_gd

    Pim_gd Swell Supporter

    Joined:
    Jan 25, 2013
    Messages:
    719
    Likes Received:
    47
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    Alright!
    (temporarily) Introducing v1.00Test17 of DialogueActions!
    The "17" refers to local build number. I up it by one when I'm done writing fixes for things.
    Link in OP. Be sure to download the TEST version, and not the normal one.

    The good news:
    - I seem to have fixed the linetypes (start and such). At the time of writing, I realize I might have fucked up and left a bug in, so it's possible that the start line will only play once, and after that you'll have to restart SDT (loading new dialogue doesn't work).
    - Gollum's source makes it easier to do things, but I had to carefully migrate my fixes. I'm not sure if everything still works, which is why this is a test version. I want the real v1.00 to be in proper "working order".
    - I fixed auto modes. Which is strange, because I thought they weren't broken. Oh well.
    - I fixed $INIT$ folder compatiblity. You could run DialogueActions from your $INIT$ folder without a problem, but it would be unloaded if you were to load a character folder.

    The bad news:
    - I didn't have the time to test all the features because I was fixing stuff and I don't even know what some of them do. I've made a big dump of the notes file I kept during today here below.
    - I didn't update the documentation yet.

    So basically, I need your help to see if things work! Specifically the penis variables and AUTOKEYS triggers - but also anything related to arm movement.
    With a bit of luck & testing help, I'll have a proper working v1.00 of DialogueActions on tuesday or wednesday, and then we can start adding features!

    new triggers
    [RIGHT_HAND_ON] - [HAND_ON], for right hand.
    [LEFT_HAND_ON]- [HAND_ON], for left hand.
    [RIGHT_HAND_OFF] - [HAND_OFF], for right hand.
    [LEFT_HAND_OFF]- [HAND_OFF], for left hand.
    [RUB_HIS_CROTCH_ON] - She starts rubbing his crotch with her right arm, apparently.
    [RUB_HIS_CROTCH_OFF] - Stops rubbing. You need to do this before calling another right arm position.
    [RIGHT_ARM_BREAST] - Places her right hand on her breasts. But I'm not sure if this is animtools compatible. It can also mess up rubbing actions, it seems. Breaks her right arm.
    [LEFT_ARM_BREAST] - I made this based on the right hand one. But it's broken. I wonder why? I disabled this because it crashes the mod.
    [ARMS_BREAST] - Seems only natural to add this one in - I combined [RIGHT_ARM_BREAST] and [LEFT_ARM_BREAST]. Since [LEFT_ARM_BREAST] is broken, this is the same as [RIGHT_ARM_BREAST]
    [AUTO_KEYS_ON] - main.aCon = true
    [AUTO_KEYS_OFF] - main.aCon = false
    [AUTO_KEYS] - main.aCon = !main.aCon (if true then false, and if false then true)
    [HOLD_OFF] - Empty. Strange.

    [GROW_PENIS] seems to be removed for some reason.

    new variables
    penisSize - Write-only, sets his penis size to given value. Scale unknown (but seems 0 and higher)
    penisLength - Write-only, sets his penis length to given value. Scale unknown (but seems 0 and higher)
    penisWidth - Write-only, sets his penis width to given value. Scale unknown (but seems 0 and higher)
    maxPenisLength - Write-only, about his penis
    maxPenisWidth - Write-only, about his penis
    minPenisLength - Write-only, about his penis
    minPenisWidth - Write-only, about his penis
    I saw some comments in the code about 0.5 and 1? These are gonna be one of these 3:
    1: Scaled 0 to 1 (multiplicative percentage)
    2: Scaled 0 to 100 (percentage)
    3: Not scaled, in absolute pixels.

    new linetypes
    intro - I have no idea what that is doing here. Seems to be related to unifying general and intro lines?
    pleasure - if he recieves pleasure. This seems like it would trigger waaaaaaay too often.
    I think it is bugged, though... it doesn't seem the requirement for triggering the line
    drops. So it will work until the first ejaculation, then it will be broken. Seems broken in general. (in v1.00Test5)
    ejaculate - If he ejaculates. Strangely enough, lower priority than general/intro/pleasure lines. Seems broken (in v1.00Test5)

    notes
    v1.00Test13 - It seems I fixed the linetypes not working! Woo! But I ran out of time to test them.
    v1.00Test14 - I can't get AUTO_HARD + handjob working.
    v1.00Test15 - Heck, AUTO_SELF/HARD/NORMAL doesn't seem to turn Auto mode on.
    v1.00Test16 - forcibly setting automode on, then checking if it IS on. Also cleared my init folder, just in case conflicts.
    v1.00Test17 - removed spammy debug output as it's not very useful for testers (covers things I already tested, so I know that works).
     
  17. AaRL

    AaRL Swell Supporter

    Joined:
    Feb 17, 2011
    Messages:
    824
    Likes Received:
    0
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    Ill give it a go later tonight when I can further learn the new triggers and such. Ill try to work out a simple test dialogue that goes though the codes. Ill just use the intro--->intro1 --->introX and so on to help automate the test process.

    From a dialogue writers stand point... The amount of additional content this opens up in terms of writing a specific dialogue now really is mind-blowing. (pun). I feel that this "DLC" for SDT ranks among the top...
     
  18. cowboybud

    cowboybud Potential Patron

    Joined:
    Nov 18, 2012
    Messages:
    5
    Likes Received:
    0
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    thanks for the help folks. I agree, with this application the amount of variable that will be able to be implemented into dialogues is astounding. i'm still a Noob with writing dialogues, but i'm definitely motivated to try and get you y'all level. (probably not gonna happen)
     
  19. AaRL

    AaRL Swell Supporter

    Joined:
    Feb 17, 2011
    Messages:
    824
    Likes Received:
    0
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    (Will update post accordingly ((Done for now????)) - TESTING SUCKS!!! - 8 crashes of my swf player in all over a two hour time - most from auto and arm/breast movements)

    Added Suggestions:
    During my testing, I couldnt help but notice with a fresh copy of loader525c, that her tongue was... always there. Mind, Ive had this option turned off in my vSDT for the longest. What about a [TONGUE_IN]/[TONGUE_OUT] trigger? Also, a [MOUTH_OPEN][/[MOUTH_CLOSE] one as well. Dam near looks like a dog panting at times lol. Finally, [BALLS_TWITCH] like when hes about to come? Would go with her touching him there as well. Anyway, on to the testing...


    **Testing with v1.00Test17 - Dialogue Actions**


    [HAND_ON]/[HAND_OFF]/[HANDJOB_ON]/[HANDJOB_OFF]:Do not activate and error message below for all.

    ReferenceError: Error #1069: Property armPositions not found on obj.Her and there is no default value.
    at flash::Main/processDialogue()
    at flash::Main/update()
    at Loader_fla::MainTimeline/fps()[D:\desu\i\FLCS5\Modules\fps.as:167]

    [DEEPTHROAT] - First attempt after trigger, she goes normal depth? On second attempt, she goes down all the way across all sizes.

    [RIGHT_ARM_BREAST]/[ARMS_BREAST] - Does action but flips her right hand (left disabled) backwards (ouch) and stays like that. Across all arm movements.


    **Auto Triggers**
    They seem to work but at a delay and at random time intervals. Crashed on me a lot so I gave up on testing them.


    **Didnt Test These Triggers**
    [CONTINUE] [PAUSE] [AUTO_KEYS_ON] [AUTO_KEYS_OFF] [AUTO_KEYS] [HOLD_OFF] Penis variables.
    Did not test triggers and the Pen variables as I dont know what they mean or how to write the variables.


    **Other Triggers**
    All other triggers remaining I tested and they all work


    **Clothes Trigger Workaround**
    Clothes delay trigger we talked about. Just make delay the dialogue itself:

    general:"Hmm... I think I'm going to remove my skirt. Yeah you would like that...[general1]"
    general1:"Yep... you most certainly did!"{"set":{"bottoms":"none"}}

    Instead of having the dialogue and the trigger in the same line, make the dialogue about the action of removing/adding clothes a line before.
     
  20. ModGuy

    ModGuy Club Regular Content Creator

    Joined:
    Feb 17, 2011
    Messages:
    1,754
    Likes Received:
    22
    Re: Pim_gd's Mods(2) - DialogueActions v0.99, VAv1.03 (1 September 2013)

    Your SWF player is awful. Got half a mind to write a wrapper that uses the system ActiveX.
    Anyway, this error isn't firing in the loader, as you can tell by the flash::Main it's within the mod.
    armPositions is a static variable so you don't use "her.armPositions" to reference it, you use the class reference.

    Code:
    var herClass = eDOM.getDefinition("obj.Her");
    herClass.armPositions;
    EDIT:
    ~100 lines for penis scaling. How did that happen.

    EDIT2:

    Code:
    var minLengthScale:Number = (minPenisLength - him.MIN_PENIS_SIZE) * (1 / (him.MAX_PENIS_SIZE - him.MIN_PENIS_SIZE));
    var minWidthScale:Number =  (minPenisLength - him.MIN_PENIS_SIZE) * (1 / (him.MAX_PENIS_SIZE - him.MIN_PENIS_SIZE));
    You're using two vars to store the same value instead of abstracting the arithmetic:

    Code:
    (x - him.MIN_PENIS_SIZE) * (1 / (him.MAX_PENIS_SIZE - him.MIN_PENIS_SIZE));
    Which apparently appears > 10 times in the code.
    Too tired to analyse further, step it uuuuuuuuuuuuuuuuuuuuuuuuuuuuuup.

    EDIT2:

    You could get a good deal of control by implementing a char code loader within the dialogue parser.
    Simply extract out the string and pass it to g.inGameMenu.loadData(dataString);

    EDIT3:
    You could very much manage the loading of mods manually, but the following would be necessary:

    Mod files exist in single character folder or paths are defined within a file.
    Upon deciding on which files to load, push the mods on to l.custMods then call l.loadNext();

    To remove the mods:
    Reset the character, thus invoking the removal of all associated mods (implying loader mods).
    Load some base attributes.

    OR

    After each mod loads, track if loader or vanilla.
    If vanilla, track which elements have been loaded in (top, bottom, head etc) and simply unset them later to remove.
    If loader, track if the mods have been registered for removal by following whatever nonsense data structure I chose to use for that.
    Splice them from that structure so that you gain control of the references, then use those them to remove the elements from their respective parent objects.

    If none of that makes sense, that's fine. I'm majorly confused by it too.
    You'd basically be copying the general idea that sby implemented when writing autohuereg, ask him to translate what I've written to a tangible form.