Pim_gd's Mods - DialogueActions v4.08 (15 Jan 2017) (2 Viewers)

colin

Content Creator
Joined
Apr 11, 2016
Having an issue with the choking line-type in my dialogue... I am using:
choking:"[choked*choke*]"{"style":"thought"}

choked3:"No.Б.Б.Б [COUGH]air.Б.Б.Б vision.Б.Б.Б going black.Б.Б.Б[cho3]"{"style":"thought"}
cho3:"[GAG][KNOCK_OUT]"{"style":"thought","set":{"da.oxygenPercentage":5,"da.breathPercentage":0}}

with the variable choke set earlier with {"set":{"choke":3}}

But for some reason the choking event frequently isn't firing...
I have had it go from 100% oxygen to 0% without ever triggering the choking event. I tested it by changing the line to
choking:"[choked*choke*]test"{"style":"thought"}
so that I could see if the linked event was the problem, but it never displays the test line.

I currently have dialogueActions, deepthroatactions, and dialoguepatchV3 loaded. I removed lines for vigorous and held to be safe and make sure they were not overriding the choking event (is there a list of priorities some where so I can see which events will be most likely to block others?) but it still won't fire that event sometimes.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
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)

hmmmh weird
dunno what causes it
keep in mind you need latest version because there were bugs with it before
I will now go to bed; will check tomorrow for this maybe it's something simple
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
Having an issue with the choking line-type in my dialogue...

actually heres a debug build that will spam messages in green and red for whether choking line type should fire or not

Code:
if (!g.her.passedOut && g.her.passOutFactor != 0 && g.her.mouthFull) {
				m.displayMessageGreen("Choking linetype should fire!");
				if(chokeDialogue){
					g.dialogueControl.buildState("choking", 120);
					resetDialogueClearDelay();
				} else {
					m.displayMessageRed("But you have no choking lines!");
				}
			}

if she's not passed out and has cock in mouth and does not have 100% oxygen
then green messages should pop up like crazy
if you also get red messages
that means something else has gone wrong
mainly it means the linedetection is broken

anyway I'm relying on you to check this and tell me what you see, nothing, green, green and red, or just red (O_o)
 

Attachments

SDTDialogueActions.swf
146.1 KB · Views: 186

colin

Content Creator
Joined
Apr 11, 2016
I think it must have been something else trying to fire at the same time... I re-wrote the dialogue so that each line-type could only fire at specific progression levels and it seems to be working now. I think I have the old version there as well, so I will try running it with that and let you know. Thank you for the response :-)

Edit: Well, that's irritating... I apparently don't have a backup of that version... Sorry for the trouble, I will make sure to use the version you linked and supply the results if it happens again.
 
Last edited:

colin

Content Creator
Joined
Apr 11, 2016
Final Edit: I believe I have it basically implemented now. I will be posting it in my own thread.

Original Post:
How difficult would it be to ADD more auto modes? Particularly modes that press her as far as she can currently go, hold at the current position, or hold at a specified depth (ATTEMPTED depth, I understand you can not go past the point that she would go to if auto was off and your mouse was on the right side of the screen)? I am more than willing to attempt this myself, but my knowledge of AS3 is pretty basic at this point, so I would need some advice on modifying modules that had already been compiled.

Thank you for any help you can give, and feel free to tell me that doing it, or informing me how to do it, would both be more trouble than you think it would be worth, lol.

