Asterra Posted August 22, 2018 Author Share Posted August 22, 2018 Does GetOpenState not check what you need with the animation? So I was painfully reminded that form lists can't have duplicate entries, which brings my container/door thing to a halt. Not really sure what to do about it. Probably nothing, since I was looking at dozens of further hours on this even if I hadn't hit that stumbling block. Setting up even a single 1000-entry scripted array would be absolute insanity. Link to comment Share on other sites More sharing options...
EPDGaffney Posted August 22, 2018 Share Posted August 22, 2018 I don't think I ever completely understood what method you were attempting to use to do it, so I don't know why the form list thing becomes a problem for you. The method I was suggesting would work fine with that limitation, but the truth is whatever you do would be inherently messy, a huge amount of work to fine-tune, and almost certainly run into problems with certain load orders that you'd need to fix. I just don't really think it's worth the trouble, though it is (probably) doable. What was the thing you found out about the Static Attenuation with SetSoundTraitNumeric? I'll add it to the wiki, unless you want to. I'm preparing a mod for release, so I haven't tested sUActn for registering controller input, but you're welcome to try that avenue instead of a fast quest script. I can explain what I'm thinking if it's not immediately obvious. Link to comment Share on other sites More sharing options...
Asterra Posted August 22, 2018 Author Share Posted August 22, 2018 I don't think I ever completely understood what method you were attempting to use to do it, so I don't know why the form list thing becomes a problem for you. Well, for some reason, I thought I could get away with tucking everything in individual form lists. This would still have worked had the NV GECK permitted some other kind of array. And it still could work, depending on how I feel about creating a script-based array of literally about a thousand entries. I'm not even confident that I wouldn't end up violating some built-in limitation, and I certainly don't know how quickly something could be retrieved from an array of that size. Those are the problems. If I feel like it, I may return to the project later on. whatever you do would be inherently messy, a huge amount of work to fine-tune, and almost certainly run into problems with certain load orders that you'd need to fix. Messy, maybe. A lot of work, absolutely -- entirely in the form of figuring out what sound a given container/door uses, plugging that in, and generating its replacement. Load order problems? No. The only vanilla entry modifications I'll be making are for the handful of containers/doors that play double (triple) sounds due to having redundant sound entries. I actually have it all working already; what's missing are the second and third lists, which now must be arrays if indeed anything at all. What was the thing you found out about the Static Attenuation with SetSoundTraitNumeric? I'll add it to the wiki, unless you want to. Very well. Feel free to double-check my observations. 1: GetSoundTraitNumeric 3 returns a negative integer (0 to -100). This conforms to the GECK's slider, but decimal places are rounded off, even though the GECK's slider uses two places (e.g. -6.17). Thus the function fails to fully provide the desired data, although in truth this limitation can be worked around. 2: SetSoundTraitNumeric 3 only accepts integers from 0 to 10000, with the latter corresponding to -100.0 in GECK. If you give it a negative number, such as that provided by GetSoundTraitNumeric 3, it will default to 0, aka no attenuation. There are actually quirks with other parameters as well, not that I am focusing on those. The first two parameters seem to only like multiples of 5, and parameter 0 wouldn't even accept that, from what I could tell. I don't intend to further troubleshoot it. Link to comment Share on other sites More sharing options...
Asterra Posted August 23, 2018 Author Share Posted August 23, 2018 (edited) I'm preparing a mod for release, so I haven't tested sUActn for registering controller input, but you're welcome to try that avenue instead of a fast quest script. That idea is for after I sort out the container thing. Edit: It seems there is a hard limit on how big scripts themselves can be, which I briefly misinterpreted as a limit on array size. It does mean things have to be done across multiple quests and scripts. And right now it's even looking like entries aren't being added to arrays successfully, potentially due to how large the arrays are. Edit2: So, oddly enough, the Let command will generate an error complaining about a "NULL" entry when using GetType, and yet it will still successfully perform the GetType. Clearly a bug. Using Set To avoids the error message and it works fine. And it seems scripted arrays will indeed do the trick. I suppose that technically means this mod can now be completed, although it's going to be done so in fits and starts since there is a long road ahead. Edit: Thought of a way to drastically simplify things. Edited August 23, 2018 by Asterra Link to comment Share on other sites More sharing options...
EPDGaffney Posted August 24, 2018 Share Posted August 24, 2018 I'm not sure where you are now but it seems further than you were before, so that's good. Yes, there's a limit on script size, as well as script line length. I don't think arrays have a limit, but you may have hit on a practical limit, or did you get round that? How did you simplify things? I'll test the Get/SetSoundTraitNumeric stuff later. Sounds really odd. I wasn't referring to a record conflict but a code conflict. No matter how clean you think your mod is, there's almost always a chance that it conflicts with something else, though this chance can obviously be reduced based on how clean your mod is and how small its scope. But in your case, because the scope is so huge, someone somewhere will probably have another mod that somehow conflicts with it, especially if the mod is ambitious but not very professionally made. For example, you probably didn't think Empty or Not Empty conflicted with anything, but assuming it works perfectly on its own, it was conflicting with another mod in that user's load order and making guns float in the air or whatever they said. Apparently, uninstalling your mod fixed that problem, though I have no idea why a mod like EoNE would do anything that could be in that type of conflict. I couldn't reproduce the bug whatsoever, so I'm assuming it was a conflict. In my experience, Let is never wrong. I doubt you've found a bug, even if the error is so minor as to be inconsequential and render the debug print more a nuisance than a help. I remember someone much more experienced than myself, miguick I think, having a Let problem and eventually realising the error was completely accurate but just didn't really matter. Link to comment Share on other sites More sharing options...
Asterra Posted August 24, 2018 Author Share Posted August 24, 2018 Yes, there's a limit on script size, as well as script line length. I don't think arrays have a limit, but you may have hit on a practical limit, or did you get round that? I ended up spreading everything across two scripts. I'll test the Get/SetSoundTraitNumeric stuff later. Sounds really odd. I fleshed out the tests and put up a post in the JIP thread. In a nutshell, it's usable but doesn't give or allow for the kind of detail GECK inherently supports (and which the wiki author clearly assumed was possible with it), and if they try to fix it now, well, I'll probably have to rewrite some of my mod. In my experience, Let is never wrong. I doubt you've found a bug, even if the error is so minor as to be inconsequential and render the debug print more a nuisance than a help. I remember someone much more experienced than myself, miguick I think, having a Let problem and eventually realising the error was completely accurate but just didn't really matter. All I know is the function was giving me what I wanted in both cases, but Let was uniquely spamming the console with errors over it. The function was GetType. Not really in a hurry to figure out exactly why Let was complaining since I got my solution and all is well. I'm not sure where you are now but it seems further than you were before, so that's good. You know how it is. Something always comes up. Right now I'm potentially faced with a slight dilemma: Do I modify vanilla sounds in GECK, or do that at startup? The latter sounds more tidy, but if someone then uninstalls the mod, I can only expect that they would be stuck with the changes my mod made, whereas GECK edits don't share that risk. Probably what I will do instead is make the changes dynamically and hope that's good enough. Too often I find myself lamenting how restrictive things are compared with Skyrim modding. Can I get a ref -> int somehow? That by itself would make things so much easier. Link to comment Share on other sites More sharing options...
EPDGaffney Posted August 26, 2018 Share Posted August 26, 2018 I honestly would expect all the startup changes to be persistent only through the session and need to be redone every launch or load. I think Jazz has fixed the sound trait stuff. Let me know what you find, so I know if I should edit the wiki. I'll test myself at some point as well, but I'm busy of late. Link to comment Share on other sites More sharing options...
Asterra Posted August 26, 2018 Author Share Posted August 26, 2018 I honestly would expect all the startup changes to be persistent only through the session and need to be redone every launch or load. I still ended up doing it dynamically since that way it minimizes the chance of confounding some other mod. I think Jazz has fixed the sound trait stuff. Let me know what you find, so I know if I should edit the wiki. I'll test myself at some point as well, but I'm busy of late. Fixed the way I expected. All positive values are still made negative, but negative values are now accepted. Anything below -100 (or above 100) is truncated to -100. Decimal places are now accepted. I will have to change things in my mod to account for this fix, but I suppose it was necessary. Will also need to require users to upgrade their JIP. Link to comment Share on other sites More sharing options...
Asterra Posted August 28, 2018 Author Share Posted August 28, 2018 I'm not sure where you are now but it seems further than you were before, so that's good. It's done, more or less. A certain thing carries the potential to cause CTDs, which I'm looking to solve, but it's only for a handful of containers. Link to comment Share on other sites More sharing options...
EPDGaffney Posted August 28, 2018 Share Posted August 28, 2018 I'm going to need to test out that function a bit to make sure I have it all perfectly accurate and then add it to the wiki. My joke golf club mod used a lot of PlaceAtMe with markers and it causes CTDs as well, so that has to be it. My mod would require several X markers to do what it does, so I may rework it to be an effect if I ever return to it. For you however, would a MoveTo with a single X marker work? I don't know the exact function of that script segment you posted, but knowing what your mod does, I'm assuming it would suffice to use just one that gets moved a lot. Also, if you're using events, PlaceAtMe takes more than a frame to process and has caused several of us problems in the past. It was a big hurdle for MadAce's Momentum a while back, for example. I have my doubts that that's the problem here, though. Another possibility is that because MarkForDelete doesn't actually work on mod-added forms, it's confusing the engine to do it so many times. If I recall right, MarkForDelete does clean up something, and is the normal practise, so I doubt removing that would be a good solution, but it could enlighten us as a test. And most interesting, I was taking your word for it that this sound-doubling stuff is in the game, assuming it was really subtle and I just hadn't played with the volume up in so long I'd forgotten what exactly it sounds like. Well...I watched your video and there is absolutely no way that's a standard occurrence in my game. That would have driven me insane. Unless it's somehow heightened by that sound mod you mentioned earlier. I wanted to install that but a lot of people report a heavy toll on the engine, so I'm holding out hope someone can fix it eventually, and I'll install it then. Link to comment Share on other sites More sharing options...
Recommended Posts