LostData751 Posted July 26, 2020 Posted July 26, 2020 Hello again, I'm once again looking to modifying one of the many esps or scripts from the Lovers mods and after editing a few other I noticed Rapes aren't very immersive. If you disable the "Rape is an Attack" option in the LoversSettings, guards that pass by while you are getting gangraped will just ignore you, despite of what the "dialogue" cries for help say. If it's enabled however, chaos occurs when a rape triggers and there's still enemies around, also on scripted rapes such as those of LoversTrueCrimeEx, specially in prison since guards will almost always come in and cancel whatever is happening and sometimes cause the game to crash. Also, during the scripted Rapes of LoversTrueCrimeEx, the escape feature is completely disabled, I know they call some form of different "intialize" script so it doesn't exactly count as a rape in the action, however the counter for the diary confirms "raped" tokens are added. My idea is to make changes to the script and allow it to "start combat" with the aggressor (or victim) if a button is pressed, like Left Mouse Button, to simulate a cry for help. my main problem is that the script for the escape doesn't have the reference for the player or the offender/act1/xme or respective reference required to achieve this. I would like to know if another option already exists or if it's possible to make a new script altogether.
gregathit Posted July 26, 2020 Posted July 26, 2020 Well, part of the problem is you have things backwards: Lovers Escape Rape V Player - you prevent rape on your own with the block key Lovers Help Rape V Player - companions rescue you from rape There is an updated version of lovers help (others come to help you): https://www.loverslab.com/files/file/1853-lovershelprapevplayer-updated/ The most current version of lovers escape (you prevent rape by using the block key - careful timing is required): https://www.loverslab.com/files/file/355-lovers-supplemental-plugin-pack/
LostData751 Posted July 26, 2020 Author Posted July 26, 2020 Thanks, I saw the updated esp sometime ago but forgot to download it, couldn't find it again. I will try it and see if it disrupts any of the features of TrueCrimeEx. Also, the reason for changing a mod like this is that I want to make asking for help optional with a button press while keeping the escape function. I'll see what I can do with this for the time being.
LostData751 Posted July 26, 2020 Author Posted July 26, 2020 I modified the HelpRapeVPlayer script, first I removed the IsActorEvil and IsActorEssential checks that prevented the player from doing anything if this happened. Then I added a condition on which you must press or hold Left Click to have valid NPCs come to help. Additionally I added a barebones "Escape" function if you Press or Hold Right-click, you will attempt escape, I believe it's best to hold the buttons in due to how I believe the QuestDelayTimer works. Spoiler scn xLoversHelpRapeVPlayerQuestScript float fQuestDelayTime ref me ref assailant ref tmpr short tmps float f0 Begin GameMode set fQuestDelayTime to 0.75 if player.GetItemCount xLoversPkrIdentifier != 4 return ;player not being raped else let me := player let assailant := Call xLoversCmnGetPartner me if assailant == 0 return ;rape may be finished or rapist may be needed elsewhere else if IsControlPressed 4 let tmpr := GetFirstRef 69 2 while( tmpr ) set tmps to 0 if tmpr.GetDisabled==0 && tmpr!=assailant && tmpr.GetDead==0 && tmpr.GetIsCreature==0 && tmpr.GetUnconscious==0 && tmpr.GetKnockedState==0 && tmpr.GetSleeping==0 && tmpr.GetInFaction DremoraFaction==0 && tmpr.IsActorEvil == 0 && tmpr.GetItemCount xLoversPkrIdentifier==0 if Call xLoversCmnIsCompanion tmpr set tmps to 1 elseif player.GetLOS tmpr && (tmpr.IsGuard || tmpr.GetIsClass Knight || tmpr.GetInFaction ImperialLegion) set tmps to 1 endif if tmps && tmpr.IsInCombat && tmpr.GetCombatTarget == assailant set tmps to 0 ;already helping else set f0 to 0 - tmpr.GetDisposition assailant tmpr.ModDisposition assailant f0 tmpr.StartCombat assailant endif endif set tmpr to GetNextRef loop endif if IsControlPressed 6 if GetRandomPercent < 15 player.AddItemNS xLoversPkrAbort 1 endif endif endif endif End I still would like to change a few things, such as also allow the player to abort rape or any sex act, "force" a cry for help on player's victims to cause NPCs to attack the player instead, change how the Line of sight condition works, currently if guards help you when you're on exteriors, they will come from very far away, much farther than they usually help you in regular combat.
LostData751 Posted July 27, 2020 Author Posted July 27, 2020 Spoiler scn xLoversHelpRapeVPlayerQuestScript float fQuestDelayTime ref victim ref assailant ref tmpr short tmps float f0 Begin GameMode set fQuestDelayTime to 0.75 if player.GetItemCount xLoversPkrIdentifier == 0 || player.GetItemCount xLoversPkrIdentifier >= 5 ; just to make sure return ;player not in sex or rape else if IsControlPressed 6 if player.GetItemCount xLoversPkrIdentifier == 1 || player.GetItemCount xLoversPkrIdentifier == 2 player.AddItemNS xLoversPkrAbort 1 else if GetRandomPercent < 15 player.AddItemNS xLoversPkrAbort 1 endif endif endif if player.GetItemCount xLoversPkrIdentifier == 4 let victim := player let assailant := Call xLoversCmnGetPartner victim elseif player.GetItemCount xLoversPkrIdentifier == 3 let assailant := player let victim := Call xLoversCmnGetPartner assailant endif if assailant == 0 || victim == 0 return ;rape may be finished or rapist may be needed elsewhere else if IsControlPressed 4 let tmpr := GetFirstRef 69 2 while( tmpr ) set tmps to 0 if tmpr.GetDisabled==0 && tmpr!=assailant && tmpr!=victim && tmpr.GetDead==0 && tmpr.GetIsCreature==0 && tmpr.GetUnconscious==0 && tmpr.GetKnockedState==0 && tmpr.GetSleeping==0 && tmpr.GetInFaction DremoraFaction==0 && tmpr.IsActorEvil == 0 && tmpr.GetItemCount xLoversPkrIdentifier==0 if Call xLoversCmnIsCompanion tmpr if assailant != player set tmps to 1 endif elseif tmpr.IsGuard || tmpr.GetIsClass Knight || tmpr.GetInFaction ImperialLegion if player.GetLOS tmpr && player.GetDistance tmpr <= 600 set tmps to 1 elseif player.GetDistance tmpr <= 400 set tmps to 1 endif else if player.GetLOS tmpr && player.GetDistance tmpr <= 400 set tmps to 1 elseif player.GetDistance tmpr <= 200 set tmps to 1 endif endif if tmps && tmpr.IsInCombat && tmpr.GetCombatTarget == assailant set tmps to 0 ;already helping elseif tmps == 1 set f0 to 0 - tmpr.GetDisposition assailant tmpr.ModDisposition assailant f0 tmpr.StartCombat assailant endif endif set tmpr to GetNextRef loop endif endif endif End Above is the most recent edited script, I'm also putting it here so everyone can see and playtest it, I've so far tested all "features" I wanted to add and it seems to work, I also made tweaks regarding things that could have been oversighted such as companions targetting the player if they are the off/assailant/rapist. Also noticed a major flaw with the previous iteration: Spoiler %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if Call xLoversCmnIsCompanion tmpr set tmps to 1 elseif player.GetLOS tmpr && (tmpr.IsGuard || tmpr.GetIsClass Knight || tmpr.GetInFaction ImperialLegion) set tmps to 1 endif %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This section of the code checks for companions or guards so a tag/flag is checked so the comparators below proceed, however none of them actually require the tmps to % be set to tmps 1 to begin assisting, so guards wouldn't help the player because of being in LOS, instead, they assisted regardless of where they were, this also was true for % every other actor rendered in the game, including companions. if tmps && tmpr.IsInCombat && tmpr.GetCombatTarget == assailant set tmps to 0 ;already helping dsaasd else <<<--- Doesn't even check for the tmps set f0 to 0 - tmpr.GetDisposition assailant tmpr.ModDisposition assailant f0 tmpr.StartCombat assailant endif The simple list of "features" this script edit adds: Allow the player to attempt escaping rapes while keeping the help counterpart together, essentially merging the capabilities. Players can now immediately abort Sex by holding Right-click. If player is the rapist, they still can attempt to "escape" with the same chance (this could be changed to also have a 100%). Crying for help is now optional, holding left-click will cause nearby NPCs to help if you if elligible, if they have Line of Sight the distance on which they may help you increases by 200, if the NPC is also a guard the distance is increased an additional 200, Companions will always assist you, regardless of line of sight. If the player is the rapist, the same as above will happen, this time the player being the combat target, Companions should not attack you, haven't tested this yet. EDIT: Also allows to escape scripted rapes such as those initialized the same way as TrueCrimeEx! It generally causes sex/rape acts occur faster after waking up, I haven't seen anything get majorly broken due to these changes. I think that's all for now, I didn't know exactly where in the CS I could find what the Identifiers came from, so I made sure it only counted the ones I could see in the game. I appreciate all the help so far, if anyone has any comments or ideas that could help improve this I will appreciate them. LoversHelpRapeVPlayer.esp
Recommended Posts
Archived
This topic is now archived and is closed to further replies.