Edit: Started to try working on a hack version the proxies the automaticControl.getPos() function and triggers.
Further edit: Figured out how to use the getAPI result. For those who may have the same problem as me, Here is what I had, followed by my fix:
Having some problems with registering a trigger though: I am being told by the debugger that a value is not a function. My code so far:
package
{
import flash.events.*;
import flash.display.Loader;
import com.adobe.images.*;
import flash.display.*;
import flash.filters.*;
import flash.geom.*;
import flash.net.*;
import flash.ui.*;
import flash.utils.*;
import obj.*;
import obj.animation.*;
import obj.dialogue.*;
import obj.ui.*;

public dynamic class DialogueAuto extends flash.display.MovieClip
{
private var customAutoModes:Array;
public var main;
public var lProxie:Class;
public var lp;
public var dialogueAPI;
public function DialogueAuto(){
}

public function initl(l):void {
main = l;
dialogueAPI = l.getAPI("DialogueActions");
if (dialogueAPI == null){
l.updateStatus("Failed");
l.unloadMod();
} else {
l.updateStatus("Success");
}
//lProxie = l.getLoaderClass("Modules.lProxy");
dialogueAPI["registerTrigger"]("TRIAL_TRIGGER", 0, trialTrigger, this, null);
l.registerUnloadFunction(finish);
l.unloadMod();
}

public function finish(){
// lProxy.restoreProxies(force = true);
}

private function trialTrigger(e:*):void{
main.updateStatus("test");
}
}

}
when I comment out
dialogueAPI["registerTrigger"]("TRIAL_TRIGGER", 0, trialTrigger, this, null);
the error goes away, the error widow I get is:
TypeError: Error #1006: value is not a function.
at DialogueAuto/initl()
at Loader_fla::MainTimeline/prepLoaderMod()
at Loader_fla::MainTimeline/modDataLoadingComplete()
Any idea why?
It was fixed by using the following code:
public var register:Function;
dialogueAPI = l.getAPI("DialogueActions");
if (dialogueAPI == null)
return false;
register = dialogueAPI["registerTrigger"].getFunction();
register("CUSTOM_AUTO", 3, customTrigger, this, []);
So you need to assign the result of the getFunction call to a variable to use it.
I assume
dialogueAPI["registerTrigger"].getFunction()("CUSTOM_AUTO", 3, customTrigger, this, []);
would also work, but I have not tested it yet, and it would be easier to just assign the function to a variable if you wanted to register multiple triggers anyways.)
 
Last edited:

DrZombi

Content Creator
Joined
Jul 10, 2016
Hi everybody,

I've just added some functionalities to DialogueActions and so I wanted to share them with the community.
They consists of Triggers to tick/untick the Tongue option (copied from Colin's Mod)
A trigger to set the Resistance of the girl, which is impossible with a regular load charcode (copied from Colin's Mod)
A trigger to show/hide the Left Arm of the guy

For more details about the whys and the hows, please read the complete post outside of this intro spoiler :)

The complete story of my useless life: (Ah ah)

I've been stuck lately with 2 problems that I wasn't able to solve by myself and which I related in this thread:
How to change the position of his arm...
Since nobody seemed able to give me an answer, and because I did not want to bother mod creators for such little things, I searched deeper in the forum and began to try & learn how to create my own mod for the loader. Unfortunately, I'm a total noob in Flash and Action Script but I have a generic knowledge of code and this is enough for me to understand basic lines of codes which are not related to Frames and other graphical things of Flash.

From that and a magnificient post that I did not put in my bookmarks and cannot retrieve and link now '-_- (which described every variable of the game found by datamining), I managed to create some code but despite a lot of trys and retrys, I have never been able to export it to a working .swf of my own. There must be some files or a specific folder structure that I am not able to reproduce and did not find any tutorial about this.

Anyway, as I was about to abandon all hope and get a life, I remembered that you guys did post all the source files of DialogueActions here and so I found that by modifying your sources to just add the functions I made, I was then able to rebuild the whole project (with your 49 Warnings :p (or did I made a mistake?)). I got a DialogueActions.swf and... It works perfectly for what I have seen until now :)

And so, here is the real beginning of this post (yeah, I know...). Since I added some little extras to DialogueActions which work, I wanted to share them with you and all the SDT community. First of all I'd like to thank you for leaving your sources accessible. I learned a lot by reading them and saved a lot of time ! Before I give the details of what I've added, I'd like to point out that 2/3 of them are just the work of Colin that I copied/adapted. His Custom Automation Mod can be found here for those who may not know about it yet:
Colin's Loader Mods
His work on extending DialogueActions is very impressive but unfortunately, when loading his mod I had a strange grab-bug on the [AUTO_SELF] mode which I need to keep as it is in the current version of Dialogue Actions. That's why I copied part of his work instead of just load his mod. But I don't want anybody to think that I've stolen his code or that I'm trying to pretend that I have upgraded DialogueActions in the back of Pim_gd and WeeWillie when in fact I just modified it to suit my needs and just want to share this with everyone who could benefit from it too. If this is problematic, just tell me :)
So, all credit for this goes to Colin and here are the triggers that I added:

[TONGUE_ADD] & [TONGUE_REMOVE]: Ticks or Unticks the Tongue Option (can be necessary because the tongue tends to bug some times so I find it useful to automatically "reboot" it at the beginning of my dialogue :) ). This code is totally stolen from Colin's Mod :)

