Jump to content

DocClox

Members
  • Posts

    122
  • Joined

  • Last visited

Everything posted by DocClox

  1. I've got a piece of complex furniture which has a ring mounted on a pair of pivots. I've been using PlaceAtNode (or PlaceAtMe and MoveToNode sometimes) and it's been working just fine. But suddenly I've been getting odd z-axis rotations on the placed rings. What's odd is that the rings, while they're skewed with regards to the furniture placed, they all seem to be aligned with each other, which makes me think they're using global axes for the rotation. Here's a couple of screenies illustrating the problem. https://imgur.com/a/hfYKVGt Anyway, I can't think why this is happening. I';m sure it was working properly before. Or maybe it's always worked this way and I've just been positioning my test pieces close enough to global that I never noticed. Seems an odd way t odo it though - the whole point about placing at a node is to inherit the nodes position and rotation. Could I have accidentally set a flag somewhere to make this happen? [edit] Odder still, I'm also using PlaceAtNode to place the RotationHelperFree marker I use to rotate the ring. And, turning marker visibility on, that's always correctly aligned with the furniture. [edit] It's also nothing I can't fix, more or less trivially, by setting the ring's z-rotation to be the same as the base. But it bothers me when things start misbehaving for no obvious reason.
  2. I think a big part of what I've been missing is the WorkshopParent BuildObjectPUBLIC method. If I call that on my papyrus placed objects, they seem to initialize properly. I placed a floor tile with a furniture animation on it, and it would work as furniture, but I couldn't assign settlers to it. Now I'm calling BuildObjectPUBLIC on it and suddenly I can assign settlers. This is probably what I was missing from the bot in the first place. That and workshopObjectActorScript. This seems promising.
  3. Else ;Swear lots EndIf Hehehe. That sounds familiar :D Seriously, thanks for that. That looks interesting. I know the light I'm trying to use has a TurningOn animation, but I'd been hoping I didn't need to do the two in order. Maybe that was wishful thinking on my part.
  4. I was thinking "power state". If it can't get at the workshop, it can't determine if it's powered or not, and that might change the graph. I'll have a look at removing the havok data. That could simplify things a lot. Nope, no joy there, either :sad: Going to try linking to the workshop, and then niston's suggestion about deleting havok data.
  5. It's useful to draw a distinction between the quest starting running in engine terms, and the player getting notified about it. From a player point of view the quest doesn't start until they get their first objective, but the quest as a software entity can have been running for some time before that. What you can do, is stick some clutter item in the cell where the quest is going to start and give it an OnLoad event, and start the quest running from there. That way it doesn't start until the player is in the area. Then, when the player reads the appropriate terminal entry, you can run a script fragment to advance the quest stage, and give the player an objective, and that will start the quest from the player perspective.
  6. Not a sausage. I'm wondering if I need to set a linked ref to the workshop. There's a lot I don't understand about script-pacing workshop items.
  7. It's still not co-operating. objectreference function add_spot(string node) int count = 10 objectreference ref = placeatnode(node, DLC06VltLightCeiling, abForcePersist=true, abAttach=true) while ! ref.Is3dLoaded() && count > 10 count -= 10 utility.wait(0.1) endwhile ref.setscale(0.7) utility.wait(0.1) ref.playGamebryoAnimation("On", true) return ref endfunction I think the event is being processed by the graph, since subsequent attempts to turn the light on yield an error in the logs. But the light does not glow or emit. I tried setting up a generator and pylon ahead of time, but that doesn't seem to help. I did wonder if it was because I placed them from papyrus rather than the workshop, but the only thin I could think of to do in that case would be to point the light at the local workshop, and that property appears to be read only. Apart from that, I'm out of ideas.
  8. Thanks. I'm good with scripting, but animation and nif files are still a bit new to me.
  9. Basically, I want to rotate a settler 90 degrees around the y axis so they're on their back and floating about three foot in the air. And then to be able to move them around in that position. Along with the furniture. I just had a look to see if I could find a save with a working version of the MK1 frame, and you could have had a link to a picture. Anyway, the problem is that the engine won't let me rotate actors off their feet, and takes it as request for head tracking, I think. Certainly their feet stay very much on the ground. Hmmm. OK. So maybe part of the problem has been that I've been trying to force the bot to be a workshop object and I should have been using the actor script. That's interesting.
  10. It's definitely possible. If you think about it, the vanilla game does it with turrets. Where the wheel comes off is trying to get settlers to interact with the 'bot as if it were furniture. I think the engine sees an actor under the crosshairs and that overrides the assignment. There's probably a keyword that'll change the behavior, but damned if I can find it.
  11. I can. Only the actor needs to be mounted on the bot or else I'm limited to rotating actors with a 0xff refid. What could work, and what I'm trying at the moment, is to add a separate item of furniture as an addon. Settler activates that, the platform moves back on rails (I can do that with TranslateTo) and then when they get to the box, either Assign them to the bot, or SnapIntoInteraction to get them there. I don't strictly need the moving platform on rails part, but I figure if I have to have a secondary activator, I might at least use it for something interesting.
  12. Yeah, possibly. Having got this far, I want to see what happens. Plan C is to mount the bot, and then snapIntoInteraction on it. Trouble with that is that the workshop keeps trying to get it back on the initial furniture. I can probably de-assign the settler, but then it's marked as not doing anything. We'll see what happens. If this doesn't work, I'll have to break out Max and see about animating the rotation that way. I'd far sooner not, though.
  13. I keep forgetting about the preview window. And I've only tried from the console, so "PlayGamebryoAnimation" could well be what I'm missing. Thanks. I'll give that a shot. [edit] Good call about the preview window. Looks like I had the right event names from the nif, so my problem must have been that I was using "playidle" from the console rather than PlayGamebryoAnimation
  14. I tried that. That's how I got the the damn thing to snap to the connect point. And I can select a settler in the workshop, then point the cursor at the bot and I get an "assign" prompt, but nothing happens if I hit enter. Current plan is to use a second item of furniture as a staging area, and once they activate that, use the WorkshopObjectScript Assign method to reassign the settler from papyrus. No idea if it'll work, but at least I should learn something.
  15. I have a complex furniture nif that has a couple of attached lights. What I'd like to do is have the lights turn on when the furniture is in use and turn off again when not. It's not as simple as just toggling power to the lights: I want them off if the device is powered but empty. I can catch the events with OnActivate and OnExitFurniture, but I can't work out how to change the light state. Looking at the nif, I thought I might be able to send playidle("On") or playidle("TurningOn") or even playidle("UnpoweredOn") ... but I've had no luck. Last time I did this, I frigged it with separate addon meshes for on and off, and attaching light objects to provide the glow. I'll do that again if I have to, but it seems like a lot of fuss when there's a vanilla object with the functionality built-in. If only I can find the "on" switch.
  16. Long story short: I have a rideable bot that I want to place using the workshop and then assign actors to it as if it were furniture. I can place the bot, but assigning actors does nothing. Longer version: I have a frame that I want to place and actor on, and then the frame will rotate 90 about the Y-Axis (yaw) so that the settler is on their back. Problem with that, of course, is that I can't rotate actors through the y-axis. So I added a RotateHelperFree and attached both the frame and the actor to that. That works wonderfully well, except when I try and use it on the likes of Piper. I can only use AttachTo on references placed at runtime, and Piper is placed in the editor. So I thought to make the furniture a rideable bot, and then rotate the bot. So I made the bot, got it to use the idle I want, and confirmed that I can rotate the bot and the actor will follow. And with some fiddling with keywords, I can place my furniture bot in a settlement. But I can't assign a settler to it. I get the "Enter to assign" prompt, but hitting enter doesn't do anything. Anyone tried this? I feel like I'm really close, but I can't work out this last bit.
  17. Apologies if this has been raised before, but how about a search option based on re-use permissions? I'm sure a lot of modders would find it useful to be able to search only among those assets that can be reused without permission. Similarly it would be handy to be able to exclude those mods that may not be reused under any circumstances. There's an obvious benefit here to modders looking for cool things to put in a dungeon, or for an NPC to wear. But there's also a benefit for modders wanting to protect their assets. If there's an easy way to exclude their work when asset hunting, then the chances of their work being mistakenly used without permission is going to decrease as well. The parameter could default to "all" so no one would miss out on exposure, except where they'd presumably prefer not to have any :) [edit] nvm - seems there's a checkbox on the advanced search page already.
×
×
  • Create New...