(i'm not english zorry ;D )
hi guys this is my first thread here, be gentle xD
ok, the mod - make her cum (futa) has some problems, or probably just only gives me problems.
the mod work, the only thing that doesn't work it's the cum.
after a few hours trying to solve the cum appared but not in the right position.
her is a screen and the source mod file:
//breast expansion plus v2.1 by sby
//belly movieclip by Dante, the dark prince
import flash.net.URLRequest;
import flash.geom.Point;
import flash.display.MovieClip;
import flash.text.TextField;
import flash.utils.Dictionary;
import flash.events.MouseEvent;
import flash.net.FileReference;
// Members
{
var modSettingsLoader:Class;
var setsettingsfilename = "MakeHerCum_V1.0";
var main;
var g;
var her;
var cMC:MovieClip = new MovieClip();
var mytext:TextField = new TextField;
var mytext2:TextField = new TextField;
var sState:Boolean = false;
var CIMmin:Number = 100;
var CIMmax:Number = 0;
var modActive:int = 1;
var strandr; ////
var madecumstrands:int = 0; ////
var cumgendelay:Number = 0; ////
var cumgenAnchorDelay:Number = 5;
var cumgenDelayAmount:int = 10;
var strandXOffsetFromPenisOrigin:Number = 16;
var strandYOffsetFromPenisOrigin:Number = 0;
var cumgenRandomMassMult:Number = 0.2;
var cumgenMinMassBonus:Number = 0.05;
var showdebuginfo:int=1;
//local reusables
var j:Number = 0;
var tempp:Number;
var tempp2:Number;
var i:Number = 0;
var penisDirection:Point;
var penisAngleRadians:Number=0;
var penisAngleDegrees:Number=0;
var currentSpurtVelocity:Number=0;
var spurting:Boolean=false;
var isCumming:Boolean=false;
//
var mypage;
var debugmenucreated:Boolean = false;
}
// My Members
{
// General cum settings
var averageSpurtDelay:Number=10;
var maxDeviationSpurtDelay:Number=3;
var currentSpurtDelay:Number=0;
var averageSpurtLength:Number=3;
var maxDeviationSpurtLength:Number=1;
var currentSpurtLength:Number=0;
var maxDeviationCumAngle=0;
var currentDeviationCumAngle:Number=0;
var averageSpurtVelocity:Number=30;
var maxDeviationSpurtVelocity:Number=5;
var cumWhenHeCums:Number=1;
var cumWithKey:Number=1;
var cumKey:Number=78;
var timeToCumAfterKeyPress:Number=100;
var currentTimeAfterCumKeyPress:Number=0;
}
/**************************************************************************/
// Init
{
function initl(l) //boiler plate setup, docheck for each frame, options file selected
{
main = l;
g = l.g;
her = l.her;
var msl = new modSettingsLoader(setsettingsfilename,onSettings);
msl.addEventListener("settingsNotFound",onFail);
}
function onSettings(e) //load options file, set variables, repok variables
{
//main.updateStatus("insetting");
tempp = 0;
var dict:Dictionary = e.settings;
for (var key:Object in dict)
{
var val:Object = dict[key];
switch (key)
{
case "statusupdateforthislastline" :
if(val == 1)
{
main.updateStatus("reached end of settings doc,"+tempp+" errors");
}
break;
default :
if ( this.hasOwnProperty( key ) ) //checks if variable exists
{
this[key] = Number(val); //replaces all switch statement variable assignments
//main.updateStatusCol(key + " = "+ val,"#00ff00"); //replaces all switch statement updatestatus notifications, comment line to hide
//main.monitorDebug(key+": ",this,key);
}
else
{
main.updateStatusCol("invalid setting: "+key,"#FF0000"); //displays if there is a setting in the settings file that does not match any variables
tempp++;
}
break;
}
}
initstuff();
main.updateStatus("all settings ran through, "+tempp+" errors");
}
function onFail(e)
{
main.updateStatusCol(e.msg,"#FF0000");
initstuff();
}
function manualCum()
{
currentTimeAfterCumKeyPress = timeToCumAfterKeyPress;
}
function initstuff()
{
// ROZTOOW
// Register key
if(cumWithKey == 1)
{
main.registerFunction(manualCum, cumKey);
}
if(showdebuginfo==1)
{
createdebugmenu();
}
// ROZTOOW
// Modpage menu
mypage = new MovieClip();
var mymodbut1 = new MovieClip();
mymodbut1.graphics.beginFill(0x00FF00);
mymodbut1.graphics.drawRect(0, 0 ,135, 25);
mymodbut1.graphics.endFill();
mymodbut1.x = 0;
mymodbut1.y = 0;
var myText1:TextField = new TextField();
myText1.mouseEnabled = false;
myText1.selectable = false;
myText1.text = "breast expansion 2.1"
myText1.height = 30;
myText1.width = 140;
mymodbut1.addChild(myText1);
mypage.addChild(mymodbut1);
var myatext:Array = new Array("puke");
var mya:Array = new Array(clickHandlerpuke,toggledebug);
var numboxes = mya.length - 1;
for(i = 0; i < 1; i++)
{
for(j = 0; j < 0; j++)
{
var mymodbut2 = new MovieClip();
mymodbut2.graphics.beginFill(0x00FF00);
mymodbut2.graphics.drawRect(0, 0 ,30, 30);
mymodbut2.graphics.endFill();
mymodbut2.x = j*35;
mymodbut2.y = i*35 + 35;
//mymodbut2.width = 30;
//mymodbut2.height = 30;
var myText:TextField = new TextField();
myText.mouseEnabled = false;
myText.selectable = false;
myText.text = myatext[i*4 + j]
myText.height = 30;
myText.width = 30;
mymodbut2.addChild(myText);
mymodbut2.addEventListener(MouseEvent.CLICK,mya[i*4 + j]);
mypage.addChild(mymodbut2);
if(i*4 + j >= numboxes)
{
i=100;
j=100;
}
}
}
main.addPage(mypage,false);
cMC.addEventListener(Event.ENTER_FRAME, doCheck);
main.unloadMod();
main.registerUnloadFunction(doUnload);
}
/**************************************************************************/
function clickHandlerpuke(event:MouseEvent):void {
// ROZTOOW
// Add click event for mod menu button click
}
function toggledebug(event:MouseEvent):void {
if(showdebuginfo == 0)
{
showdebuginfo = 1;
createdebugmenu();
}
else
{
showdebuginfo = 0;
mytext.visible = false;
mytext2.visible = false;
}
}
}
/****************************************************************************/
// Update
{
function doCheck(e) //master function called every frame
{
// Check if we should instantly return
if (!modActive)
return;
if(!g.gamePaused)
{
currentTimeAfterCumKeyPress = Math.max(0, currentTimeAfterCumKeyPress - 1);
cumfrombreastsf();
}
showdebuginfof();
}
// ROZTOOW
function cumfrombreastsf()
{
// Determine wether she is cumming or not
isCumming = (her._penisControl.currentPenisID != 0) && ((cumWhenHeCums && g.him.ejaculating) || (currentTimeAfterCumKeyPress > 0));
if (!isCumming)
{
spurting = false;
return;
}
penisAngleDegrees = -(-90 + g.her.rotation + g.her.torso.rotation + her._penisControl.penisContainer.rotation);
penisAngleDegrees += 10 + currentDeviationCumAngle;
penisAngleRadians = (penisAngleDegrees * 3.14159265359) / 180;
penisDirection = new Point(Math.sin(penisAngleRadians), Math.cos(penisAngleRadians));
// Check if we want to start a new spurt
if (!spurting && currentSpurtDelay == 0)
{
strandr = g.strandControl.newCumStrand(new Point(strandXOffsetFromPenisOrigin, strandYOffsetFromPenisOrigin), her._penisControl.penis);//torso.midLayer.rightBreast.nipple);
strandr.myGravity = g.gravity;
currentSpurtLength = averageSpurtLength + Math.random() * maxDeviationSpurtLength - Math.random() * maxDeviationSpurtLength;
currentSpurtDelay = averageSpurtDelay + Math.random() * maxDeviationSpurtDelay - Math.random() * maxDeviationSpurtDelay;
currentDeviationCumAngle = Math.random() * maxDeviationCumAngle - Math.random() * maxDeviationCumAngle;
currentSpurtVelocity = averageSpurtVelocity + Math.random() * maxDeviationSpurtVelocity - Math.random() * maxDeviationSpurtVelocity;
penisAngleDegrees += currentDeviationCumAngle;
cumgendelay = cumgenAnchorDelay + 1; //need at least 1
spurting = true;
her._penisControl.angSpeed -= 1.5;
}
// Check if we are spurting
if (spurting)
{
cumgendelay = Math.max (0, cumgendelay - 1);
if(cumgendelay == 0)
{
strandr.insertLink(new Point(penisDirection.x * currentSpurtVelocity, penisDirection.y * currentSpurtVelocity), cumgenDelayAmount, g.randomCumMass() * cumgenRandomMassMult + cumgenMinMassBonus);
}
}
// Check if we want to stop spurting
if (spurting && currentSpurtLength == 0)
{
strandr.detachSourceLink(new Point(penisDirection.x * currentSpurtVelocity, penisDirection.y * currentSpurtVelocity), 0);
//strandr.detachBottom();
spurting = false;
}
// Update timers
if (!spurting)
{
currentSpurtDelay = Math.max(0, currentSpurtDelay - 1);
}
else
{
currentSpurtLength = Math.max(0, currentSpurtLength - 1);
}
}
function showdebuginfof()
{
if(showdebuginfo==1)
{
if(!g.gamePaused)
{
mytext.visible = true;
mytext2.visible = true;
mytext.text =
"\nx: "+penisDirection.x+
"\ny: "+penisDirection.y+
"\nrotation: "+penisAngleRadians+
"\ncurrentSpurtDelay: "+currentSpurtDelay+
"\nspurting: "+spurting;
}
else
{
mytext.visible = false;
mytext2.visible = false;
}
}
}
}
// Rest
{
function createdebugmenu()
{
if(!debugmenucreated)
{
debugmenucreated=true;
main.stage.addChild(mytext);
mytext.height = 800;
mytext.width = 300;
mytext.mouseEnabled = false;
mytext.selectable = false;
main.stage.addChild(mytext2);
mytext2.height = 800;
mytext2.width = 300;
mytext2.mouseEnabled = false;
mytext2.selectable = false;
mytext2.x = main.stage.stageWidth - mytext2.width;
var format:TextFormat = new TextFormat();
format.align = TextFormatAlign.RIGHT;
mytext2.defaultTextFormat = format;
}
}
function doUnload() //removes docheck from frame event
{
main.clearDebug();
cMC.removeEventListener(Event.ENTER_FRAME, doCheck);
if(showdebuginfo==1)
{
main.stage.removeChild(mytext);
main.stage.removeChild(mytext2);
}
}
}
and
modActive=1
cumWhenHeCums=1
cumWhitKey=4
timeToCumAfterKeyPress=2
averageSpurtDelay=15
maxDeviationSpurtDelay=5
averageSpurtLength=10
maxDeviationSpurtLength=5
maxDeviationCumAngle=10
averageSpurtVelocity=25
maxDeviationSpurtVelocity=5
cumgenRandomMassMult=0.2
cumgenMinMassBonus=0.05
Thanks for the help ;D
hi guys this is my first thread here, be gentle xD
ok, the mod - make her cum (futa) has some problems, or probably just only gives me problems.
the mod work, the only thing that doesn't work it's the cum.
after a few hours trying to solve the cum appared but not in the right position.
her is a screen and the source mod file:
//breast expansion plus v2.1 by sby
//belly movieclip by Dante, the dark prince
import flash.net.URLRequest;
import flash.geom.Point;
import flash.display.MovieClip;
import flash.text.TextField;
import flash.utils.Dictionary;
import flash.events.MouseEvent;
import flash.net.FileReference;
// Members
{
var modSettingsLoader:Class;
var setsettingsfilename = "MakeHerCum_V1.0";
var main;
var g;
var her;
var cMC:MovieClip = new MovieClip();
var mytext:TextField = new TextField;
var mytext2:TextField = new TextField;
var sState:Boolean = false;
var CIMmin:Number = 100;
var CIMmax:Number = 0;
var modActive:int = 1;
var strandr; ////
var madecumstrands:int = 0; ////
var cumgendelay:Number = 0; ////
var cumgenAnchorDelay:Number = 5;
var cumgenDelayAmount:int = 10;
var strandXOffsetFromPenisOrigin:Number = 16;
var strandYOffsetFromPenisOrigin:Number = 0;
var cumgenRandomMassMult:Number = 0.2;
var cumgenMinMassBonus:Number = 0.05;
var showdebuginfo:int=1;
//local reusables
var j:Number = 0;
var tempp:Number;
var tempp2:Number;
var i:Number = 0;
var penisDirection:Point;
var penisAngleRadians:Number=0;
var penisAngleDegrees:Number=0;
var currentSpurtVelocity:Number=0;
var spurting:Boolean=false;
var isCumming:Boolean=false;
//
var mypage;
var debugmenucreated:Boolean = false;
}
// My Members
{
// General cum settings
var averageSpurtDelay:Number=10;
var maxDeviationSpurtDelay:Number=3;
var currentSpurtDelay:Number=0;
var averageSpurtLength:Number=3;
var maxDeviationSpurtLength:Number=1;
var currentSpurtLength:Number=0;
var maxDeviationCumAngle=0;
var currentDeviationCumAngle:Number=0;
var averageSpurtVelocity:Number=30;
var maxDeviationSpurtVelocity:Number=5;
var cumWhenHeCums:Number=1;
var cumWithKey:Number=1;
var cumKey:Number=78;
var timeToCumAfterKeyPress:Number=100;
var currentTimeAfterCumKeyPress:Number=0;
}
/**************************************************************************/
// Init
{
function initl(l) //boiler plate setup, docheck for each frame, options file selected
{
main = l;
g = l.g;
her = l.her;
var msl = new modSettingsLoader(setsettingsfilename,onSettings);
msl.addEventListener("settingsNotFound",onFail);
}
function onSettings(e) //load options file, set variables, repok variables
{
//main.updateStatus("insetting");
tempp = 0;
var dict:Dictionary = e.settings;
for (var key:Object in dict)
{
var val:Object = dict[key];
switch (key)
{
case "statusupdateforthislastline" :
if(val == 1)
{
main.updateStatus("reached end of settings doc,"+tempp+" errors");
}
break;
default :
if ( this.hasOwnProperty( key ) ) //checks if variable exists
{
this[key] = Number(val); //replaces all switch statement variable assignments
//main.updateStatusCol(key + " = "+ val,"#00ff00"); //replaces all switch statement updatestatus notifications, comment line to hide
//main.monitorDebug(key+": ",this,key);
}
else
{
main.updateStatusCol("invalid setting: "+key,"#FF0000"); //displays if there is a setting in the settings file that does not match any variables
tempp++;
}
break;
}
}
initstuff();
main.updateStatus("all settings ran through, "+tempp+" errors");
}
function onFail(e)
{
main.updateStatusCol(e.msg,"#FF0000");
initstuff();
}
function manualCum()
{
currentTimeAfterCumKeyPress = timeToCumAfterKeyPress;
}
function initstuff()
{
// ROZTOOW
// Register key
if(cumWithKey == 1)
{
main.registerFunction(manualCum, cumKey);
}
if(showdebuginfo==1)
{
createdebugmenu();
}
// ROZTOOW
// Modpage menu
mypage = new MovieClip();
var mymodbut1 = new MovieClip();
mymodbut1.graphics.beginFill(0x00FF00);
mymodbut1.graphics.drawRect(0, 0 ,135, 25);
mymodbut1.graphics.endFill();
mymodbut1.x = 0;
mymodbut1.y = 0;
var myText1:TextField = new TextField();
myText1.mouseEnabled = false;
myText1.selectable = false;
myText1.text = "breast expansion 2.1"
myText1.height = 30;
myText1.width = 140;
mymodbut1.addChild(myText1);
mypage.addChild(mymodbut1);
var myatext:Array = new Array("puke");
var mya:Array = new Array(clickHandlerpuke,toggledebug);
var numboxes = mya.length - 1;
for(i = 0; i < 1; i++)
{
for(j = 0; j < 0; j++)
{
var mymodbut2 = new MovieClip();
mymodbut2.graphics.beginFill(0x00FF00);
mymodbut2.graphics.drawRect(0, 0 ,30, 30);
mymodbut2.graphics.endFill();
mymodbut2.x = j*35;
mymodbut2.y = i*35 + 35;
//mymodbut2.width = 30;
//mymodbut2.height = 30;
var myText:TextField = new TextField();
myText.mouseEnabled = false;
myText.selectable = false;
myText.text = myatext[i*4 + j]
myText.height = 30;
myText.width = 30;
mymodbut2.addChild(myText);
mymodbut2.addEventListener(MouseEvent.CLICK,mya[i*4 + j]);
mypage.addChild(mymodbut2);
if(i*4 + j >= numboxes)
{
i=100;
j=100;
}
}
}
main.addPage(mypage,false);
cMC.addEventListener(Event.ENTER_FRAME, doCheck);
main.unloadMod();
main.registerUnloadFunction(doUnload);
}
/**************************************************************************/
function clickHandlerpuke(event:MouseEvent):void {
// ROZTOOW
// Add click event for mod menu button click
}
function toggledebug(event:MouseEvent):void {
if(showdebuginfo == 0)
{
showdebuginfo = 1;
createdebugmenu();
}
else
{
showdebuginfo = 0;
mytext.visible = false;
mytext2.visible = false;
}
}
}
/****************************************************************************/
// Update
{
function doCheck(e) //master function called every frame
{
// Check if we should instantly return
if (!modActive)
return;
if(!g.gamePaused)
{
currentTimeAfterCumKeyPress = Math.max(0, currentTimeAfterCumKeyPress - 1);
cumfrombreastsf();
}
showdebuginfof();
}
// ROZTOOW
function cumfrombreastsf()
{
// Determine wether she is cumming or not
isCumming = (her._penisControl.currentPenisID != 0) && ((cumWhenHeCums && g.him.ejaculating) || (currentTimeAfterCumKeyPress > 0));
if (!isCumming)
{
spurting = false;
return;
}
penisAngleDegrees = -(-90 + g.her.rotation + g.her.torso.rotation + her._penisControl.penisContainer.rotation);
penisAngleDegrees += 10 + currentDeviationCumAngle;
penisAngleRadians = (penisAngleDegrees * 3.14159265359) / 180;
penisDirection = new Point(Math.sin(penisAngleRadians), Math.cos(penisAngleRadians));
// Check if we want to start a new spurt
if (!spurting && currentSpurtDelay == 0)
{
strandr = g.strandControl.newCumStrand(new Point(strandXOffsetFromPenisOrigin, strandYOffsetFromPenisOrigin), her._penisControl.penis);//torso.midLayer.rightBreast.nipple);
strandr.myGravity = g.gravity;
currentSpurtLength = averageSpurtLength + Math.random() * maxDeviationSpurtLength - Math.random() * maxDeviationSpurtLength;
currentSpurtDelay = averageSpurtDelay + Math.random() * maxDeviationSpurtDelay - Math.random() * maxDeviationSpurtDelay;
currentDeviationCumAngle = Math.random() * maxDeviationCumAngle - Math.random() * maxDeviationCumAngle;
currentSpurtVelocity = averageSpurtVelocity + Math.random() * maxDeviationSpurtVelocity - Math.random() * maxDeviationSpurtVelocity;
penisAngleDegrees += currentDeviationCumAngle;
cumgendelay = cumgenAnchorDelay + 1; //need at least 1
spurting = true;
her._penisControl.angSpeed -= 1.5;
}
// Check if we are spurting
if (spurting)
{
cumgendelay = Math.max (0, cumgendelay - 1);
if(cumgendelay == 0)
{
strandr.insertLink(new Point(penisDirection.x * currentSpurtVelocity, penisDirection.y * currentSpurtVelocity), cumgenDelayAmount, g.randomCumMass() * cumgenRandomMassMult + cumgenMinMassBonus);
}
}
// Check if we want to stop spurting
if (spurting && currentSpurtLength == 0)
{
strandr.detachSourceLink(new Point(penisDirection.x * currentSpurtVelocity, penisDirection.y * currentSpurtVelocity), 0);
//strandr.detachBottom();
spurting = false;
}
// Update timers
if (!spurting)
{
currentSpurtDelay = Math.max(0, currentSpurtDelay - 1);
}
else
{
currentSpurtLength = Math.max(0, currentSpurtLength - 1);
}
}
function showdebuginfof()
{
if(showdebuginfo==1)
{
if(!g.gamePaused)
{
mytext.visible = true;
mytext2.visible = true;
mytext.text =
"\nx: "+penisDirection.x+
"\ny: "+penisDirection.y+
"\nrotation: "+penisAngleRadians+
"\ncurrentSpurtDelay: "+currentSpurtDelay+
"\nspurting: "+spurting;
}
else
{
mytext.visible = false;
mytext2.visible = false;
}
}
}
}
// Rest
{
function createdebugmenu()
{
if(!debugmenucreated)
{
debugmenucreated=true;
main.stage.addChild(mytext);
mytext.height = 800;
mytext.width = 300;
mytext.mouseEnabled = false;
mytext.selectable = false;
main.stage.addChild(mytext2);
mytext2.height = 800;
mytext2.width = 300;
mytext2.mouseEnabled = false;
mytext2.selectable = false;
mytext2.x = main.stage.stageWidth - mytext2.width;
var format:TextFormat = new TextFormat();
format.align = TextFormatAlign.RIGHT;
mytext2.defaultTextFormat = format;
}
}
function doUnload() //removes docheck from frame event
{
main.clearDebug();
cMC.removeEventListener(Event.ENTER_FRAME, doCheck);
if(showdebuginfo==1)
{
main.stage.removeChild(mytext);
main.stage.removeChild(mytext2);
}
}
}
and
modActive=1
cumWhenHeCums=1
cumWhitKey=4
timeToCumAfterKeyPress=2
averageSpurtDelay=15
maxDeviationSpurtDelay=5
averageSpurtLength=10
maxDeviationSpurtLength=5
maxDeviationCumAngle=10
averageSpurtVelocity=25
maxDeviationSpurtVelocity=5
cumgenRandomMassMult=0.2
cumgenMinMassBonus=0.05
Thanks for the help ;D