[UPDATE_RESISTANCE_<0-100>]: A way to get around the SDT bug which does not permit anyone to modify the resistance value outside of the GUI (Pim_gd's Advanced Dialogue Guide (v1.01 - updated 10 December 2013)). Note that you'll still need to put a [RESET_RESIST] after it if you want to... Reset the Resistance of the girl :)
This code is also adapted from Colin's Mode

[HIDE_HIS_LEFT_ARM] & [SHOW_HIS_LEFT_ARM]: Let you Show/Hide the left arm of the guy which you may want or not depending on your dialogue. This is my code ! Yeah ! :p

I know these are pretty little additions to DialogueActions, but I am writing my dialogues as character folders because I want people to be able to enjoy them by just launching them and I don't want them to have to bother reading technical guides to know which checkboxes need to be checked for each dialogue in order for them to run smoothly. I prefer taking care of it myself in my dialogue file and so, for me these are great additions !

I've named my file DialogueActionsv4.03.swf but of course, this is not an official release and I'll let Pim_gd and Weewillie decide if they want to include my modifications in an official release or not. (Or maybe teach me how to put them in my own separate mod if they'd rather not include this).

Please note that DialogueChecker is not aware of those triggers and will pop you major errors of non-existing lines.
I myself updated my syntax color notepad++ file accordingly: A Little help for new Dialogue Writers
Finally, you'll find useful that the Triggers that I copied from Colin's Mod do not have the exact same name, so that the 2 Mods should still be able to interact with no problems, and the dialogues which already used his functionalities do not have to be modified)

For normal readers, this is the end of my post, you have earned it ! :)

For Pim_gd Pim_gd and @WeeWillie, I'll put the technical stuff here:

For the sack of helping you maintaining your code, please find here the exact lines that I've added, in addition to the modified .as files posted with the message (which I had t rename .txt to be able to upload).

Here is what I've added to TongueTriggers.as:
Code:
// Added by DrZombi 08/12/16
t.registerTrigger("TONGUE_ADD", 0, new FunctionObject(tongueAdd, this, []));
t.registerTrigger("TONGUE_REMOVE", 0, new FunctionObject(tongueRemove, this, []));

...

// Added by DrZombi 08/12/16
// Code totally stolen from Colin's CustomAutomation Mod (All credit goes to him)
public function tongueAdd(...args):void {
      g.tongue = true;
      g.her.tongueToggled();
      g.inGameMenu.updateCBTongue();
}
      
// Added by DrZombi 08/12/16
// Code totally stolen from Colin's CustomAutomation Mod (All credit goes to him)
public function tongueRemove(...args):void {
      g.tongue = false;
      g.her.tongueToggled();
      g.inGameMenu.updateCBTongue();
}

Here is what I've added to HerTriggers.as:
Code:
// Added by DrZombi 08/12/16
t.registerTrigger("UPDATE_RESISTANCE", 1, new FunctionObject(UpdateRes, this, []));

...

// Added by DrZombi 08/12/16
// Code totally stolen from Colin's CustomAutomation Mod (All credit goes to him)
private function UpdateRes(...args):void {

var x:Number = Number(args[0]);
     if (x < 0)
         x = 0;
     else if (x > 100)
         x = 100;

     g.her.setIntroResistance(x);
     g.inGameMenu.updateResistanceSlider(false);
}

Here is what I've added to HimTriggers.as:
Code:
// Added by DrZombi 08/12/16
t.registerTrigger("HIDE_HIS_LEFT_ARM", 0, new FunctionObject(hideHisLeftArm, this, []));
t.registerTrigger("SHOW_HIS_LEFT_ARM", 0, new FunctionObject(showHisLeftArm, this, []));

...

// Added by DrZombi 08/12/16
public function hideHisLeftArm(...args):void {
      if(g.him.visible){
            g.him.leftArmContainer.visible = false;
      }
}

// Added by DrZombi 08/12/16
public function showHisLeftArm(...args):void {
      if(g.him.visible){
            g.him.leftArmContainer.visible = true;
      }
}
Okay guys, that's an horribly long post but I hope that it will be useful to some of you, and that you won't kill me for having modified the holy DialogueActions Mod without it's creators permission :)
 

Attachments

SDTDialogueActionsv4.03.swf
146.6 KB · Views: 201

HerTriggers.txt
13.3 KB · Views: 175

HimTriggers.txt
2.1 KB · Views: 174

TongueTriggers.txt
1.2 KB · Views: 169

Last edited:

aztlan

Casual Client
Joined
Sep 14, 2013
DrZombi:

