LostData751 Posted July 10, 2020 Posted July 10, 2020 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?
fejeena Posted July 10, 2020 Posted July 10, 2020 ? 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)
LostData751 Posted July 10, 2020 Author Posted July 10, 2020 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?
fejeena Posted July 10, 2020 Posted July 10, 2020 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): "
fejeena Posted July 10, 2020 Posted July 10, 2020 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.
LostData751 Posted July 10, 2020 Author Posted July 10, 2020 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.
fejeena Posted July 11, 2020 Posted July 11, 2020 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
LostData751 Posted July 11, 2020 Author Posted July 11, 2020 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 ;ŽË¸‚³‚ꂽ
LostData751 Posted July 11, 2020 Author Posted July 11, 2020 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.
gregathit Posted July 11, 2020 Posted July 11, 2020 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.
LostData751 Posted July 11, 2020 Author Posted July 11, 2020 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.
fejeena Posted July 12, 2020 Posted July 12, 2020 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.
LostData751 Posted July 12, 2020 Author Posted July 12, 2020 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.
LostData751 Posted July 12, 2020 Author Posted July 12, 2020 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.
fejeena Posted July 12, 2020 Posted July 12, 2020 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 ?
LostData751 Posted July 12, 2020 Author Posted July 12, 2020 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,
fejeena Posted July 12, 2020 Posted July 12, 2020 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.
LostData751 Posted July 12, 2020 Author Posted July 12, 2020 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.
fejeena Posted July 12, 2020 Posted July 12, 2020 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.
gregathit Posted July 12, 2020 Posted July 12, 2020 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
fejeena Posted July 12, 2020 Posted July 12, 2020 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
LostData751 Posted July 12, 2020 Author Posted July 12, 2020 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? ---------------------------
fejeena Posted July 12, 2020 Posted July 12, 2020 ???? 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 ?
LostData751 Posted July 12, 2020 Author Posted July 12, 2020 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.
fejeena Posted July 12, 2020 Posted July 12, 2020 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 .
Recommended Posts
Archived
This topic is now archived and is closed to further replies.