Jump to content

IsharaMeradin

Premium Member
  • Posts

    9185
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by IsharaMeradin

  1. Test on a new clean game that has not seen your mod to ensure that the Creation Kit is truly screwing with your plugin. Certain changes will not be reflected in an existing game due to the previous data being stored in the save file. Data in the save file always gets priority over anything else.
  2. If a mod has multiple ESPs as masters, loading and saving the plugin with the Creation Kit will strip the plugin of the ESP masters. One would need to use a patch mod that allows the CK to use ESPs as parent masters. Or every ESP master would need to have its header toggled to indicate that it is an ESM and then the offending plugin could be re-saved to change the form type. But then each ESP master that had its header toggled to ESM would need to be togged back. Wrye Bash can be used to ESMify and ESPify as needed (okay, they changed terminology since I last used it -- Add ESM flag / Remove ESM flag). The short way: Use this 'mod' (READ THE STICKY POSTS), load the offending plugin and save it. The long way: Ensure that the offending plugin and its parent masters are active in your load order. Open Wrye Bash, write a note of which parent masters of the offending plugin have the ESP extension and are not already flagged as ESM. Right click on the offending plugin and choose the option (if available) "Add ESM flag to masters". If not available, all masters already have an ESM flag. Exit Wrye Bash (your load order will be screwed up as the now ESM flagged ESPs will move to the ESM section). Open the Creation Kit, load the offending plugin and save it. No need to make changes. Re-open Wrye Bash, check the note made earlier about parent masters with ESP extensions that were not already flagged ESM, go one by one and right click on each and choose to "Remove ESM flag". If none of the ESP parent masters were originally flagged ESM, then you may right click on the offending plugin and choose the option "Remove ESM flag from masters". Exit Wrye Bash, open your mod manager of choice and correct your load order (i.e. ensure that the ESP parent masters are where they were prior to beginning this process). Hope this is helpful.
  3. You may benefit from Smooth Attribute Scaling. With this mod, you can define how much goes into health, magicka and stamina depending upon the skills that level up. It also makes the decision to select magicka, stamina or health at level up meaningless (an option has to be picked but any visible change would be reverted when the menu closes). Of course, if you are not using SKSE or SkyUI, then you won't be able to use this mod.
  4. Put in some trace or notification statements that can tell you what values things have at certain times. Make sure that the data is being returned the way you intend for it to be. Only you can truly determine where your script might be failing. This is because you have everything else that the script needs to work. While we can test for compilation and provide suggestions, we cannot determine if it will work specifically for your needs. EDIT: When you start the fire, you have pGlobal with values of 0 through 5. When you downgrade the fire, you only have values of 1 through 5. If the fire is to be completely out at 6 hours or more, you'll need to add the ability to completely put out the fire when the pGlobal is at 0. This is because 5 - 6 = -1 but gets set to 0 in the script. And because there is no instructions as to what to do when pGlobal is at a value of 0, nothing happens.
  5. Change pGlobal = pGlobal - StagesPassed to pGlobal = (pGlobal - StagesPassed) as Int The reason for this is that pGlobal is defined as an integer. But up until this point we have been working with floats. The end result being assigned to the pGlobal variable needs to be cast into an integer. A simple oversight. As far as the empty state, that is what any area outside of defined states would be called. So if a script does not have any defined states, that script is completely in the empty state. Should someone state that a variable declaration needs to be in the empty state, it means that it belongs outside of any state definitions, events or functions. Typically where properties reside. You can also change float property ST Auto into Float ST Only two reasons to make a variable a property: The variable cannot be defined within the script itself and instead must be assigned something with the Creation Kit. The variable needs to be accessed by another script.
  6. A local script variable is one that is defined in the empty state but whose value can be changed as needed throughout the script. A local event / function variable is one that is defined inside of an event or function and used exclusively within that event or function. Your empty state should have: Float ST And at each update registration you should have: ST = Utility.GetCurrentGameTime() As far as the CurrentStage thing, that was a mistake. I had tried a couple different approaches before realizing I was making things too complicated. It was a forgotten leftover. Replace it with pGlobal and it should work as intended.
  7. This is the condition used by the game to determine when Serena is self-cured and can have the appropriate dialog with the player. Subject.GetStage(DLC1SeranaCureSelfQuest [QUST:02005044]) = 100.000000 AND You can see this at work within 02005033 <DLC1SeranaCureSelfQuestPostBranchTopic>
  8. When you register for the update, store the current time in a script wide local variable. Say ST for start time. Then in the update event after assigning the pGlobal variable insert the following (needs tested). Float StagesPassed = Math.Floor(((Utility.GetCurrentGameTime() - ST) * 24) / pHourstoWait) If (pGlobal - StagesPassed) > 0 pGlobal = CurrentStage - StagesPassed Else pGlobal = 0 EndIf The above should take the difference between the current time and the start, break it down to hours, and divide it by the number of hours to wait. Then round that down to the nearest whole number (this should be the number of stages that should have passed). If the current stage value less the result, is greater than zero assign the new value otherwise assign zero and proceed with the rest of the update event.
  9. Perhaps this will help: https://forums.nexusmods.com/topic/2337894-mcm-translation-expand-string/ EDIT: And if that doesn't help or is already what you are trying to do, then perhaps adjust how you do it $VersionUpdate Version updated to $VUnum{} {} Debug.Notification("$VersionUpdate"+" "+"$VUnum{"+ver+"}")
  10. Nexus stance has traditionally been, if there is no specific language indicating use permission then one should not use those particular assets. There is nothing stopping you from utilizing the assets locally for your own purposes on your own computer. That said, uploading modifications using assets without permission can get you in trouble. Especially here at the Nexus. Now if the Bethesda.net links still worked, you might have been able to check on permissions for the original mod within the release forum thread. But sadly, those were removed.
  11. For your second example, since you are working with an array, use Find to get the index with the matching value and then do something. If csbmagellanquest04locations.isrunning() Int index = SavedText.Find(CorrectReplacmentText) Debug.Trace("CorrectReplacementText has been found at index "+index+" of the SavedText array.") If index >= 0 ;a match has been found ;do something since they match Else ;do smething else since there was no match EndIf EndIf
  12. I cannot help you as I know nothing about the C++ side of SKSE. However, I have to ask, why are you using SKSE to try and copy a script from one record to another? Why can you not assign the script to the desired record(s) in the Creation Kit?
  13. Here was my approach to working around an item in the potion / food / ingredient categories that get consumed on use: I created a single effect with a short duration with an attached script that used the OnEffectFinish event to re-add a new instance of the object. The White Phial on the other hand utilizes two separate quest scripts, one which is told by the player what effect it will be using, adds the pre-defined version of the white phial with that effect. The effect uses OnEffectStart to call the second quest script which adds the empty version of the phial and registers for an update. After which, the first quest script once again adds the pre-defined version, and the process can repeat as much as possible. The difference in the two approaches: My approach will show the item leaving the inventory and returning only after the player has exited the inventory and the effect duration completes. The White Phial approach will show the full item leaving with the empty version appearing almost immediately. My approach works best for an item flagged as a quest item that cannot leave the player inventory (at least manually). The White Phial approach will also work wherever the phial might be placed (container or ground) as it is also designed to track its location.
  14. This information was not found in the Creation Kit. I did look at the CRO6 quest in xEdit and saw the scripts that were attached to the quest. I then looked those up in File Explorer and opened them with Sublime Text. When I saw that CR06QuestScript was calling a function on its parent script, I looked to the ScriptName declaration to see what script was being extended. I then found that script and opened it up. I looked for the function that was called there and found where the map marker was being added to the map. Perhaps this will be informative: https://ck.uesp.net/wiki/Extending_Scripts_(Papyrus)
  15. Parent in a special pre-defined variable within the Papyrus system. It always refers to the script that the current one extends. In this case CR06QuestScript extended CompanionsRadiantQuest.
  16. It is done via script. I don't see where the function is initially called. Bethesda developer comments state that the function is called when the quest is accepted. If we just go with that, then the local quest script calls the overarching companion radiant quest script which is where the map marker actually gets added to the map. CR06QuestScript Function Accepted() BossChest.GetReference().GetParentCell().Reset() BossChest.GetReference().AddItem(Gewgaw.GetReference()) parent.Accepted() EndFunction CompanionsRadiantQuest ; called when player accepts quest Function Accepted() ; Debug.Trace("CRQ: Accepting " + self + ".") (ParentQuest as CompanionsHousekeepingScript).AcceptRadiantQuest(Questgiver.GetActorReference(), QuestgiverComesAlong) if ( (MapMarker != None) && (MapMarker.GetReference() != None) ) MapMarker.GetReference().AddToMap() endif IsAccepted = True SetStage(10) EndFunction
  17. People who run across this thread at a later date when looking for information regarding a similar issue, may appreciate the resolution being shared as well.
  18. Probably unwise to do the approach you have described. Not even sure that the name field alone would allow that many characters. It finally dawned on me that the problem with your initial approach is that SetName (an SKSE function) applies to the base object and not to any one specific instance. Thus when you change the name via SetName, you are changing it for all instances. And that is why your first letter gets updated to the new data on the second letter. This may be the case where the object itself needs to be edited. Sometimes trying to do things so that they will be as compatible as possible also makes it more complicated and difficult to track down issues.
  19. The difference then must be in the approach to filling the data. I haven't had much experience in this aspect to be honest. I just knew (where to look up) the basics of how the quest worked. I would guess that you would need to try the same approach as was done originally. Not sure how feasible that might be for compatibility purposes.
  20. Not a mod. It has happened in the unmodded base game for both LE and SE. All it is, is a sign that your game has a bottleneck and struggling to swap from LOD to closeup textures. It happens to me after some time playing. Saving, exiting and reloading solves the problem for the next little while. I have a personal threshold where if this type of thing crops up within, I look at culling some mods until this issue appears later than the designated threshold.
  21. While a bounty quest is active, there will be no other instances of that bounty quest offered in any hold. The current quest must be completed. If the hold in question has multiple locations for that bounty type, it may be possible to get a second bounty quest of the same type. Otherwise, it will not be possible to get the same bounty quest for the same location until the same bounty type has been completed for a different hold. The letter itself contains placeholder text which gets filled with the appropriate alias data. The text string that gets replaced with the alias data is to be considered more of a variable that holds the assigned value rather than something that has to re-acquire the data every time it is loaded. And because the letter is created anew for each quest, every bounty letter is its own separate instance of the base object holding its own specified variable text. End result, one can have in their inventory one bounty letter for an active quest to kill a bandit leader and multiple bounty letters for completed quests to kill bandit leaders.
  22. The wiki page I linked in the earlier post, lists the body part numbers along with their typical usage. It also gives instructions on how to change the body slot number in the NIF file, the armor record and the armor addon record.
  23. NIF files are not imported or uploaded to the Creation Kit. The CK merely accesses them as it does with any other file type assigned to an object record. That said, you've assigned the mesh to an object record and you're crashing when the render window or a preview window tries to display the object? And if not, what steps are you doing that is leading up to the crash? I, personally, cannot help you solve any potential issues with the mesh itself. However, the answers to these questions may certainly help others to understand your issue and hopefully provide you with some insight.
×
×
  • Create New...