Jump to content

[Wip] Intimacy Project


t3589

Recommended Posts

For what it's worth.

 

I guess regarding other mods, it'd be a case by case thing - with some of the basic non-quest type mods becoming redundant when using this (I would hope Hookups was one of them - no offense).  I think some of the quest style mods would have little use for increased complexity or alternate approach mechs to at least remain as playable as they were; though this mod is partly about noticing and reacting to things, but maybe it won't be much of a problem if some things aren't (or even preferable at times).  Some quest style mods would need some more integration/alternate versions for things like prostitution I think, which is mainly an issue of someone being able and willing (or not).

 

I think, at the end of the day, pretty much all the mods aren't doing anything all that complex really; so getting things working *shouldn't* be that big a deal.  To be honest, I've been a little bit dismayed at times at how some things have been left in certain states when it's been a case of not much work for someone fluent in the language (working in QA can do that).

 

Hopefully, at least one mod will get created that's designed to take advantage of this mod's/framework's features, but heavily relying on it could lead to disappointment.

 

As for stepping on people's toes, the simple answer is: you're not.

Link to comment

Thanks dizzy

 

 

Slight problem now.  Yesterday I had 2 spells using the same list in the NG scanner.  Now today one returns 0 count unless I assign it to its own separate list.  Very weird.  I don't know what happened.  It bugs the piss out of me though to see two lists each returning the same damn thing.  I thought a timing issues clearing the central list before the next spell grabs maybe?

 

The only thing I can think of is that yesterday the one that's returning null today was added to the scanner from a token, and now it's adding from a spell.  Though as a spell it works fine with it's own list.

 

Curses.

 

EDIT: Yep, http://www.loverslab.com/topic/12826-fighting-the-slaverytryout-stutter/page-6?hl=%2Bscanner+%2Blists+%2Bclear&do=findComment&comment=301481

Link to comment

Be careful with spells, I think I found sometimes that even though I had updated the script in an effect the old script was still there running on actors saved with the old script, doesn't seem to be an issue with token scripts though.

 

Also note spells on NPC's (not the player) often dispel when the Player leaves the cell or on fast travel, sleeping, waiting and going through doors. Token scripts continue to run.

Link to comment

Well I don't know what happened.  Actually I do know what happened, but I can't figure out why it worked before.  I must have gotten lucky on timing or something the first time around and it worked when it shouldn't have.  I guess I'll stuff everything into the one scanner and then toggle conditions on it instead of trying to add a second temporary spell.  I thought about adding a pause to the persistent scanners list clear so that it doesn't clear until the temporary scanner is finished grabbing what it needs.

 

I think this problem isn't a matter of getting things to work.  I can make them work no problem.  I think this is a matter of standards and practices.  The root of the problem is that I'm trying to split things up for easier modification later on.  Which, it turns out, the NG scanner hates.

Link to comment

I've come to the conclusion that spells are a pain in the ass.

 

Making real progress now.  Had to re-write a bunch of stuff.  Back to adding features now.  Just tested gang rapes.  Now when the PC is raped, if the NPCs nearby qualify, they get in line and cheer waiting for their turn.  Still not sure how tough I should make it to run away after the first one.  As it stands everyone who lines up will prob get a shot at the PC before you can turn and escape the next dialogue.  Any thoughts?

 

Back to working on PC Prostitution.

 

EDIT: Couldn't stop myself.  Now stalkers chase the PC if running by them within range, if the PC walks they walk at you instead.  However, if the PC is sneaking before they get an approach you can sneak right up to them and they won't bother you.

Link to comment

I was thinking recently that I'd like to see more gang rape (inadvertently happened to my courier when I was testing something).  Takes on a new meaning when using mods like Lust, Wear and Tear and Pregnancy...

 

I imagine it would be hard to get away (and in reality, even harder to not leave something behind).

 

Also, had a good experience recently with SexAssault mod: Was sneaking about, checking for some loot in a bit of a dangerous outdoors area(watching someone probably hostile) after seeing explosions from far away (caused by Endless Warfare I think).  Heard the sound of footsteps at walking speed and turned to see a Feral Ghoul alarmingly close.  Ran the other way (sprint mod), it aggroed and chased; heard another one do the same from another direction.  Managed to kill them with pistol, but took some damage and nearly got combat raped.

Link to comment

I've come so far, only to discover how far I haven't come. lol  I just discovered a better dialogue method.  But there's a hitch.  I desperately need a way to alter SmallerTalk delay quest variable on the fly without making it a master.

 

So far:

- Without SmallerTalk = Generic NPCs like Goodsprings Settler pick up the dialogue instantly, AWOP NPCs and some vanilla NPCs (who have forced dialogue like Barton Thorn) do not.

