Jump to content

FuryoftheStars

Members
  • Posts

    48
  • Joined

  • Last visited

Nexus Mods Profile

About FuryoftheStars

Profile Fields

  • Country
    None

FuryoftheStars's Achievements

Contributor

Contributor (5/14)

0

Reputation

  1. Took a bit of a hiatus. :tongue: Here's my (current) final version of the script that seems to be working. If interested, let me know if you see anything in there that sticks out as maybe needing to be changed. Thanks for all your help on this!! Edit: Aaaand I should probably make sure to take out all the Debug.Trace lines (delete or comment out) for the actual packaged mod. :P
  2. While I do not have a direct answer to your question, perhaps a suggestion to deal with having so many followers with you: use a mod like NFF or MHIYH to assign them to your homes and (mentally) treat it as though you hired them to guard your homes while you are away.
  3. You could specify that the player needs to pull out their own items first, if you wanted. Just make sure to put that warning in nice, large lettering on the mod page. :P
  4. Most mods I've seen do something like this just add in the new objects they want, then instruct the player to build the appropriate wing, not build anything in there (in fact, just disable the workbench and use the console to select & disable anything they already have built), and then install/enable the mod. If you want to put in the work to make it dynamic/able to be installed even if the player has already built things in there and then the player builds your objects... I believe each room has a form ID list with all objects for their room. You may be able to run through the list in a script that will check for and disable all of these items (I do not recommend deleting... just disable). Note that many objects in the rooms will have an Enable Parent of one of the other objects. You won't be able to disable these directly, but disabling their Enable Parent will cause them to in turn disable (but if you're running down the form ID list, you should be good as these objects won't be on that list, anyway). You can also potentially script something to disable the store room's workbench and enable your own workbench with just your objects for the player to build (if you wanted to go that route). I don't know how easy it would be to change the Steward's dialog options and I know nothing on the NPC conversation/animation bit. I'm still learning much of this myself. I actually have a pretty ambitious mod idea in my head where I'm going to take over the building scripts for the wings from the vanilla ones and allow 2 things: 1) any wing can be built on any of the 3 sides, and 2) allow removing a wing so you can change it to something else if you like. Right now I'm working on helping someone else update an Oldrim to SSE conversion mod, but it's helping me learn a great deal. :smile:
  5. And now the end table and book are no longer seen as None in the script for the old existing save I had. I have no idea what I've done to do this, or if this has permanently fixed it or if someone else may experience the issue. :confused: :facepalm:
  6. Yeah, that was what I was using, but I had the CK open in the background for most of the day, closing and reopening seldomly, so I don't know if that could have interfered somehow (I reported the issue to the SSEScript mod page and the author responded saying his software still uses the game's compiler for actually compiling). Ok, so I did some testing on these objects that are coming back None. If I start a new game, they don't do this. I'm wondering if this is related to these objects not being persistent previously and thus, if you haven't built the mannequin yet, don't actually exist yet? Even though they get flagged persistent by this mod now, I don't think it takes effect until they're enabled (or a new game is started). Additionally, I can't actually enable/disable these objects directly even when they do exist. The Enable Parent setting seems to override this, so I have to enable/disable the mannequin instead. Not a huge deal, I was able to work through that by adding another array (that I populate in the CK with the object's Enable Parent, if there is one) and duplicating the main working part of the code with the minor changes of enabling/disabling the object specified by the new array, while performing the TranslateTo on the object in the original array. Are there search tools/features I can make use of in the script? Maybe once I enable the mannequin and the table and book are created, I can search the cell for them and then do the needed work? Or, assuming that once created the table and book keep the same ref id # as visible in the CK, I can pass their id #s themselves to the script (rather than the object reference) and somehow pull their object reference with that? I don't know what's available to me at this point, but I feel like there's gotta be something (the HF script is somehow able to enable its objects with just a part id # being passed to it rather than an object reference).
  7. Ok, I'll try some testing at some point to see if I can figure that out. I'm pretty sure it's not the HF script that's causing issues as it's the same script as used by the chandeliers and horker head. Only thing that's really different is that the book and end table are enabled via a set Enable Parent (pointing to the mannequin), and that there is no Reference Editor ID name filled in (it has a hex ref id, just not a plain text one). Filling something into this does not solve it on an already existing save, though. I'll try a couple bouts with it on new play throughs and see what I get. And the i+=1 thing, yeah, I dunno. It seems to work today for some reason. May have been some kind of weird bug in the CK/compiler? Maybe if I'd shut the CK down and retried it would've worked? *shrug*
  8. Woohoo, everything most things seem to be working so far. :) Course, I forgot to put in a "i += 1" into my while loops, so it was kind of funny seeing the first chandelier just flickering in and out of existence. :P (Annnnd there seems to be a bug with the compiler software I'm using. Won't compile "i += 1", though it will compile "i =+ 1", even though that syntax doesn't actually work. Oh well. Writing out the full thing of "i = i + 1" for now.) And this... If False && NeedsUpdating && ConfirmationMessage.Show() == 1 ...still resulted in the message box showing, so I guess that answers that question. :) Oh well, multi-line it is! Ok, another hurdle! (In case you can't tell, I'm writing this post as I go and try things and encounter new issues, then fix them....). The end table and book under the wall mounted horker head on the 2nd floor of the main hall... they're enabled via the mannequin next to them rather than directly like the chandeliers and horker head. In the CK, I can add them as objects to the script and everything looks fine there, but when the script actually runs, it's saying the object is "None" and (expectedly given no object) throws errors when attempting to do anything with them. What gives?
  9. Thanks. Yeah, I realized the mistake I was making and ended up doing this (by the way, how do you do spoiler tags in these forums?): bool NeedsUpdating = False int i = 0 While i < ObjectArray.Length && !NeedsUpdating If ObjectArray[i].GetPositionX() != XCoordArray[i] || ObjectArray[i].GetPositionY() != YCoordArray[i] || ObjectArray[i].GetPositionZ() != ZCoordArray[i] NeedsUpdating = True EndIf EndWhile Oh, one more question. If statements with multiple conditions. Does papyrus evaluate all of the conditions regardless, or will it shortcut out if the first condition it evaluates false? IE: If NeedsUpdating && ConfirmationMessage.Show() == 1 If "NeedsUpdating" is False, will it still attempt to evaluate the next condition (causing the message box to show), or will it shortcut out and skip the message box? I've seen both ways between the languages I've used.
  10. Thanks! (EDIT: Bleh, nevermind on the below. I suppose it'd still be good info to know, but I'm realizing at the moment that the usage of the array where I'm trying to use it is actually over complicating things, so I'm switching methods.) So I'm working through this and went ahead and bit the bullet to learn arrays and looping with papyrus (I still need the xyz coords as I want to do a quick check to see if the objects are already in their correct positions. If they are, there's no sense in popping the message to the player or doing anything else). One question I have on them: can you assign the full array of values to the variable in one go? Rather than writing out individual If checks on each object's xyz coords, I'm popping them into an array defined in script during runtime and then looping on it real quick with a bool to break early if need. This is what I have at the moment that'll compile (this is just a snippet): float[] xyzCoords = new float[3] xyzCoords[0] = ObjectArray[i].GetPositionX() xyzCoords[1] = ObjectArray[i].GetPositionY() xyzCoords[2] = ObjectArray[i].GetPositionZ() In other languages, this is doable in one line, though I suppose due to the nature of just declaring the array I can't do that in papyrus. But can I combine the 3 assignments into one line? Again, in other languages, I could do something like this: float[] xyzCoords = new float[3] xyzCoords = {ObjectArray[i].GetPositionX(), ObjectArray[i].GetPositionY(), ObjectArray[i].GetPositionZ()} However, this won't compile for papyrus. I've tried wrapping the values in {}, [], and (). Do I need to use something other than a comma? Or am I stuck with having to assign each element on their own line?
  11. Is there a trigger condition for quests for when you enter certain cells? A bit of experimentation reveals that if I wait until I'm inside of the hearthfire home before popping my message (for now, I'm just setting a 30 sec delay to give me time to get inside with the current save I have), then enable the object, TranslateTo will work. I can also check the object's enable condition and save this to a bool prior to enabling it for the move, that way once I'm done moving it, I can re-disable it (and actually, I'm noticing I need to disable/re-enable anyway to update the collision box, so really, I'm disabling regardless, then checking the bool to see if I should re-enable). MoveToMyEditorLocation still does not work and in fact I just noticed it's throwing an error of "cannot be moved" into the papyrus log for that method. I did notice in SSEEdit that the chandeliers and horker head are flagged as persistent, which lead me to googling around and finding some posts by Arthmoor on the AFK Mods forums talking about different levels of persistence and that in some cases of "fully" persistent objects, even script methods of moving objects wouldn't work. *shrug* https://www.afkmods.com/index.php?/topic/3669-overhauling-the-weapon-rack-scripts/page/21/&tab=comments#comment-148158 (Note that in that quote snippet, it's movement via the CK and mods Arthmoor is talking about except where specifically mentioning scripts.) Anyway, if quests can trigger by the player entering a certain cell, then I can just split this into 3 quests, 1 for each home, then run down the list of objects using the technique I detailed above. I'd considered looking into arrays and papyrus's equivalent to for loops so I could cut down on the number of property vars I need to write into the script (and hopefully avoid having to edit the script any time a change is made where another object's location needs to be updated or one no longer needs it), but in order to do that, I'd also need to create a matrix array for the xyz coords (to feed into TranslateTo) and I'm not sure if I want to go down that road, yet (assuming papyrus can even do that)....
  12. Like, when you start aiming in 3rd person it auto switches to 1st? I donât recall seeing one, but you can press F (default key to switch between 1st and 3rd on PC) while aiming and itâll switch.
  13. Ok, actually, I think Iâve thought of a way to solve the âis this being installed mid play throughâ. Just check the xyz coords of the objects. If theyâre not correct, then prompt the player.
  14. Could I still have this main quest with the confirmation dialog and use it to populate a global var with the playerâs response, and then use a reference alias quest for the individual objects whoâs scripts check this var? In this way I can still move the objects (including the ones that arenât firing any of the normal objectreference events) and only have it done if the player confirms this is what they want. Iâm also wondering if thereâs any way to differentiate between a player adding this mod mid play through vs starting a new game?
  15. Yes, sorry, properties are filled on the script, too.
×
×
  • Create New...