Jump to content

Recommended Posts

Posted
14 hours ago, Machiavelique said:

Yes, and it's already been added for Stalkers and Combat Sexors for the next version and ‘seems’ to be working.

 

However,  there will be limits: a maximum of 3 different NPC victims can be pursued by Stalkers, and a maximum of 3 different NPC victims can be pursued by Combat Sexors. But a single victim can be tracked by several Stalkers / Combat Sexors. The maximum number of active Stalkers / Combat Sexors will remain limited by the MCM menu. If Sunny is tracked by 2 Stalkers and Veronica by 3 Stalkers, the player can be tracked by a maximum of 10 Stalkers (if the rate has been set to 15 in the MCM Menu).

 

 

At the moment I'm trying to add ‘Victim helpers’ who will try to help victims against their stalkers (this is the part I'm having the most difficulty with at the moment, but I'm making slow progress all the same)

 

oh great when or where  can i download the new version 

Posted

I'll create a new thread when everything is finished.
I don't know when the mod will be ready, for now I can't manage to find the proper code structure to manage victim helpers effectively.

  • 2 weeks later...
  • 2 weeks later...
Posted
On 8/16/2024 at 4:15 PM, Machiavelique said:

I'll create a new thread when everything is finished.

Whatever you do, please make it so we don't have to point our gun at the stalker 32 times before the stalker quits attempting. Thanks for creating mods for the game and hope you enjoy working on them.

Posted (edited)

  

This part of the script has been completely revised. I can't remember if it was easy to scare them or not, and I haven't calculated the old percentages of chance. Today, with the changes made, it will sometimes be impossible to scare them off.

The new system is quite complicated to explain. I've kept the idea of “ confidence ‘ and ’ minimum angle ”.
However, this data will now be specific to each NPC (before, several NPCs could share the same data, as it was categorized by NPC name).

 

0% <= Confidence <= 100%

A Stalker with 0% confidence doesn't have much self-confidence and is easy to scare off

A stalker with 91% - 100% confidence is very hard to scare off, and in some cases impossible to scrare off

 

30° <= MinAngle <= 150°

To stalk sombody, a stalker need a min Angle to get chance to be scared.

A stalker with MinAngle = 30° got no chance of being scared off if s/he's more than 30° from the center of your vision*. And s/he may be frightened at 30° or less

A stalker with MinAngle = 150° got no chance of being scared off if s/he's more than 150° from the center of your vision*. Ans s/he may be frightened at 150° or less

 

Note*: This is the angle between the center of your vision and the stalker in absolute values (so -30° = +30°, -179° = +179° etc).

So if you look her/him in the face, the angle between you and the stalker is 0°, and you'll have the best chance of frightening her/him in relation to the value of the angle, but the stalker's self-confidence will also come into play to thwart the attempt to frighten her/him.

 

 

If a stalker moves towards a victim to assault her/him and is not detected, her/his confidence score will increase over time and her/his MinAngle will decrease.

If a stalker is detected and temporarily dissuaded, these values will decrease inversely. If the staker is definitively dissuaded, these scores will decrease greatly, while if he succeeds in violating her/his victim they will increase greatly.

 

But there are many other factors to consider:
If it's daylight, you'll have a much better chance of scaring her/him than if it's night.
If you have your gun out, you're more likely to scare her/him off.
If you point your gun at her/him, you'll have a better chance again.
If you shoot in her/his direction (meaning at an angle of +/- 15° when facing her/him), you'll have the best chance of scaring her/him (or to make her/him run to you...). If the Stalker have 0% confidence you have 99,02% to scare ; If the Stalker have 100% confidence, you have 0.98% to scare.

 

Taking out your gun, pointing it at your stalker or shooting at her/his side are actions you can take to disuade your stalker. But if the stalker “resists”, the more the action was aimed at frightening her/him, the more confidence s/he'll gain.

 

A Stalker can decide to run towards you with conficence >= 91%

