Kesta added a topic in Scripting and ImplementationAyleid Traps & PuzzlesRequest & Suggestions thread for Ayleid traps & puzzles.
Not a priority (for me) right now, but this is really a fun thing to work on, so I might as well spend a bit of times on it whenever bugfixing and quest & ai implementation get on my nerve
I'll probably need a bit of help from modelling gurus, as my artistics abilities are limited to nifs mashups and awful textures swaps Not that I don't want to learn, but now isn't the time.
Original request from John (Wellpap ?) :
Quick test this morning (Look like sh**, just wanted to make sure perma-casting beam worked, and test a few maintenance and framework-oriented functions) :
For this kind of "magic casting traps", I see two interesting setups:
1) Place the activator in the dungeon, and simply associate a linked ref with a specific keywords (CYRTrapTarget) which will be aimed at by the beam (that's similar to how the beam in the kilkreath (meridia dungeon) puzzle work, just easier to set up). Not that with this setup, unless the target you reference is solid, the spell will continue to its maximal range until it hit an object with collision (can be both an advantage and an inconvenient). The test above fire at an xmarker that's mid-way between the actual gem and the wall.
2) Place the activator in the dungeon, no additional work required. It will fire at a pre-defined direction (that's how dwemer flamthrowers works). The nif seem deeply involved, as it define the direction and the range of the beam, not my specialty but some copy-paste and tweaks between branches should produce exploitable and interesting results.
Can either use a pre-defined spell, or have something leveled, your call.
Those (and lot of others) can be controlled by adding an additional "timer" object in the cell, and linking the trap to it ("add activate parent"), in order to have random firing, or firing at intervals, instead of perma-cast.
Other traps to consider :
- Fire and forget ones (can re-use vanilla system, with or without different spells).
- Candlestick falling from the roof (similar to oil-pots in nordic dungeons, can make them fall when the player enter a trigger if you fancy this kind of things).
- Collapsing ground (reusing something like CYRAyleidRubblePile01), with a purpose similar to the grids that open under your feets in nordic dungeons.
- Spikes falling from the roof (BSKarceilingspike01 look just so perfect for it).
- "Crazy" welkynd throwing (distorted?) lightbeams around the room in an erratic and random fashion.
- Whatever you have in mind.
Puzzles are up for suggestions as well.
- 11 replies
- 630 views
Kesta added a topic in Scripting and ImplementationBruma Implementation ReviewX : Jeez, one more topic from you in the implementation forum ? Can't you just stop ?
K : Mmmh, how about you post your own so it won't look like I'm spamming
Anyway, the good news is : "The Courier", aka CYRBrumaMS11 (what a cute name... I think I typed this prefix a good thousand of time in the past days), which was the last "implementation not started" quest, is about done. Just some boring adjustments and some loose ends to be taken care of before it can actually go live for a proper test. Since LazurLintonArkinesonShade spent some white nights to steal my previous job in the meantime (joke, much appreciated, can't wait to see what you did with world encounters ), I'm "free".
So, with that in mind, what I intend to do this weekend is to go through all of the currently implemented quests and check them to fix potential bugs, tie up loose ends, ensure post-quest clean-up, etc... (I already noted a few ones that refuse to start or to complete, some with broken rewards... and the unmissable "Inkeep Is:" ). However, I guess/know that some of you - implementers - might have noticed those and fixed them on your own already (i know mattie have a plugin, and unless I missed something it haven't been merged yet). Since there is no point fixing the same issues twice... I'm opening this thread to kindly ask :
If you have some implementation fix/completion material ready, but aren't merged yet, please push them on git (or if you hate git, pack them in a zip and share a dl link here)If you have some WIP, please state it here so me or anyone who's going through a similar process know what's the state of this or that quest.Since the reference document is somewhat outdated, and is read-only, let's track the whole thing here
The objective is too have all of the quests, scenes, encounters, AI behaviors (this is navmesh-dependent), and dialogues (at least quest-related ones) fixed and polished by the end of next week, so everything is ready for the final recording. This will also imply some testers to be available whenever the review is done, especially grammar-nazis If you're up to it, post here as well so we know who to ask. Also, some "global players" who'd go through the whole County questing around would be nice, to figure out "large scope issue". (NPCs using some greetings way too often, too much different people using the same phrasing, too much Lusty Argonian Maid Jokes, ... ).
If anyone else is willing to do the same, I'm more than happy to split the work.
The only rule is : Don't review things you implemented yourself. Either you're aware of issues and post them here, labeling the implementation as "still WIP", and we skip the review for now. Or you're not, then you're unlikely to notice loose-ends or half-hidden bugs if you missed them the first time.
X : Meeh, what are you talking about ? No need for all this ! It just work !
K : Open the master in the CK and then check EditorWarnings.txt in Skyrim's folder... or just enable papyrus logging and check the log. You'll understand.
X : Meh², just make a list of claims to fix bugs.
K : I thought about it, but we're kinda lacking a proper issue tracker And a lot of what need to be fixed can actually be in less time than it'd take to actually write and explanation of the issue.
Aaand... that's about it.
tl;dr : Push all of the implementation you have asap. Post here if it's still "too WIP" and don't want anyone messing with that part. Go hunt and fix as much issues as you can. Lusty Argonian Maid.
- 8 replies
- 1128 views
Kesta added a topic in Scripting and ImplementationBackground Maintenance (+dragon spawn fix)Just pushed a small commit aimed at maintenance under new branch CYRBackgroundMaintenance Merged on 16/09/2016
Yes, I know, I was going to sleep, but there was some interesting things on TV and my computer was looking at me
This attach a new script to the PlayerAlias in CYRMaintenanceScript, that aim to automatically add spells/perks required to be added to the player for maintenance purposes.
This script (CYRBackgroundInitialization) contains two array properties :
An array of PerkAn array of SpellsAll of the perks / spells in those arrays are automatically added to the player upon script initialization (new game, or first load after installation) and savegame loading.
Spells/Perks are unique, so re-adding them don't have any weird side-effect. This system ensure that spells are added even if BSHearthland is installed mid-game, and that new spells/perks added to those lists will be added to the player between updates.
If you need a spell/perk to perform maintenance actions, simply design them, and then add them to their list. Don't forget to tick "Hide in UI" in the magic effects so the player don't see weird maintenance effects in its active magic effects menu
Current spells / perks added through it :
This spell prevent random dragon to be spawned in Cyrodiil's Location and all of its child/sub-child locations (i.e. any locations in Cyrodiil). it work by delaying the "number of days before next dragon" by 3 days every time there is one or less days left. More than blocking completely random dragons, this also prevent the 100% chance of seeing a dragon attack as soon as you go back to a non-Cyrodiil (read : Skyrim) location. (you probably noticed this if you played mods like Falskaar).
This is required since it seem there is a bug in the way random dragons are spawned, the vanilla conditions doesn't seem to handle properly the absence of the WITriggerDragon keyword in locations. "Fixing" this have been brought to the Unofficial Patch Project's attention, but until we know exactly the exact impact of "fixing" it (if that's really to be fixed), and they decide to include in a future USLEEP release, this workaround will have to do.
Can be disabled by setting the global variable CYRPreventDragonSpawn to 0.
- 4 replies
- 408 views
Kesta added a topic in Scripting and ImplementationCyrodiil's courier systemHi fellow BS people.
As per suggestion / request I worked on the courier system. This is pretty straightforward, and hopefully will be complete and have gone through proper testing before next week's merge and is in a usable state now, waiting for the next merge.
This thread is about the framework itself. I've put a tutorial in the second post, on how to send something to the player through Cyrodiil's courier.
For those of you who are wondering, Implementing a custom courier system wasn't something critical for Cyrodiil, and even less for the Bruma release. But it do have a few advantages :
We can have varied couriers.Couriers wear whatever we want them to wear (Colovian clothes typically ).We can add custom dialogue for specific deliveries without conflicting with the original game, and using our own voicetypes.
For those of you who don't know, here is how the vanilla system work :
A courier NPC and a container are located in a "technical cell" that isn't accessible.
Quest requesting a letter to be sent simply use a scripted function from the framwork to place the letter into the container. This function also increment a variable keeping track of the number of items in this container.
If this variable is above 0 (zero), when the player change locations, the "delivery" quest is started :
The courier is spawned in the location and go search for the player
If the player leave the location before the courier reach him, the quest is stopped and is restarted (since an other Location change event just got fired)
When the courier finally reach the player, he forcegreet him with the dialogue we all know
All of the "specific" lines are said, if any is valid, and then all of the items are given to the player *
This have for effect to empty the letter-container, and set the tracking variable back to 0 (zero)
The Courier go back to its spawnpoint to sandbox around here until he get disabled and moved back to his holding cell.
* "specific" lines are conditioned by the presence of a specific item (letter) in the container.
Here are the current improvements that have been thought of and implemented for the Cyrodiil's equivalent :
The courier NPC is "leveled" through its template, effectively enabling multiple couriers appearances (If you're familiar with the Varied Couriers mod by Madcat, this is the very same implementation) The default lines have been diversified on a per-courier basis, which should help reduce the redundancy of vanilla. The dialogue lines can be seen on this document. The topics have been split in a more logical manner, that should make adding new specific lines easier. This imply that for the generic dialogue, there is an additional "Here you go" line, said between the "Let's see here..." and "Look like that's it, got to go." (in vanilla, this jump directly from one to the other if not specific lines are valid) for default letters. This line is used to have the courier play a "give item" animation. Framework functions are more explicit (Vanilla: "addItemToContainer", Cyrodiil: "SendLetter" ... just x100 times easier to figure out what it actually do).
Limits : Vanilla quests will still send the vanilla courier from Skyrim to deliver Skyrim letters. Some generics ones like inheritance letters will be intercepted and replaced by a Cyrodiil counterpart, and others completely prevented (The ones sent to you when you shoot). But special ones, like the letter from the Jarl of Falkreath (Heartfire) or the dark brotherhood letter will still be sent through vanilla courier.
Any suggestions / questions welcome.
- 1 reply
- 533 views