Jump to content

Sexout Numen Patch?


Recommended Posts

Posted

So there's this new ai chat mod for fallout called numen, i was tinkering around with it and it has a script it calls for sex, i  was curious if i could make it call the sexout script instead

scn NumenSexScript

ref rHat
ref rArmor
ref rWeapon
ref rNPC

begin function {}

    rNPC = this

    playerRef.AddScriptPackage DefaultStayAtCurrentLocation
    playerRef.DisablePlayerControls

    if rNPC
        rNPC.SetRestrained 1
        rNPC.Look playerRef

        if playerRef.IsInInterior

            let rHat := rNPC.GetEquippedObject 10
            let rArmor := rNPC.GetEquippedObject 2
            let rWeapon := rNPC.GetEquippedObject 5

            if IsFormValid rArmor
                rNPC.UnequipItem rArmor 0 1
            endif

            if IsFormValid rHat
                rNPC.UnequipItem rHat 0 1
            endif
    
            if IsFormValid rWeapon
                rNPC.UnequipItem rWeapon 0 1
            endif
    
            if rNPC.GetItemCount OutfitPrewarNegligee
                rNPC.EquipItem OutfitPrewarNegligee 0 1
            endif

        endif
    endif

    ApplyImageSpaceModifier FadeToBlackPermanent ;AndBackISFX12

    CallAfterSeconds 5 (begin function {}
        playerRef.PlaySoundFromPath "Data\sound\fx\amb\~casinos\gomorrah_sex\prostsleep\" 0 1 1
        ApplyImageSpaceModifier BlackSexISFX
    end)

    CallAfterSeconds 11 (begin function {}
        playerRef.PlaySoundFromPath "Data\sound\fx\amb\~casinos\gomorrah_sex\prostsleep\" 0 1 1
        ApplyImageSpaceModifier BlackSexISFX
    end)

    CallAfterSeconds 17 (begin function {}
        RemoveImageSpaceModifier BlackSexISFX
        ApplyImageSpaceModifier FadeInFromBlack4sISFX
        Set GameHour to GameHour + 3
        Player.CIOS WellRestedSpell
        if rNPC == 0
            playerRef.RemoveScriptPackage
            playerRef.EnablePlayerControls
        endif
    end)

    if rNPC == 0
        return
    endif

    CallAfterSeconds 19 (begin function {}
        rNPC.StopLook
        rNPC.SetRestrained 0
        playerRef.RemoveScriptPackage
        playerRef.EnablePlayerControls
        rNPC.DispatchEventAlt "NumenReact" "You just had sex with the player, comment in character. React the way you would -- afterglow, a dry quip, awkwardness, tenderness, back to business -- shaped by your [State] and personality."
    end)

    CallAfterSeconds 22 (begin function {}
        if rArmor
            rNPC.EquipItem rArmor
        endif
        if rHat
            rNPC.EquipItem rHat
        endif
        if rWeapon
            rNPC.EquipItem rWeapon
        endif
    end)

 

Posted

scn NumenSexScript

ref rHat
ref rArmor
ref rWeapon
ref rNPC
array_var aParams
string_var svReact
float fTimer
int iStage

begin function {}
    rNPC = this
    playerRef.AddScriptPackage DefaultStayAtCurrentLocation
    playerRef.DisablePlayerControls

    if rNPC
        rNPC.SetRestrained 1
        rNPC.Look playerRef

        if playerRef.IsInInterior
            let rHat := rNPC.GetEquippedObject 10
            let rArmor := rNPC.GetEquippedObject 2
            let rWeapon := rNPC.GetEquippedObject 5

            if IsFormValid rArmor
                rNPC.UnequipItem rArmor 0 1
            endif
            if IsFormValid rHat
                rNPC.UnequipItem rHat 0 1
            endif
            if IsFormValid rWeapon
                rNPC.UnequipItem rWeapon 0 1
            endif
            if rNPC.GetItemCount OutfitPrewarNegligee
                rNPC.EquipItem OutfitPrewarNegligee 0 1
            endif
        endif
    endif

    ; === Sexout call ===
    let aParams := Ar_Construct "stringmap"

    if rNPC
        let aParams["ActorA"] := rNPC
        let aParams["ActorB"] := playerRef
        let aParams["bDontRedressA"] := 1
    else
        let aParams["ActorA"] := playerRef
    endif

    call fnSexoutActRunFull aParams
    let aParams := ar_Null

    ; Wait for Sexout to finish
    let fTimer := 25
    let iStage := 1
end

begin GameMode
    if iStage == 0
        return
    endif

    if fTimer > 0
        let fTimer -= GetSecondsPassed
        return
    endif

    ; ========== AFTERGLOW (runs once Sexout is done) ==========
    let iStage := 0

    ; Cleanup
    if rNPC
        call fnSexoutActorUnlock rNPC
        call fnSexoutActorCleanup rNPC
    endif
    call fnSexoutActorUnlock playerRef
    call fnSexoutActorCleanup playerRef

    Set GameHour to GameHour + 3
    Player.CIOS WellRestedSpell

    ; Re-equip first
    if rNPC
        if rArmor
            rNPC.EquipItem rArmor
        endif
        if rHat
            rNPC.EquipItem rHat
        endif
        if rWeapon
            rNPC.EquipItem rWeapon
        endif

        rNPC.StopLook
        rNPC.SetRestrained 0
        rNPC.EVP
    endif

    ; Restore controls
    playerRef.RemoveScriptPackage
    playerRef.EnablePlayerControls
    playerRef.EVP

    ; Fire afterglow dialogue
    let svReact := "You just had sex with the player, comment in character. "
    let svReact += "React the way you would -- afterglow, a dry quip, awkwardness, "
    let svReact += "tenderness, back to business -- shaped by your [State] and personality."

    if rNPC
        rNPC.DispatchEventAlt "NumenReact" $svReact
    endif

    Sv_Destruct svReact
end

managed to get something working but the characters are frozen afterwards

 

 

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...