There's a hack in the Loader which allows his left hand to grab her head. (Last page "Arm" button in the lower left - needs to be used with "Hide" his left arm.) You should consider combining a trigger for this too along with your DA 4.03... it would go well with it. Of course being able to have even greater flexibility in positioning the left arm in Animtools would be even better....

A text file with instructions for mod writers on how to use the new triggers (just listing them and briefly what they do and any special instructions) would be handy so that one can look back at them and figure out how to use them...
 
Last edited:

DrZombi

Content Creator
Joined
Jul 10, 2016
Hi aztlan,

Thanks for your comments :)

DrZombi:

There's a hack in the Loader which allows his left hand to grab her head. (Last page "Arm" button in the lower left - needs to be used with "Hide" his left arm.) You should consider combining a trigger for this too along with your DA 4.03...

Oh ! I had totally forgotten about this hidden left arm grabbing ! Thanks. But concerning "my" DA 4.03, if you read my post carefully, you've seen that I'm not really comfortable with the idea of modifying the original work of Pim_gd and WeeWillie without express permission. So before I even think about adding anything, I'll wait to see what are the reactions on this post. But I'll keep the idea aside :)

Of course being able to have even greater flexibility in positioning the left arm in Animtools would be even better....

I am a total noob with Flash. I made this little triggers because they are only simple Action Script variable setting. I would have to learn a lot more things on Flash and SDT before I can create movements not included in the game !

A text file with instructions for mod writers on how to use the new triggers (just listing them and briefly what they do and any special instructions) would be handy so that one can look back at them and figure out how to use them...

Well that's exactly what I did in this post in the orange parts didn't I ? You can just copy-paste the content in your .txt file. Of course I'm sure that Pim_gd or WeeWillie will update their .txt that go along with DA if they decide to keep my triggers in the official release of DA.
 
Last edited:

DrZombi

Content Creator
Joined
Jul 10, 2016
Hi again,

I finally could not restrain myself from adding two other triggers :)
The same things still apply to this post: If Pim_gd and WeeWillie do not want those modifications, they can just tell me and forget that. If they want to keep them, I'll be very happy to have contributed. So here is my Dialogue Actions 4.04 new triggers:

[TOGGLE_LOADER_ARM_ON] & [TOGGLE_LOADER_ARM_OFF]: requested by A aztlan , a convenient way for dialogue writers to show or hide the Loader Hacked Arm. (It's the Left Arm enabled in the Loader page which can grab her head too). Please note that showing or hiding the Loader Arm will not automatically hide or show the normal left arm. They are totally independents.

[TOGGLE_NIPPLES_ON] & [TOGGLE_NIPPLES_OFF]: The triggers allow the dialogue writer to simulate a click on the Nipple button which is added by sby's allalphaslidersV5.swf. If you don't know, it is this button:
Nipple_Button.png
This gives you the ability to hide the nipples which can be drawn over the clothes sometimes, and especially if you use custom nipple mods.
But be aware that changing clothes will redraw the girl and the nipples may re-appear. You can try this behavior via the GUI if you wanna see what I'm talking about... So you may have to use these triggers after each da.charcode.load if you use custom nipples. But hey ! You've got a trigger for this now :)
For this one, the credit goes to sby, because thanks to him I did not have to dig into the game variables to find out how to show/hide the nipples :)

You'll find those new triggers in the SDTDialogueActionsv4.04.swf below but remember that DialogueChecker is not aware of those triggers for now :)

And for Pim_gd Pim_gd and @WeeWillie, here are the technical details of what I've Added:
Here is what I've added to HimTriggers.as:
Code:
// Added by DrZombi 08/13/16
t.registerTrigger("TOGGLE_LOADER_ARM", 1, new FunctionObject(toggleLoaderArm, this, []));
...
// Added by DrZombi 08/13/16
public function toggleLoaderArm(...args):void {
      
      var toggleStateWanted:String = String(args[0]);
      
      if(toggleStateWanted == "ON" || toggleStateWanted == "OFF") {
            m.toggleLoaderArm(toggleStateWanted);
      }
}

Here is what I've added to HerTriggers.as:
Code:
// Added by DrZombi 08/13/16
t.registerTrigger("TOGGLE_NIPPLES", 1, new FunctionObject(toggleNipples, this, []));
...
// Added by DrZombi 08/13/16
public function toggleNipples(...args):void {
      
      var toggleStateWanted:String = String(args[0]);
      
      if(toggleStateWanted == "ON" || toggleStateWanted == "OFF") {
            m.toggleNipples(toggleStateWanted);
       }
}

