Jump to content

Recommended Posts

It bothers me that Orgasm count only goes up when actors have sex as male&female and not when it's female&female, male&male, or simply masturbation. I've tried looking in the scrips for the Mods but I'm at a loss.

I'd like to make the xLoversAddSpermCount script add the respective tokens aswell on either of these scenarios, is there a way to make this possible?

Link to comment

? I play a female and I fuck female NPCs  and I and the NPCs have orgasms. ( but I enabled female have sperm in the Tamago or Hiyoko ini )

I know it because in one of my Mods I used the Orgasm token in a script. And my female Player can give the female NPC orgasms ( orgasm token: xLoversPkrCountPSpermV )

 

But orgasms are "bound" to the sperm.

If a NPC has the token  xLoversPkrContraception "Lovers Contraceptive Status" [CLOT:01000819]  ( cannot get pregnant )  no sperm is added to the NPC during sex and she  don't have orgasms.

 

 

And  I think in the Lovers add sperm script ( I don't know the right  name) sperm is add only to females. And only by males and creatures.

So you have to delete the "is female" target and "is male offender" check in that script  then  male-male will work.

If you use Tamago you  can enable in the ini ( or with console) that females have sperm

set a3ltc.kokumaromilk to 1

 

So find the Lovers script that add sperm and remove the gender checks.  ( Best would be script that did not bound orgasms to sperm so  females with Contraceptive can have orgasms)

Link to comment

I do not use Tamago or Hiyoko or any pregnancy related mod.


The Lovers Add sperm script adds spermcount tokens which to both Males and Females, Males' token ends in SpermCount where Females' end in SpermCountV.

 

This is the said script

 

Spoiler

scn xLoversPkrAddSpermCount

;Rev31 äSo‚µŽË¸ƒJƒEƒ“ƒg‚ðs‚¤iÚ×”»’è‚·‚é‚Ì‚Å‚Æ‚è‚ ‚¦‚¸ŒÄ‚ñ‚Å‚àOKj

ref xme
ref zme

ref female
ref male

Begin Function { xme zme }

    ;äSo‚µŽË¸‚³‚ê‚é—«‘¤Ref‚𓾂é
    let female := Call xLoversCmnIsEjaculationToVagina xme zme
    if female
        ;’j‚ÌRef‚𓾂é
        if xme == female
            set male to zme
        else
            set male to xme
        endif
        ;ŽË¸ƒJƒEƒ“ƒgƒAƒCƒeƒ€‚ð—^‚¦‚é
        male.AddItemNS xLoversPkrCountSperm 1    ;ŽË¸‚µ‚½
        female.AddItemNS xLoversPkrCountSpermV 1    ;ŽË¸‚³‚ꂽ
        ;ƒvƒŒƒCƒ„[ŠÖ—^H
        if male==Player
            female.AddItemNS xLoversPkrCountPSpermV 1    ;ƒvƒŒƒCƒ„[‚Ɏ˸‚³‚ꂽ
        elseif female==Player
            male.AddItemNS xLoversPkrCountPSperm 1    ;ƒvƒŒƒCƒ„[‚Ɏ˸‚µ‚½
        endif
;printC "Lovers: äSo‚µŽË¸ %n ¨ %n" male female
    endif

End

 

I don't know which gender check to remove or how I can write another one, I don't know what exactly xme or zme refer to or what the call function is about. I want the Count to increase regardless of gender interactions but it needs to give the respective counter to the actors whether they are female or male. Additionally I want the Count to increase when Players & NPC are affected by the Masturbate effect. I think the MB related count increase could be simply added to the MB spell, is that correct?

Link to comment

My script Knowledge  is not good.

 

In the xLoversPkrAddSpermCount  is no gender check. The female and male are script references.

 

it adds  cum/orgasm token to  NPC

        male.AddItemNS xLoversPkrCountSperm 1 
        female.AddItemNS xLoversPkrCountSpermV 1 

 

And player

            female.AddItemNS xLoversPkrCountPSpermV 1
            male.AddItemNS xLoversPkrCountPSperm 1  

 

This line is important

    let female := Call xLoversCmnIsEjaculationToVagina xme zme

 

If calls the script xLoversCmnIsEjaculationToVagina [SCPT:01000835]  and there you have the gender checks.

 

######################

scn xLoversCmnIsEjaculationToVagina

;Rev31 äS“àŽË�¸‚𔺂¤‚g‚È‚Ì‚©�H
;Rev60 motionflag‚ɑΉž

ref act1
ref act2

ref female
ref male
short spos
long motionflag

short s0


Begin Function { act1 act2 }
    set female to 0
    SetFunctionValue female        ;false

    ;ˆê•û‚Å‚à‚g‚Ì�Å’†‚Å‚Í‚È‚¢
    if act1.GetItemCount xLoversPkrIdentifier==0 || act2.GetItemCount xLoversPkrIdentifier==0
        return
    endif

    ;—¼•û‚Æ‚à xLoversOff ‚ð�ŠŽ�‚µ‚Ä‚¢‚È‚¢
    if act1.GetItemCount xLoversOff==0 && act2.GetItemCount xLoversOff==0
        return
    endif
    ;—¼•û‚Æ‚à xLoversDef ‚ð�ŠŽ�‚µ‚Ä‚¢‚È‚¢
    if act1.GetItemCount xLoversDef==0 && act2.GetItemCount xLoversDef==0
        return
    endif

    ;—¼ŽÒ‚ª“¯�«‚Å‚ ‚é(ƒNƒŠ�[ƒ`ƒƒ�[‚Í’jˆµ‚¢)
    ;Rev83 ƒNƒŠ�[ƒ`ƒƒ�[‚Ì�ê�‡‚à‘Ήž‚Å‚«‚é�ˆ—�‚É•Ï�X

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    if act1.GetIsSex Female                  ;;;; If she is female the script continues
        if act2.GetIsSex Female   ;;; but if the sex partner is also female the script stops
            return
        endif
    else
        if act2.GetIsSex Female == 0        ;Rev84 •s“™�†‚É‚È‚Á‚Ä‚½ƒoƒO‚ð�C�³   ;;; if  act1 (actor1) is not female and act2 is not female ( male-male sex ) the script stops
            return
        endif
    endif

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ;ˆê•û‚Å‚à”ð”D�ó‘Ô‚Å‚ ‚é
    if act1.GetItemCount xLoversPkrContraception || act2.GetItemCount xLoversPkrContraception  ;;;; if one sex partner use Contraception the script stops
        return
    endif

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ;motionflag‚ðŽæ“¾
    set spos to act1.GetItemCount xLoversSPosM
    if spos<1
        printC "Lovers: ERROR!! xLoversSPosM = %.0f" spos
        return
    endif
    let motionflag := Call xLoversPkrGetMotionParamBySPosIndex spos 12

    ;‘̈ʃ‚�[ƒVƒ‡ƒ“‚É‚æ‚é‘}“ü”»’è
    ;Rev60 motionflag ‚É‚æ‚éƒtƒBƒjƒbƒVƒ…äS�o‚µƒrƒbƒg‚Å”»’è‚·‚é
    if eval(motionflag & 1) == 0
        return    ;äS�o‚µ‚Å‚Í‚È‚¢
    endif

    ;’j�—‚Ì”»’è
    if act1.GetIsSex Female == 0  ;act1=’j‚©ƒNƒŠ�[ƒ`ƒƒ�[    ;;;;;  only a check if act1 or 2 is male or female.
        set male to act1
        set female to act2
    else
        set male to act2
        set female to act1
    endif

    ;’j‚ªOffMotion�A�—‚ªDefMotion‚Ì—§‚¿ˆÊ’u‚É‚¢‚é‚È‚çOK
    if male.GetItemCount xLoversOff && female.GetItemCount xLoversDef
        SetFunctionValue female        ;true
    endif

End

 

##########################################

Perhaps it is enough if you delete the part between the  two  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  lines

 

I don't if you can delete the Contraception part.  Tamago  checks the Lovers sperm and orgasm token and if the token are detected

  Tamgo add own sperm token that works with the Tamago scripts.

Lovers "mix"  sperm and orgasms, there is only one token. But female (Person who gets fucked) should get two token , Orgasm and sperm token. Then sperm can be blocked when Contraception is used  but Orgasm items are still added.

 

But in the script    a3ltcOnCallbackEjaculation  (LoversTamagoClub.esp) is also a check if the Contraception token is added...

So maybe it is possible to delete the Contraception part in the above Lovers script ( so the player and NPCs have orgasms )  and the Tamago scripts blocks the Tamago sperm token if the Contraception token is detected.

 

You don't use Tamago so you can delete the Contraception part .

 

______________________________________

LoversMB2  does not have sperm and orgasms.

You can add the token  in the spell cast script

You have two spells, self and target ( player and NPC )

 

For the player in the script xLoversMB2SpellSelfSC  you add

 

If player.GetisSex female

            Player.AddItemNS xLoversPkrCountPSpermV 1

else
            Player.AddItemNS xLoversPkrCountPSperm 1 

endif

 

And in the script xLoversMB2SpellTargetSC  (NPC)  of the target spell is a check if the spell will be reflected ( Magic protection Spell reflect )

If the spell is reflected the player masturbates,  if not the NPC spell is called and that starts the real NPC script  xLoversMB2SpellTargetMainSC   [SCPT:0300A524]

So you add the "add sperm" in that script.  In the "begin ScriptEffectUpdate "  part

 

If  rTarget.GetisSex male

        rTarget.AddItemNS xLoversPkrCountSperm 1 

else
        rTarget.AddItemNS xLoversPkrCountSpermV 1 

endif

 

So during one masturbation you/NPC will have one orgasm.

 

!  I don't know what the difference is between the token.  Why xLoversPkrCountPSpermV  and xLoversPkrCountSpermV  ?

I created a altar of Dibella and it add the xLoversPkrCountSpermV  token (the No-Player token . Was a mistake )  But it works with the player.

In the Sexual Diary the number of my orgasms increases by 1

 

---------------

EDIT

When you change scripts, Lovers scripts ,  you  have to start the Construction Set with OBSE or you can not save a Mod with OBSE commands.

If you use CS extender 8 the CS starts with OBSE.

If you use Vanilla CS  read   https://www.loverslab.com/topic/36443-oblivion-install-gametoolsbodiesbbb-load-order-sorting-espesm-cleaning-cs-cse-body-stretching/

Scroll down to the esnd and read " Oblivion Construction set and ConstructionSet extender(CSE):  "

 

Link to comment

Shit Nothing works !

 

I changed the xLoversCmnIsEjaculationToVagina script and still no orgasms.

First I turnt off the Tamago settings that female have sperm.

Then my female player fucked a  female NPC    = both no orgasm

The female NPC fucked the player =  both no orgasm

 

 

The only thing that was ok was  delete the Contraception part .   Because Tamago have a own Contraception check.

 

----------------------

When I enable the Tamgo female sperm setting I have orgasms ( HiyokoClub.ini  or console  )

But only the target.

When my female Player fucks a female NPC the NPC have orgasms and gets sperm. But My player doesn not have an orgasm.

And if the female NPC fucks my player  ,  my player get sperm and orgasms  but the NPC have no  orgasms

 

But that is the same I had before the xLoversCmnIsEjaculationToVagina  script change.

 

But with a Contraception token (player or NPC )  the add sperm is blocked  and  so you get no orgasms.

Yes the Contraception  part in the Lovers script is deleted  but the tamago script seems to delete the sperm and orgasm item

 

 

With other words  nothing has changed in my game after the script change. ( only a double Contraception check is removed )

---------------------------

 

I don't know what to do....  sorry.

 

Link to comment
1 hour ago, fejeena said:

!  I don't know what the difference is between the token.  Why xLoversPkrCountPSpermV  and xLoversPkrCountSpermV  ?

I created a altar of Dibella and it add the xLoversPkrCountSpermV  token (the No-Player token . Was a mistake )  But it works with the player.

In the Sexual Diary the number of my orgasms increases by 1

I just started checking with the console adding the Token for Sperm count and found out:


xLoversPkrCountSpermV is the token that acts as the counter for orgasms for NPCs and the Player

xLoversPkrCountPSpermV is for NPCs that counts how many orgasms were caused by interaction with the player.

It can be seen by using the Contact spell Sense Sexual Exploits, it says how many times the NPC has had an Orgasm and also how many times due to the Player.

EDIT: Assuming they are female, since V tokens are given to female and those wthout the V are male, obviously.

3 hours ago, LostData751 said:

        if male==Player
            female.AddItemNS xLoversPkrCountPSpermV 1    ;ƒvƒŒƒCƒ„[‚Ɏ˸‚³‚ꂽ
        elseif female==Player
            male.AddItemNS xLoversPkrCountPSperm 1    ;ƒvƒŒƒCƒ„[‚Ɏ˸‚µ‚½
        endif

The Addspermcount script checks if the Player is involved and gives the token to the other involved actor.

 

I have yet to try your suggestion to changing the script the CmnEjaculationToVagina script and the MB spell scripts, but I will be doing so shortly.

Link to comment

Yes V for Victim ( Defender, Female )   And the P for Player

 

In game console check.

Oh .... the  xLoversPkrCountPSpermV  does not work with the player. So my dibella altar script is not wrong.

 

If you add a P token to the player the number of orgasms didn't change.

Only when you add the No-P token.

 

The NPC  get  the no-P token  when sex with other NPCs  And both token when sex with player.

In the NPC diary you have Orgasm number and orgasms with player.

If a NPC have 2 No-P token   and none P token  then you see in diary: orgasms 2 ;  Orgasms with player 0

If a NPC have  2 No-P and 2 P token  she don't have  4 orgasms !  In the diary you see: orgasms 2 ;  Orgasms with player 2

 

-----------------------------

Then  the LoversMB2 script change I posted is wrong

In both scripts you use the No-P token  :  xLoversPkrCountSpermV  and  xLoversPkrCountSperm

Link to comment
20 hours ago, fejeena said:

When I enable the Tamgo female sperm setting I have orgasms ( HiyokoClub.ini  or console  )

But only the target.

When my female Player fucks a female NPC the NPC have orgasms and gets sperm. But My player doesn not have an orgasm.

And if the female NPC fucks my player  ,  my player get sperm and orgasms  but the NPC have no  orgasms

I just tried changing the script as you said and it didn't work, I'm going to test it further but for now...

 

Regarding your issue, the reason ONLY the target was getting the count to increase was because the changes allow the other script to go as normal, but they don't give the correct token to the "dominant" actor, they get the male sperm counter. So this script just needs scripts to gender check and give the respective token.

 

On 7/10/2020 at 2:22 PM, LostData751 said:

    let female := Call xLoversCmnIsEjaculationToVagina xme zme
    if female
        ;’j‚ÌRef‚𓾂é
        if xme == female 
            set male to zme
        else
            set male to xme
        endif
        ;ŽË¸ƒJƒEƒ“ƒgƒAƒCƒeƒ€‚ð—^‚¦‚é
        male.AddItemNS xLoversPkrCountSperm 1    ;ŽË¸‚µ‚½
        female.AddItemNS xLoversPkrCountSpermV 1    ;ŽË¸‚³‚ꂽ

Link to comment

Since it wasn't mentioned previously, the esp on which I should be making the modifications is Lovers with PK.esp right?

 

Aside from that I'm having trouble understanding what exactly causes the AddSpermCount script to get a pass and start doing it's thing. However, I decided to write something that I believe should allow the config you have to give the correct tokens to each NPC.

Spoiler

scn xLoversPkrAddSpermCount

;Rev31 äSo‚µŽË¸ƒJƒEƒ“ƒg‚ðs‚¤iÚ×”»’è‚·‚é‚Ì‚Å‚Æ‚è‚ ‚¦‚¸ŒÄ‚ñ‚Å‚àOKj

ref xme
ref zme

ref female
ref male

Begin Function { xme zme }

    ;äSo‚µŽË¸‚³‚ê‚é—«‘¤Ref‚𓾂é
    let female := Call xLoversCmnIsEjaculationToVagina xme zme
    if female
        ;’j‚ÌRef‚𓾂é
        if xme == female
            xme.AddItemNS xLoversPkrCountSpermV 1
        elseif xme != female
            xme.AddItemNS xLoversPkrCountSperm 1
        endif
          if zme == female
               zme.AddItemNS xLoversPkrCountSpermV 1
          elseif zme != female
               zme.AddItemNS xLoversPkrCountSperm 1
          endif
        if xme == Player
               if zme == female
                zme.AddItemNS xLoversPkrCountPSpermV 1
               elseif zme != female
                   zme.AddItemNS xLoversPkrCountPSperm 1
               endif
        elseif zme == Player
               if xme == female
                xme.AddItemNS xLoversPkrCountPSpermV 1
               elseif xme != female
                   xme.AddItemNS xLoversPkrCountPSperm 1
               endif
        endif
;printC "Lovers: äSo‚µŽË¸ %n ¨ %n" male female
    endif

End

 

I'd like you to try your config with these settings and tell me the results or if any of the code is broken or useless, which might be possible since I'm not one that makes scripts.

Link to comment

If all you are going for is to get a count on orgasms for all genders, it might be easier to write a new script than trying to change one that is built into the mod.

The orgasm function was pretty much just a sperm ejaculation counter with tokens so that you could get females pregnant.  

The original mod was Japanese, so orgasm may not even have been the correct word translation.

 

Just some thoughts.

Link to comment

I personally don't really know how to create scripts, I just try to understand the ones I'm looking at and see what I can change to make it work as I want.

I don't even know where the xme, zme, act1 or act2 values come from or how they're assigned or even make them work with the Lovers mods so I'm lost with that.

Link to comment

Yes it is the Loves with PK ESP  ( not esm )

 

I don't understand the scripts either.

 

I told you may script changed doesn't work.

The onöy thing I did right was delete the Contraception part in the Lovers script ( because there is the same check in Tamago )

 

I thought I understood the scripts... but none of my changes worked.

 

The

 ref xme
ref zme

ref female
ref male

ref act1

ref act2

are set to  player or NPC, to Off and Def ( offender Defender ), active  / passive actor,...

Maybe it is done in another script.

If  a script is stared by an NPC and  the command is set xme to GetSelf  then the NPC is xme

 

Does the script  in post 9 works in your game ?

I don't want to change my esp/sripts again.   And you know I use Tamago and have to disable the "Female have sperm" function.

If you have a tested / working script   then I can test it in my game with Tamago.

 

And if you create a script that add the token to all genders/NPC/Player  the Contraception will not work anymore. (not sure , but I am afraid so )

 

------------------

Best would be a a new token for both genders  and a "orgasm with player " token ,  so you will not messup the pregnancy system. No cnflict with the Contraception token (Tamago blocks the sperm/orgasm token )

Then the only change must be made in the diary script so that the new token are used  to show the number of orgasms.

 

But i don't know how to do it.

 

Link to comment
4 hours ago, fejeena said:

Does the script  in post 9 works in your game ?

I don't want to change my esp/sripts again.   And you know I use Tamago and have to disable the "Female have sperm" function.

If you have a tested / working script   then I can test it in my game with Tamago.

The AddSpermCount did work to give the respective tokens and should now give the bound sperm&orgasm token to males & females. However I figured it's better I just add a GetIsGender check instead, because of inconsistencies

EDIT: To Clarify, it gives the correct tokens as it did only through orgasm with male&female, It did not however allow the tokens to be given because the Generchecking script didn't give it a go.

 

The simplest way to get the Addspermcount to work as orgasm is to remove the dependencies to the EjaculationToVagina script completely, so that it doesn't break anything else by trying to modify this script aswell. It works for me if I don't use any pregnancy mods so it's good.

 

I could add another script that serves as another counter, but that means having to change the script that gives the player info on orgasms changed so the NEW value shows in the menus, which I don't know exactly how to do yet.

 

Link to comment

Orgasms were added to my Lovers with pk.esp scripts, changed respective values to orgasm counters, pregnancies should work regardless of this, however it seems I can't get LoversMB to work accordingly since it's only Master file isn't Lovers with pk.esm is there a way to change master files so that it's possible to add this properly?

 

Also, Orgasms always seem to be added in various values from 2-5 is there a way to have only one instance of it happening? it happened with the sperm counters and still happens with my protoype edited scripts.

Link to comment

You can change master files .... but why with MB2 ?

My script I posted should work  ,  and this way it only add one token like you want it. One masturbation =  one token.

 

------------------

The 2-5 orgasms:  Don't know how to change it.

But I need the ograsins in  a quest . A female NPC wants 12 orgasms during 3 fucks. If the player can not do he/she can never finish the quest.

 

Not only females can have more than one orgasm.  (multiple orgasms)

Also men can have multiple orgasms and can have orgasms without ejeculation.

So I would never change it.

But if you want to  change it to one orgasm  than only for male, and female still can have multiple orgasms.

--------------------------

 

??? I don't understand...  The script in post 9 works?

Sex male-male, female fucks male, female-female  and male fucks female give token to ALL fucking people ?

 

Link to comment
On 7/10/2020 at 4:13 PM, fejeena said:

LoversMB2  does not have sperm and orgasms.

You can add the token  in the spell cast script

You have two spells, self and target ( player and NPC )

 

For the player in the script xLoversMB2SpellSelfSC  you add

 

If player.GetisSex female

            Player.AddItemNS xLoversPkrCountPSpermV 1

else
            Player.AddItemNS xLoversPkrCountPSperm 1 

endif

 

44 minutes ago, fejeena said:

You can change master files .... but why with MB2 ?

Well, how to change them? I don't want to merge MB2 with it, I just want to make sure something works. I can't edit MB2's script so it gives the new token I just made, that's why I want to put it to the master file, it doesn't work the way I did recently.

 

46 minutes ago, fejeena said:

??? I don't understand...  The script in post 9 works?

Sex male-male, female fucks male, female-female  and male fucks female give token to ALL fucking people ?

The script to GIVE the tokens worked, the EjaculationtoVagina script didn't work accordingly with it, so it only gave the tokens to male-female interactions.

See below:

On 7/10/2020 at 4:13 PM, fejeena said:

    if act1.GetIsSex Female == 0  ;act1=’j‚©ƒNƒŠ�[ƒ`ƒƒ�[    ;;;;;  only a check if act1 or 2 is male or female.
        set male to act1
        set female to act2
    else
        set male to act2
        set female to act1
    endif

    ;’j‚ªOffMotion�A�—‚ªDefMotion‚Ì—§‚¿ˆÊ’u‚É‚¢‚é‚È‚çOK
    if male.GetItemCount xLoversOff && female.GetItemCount xLoversDef
        SetFunctionValue female        ;true

Since I removed the part you told me to remove, the script kept going and did this: checked if act1 was male, and because it wasn't it set "Male" to act2 and "Female" to act1, it then checked if act2 was off & act1 was def, which wasn't the case since act1 is assigned off and act2 is assigned def somewhere in the other scripts.

 

58 minutes ago, fejeena said:

Not only females can have more than one orgasm.  (multiple orgasms)

Also men can have multiple orgasms and can have orgasms without ejeculation.

So I would never change it.

But if you want to  change it to one orgasm  than only for male, and female still can have multiple orgasms.

I still want this change to my own game so I will keep looking on how to achieve it,

Link to comment

Again, why you want  to change the master ? You can add the token in the MB2 scripts.

 

But if you want to add a master you load the Mod you want to add in CS with MB2  ( check Lovers with PK esp  and MB2  and set MB2 active )

But again you don't need it !

 

And  NOT the P token !!!

 

Again , just change the MB2 scripts    ( without  changing masterfile )

Spoiler

For NPC in  "begin ScriptEffectUpdate "  part   in scrip

xLoversMB2SpellTargetMainSC   [SCPT:0300A524]
If  rTarget.GetisSex male
        rTarget.AddItemNS xLoversPkrCountSperm 1
else
        rTarget.AddItemNS xLoversPkrCountSpermV 1
endif

 

-----------------------------------
 For the player in the script xLoversMB2SpellSelfSC  you add

 

If player.GetisSex female

            Player.AddItemNS xLoversPkrCountSpermV 1

else
            Player.AddItemNS xLoversPkrCountSperm 1

endif

 

_______________________________________

 

So you will get one token for one masturbation.

 

------------------

And your script in post 9  I tested it. It works like my script...  absolutely not !!

Yes the male-female works... but that worked without the script change.

Absolutely nothing changed after the script change.

Sex                          ;   added token

male  fucks  female  ;  Yes   Yes

female fucks male    ;  No    No

male  fucks male      ;  No    No

Female fucks female;   No    No  (   only with Tamago Female add sperm;    No  Yes  )

That is the original !!!  Lovers worked the same before the script change.

 

Yes I load a very old save with a male player to test male- male.

 

 

Link to comment
23 minutes ago, fejeena said:

And your script in post 9  I tested it. It works like my script...  absolutely not !!

Yes the male-female works... but that worked without the script change.

Absolutely nothing changed after the script change.

Sex                          ;   added token

male  fucks  female  ;  Yes   Yes

female fucks male    ;  No    No

male  fucks male      ;  No    No

Female fucks female;   No    No  (   only with Tamago Female add sperm;    No  Yes  )

That is the original !!!  Lovers worked the same before the script change.

I said it wouldn't work correctly, let me fix that.

Spoiler

scn xLoversPkrAddSpermCount

 

ref xme
ref zme

 

Begin Function { xme zme }


    if xme.GetIsSex Female == 1
        xme.AddItemNS xLoversPkrCountSpermV 1
    elseif xme.GetIsSex Female != 1
        xme.AddItemNS xLoversPkrCountSperm 1
    endif
    if zme.GetIsSex Female == 1
       zme.AddItemNS xLoversPkrCountSpermV 1
    elseif zme.GetIsSex Female != 1
       zme.AddItemNS xLoversPkrCountSperm 1
    endif
    if xme == Player
        if zme.GetIsSex Female == 1
            zme.AddItemNS xLoversPkrCountPSpermV 1
        elseif zme.GetIsSex Female != 1
            zme.AddItemNS xLoversPkrCountPSperm 1
        endif
    elseif zme == Player
        if xme.GetIsSex Female == 1
            xme.AddItemNS xLoversPkrCountPSpermV 1
        elseif xme.GetIsSex Female != 1
            xme.AddItemNS xLoversPkrCountPSperm 1
        endif
    endif
 

End

 

This should work so it doesn't have to check for who is offensive and who is defensive, it should and will work without using Tamago/Hiyoko, I'm not sure what happens if you use it with Tamago, this doesn't check who is Off or Def, so with varying interactions NPCs/Player may get pregnant when they shouldn't have, females fucking males, female being off as example.

A change could also be made to the EjaculationToVagina if needed, but I have no clue how it works with "females have sperm" setting in Tamago's so I'd rather not touch it.

 

23 minutes ago, fejeena said:

Again, why you want  to change the master ? You can add the token in the MB2 scripts.

 

But if you want to add a master you load the Mod you want to add in CS with MB2  ( check Lovers with PK esp  and MB2  and set MB2 active )

But again you don't need it !

I made a new Token, which isn't in the lovers esm. and with a new token I made a new script so it doesn't interfere with any other feature, which I'm worried about since Lovers has a LOT of scripts for lot of things.

I don't want to change MB2's master or add a new one I don't think adding Lovers with PK.esp as master would've fixed it, it seems to have conflicts anyway. (I will try this anyway soon)

I want to modify the Lovers esm, but I find 0 information on how to create or modify esms.

 

Link to comment

 I thing you do not understand me.

 

You  open the original MB2 esp

You do NOT change the Masterfiles

You add some lines in two MB2 scripts

Spoiler

For NPC in  "begin ScriptEffectUpdate "  part   in script

xLoversMB2SpellTargetMainSC   [SCPT:0300A524]
If  rTarget.GetisSex male
        rTarget.AddItemNS xLoversPkrCountSperm 1
else
        rTarget.AddItemNS xLoversPkrCountSpermV 1
endif

 

-----------------------------------
 For the player in the script xLoversMB2SpellSelfSC  you add

 

If player.GetisSex female

            Player.AddItemNS xLoversPkrCountSpermV 1

else
            Player.AddItemNS xLoversPkrCountSperm 1

endif

 

_______________________________________

 

So you will get one token for one masturbation.

You use the original  Lovers token so  you can see the result in the Lovers diary ( Player and NPC )

 

You get one orgasm (female) / Cum (male)   for one masturbation.

 

NO changes in Lovers with PK esp or esm  or  Masterfiles of MB2 .

And the two script changes will not affect other Lovers Mods.

--------------

I thought that's what you want. No multiple orgasms.

Link to comment
1 hour ago, LostData751 said:

I want to modify the Lovers esm, but I find 0 information on how to create or modify esms.

Here is an article on why this is a bad idea and what to do instead:  https://forums.nexusmods.com/index.php?/topic/1092984-editing-oblivionesm/

Here are tutorials to help you understand more about esm and esp files:  https://www.tamriel-rebuilt.org/content/tutorial-esm-esp-understanding-master-files-and-plugin-files

Link to comment

He will not change a master file.  Only one script in Lovers esp  and two in MB2 esp

No changes in Lovers with PK esm needed !

 

----------------------------------------------------------------

The new script works  ( script change in Lovers with PK.esp )

 

Sex                          ;   added token

male  fucks  female  ;  Yes   Yes     ( Tamago sperm added )

female fucks male    ;  yes    Yes   ( no Tamago sperm added )

male  fucks male      ;  Yes   Yes    ( no Tamago sperm added )

Female fucks female;   Yes   Yes  (   no Tamago sperm added )

 

 

With Tamago setting female have sperm

Female fucks female;   Yes   Yes  (   Tamago sperm added )

 

The script will work with all Lovers Mods and Tamago without conflicts.

Good work.

 

_____________________________________

EDIT

I tested the MB2 script changes. The  "begin ScriptEffectUpdate "  part  is not good, it runs more than once  so you get more token.

 

Here the working scripts. Tested in game.

Player

Spoiler

scriptname xLoversMB2SpellSelfSC
;r20110122
;- Initial release.
;r20110123
;- 2nd release
;  bug fix : only female can equip bottom
;r20110129
;- 3rd release
;  change  : record boner item count
;  bug fix : modav -> modav2
;  bug fix : Ammo ReEquip is fixed
;

; stage
short sStage
short sDone_

; equipped items
ref rEquippedTop
ref rEquippedBottom
ref rEquippedTopAndBottom
ref rHand
ref rWeapon
ref rAmmo
ref rShield
ref rPlayerBoners

; misc vars
short sKeyPressed ; which key was pressed
short sCameraView ; was the player first person or third when masturbating started
float fTimer ; currently running timer
float fVoiceTimer ; timer for sound effects
ref rTmp ; temporary reference used in various places
float fTmp ; temp float variable
short sTmp ; temp short.. we're on a roll here
short sReady ; player is ready
ref rPlayer ; fucking bs
short sNumActors ; number of actors allowed to follow player
short sFatigue ; fatigue before starting
short sBoners

begin ScriptEffectFinish
    DebugPrint "xLoversMB2 [%n] - cleaning up" rPlayer
    set rPlayer to Player
    ; release any actors following the player
    if(xLoversMB2Quest.sAllowSpectators)
        set rTmp to GetFirstRef 69 1
        while(rTmp)
            ; is the actor following the player?
            if(rTmp.GetIsCurrentPackage xLoversMB2FollowPlayer)
                ; stop it
                rTmp.StopLook
                rTmp.RemoveScriptPackage

                ; resume doing whatever
                rTmp.PlayGroup Idle 1
            endif

            set rTmp to GetNextRef
        loop
    endif

    set xLoversMB2Quest.sDisallowAdvanceStage to 0

    set sStage to Player.GetItemCount xLoversMBStage
    if(sStage)
        ; we actually did something

        ; reset stage and remove any tokens
        while (Call xLoversCmnSetItemCount rPlayer xLoversMBStage 0)
            Call xLoversCmnSetItemCount rPlayer xLoversStageM 0
            Call xLoversCmnSetItemCount rPlayer xLoversPkrFlagTFC 0
            Call xLoversCmnSetItemCount rPlayer xLoversPkrIdentifier 0
            Call xLoversCmnSetItemCount rPlayer xLoversPkrStep 0
            ;-------------------------------------------------------------------------------------------------------
            Call xLoversCmnSetItemCount rPlayer, xLoversMB2fem, 0
            ;-------------------------------------------------------------------------------------------------------
        loop

        ; reset camera position
        con_TFC
        if(sCameraView != 1)
            ToggleFirstPerson 1
        endif

        ; reequip weapons and armor
        if(xLoversMB2Quest.sLeaveVulnerable == 0)

            ; clear erected cock
            Call xLoversCmnDeleteAllChinupoItem rPlayer

            ; re-equip clothing
            if(rEquippedTopAndBottom)
                Player.EquipItemNS rEquippedTopAndBottom
            endif

            if(rEquippedTop)
                Player.EquipItemNS rEquippedTop
            endif

            if(rEquippedBottom)
                Player.EquipItemNS rEquippedBottom
            endif

            ; re-equip hand armor
            if(rHand)
                Player.EquipItemNS rHand
            endif

            ; re-equip any weapons, ammo, or shields
            if(rWeapon)
                Player.EquipItemNS rWeapon
            endif

            if(rAmmo)
                set sTmp to (Player.GetItemCount rAmmo)
                set sTmp to sTmp - 1
                if(sTmp > 0)
                    Player.RemoveItemNS rAmmo sTmp
                endif
                Player.EquipItemNS rAmmo
                set xLoversMB2ActivatingAmmo.sAmmo to sTmp
                set sTmp to sTmp - 1
                if(sTmp > 0)
                    Player.AddItemNS rAmmo sTmp
                endif
                set sTmp to sTmp + 1
                if(sTmp > 0)
                    set rTmp to Player.PlaceAtMe rAmmo, 1
                    set xLoversMB2ActivatingAmmo.rAmmo to rTmp
                endif
            endif

            if(rShield)
                Player.EquipItemNS rShield
            endif

            ; revive player
            ; TODO: there should be a better way to do this
            set sTmp to Player.GetActorValue fatigue
            set sTmp to (Abs sTmp) + sFatigue
        else
            set sTmp to Player.GetActorValue fatigue
            set sTmp to (Abs sTmp)
        endif

        If Player.GetIsSex female

            Player.AddItemNS xLoversPkrCountSpermV 1

        else
            Player.AddItemNS xLoversPkrCountSperm 1

        endif

        ; make the player playable again
        Player.ModActorValue2 fatigue sTmp

        if(rPlayerBoners)
            while(Call xLoversCmnSetItemCount rPlayer rPlayerBoners sBoners)
            loop
        endif

        if(rAmmo) && (xLoversMB2ActivatingAmmo.sAmmo)
            StartQuest xLoversMB2ActivatingAmmo
        endif

        Player.SetGhost 0
        Player.SetUnconscious 0

    endif

    DebugPrint "xLoversMB2 [%n] - done" rPlayer

end

begin ScriptEffectStart
    set rPlayer to Player
    set rPlayerBoners to xLoversMB2Quest.rPlayerBoners

    ; check if the player is ready
    ; is target ready?
    Let sReady := Call xLoversCmnIsReady rPlayer
    if(sReady == 0)
        Player.Dispel xLoversMB2SpellTarget
    endif

    DebugPrint "xLoversMB2 [%n] - passed checks, starting up" rPlayer

    ; init vars
    while (Call xLoversCmnSetItemCount rPlayer xLoversMBStage 0)
        Call xLoversCmnSetItemCount rPlayer xLoversStageM 0
        Call xLoversCmnSetItemCount rPlayer xLoversPkrFlagTFC 0
        Call xLoversCmnSetItemCount rPlayer xLoversPkrIdentifier 0
        Call xLoversCmnSetItemCount rPlayer xLoversPkrStep 0
    loop

    if(rPlayerBoners)
        set sBoners to Player.GetItemCount rPlayerBoners
        Call xLoversCmnSetItemCount rPlayer rPlayerBoners 1
    endif

    set sFatigue to Player.GetActorValue fatigue
    set sDone_ to 0

    ; unsneak, put weapon away
    if(Player.IsSneaking)
        Player.SetForceSneak 0
    endif

    if(Player.IsWeaponOut)
        Player.SetAlert 0
    endif

    ; set the player so s/he cannot be harmed
    Player.SetUnconscious 1
    Player.SetGhost 1

    ; players equipped top and bottom, for removal
    if(Player.GetEquippedObject 18)
        set rEquippedTopAndBottom to Player.GetEquippedObject 18
    elseif(Player.GetEquippedObject 19)
        set rEquippedTopAndBottom to Player.GetEquippedObject 19
    elseif(Player.GetEquippedObject 20)
        set rEquippedTopAndBottom to Player.GetEquippedObject 20
    elseif(Player.GetEquippedObject 21)
        set rEquippedTopAndBottom to Player.GetEquippedObject 21
    else
        set rEquippedTop to Player.GetEquippedObject 2
        set rEquippedBottom to Player.GetEquippedObject 3
    endif

    ; unequip clothing
    if(rEquippedTopAndBottom)
        set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTopAndBottom
        if(sTmp == 0)
            Player.UnequipItemNS rEquippedTopAndBottom
        endif
    endif

    if(rEquippedTop) && (Player.GetIsSex Female) ; only female unequip top
        set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTop
        if(sTmp == 0)
            Player.UnequipItemNS rEquippedTop
        endif
    endif

    if(rEquippedBottom);
        set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedBottom
        if(sTmp == 0)
            Player.UnequipItemNS rEquippedBottom
        endif
    endif

    ;-------------------------------------------------------------------------------------------------------
    ;    ; set erect cock
    ;    if(rPlayerBoners) && (player.GetIsSex Male)
    ;            player.equipItemNS rPlayerBoners
    ;    endif

    ; This is self spell, so only the player can cast it.
    ;    if (Player.GetIsSex Male) || (xLoversMB2Quest.sAllowFutanari && xLoversMB2Quest.sPCfutanari)
    if Player.GetIsSex Male || xLoversMB2Quest.sPCfutanari
        if rPlayerBoners
            Player.EquipItemSilent rPlayerBoners
        endif
    else
        ;        AddItemNS xLoversMB2fem, 1
        Call xLoversCmnSetItemCount Player, xLoversMB2fem, 1
    endif
    ;-------------------------------------------------------------------------------------------------------

    ; unequip hand armor
    if(Player.GetEquippedObject 4)
        set rHand to Player.GetEquippedObject 4
        if(IsArmor rHand) && (xLoversMB2Quest.sAllowUnequipHands)
            Player.UnequipItemNS rHand
        else
            set rHand to 0
        endif
    endif

    ; unequip any weapons, ammo, or shields
    if(Player.GetEquippedObject 16)
        set rWeapon to Player.GetEquippedObject 16
        Player.UnequipItemNS rWeapon
    endif

    if(Player.GetEquippedObject 17)
        set rAmmo to Player.GetEquippedObject 17
        Player.UnequipItemNS rAmmo
    endif

    if(Player.GetEquippedObject 13)
        set rShield to Player.GetEquippedObject 13
        Player.UnequipItemNS rShield
    endif

    DebugPrint "xLoversMB2 [%n] - saved equipment" rPlayer

    ; save and change camera mode
    set sCameraView to IsThirdPerson
    if(sCameraView != 1)
        ToggleFirstPerson 0
    endif
    con_TFC

    DebugPrint "xLoversMB2 [%n] - reset camera" rPlayer

    ; tell xLovers to start  
    Call xLoversCmnSetItemCount rPlayer xLoversStageM 0
    Call xLoversCmnSetItemCount rPlayer xLoversPkrFlagTFC 4
    Call xLoversCmnSetItemCount rPlayer xLoversPkrIdentifier 2
    Call xLoversCmnSetItemCount rPlayer xLoversPkrStep 4
    Call xLoversCmnSetItemCount rPlayer xLoversMBStage 1

    DebugPrint "xLoversMB2 [%n] - xlovers notified" rPlayer

    ; initialize timers
    set fTimer to xLoversMB2Quest.fTimeOut
    set fVoiceTimer to xLoversMB2Quest.fVoiceTimeOut

    ; done with setup
    Player.PickIdle
end

begin ScriptEffectUpdate
    ; so we don't have to go through player's inventory so many times
    set sStage to Player.GetItemCount xLoversMBStage

    ; not a valid stage?
    if(sStage == 0)
        ; we're done
        Player.Dispel xLoversMB2SpellSelf
    endif

    ; more or less pause if console is open or player is interrupted
    if(IsTextInputInUse || IsConsoleOpen)
        return
    else
        if(OnKeyDown xLoversMB2Quest.sAdvanceStageKey) && (xLoversMB2Quest.sDisallowAdvanceStage == 0)
            set sKeyPressed to 1
        elseif(OnKeyDown xLoversMB2Quest.sPreviousStageKey)
            set sKeyPressed to 2
        elseif(OnKeyDown xLoversMB2Quest.sToggleTopKey)
            set sKeyPressed to 3
        elseif(OnKeyDown xLoversMB2Quest.sToggleBottomKey)
            set sKeyPressed to 4
        elseif(OnKeyDown xLoversMB2Quest.sChangePositionKey)
            set sKeyPressed to 5
        else
            set sKeyPressed to 0
        endif
    endif

    if(sDone_ == 0) ; during mb

        ; did the player force a stage change?
        if(sKeyPressed == 1)
            set fTimer to 0

            DebugPrint "xLoversMB2 [%n] - forced next stage" rPlayer
        elseif(sKeyPressed == 2)
            ; cannot go before first stage
            if(sStage > 1)
                ; remove counter
                Player.RemoveItemNS xLoversMBStage 1
                ; show next animation
                Player.PickIdle

                set sStage to Player.GetItemCount xLoversMBStage
                DebugPrint "xLoversMB2 [%n] - forced previous stage, %g" rPlayer sStage

                ; reset automatic timeout
                set fTimer to xLoversMB2Quest.fTimeOut - xLoversMB2Quest.fDegradeTimer * (sStage - 1)
            endif
        elseif(sKeyPressed == 3)
            ; toggle top

            ; see if the player is wearing anything, update the saved variable while we're at it

            if(Player.GetEquippedObject 18)
                set rEquippedTopAndBottom to Player.GetEquippedObject 18
                set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTopAndBottom
                if(sTmp == 0)
                    Player.UnequipItemNS rEquippedTopAndBottom
                endif
            elseif(Player.GetEquippedObject 19)
                set rEquippedTopAndBottom to Player.GetEquippedObject 19
                set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTopAndBottom
                if(sTmp == 0)
                    Player.UnequipItemNS rEquippedTopAndBottom
                else
                    set rEquippedTopAndBottom to 0
                endif
            elseif(Player.GetEquippedObject 20)
                set rEquippedTopAndBottom to Player.GetEquippedObject 20
                set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTopAndBottom
                if(sTmp == 0)
                    Player.UnequipItemNS rEquippedTopAndBottom
                else
                    set rEquippedTopAndBottom to 0
                endif
            elseif(Player.GetEquippedObject 21)
                set rEquippedTopAndBottom to Player.GetEquippedObject 21
                set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTopAndBottom
                if(sTmp == 0)
                    Player.UnequipItemNS rEquippedTopAndBottom
                else
                    set rEquippedTopAndBottom to 0
                endif
            elseif(Player.GetEquippedObject 2)
                set rEquippedTop to Player.GetEquippedObject 2
                set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTop
                if(sTmp == 0)
                    Player.UnequipItemNS rEquippedTop
                else
                    set rEquippedTop to 0
                endif
            else
                ; pretty sure player is topless right now, put something there
                if(rEquippedTop)
                    Player.EquipItemNS rEquippedTop
                elseif(rEquippedTopAndBottom) && (Player.GetIsSex Female) ;only female can equip bottom
                    Player.EquipItemNS rEquippedTopAndBottom
                endif
            endif

            ; update equipped items
            if(rEquippedTopAndBottom) && (Player.GetIsSex Female) ;only female can equip bottom
                set rEquippedTop to 0
                set rEquippedBottom to 0
            elseif(rEquippedTop)
                set rEquippedTopAndBottom to 0
            endif

            DebugPrint "xLoversMB2 [%n] - toggled top" rPlayer
        elseif(sKeyPressed == 4) && (Player.GetIsSex Female) ;only female can equip bottom
            ; toggle bottom

            ; see if the player is wearing anything, update the saved variable while we're at it
            if(Player.GetEquippedObject 18)
                set rEquippedTopAndBottom to Player.GetEquippedObject 18
                set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTopAndBottom
                if(sTmp == 0)
                    Player.UnequipItemNS rEquippedTopAndBottom
                else
                    set rEquippedTopAndBottom to 0
                endif
            elseif(Player.GetEquippedObject 19)
                set rEquippedTopAndBottom to Player.GetEquippedObject 19
                set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTopAndBottom
                if(sTmp == 0)
                    Player.UnequipItemNS rEquippedTopAndBottom
                else
                    set rEquippedTopAndBottom to 0
                endif
            elseif(Player.GetEquippedObject 20)
                set rEquippedTopAndBottom to Player.GetEquippedObject 20
                set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTopAndBottom
                if(sTmp == 0)
                    Player.UnequipItemNS rEquippedTopAndBottom
                else
                    set rEquippedTopAndBottom to 0
                endif
            elseif(Player.GetEquippedObject 21)
                set rEquippedTopAndBottom to Player.GetEquippedObject 21
                set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTopAndBottom
                if(sTmp == 0)
                    Player.UnequipItemNS rEquippedTopAndBottom
                else
                    set rEquippedTopAndBottom to 0
                endif
            elseif(Player.GetEquippedObject 3)
                if(rPlayerBoners) && (rPlayerBoners == Player.GetEquippedObject 3)
                    if(rEquippedBottom)
                        Player.EquipItemNS rEquippedBottom
                    elseif(rEquippedTopAndBottom)
                        Player.EquipItemNS rEquippedTopAndBottom
                    endif
                    Call xLoversCmnSetItemCount rPlayer rPlayerBoners 1
                    Player.PickIdle
                else
                    set rEquippedBottom to Player.GetEquippedObject 3
                    set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedBottom
                    if(sTmp == 0)
                        Player.UnequipItemNS rEquippedBottom
                    else
                        set rEquippedBottom to 0
                    endif
                endif
            else
                ; pretty sure player is bottomless right now, put something there
                if(rPlayerBoners)
                    Player.EquipItemNS rPlayerBoners
                    Call xLoversCmnSetItemCount rPlayer rPlayerBoners 2
                    Player.PickIdle
                elseif(rEquippedBottom)
                    Player.EquipItemNS rEquippedBottom
                elseif(rEquippedTopAndBottom)
                    Player.EquipItemNS rEquippedTopAndBottom
                endif
            endif

            ; update equipped items
            if(rEquippedTopAndBottom)
                set rEquippedTop to 0
                set rEquippedBottom to 0
            else
                set rEquippedTopAndBottom to 0
            endif

            DebugPrint "xLoversMB2 [%n] - toggled bottom" rPlayer
        elseif(sKeyPressed == 5)
            ; change position
            Player.PickIdle

            DebugPrint "xLoversMB2 [%n] - changed animation" rPlayer
        endif

        ; start winding down the clock
        set fTimer to fTimer - GetSecondsPassed

        ; if female play audio clip
        if(Player.GetIsSex Female)
            set fVoiceTimer to fVoiceTimer - GetSecondsPassed

            if(fVoiceTimer < 0)
                ; play the sound depending on which stage
                if(sStage < xLoversMB2Quest.sFemaleStages - 1)
                    Call xLoversCmnPlayVoice rPlayer sStage 0
                elseif(sStage < xLoversMB2Quest.sFemaleStages)
                    Call xLoversCmnPlayVoice rPlayer 4 0
                else
                    Call xLoversCmnPlayVoice rPlayer 5 0
                endif

                ; reset the timer
                set fTmp to xLoversMB2Quest.fVoiceVariableMin + xLoversMB2Quest.fVoiceVariableMax
                set fTmp to fTmp * (GetRandomPercent / 100) - xLoversMB2Quest.fVoiceVariableMin
                set fVoiceTimer to xLoversMB2Quest.fVoiceTimeOut + fTmp
            endif
        endif

        ; finish staged automatically
        if(fTimer < 0)        
            ; add another stage counter
            Player.AddItemNS xLoversMBStage 1

            ; show next animation
            Player.PickIdle

            set sStage to Player.GetItemCount xLoversMBStage
            DebugPrint "xLoversMB2 [%n] - now on stage %g" rPlayer sStage

            ; reset automatic timeout
            set fTimer to xLoversMB2Quest.fTimeOut - xLoversMB2Quest.fDegradeTimer * (sStage - 1)

            ; check if player is done next stage
            if(sStage >= xLoversMB2Quest.sFemaleStageEnd || sStage >= xLoversMB2Quest.sMaleStageEnd)
                ; no more stages of animations, go to exhausted state
                Player.AddItemNS xLoversStageM 5
                set fTimer to xLoversMB2Quest.fUnconsiousTimeOut
                set sDone_ to 1

                DebugPrint "xLoversMB2 [%n] - no more stages" rPlayer
            endif
        endif
    else ; exhausted
        ; run once when player hits exhausted state
        if(fTimer == xLoversMB2Quest.fUnconsiousTimeOut)
            Player.AddItemNS xLoversMBStage 1
            DebugPrint "xLoversMB2 [%n] - exhausting actor" rPlayer

            ; momma said knock you out
            Player.ModAV2 fatigue -10000
        endif

        ; wait to wake up
        set fTimer to fTimer - GetSecondsPassed

        ; wakey wakey
        if(fTimer < 0) && (sDone_ == 1)
            DebugPrint "xLoversMB2 [%n] - cleaning up now" rPlayer
            set sDone_ to 2
            Player.Dispel xLoversMB2SpellSelf
        endif
    endif

    ; have people gather around to watch
    set sNumActors to GetGameSetting iNumberActorsAllowedToFollowPlayer
    if(xLoversMB2Quest.sAllowSpectators == 1 && Player.GetNumFollowers < sNumActors)
        ; go through actors in the same cell
        set rTmp to GetFirstRef 69 1
        while(rTmp)
            ; can't fit any more actors, done
            if(Player.GetNumFollowers == sNumActors)
                break
            endif

            ; only allow actor to follow target if they pass checks
            set sTmp to 0

            if(xLoversMB2Quest.sUsexLoverCmnIsReady)
                Let sTmp := Call xLoversCmnIsReady rTmp
            else
                if(rTmp.GetDisabled == 0)
                    if(rTmp.GetDead == 0 && rTmp.GetUnconscious == 0 && rTmp.GetSleeping == 0)
                        if(rTmp.IsInCombat == 0 && rTmp.GetKnockedState == 0 && rTmp.GetIsCreature == 0)
                            if(rTmp.GetLOS Player && rTmp.GetDistance Player < xLoversMB2Quest.fSpectatorMaxDistance)
                                set sTmp to 1
                            endif
                        endif
                    endif
                endif
            endif

            ; actor is ready and not already following the player
            if(sTmp == 1 && rTmp.GetIsCurrentPackage xLoversMB2FollowPlayer == 0)
                ; make it less likely to be seen at longer distances, linear relationship for now
                set fTmp to xLoversMB2Quest.fSpectatorNoticeChance * (rTmp.GetDistance Player / xLoversMB2Quest.fSpectatorMaxDistance)
                if(GetRandomPercent < xLoversMB2Quest.fSpectatorNoticeChance - fTmp)
                    ; ok, actor is set to follow player
                    rTmp.Look Player
                    rTmp.AddScriptPackage xLoversMB2FollowPlayer
                endif
            endif

            set rTmp to GetNextRef
        loop
    endif
end
;<CSEBlock>
;<CSECaretPos> 3756 </CSECaretPos>
;</CSEBlock>

 

NPC

Spoiler

scriptname xLoversMB2SpellTargetMainSC
;r20110122
;- Initial release.
;r20110123
;- 2nd release
;
;r20110129  
;- 3rd release
;  change  : record boner item count
;  bug fix : ModAV -> ModAV2
;

ref rTarget
short sStage
short sDone_

; equipped items
ref rEquippedTop
ref rEquippedBottom
ref rEquippedTopAndBottom
ref rHand
ref rWeapon
ref rAmmo
ref rShield

; timers
float fTimer ; currently running timer
float fVoiceTimer ; timer for sound effects

; other vars
;ref rTmp ; temporary reference used in various places
float fTmp ; ..
short sTmp ; ..
short sFatigue ; fatigue before starting
array_var aNPCData
ref rMaleBonersNoskin ;
ref rMaleBonersSkin   ;
ref rFemaleBoners ;
short sNoskin
short sSkin_
short sFemale_

begin scriptEffectStart
    ; init vars
    set rMaleBonersNoskin to xLoversMB2Quest.rMaleBonersNoskin
    set rMaleBonersSkin to xLoversMB2Quest.rMaleBonersSkin
    set rFemaleBoners to xLoversMB2Quest.rFemaleBoners

    set rTarget to GetSelf
    set sDone_ to 0
    set sFatigue to rTarget.GetActorValue fatigue
end

begin ScriptEffectUpdate
    ; script may be executing -after- the ability is removed
    if(rTarget == 0 || sDone_ == -1)
        return
    endif

    if(sDone_ == 0)
        set sStage to rTarget.GetItemCount xLoversMBStage
    endif

    ; unsneak, put weapon away
    if(rTarget.IsSneaking)
        rTarget.SetForceSneak 0
    endif

    if(rTarget.IsWeaponOut)
        rTarget.SetAlert 0
    endif

    if(sStage == 0 && sDone_ == 0) ; just started up
        ; set the player so s/he cannot be harmed
        rTarget.SetUnconscious 1
        rTarget.SetGhost 1

        ; players equipped top and bottom, for removal
        if(rTarget.GetEquippedObject 18)
            set rEquippedTopAndBottom to rTarget.GetEquippedObject 18
        elseif(rTarget.GetEquippedObject 19)
            set rEquippedTopAndBottom to rTarget.GetEquippedObject 19
        elseif(rTarget.GetEquippedObject 20)
            set rEquippedTopAndBottom to rTarget.GetEquippedObject 20
        elseif(rTarget.GetEquippedObject 21)
            set rEquippedTopAndBottom to rTarget.GetEquippedObject 21
        else
            set rEquippedTop to rTarget.GetEquippedObject 2
            set rEquippedBottom to rTarget.GetEquippedObject 3
        endif

        ; unequip clothing
        if(rEquippedTopAndBottom)
            set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTopAndBottom
            if(sTmp == 0)
                rTarget.UnequipItemNS rEquippedTopAndBottom
            endif
        endif

        if(rEquippedTop) && (rTarget.GetIsSex Female) ; only female unequip top
            set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedTop
            if(sTmp == 0)
                rTarget.UnequipItemNS rEquippedTop
            endif
        endif

        if(rEquippedBottom) ;
            set sTmp to Call xLoversCmnIsBodySizeEquip rEquippedBottom
            if(sTmp == 0)
                rTarget.UnequipItemNS rEquippedBottom
            endif
        endif

        ;-------------------------------------------------------------------------------------------------------
        ; set erect cock
        if(rTarget.GetIsSex male)
            if(rMaleBonersNoskin)
                set sNoskin to rTarget.GetItemCount rMaleBonersNoskin
                while (Call xLoversCmnSetItemCount rTarget rMaleBonersNoskin 1)
                loop
            endif
            if(rMaleBonersSkin)
                set sSkin_ to rTarget.GetItemCount rMaleBonersSkin
                while (Call xLoversCmnSetItemCount rTarget rMaleBonersSkin 1)
                loop
            endif
            if(GetRandomPercent<xLoversMB2Quest.fNoSkinRatio)
                rTarget.EquipItemNS rMaleBonersNoskin
            elseif(rMaleBonersSkin)
                rTarget.EquipItemNS rMaleBonersSkin
            endif
        elseif rFemaleBoners && (GetRandomPercent < xLoversMB2Quest.fFutanariRatio)
            set sFemale_ to rTarget.GetItemCount rFemaleBoners
            while (Call xLoversCmnSetItemCount rTarget rFemaleBoners 2)
            loop
            rTarget.EquipItemNS rFemaleBoners
        else
            Call xLoversCmnSetItemCount rTarget, xLoversMB2fem, 1
        endif

        ;            if(GetRandomPercent<xLoversMB2Quest.fFutanariRatio)
        ;                set sFemale_ to rTarget.GetItemCount rFemaleBoners
        ;                while (call xLoversCmnSetItemCount rTarget rFemaleBoners 2)
        ;                loop
        ;                rTarget.equipItemNS rFemaleBoners
        ;            endif
        ;        endif
        ;-------------------------------------------------------------------------------------------------------


        ; unequip hand armor
        if(rTarget.GetEquippedObject 4)
            set rHand to rTarget.GetEquippedObject 4
            if(IsArmor rHand) && (xLoversMB2Quest.sAllowUnequipHands)
                rTarget.UnequipItemNS rHand
            else
                set rHand to 0
            endif
        endif

        ; unequip any weapons, ammo, or shields
        if(rTarget.GetEquippedObject 16)
            set rWeapon to rTarget.GetEquippedObject 16
            rTarget.UnequipItemNS rWeapon
        endif

        if(rTarget.GetEquippedObject 17)
            set rAmmo to rTarget.GetEquippedObject 17
            rTarget.UnequipItemNS rAmmo
        endif

        if(rTarget.GetEquippedObject 13)
            set rShield to rTarget.GetEquippedObject 13
            rTarget.UnequipItemNS rShield
        endif

        DebugPrint "xLoversMB2 [%n] - saved equipment" rTarget

        ; tell xLovers to start  
        Call xLoversCmnSetItemCount rTarget xLoversStageM 0
        Call xLoversCmnSetItemCount rTarget xLoversPkrFlagTFC 4
        Call xLoversCmnSetItemCount rTarget xLoversPkrIdentifier 2
        Call xLoversCmnSetItemCount rTarget xLoversPkrStep 4
        Call xLoversCmnSetItemCount rTarget xLoversMBStage 1

        DebugPrint "xLoversMB2 [%n] - xlovers notified" rTarget

        ; initialize timers
        set fTimer to xLoversMB2Quest.fTimeOut
        set fVoiceTimer to xLoversMB2Quest.fVoiceTimeOut

        ; save data
        Let aNPCData := ar_Construct array
        ar_Insert aNPCData 0 sNoskin
        ar_Insert aNPCData 0 sSkin_
        ar_Insert aNPCData 0 sFemale_
        ar_Insert aNPCData 0 rShield
        ar_Insert aNPCData 0 rAmmo
        ar_Insert aNPCData 0 rWeapon
        ar_Insert aNPCData 0 rHand
        ar_Insert aNPCData 0 rEquippedTopAndBottom
        ar_Insert aNPCData 0 rEquippedBottom
        ar_Insert aNPCData 0 rEquippedTop
        ar_Insert aNPCData 0 sFatigue
        ar_Insert aNPCData 0 rTarget

        ar_Insert xLoversMB2Quest.aNPC 0 aNPCData

        ; done with setup
        rTarget.PickIdle
    elseif(sStage == -1) ; ending
        ; run once when player hits exhausted state
        if(fTimer == xLoversMB2Quest.fUnconsiousTimeOut)
            DebugPrint "xLoversMB2 [%n] - exhausting actor" rTarget

            ; momma said knock you out
            rTarget.ModActorValue2 fatigue -10000
        endif

        ; wait to wake up
        set fTimer to fTimer - GetSecondsPassed

        ; wakey wakey
        if(fTimer < 0)
            DebugPrint "xLoversMB2 [%n] - cleaning up now" rTarget
            set sStage to -2
        endif

    elseif(sStage < -1) ; ended
        DebugPrint "xLoversMB2 [%n] - cleaning up" rTarget

        ; we actually did something
        if(sStage != -3)
            DebugPrint "xLoversMB2 [%n] - removing tokens" rTarget
            ; reset stage and remove any tokens    
            Call xLoversCmnSetItemCount rTarget xLoversStageM 0
            Call xLoversCmnSetItemCount rTarget xLoversPkrFlagTFC 0
            Call xLoversCmnSetItemCount rTarget xLoversPkrIdentifier 0
            Call xLoversCmnSetItemCount rTarget xLoversPkrStep 0
            Call xLoversCmnSetItemCount rTarget xLoversMBStage 0
            ;-------------------------------------------------------------------------------------------------------
            Call xLoversCmnSetItemCount rTarget, xLoversMB2fem, 0
            ;-------------------------------------------------------------------------------------------------------

            ; reequip weapons and armor
            if(xLoversMB2Quest.sLeaveVulnerable == 0)
                DebugPrint "xLoversMB2 [%n] - reequipping weapons and armor" rTarget

                ; re-equip clothing
                if(rEquippedTopAndBottom)
                    rTarget.EquipItemNS rEquippedTopAndBottom
                endif

                if(rEquippedTop)
                    rTarget.EquipItemNS rEquippedTop
                endif

                if(rEquippedBottom)
                    rTarget.EquipItemNS rEquippedBottom
                endif

                ; re-equip hand armor
                if(rHand)
                    rTarget.EquipItemNS rHand
                endif

                ; re-equip any weapons, ammo, or shields
                if(rWeapon)
                    rTarget.EquipItemNS rWeapon
                endif

                if(rAmmo)
                    rTarget.EquipItemNS rAmmo
                endif

                if(rShield)
                    rTarget.EquipItemNS rShield
                endif

                if(rMaleBonersNoskin)
                    Call xLoversCmnSetItemCount rTarget rMaleBonersNoskin sNoskin
                endif
                if(rMaleBonersSkin)
                    Call xLoversCmnSetItemCount rTarget rMaleBonersSkin sSkin_
                endif
                if(rFemaleBoners)
                    Call xLoversCmnSetItemCount rTarget rFemaleBoners sFemale_
                endif

                ; revive target
                ; TODO: there should be a better way to do this
                set sTmp to rTarget.GetActorValue fatigue
                set sTmp to (Abs sTmp) + sFatigue
            else
                set sTmp to rTarget.GetActorValue fatigue
                set sTmp to (Abs sTmp)
            endif

            DebugPrint "xLoversMB2 [%n] - making actor playable" rTarget

            ; make the target playable again
            rTarget.ModActorValue2 fatigue sTmp

            rTarget.SetGhost 0
            rTarget.SetUnconscious 0
        endif

        DebugPrint "xLoversMB2 [%n] - done" rTarget

        ; wrap up
        set sDone_ to -1
        rTarget.PickIdle

        ; remove the ability
        rTarget.RemoveSpellNS xLoversMB2SpellTargetMain
    else ; during masturbation        
        ; start winding down the clock
        set fTimer to fTimer - GetSecondsPassed

        ; if female
        if(rTarget.GetIsSex Female)
            ; wind down voice timer
            set fVoiceTimer to fVoiceTimer - GetSecondsPassed

            if(fVoiceTimer < 0)
                if(sStage < xLoversMB2Quest.sFemaleStages - 1)
                    Call xLoversCmnPlayVoice rTarget sStage 0
                elseif(sStage < xLoversMB2Quest.sFemaleStages)
                    Call xLoversCmnPlayVoice rTarget 4 0
                else
                    Call xLoversCmnPlayVoice rTarget 5 0
                endif

                ; reset the timer
                set fTmp to xLoversMB2Quest.fVoiceVariableMin + xLoversMB2Quest.fVoiceVariableMax
                set fTmp to fTmp * (GetRandomPercent / 100) - xLoversMB2Quest.fVoiceVariableMin
                set fVoiceTimer to xLoversMB2Quest.fVoiceTimeOut + fTmp
            endif
        endif

        ; finish stage automatically
        if(fTimer < 0)
            ; add another stage counter
            rTarget.AddItemNS xLoversMBStage 1

            ; show next animation
            rTarget.PickIdle

            set sStage to sStage + 1
            DebugPrint "xLoversMB2 [%n] - now on stage %g" rTarget sStage

            ; reset automatic timeout
            set fTimer to xLoversMB2Quest.fTimeOut - xLoversMB2Quest.fDegradeTimer * (sStage - 1)

            ; check if player is done next stage
            if(sStage >= xLoversMB2Quest.sFemaleStageEnd || sStage >= xLoversMB2Quest.sMaleStageEnd)
                ; no more stages of animations, go to exhausted state
                rTarget.AddItemNS xLoversStageM 5
                set fTimer to xLoversMB2Quest.fUnconsiousTimeOut
                set sDone_ to 1
                set sStage to -1

                DebugPrint "xLoversMB2 [%n] - no more stages" rTarget
            endif
        endif
    endif
end


begin ScriptEffectFinish
    If rTarget.GetIsSex male
        rTarget.AddItemNS xLoversPkrCountSperm 1
    else
        rTarget.AddItemNS xLoversPkrCountSpermV 1
    endif
end

;<CSEBlock>
;<CSECaretPos> 0 </CSECaretPos>
;</CSEBlock>

 

one masturbation = one token

 

Only the two scripts are changed ! No masterfile changed. No changed in Lovers with PK  esm/esp

You see the orgasms/cum  in the Lovers Player/NPC diary, increased by 1

Link to comment

I already know how to make the MB work with the sperm tokens and know exactly where to put it so it only generates 1 token, I wanted to leave the scripts untouched so I could perhaps use Tamago/Hiyoko's in the future. I read that the sperm&orgasm tokens are not bound so I'm not sure anymore.

 

I also wanted to use a "universal" orgasmtoken that is separated from the previous scripts so I don't mess with values that may be used somewhere else.

 

The last issue I would have is finding where to put the Call to the AddOrgasm token script so only 1 token is given after both NPCs reach the 4th stage of sex.

EDIT----------------------
Forget the new token
, I just don't know how to get it to work to both MB2 and withPk esp's, I didn't read that you tried it and that it worked without conflicts.

 

Do pregnancies and all of Tamago features work as intended still? I remember reading they had some form of separate counter for "sperm" and the "lovers sperm" counter still remains as the "orgasm" is any of this right?

---------------------------

 

Link to comment

???? MB2 and Tamago ????  How can masturbation cause pregnancy?  You are joking , right?

You can delete  MB2 esp and tamago still works. Or you can change very script in MB2 and Tamago works.

 

 

---------------------------------------------------------------

When I use original  token in MB2  I see the +1 Orgasm in the Lovers diary.  And only the two MB2 scripts have to be changed.

 

If you use a new token in MB2 you have to change Lovers with PK esm or esp to see the orgasm count. ( the diary script )

 

 

--------------

I told you  that your script with the original token works . The change in the xLoversPkrAddSpermCount   script.

And that change was the one that could have a conflict with Tamago. But I tested it and told you  that there is no conflict.

During sex all male and female get orgasm token  ( male orgasms in the diary calls cum )

The Tamago setting "female have sperm" works. Tamago sperm is added to the Def woman  during female-female sex.  And Off and Def  woman have orgasms.

When you use the Contraception token still orgasm token are added , but  Def  female does not get Tamago sperm in the invertory. And only Tamgo sperm can cause pregnancy.

 

And MB2  with the original token works.  And of course MP2 does not add Tamago sperm  to  player or NPC !

 

Everything works  with only one changed script in Lovers with PK esp change and  two changed scripts in MB2. ( yes during fucking you get 1 to 5 orgasms.  )

 

------------------

Why  new token  in Lovers with PK and MB2 ?  You can not remove/replace the original token , some Mods need the token.

So you add the new token next to the old token  ( new scripts in  Lovers with PK or MB2  or the 3 scripts we changed )

And then you have to change the diary.  Or do you want to check the number of orgasms only with the console ?

 

 

Link to comment
3 minutes ago, fejeena said:

???? MB2 and Tamago ????  How can masturbation cause pregnancy?  You are joking , right?

Talking about the other scripts and tokens that are labelled as sperm, I thought perhaps how the mods handled this could allow for a female to get pregnant thanks to masturbation.

 

4 minutes ago, fejeena said:

When I use original  token in MB2  I see the +1 Orgasm in the Lovers diary.  And only the two MB2 scripts have to be changed.

 

If you use a new token in MB2 you have to change Lovers with PK esm or esp to see the orgasm count. ( the diary script )

I did change the diary and the new token worked as intended, not for MB however, I couldn't get it to work, So the "new token" changes were discarded.

 

6 minutes ago, fejeena said:

Everything works  with only one changed script in Lovers with PK esp change and  two changed scripts in MB2. ( yes during fucking you get 1 to 5 orgasms.  )

Good, the last thing I would like to change, but isn't necessary is to change the count so it gives 1 orgasm only to each actor during sex. I understand that females in reality can get multiple orgasms during this, but this is just a personal preference.

Thanks for all the help  so far fejeena & gregathit.

Link to comment
17 minutes ago, LostData751 said:

Talking about the other scripts and tokens that are labelled as sperm, I thought perhaps how the mods handled this could allow for a female to get pregnant thanks to masturbation.

 

You can play Lovers without MB2.  No MB2 does not add tamago Sperm. And the Lovers cum/orgasm token cause no pregnancy.

 

 

21 minutes ago, LostData751 said:

 

I did change the diary and the new token worked as intended, not for MB however, I couldn't get it to work, So the "new token" changes were discarded.

 

??  How is that possible ? The diary script  counts  the token. You use the same token in Lovers and MB2 ( i hope ) so it should count every token in the Player/NPC inventory.

Normally you add the new token in the Lovers with PK esm (  yes ESM )  because that is the masterfile of all other Lovers Mods.

This way MB2 and Lovers with PK esp  can use the token. ( and other Lovers Mods can use the token, maybe in quests or like my Dibella altar )

 

If you add the new orgasm token in MB2 ( that is in loadorder below Lovers with PK esm and esp )  the Lovers diary script can not use the token.

And a esp lower in load order can not be a masterfile of a esp above ( and never a esp can be a masterfile of a esm )

If you add the new token in the MB2 esp you must add the diary script also in the MB2 esp.

Of course MB2 has masterfile Lovers with PK esm  so you can overwrite the  diary script in the MB2 esp and make the changes. 

But if you ever want to use  the new orgasm token in other Mods you make....  you have to place the Mods in load order after MB2 ( not good ),  or check the token with script.

 

So better add the new token in the Lovers with PK esm .

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use