Colin's Loader Mods

DrZombi

Content Creator
Joined
Jul 10, 2016
Location
France
Hi Colin,

Since Pim_gd did not want to add my modifications into the Official DA release, I think that I'll have to build my own extension, just like yours.
But as I am not a flash/as3 developer, I am unable to build a working .swf when building a new project from scratch. Could you please help me (and maybe others) transform your own mod into a starting template ?

Because I tried to create a new as3 project in FlashDevelop and adding your mod into it but it just won't build. (Yep, the file is in the src folder which is in the classpath, and yes, the Flash SDK is referenced). There may be some things missing but I just don't know what.

The errors I get when trying to build your file are similirar to those ones:

Error: Call to a possibly undefined method createProxy.
lp2 = lProxy.createProxy(g, "setAuto");


So the builder does not know those methods, which is probably normal if the needed classes are not imported. So going to the next errors:

Error: Definition com.adobe.images could not be found.
import com.adobe.images.*;

Ok so here is a first package which cannot be imported. By searching a bit I found that it comes from another project, the AS3CoreLib: Google Code Archive - Long-term storage for Google Code Project Hosting.
But I did not find in your code where you do utilize those classes, maybe I won't need them ?

And then, I finally get those errors:

Error: Definition obj could not be found.
import obj.*;
Error: Definition obj.animation could not be found.
import obj.animation.*;
Error: Definition obj.dialogue could not be found.
import obj.dialogue.*;
Error: Definition obj.ui could not be found.
import obj.ui.*;


And for those ones I don't know at all what I am supposed to import. My guess would be that it is classes from the SDT game but I did not find such imports in DialogueActions itself so I'm not really sure. Do I really need those classes ? Why ? And how can I found them and feed them to my project ?

I could probably be able to re-create my triggers in a standalone mod just like yours but I really need a hand to start because I'm totally lost with flash and all the SDT/Loader architecture.

Many thanks in advance if you can take some time to help me and explain how this work :)

EDIT: I found the API.as files in the ModGuy DevExamples. I'm now starting again by mixing his & yours ;)
I think I got the skeleton now, I'll try to re-add my first triggers and let you know. Still many thanks for your work which makes me save a LOOOOOOT of time :)

EDIT-2: I did manage to build a .swf which seems to work (from the first tests I ran). But it works only when I load it myself from the GUI. If I put it in the $INIT$ folder, it just fails to load... Did you encounter the same problem with your mod ? Does DA needs a particular amount of time to load before its API is listening to other Mods ? How did you worked this around ?
 
Last edited:

colin

Content Creator
Joined
Apr 11, 2016
@Recruit
That is VERY strange, I have not had that happen for any combination... Can you post the section of dialogue that is not functioning properly?
 

colin

Content Creator
Joined
Apr 11, 2016
Hi Colin,

Since Pim_gd did not want to add my modifications into the Official DA release, I think that I'll have to build my own extension, just like yours.
But as I am not a flash/as3 developer, I am unable to build a working .swf when building a new project from scratch. Could you please help me (and maybe others) transform your own mod into a starting template ?

Because I tried to create a new as3 project in FlashDevelop and adding your mod into it but it just won't build. (Yep, the file is in the src folder which is in the classpath, and yes, the Flash SDK is referenced). There may be some things missing but I just don't know what.

The errors I get when trying to build your file are similirar to those ones:

Error: Call to a possibly undefined method createProxy.
lp2 = lProxy.createProxy(g, "setAuto");


So the builder does not know those methods, which is probably normal if the needed classes are not imported. So going to the next errors:

Error: Definition com.adobe.images could not be found.
import com.adobe.images.*;

Ok so here is a first package which cannot be imported. By searching a bit I found that it comes from another project, the AS3CoreLib: Google Code Archive - Long-term storage for Google Code Project Hosting.
But I did not find in your code where you do utilize those classes, maybe I won't need them ?

And then, I finally get those errors:

Error: Definition obj could not be found.
import obj.*;
Error: Definition obj.animation could not be found.
import obj.animation.*;
Error: Definition obj.dialogue could not be found.
import obj.dialogue.*;
Error: Definition obj.ui could not be found.
import obj.ui.*;


And for those ones I don't know at all what I am supposed to import. My guess would be that it is classes from the SDT game but I did not find such imports in DialogueActions itself so I'm not really sure. Do I really need those classes ? Why ? And how can I found them and feed them to my project ?

I could probably be able to re-create my triggers in a standalone mod just like yours but I really need a hand to start because I'm totally lost with flash and all the SDT/Loader architecture.

Many thanks in advance if you can take some time to help me and explain how this work :)