Here is what I've added to Main.as:
Code:
// Added by DrZombi 08/13/16
public function toggleLoaderArm(toggle:String):void {
      
      var osef:Number = 1;
      
       if ((main.aMC.visible && toggle == "OFF") || (!main.aMC.visible && toggle == "ON")) {
             main.toggleArm(osef);
       }      
}
  
// Added by DrZombi 08/13/16
public function toggleNipples(toggle:String):void {
      
       var visibles:Boolean = (main.her.torsoBack.leftBreast.nipple.visible || main.her.torso.midLayer.rightBreast.nipple.visible);
      
       if ((visibles && toggle == "OFF") || (!visibles && toggle == "ON")) {
             main.her.torsoBack.leftBreast.nipple.visible = !main.her.torsoBack.leftBreast.nipple.visible;
             main.her.torso.midLayer.rightBreast.nipple.visible = !main.her.torso.midLayer.rightBreast.nipple.visible;
        }      
}
 

Attachments

Main.txt
17.4 KB · Views: 136

HimTriggers.txt
2.4 KB · Views: 154

HerTriggers.txt
13.7 KB · Views: 163

SDTDialogueActionsv4.04.swf
147.1 KB · Views: 159

Last edited:

aztlan

Casual Client
Joined
Sep 14, 2013
Thanks!

I am a total noob with Flash. I made this little triggers because they are only simple Action Script variable setting. I would have to learn a lot more things on Flash and SDT before I can create movements not included in the game !

I should have been clear that (assuming you did in fact enable His left arm to be seen grabbing her head via DialogueAction), then I thought the next step might might be for sby to add to the ability to control its location via Animtools, not that altering it's position would be done via DA.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
August 22, 2016
Introducing v4.03 of DialogueActions!
- 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.
Link in OP. Alternatively, get the latest version from the downloads page of the BitBucket repo.

Someone poked me with a stick that mod loading doesn't work properly, so I fixed it... I guess. This change might break existing dialogues using [LOAD_MOD] that have "somehow" hacked it together, but I believe it should work better than before. I mean, you now put the mod files in the same directory as the backgrounds and the hairs and the actual dialogue itself, so that's a lot better.

DrZombi DrZombi You'd be better off using the modding API to add this functionality - I could also just directly add your changes to the source, but this is not really preferred for me as I don't spend a whole lot of time on here and it could literally be weeks between you wanting to make a change and me adding it in. Use of the API is explained in the documentation, Api.txt, it should explain most of the things. Alternatively, take a look at the source of Colin's mod, he seems to be using the API just fine. Like that, you could add your own functions.
 
Last edited:

DrZombi

Content Creator
Joined
Jul 10, 2016
DrZombi DrZombi You'd be better off using the modding API to add this functionality - I could also just directly add your changes to the source, but this is not really preferred for me as I don't spend a whole lot of time on here and it could literally be weeks between you wanting to make a change and me adding it in. Use of the API is explained in the documentation, Api.txt, it should explain most of the things. Alternatively, take a look at the source of Colin's mod, he seems to be using the API just fine. Like that, you could add your own functions.

Yep, that's what I wanted to do from the beginning, write my own mod or API extension for DA, but I never figured out how to generate a working .swf. The only way I managed to produce some working code is to get the source code of DA and click "build". When writing a .as from scratch I always end up with something that is not able to be run by SDT and I don't know why since I'm no flash developer at all. Maybe I don't have the good file/folder structure, or I miss some files, I don't know. So yes, I went the easy way. I guess I could have another try though...

In the meantime, I did not post it, but I had to add a [LOAD_CHARCODE3] to DA because none of the 2 previous ones were suitable for my needs. My LOAD_CHARCODE3 is the LOAD_CHARCODE2 without adding the data of the character already present. I just removed the:
g.inGameMenu.getSaveDataString()+";"+

Could you please add it to the regular DA ? I may not be the only one here who needs a trigger to just load a charcode the exact same way that SDT would do it if you just copy/paste the charcode in the GUI.

Complete code here:

Code:
public function registerTriggers(t:TriggerManager):void {
      t.registerTrigger("LOAD_CHARCODE", 0, new FunctionObject(loadCharCode, this, []));
      t.registerTrigger("LOAD_CHARCODE2", 0, new FunctionObject(loadCharCode2, this, []));
      t.registerTrigger("LOAD_CHARCODE3", 0, new FunctionObject(loadCharCode3, this, []));
}