At 91% there are 1% chance that the stalker decides to run

At 95% there are 5% chance that the stalker decides to run

At 100% there are 10% chance hat the stalker decides to run

 

If a Stalker decides to run towards you, it has no chance of being frightened. Your only options are to run, struggle or fight.

 

 

Below are the chances of frightening off a stalker depending on day/night, if you pull out your gun or point it at the stalker. A number is randomly drawn between 0 and 100 inclusive and compared to fScareChance (I don't give details of how fScareChance is calculated). These values are given for iAngle = 0° (so they'll be lower if you're not facing the Stalker). This check is performed every second (as long as iAngle <= iMinAngle, as there's no chance of being scared if iAngle > iMinAngle --> Because in this case, the Stalker will gain in confidence). 

;*** Scared stalker ***;
if iRndPercent < fScareChance		; if fConfidence = 0    =>    fScareChance(D): 80.31%        fScareChance(D)+WO: 85.45%        fScareChance (D)+WO+Aim: 93.64        fScareChance(N): 49.86%        fScareChance(N)+WO: 59.38%    fScareChance (N)+WO+Aim: 62.53%
  					; if fConfidence = 50    =>    fScareChance(D): 30.64%        fScareChance(D)+WO: 34.87%        fScareChance (D)+WO+Aim: 45.31%        fScareChance(N): 6.49%        fScareChance(N)+WO: 8.42%        fScareChance (N)+WO+Aim: 13.33%
  					; if fConfidence = 100    =>    fScareChance(D): 0.017%        fScareChance(D)+WO: 0.371%        fScareChance (D)+WO+Aim: 2.551%        fScareChance(N): 0.00%		fScareChance(N)+WO: 0%		fScareChance (N)+WO+Aim: 0%

 

(D) (N): Day / Night

(WO): Weapon Out

Aim: Your aim the Stalker with your gun

Edited by Machiavelique
Posted

My gamer brain is an issue. Using this mod, I automatically take a behavior that avoids the mechanics introduced by making sure no predator can catch me. Understanding the rules and establishing a way to circumvent debuffs is like crack to my brain, and I struggle to simply let go and allow the mod to take effect.

 

One of the issues is that stalkers are very noticeable. They don't behave like generic NPC. And once I see they from the corner of my eye, I know and avoid the encounter.

 

Anyhow, question for Machiavelique: Do you believe it possible to get multiple stalkers to work together, like a gang, and trap the player? One that grab attention, the other to sneak behind. Stuff like that.

Posted (edited)

  

  

On 9/9/2024 at 4:51 PM, bicobus said:

My gamer brain is an issue. Using this mod, I automatically take a behavior that avoids the mechanics introduced by making sure no predator can catch me. Understanding the rules and establishing a way to circumvent debuffs is like crack to my brain, and I struggle to simply let go and allow the mod to take effect.

 

I agree and I have the same problem, but I don't want them to catch me because I lowered my attention level on purpose.

We need to improve their behavior, which is why I would allow them to run, but it still won't be enough.

But it's important to strike the right balance: it should be neither too difficult nor too easy to escape them.

 

 

 

On 9/9/2024 at 4:51 PM, bicobus said:

Anyhow, question for Machiavelique: Do you believe it possible to get multiple stalkers to work together, like a gang, and trap the player? One that grab attention, the other to sneak behind. Stuff like that.

 

AI.thumb.jpg.4b24f50fe87c825276c7e22ea4b7e627.jpg

 

 

 

1 & 2 are the current AI Stalk Package

3 & 4 are what I think you would like

 

Depending on how the stalkers are arranged around you, the current stalk system may already be very close to the planned system (1 is very close to 3). Notable differences would be in configurations 2 & 4.
But even in case 4, if we were to imagine a greater angle of deviation for stalker1 in order to be more discreet, I'm sure you'd still be able to anticipate easily because you'd sense that something suspicious is going on (because he's taking an “unusual” path). What's more, if my gaming experience is anything to go by, I tend to constantly look behind me to avoid being molested.

 