EDIT: I found the API.as files in the ModGuy DevExamples. I'm now starting again by mixing his & yours ;)
I think I got the skeleton now, I'll try to re-add my first triggers and let you know. Still many thanks for your work which makes me save a LOOOOOOT of time :)

EDIT-2: I did manage to build a .swf which seems to work (from the first tests I ran). But it works only when I load it myself from the GUI. If I put it in the $INIT$ folder, it just fails to load... Did you encounter the same problem with your mod ? Does DA needs a particular amount of time to load before its API is listening to other Mods ? How did you worked this around ?
First, make sure you modify the Mods.txt file in the $init$ folder, that file is what tells it which files to use.
Second, if you look at the initl(), APINotify(), and doStuff() functions, everything needed to wait for/load the DA functionality is in those two functions. In particular:
in initl():
Code:
var tempDict:Dictionary = new Dictionary();
tempDict["apiRegister"] = function(apiName:String, apiDict:Dictionary) {
       if(apiName == API_DA) doStuff();
}
l.registerAPI("DA_Extension", tempDict, true);
and then APINotify() is called whenever a mod is loaded (I believe).

finally, in doStuff():
{
Code:
dialogueAPI = main.getAPI(API_DA);                   //tries to grab the DA API, if successful dialogueAPI now has the info for using the DA API
addional work done WITH the api:
Code:
if (!DAFound){                                                       //checks if api has already been processed
      if (dialogueAPI == null){                                  //checks if the API is null and ends if it is
           main.updateStatus(DAFound);
           return;
      } else {
           DAFound = true;
           if (!addTriggers()){                                    
               main.updateStatus("Dictionary Load Failed");
               main.unloadMod();
           } else {
               main.updateStatus("CustomAutomation loaded successfully");
           }
           lProxy = main.getLoaderClass("Modules.lProxy");
           lp2 = lProxy.createProxy(g, "setAuto");
           lp2.addPost(stopProxy(), false);
      }
}
}
 

DrZombi

Content Creator
Joined
Jul 10, 2016
Location
France
I finally created a dedicated thread for this error and @stuntcock did find where the problem comes from:
My Mod won't load through $INIT$

For anyone interested in Mod creation, please note that the Lightweight Compiler is far more reliable than Flashdevelop (at least for a newbie flash developer like me).

But there are still things that bother me. Where do your import obj.* come from ? I can't figure out how you are able to call the proxy methods since I can't import those obj classes.
 

Pim_gd

Club Regular
Joined
Jan 25, 2013
DialogueActions:
Code:
var lProxy = main.lDOM.getDefinition("Modules.lProxy");
Colin's mod:
Code:
lProxy = main.getLoaderClass("Modules.lProxy");
Both will work fine. I guess Colin manages to compile against the game. I just use runtime reflection (lDOM = loader application domain - .getDefinition = give me this class)

I think you should just remove the imports for obj.* and all that.
 

Slingerbult

Content Creator
Joined
Sep 15, 2012
Location
Sweden
Hi Colin. I'm experimenting with your automation mod. It causes some problems. I've tried using both [MOVE_TO_BALLS_40] and your example of [POSITION_CUSTOM_tip_80_40] to trigger when she receives cum. The game locks up completely, and I mean completely. Cum stops gushing mid cumming, pleasure and breath meters stop where they are and all you have is a still frame of SDT. Activating auto mode via keyboard sort of moves the action forward frame by frame (by activating and deactivating auto mode).

My idea was to move her to a good position for taking the cum when cumming, and then STOP_CUSTOM in a swallow line to "break" the hold, but right now she is not even assuming the custom position at all, the game freezes up before she gets in place. Ideas?
 

Slingerbult

Content Creator
Joined
Sep 15, 2012
Location
Sweden
Alright, I've been experimenting with this mod and I finally found a trigger set to my satisfaction. My experience is that any triggers that attempt to set fixed positions can risk breaking dialogues, but if you want her to stay put, you can just input the same X arguments in a movement trigger and this works fine. I also found that you need to [AUTO_OFF] after [STOP_CUSTOM] for the game to make sense again.

So my ambition was this: on cumming, a "cum shot cutscene" should ensure where player loses control and she takes the cum in her mouth in a realistic fashion. Importantly, player should regain control once the cumming was completed. I found the best way to ensure this was a timed trigger, since trusting any line types at all to go off under CUSTOM automation proved unreliable. This was my "code":