public function onLineChange(...args):void {
      if (g.dialogueControl.sayingPhrase.indexOf("[LOAD_CHARCODE]") == -1 
      && g.dialogueControl.sayingPhrase.indexOf("[LOAD_CHARCODE2]") == -1
      && g.dialogueControl.sayingPhrase.indexOf("[LOAD_CHARCODE3]") == -1) {
          loadCharCode();
      }
      hasLineListener = false;
}

public function loadCharCode3(...args):void{
      if (charCodeToLoad != null) {
          g.inGameMenu.loadData(charCodeToLoad);
      } else {
          if (!hasLineListener) {
              m.displayMessageRed("No charcode set for loading. (Error: [LOAD_CHARCODE3] without da.charcode.load set)");
          }
      }
     charCodeToLoad = null;
}

Thanks for your answer anyway, I'm sorry that my additions do not suit you but I don't understand why you say:

it could literally be weeks between you wanting to make a change and me adding it in.

I did not asked you to "make" a change. I did it myself and posted the new DA.swf and the modified .as + plain text source code for easy integration. But I can understand that you prefer to keep the DA development under control.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
In the meantime, I did not post it, but I had to add a [LOAD_CHARCODE3] to DA because none of the 2 previous ones were suitable for my needs. My LOAD_CHARCODE3 is the LOAD_CHARCODE2 without adding the data of the character already present. I just removed the:
g.inGameMenu.getSaveDataString()+";"+

Could you please add it to the regular DA ? I may not be the only one here who needs a trigger to just load a charcode the exact same way that SDT would do it if you just copy/paste the charcode in the GUI.

Complete code here:

Code:
public function registerTriggers(t:TriggerManager):void {
      t.registerTrigger("LOAD_CHARCODE", 0, new FunctionObject(loadCharCode, this, []));
      t.registerTrigger("LOAD_CHARCODE2", 0, new FunctionObject(loadCharCode2, this, []));
      t.registerTrigger("LOAD_CHARCODE3", 0, new FunctionObject(loadCharCode3, this, []));
}

public function onLineChange(...args):void {
      if (g.dialogueControl.sayingPhrase.indexOf("[LOAD_CHARCODE]") == -1
      && g.dialogueControl.sayingPhrase.indexOf("[LOAD_CHARCODE2]") == -1
      && g.dialogueControl.sayingPhrase.indexOf("[LOAD_CHARCODE3]") == -1) {
          loadCharCode();
      }
      hasLineListener = false;
}

public function loadCharCode3(...args):void{
      if (charCodeToLoad != null) {
          g.inGameMenu.loadData(charCodeToLoad);
      } else {
          if (!hasLineListener) {
              m.displayMessageRed("No charcode set for loading. (Error: [LOAD_CHARCODE3] without da.charcode.load set)");
          }
      }
     charCodeToLoad = null;
}

Thanks for your answer anyway, I'm sorry that my additions do not suit you but I don't understand why you say:

it could literally be weeks between you wanting to make a change and me adding it in.

I did not asked you to "make" a change. I did it myself and posted the new DA.swf and the modified .as + plain text source code for easy integration. But I can understand that you prefer to keep the DA development under control.

In the meantime, if you could just add the [LOAD_CHARCODE3] to DialogueActions. (pleaaaaaaaase). I'm not sure that I can do it in my own mod since this function is really linked to the core of DA because of the LineListeners, etc... (or that's how I understood it). So I think it really belongs to the original Mod.
I could of course continue to pick your sources at each release of DA and re-add the code like I did today with your 4.03 but that would be a pain in the ass to re-do it for each release and I really think that I am not the only one who's in need of an absolute "just paste my untouched charcode in the GUI and GO".

In case you don't know what the fuck I am talking about, this is what I asked you in my last post here:
Pim_gd's Mods - DialogueActions v4.03 (22 Aug 2016)

Uhhh... you can literally make this yourself as an API? Just... use a different variable for the charcode loading. Maybe "charcode.load".

Keep in mind that loading partial charcodes into the GUI will make the following changes:
She'll be stripped of all clothing (except cuffs and glasses?)
Her tan will be reset
Her ears will reset to default
Her nose will reset to default
Her eyebrows will reset to default
Mods may unload
Custom background will unload

It's the last two that REALLY bother people.
I tried looking to see if there's any old rationale to my implementation, and I found it:

