Jump to content

dafydd99

Supporter
  • Posts

    135
  • Joined

  • Last visited

Nexus Mods Profile

About dafydd99

Profile Fields

  • Country
    United Kingdom

Recent Profile Visitors

3793 profile views

dafydd99's Achievements

Collaborator

Collaborator (7/14)

0

Reputation

  1. I did look into this a while back and couldn't find anyway to change the sphere size, so I think, as you suspected, it's baked in. I remember if I scaled it down to particularly small, the text would appear further out than you would expect, so it's certainly got some unusual/broken behaviour. Yes, I can't get onto the wiki either - keeps giving an internal error. uesp do have a copy online, so that might help. https://ck.uesp.net/wiki/Main_Page
  2. Okay, I think I'm getting a better idea of the scope of what you're trying to achieve. I'm now thinking you don't care if the undiscovered location appears on the compass or not - just that it doesn't appear on the map when a radiant quest begins (whether or not it is your own radiant quest). Yes you could certainly do this via your alias method. Or you could just have a trigger box you moveTo() the mapmarker - might get complicated if you have more than one of these quests active at once though, though perhaps that's true of your alias method too. But what do you want to do with a mapmarker that is currently already discovered before the radiant quest begins? I'm not sure there's a way to query whether its been visited or not yet. Although you could use EnableFastTravel(false) on it to turn off fast travel if it's already been discovered.
  3. So - the only behavioural difference between your mapmarkers and regular ones is you don't want yours to appear on the compass until discovered. I think the only way you could perhaps do that without scripting is to add a set of your own markers, with either an empty or non-existent 'undiscovered' versions for the compass. However, even if that could work it would need a fair bit of mucking about with shockwave .swf files, which the UI uses - I don't recommend! As scorrp10 says, the onLocationChange approach would work, but this might not be fine-grained enough to trigger the discovery exactly when you want it to. Now, if you really wanted to, you could do a regular poll, eg once every second. You could have a player alias with a 'registerforupdate', and check every 'poll' if the player has walked into a zone less than a given amount away from each of your mapmarkers. Though this is sort of the wrong way around, and uses scripting time when it's not necessary - I still think you'd be better off with the trigger boxes as they don't use up resources until needed, and trigger exactly when entered, not up to a second off (or whatever your polling time is). Even if there's hundreds of them, there's no additional game overhead. Btw, I think the trigger box you'd want to use is... defaultEnableDisableLinkedRef
  4. The normal behaviour for a mapmarker is to not appear on the map until 'discovered', ie visited. The exception here is if the player is 'told' about a location, and it will appear greyed out on the map, and cannot be fast travelled to. However any 'undiscovered' locations will appear in the compass greyed out from a set distance away, until 'discovered', then they'll be filled in, and you can fast travel to them. I'm guessing the reason why you want it disabled is so that it doesn't appear on the compass, but when you're close enough it appears and is immediately discovered? This is not standard mapmarker behaviour, so you'll need to do as you said - have it disabled, and then enable it. You can have it 'discovered' simply by setting the discover ring (the circle around the mapmarker in the creation kit that can be resized) larger than 'trigger sphere' as described above, so when it is enabled it's immediately discovered. Or you could set its 'Can Travel To' flag in the creation kit to on. If you want to do ten or so, you can just select both the trigger sphere and the map marker, copy - and then paste where you want another one. It should mantain the 'linked ref' from the trigger box to the mapmarker. https://skyrimck.uesp.net/wiki/Map_Marker
  5. I do something similar for my mod The Sidrat. You don't need a quest or an alias. You can have your mapmarker set as 'disabled' initially. Then you need to set up a 'trigger box' (or maybe better - a sphere). As the player enters, it would need to run a script to enable the mapmarker when it's entered by the player - the trigger would usually be 'linked' to the. You can create a trigger by selecting the mapmarker and clicking on the 'T' icon in the CK top bar. There's plenty of tutorials covering this so do check them out. You may find there's a script which covers this - if so it would probably be called something like 'defaultEnableLinkedOnPlayerEnter'. Hope this helps!
  6. If your mod is crashing out, it's likely that the papyrus logs don't show anything as they won't have had a chance to log the issue. You should check out crashlogger - which gives a stack dump at the time of the crash. It's often a bit indecipherable but if you post it on the page below, or even here, could be someone can track down the issue for you. https://www.nexusmods.com/skyrimspecialedition/mods/106440
  7. Re #2 - I think what you're asking is how do you attach various items to an animated, or moving object. There's a few ways this could be done - one of the easiest and most reliable is to edit the (eg) caravan nif, and add say pots and pans to wherever you like. However there's a more complex way it can be done from within the creation kit, which ALMOST works... Have a look on the giant nirnroot island on the northeast of the Solstheim map. There's a small boat there rocking to and fro on the shore. In the boat are a variety of items including a sack and a small chest. And they all move with the rocking boat! You can even open the chest! What has been done here is the 'attach ref' tab has be set on these references to have the boat as their parent. So they take animation and translation directly from this reference, their 3D and collision should be connected as if 'glued' on. In fact it's possible to do a few quite cool things. Eg in one of my mods I have a moving cage lift, with opening doors, and activateable buttons attached to a console inside the lift - the doors and buttons will stay connected to the lift and move with it. HOWEVER - the developers never ironed out some of the bugs. From my research, it seems in the case of loading a game previously saved in the same cell as these attached reference, those attached references can become hidden. It may be possible to add an alias to the player, and use OnPlayerLoadGame() to reset this, and use something like SplineTranslateToRefNode() to move those attached refs back in place, using a named node defined on the parent nif. It's possible you may need to disable and enable them first - to 'shake' them back to life. Hope this helps - I spent a little time looking at this so may have more information if you're interested. Cheers - dafydd99
  8. Generally in high-level programming languages 'return' will exit the current function, with an optional value. 'break' is used in some languages to break out of the current level of (eg) 'if' or 'for loop' or 'while loop' you're in. Papyrus doesn't support 'break'.
  9. Although that does work, I don't recommend it as if you attempt to do that in world cell it can cause an onccasional crash to desktop due to the way world maps are made (though normally fine in internal cells). I did get the raise/lower water levels working. I believe it requires a specific keyword in the water activator to work, but I can't recall what it is - but probably something like 'Moveable'. Check a working water activator that does raise and copy how it's set up. Raising and lowering should work the same. Edit - I've checked in cell DLC2Nchardak03 - keyword is 'Movable'.
  10. The door does have a standard door teleport location set? If so you could try a script which activates it via a linked ref - though your activateParent experiment above should've worked. Note the 'actronaut' should be player or it may not know which Actor to relocate. Also be careful using bespoke door solutions that your follower can go through successfully too.
  11. I think some nifs have collision types that won't bring up an 'activation' rollover text - so if it's different you could try to modify it with nifskope to a similar one to eg a dwemer door. If you want to use a trigger box instead, you can select your door and click on the main bar button with a 'T' in a box. This should bring up a collision box that you can edit to change it's dialogue (to eg 'open door'). Make sure the Z rotation isn't zero as this sometimes causes a weird bug where it doesn't work. You'd need to link it to the door and use a script to activate that linked ref. This oject WOULD have the 'primitive' tab on the object data, and you can change it to 'player activation'. If I remember correctly doors don't as such have this primitive tab - though activators do. https://wiki.bethesda.net/wiki/creationkit/Skyrim/Creating_Primitives/ cheers - dafydd99
  12. Thanks IsharaMeradin! That's all good stuff. I suppose I'm a little worried when I get just a few people having difficulty, that's actually just the tip of the iceberg, and hundreds have had the problem but simply haven't got in touch about it and given up. I try generally to just use standard assets and scripts, plus my own, to minimise chances of clashes with incompatible mods - but I feel there's more I could do. Yes I'm certainly a fan of the 'belt and braces' approach - eg in your example I could do both the onTriggerLeave event and the onItemAdded - first one triggered progresses the quest, second if triggered is just a backup. But at the same time it would be nice to understand in what situations a triggerbox hasn't worked. Re OnCellAttach - yes for sure, just using that as an example. Eg perhaps someone has identified that disabling, then re-enabling a triggerbox in an onCellAttach event might avoid a problem, or maybe more than twenty in a cell could cause issues or some too close to each other etc. Perhaps this is a part of a bigger question. I would love to find a document on 'skyrim bugs, gotchas and limitations' - simple things that you might do without realising there's an issue with the underlying engine that can cause problems when you least expect it, or that it was only ever designed to deal with eg 10 of something, and as soon as you go to 11 odd things start to happen. Eg - three issues/bugs I've identified (after many hours of investigations!) are: - using .kill() on an actor seems to cause a CTD when used frequently - often after around 50 actors or so have been killed. Whereas simply causing them a lot of damage (and thus killing them that way) via DamageActorValue avoids this problem completely. - disabling a water object in an exterior cell can cause a CTD if it exists on the world map - if you need to, you should translate it to somewhere under the ground, rather than disable it. - 'ambushes' sometimes silently don't set themselves up correctly because they're having a problem interpretting the navmesh. Even if the navmesh doesn't actually return any errors - and in fact is apparently 'fine'. By trial and error you can find the issue is with a triangle many rooms away that's part of the same navmesh. Ah well, I can dream!
  13. I seem to remember physics effects may only be seen on certain newly created objects if you give them a 'knock' first - so that might also be an alternative if disablenowait()/enablenowait() is inconvenient. A zero magnitude impulse using ApplyHavokImpulse should do the trick.
  14. From the creaiton kit wiki, on the main quest tab... Allow Repeated Stages: If this box is checked, a journal entry will be displayed (and quest stage results run) every time SetStage is called for a particular stage number. Otherwise, SetStage has no effect after it is called the first time for any stage on a running quest. Generally this box is not ticked for the vast majority of quests.
  15. Hi all, I've had a couple of issues raised with trigger boxes on rare occasions not activating in my mods. Now I'm aware of these issues, so avoid them... don't have 'zero' rotations in player activated trigger boxes as there seems to be an occasional low level bug onTriggerEnter and onTriggerLeave events may not fire in order However, the two situations I've had reported issues from are with an 'onTriggerEnter' not firing as the player enters, and an 'onTriggerLeave' not firing as an object is removed from a pedestal. Both seem rare, and I haven't been able to duplicate, but they block quest progress, so of course ideally they'd totally bug free. Is there a 'best practice' use of them, eg perhaps doing something in 'onCellAttach' to maximise the chance of them working? Thanks for any responses, dafydd99
×
×
  • Create New...