Creating bypass routes and having stalkers arrive at the player at the same time to give her/him a minimum chance of escaping would be very difficult to implement (with only 2 stalkers, I don't even have a clear idea of how I'd go about it).

 

 

I think it's better to explore other options:
- Disable sneaking for stalkers (or set 50% sneaking chance, 50% walking chance)
- Allow stalkers to run if the player detects them (even if the stalker has less than 91% confidence).
- As soon as a stalker runs on the player, make all stalkers run on the player.
- Add an option that blocks the camera from looking behind the player AND/OR finding an idea that would discourage the player from looking behind using the camera.
- Finding an idea to encourage the player to walk (this is why I recommend the STAMINA mod, but the stamina configuration needs to be well-balanced).
- Finding an idea that would discourage the player from constantly turning around to check what's going on behind him (showing signs of nervousness).

- Using mods like "Darker Night" to make nights more dangerous, cause you won't see much and it will be much harder to spot them.

 

 

 

Another idea would be to improve the player's tracking by trying to intercept his trajectory (which would make it easier to surround her/him):

AI2.png.c0bb5a053d614be16b6e07ce42d2f788.png

 

In the picture above, Stalkers 3 and 4 follow the player's position, while Stalkers 1 and 2 follow an interception point on the player's trajectory.

I think this will be very difficult to achieve, but it seems more feasible than the idea of images 3 and 4, as the trajectories are direct (and there's no need to manage tempos to synchronize the arrival of stalkers on the player)

 

 

I think it would take 5 crows to handle 5 StalkInterceptPoint AI packages. Stalkers (15 max) could receive either a StalkPlayerPosition or a StalkInterceptPoint (maybe 50% chance in a first instance) with the following limitations:
1-2 Stalkers behind the player could receive a StalkInterceptPoint AI Package
3 to 4 Stalkers in front of the player could receive a StalkInterceptPoint AI Package.


In addition to taking into account trajectory changes, distances and understanding the coordinate system, I also need to take into account Stalker/Player speeds and the fact that the player can running/walking/sneaking or stopping (I think taking into account speeds to determine intercepts point is the most difficult part, I can't figure out how to do it. Maybe just set StalkInterPoint only if player is running and set StalkPlayerPosition if player is not running so that the stalkers will catch up with the player as they run ). Changes in the player's trajectory would constantly reattribute the AI packages (stalkers from behind would end up in front and vice-versa) and recalculate everything.

Edited by Machiavelique
Posted

A neat thing in this game, that might have not been noticed by most people, is that if your perception is low you'll physically not see some stuff. For example, you won't be able to see some plants unless you get real close to them. And so, I'm wondering if it is at all possible to set an actor to be not visible for the player so long a perception check is failed. That is, instead of having them sneak.

 

This is a "simpler is better" approach than to over complicate things with multiple rules and actors. If a situation is determined that more than one stalker gets involved, then the perception check becomes harder, increasing the risks of being caught. Also, needs to limit the amount of perception checks by one. If the PC doesn't notice, they just don't notice.

 

Thus, you can get all those stats to enter a bias into the perception check. Stamina, confidence, day/night, etc.

 

My game mastering speaking, all this may be a great entry point for a greater loop: sold to slavers or whatever to get the player to move around on the map.

Posted
3 hours ago, bicobus said:

A neat thing in this game, that might have not been noticed by most people, is that if your perception is low you'll physically not see some stuff. For example, you won't be able to see some plants unless you get real close to them.

 

I'd never thought of exploiting this specific feature of the game, and didn't realize that perception affects the distance at which enemies appear.

 

 

I like the idea for its simplicity, but I think it gives stalkers too great an advantage. However, it should be possible to find ways to compensate for this.


The stalker script uses Sexout's radar, which updates whenever the player changes cells. We either have to make all the NPCs invisible each time they change cell, then make them visible as soon as they fail the Stalker test or are detected by the Perception test, or make them invisible as soon as they pass the Stalker test (but in this case we also have to wait until the player is no longer looking at him, to avoid seeing him disappear), with the risk that if the player looks in that direction again he will notice that an NPC has disappeared and realise that he have become a Stalker).

 

In both cases, the absence of NPCs in familiar places will arouse suspicion but it's probably better than having them arrive a long time in advance. I'll think about how best to exploit your idea.

Posted
2 hours ago, Machiavelique said:

I'd never thought of exploiting this specific feature of the game, and didn't realize that perception affects the distance at which enemies appear.

I'm not sure about that. Which is why I was wondering about making actors invisible. I just know that some elements of the environment appears differently if you can't see as well as "regular" people. Realized it using the four eyes perk, removing my glasses would make stuff disappear due to the low perception.

 

For actors, I believe it only affects the compass on the HUD. The actual 3D actors aren't hidden.

 

2 hours ago, Machiavelique said:

I like the idea for its simplicity, but I think it gives stalkers too great an advantage. However, it should be possible to find ways to compensate for this.

Well, if there are more than one people, it's harder to sneak around. So easier to be perceived. On the other hand, while being alone makes it easier to sneak about, it's also more dangerous (for the stalker) if caught.

 

3 hours ago, Machiavelique said:

We either have to make all the NPCs invisible each time they change cell

Right, not so simple then :P

 

I just  thought that they could just get hidden while the player doesn't look at them. I don't understand why you'd need to change the state of each npc at each change cell though.

 

3 hours ago, Machiavelique said:

with the risk that if the player looks in that direction again he will notice that an NPC has disappeared and realise that he have become a Stalker [...] the absence of NPCs in familiar places will arouse suspicion

It may be a good idea to implement a variety of reasons as to why NPC can "disappear", to to hide the behavior in the proverbial hay stack. It wouldn't be notable to lose sight of a NPC in cyberpunk2077, but it's very noticeable in New Vegas. Anyhow, this is a complex interaction between NPC and PC. At least for this game. I don't think there's an adequate way to resolve the issue itself. I mean, base game is jank, might as well design something jank too.

Posted (edited)

  

I'll have to do some tests to see what invisibility/Chameleon does on the compass, and to see if perception allows you to see NPCs from further away.

 

 

17 hours ago, bicobus said:

I just  thought that they could just get hidden while the player doesn't look at them. I don't understand why you'd need to change the state of each npc at each change cell though.

 

My bad, I meant "We either have to make all the NPCs invisible each time Player changes cell"

cell.jpg.827343f260ead9ac614b4410f29bac1b.jpg

 

I use the basic elements of the sexout radar to search for NPCs around the player. The advantage of the sexout radar is that it standardises all my scripts with the same list of actors and consumes very few resources because it only updates as soon as the player changes cell.

For example, without extended radar option, the sexout radar check actors in player cell + 8 adjacent cells. (With externded radar ON we check Player cell + 8 adjacents cells + 16 adjacents cells, so a total of 25 cells)

 

So, if I want the actors to be invisible by default and eventually become visible again by failing the various stalker tests, I have to make them invisible as soon as the player changes cell.

 

But on reflection, I think it's better to make them invisible as soon as they become active Stalkers. I don't want to make them invisible by default, because it bothers me for several reasons. Nightkin can use camouflage, so why not stalkers too ? I could define a random chance or even add an MCM option.

Edited by Machiavelique
  • 2 months later...
Posted (edited)

Hey there, if you're trying to fix/improve Assault, you should also make use of newer and improved functions. Like for example replacing all the IsSpellTarget functions with actual working ones like IsSpellTargetAlt.

 

https://geckwiki.com/index.php?title=IsSpellTargetAlt

 

GetSameCell -> GetInGrid

 

https://geckwiki.com/index.php?title=GetInGrid

 

GetDistance -> GetDistance2D or GetDistance3D

 

https://geckwiki.com/index.php?title=GetDistance2D

https://geckwiki.com/index.php?title=GetDistance3D

Edited by dongding
Posted

All ‘IsSpellTarget’ have been replaced by ‘IsSpellTargetAlt’ and all ‘GetDistance’ have been replaced by ‘GetDistance3D’. However, I keep 'GetInSameCell' in the PreRape Quest (GetInSameCell is more practical than GetInGrid because SexAssault now handles NPC/NPC molestations, and GetInGrid only refers to the player).

 

There's also  are also other improvements, such as GetGameDaysPassed replacing with GetGameDaysPassed 2277 08 17 and the dereferencing of arrays and string_var in effect/Object scripts before ending scripts.

 

 

 

So far, I've done what I wanted to do for SexAssault and Struggle.

I'm in the testing and correction phase now.
Once the fixes are complete, I'll add the ability for Stalkers to be invisible (activated by an option in the MCM menu). 

 

Posted
Spoiler

Refs: 2 Owner 35: SexoutSexAssault.esp
[ ActorA ] : Poudrier renégat (0F01224C)
[ ActorB ] : Soldat de la RNC (0F00A0A8)
[ Flags ] : ["rape"]
[ Raper ] : Poudrier renégat (0F01224C)
Sexout: Locked actor 'Poudrier renégat' (0F01224C) at: 380.
Sexout: Locked actor 'Soldat de la RNC' (0F00A0A8) at: 380.
fnSARF: Invoking CallSort CIOS on Poudrier renégat (0F01224C)
CSES: (v 2016-01-09) Starting for: Poudrier renégat(0F01224C)
Sexout Version is: '97(b100)
CSES: Normalize finished, checking sanitizer.
NGSAN (140): Returning actor Soldat de la RNC not in local cell (v 2015-11-21)
Unlocking actor: Poudrier renégat (0F01224C)
fnSoNXClr Sexout:Start:140:: Poudrier renégat (0F01224C)
Unlocking actor: Soldat de la RNC (0F00A0A8)
fnSoNXClr Sexout:Start:140:: Soldat de la RNC (0F00A0A8)
SA: PR - Sexout didn't find any anims that matches with the paramsList['Flags'] sent. 

 

I did some tests and finaly... I can't use GetInSameCell for NPC/NPC molestation cause the fnSexoutSAN function doesn't allow sex if actors are not in a 3x3 Player cell Grid.

 

fnSexoutSAN

Spoiler

Begin Function { self }
 
  let nActId := self.NX_GetEVFl "Sexout:Start::ActId"
  let nxKey  := "Sexout:Start:" + $nActID + "::"
  let reason := "SUCCESS" ; for now ;)

  let Actors := Ar_Construct "stringmap"
  foreach pos <- "ABC"
    let actor := call fnSexoutNXGetEVFo, self, nxKey + "actor" + pos
    if actor
      if 0 == (GetInGrid actor, 1) ; not in local cell grid?
        let Abort := 1
        let reason := "actor "+$actor+" not in local cell"
        break
      endif

 

 

SexAssault won't be able to handle NPC assaults beyond a 3x3 player cell, as Sexout doesn't handle it.

So you was right, GetInSameCell need to be replace by GetInGrid, it will ensure compatibility with Sexout

 

Posted

The mod works as well as it did in November 2015.

 

From what I understand, the original author's final version contained a lot of bugs (including CTDs).

The author of this mod then disappeared and Odessa was kind enough to work on fixes to make the mod playable. She did a good job, but she wasn't very interested in SexAssault, so this mod wasn't her priority.

 

Generally speaking, the mod doesn't work too badly given the number of options it offers. There are still a few problems, but nothing dramatic, having played this version of SexAssault myself.

  • 1 year later...

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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