Re: Pim_gd's Mods(2) - DialogueActions v1.11, VAv1.08 (1 December 2013)
December 1, 2013
Introducing v1.11 of DialogueActions!
- Added loadDialogue as variable. Write only, this variable can be set to instantaneously load a dialogue with the given name. uses "Mods/"+lastLoadedCharacterFolder+"/"+loadDialogueVariableValue.
- Changed how loadCharCode works internally - it now uses decompiled code from SDT to parse the char code, and applies the charcode. This should fix the background disappearing, but it might introduce different issues. We'll see.

Re: Pim_gd's Mods(2) - DialogueActions v1.09, VAv1.05 (15 November 2013)
I don't know if this is required behavior or if this is something that can be fixed... but when you change a charcode the background also changes.

Anyway, the behavior you're requesting has issues, I don't see why you'd want to do what you'd want to do, I hate the idea of adding [LOAD_CHARCODE3] because it doesn't make sense from a naming perspective, better would be to rename them all, [LOAD_PARTIAL_CHARCODE_FILL_BLANKS_VIA_DA], [LOAD_PARTIAL_CHARCODE_FILL_BLANKS_VIA_SDT], [LOAD_FULL_CHARCODE]

As you see, I don't understand why you need what you're asking for. If you want to load a partial charcode, you can choose to let SDT fill in the blanks or to let DA fill in the blanks. If you want to load a full charcode, you should be able to use either without any problems. If you can show me a use-case where you want to achieve a certain behavior, and neither of these two functions will do what you want to achieve then I'll reconsider, but right now, I just... really don't see the point?

As for keeping the source under control - it's more a code quality thing than wanting to be protective. And yes, "a change" consists of me having to commit something. Even if it's copy pasta, I still gotta test it.
 

DrZombi

Content Creator
Joined
Jul 10, 2016
Uhhh... you can literally make this yourself as an API? Just... use a different variable for the charcode loading. Maybe "charcode.load".

Well that's what I did for every other trigger I created, but this one, I don't know how to do it because of the
Code:
public function onLineChange(...args):void {
      if (g.dialogueControl.sayingPhrase.indexOf("[LOAD_CHARCODE]") == -1
      && g.dialogueControl.sayingPhrase.indexOf("[LOAD_CHARCODE2]") == -1
      && g.dialogueControl.sayingPhrase.indexOf("[LOAD_CHARCODE3]") == -1) {
          loadCharCode();
      }
      hasLineListener = false;
}

I can't figure out how to implement this through an API and access the hasLineListener used by the parser. I find it really easier and much more logical to just integrate a LOAD_CHARCODE3 directly to DA, alongside the 2 other ones.

Keep in mind that loading partial charcodes into the GUI will make the following changes:
She'll be stripped of all clothing (except cuffs and glasses?)
Her tan will be reset
Her ears will reset to default
Her nose will reset to default
Her eyebrows will reset to default
Mods may unload
Custom background will unload

It's the last two that REALLY bother people.
I tried looking to see if there's any old rationale to my implementation, and I found it:

I find this very strange because this not at all what I've been experiencing myself. When I paste a partial charcode in the GUI and load it, it just adds what I ask for and I have not seen those problems at all, but I'll go further on this below...

Anyway, the behavior you're requesting has issues, I don't see why you'd want to do what you'd want to do, I hate the idea of adding [LOAD_CHARCODE3] because it doesn't make sense from a naming perspective, better would be to rename them all, [LOAD_PARTIAL_CHARCODE_FILL_BLANKS_VIA_DA], [LOAD_PARTIAL_CHARCODE_FILL_BLANKS_VIA_SDT], [LOAD_FULL_CHARCODE]

As you see, I don't understand why you need what you're asking for. If you want to load a partial charcode, you can choose to let SDT fill in the blanks or to let DA fill in the blanks. If you want to load a full charcode, you should be able to use either without any problems. If you can show me a use-case where you want to achieve a certain behavior, and neither of these two functions will do what you want to achieve then I'll reconsider, but right now, I just... really don't see the point?

Ok, I'll go with the full story & screenshots then, I hope you'll see better why I need it :)

So, alongside my own dialogues, I want to provide people who will download my pre-packaged loader with some dialogues written by other people. Dialogues that I really love and which inspired and helped me when learning to write my own. And because I do love those dialogues, I wanted to make them directly avaible without people having to bother for 10 minutes settings session each time and I also revamped them a little with all the new functionalities and clothes & mods now available to make them look even better (IMHO). You probably know f93's Shape-Shifting Succubus dialogue, which is famous for having made a good use of the interrupt dialogue trick. Well, at first I was just using the regular LOAD_CHARCODE, and then I had my first girl with background and everything OK:

