Dev:SDK/Slave Girl - Dickgirl Transformation

From Slavemaker Wiki
Jump to: navigation, search
<<first <prev SDK/Slave Girl - Dickgirl Transformation next> last>>


SlaveMaker 3 SDK Dickgirl Transformation


There are a series of functions and variables that control dickgirl transformations

________________________________________________________________


Core Variables
_root.DickgirlOn
1 = dickgirls in game
0 = not in game

_root.AllDickgirlXFOn = true if all girls can dickgirl transform

_root.DickgirlXF
0 = normal girl
1 = permanent dickgirl
2 = permanent and refused to be cured
-1 = will never be a dickgirl

note if cured it resets to 0

Generally test to tell if she is a dickgirl at the moment use the root function IsDickgirl()

eg

if (_root.IsDickgirl()) {
}

This function is aware of spontaneous changes and should normally be used, unless to just want to know her transformation status

eg

if (_root.DickgirlXF == 2) {
        // she is a permanent dickgirl who refused the cure
}
_root.DickgirlRate

- %chance she will spontaneously grow a cock for a single act

_root.DickgirlChangable

- true she can spontaneously change for a single act (randomly set by the game based on DickgirlRate)

_root.DickgirlChanged

- set to true if she has spontaneously changed for a single sex act

_root.PotionsUsed[0]

- the number of times she has drunk the Priapus draft

_root.DickgirlTesticles
true = dickgirls can have testicles
false = dickgirls will not have testicles
_root.DickgirlStartOn
true = all female slaves start as a dickgirl
false = only slave so programmed start as a dickgirl
_root.DickgirlLesbians
true = lesbians can love dickgirls, and dickgirls count as female for lesbian acts
false = lesbians do not love dickgirls, and dickgirls do not count for lesbian acts

________________________________________________________________


Core Functions
IsDickgirl

function IsDickgirl() : Boolean

Is she permanently or temporarily a dickgirl basically does

return SlaveGirl.IsDickgirl() || DickgirlXF > 0 || SlaveGender == 3 || SlaveGender == 6 || DickgirlChanged
IsPermanentDickgirl

function IsPermanentDickgirl() : Boolean

Is she permanently a dickgirl basically does

return DickgirlXF > 0 || SlaveGender == 3 || SlaveGender == 6
DickgirlTransform

function DickgirlTransform(xf:Number)

xf = new value for DickgirlXF. If 2 then it is a permanent change and SlaveGender changes to 3 and DickgirlXF = 0

Transform a girl, use this instead of directly changing DickgirlXF. Also handles item removal.

CureDickgirlTransform

function CureDickgirlTransform()

Cure her of the Priapus draft, resets DickgirlXF = 0, same as calling DickgirlTransform(0);


________________________________________________________________


Slave Girl Override Functions

These functions can be overloaded for a Slave girl to control her changes

DrinkPotion

called as she drinks a potion - NOTE you must overload this function for potion == 0 to show a dickgirl transformation scene

function DrinkPotion(potion:Number, price:Number, say:String) : Boolean

  • potion
    0 - Priapus Draft
    1 - Uninhibitor potion
    2 - Aphrodisiac
    3 - Soothing Potion
    4 - Energy Drink
    5 - Dorei
    6 - Zodai
    7 - Gaman
    8 - Biyaku
    9 - Ishinai
    10 - Lust Draft
    11 - Odd Pill
    12 - Nymph's Tears
  • price - cost of potion
  • say - standard message on drinking

return true to prevent standard message on drinking

eg See the Slave-Girl.as for one example. Below is the code from Ranma

function DrinkPotion(potion:Number, price:Number, pname:String, say:String) : Boolean
{
        if (potion == 0) {
                // Dickgirl
                temp = int(Math.random()*4) + 1;
                ClipDickgirl.gotoAndStop(temp);
                switch(temp) {
                        case 1:
                                _root.Points(0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, -2, 0, 4, 0, 0, -15);
                                _root.SetText(_root.SlaveName + " starts joyfully rubbing her cock, after a time she comes with a scream of ecstasy.");
                                break;
                        case 2:
                                _root.Points(0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 0, 0, 0, 4, 0, 0, -15);
                                _root.SetText(_root.ServantName + " is mesmerised by " + _root.SlaveName + "'s cock. She strips off her clothing and they start exploring the cock, and then fucking.");
                                break;
                        case 3:
                        case 4:
                                _root.Points(0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 0, 0, 0, 4, 0, 0, -15);
                                _root.SetText("Astrid also gives " + _root.ServantName + " a dose of the potion and they start experimenting and enjoying their cocks.");
                                break;
                }
                ClipDickgirl._visible = true;  
                return true;
        }
        return false;
}

Note you can update stats if you so desire as you see above


IsDickgirl

Use this function for exceptional cases where she is temporarily a dickgirl for a time, but DickgirlXF is still 0

function IsDickgirl() : Boolean

normally return false to indicate she is not a dickgirl in the special case. The game will still be aware of DickgirlXF


DickgirlPotionOffer

This function is called the second and later times she is offered the Priapus Draft

function DickgirlPotionOffer()

Most commonly display a message noting her interest in the draft

