QuiteTheTail Posted March 10, 2015 Posted March 10, 2015 Here is the original script: 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 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 ; make the player playable again player.modActorValue2 fatigue sTmp if(rPlayerBoners) && (player.GetIsSex Male) 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.equipItemNS rPlayerBoners 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> 10792 </CSECaretPos> ;</CSEBlock> I wonder what needs to be changed to make futa PC to play the male animation.
QuiteTheTail Posted March 10, 2015 Author Posted March 10, 2015 Clipboard panic... and I have problems editing past comment (perhaps because of the code tag). Once again, original script: 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 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 ; 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 ; 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> 10792 </CSECaretPos> ;</CSEBlock>
Storms of Superior Posted March 10, 2015 Posted March 10, 2015 Why don't you try keeping an uncompleted copy of your scripts somewhere so you can make changes without recompiling?
QuiteTheTail Posted March 10, 2015 Author Posted March 10, 2015 fejeena pointed out that some animations are specific to a gender (like the one we're discussing here). So editing the script alone is not enough. Why don't you try keeping an uncompleted copy of your scripts somewhere so you can make changes without recompiling? To be honest, I don't know if recompiling is needed. Mine was a guess.
Storms of Superior Posted March 10, 2015 Posted March 10, 2015 Ok I was just guessing since I'm in perpetual modder's burn out, and can't seem to make myself learn this stuff.
fejeena Posted March 10, 2015 Posted March 10, 2015 nonsense I post in the other thread. I must be possible without Idleanimation changes, the female NPCs can use Futa Body and male Animation so the Player must also be able. The ini futa Setting set xLoversMB2Quest.sAllowFutanari to 1 is in the script: xLoversMB2QuestSC if(sAllowFutanari) if ( FileExists "Data\Meshes\clothes\as\NormalAnimFuta.nif") && (sBoners != 2) debugPrint "xLoversMB2 - Futanari is find" set rFemaleBoners to xLoversPkrFutanari001 elseif( FileExists "Data\Meshes\clothes\as\NormalAnimFuta.nif") debugPrint "xLoversMB2 - Hutanari is find" set rFemaleBoners to xBone1 elseif ( FileExists "Data\Meshes\clothes\as\NormalAnimFuta.nif") debugPrint "xLoversMB2 - Futanari is find" set rFemaleBoners to xLoversPkrFutanari001 endif else set rFemaleBoners to 0 endif if(player.GetIsSex Female) set rPlayerBoners to rFemaleBoners endif ; init array to keep track of npcs let aNPC := ar_construct array PrintToConsole "xLoversMB2 - loaded" perhaps: Change the yellow part if(player.GetIsSex Female)&&(sAllowFutanari==1) if ( FileExists "Data\Meshes\clothes\as\NormalAnimFuta.nif") && (sBoners != 2) debugPrint "xLoversMB2 - Futanari is find" set rFemaleBoners to xLoversPkrFutanari001 elseif( FileExists "Data\Meshes\clothes\as\NormalAnimFuta.nif") debugPrint "xLoversMB2 - Hutanari is find" set rFemaleBoners to xBone1 elseif ( FileExists "Data\Meshes\clothes\as\NormalAnimFuta.nif") debugPrint "xLoversMB2 - Futanari is find" set rFemaleBoners to xLoversPkrFutanari001 endif else set rFemaleBoners to 0 endif if(player.GetIsSex Female)&&(sAllowFutanari==0) set rPlayerBoners to rFemaleBoners endif --------------------------------------------------------- ! I don't know anything about scripts ! perhaps it is bullshit.
QuiteTheTail Posted March 10, 2015 Author Posted March 10, 2015 the female NPCs can use Futa Body and male Animation so the Player must also be able. Great intuition. As for the code snippet, it may be bullshit or not, but the condition (AllowFutanari==0) looks to me, unless I'm misunderstanding, equivalent to say "using PC (futanari) male animation AND allowing futanari NPCs are mutually exclusive conditions" (which is not the intent). Sorry, I missed the change in the condition of the first if statement. Now I get your point. If you ask my opinion, it should work.
varenne Posted March 10, 2015 Posted March 10, 2015 First yes, you do need to recompile any time you edit the script. It is the icon default position on the tool bar. (I am using Construction Set Extended or CS/E for short. Vanilla CS it may appear differently.) And yeah, the male animations for NPC futa do somewhat work, some the hand/arm positions on the NPC companions I just tested were a bit off. Could be why no has pursued this further. I'll take a look at the scripts too, once I get a break from work. (I just had a crap load of stuff dumped in my lap to get done by Thursday morning.)
QuiteTheTail Posted March 10, 2015 Author Posted March 10, 2015 Actually I launch the vanilla CS using a batch file: obse_loader.exe -editor placed in the same folder of obse (Oblivion folder).
fejeena Posted March 10, 2015 Posted March 10, 2015 would be nice to have separate Settings in the ini -------------------------------------------------------------------------------------- ; allow female gets boner. if you want allow , set to 1; default: 0set xLoversMB2Quest.sAllowFutanari to 1 ; random percentage of of female NPC are Futanari. work only if you allow Futanari.; default: 5.0set xLoversMB2Quest.fFutanariRatio to 0.0 ; random percentage of of female Player are Futanari. work only if you allow Futanari. (0=no futa. 100= use always futa Body and male animations); default: 0.0set xLoversMB2Quest.fFutanariPlayerRatio to 100.0 ---------------------------------------------------- So you can have only a futa Player and no futa NPCs fFutanariPlayerRatio must be add as new function/Setting in the script.
fejeena Posted March 10, 2015 Posted March 10, 2015 You need no new obse_loader.exe Only a new desktop shortcut The new desktop shortcut you right click and click properties and rename the desktop Icon path to .....\Oblivion\obse_loader.exe" -Editor See my yellow Link below : Oblivion Construction set and ConstructionSet extender(CSE):
varenne Posted March 10, 2015 Posted March 10, 2015 Actually I launch the vanilla CS using a batch file: obse_loader.exe -editor placed in the same folder of obse (Oblivion folder). I strongly suggest graduating to CS/E at some point. Much more stable and improved functionality. It is what most serious Oblivion modders use. Not hard to set up and install. I use version 5.xxx. Stay away from 6.xxx as some of the UI windows plain suck. would be nice to have separate Settings in the ini -------------------------------------------------------------------------------------- ; allow female gets boner. if you want allow , set to 1 ; default: 0 set xLoversMB2Quest.sAllowFutanari to 1 ; random percentage of of female NPC are Futanari. work only if you allow Futanari. ; default: 5.0 set xLoversMB2Quest.fFutanariRatio to 0.0 ; random percentage of of female Player are Futanari. work only if you allow Futanari. (0=no futa. 100= use always futa Body and male animations) ; default: 0.0 set xLoversMB2Quest.fFutanariPlayerRatio to 100.0 ---------------------------------------------------- So you can have only a futa Player and no futa NPCs fFutanariPlayerRatio must be add as new function/Setting in the script. Yeah... I kind of wouldn't do it that way. Your gaining PC futa by sacrificing NPC futa, nah. I 'm sure a fix is something simple, I just need time to review the scripts. The code text you post above this one looks promising. Have to check the variables at the top of the script too.
QuiteTheTail Posted March 10, 2015 Author Posted March 10, 2015 The real problem with the current approach is the following. Looks like there's no middle between: 1) make all female chars futanari (100% chance, to make sure that PC is included) and 2) disable futanari. A weird solution to use a value for chance <100% would be saving the game before casting MB on self for the first time, and reload each time the result is different from the one wanted. Anyway, whatever you set or do is irrelevant, as PC will continue to use female animations. Almost forgot, sorry for putting this so bluntly... the ordinary mesh for my character has a limp penis attached (Blender surgery). That doesn't qualify HER (from a CS point of view) as a futanari, strictly speaking.
fejeena Posted March 10, 2015 Posted March 10, 2015 "1) make all female chars futanari (100% chance, to make sure that PC is included)" ? In my game my female Player have no futa lower Body with the 100% Chance Setting...still lower Body without a penis and of course the female animations.
varenne Posted March 10, 2015 Posted March 10, 2015 @ QuiteTheTail - No, not quite. The optimum final result is you will have separate Futanari settings for both NPC and PC. You will also retain the ini settings capablity, extending it if necessary to include a new one for female PCs. The ini file is read upon game load and any variables set, so any changes that are made to the ini get picked up each time, which is why you use them. I was looking over the script you posted this morning in the other thread as I feel that is missing a section for PC futa. But RL work demandshave taken the front burner for now. I feel it will possibly be an edit/fix of both the main PC scripts, the one you located and the one fejeena posted and an additional user setting in the ini. And LAPF MB2 uses lowerbody as clothes, so your existing female mesh has no part in this equation. Example:
QuiteTheTail Posted March 10, 2015 Author Posted March 10, 2015 Thanks for the clarifiation. So 100% means "100% ratio of NPCs". About your case (referred to fejeena), I'm a little confused. Indeed there are so many settings... I understand you either have the "female attacker grow penis" disabled (unless also this setting works only for NPCs, as I'm starting to doubt) or use the "reverse rape" ini entry set to "always on". Nevermind, this is getting overly complicated to me. *head spinning* Thanks varenne for taking the time to look into this, and for the clarifiation too. I'm going to grab my copy of CSE.
varenne Posted March 11, 2015 Posted March 11, 2015 Yes, that 100% only applies to the female NPCs, and on each time the Install Lust spell is cast on a female NPC. The game does not store in memory or a save game who is going to be futa or not; it is determined at the moment of casting the spell. If you cast it 100 times and it's set to 50%, then it will be 50% of the time out of that 100 casts, or very near it. (That depends entirely on the % algorithm used in OBSE.) So, the ini settings in MB2 for futa must be enabled to allow both NPC and PC to experience futa animations, it's just something is broke or incomplete with the PC portion of it. Your confusion is with where and which Lovers MOD produces each affect. Enable futa females actually has it's place in the main or core Lovers with PK.esp file; female attacker grow penis. You can see that in the main spell you cast for that MOD and menu. That way when Lovers animations kick in, the game knows how to display a female; futa or not. While reverse rape is specifically a RaperS construct. (Not sure if it is just WappyOne's version or prior versions too.) There is at least one call to an external construct I noticed today in one of those two scripts. It may be to Lovers with PK, not sure. MB2 has been reworked a few times to fix issues, and this is one that has remained. And yes, these discussion around Lovers MODs, gender and especially futa can be taxing on the ol' grey matter. Give it some time, it'll eventually begin to make sense.
QuiteTheTail Posted March 11, 2015 Author Posted March 11, 2015 would be nice to have separate Settings in the ini -------------------------------------------------------------------------------------- ; allow female gets boner. if you want allow , set to 1 ; default: 0 set xLoversMB2Quest.sAllowFutanari to 1 ; random percentage of of female NPC are Futanari. work only if you allow Futanari. ; default: 5.0 set xLoversMB2Quest.fFutanariRatio to 0.0 ; random percentage of of female Player are Futanari. work only if you allow Futanari. (0=no futa. 100= use always futa Body and male animations) ; default: 0.0 set xLoversMB2Quest.fFutanariPlayerRatio to 100.0 ---------------------------------------------------- So you can have only a futa Player and no futa NPCs fFutanariPlayerRatio must be add as new function/Setting in the script. This is the additional .ini setting I'm using in my "experiments" (must be added to LoversMB2.ini) ; set female PC as futanari, has no impact on male PC ; default: 0 set xLoversMB2Quest.sPcFutanari to 0 Better to leave all other options untouched.
varenne Posted March 11, 2015 Posted March 11, 2015 I'm not sure if that is needed as Lovers with PK already has a setting for that. And just adding set xLoversMB2Quest.sPcFutanari to 0 to the LoversMB2.ini wouldn't accomplish anything. It would also need to be added to one of the scripts. (The better or more preferred way would be to just call up the setting from the Lovers with PK.esp.) Feel free to continue your research and experimenting, it's a great way to learn.
QuiteTheTail Posted March 11, 2015 Author Posted March 11, 2015 Yes, I think it's definitely necessary since the only LwPK setting that could be related (Woman in attacking position grows penis) controls couples animation, here we're talking about self jerking. Unless masturbating is contemplated in LwPK, and is considered as a self-attack Of corse the modded script(s) must declare, initialize and use the new variable at some point. Oh, and the default value is intended for non futa female PC. Must be set to 1 for testing. EDIT Keeping LoverswithPK.ini as it is and introducing a new variable in LoverMB2.ini is better in my opinion, because keeps things separated. As a player, one may prefer to use the futa lowerbody option for "binary" animations, and leave the female animation (and lowerbody mesh) for the masturbate spell. Adds more freedom of choice.
fejeena Posted March 11, 2015 Posted March 11, 2015 The LAPF/Lovers with PK and the MB2 futa Settings are totally Independent. You can set "Attacking women grow Penis" to on or off , this has no effect on MB2 futa. LAPF Settings works only with "normal" and rape sex = the LAPF animations. (ani2 Folder) MB2 Settings works only wtih Masturbation = MB2 animation (mb Folder) !!! nothing in Lovers with PK.esm or esp must be changed. Only MB2 must be chaged to enable Player futa Masturbation.
QuiteTheTail Posted March 11, 2015 Author Posted March 11, 2015 Changed lines starting at 243 in xLoversMB2SpellSelfSC as follows: ; set erect cock if(rPlayerBoners) if(player.GetIsSex Male) || ((player.GetIsSex Female) && (xLoversMB2Quest.sPcFutanari)) player.equipItemNS rPlayerBoners endif endif Compilation was successful, but still the animation picks stages from the female group, and lowerbody mesh is the default one. There must be a reference somewhere else, probably in xLoversMB2QuestSC script.
QuiteTheTail Posted March 11, 2015 Author Posted March 11, 2015 The LAPF/Lovers with PK and the MB2 futa Settings are totally Independent. You can set "Attacking women grow Penis" to on or off , this has no effect on MB2 futa. LAPF Settings works only with "normal" and rape sex = the LAPF animations. (ani2 Folder) MB2 Settings works only wtih Masturbation = MB2 animation (mb Folder) !!! nothing in Lovers with PK.esm or esp must be changed. Only MB2 must be chaged to enable Player futa Masturbation. We are of one mind.
QuiteTheTail Posted March 11, 2015 Author Posted March 11, 2015 These are the relevant parts of xLoversMB2QuestSC I added or edited ;line 31 short sPcFutanari ; used to check if Player character is futanari ... ;line 110 set sPcFutanari to 0 ; default value in case LoversMB2.ini file was missing ;line 247 if(player.GetIsSex Female) if !(sPcFutanari) set rPlayerBoners to rFemaleBoners elseif ( FileExists "Data\Meshes\clothes\as\NormalAnimFuta.nif") && (sBoners != 2) debugPrint "xLoversMB2 - Futanari is find" set rFemaleBoners to xLoversPkrFutanari001 elseif( FileExists "Data\Meshes\clothes\as\NormalAnimFuta.nif") debugPrint "xLoversMB2 - Hutanari is find" set rFemaleBoners to xBone1 elseif ( FileExists "Data\Meshes\clothes\as\NormalAnimFuta.nif") debugPrint "xLoversMB2 - Futanari is find" set rFemaleBoners to xLoversPkrFutanari001 endif endif Something else must be changed though.
QuiteTheTail Posted March 11, 2015 Author Posted March 11, 2015 Another thing I've noticed, is that Setbody/LoverJoystick seem to have no effect on xLovers spells. The penis setting applied is the one from LoverswithPK.ini. I use a custom body type integrated in the Bombshell menu. I was expecting my custom femalelowerbody_AP.nif to show up (works this way with ani2 animations), but I was wrong. movomo knows for sure.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.