porting kuertee's Sittable Rocks mod from Oblivion

Post » Wed Jun 20, 2012 5:08 pm

Hey folks. One of my favorite Oblivion mods is kuertee's Sittable Rocks, and I've been desperately trying to figure out a way to port it, or something like it, into Skyrim. Unfortunately it seems the project is beyond my scripting ability. So finally I gave up and contacted kuertee about it. He let me know that he thought someone might have mentioned working on a similar project - I'm wondering who that is, and if they're still considering the project. Anyone know anything about this?
User avatar
Nathan Barker
 
Posts: 3554
Joined: Sun Jun 10, 2007 5:55 am

Post » Wed Jun 20, 2012 7:11 pm

Hey ChaosPearl, Here's that post from a user named Katixa that asked about Sittable Rocks: http://www.gamesas.com/topic/1349570-a-couple-of-how-to-questions-for-expert-modders/

Anyway, I thought about this more and we may not need SKSE's support for Papyrus as I suggested in our previous conversation.

This is how I'd do it:
  • Create a FormList of static rocks that are suitable for sitting. There will be hundreds of them.
  • Create an interior cell. Move an XMarker to it. This marker will mark the location of the rock that you will sit on.
  • Create a quest (call it ChairAlias) with 2 Aliases. The first Alias points to that XMarker. The second will create a chair at the location of the first Alias. This quest will be manually started by another, so make sure that it starts disabled.
  • Create another quest (call it RockAliases) with 5 Aliases with a condition that the Form is listed in the FormList. I think the Condition is called "IsInList". Ensure that the Alias' Optional flag is set and that the quest starts disabled. This 2nd quest will also be started manually by another quest.
  • Add a Script to each Alias with an OnActivate () Event. This Script will:
    • Move a marker from a hidden cell to the location of the rock
    • Start the 1st quest (ChairAlias). When that first quest is started, it's Aliases will be populated. This means that its 1st Alias will point to the marker that has just been moved to the rock. And the 2nd Alias will create a chair in its location.
  • To make the player sit in one movement, add an OnInit () Event to a Script attached to the chair's Alias in the first quest. In this Script, use the Activate () command to make the player sit.
  • Create a third quest (call it SittableRocks). This is our "main" quest and ensure that it is started as Enabled. The Script in this quest will stop and start the 2nd quest (RockAliases) every time the player moves 1000 units. As a reminder: Stopping a Quest will clear its Aliases and any Scripts or variables attached to that Alias. And Starting it forces it to populate its Aliases. So at every 1000 distance, the 2nd quest (RockAliases) will keep populating its Aliases with rocks that allows us to interact with them.

Sorry for not providing more detail. But I think the basics to getting a mod like this to work are there.




To everyone: I'm not really sure when I can get to porting my Oblivion version to Skyrim, so anyone is free to try this. Good luck to whoever does.
User avatar
Dalia
 
Posts: 3488
Joined: Mon Oct 23, 2006 12:29 pm

Post » Wed Jun 20, 2012 10:56 am

I'm about to show my ignorance here, especially if I'm wrong... kindly keep the laughter to a dull roar.

A FormList would contain all the base objects available in the CK that are suitable as sitting rocks, yes? I'd create myself a new formlist the same way I create anything else; find one, change the ID and save it as a new form, remove the original contents, then populate it by dragging said suitable objects from the object window?

That sounds like a right pain in the [censored]. Fortunately things that are a right pain in the [censored] yet don't require too much Papyrus skill are right up my alley. At least I can do the drudge work while I wrap my head around the rest of the process. Maybe by the time I've finished checking every rock form in Skyrim for suitability, somebody who knows what they're doing will magically appear to help me with the scripting.
User avatar
Michael Russ
 
Posts: 3380
Joined: Thu Jul 05, 2007 3:33 am

Post » Wed Jun 20, 2012 8:03 pm

Hey ChaosPearl, yup.

That's how you'd create FormLists. It's pretty simple. For my TimeScale feature of Auto-save and time, I had to create a FormList of road meshes so that I can detect if the player is on the road or not. I simply created a new FormList, kept that window open, then filtered ALL list with the word "road". Any object that I thought suggested a road in the game, I dragged into the FormList. Rocks would be a little harder, I think - because they are numerous. You'd need to use some deductive reasoning to find the most suitable rock meshes.

Then, to get your head around using Aliases in Quests, go through that Quest tutorial in the Creation Kit Wiki. Basically, Aliases can be used to create objects in the game world. For e.g. You can have a quest to create 5000 gold in the player's inventory. Or to create a horse or a new house or a new rock near the player's location.

Also, Aliases can be used to find things around the player. A trick we learned (borgut, proved this in this thread: http://www.gamesas.com/topic/1349649-dynamically-attaching-scripts-to-actors-near-the-player/) here in the forums is that they can be used to continously find things. We just need to periodically Stop () then Start () the Quest. That's why we need several Quests for this to work. The main quest will Stop () and Start () the quests that locates rocks around the player. Once a rock is activated, another Quest is Started () to create the chair object.

To summarise, we use Aliases to find rocks and attach a Script to them so that the player can activate them. Then we use another set of Aliases to create the chair. Once all that is working, all we need to do is make that chair invisible - so that the player looks like they are sitting on the rock.
User avatar
Brandon Bernardi
 
Posts: 3481
Joined: Tue Sep 25, 2007 9:06 am


Return to V - Skyrim