easykill Posted August 27, 2014 Posted August 27, 2014 I would like to use papyrusutil for a mod I am working on, but I am not going to add it as a dependency if it is only available for download on LL. In the interest of wider adoption and standardization, please maintain a nexus page.
h38fh2mf Posted August 31, 2014 Posted August 31, 2014 I would like to use papyrusutil for a mod I am working on, but I am not going to add it as a dependency if it is only available for download on LL. In the interest of wider adoption and standardization, please maintain a nexus page. I also get asked this on nexus several times. Ashal do you think you could maintain this on nexus or a separate git page or something so normal users can download easily?
darkconsole Posted August 31, 2014 Posted August 31, 2014 it's already got a nexus page, and its been shut down. http://www.nexusmods.com/skyrim/mods/49098/? i assumed either it was not legit, the original guy gave up, or nexus mods shit themselves because it was only used by loverslab things.
h38fh2mf Posted August 31, 2014 Posted August 31, 2014 Yes the original guy gave up and Ashal took over developing it, so it would be best if he now maintained the page.
Ashal Posted August 31, 2014 Author Posted August 31, 2014 I'll post it on Nexus after I finish the next version.
Srende Posted September 2, 2014 Posted September 2, 2014 Does the startIndex parameter on the slice functions determine the starting point in the papyrusutil list or the start index in the array to copy the items into? I'm assuming it's the index in the papyrusutil list. Which also means I need to do a bit extra to merge couple of lists.
Ashal Posted September 2, 2014 Author Posted September 2, 2014 Does the startIndex parameter on the slice functions determine the starting point in the papyrusutil list or the start index in the array to copy the items into? The papyrusutil list. The array will be filled until either the list or array run out indexes from that starting point.
Srende Posted September 2, 2014 Posted September 2, 2014 Ah, that was fast while I was editing my last post, thanks.
Ashal Posted September 2, 2014 Author Posted September 2, 2014 Next version I've also added a Int/FloatListAdjust() and AdjustInt/FloatValue() function for adjusting list indexes and single value by a given amount. Basically a single function that would do the same as calling "SetIntValue(form, "key", (GetIntValue(form, "key") + 10))" as simply "AdjustIntValue(form, "key", 10)"
sheson Posted September 3, 2014 Posted September 3, 2014 I am not sure if I am missing something but why was ImportFile/ExportFile removed from StorageUtil? Is there a chance it will come back?
Ashal Posted September 3, 2014 Author Posted September 3, 2014 I am not sure if I am missing something but why was ImportFile/ExportFile removed from StorageUtil? Is there a chance it will come back? The way file storage works now is completely different than before. Previously file storage existed only as a way to export/import current StorageUtil values to/from the external files. Which was rather slow and made it harder to work with. Import/ExportFile has basically been replaced by the new JsonUtil script which lets you manipulate the external files from their own storage using all the same functions as StorageUtil, which is faster and allows you to manipulate the file data at will while maintaining separate sets of data.
Ashal Posted September 3, 2014 Author Posted September 3, 2014 Here is a test release of the next release. <attachment removed> I could use a couple confirmations from testers that nothing is broken before I throw it up for official release. Changelog: Added back package override saving - this should restore functionality of the "I'll take the display model" mod. Added AdjustInt/FloatValue() and Int/FloatListAdjust() functions to StorageUtil and JsonUtil, shortcut function for adjusting existing values +/- a given amount Added a ClearAll() function to JsonUtil for emptying out an external json files contents. Cleaned up various native functions to better check for proper arguments being passed to prevent potential crashes.
Ashal Posted September 10, 2014 Author Posted September 10, 2014 Gone ahead and posted 2.7 as an official release.
Heromaster Posted September 29, 2014 Posted September 29, 2014 There is a serious bug in PapyrusUtil 2.7 which is not in an older version of PapyrusUtil (We used version 2.2).Given this code: Function ChangeModPriority(String asModName, Int aiPositionChange) Int ModIndex = StorageUtil.StringListFind(None, SUKEY_REGISTERED_MODS, asModName) Form QuestToken = StorageUtil.FormListGet(None, SUKEY_REGISTERED_MODS, ModIndex) ShowMessage("Index: " + ModIndex + "\nQuest: " + (QuestToken As Quest).GetName(), False) If(aiPositionChange == MOVE_TOP) If(ModIndex == (StorageUtil.StringListCount(None, SUKEY_REGISTERED_MODS) - 1)) Return EndIf StorageUtil.FormListRemove(None, SUKEY_REGISTERED_MODS, QuestToken) StorageUtil.FormListAdd(None, SUKEY_REGISTERED_MODS, QuestToken) StorageUtil.StringListRemove(None, SUKEY_REGISTERED_MODS, asModName) StorageUtil.StringListAdd(None, SUKEY_REGISTERED_MODS, asModName) ElseIf(aiPositionChange == MOVE_UP) If(ModIndex == (StorageUtil.StringListCount(None, SUKEY_REGISTERED_MODS) - 1)) Return EndIf If(ModIndex == (StorageUtil.StringListCount(None, SUKEY_REGISTERED_MODS) - 2)) ;this is equivalent to MOVE_TOP StorageUtil.FormListRemove(None, SUKEY_REGISTERED_MODS, QuestToken) StorageUtil.FormListAdd(None, SUKEY_REGISTERED_MODS, QuestToken) StorageUtil.StringListRemove(None, SUKEY_REGISTERED_MODS, asModName) StorageUtil.StringListAdd(None, SUKEY_REGISTERED_MODS, asModName) Else StorageUtil.FormListRemove(None, SUKEY_REGISTERED_MODS, QuestToken) StorageUtil.FormListInsert(None, SUKEY_REGISTERED_MODS, (ModIndex + 1), QuestToken) StorageUtil.StringListRemove(None, SUKEY_REGISTERED_MODS, asModName) StorageUtil.StringListInsert(None, SUKEY_REGISTERED_MODS, (ModIndex + 1), asModName) EndIf ElseIf(aiPositionChange == MOVE_DOWN) If(ModIndex == 0) Return EndIf StorageUtil.FormListRemove(None, SUKEY_REGISTERED_MODS, QuestToken) StorageUtil.FormListInsert(None, SUKEY_REGISTERED_MODS, (ModIndex - 1), QuestToken) StorageUtil.StringListRemove(None, SUKEY_REGISTERED_MODS, asModName) StorageUtil.StringListInsert(None, SUKEY_REGISTERED_MODS, (ModIndex - 1), asModName) ElseIf(aiPositionChange == MOVE_BOTTOM) If(ModIndex == 0) Return EndIf StorageUtil.FormListRemove(None, SUKEY_REGISTERED_MODS, QuestToken) StorageUtil.FormListInsert(None, SUKEY_REGISTERED_MODS, 0, QuestToken) StorageUtil.StringListRemove(None, SUKEY_REGISTERED_MODS, asModName) StorageUtil.StringListInsert(None, SUKEY_REGISTERED_MODS, 0, asModName) EndIf EndFunction The array will be displayed in reverse order of how the elements are stored internally. So MOVE_TOP would put the element at the end of the array, MOVE_BOTTOM will put the element at the top of the array. Same behavior applies to MOVE_UP and MOVE_DOWN. Now with PapyrusUtil 2.2 everything works as expected. Every command will place the selected element at the expected position. Now with PapyrusUtil 2.7 there is a serious error. No matter of which command, the array looks totally messed up after using them. Without knowing the source code, I believe there is some logical error in how the Remove(), RemoveAt() and Insert() functions working. I assume they do not properly move the elements in the array when an element is removed and/or inserted. Edit: Added screenshots so you can get a picture of what happens to the array Initial situation: Moving first element of the array to the last position (Remember, they are displayed in reverse order) How the array looks like after calling the function Just another edit: This is the code which displays the array in the MCM Event OnPageReset(String asPage) StorageUtil.IntListClear(None, SUKEY_MENU_OPTIONS) StorageUtil.StringListClear(None, SUKEY_MENU_OPTIONS) If(asPage == Pages[0]) SetCursorFillMode(TOP_TO_BOTTOM) AddHeaderOption("Registered mods") AddEmptyOption() Int RegisteredMods = StorageUtil.FormListCount(None, SUKEY_REGISTERED_MODS) Int i = RegisteredMods ;SUKEY_REGISTERED_MODS: [3, 2, 1] While(i > 0) StorageUtil.IntListAdd(None, SUKEY_MENU_OPTIONS, AddMenuOption(StorageUtil.StringListGet(None, SUKEY_REGISTERED_MODS, i - 1), "#" + (RegisteredMods + 1 - i) As String + ": ")) ;IntSUKEY_MENU_OPTIONS: [1, 2, 3] StorageUtil.StringListAdd(None, SUKEY_MENU_OPTIONS, StorageUtil.StringListGet(None, SUKEY_REGISTERED_MODS, i - 1)) ;StringSUKEY_MENU_OPTIONS: [1, 2, 3] i -= 1 EndWhile EndIf EndEvent
Ashal Posted September 29, 2014 Author Posted September 29, 2014 2.7 has a logic error that basically makes it do the opposite of what you want with string lists. I'm already aware and have fixed it for the next version. Just trying to fix a few other issues as well before release.
Ashal Posted September 29, 2014 Author Posted September 29, 2014 You can try the patch at http://www.loverslab.com/topic/16623-skyrim-sexlab-sex-animation-framework-v159b-updated-0915/page-383?do=findComment&comment=938908 to confirm, though it contains some other bugs I still need to fix before releasing.
Heromaster Posted September 29, 2014 Posted September 29, 2014 Ok, I will try this out tomorrow and report if this issue is resolved or not.
Heromaster Posted September 30, 2014 Posted September 30, 2014 The patch is working and the array looks like it is expected. We are going to use PapyrusUtil extensively. Anything we should look after because you mentioned it still would have some issues?
D_ManXX2 Posted October 1, 2014 Posted October 1, 2014 Was wondering if the problem Heromaster mentioned in previous post could have been the cause why some people where experiencing crashing when sexlab would start ?? What is weird is why some where having troubles and other not.
Ashal Posted October 4, 2014 Author Posted October 4, 2014 2.8 - 10/03/2014 Fixed critical bug causing StringListRemove to do exactly the opposite of what you want it to do Fixed crash to desktop issue some users have experienced when plugin loads an external json files for reading Added papyrus array initializing functions to PapyrusUtil.psc
Ashal Posted October 4, 2014 Author Posted October 4, 2014 Also gone ahead and uploaded it to Nexus as somebody requested and I promised I would some month or two ago but never did. http://www.nexusmods.com/skyrim/mods/58705/?
Slorm Posted October 4, 2014 Posted October 4, 2014 For info, V2.8 is causing a ctd when a rusty chastity belt is fitted by Draugr in Deviously Helpless (similar issue to v2.3 iirc). I've sent logs to Srende to have a look at the problem
Srende Posted October 4, 2014 Posted October 4, 2014 For info, V2.8 is causing a ctd when a rusty chastity belt is fitted by Draugr in Deviously Helpless (similar issue to v2.3 iirc). I've sent logs to Srende to have a look at the problem The issue wasn't with the belt, but a RemoveAllPackageOverride() call done around the same time. I've no idea if the issue here is even related, I'll check it later.
Slorm Posted October 4, 2014 Posted October 4, 2014 Help .. I need PapyrusUtil 2.8 for SoS and Sexlab !! where can I get that? From the download section (it also has a search facility) but here you are http://www.loverslab.com/files/file/484-papyrusutil/
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now