Jump to content

xWilburCobbx

Members
  • Posts

    92
  • Joined

  • Last visited

Everything posted by xWilburCobbx

  1. I also have this issue, everytime I launch the CK it seems to vary in how bad it is. I suspect it has something to do with resizing the preview window.
  2. I have answered my own question! As it turns out, it just shows the objectives in the order the script sets them in, I don't know why it didn't dawn on me till now. So (90) is at the bottom, and (5) is at the top. self.SetObjectiveDisplayed(90) self.SetObjectiveDisplayed(80) self.SetObjectiveDisplayed(75) self.SetObjectiveDisplayed(74) self.SetObjectiveDisplayed(70) self.SetObjectiveDisplayed(60) self.SetObjectiveDisplayed(50) self.SetObjectiveDisplayed(40) self.SetObjectiveDisplayed(30) self.SetObjectiveDisplayed(6) self.SetObjectiveDisplayed(5)
  3. Ok new development... It's got to be something SKI UI is doing. If I set the value by using the OnOptionDefault() function with a float value that is set to 0.1, it will work normally. float Property fDefPer = 0.1 auto event OnOptionDefault(int option) gPercent.SetValue(fDefPer) fPer = fDefPer SetSliderOptionValue(_Multiplier, fPer, "x{2}") IncQS.UpdStatVal() iTot = gTotIncStat.GetValue() as int ;Updates the ForceMoney value SetTextOptionValue(_ForceMoney, iTot) endEvent Something about SKI UI's slider system is probably outputting strange values.
  4. I don't know why this is happening, but I have a simple math operation that takes a global variable, multiplies it by 0.1. Normally this outputs like it should, but if I use an MCM programmed for SKI UI to adjust the 0.1 and put it back, it outputs the value by 1 less then it should. This script fragment is the main one that runs this calculation: gTotalPaid.GetValue() = 5,000 * gPercent.GetValue() = 0.1 fTot = (gTotalPaid.GetValue() * gPercent.GetValue()) gTotIncStat.SetValue(fTot) fTot outputs 500 if untouched, but if I move it up to 0.11 and back to 0.10, it then outputs 499. This isn't the full code, but this is what I use for my SKU UI. These are the important pieces of the code that actually do the adjustments: What's weird is it will subtract 1 from only some multiples. Multiples of 0.05 generally subtract 1, but not all. 0.08 will even give me a flat 400. Does anyone know why Papyrus calculates like this? It shouldn't be rounding up/down since 0.10 should be outputting whole numbers. It just takes 1 away from the result on some multiplier values for seemingly no reason.
  5. Sounds worse than lumping them all together to be honest, imagine having 11+ quests in your list! I think what I have isn't too bad, some things are getting moved around to different quest anyways.
  6. That's probably what I would do normally, but in this case it's extremely important all 11 objectives are available at once. It doesn't look too bad when your inside cities, but some cities are outside and it crowds the compass a bit. The game will embolden the closest objective so it's not horrible, but it might be a bit inconvenient if the player has to double check the map in some cases.
  7. I actually have two different questions. The way my quest works you need to have a lot of objective markers, it has 11 and they are all displayed at once. To help keep the objectives in order, I tried changing the IDs of my first two objectives so it fits in the list alphabetically. In game they just show in the order they were created in! Even if I delete them and recreate them using the same IDs they still appear in their original place. Also, is there a way to make the objectives selectable? Like the Misc quest, but without actually putting in the misc quest. None of these are necessarily game breaking, but if there is any way I can improve the aesthetic I would like to know. My mod is gonna ship soon and I want to make it look it's best.
  8. Yeah, I figured as much, thanks for clarifying. Its super useful to know that once a function is ran, no matter what state the script changes to while running the function, it wont stop and it will only change for future runs.
  9. You aren't kidding! I typo'd "GotoState("Standby")" and wrote "Standb" I had a bit of a hard time understanding why my trigger wasn't usable after I clicked away the fail message. I opened the .psc back up and immediately spotted it, luckily my script is small!
  10. Noted. Thanks! I changed it up, I wasn't aware changing the state didn't end the current function abruptly. Which brings me to my next consistently recurring train of thought. What will force a script to drop what it's doing, besides "return"? Would this work? Or will it only read the current running function before before having issues? I have a feeling this will fail to run "MyFunc()" inside the "Waiting" state, and will run the one inside the empty state instead. That would makes since to me, but let's make sure I am not going insane here.
  11. That's actually kind of crazy. My SSD is rated to last up to 10 years or more, SSDs in general are actually surpassing HDDs in life span. This is with normal use as well. My lap can only house 1 SATA drive at a time, I was only able to install my Samsung because newer PCs have M.2 slots and that's what I ordered it with. So I actually have 3GBs of storage, 1GB of an ultra high speed M.2 SSD, and 2GB of a SATA SSD which is slower, but not noticeably. No need! If you insist you have my permission, but It was a very simply test. I also got to learn that the CK is limited in how fast it can operate, which is advantageous knowledge to anyone who is sketchy about its overall performance. This program was released in 2012? That's not even counting its existence for developers, could go all the way back as far as Morrowind! It's an ancient piece of software, that has way too many bugs to count. Its a no wonder it runs like truck.
  12. This is interesting actually, I never knew because I always just use Funcion when I make them. Makes since I wouldn't know that, especially if declaring it an Event is moot.
  13. Well ReDragon2013 gave me a new idea, funny enough it's actually related to a completely different issue with the script, the way you re-did my delete function with "myF_REM(Int i = 0)" got me thinking about it. I didn't remember I could only do 1 Linked Reference per keyword on an object, so I changed the system to dynamically erase every object in a linked chain. "change button position to prevent ESC pressed error" I have never heard of this one before, when I go into the game I can't use ESC to exit, and when I turn my controller on it forces me to pick one of the options. Is this related to SkyUI? I have been testing this mod on the vanilla version, trying to keep it away from dependencies since the mod is just too simple. Also, you really go out of your way to re-write the script in your own technique, that's pretty awesome. What I notice is you really like to use IF statements then manually force the script to stop with RETURN. Why is that? Do you just like to keep things on 1 level for read-ability? maxarturo I decided to use your way because it makes me feel like my script has more stable security against multiple activations. Though I don't know if it actually does, or if using a bool/int does the job equally well. testiger2 & NexusComa2 I am no programmer! So I don't understand concepts like "Fist time Flag" yet. I am scratching the surface on learning more advanced methods of scripting, so I appreciate the knowledge. So, this is what I have come up with, it does 1 new operation but it does essentially the same thing. The only thing that I am unsure of is using a while loop in "Function DeleteRef()". I heard this can bloat saves, but is it fine if its just fired for a brief amount of time? I feel like uninstalling the mod while its actively doing this in a save is a highly unlikely phenomenon.
  14. I used my phone to time everything out, and here are the results. System OS: Windows 10 Home 64-bit System Manufacturer: Micro-Star International Co., Ltd. System Model: GL75 9SDK Processor: IntelĀ® Core i7-9750H CPU @ 2.60GHz (12 CPUs), ~2.6GHz Memory: 16384MB RAM GPU: NVIDIA GeForce GTX 1660 Ti Drive: Samsung SSD 860 EVO 2TB Results Run 1 Dawnguard.esm Dragonborn.esm HearthFires.esm Skyrim.esm Update.esm (~2:41) Run 2 Dawnguard.esm Dragonborn.esm HearthFires.esm Skyrim.esm Update.esm TESV - MiddleEarth.esm TESVMiddelearthII.esp (~4:16) Cell load (~2:00) (This one was hard to do speaking CK was having viewport issues. Its took 5sec to load all the object references and get into the cell, and about 2 minutes to load the models in the viewport for the cell & 6 neighboring cells.) Conclusion I would run the same test and compare your results, people in general have a bad sense of time! I thought it only took less than 1 min to load the base game+dlc, but I was way off! If you are right, then I don't see much of a reason to invest in a more a powerful system just for this purpose. Even if its an extra minute or 2, it wouldn't make sense. Only buy a new PC if you plan on doing current gen gaming with it.
  15. There is some pretty big differences. https://www.creationkit.com/index.php?title=Events_Reference You can't just make events like you can functions. Example 1 is the way to go, besides why would you want launch an event from an event? If it has to initiate through 1 event, then any functions it runs are all based on the event anyways. You can add multiple events to the script though. Event OnInit() EndEvent Event OnActivate() EndEvent
  16. As always, I am very happy that you took the time to help me out. I know I tend to beat around the bush, I apologize. If you get to the last paragraph, I explain what the bug actually was. I was trying to include details just encase there is something I should know about those things that might have been the root cause. I got my answer for that one. This is essentially what testiger2 was suggesting, except with an int instead of a bool. I would probably just use a bool if my value could only be 1 of 2 things. I think I ultimately like the idea maxarturo had. Setting a state seems messy, but functionally faster. Instead of telling the script to do value assignments and to assess those values, I can just tell it to go to a state. It will automatically ignore anything not in the state, essentially disabling the OnActivate() event listener. When I finally get back on the computer, I am gonna show off my finished version and you guys can critique it.
  17. I tell you what I am willing to do if it would really help you, I know making big investments without knowing the benefit is hard. If you ask me, the ability to play modern games on the PC would be my main reason! If that's not your fancy for one thing or another, then I can help you out. I can detail my actual specs to you, and if you could hand me the files, I can load them myself. I will time them out if CK doesn't log it anywhere, and show you the results between just masterfiles, and MF + those 2 .esp(s). I can give you the results and you can see for yourself if its worth it or not.
  18. Just a little note: one of the biggest performance improvements is cell load times. I can load 7 cells at once and everything will appear in a matter of seconds! Even in cities like Solitude.
  19. This is about what I have, I bought mine a year ago for $1,400. https://www.ibuypower.com/Store/ASUS-ROG-Strix-G15-G512LU-RS74-Gaming-Laptop Mine is an MSI, but MSIs sell like hot cakes! So iBUYPOWER doesn't have any right now. Asus is still solid though. Your main bottle necks are gonna be your GPU, hard drive, and the program itself. I bought one of these for my laptop, https://www.samsung.com/us/computing/memory-storage/solid-state-drives/ssd-860-evo-2-5--sata-iii-500gb-mz-76e500b-am/ Loading all the masterfiles in CK from my Samsung takes like less then 1min, and saving is instant. Ofcourse .esp size and how well the program handles loading it are major factors. To what extent I don't know.
  20. Yeah I got a little excited and skimmed through the concept of a state on the wiki, I will make sure to read it thoroughly when I go off work for the next day or 2. I can see so much potential for this! Other then preventing my strange bug, I don't have a use for it else where quiet yet. Especially since Function UpdStatVal() needs to be ran by this script and it's home script. Luckily if UpdStatVal() is fumbled, its totally fine as long as it is ran again, its not serious. gTotalPaid.Mod(fCost) is in the script I showed you, and its the absolute most important one that CAN NOT fail under any circumstances.
  21. This explains a lot! Yeah I am not too familiar with the bugs of the papyrus engine itself. I can always make it use a state, I will read documentation on it and touch up my knowledge of states before I just start using them. I do have portions of other scripts that take data from some globals. I am not on my PC right now, but it is a function that gets called by this very script. IncQS.UpdStatVal() It takes values from 2 globals, runs a math operation with them and stores the result in a 3rd global just meant for text replacement. Should this go in a state? I feel like it would be pointless to switch that into a state, and extremely problematic as the script has other functions that need to be called when it updates.
  22. 1) Yeah I was suspicious of that. I wasn't sure if the script was just 1 instance that can run multiple times, or if it just re-initiated everytime it ran. Now I know to use that to my advantage, and using a bool makes a lot more since to me. 2) I see, guess I jumped the gun on that one. As you can probably tell, I am no programmer, but toddlers can make papyrus scripts so I am comfortable with it. I am just now learning some basic concepts of programming, and my biggest concern after many projects I tossed, is going beyond just functionality. I want to make sure my scripts wont slow the game down too much, especially when other mods are doing stuff. I am trying to make everything as clean and professional as possible, so in the future I have the skills to write good scripts that behave. I have dumped a lot of research to ensure my current scripts do whay they need to do in the shortest way possible, and keep them from save bloating.
  23. Thank you for taking the time to answer my questions! 1) I can switch to using a bool, seems like it would be faster and cleaner. My only concern is I don't know if setting a variable outside a function will set it for every instance of that script ran by the specific object. So lets say the first run sets bLock to true, but it bugs out and runs OnActivate twice. Will the second one read true and stop? 2) I went ahead and just eleminated functions that weren't necessary, and just space out and comment on blocks of code to organize it. I decided that unecessary functions don't provide much benefit for its added slowness, and my new method is just as organized, if not more so.
  24. Just to add to that, here is a comprehensive script objects map that shows the hierarchy of extensions. https://www.creationkit.com/index.php?title=Category:Script_Objects This is probably one of the most useful pages in the whole wiki. EDIT 1: If he stores akCaster as Caster out of a function, like at the top with the properties, he can use that in other functions with Caster as the value. Thats all I could see it be useful for. EDIT 2: OH, I see... he only needs Caster instead of CasterRef, not both.
  25. MyActor is just a variable I made up, that represents an Actor form. You can use any Actor form for the function ".SetActorValue()". Such as your "playerref" which is an Actor form assigned to the variable "playerref". The player counts as an Actor.
×
×
  • Create New...