idrinth-thalui / core

A Skyrim SE Follower, see https://www.nexusmods.com/skyrimspecialedition/mods/69338
https://idrinth-thalui.idrinth.de/
1 stars 0 forks source link

Cross-Mod - Clockwork #350

Closed Idrinth closed 2 weeks ago

Idrinth commented 2 years ago

https://www.nexusmods.com/skyrimspecialedition/mods/4155 + https://www.nexusmods.com/skyrimspecialedition/mods/47087

Waiting for Permission.

Idrinth commented 2 years ago

Permission recieved. @BellCubeDev feel free to suggest something!

BellCubeDev commented 2 years ago

Well, I can think of two ways to do this:

  1. Idrinth comments on the house, Dwemer 'robots', magical teleportation device he just went through, etc. and maybe asks you to take him down to the Dwemer Ruin.
  2. Idrinth disobeys the warning when you first enter the Velothi Tunnels and runs in right alongside you. Being a centuries-old vampire pays off, eh?

From there, here are some things he could comment on (I'm not too familiar with his style, so I can't write any of his lines):

Castle

Tunnels (only if #​2 is selected)

Aurinimac commented 2 years ago

I'll download Clockwork, haven't played it before (thank Auri-El for XEdit). But from a short walktrough it sounds fun. Especially to comment.

Aurinimac commented 2 years ago

Definitely worth commenting - from the pictures a Hammer movie-flair with a few Dr. Who-situations. Nice! We've just need to see how to start properly. What's important to know: Which followers DO can come with you normally (i.e. without being called by Kaidan's war horn/teleport spell/etc.)? Which are the trigger points for different sights/situations? general Velothi tunnel/Clockwork/Nurndural lines?

Aurinimac commented 2 years ago

I think this is the perfect mod to look up a few more Aldmeri curses - Idrinth won't like the tunnel.

BellCubeDev commented 2 years ago

@Aurinimac

What's important to know: Which followers DO can come with you normally (i.e. without being called by Kaidan's war horn/teleport spell/etc.)? Which are the trigger points for different sights/situations? general Velothi tunnel/Clockwork/Nurndural lines?

I don't know of any followers that follow you through by design (though summons should work like normal since the only thing stopping followers is a door that blocks follower interaction). Because of that, I'm not sure there are any typical lines. Time for INNOVATION!

I will note that I've talked a bit with Joseph Russel on adding integration with Lucien (if you're familiar with Lucien, you'll know why it would be a perfect fit), though he's currently busy working on other parts of the mod. That said, Lucien and Idrinth have two very different personalities.

I'm also not sure if there are any triggers you could easily hijack in Clockwork to give unique comments. There will be some, however, that you could hijack using what I believe to be the standard method (creating an Alias and initializing it to a temporary reference, setting it to a GetFormFromFile on game load). Perhaps I could be of assistance in adding more triggers as an optional plugin (or even doing some madman-level scripting wizardry)?

Idrinth commented 2 years ago

I don't know of any followers that follow you through by design (though summons should work like normal since the only thing stopping followers is a door that blocks follower interaction). Because of that, I'm not sure there are any typical lines. Time for INNOVATION!

Will see if I can't handle cell load checks in a way, that he enters with you. Plan to first test that on the soul cairn.

I will note that I've talked a bit with Joseph Russel on adding integration with Lucien (if you're familiar with Lucien, you'll know why it would be a perfect fit), though he's currently busy working on other parts of the mod. That said, Lucien and Idrinth have two very different personalities.

yes, Lucien and Idrinth are two extremely different types. I do enjoy the combination, I hope we can expand upon it. Did already ask for permission to get started on commenting on Lucien.

I'm also not sure if there are any triggers you could easily hijack in Clockwork to give unique comments. There will be some, however, that you could hijack using what I believe to be the standard method (creating an Alias and initializing it to a temporary reference, setting it to a GetFormFromFile on game load). Perhaps I could be of assistance in adding more triggers as an optional plugin (or even doing some madman-level scripting wizardry)?

The get form from file is used in my small framework and I'll expand upon it. With that it should be no issue to hook into the following:

For performance reasons those have a tiny delay, so update once every 15s only. Do we need more?

BellCubeDev commented 2 years ago

The get form from file is used in my small framework and I'll expand upon it. With that it should be no issue to hook into the following:

  • current quest stage
  • in location checks
  • in cell checks
  • near npc check

For performance reasons those have a tiny delay, so update once every 15s only. Do we need more?

I wouldn't think so, no. In all honesty, I don't think you'd even need to check for nearby NPCs outside of combat (good thing dialogue conditions can handle that)—quest stage changes should be just fine.

Commenting on the tunnel, though, might require more surgical work.

Aurinimac commented 2 years ago

Sooo - I will start cooking up some lines as soon as you two find out what's technically possible to comment upon. I sincerely hope the tunnel would work, have a few ideas already ;) And Lucien is more than perfect - torn between utter horror and downright infatuation with the Gilded and the Clockwork Castle.

BellCubeDev commented 2 years ago

I might have to do a run through with markers enabled in-game (see bShowMarkers in Skyrim.ini).

BellCubeDev commented 2 years ago

Here's a list of triggers in the Velothi Mountain Tunnels that Idrinth could use to trigger comments:

Velothi Mountain Tunnels (Cell 1)

Velothi Mountain Tunnels - Bone Hollow (Cell 2)

Velothi Mountain Tunnels - Glass Lake (Cell 3)

BellCubeDev commented 2 years ago

It'd also be possible to inject triggers using scripts, should we want it. We could place Triggers in the CK and move them via script to any location relative to any other reference.

Aurinimac commented 2 years ago

Soo, a few of the more interesting bone sculptures are able to be commented upon? Sounds good! Maybe we should start a seperate folder under Dialogues to gather the first comments?

BellCubeDev commented 2 years ago

Just wrote out a simplistic system to place in additional triggers, if we need them:

Making use of the scripts below, you could place Triggers in some kind of dummy cell, attach the second script (idrinth_triggerPlacementObj) to the triggers, and configure the Properties however you'd like. The first script (idrinth_triggerPlacer) should point to each of those triggers in its refsToMove Property.

Scriptname idrinth_triggerPlacer extends ReferenceAlias
{If the Player enters the specified location, }

idrinth_triggerPlacementObj[] Property refsToMove  Auto

String Property aliasName = "VelothiTunnelsLoc" Auto
{Name of the Location Alias to fetch from the quest}
;Int Property aliasID = "VelothiTunnelsLoc" Auto
;{ID of the Location Alias to fetch from the quest}

Event OnLocationChange(Location akOldLoc, Location akNewLoc)
    LocationAlias VelothiTunnelsLocAlias = GetOwningQuest().GetAliasByName(aliasName) as LocationAlias
    ;LocationAlias VelothiTunnelsLocAlias = GetOwningQuest().GetAlias(aliasID) as LocationAlias
    if !VelothiTunnelsLocAlias
        return
    endIf

    Location VelothiTunnelsLoc = VelothiTunnelsLocAlias.GetLocation()
    if akNewLoc != VelothiTunnelsLoc
        return
    endIf

    int i = 0
    int iMax = refsToMove.Length
    while i < iMax
        refsToMove[i].Place()  ; see idrinth_triggerPlacementObj for what's going on here
        i += 1
    endWhile

EndEvent
Scriptname idrinth_triggerPlacementObj extends ObjectReference
{Attach to individual objects that should be placed by the triggerPlacer script.}

Float Property offset_X = 0.0 Auto
{X Offset (in units) from the object we're moving to
Defaults to 0}
Float Property offset_Y = 0.0 Auto
{Y Offset (in units) from the object we're moving to
Defaults to 0}
Float Property offset_Z = 0.0 Auto
{Z Offset (in units) from the object we're moving to
Defaults to 0}
Float Property rotation_X = 0.0 Auto
{X Rotation (in degrees)
Defaults to 0°}
Float Property rotation_Y = 0.0 Auto
{Y Rotation (in degrees)
Defaults to 0°}
Float Property rotation_Z = 0.0 Auto
{Z Rotation (in degrees)
Defaults to 0°}
Bool Property rotation__isRelativeToObjectLocation = false Auto
{Whether the rotation specified here should be added to the rotation of the object we're fetching from
Defaults to false.}

; Default: PlayerREF
Int Property _FormID = 14 Auto
{FormID to fetch from the plugin}
String Property _PluginName = "Skyrim.esm" Auto
{Plugin to look fetch the form from}

Function Place()
    Form targetForm = Game.GetFormFromFile(_FormID, _PluginName)
    ObjectReference targetObject = targetForm as ObjectReference
    if !targetObject
        return
    endIf

    SetAngle(0.0, 0.0, 0.0)
    MoveTo(targetObject, offset_X, offset_Y, offset_Z, rotation__isRelativeToObjectLocation)

    SetAngle(GetAngleX() + rotation_X, GetAngleY() + rotation_Y, GetAngleZ() + rotation_Z)
EndFunction

Oh, it feels SO NICE to get syntax highlighting for Papyrus!

If you don't want to enforce SKSE on users, you can switch up the commented lines in idrinth_triggerPlacer

Idrinth commented 2 years ago

skse is already a requirement, so not an issue