cum_on_face:"[ARMS_HIS_LEGS][TONGUE_OUT][SET_TEST_0_COUNT_80_g][ACTIVE_TEST_0_on][VALUE_CUSTOM_LINE_stop_TEST_on][X_CUSTOM_head_center_10_10_2_2]" {"style":"Thought"}
stop:"[STOP_CUSTOM][AUTO_OFF]" {"style":"Thought"}

So what does this mean? When a cum strand hits her face, she moves hands to his legs (good failsafe in case of handjob mode which messes with automation). She proceeds to stick her tongue out and then three triggers fire which combine to do the following: trigger the line "stop" when 80 frames time have passed, no matter what. This happens instantaneously, and she then positions her lips on the head of the cock to receive the remaining cum and gently slides down to the middle of it, then slowly back and fourth between head and center of penis until stop is called. 80 frames was a good time for the cum animation to finish. Try it out - it works well for me at least, and looks hot.

My next challenge: How to make her nod with her lips poised on the penis head.
 

colin

Content Creator
Joined
Apr 11, 2016
Interesting.. I have not had that issue at all, the only time it interrupted dialogue was when a line was called through the testing, and that just ran the new line... I have not had it freeze up once.

As far as nodding, using FULL_CUSTOM_TIP_TIP_50_0_100_50 seems to work, since that will keep her at the tip (x motion) and move up and down (y motion). If you want it to go a bit deeper, you can use values instead of tip and you can change the speed to be something other than 50 for faster/slower nodding.
 

Slingerbult

Content Creator
Joined
Sep 15, 2012
Location
Sweden
Thanks for the reply colin! I made the following test code, which I thought was quite raunchy:

all:"CLEAR"

cum_on_face:"[ARMS_HIS_LEGS][TONGUE_OUT][SET_TEST_0_COUNT_110_g][ACTIVE_TEST_0_on][VALUE_CUSTOM_LINE_him1_TEST_on][X_CUSTOM_head_center_10_10_2_2][OPEN_EYES][LOOK_UP]" {"style":"Thought"}
him1:"Is that БcБuБmБ in your mouth? [nod1]" {"style":"Him"}
nod1:"[OPEN_EYES][LOOK_UP][FULL_CUSTOM_head_center_10_30_99_100_10_100][SET_TEST_0_COUNT_40_g][ACTIVE_TEST_0_on][VALUE_CUSTOM_LINE_him2_TEST_on]" {"style":"Thought"}
him2:"[X_CUSTOM_head_center_10_10_2_2]Are you gonna БsБwБaБlБlБoБwБ it? [nod2]" {"style":"Him"}
nod2:"[OPEN_EYES][LOOK_UP][FULL_CUSTOM_head_center_10_30_99_100_10_100][SET_TEST_0_COUNT_40_g][ACTIVE_TEST_0_on][VALUE_CUSTOM_LINE_him3_TEST_on]" {"style":"Thought"}
him3:"[X_CUSTOM_head_center_10_10_2_2][LOOK_UP]Okay, send it БdБoБwБnБ. [doit]" {"style":"Him"}
doit:"[SHOCK][STOP_CUSTOM][AUTO_OFF][SWALLOW]" {"style":"Thought"}

Works like a charm!

QUESTION: If you do an active_test_0_on trigger once, and don't turn it off, do you need to repeat it later as in the spoiler above, or does one time suffice, so that you need only repeat SET_TEST (to start the timer) and VALUE_CUSTOM_LINE (to tell it where to go)?
 

colin

Content Creator
Joined
Apr 11, 2016
The individual tests will not change, only whether testing is turned on switches when complete. So as long as you have not turned off test 0, it will still be set to on, all you have to do is use VALUE_CUSTOM_LINE_<line>_TEST_ON to use it again. When TEST_ON is run, it sets count back to 1 so you would not even have to set the test value again if you wanted the same test.

I need to upload my current version to the repository as well, the version here in this thread adds one more capability: there is an additional optional setting for individual tests that allows you to change values whenever that test is true. For example, you can say when the current max depth is reached, increase speed by 5.
One of the settings for this is a number of times this modification can occur, so you can force it to increase max depth each time max depth is reached, for 7 head bobs for example. So the first time it would go to 40, the second 45 etc till the seventh would be a depth of 70. Combine this with a test for whether current depth > 69 and you can have a specific sequence of events occur where her head moves along the penis 8 times then triggers another line.

Again, the first post in this thread should already have that version (7.1), it is listed as a semi-beta version (second spoiler tag) but I have not found any additional bugs in it at this time.
 

Slingerbult

Content Creator
Joined
Sep 15, 2012
Location
Sweden
Sounds clever! Just simply adding a timer to dialogues alone is an achievement, animations aside. There's just so much you can do with that. I know testing is broader than that, but that's probably the main type of test I'll be using.
 