LOAD_CHARCODE_1_1.png

But everything's good because that first girl has been almost not revamped at all and mainly use vanilla clothes. When I load the succubus with LOAD_CHARCODE, I miss a lot of things that I added through MoreClothing like the whip, the hooves, the tail, the fangs:

LOAD_CHARCODE_1_2.png

And when I load the sister, same problem, I miss the university jacket which should be overtop:

LOAD_CHARCODE_1_3.png

So OK, I'm fine with this, I'll give a try to LOAD_CHARCODE2. And when loading the succubus, everything's perfect for the girl but you'll note that the background is fucked up:

LOAD_CHARCODE_2_1.png

But then, when I want to switch to another girl, things go real bad for the sister as she keeps the fangs, whip, tail & hooves like a drunk succubus:

LOAD_CHARCODE_2_2.png

I was very surprised because when I was trying & saving the charcodes for the different girls, I was always switching from one girl to another by loading the charcode in the GUI and I had none of these problems. But when I had a look at the code of LOAD_CHARCODE2, I understood that by adding the actual character charcode to the new one, things are a little bit messed up... So I wanted to give a try to a pure GUI charcode loading and added LOAD_CHARCODE3.

As you can see, the succubus still loads well and the background is not fucked up:

LOAD_CHARCODE_3_1.png

And when switching to the sister, I'm still good:

LOAD_CHARCODE_3_2.png

That's why I thought that the pure GUI LOAD_CHARCODE3 could be useful to other people, because it has really been for me and this particular use-case. The only problem I had with LOAD_CHARCODE 2&3 is that it kills the current dialogue lines queue, exactly like the LOAD_MOD trigger, and so you cannot just chain the transformation to another line of dialogue and have to rely on intro lines to get back on your feet.

As for keeping the source under control - it's more a code quality thing than wanting to be protective. And yes, "a change" consists of me having to commit something. Even if it's copy pasta, I still gotta test it.

I've tested it myself already, and I hope that this story+screenshot will convince you that it is a function which could bring an improvement to some dialogue writers. As I said before, I'd be happy to just include it in my own mod, but I really don't know how to do this since it has to be integrated in your line parser to get the charcode, use the LineListener, etc...
If you want my modified version of Shape-Shifting Succubus to test it by yourself, just tell me and I'll post an early version of my pre-packaged loader (because without the moreclothing mods all setted it would be a pain for you to recreate the environment).
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
I will implement it as [LOAD_FULL_CHARCODE]. The intention is that you're loading a full character code and do not need anyone to fill in the blanks.
 

DrZombi

Content Creator
Joined
Jul 10, 2016
Well, I'm still not sure about why you keep talking of FULL Charcodes because I've loaded plenty of partial charcode through the GUI or this method with no other problem than those which could appear with a full charcode, and the charcodes I use for the Shape-Shifting Succubus are not strictly full since I dropped the bg:1 intentionally and even some other parts which are not set for none of the girls for example.

But anyway, I've had a glance at the code AND I tested this new SWF and everything works as expected as far as I'm concerned so thank you very much. I hope that I won't have to bother you too much from now on ;)
Just don't forget to update DialogueChecker as well ;)
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
I don't fully understand what the loading of charcode does in that way as is, but I'll leave it like LOAD_FULL_CHARCODE. Recommended usage is for loading full charcodes. Partial charcodes may act in weird ways.
 

Pim_gd

Content Creator
Joined
Jan 25, 2013
August 25, 2016
Introducing v4.04 of DialogueActions!
- 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.
Link in OP. Alternatively, get the latest version from the downloads page of the BitBucket repo.

I also did some code cleaning, but it's a small release.
 

sby

Content Creator
Coder
Joined
Sep 11, 2012
probably was some weird things caused by how moreclothing does stuff from the body menus.
when it gets passed a charcode, it clears all things from the body menus, then toggles the things on that are listed as moreclothing body. interesting stuff happens if you tack on additonal moreclothingbody entries, as you can essentially then toggle off items.

i was thinking of adding some way of clearing all body types using the partial charcode thingy of DA, just wasn't sure how DA ends up tweaking the charcode.
there is actually a body type of 'none' that could exist very easily to clear all the body mods, i just might have to do extra stuff depending on how DA tweaks the code. if somebody happens to know what the charcode looks like after DA touches it, holla.
 

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.