Note root.PotionsUsed[0] == 1 for the second, root.PotionsUsed[0] == 2 for the third, it is the times she has actually drunk it.

Note the text _root.SlaveName is already displayed at this time

ie

Ranma

Most commonly

function DickgirlPotionOffer()
{
        _root.AddText(" is willing to experience the potion again.");
}

to show

Ranma is willing to experience the potion again

To have her refuse the Draft set _root.NumEvent = 0;

see the Slave-Girl.as

eg

function DickgirlPotionOffer()
{
        _root.AddText(" looks unhappy\r\r");
        _root.SlaveSpeak("No! not again, I am a girl, it does not matter how nice it felt.", true);
        _root.AddText("\r\rAs " + _root.SlaveName + " turns to leave she notices " + _root.ServantName + " whispering to Astrid and they both laugh.\r\r" + _root.SlaveName + " is a little annoyed they did not share their joke.");
        _root.NumEvent = 0;
        _root.SetBitFlag2(2);
}

To have her always accept do this

_root.DoEvent(201);

eg from Ranma on the

function DickgirlPotionOffer()
{
        if (_root.PotionsUsed[0] == 1) {
                _root.AddText(" is eager to have a powerful cock again.");
                _root.Points(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, -2);
        } else {
                _root.Points(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, -2);
                _root.AddText(" immediately grabs the potion and drinks it...");
                _root.DoEvent(201);
        }
}


ShowDickgirlTransform
function ShowDickgirlTransform() : Boolean

This function is called when she dickgirl transforms, the actual transformation as she grows a cock, not the after scene as she plays with her cock

Return false to do the standard transformation, else return true for a custom transformation

eg

function ShowDickgirlTransform() : Boolean
{
        return false;
}

In one limited case you may wish to change _root.NumEvent. For Ranma drinking the potion has will not cause a permanent transformation, everything happens otherwise via the nun. So to disable permanent transformations completely set _root.NumEvent = 200;

eg

function ShowDickgirlTransform() : Boolean
{
        _root.NumEvent = 200;
        return false;
}

NOTE return type changed


ShowDickgirlPermanent
function ShowDickgirlPermanent() : Boolean

This function is used to customise the scene where she permanently transforms. Return true to use your own custom graphics, return false for the standard graphics.

If you set any text (using SetText, AddText) then the standard text will not be shown and only your custom text shown. If you show no text then the standard text is shown

Commonly

function ShowDickgirlPermanent() : Boolean
{
        return false;
}

To use a custom graphic

function ShowDickgirlPermanent() : Boolean
{
        DickgirlTransform._visible = true;
        return true;
}


AfterDickgirlPotion

function AfterDickgirlPotion(num:Number)

num = the number of current transformation (1 = first time)

This function is called after the dickgirl transformation wears off. It is not called when she permanently changes.


Repeated from Core - Functions.rtf

These are root functions, do not override for your slave girl


IsDickgirlEvent
function IsDickgirlEvent() : Boolean

If an event has a dickgirl option and a non-dickgirl option, use this function to choose which happens. This takes options dickgirl settings into account

returns true to show the dickgirl verision, false for the non-dickgirl


IsDickgirl
function IsDickgirl() : Boolean

- is she permanently or temporarily a dickgirl


DoDickgirlChange

handles temporary dickgirl changes and also generic images

function DoDickgirlChange(chance:Number) : Boolean
chance - chance a generic dickgirl image will be shown, 0 for never, 100 for always

returns true if she spontaneously changes to a dickgirl.

Remember to check after if _root.UseGeneric == true

_root.IsDickgirl()) will be true if she has spontanously changed or is permanently changed. In that case show an appropriate graphic

eg

        if (_root.DoDickgirlChange(40)) {
                if (_root.UseGeneric) return;
        }
        if (_root.IsDickgirl())  AnalClip.gotoAndStop(4);

She will spontaneously change based on _root.DickgirlRate and this function will make her change based on that. If she does then 40% of the time use a generic image.

If she is permanently a dickgirl 40% of the time use a generic image.


DoDickgirlChangeGeneric

handles temporary dickgirl changes and also generic images

function DoDickgirlChangeGeneric(chance:Number) : Boolean

as above but returns true if she spontaneously changes and a generic image is to be used

after you can check _root.DickgirlChanged == true or just use _root.IsDickgirl() to se eif she spontaneously changed but will use a custom graphic

eg

        if (_root.DoDickgirlChangeGeneric(30)) return;
        if (_root.IsDickgirl())  AnalClip.gotoAndStop(4);

or

        if (_root.DoDickgirlChangeGeneric(30)) return;
        if (_root.DickgirlChanged) {
                AnalClip.gotoAndStop(4);
                _root.AddText("Amazingly you see a cock grow from her clit as you fuck her ass.");
        }


DefaultDickgirl

if permanently changed to a dickgirl use generic graphics chance% of the time. Ignores spontaneous changes.

function DefaultDickgirl(chance:Number) : Boolean
chance - chance a generic dickgirl image will be shown, 0 for never, 100 for always

returns true if generic image is used


<<first <prev SDK/Slave Girl - Dickgirl Transformation next> last>>