Slingerbult

Content Creator
Joined
Sep 15, 2012
Location
Sweden
I have done LOTS of more experimentation now with custom animations and I think I know what the problem is: Your animations get interrupted or behave strangely if they interact with default animations such as cumming and licking.

For example, take the humble MOVE_TO_BALLS trigger. Executes properly in most cases, but beware of activating the tongue while she is down there. About 20% of the time, you'll get stuck on a loop where a really short lick interrupts the downward path, causing her head to bob up again, then down, triggering licking animation again etc.

Also try this:
cum_in_mouth:"[MOVE_TO_BALLS_20]" {"style":"Thought"}
It won't work. It's best to put such things in pre_cum because once the cum starts spurting, custom animations get unreliable.

Another thing is non-standard positions. Try INIT_RESIST_BREAK in face fuck mode instead of the standard oral position. She just goes down to about the middle and it gets stuck in the back and forth since nothing ever breaks. It also appears that x-axis words like tip, center etc. only works for quite small penis sizes.
 

colin

Content Creator
Joined
Apr 11, 2016
Hmm... I will have to check out the animations problem you mention, as it did not seem to do that for me... Most of my word position testing, tip etc, was for VERY large sizes, so that seems very odd... I will try it again fairly soon.
 

Slingerbult

Content Creator
Joined
Sep 15, 2012
Location
Sweden
I think I have to revise my theory that build in animations are the problem. I took steps to disable the tongue so that licking would never trigger on MOVE_TO_BALLS... and still sometimes there's a problem (even though the log confirms no lick lines firing). But I can't say what's causing it! Like 90% of the time, it works fine - she goes down balls deep and stays there. But about 10% of the time, she will slowly "bob" back and forth instead. It doesn't look bad, but it's unpredictable and makes it difficult to depend on certain lines firing properly. I also forgot to mention, in case you're testing, that I've had bad experiences with hand job mode and custom automations.

You can check out my latest chapter in the sexy sisters saga where the first half of the blowjob, and the cum shot, is custom automated using your triggers :) I also make use of Zombi's MoreTriggers and TimedTriggers, and Pim's new addition to DA, CUM_BLOCK (to ensure that pre_cum lines actually have time to fire before ejaculation)
 

Acclaim

Content Creator
Joined
Mar 11, 2017
Great mod but clearly not easy to use! :eek::grin:

I think this mod would be perfect if there were a "Master" trigger with these properties:
- It accepts all parameters
- Only the parameters entered are taken into account
- It contains shutdown parameters such as timer and counter (as counter of head movements forward-backward)
- An abbreviation of the parameter can be entered before its value for convenience (ex: [X_CUSTOM_minx-30_maxx-50_xspdw-50_...]. With this abbreviation system, it is possible to enter the parameters in any order.

Hoping that all or part is possible!

06/23 : Done!
 
Last edited:

Acclaim

Content Creator
Joined
Mar 11, 2017
DialogueChecker can now recognize the Custom Automation triggers!

Just add CustomAutomationV7.1DC.json and includes.txt in your SDTDialogueCheckervX.XX.swf folder. If you already have a non-empty includes.txt, add the line CustomAutomationV7.1DC.json after the others.

(v1.1 : N° of version fixed, thanks Pim_gd)
 

Attachments

Last edited:

Manitzer

Potential Patron
Joined
Feb 16, 2020
I know this thread is old, but I recently found this mod and it does exactly what I want. I'm setting up a fully scripted scene. I'm trying to use testing to continue my dialogue to the next line, but the testing never seems to activate the next line... If anyone knows what I could be doing wrong, help is appreciated. For what it's worth, I had to use v7.0 and not v7.1 because in v7.1 the RAMP triggers did not seem to incrementally increase or decrease. Here is my code, I based it off of the "go-deeper" example in the main post:

Code:
begin:"[SET_TEST_0_max_70_ge][ACTIVE_TEST_0_on][RAMP_CUSTOM_10_50_60_60_15_8_12_0_50_50_-10_2_0][VALUE_CUSTOM_LINE_bottom-out_TEST_on]"{"style":"HimCustom"}
bottom-out:"[HOLD_CUSTOM]"{"style":"HimCustom"}
 
Last edited:

Eva-2X

Potential Patron
Joined
Nov 3, 2018
I'm using that mod for quite some times now, and I never contribute, so let's fix this up.
(and yes, 7.0 is less troublesome than 7.1 for some reasons).

go:"[SET_TEST_0_max_70_ge][ACTIVE_TEST_0_on][RAMP_CUSTOM_10_50_60_60_15_8_12_0_50_50_-10_2_0][VALUE_CUSTOM_LINE_bottom_TEST_on]"{"style":"HimCustom"}
bottom:"[HOLD_CUSTOM]"{"style":"HimCustom"}

yeah, that's how easy it was. This kind of [Trigger] doesn't like "yy-xx". Same goes with animtools position calling system.
Oh, and think to trigger an [ACTIVE_TEST_0_off] somewhere in your dialogue to avoid conflict. (just in case).

Aside from that, the function ramp is still a bit glitched. With time, it will delay your timings (for some reasons), thus maybe screwing your timings (for some reasons) so don't expect doing long automated scenes. You have to reload the loader to fix the problem when this happens (that's how annoying it can be).