- With SmallerTalk = Generic NPCs and forced dialogue NPCs pick up the dialogue on the SmallerTalk startconversation, only if the SmallerTalk delay is set high enough to allow you to escape the first round of dialogue in time to get the startconversation.

 

I'm thinking:

a. I could just relent that this won't support forced dialogue NPCs and pick up the generics with SmallerTalk.

b. I could pick up all NPCs through SmallerTalk, but because of the delay factor I would have to exclude forced dialogue NPCs from approaches so you don't get stuck with them.

c. I could include my own SmallerTalk-like dialogue initiation method (which is how it is now), but then if you get unlucky with the timing they stack (NPC comes back at you with my dialogue, then on goodbye, comes at you again with SmallerTalk 'sometimes not often'.

 

d. Is what I really need which is to buildref SmallerTalk or something similar so I can adjust the timing on the fly (a delay delay).

OR

x. Something I'll think of 15 minutes after posting.

 

EDIT: Which of course just happened.  Going to take me a few days to rework this, but I've made a lot of progress that isn't reflected in the OP yet.  If this new method works I'll have a test case up soon after.  I was ready to release one yesterday, but things are changing every 10 minutes due to this dialogue thing I decided to nip it right now.  Stay tuned.

 

EDIT EDIT: (Note for those who find this thread by accident looking for answers) The SmallerTalk time out delay runs while in menu mode.  The trick is to buildref ST and know when to hand out the ST dialogue token.  Thereby, moving forward the startconversation delay so it doesn't get to time out.

Link to comment

OK on with the show.  I've significantly improved dialogue initiation.  It should cover just about everyone if you're using SmallerTalk.  If not, this won't replace SmallerTalk.

 

I've added a few things now listed in the OP.  Next on my hit list is Patronage, but it has enough features right now to be a prostitution/stalker mod.  I think I'm going to set up some pref settings in MCM and start releasing some tests.  Most of the delays and approach mechs are hard coded, but they really need to be flexible for testing.  Maybe then I can start getting some dialogue suggestions.

 

I'm starting to have more fun playing it than working on it which can't be a bad sign.  Easy Pete skipped out on paying me and I chased him into the desert.  Finally caught him when some rocks slowed him down and demanded my caps.  He played innocent as if it slipped his mind. lol  I should have asked for the caps up front.  This thing is hilarious.

Link to comment

Been struggling now for 3 days on something that should be very simple.

 

- Hand out a token to 3 people; They all seem to get it at the same time (and when I say the same time I mean precisely).

- The token script runs something like:

if 0 == QuestVar
ref.CIOS Spell
set QuestVar to 1
endif

Seems simple right?  Here's what I get.

 

QuestVar IS 0, spell is not cast, QuestVar is set to 1, everyone with the token is locked out and never gets the spell.  Change the spell to a token, same difference, QuestVar is set to 1, no one gets the new token.  So very pissed off.  I don't understand how set is run AFTER cast and in turn locks cast out (which should have happened previously).  It makes zero sense.

Link to comment

Must be some kind of timing issue with the engine - you should get an IsSpellTarget check in there before you set the quest var.

 

It's definitely a timing issue.  I can get past that point with a check and have tried that several times.  The problem doesn't get solved it simply get's passed on to the spell that is cast and then I'm in the same boat all over again.

 

So for example:

is var 0; It is

then cast spell; OK

check isspelltarget; It is

then set var to 1; OK

spell sets var back to 0

spell picks a package to run

spell runs pacakge for 2 people instead of only just one

 

Both get a package before var is cleared, which was the reason for the lockout in the first place.  The third person is excluded as desired.  I've been trying to step it with timers and vars and whatever I can find but nothing is working.  I guess I could give each of them a random time out var, but I'm worried that in a larger group that some will nail the same random.  Arrrrrgh!  So frustrating.

 

Link to comment

Hm, yeah, with packages in the mix, there's always something that can go wrong too.

You could eliminate the spell factor in this though by using UDFs instead, unless that spell script needs to run more than once. They allow for more control over the flow of things, halting the calling script until the UDF's done its work.

 

Edit: also, maybe this is a factor?

Link to comment

Timers are just to unreliable, I sometimes use GetRandomPercent instead or I use a count so the script only fully executes every 200th scan this gives things a time to settle, and hopes are the 3 actors will be at least 1 or 2 scans different then do a GetRandom check every 200th scan to kick it off if the variable in the quest is 0. Depending on whether it's an effect script or object script 200 counts can take around .1 of a second or 2 or 3 seconds, I forget which is which.

 

Can you check in the quest  by something like

 

if Actor1GotToken && Actor2GotToken && Actor3GotToken

 

Set AllGotTokens to 1

 

endif

 

or could you add the ActorsRefs to a formlist and have the QuestScript just use the Formlist to decide which actors to run on and add the spell/token to, remembering that spells on NPC's don't stay on if the player leaves the cell or they fast travel/wait etc.

Link to comment

I have the part I'm having trouble with working.  Had it working 4 days ago.  Then while testing, I exited a load door.  The actor I left behind the load door never completed the token script they were running.  So I made a reset token.  This is when all the trouble began.  While the above suggestions did improve efficiency (thanks Hal, now using lists and works much more reliably, and thanks Doc I switched from a spell to a token to avoid that problem), I'm still in the same boat I was 4 days ago.

 

Here's the issue:

 

 

 

ref refTarget
short bClear
float fTimer

Begin OnAdd
    set refTarget to GetContainer
    set bClear to 0
    set fTimer to 30
End

Begin GameMode

    if 0 < fTimer
        set fTimer to fTimer - GetSecondsPassed ; This continues to count towards removal.
    else
        set bClear to 1 ; This runs on add!?!?!
    endif

    if (1 == bClear)
        set Quest.Var to 0 ; This runs on add!?!?!
        RemoveMe ; This waits for the count!
    endif
 End

 

 

 

It defies reality!  If I could just understand why the set runs on add instead of waiting for the timer, I'd be in business.  If I print to console anything in the bClear is displays immediately regardless of the count.

 

To illustrate how insane this is, I did in fact test to see if the engine understood that 1 doesn't equal 0.

Link to comment

add another bool to ensure the gamemode does not run before onAdd ends.

ref refTarget
short bClear
float fTimer
short bInitDone

Begin OnAdd
    set refTarget to GetContainer
    set bClear to 0
    set fTimer to 30
	set bInitDone to 1
End

Begin GameMode

	if 0 == bInitDone
		return
	endif
	
    if 0 < fTimer
        set fTimer to fTimer - GetSecondsPassed ; This continues to count towards removal.
    else
        set bClear to 1 ; This runs on add!?!?!
    endif

    if (1 == bClear)
        set Quest.Var to 0 ; This runs on add!?!?!
        RemoveMe ; This waits for the count!
    endif
 End
 
Link to comment

Also try a clean save, as I've had issues with old versions of scripts still running on actors after I've updated the scripts, I had 2 actors giving me different debug messages telling me they were running the old and the new version of the same effect script, I think it was effect scripts only that did that. I've hit quite a few issue that defied logical sense and a clean save was the only thing that fixed them.

Link to comment

TY Jaam!  It worked.  I've never had that happen before.  What's ironic is that I have timers in other scripts nearly identical to that one, but they work fine.  It was only this one for some reason.  Was driving me up the wall.

 

Now I need to learn more about the way lists work and I can push forward.  I'm wondering if there's a way to clear out an entire list in one go.  I'm thinking I could add a formlist to a formlist and then just remove the added formlist to clear it out in one shot?  Or is there a better way?

 

I also wonder if there's a way to step the index up 1.  So for example: 3 in the list, pick the first one, remove it, then move index 1 to 0, and index 2 to 1.

 

I know it would be easier to start from the bottom of the list and work towards 0, but while this is happening, others may be added to the list which means I can't start at the bottom.  I'm trying to get a 'next in line' sort of thing going.  I've accomplished this using Vars and counting but it is extremely unreliable and flakes out sometimes. 

Link to comment

Lists are terrific!  Huge hurdle now behind me and as far as I can tell, everything is working as expected.

 

Started From Scratch = x9

Rebuilt Approach Mechs = x4

Rebuilt Dialogue Initiation = x3

Rebuilt Stalking Mechs = x5

Rebuilt Gang Bang Mechs = x3

Rebuilt Prostitution Tracking = X2

Rebuilt Attraction System = x2

Rebuilt Territorial Prostitution Protection = x1

 

Finally I can move forward!  I'm trying to get all the features I consider to be a novelty done first.  I'm dieing to get at the romance part.  I'm going to put PC Prostitution on hold for a moment as I will need to get further into a play through to work through the rest of the planned features.

 

Next on my list is PC Solicitation, but I'm kind of stumped.  I think I may have to put that on hold for a minute as well.  I think I'll need to at least hit the strip before I can work that out, also I'm not sure who I should be able to solicit in the vanilla game and I don't want to add new NPCs.  I thought of activating solicitation based on NPC apparel, but I'm not sure how to go about picking who and who should not be capable of being solicited.  If anyone has any ideas feel free to chime in.

 

Updated the OP.  Planning my next course of action now.  As I've stated above this thing has been changing several times a day, almost every day.  Therefore, I don't think I'll post a test case yet as it wouldn't serve any real purpose.  If you would like to help contribute and test things as I go along, feel free to PM me and I'll see about getting my daily test copies to you.

 

Link to comment

Moving on to the heart of the mod now.  This isn't long for the downloads section I think, simply because I'll really need some feedback for fleshing out dialogue.

 

So far:

- If NPC finds the PC appealing they'll come up and say either Hello(Cordial) or A Pick Up Line(Flirtatious).

- The PC can respond in one of three ways: Warm(Cordial), Hot(Flirtatious), or Cold(Dislike).

- This in turn will establish a first impression on the NPC and begin tracking the relationship.

 

The initial introduction will be based on the PCs overall reputation.  It will start as a random 50/50 chance, and then lean one direction or another depending upon the PCs actions.  The more promiscuous the PC is, the more likely they'll have NPCs constantly trying to get inside their pants.  Or for Male PCs, the more likely they'll be rebuffed as 'just trying to get in my pants'.

 

My intention is to hammer out this system for Female PCs and then reverse it for Male PCs.  ie. Male PCs will do most of the approaching and won't get much approach action when it comes to introductions.  Male PCs will receive most of their NPC approaches after they have already established a relationship.  Where as the Female PC will be opposite.

 

Any input/ideas are welcome.

Link to comment
  • 2 weeks later...

 Seems to me that approach types/rates would be affected by location; I would

expect someone in a casino to act differently than someone just walking down

the street in Freeside. Different casinos would have their own unique settings.

 

 I would expect NPCs to act differently in Gomorrah and the Ultra Luxe.

 

 The amount of other NPCs in the area would have an effect too, as would the

presence of a companion.

 

 If an NPC is in a group, the intial approach could be "Are you with someone?"

or you could just hit on them more directly and risk an angry dude/chick getting

in your face because they are already attached. You could wait until the NPC

is circulating around the room to approach, and reduce the percentage likelyhood

of a confrontation with a jealous partner. Attach markers to couches/tables

rather than individual NPCs, if such a thing is possible, to affect approaches.

 

 Approaching a solitary woman in a bad part of town at night could mean getting a knife

pulled on you or her running away, whereas she might talk to you if she was part of a group.

Approaching a group of guys in the same time and place could lead to a gang-rape.

 A woman living in the sewers might be desparate to get out and would give it up more

readily; but once out could be more likely to run off with another man or cheat.

 

 Where do the people in the casinos live? Need a few apartment buildings scattered

about with 'communal' rooms; that is, the room is used by whatever NPC you've hooked

up with; or you rent a room at the casino for one night stands.

 

 Consider the possibility that people would want to use the Populated Casinos mod, because

the NPC count in the vanilla game is sad and pathetic.

 

 

Link to comment

Thanks guys.  I use pop casinos light.

 

Had a PC outage a few days ago.  Still plugging away at it.  I've moved on from determining what can be accomplished for the most part and am now more focused on determiining the 'best' way to do things.  ie. Creating a rich, plugable, tracking system.

Link to comment
  • 3 weeks later...

Updated OP with a proof of concept if you want to help contribute.  There is still plenty of planned features on my todo list, but I think at least I've got a framework I can work with now.

 

Remember this is just a POC.  It is entirely unfinished, probably broken in places, bound to behave screwy, is missing planned features, etc...  Also note that nothing in it to date is set in stone.  I welcome any and all feedback, including dialogue requests/submissions and criticisms.

 

There are no MCM options currently.  When you enter a committed relationship with someone you will receive an item.  Wearing these items decrease approaches, not wearing them increases approaches.

 

Also only Female PC to Male NPC is currently working.  This WILL have Male PC support eventually.

Link to comment

Thank you and you too.

 

There's just so much as far as features packed into this already.  It is very 'nuanced' if that's even a word.  Countless tiny little things that alter reactions.  I was just being lazy because to list everything would be enormous but I'll post some tips for the time being.  There's not much the player has to do really.  Just play the game and this mod will insert different encounters as you play.

 

The most difficult thing about this mod so far has been deciding who likes or wants what.  I hate the idea of deciding for the player how X actor should handle things based solely on my opinion.  I've kept pretty strict to that rule so far but am willing to alter things on consensus.

 

So for the time being everything is quite random and each play thru should yield different results for different NPCs.  Any personality aspects that I couldn't peg down from lore are frankly arbitrary at best currently.

 

 

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

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

Important Information

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