Jump to content

Recommended Posts

Posted

Ok, it's working now in my local copy. I'm expecting bugs though, it's just not passing the smell test.

 

The main callback quest is continually setting an NX ref var to the players combat target when in menu mode. This happens regardless of the menu since the menumode function doesn't seem to be working -- or I'm doing something wrong, or I'm just tired.

 

Since the player is in menu mode, the spell script for callbacks isn't running and doesn't pick up the change. This means the spell doesn't know the dialog is taking place when it starts, only after it's finished (and menumode exited).

 

The callback spell will call startconversation once a second until it detects a conversation *completing* with the NPC in question. At that point it's done, so it clears the NX var and exits.

 

I can't think of any way that var could change or get corrupted in the very short window of time available to it, but this is sexout, so ya never know..

 

Beta will be up tomorrow as scheduled.

Posted

Part of the problem is that i've got so many mods already installed that using FOMM to order things became really painstaking.

 

I can think of two different kinds of things that you might mean here.

 

You might be talking about mod order.

 

You might be talking about override order (where mods conflict and supply the same file).

 

If you are talking about mod order, you can of course use BOSS, you can drag and drop the mods in FOMM and you can export to a file and edit the file.

 

If you are talking about override order, you can zip up the file contents arranged how you like into a .zip file (or whatever kind of archive) and then you can install that combined zip using FOMM. (I agree with you that micromanaging install details in FOMM is awful -- it should give us a complete list of conflicts and let us choose how to resolve each one, and if we change our minds it should let us do this again -- it has the data structures to support this, but not the UI. So the solution to that problem is: do it outside of FOMM using the file system for your UI and get it right the first time.)

 

Edit: please note that prideslayer wrote some interesting things about his beta release of sexout on the previous page. If you are interested in his recent update (which upgrades his callback handling) or if you are interested in helping him test, I think the things he wrote can be quite interesting.

Posted

Ok might have hit a brickwall with the dialog detection stuff unfortunately' date=' looking for any suggestions..

 

- GameMode blocks don't fire when a menu is open, this is well known.

 

- MenuMode blocks don't fire in spell scripts, did not know this.

 

- The MenuMode function (not block) seems broken when given a parameter.

 

 

 

My thought was to check the menu mode in the quest script, and if it's a dialog, stuffing the actor under the crosshairs (who you are presumably talking to) in an NX var for the spells to investigate as they need to. However, this simple script inside a quest script does not work:

 

ref dlgSelf
int msgtmp

Begin MenuMode
 ; dialog callback support
 if msgtmp == 0
   if MenuMode == 1009
     set msgtmp to 1
     printC "detected menumode"
   endif
 endif
End

 

It should fire whenever the player talks to an NPC, but it doesn't. Getting rid of the "if menumode == 1009" check does allow it to fire, but regardless of any open menu.

 

 

 

- Ditching the menumode 1009 check (the function not block type) in the above example works, however, GetCombatTarget always returns 0 anyway.

 

So I'm at about my wits end when it comes to detecting when someone is talking to the player and then determining who that is.

 

EDIT: I take this back, looks like it's working fine when in a conversation.. but printing as hex was just printing zeros.. errrrr.