ie: you set a time of 70 for a ramping; then stop for 20 frames, then repeat the 70 frames of ramping, then stop for 20 frames. Infinite loop.
At first, the loop will work like a charm; but with time, the animation will begin to delay.
ie: The ramp animation starts 40 frames later; instead of instantly. So your loop will play for 30 frames, instead of 70 frames.
If you keep going, by the end, the sequence will be totally screw.

This said, I have made some epic scenes with this mod, just by staying short. Maybe I will share them a day, who knows.

Anyway, I like this mod and this community work. Especially Sby's and Stuntcock's. Sorry for staying in the dark, and for those creators I did not mention and do badass works (Hank, pim_gd, dr.zombi, perdition, tickles,Vornhizzle and more... yeah).
 
Last edited:

Manitzer

Potential Patron
Joined
Feb 16, 2020
I'm using that mod for quite some times now, and I never contribute, so let's fix this up.
(and yes, 7.0 is less troublesome than 7.1 for some reasons).

go:"[SET_TEST_0_max_70_ge][ACTIVE_TEST_0_on][RAMP_CUSTOM_10_50_60_60_15_8_12_0_50_50_-10_2_0][VALUE_CUSTOM_LINE_bottom_TEST_on]"{"style":"HimCustom"}
bottom:"[HOLD_CUSTOM]"{"style":"HimCustom"}

yeah, that's how easy it was. This kind of [Trigger] doesn't like "yy-xx". Same goes with animtools position calling system.
Oh, and think to trigger an [ACTIVE_TEST_0_off] somewhere in your dialogue to avoid conflict. (just in case).

Aside from that, the function ramp is still a bit glitched. With time, it will delay your timings (for some reasons), thus maybe screwing your timings (for some reasons) so don't expect doing long automated scenes. You have to reload the loader to fix the problem when this happens (that's how annoying it can be).

ie: you set a time of 70 for a ramping; then stop for 20 frames, then repeat the 70 frames of ramping, then stop for 20 frames. Infinite loop.
At first, the loop will work like a charm; but with time, the animation will begin to delay.
ie: The ramp animation starts 40 frames later; instead of instantly. So your loop will play for 30 frames, instead of 70 frames.
If you keep going, by the end, the sequence will be totally screw.

This said, I have made some epic scenes with this mod, just by staying short. Maybe I will share them a day, who knows.

Anyway, I like this mod and this community work. Especially Sby's and Stuntcock's. Sorry for staying in the dark, and for those creators I did not mention and do badass works (Hank, pim_gd, dr.zombi, perdition, tickles,Vornhizzle and more... yeah).
Thank you for your reply, but I think the code you gave me is exactly the same as what I had? Unless I am just missing something. I actually ended up switching over to AutoMoveV1 by the guy in the thread above (AutoMove V1) and so far it has been working well, although I just ran into an issue with that one as well. Hopefully it's just user error!
 

Eva-2X

Potential Patron
Joined
Nov 3, 2018
Yes the code is almost the same but this what you missed out:

go:"[SET_TEST_0_max_70_ge][ACTIVE_TEST_0_on][RAMP_CUSTOM_10_50_60_60_15_8_12_0_50_50_-10_2_0][VALUE_CUSTOM_LINE_bottom_TEST_on]"{"style":"HimCustom"}
bottom:"[HOLD_CUSTOM]"{"style":"HimCustom"}

bottom-out became bottom. (and you can use any other word)
bottom-out can be changed into bottom_out, if you want. (and you can use any other words)
but bottom-out, has a "-" and the trigger [VALUE_CUSTOM_LINE_xxx_TEST_on] does not like "-" as previously said.
So just do not use them. ;)

And I started to use automoveV1, way before learning custom automation. And it has its amount of problem and I never understood why they occur (so no workaround).

I think custom automation v7.0 is the most solid for what I do, and I have workaround for everything I need (except long cutscene).
 
Top Bottom