[/quote']

 

Syntax error:

if MenuMode == 1009

Should be:

if ( MenuMode 1009 )

 

http://geck.bethsoft.com/index.php/MenuMode_(Function)

 

AFAIK GetCombatTarget is reliable only in specific situations and should always return null if PC is not in combat and sometimes may return null if PC is in combat but has no equipped gun.

One can try to use GetCrosshairRef (GameMode block).

Posted

GetCrosshairRef says it always returns 0 in menu mode.. that is for OBSE though, no notes on it for NVSE/Fallout. Any idea if the same is true here?

Posted

V2.4.67b1 BETA ESM in OP

 

- Callbacks moved to standalone spell

-- All callbacks are now performed by casting a spell on the actor involved and then having that spell script do the callbacks. This allows the main sexout callback code to proceed without blocking and waiting for callbacks to finish.

 

- Dialog callback now 'smart' -- needs testing, should never fail to fire.

-- The dialog callback now watches for the player to enter (actually, leave) dialog with the assigned actor. Until this happens, it will continually call StartConversation to fire the callback, once every second. This needs lots of testing!.

 

- Sexout vars added to NX for info during the act.

-- (float) Sexout:Core:Sextype:(Anal, Vaginal, Oral). 0 == false, nonzero = true.

-- (float) Sexout:Core:Actors:Count. # of actors involved in the act.

Posted

V2.4.67b2 ESM in OP

- IsActor/GetDead checks for the startdialog callback, just in case.

 

- New NX vars as discussed with chase:

self.NX_SetEVFl "Sexout:Core:Sextype:Vaginal" isVaginal
self.NX_SetEVFl "Sexout:Core:Sextype:Anal" isAnal
self.NX_SetEVFl "Sexout:Core:Sextype:Oral" isOral
self.NX_SetEVFl "Sexout:Core:Actors:Count" spunTargets
self.NX_SetEVFo "Sexout:Core:Partners:A" actorA
self.NX_SetEVFo "Sexout:Core:Partners:B" actorB
self.NX_SetEVFo "Sexout:Core:Partners:C" actorC

 

These are set only on the actor that the sexout spell was called on. You can determine if that's A, B, or C by comparing those vars to self.

Posted

These are set only on the actor that the sexout spell was called on. You can determine if that's A' date=' B, or C by comparing those vars to self.

[/quote']

 

I didn't realize that this was a catch to the whole thing. :\

Oh well, I guess that's just a bit more to code in on my end.

Posted

Well it's that or I set the vars on every actor.. which I can do but seems like needless duplication, and the effect script is already over 1k lines long. If there's a way I can make it easier, I will do my best. Maybe a 'self' var in there? Would that help you or not?

Posted

The problem is that I (and anyone else potentially using this) already have to know who is involved in that particular sex instance to accurately grab the variables. Unless I'm missing something, we (mod authors) don't know who the spell was called on. And even so, that's another bit of scripting for everyone if they actually wanted the partner. I was hoping to use this instead of jumping through hoops with the callbacks to figure out who is fucking who. But if I can't just pick an actor and ask what they're doing, then it isn't nearly as helpful.

 

To be more specific, I'm doing this right now:

if( (playerREF.NX_GetEVFl "Sexout:Core:Sextype:Oral" && playerREF.getItemCount SexoutNGAnimPositionB) == 0 )
  ;code to reduce arousal
endif

The way you have it right now, I can't accurately check if the player is giving oral. I have to hope that the spell was cast on the player. Or else I have to run through the scanner and check who is involved with the player, or check through a callback.

 

That is, unless I'm understanding this all wrong.

Posted

Gave it a spin. DialogCB works fine, but then it always did for me. I tried to break it by setting KO longer for the rapist and running away but he folloed me afterwards to engage in dialogue, even after i talked to someone else. Any particular scenario where the old CB would break and the new one should work?

Posted

Chase, I can go put all those vars on all the actors.. but many of them don't make sex in that context, or this one now that I think about it.

 

The thing is, as you know, I have no control over who the spell is called on. I also have no control over which actors are set. So a masturbation can be just actorC, for example.

 

I'll add the vars to every actor that is involved, so you can pick an actor out of a hat and at least get an entry point into the whole act, but you'll still have to fuss around checking Count and A/B/C to determine if the act is solo; if it's not, you're going to have to grab the B ref for the anal/vaginal/oral settings to make sense, as that is who they apply to (being penetrated).

Posted

Gave it a spin. DialogCB works fine' date=' but then it always did for me. I tried to break it by setting KO longer for the rapist and running away but he folloed me afterwards to engage in dialogue, even after i talked to someone else. Any particular scenario where the old CB would break and the new one should work?

[/quote']

 

Motor Runner in Fiends Tryout is known to break in the old system if you play with KO on, because the KO somehow gives motor runner enough time to start sitting down in his chair -- at which point he just silently discards the startconversation call for some reason.

 

I'd run through that one a couple of times and see if it completes each time now, with KO enabled in MCM, or not.

Posted

Chase will this work? It will be in the callback quest script for the pre-sex callbacks, a frame or two before pre-sec callbacks actually happen.

 

; Setup NX vars
   if (actorA)
     actorA.NX_SetEVFl "Sexout:Core:Sextype:Vaginal" isVaginal
     actorA.NX_SetEVFl "Sexout:Core:Sextype:Anal" isAnal
     actorA.NX_SetEVFl "Sexout:Core:Sextype:Oral" isOral
     actorA.NX_SetEVFl "Sexout:Core:Actors:Count" spunTargets
     actorA.NX_SetEVFo "Sexout:Core:Partners:A" actorA
     actorA.NX_SetEVFo "Sexout:Core:Partners:B" actorB
     actorA.NX_SetEVFo "Sexout:Core:Partners:C" actorC
   endif

   if (actorB)
     actorB.NX_SetEVFl "Sexout:Core:Sextype:Vaginal" isVaginal
     actorB.NX_SetEVFl "Sexout:Core:Sextype:Anal" isAnal
     actorB.NX_SetEVFl "Sexout:Core:Sextype:Oral" isOral
     actorB.NX_SetEVFl "Sexout:Core:Actors:Count" spunTargets
     actorB.NX_SetEVFo "Sexout:Core:Partners:A" actorA
     actorB.NX_SetEVFo "Sexout:Core:Partners:B" actorB
     actorB.NX_SetEVFo "Sexout:Core:Partners:C" actorC
   endif

   if (actorC)
     actorC.NX_SetEVFl "Sexout:Core:Sextype:Vaginal" isVaginal
     actorC.NX_SetEVFl "Sexout:Core:Sextype:Anal" isAnal
     actorC.NX_SetEVFl "Sexout:Core:Sextype:Oral" isOral
     actorC.NX_SetEVFl "Sexout:Core:Actors:Count" spunTargets
     actorC.NX_SetEVFo "Sexout:Core:Partners:A" actorA
     actorC.NX_SetEVFo "Sexout:Core:Partners:B" actorB
     actorC.NX_SetEVFo "Sexout:Core:Partners:C" actorC
   endif

Posted

Went to see the guy. Used 7, 15 and 25 seconds delay and it worked fine. MR just stood there waiting for me to get up. Using the old esm he went to sit down again after finishing. With the new one he just stands there. I waited for an hour and he moved a bit but did not sit down again as he should according to his package (V03motorrunnersit). The CB itself seems to be fine but could it be that the npcs don't resume their package afterwards?

Posted

How long did you wait? The engine calls evp on actors every.. I don't remember.. 5 minutes? 30 minutes? He may need an EVP done on him after sex but at least the dialog CB is working reliably now.

Posted

Well, I watched him now for 8 minutes and he did not move. Then i hit T and waited for 1 hour, then another, still nothin. A fiend apporached me and did his thing and then stood there too. Same with a dog that got triggered by BR. Used evp console command but that did not help. Leaving and reentering the cell did. Could be that some remnant of your CB keeps them busy or something.

Posted

The CB has no "remnant" really.. it just calls StartDialog. If one second later, it hasn't detected the a conversation taking place with that npc, it does it again. It repeats this process until you enter menu mode 1009 (dialog) with the npc, then it exits. If it were stuck, it would keep starting conversations with you..

 

It doesn't freeze the npc in place, touch their packages, or anything else; just startconversation.

 

Are you experiencing the same problem with other NPCs, or just motor runner, so I know where to start looking?

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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