-
Posts
1576 -
Joined
-
Last visited
Everything posted by Surilindur
-
Oblivion graphics modding without the grief
Surilindur replied to Bongobasher's topic in Oblivion's Mod troubleshooting
Have you tried without the 4 GB patch? For a start? The game works just fine without it, too. I did not list it because I do not know if it would be relevant. Maybe later, but you could try without it first? -
Oblivion graphics modding without the grief
Surilindur replied to Bongobasher's topic in Oblivion's Mod troubleshooting
Also, the thing with modding and recommendations... well... while I could give you my complete mod list, that would just be my personal preference. That is the other part of modding, which is also sort of related to mods taking care of little pieces in the game and not overhauling everything, I think. I do not know how much you have used mods, but there are so many mods, each modifying something relatively specific in the game. The author of a mod has usually wanted to change something, and has then changed it. One person might have changed combat things, one person has fixed bugs, one person has added some new items and such. And there are mods that change the same things, but have different design and different idea of what that something should end up being like. So there are lots of mods, some changing the same things, but doing it differently. And then there is the user who needs to pick the mods that best suit his or her own preference. So while a ready-made collection might work for some, it would not necessarily be exactly what someone wants out of his or her game. It is part of the fun of modding to be able to pick from lots and lots of small pieces to build a mod setup that best serves one's own needs. Recommendations from other people will always be recommendations from other people, and, well, other people are not you. Obviously. Maybe I got a bit too excited with the recommendations. I should have mentioned at the very beginning that recommendations are always rcommendations. People can recommend anything, someone can recommend one weather mod, someone else can recommend another one, and then one more person can chime in and recommend something different entirely. It is a bit like asking for recommendations on... well... whatever people ask recommendations for. Where to travel to on a holiday? What are the best TV series to see? Or even which one is better, AMD or Nvidia graphics card? Everyone knows where questions that involve personal preference can end up. I just wanted to point out that recommendations are indeed recommendations from other people, and while it might be easy to get a list of mods (apparently it is just as easy to hand out a list, oooops :sweat: ), it might not, and probably will not be what you were after in the first place. Looking for alternatives, checking out different mods, reading the forums and trying out mods oneself are usually also fun. It takes time, but if you want a game you will enjoy, then recommendations from others are not necessarily exactly what works for you. Do not take my word for which mods you should use, they were just ideas, recommendations. Pick mods you like, look for new ones, and make the game something you want it to be. Not something someone else would make it. :thumbsup: -
Okay. Understood. Thank you for the answer. Maybe someone will some day provide some evidence one way or the other. Maybe not. Maybe it does not matter, being something so small. Also thank you for the idea of checking each item individually. It took me a while to notice that it also partially fixes the issue with items not being kept in the container. When the container is made non-respawning, then it fixes it completely! Clever catch. :thumbsup:
-
Oblivion graphics modding without the grief
Surilindur replied to Bongobasher's topic in Oblivion's Mod troubleshooting
<snip> Edit: The list was a bit too filled with large mods, removed it. It is difficult to recommend an install order, and the load order will also be relevant. If you just add these ones below, you should be relatively fine already I think, both gameplay-wise and graphics. Maybe. It is what I would pick at first. Maybe not too excessive but something still, and there should not be compatibility issues, either. OBSE, OBSE plugins and others (install first): Oblivion Script Extender (OBSE) + updated loader from the official website --> http://obse.silverlock.org/MenuQue 16bBlockheadEngineBugFixesMessageLogger (might or might not be of use)Oblivion Stutter Remover 4.1.37Enhanced Music and Control 2 - EMC2MoreHeap (not an OBSE plugin, goes in the Oblivion directory with Oblivion.exe)Normal mods (excluding Oblivion Reloaded, which should be installed last): Unofficial Oblivion PatchUnofficial Shivering Isles PatchUnofficial Oblivion DLC Patches (only pick the ones for DLC you have)Qarl's Texture Pack 3Bomret's Texture Pack for Shivering IslesHarvest FloraAtmospheres (I use v4 myself)Maskar's Oblivion OverhaulOblivion Character Overhaul 2Oblivion ReloadedWith load order maybe being a bit like (well, my idea, LOOT or BOSS should help with it): -
No problem. The script by IsharaMeradin actually also solves the object issue actually, now that I think of it. Preventing objects from respawning with the container would probably require making the container itself non-respawning, and using IsharaMeradin's example that does not use RemoveAllItems for refilling the container when it is accessed. So that actually sort of solves it, if you can make the container itself non-respawning. Also, if IsharaMeradin reads this, I would still be interested in some background for the two loop methods in my post at the bottom of the previous page. Just out of curiosity, it has been puzzling me for some time now. :smile: Edit: Ooops. Too much "actually", actually. I need to expand my vocabulary. :facepalm:
-
Your alternative example uses this: Int i = 0 While i < ItemList.GetSize() <contents> i += 1 EndWhile But mine used this: Int i = ItemList.GetSize() While (i > 0) i -= 1 <contents> EndWhile How does Papyrus handle a function call as a condition in a loop? Does it call it once somehow, or does the compiler optimise it away somehow? I have been taking the number and decreasing it each time, instead of placing a function call in the loop condition, afraid that Papyrus would call the function each loop. Does it not call it? I see people doing it that way, even providing it in their own alternative versions for all sorts of loops, but no one has ever mentioned why they replaced the "x to 0" sort of thing with a "0 to x" when the "0 to x" usually also features a function call with it. This is interesting, and I would love to know why people keep doing it that way. Just me being curious. And confused. :blush:
-
Okay. Great to hear you got it working. I have not looked into container resets and such in Skyrim, and I have no idea how to go about preventing individual items from resetting. Hopefully someone else can help you with that.
-
No problem. :) What script are you extending (or, inheriting, whatever it is called)? If you have SKSE installed, ResetInventory should be an ObjectReference Script function according to the wiki. Something like this: ScriptName _YourPrefix_ContainerRefScript Extends ObjectReference Event OnActivate(ObjectReference akActionRef) If (akActionRef == Game.GetPlayer()) ResetInventory() EndIf EndEventAnd then adding the script on the reference that you have placed in the game world? In case the CK will not allow you to attach it on the base object (probably will not). Double-clicking the reference in the world should also bring up a list where you can add scripts I think. Or not. I cannot remember how it works at the moment. Maybe you could also cast the thing as ObjectReference if your script extends something else, but I am not sure how it would work (if it would work). Depends on how you have it set up. (Self as ObjectReference).ResetInventory()
-
Oblivion graphics modding without the grief
Surilindur replied to Bongobasher's topic in Oblivion's Mod troubleshooting
Ah. No no. Perfectly understandable. Modding is just... well... modding. :tongue: There is the MGSO for Morrowind, but while it is supposed to be an easy option, assembling an easy-to-use and working mod pack is just not feasible. I would say it is the nature of modding, but then again, after doing it for long enough and having learned how things work, adding lots of mods and all that only takes a few hours on a fresh install. While it can be time-consuming at the beginning, it should probably get a lot easier over time. Well. Over time. :blush: They say students have a lot of free time, and while that may be true, I have poured pretty much all of it into modding things. So there is that. Hopefully someone will have a better idea on how to go about installing mods. I am really really bad when it comes to explaining things. -
So I am not on my desktop, but if it helps, here are a couple of untested ideas that may or may not actually work. :happy: Assuming ResetInventory resets the contents to default and also restores the original items, then that one would probably be as best good as it gets (edit: oops cannot write English). You can also use OnActivate event I think? Or not? At least for testing purposes. Event OnActivate(ObjectReference akActionRef) If (akActionRef == Game.GetPlayer()) ResetInventory() EndIf EndEventOr if ResetInventory does not restore the original items then adding each item from the FormList to the container one by one would probably be another choice. FormList Property ItemList Auto ; <-- this one points to the item list in the CK Event OnActivate(ObjectReference akActionRef) If (akActionRef == Game.GetPlayer()) Int i = ItemList.GetSize() RemoveAllItems() While (i > 0) i -= 1 AddItem(ItemList.GetAt(i), 10, True) EndWhile EndIf EndEventIf you can find another event to move the scripts in that works better, then that is great. These wiki pages might also be handy for finding all sorts of useful pieces to build things from, related to your idea: http://www.creationkit.com/index.php?title=Category:Script_Objectshttp://www.creationkit.com/index.php?title=ObjectReference_Scripthttp://www.creationkit.com/index.php?title=FormList_ScriptHopefully that helps a little. I have not tested if those compile at all, but just some ideas. If someone spots anything fishy, feel free to correct. I usually make lots of mistakes. :blush:
-
Oblivion graphics modding without the grief
Surilindur replied to Bongobasher's topic in Oblivion's Mod troubleshooting
You ask for suggestions, but do not want to be pointed to mod pages? And then you want mods, but do not want to spend time adding them to the game? Interesting. You should probably try Wrye Bash, I think. Most of the mods with more installation options have BAIN wizards included, or come packed in a way that makes them easy to install with Wrye Bash. Other than that, I myself use, among other mods, the following (and definitely like them): Qarl's Texture Pack 3 (the "redimized" version)Bomret's Texture Pack for Shivering IslesWeather - All Natural (for weather, also makes windows transparent)Really AEVWD (a LOD mod to make things visible from a distance)Animated Window Lighting System and Chimneys (does what it says on the tin)Harvest Flora (for visible flora harvest effects)Atmospheres (any version, probably v4, I have disabled the All Natural extra weathers, then installed and loadedAtmospheres after AN to have it overwrite some weathers)Oblivion Reloaded (provides visual effects, mounted combat, first person camera, see-you-sleep sort of functionality and a framerate manager and all that)and then one of the flora replacers from Discovery (the same one who made Atmospheres) There is not really a single-click way to make the game look prettier. Those ones are probably some of the larger scale mods that might do, and that is probably as good as it gets. Maybe someone else can help you more. :ermm: -
Mod Organizer Cannot Connect to Nexus
Surilindur replied to LucasKing1501's topic in Skyrim's Skyrim LE
Would the news explain it? At least partially? If it has worked before, that is. http://www.nexusmods.com/skyrim/news/12930 -
It looks like the UI files use ActionScript or such, something related to Adobe and/or Flash according to Google. The SkyUI source files themselves seem to be at the Github repository --> https://github.com/schlangster/skyui And no, while Papyrus is the in-game scripting language, it has usually been possible to write plugins for the script extender (OBSE for Oblivion, SKSE for Skyrim etc.) with languages like C++. I have not done it myself, but it is possible. And then there are textures, audio, 3D objects and such that have been made with external programmes. And also the xEdit/TES5Edit/TES4Edit/FO4Edit that complements the Creation Kit and also cleans up the mess it causes. Hopefully someone else knows more. <snip> Edit: If you want to contribute to porting SkyUI, maybe you could contact the author(s) of it such as schlangster.
-
Generate Lip Sync doesn't work.
Surilindur replied to th3overseer's topic in Fallout New Vegas's Discussion
Well it is for Oblivion, so maybe they have changed things for New Vegas, and maybe it is something else entirely. It should be easy to test it with Audacity. Also, if you have stereo sounds for original voice acting, then maybe it would be better to just leave the original stereo sounds be somewhere, and use converted copies in the actual game? Like with images: the original full quality one should be left alone, unedited, and only copies should be made from the original, and those copies then edited to fit the needs, always keeping the original one intact. Oh well, you probably know it all. I hope you will find a way to fix it. It could definitely be that things have changed and the audio does not matter as much. It was just something I remembered from Oblivion. I have not done anything for New Vegas. :( -
Generate Lip Sync doesn't work.
Surilindur replied to th3overseer's topic in Fallout New Vegas's Discussion
Oh, I just edited my last post to add the things I had found. There are lots of audio formats/codecs/something. I meant the properties of WAV, like bitrate and others. :blush: -
Generate Lip Sync doesn't work.
Surilindur replied to th3overseer's topic in Fallout New Vegas's Discussion
Are the WAV files in the correct format? When I was generating lipsync for Oblivion, I think (could be mistaken too) the WAV files themselves needed to be in a very specific format or else it would not work. I had to use Audacity to export the files in the correct format (well, I used Audacity to edit them too). Maybe that would help? I can see if the thread is somewhere so I can check which settings they were exactly and then link it. Edit: Here it is --> https://forums.nexusmods.com/index.php?/topic/233189-creating-lip-files-for-custom-voice-companion-mod/?p=2072403 Although, when I generated lipsync, I used the Construction Set Extender, so I did not need to use another executable for generating the lipsync files. I have no idea how it works in New Vegas or anything else, but since the CSE is not available for them, then the whole instruction post might apply. But I do not know at all. Sorry. Hopefully that helps a bit. The instructions are for Oblivion, but maybe they would also work with New Vegas? -
Saves and mods stop being detected
Surilindur replied to magicgraduate's topic in Oblivion's Mod troubleshooting
MO does work with Oblivion, but there are some things to keep in mind. Also, I use the 1.3.11 version from the Skyrim Nexus page. The MO2 betas from Github had some issues with Oblivion when I tested, and it also does not have the archive management features, so if someone is about to use MO with Oblivion, I would probably suggest 1.3.11 and not the new betas. And another thing: Tannin (the creator of Mod Organizer and the USVFS system for virtual file "installation") has joined the Nexus as the new head of NMM development. They are apparently remaking NMM. More in the news post. I would link it but the main site is down for maintenance apparently. If you already use MO for Oblivion, then it might be that your saves have been redirected to your MO profile folder (in the saves directory). But assuming you have MO set up correctly, then that should happen always and not randomly. The short version of how to make MO work with OBSE and the Steam version of Oblivion: manually install OBSE (obviously) with the updated loader from the official site --> http://obse.silverlock.org/install the 1.3.11 version of MO from the Skyrim Nexus page somewhereopen the profile menu of MO, select your current profile, and make sure "automatic archive invalidation" is checked (maybe also "local savegames")navigate to the workarounds tab in the MO settingsin the workarounds tab, click the "Date-Back BSAs" (or such, cannot remember) button to set the Steam version's BSA archives' dates to something older so that replacer mods will workin the workarounds tab, set load mechanism to "Script Extender"close MO, then maybe restart it, and make sure that, in the actual game folder, in ...\Data\OBSE\Plugins\ folder, there is both "hook.dll" and "mo_path.txt" (needed for OBSE to load MO)launch the game from Steam, the Oblivion Launcher will appear (no plugins will be shown in the "data files" yet, do not worry)click play, the game and OBSE will get loaded, OBSE will load MO, and MO will build the virtual file system and add it to the gamemods will work, and your MO profile's local savegames will also be thereIt should not really be too tricky. Also to keep in mind that every utility needs to be launched through MO, because the virtual file system needs to be created and (sort of) shown to the process for the "installed" files to be visible to the program. Everything from TES4Edit to TES4LODGen to Oscape (x86 version) to Wrye Bash can be used through MO. However only MO should be used for mod installation. I use Wrye Bash (through MO) for load order management (remember to unselect "lock load order" from Wrye Bash) and the Bashed Patch. Hopefully that makes sense. :tongue: Edit: Also, all OBSE plugins have to be manually installed because of how MO works with a Steam version of Oblivion. I am not sure if it works better with a disc version, it has been a while since I used a disc version of Oblivion. -
I think I am trying starting (oops, cannot type) to sort of understand the question now. Sorry for getting confused. :blush: So in this part: function RentRoom(DialogueGenericScript pQuestScript) Bed.SetActorOwner(Game.GetPlayer().GetActorBase()) RegisterForSingleUpdateGameTime (pQuestScript.RentHours) Game.GetPlayer().RemoveItem(pQuestScript.Gold, pQuestScript.RoomRentalCost.GetValueInt()) ; used to conditionalize innkeeper dialogue SetActorValue("Variable09", 1.0) WI.ShowPlayerRoom(self, Bed) endFunctionThe parameter declaration DialogueGenericScript pQuestScriptis actually also a variable declaration. The contents of DialogueGenericScript is this (apparently): where everything is defined that is used from it. The "variable type" (being DialogueGenericScript) is just a script name, like Quest, Form, SKI_ConfigBase and the like. It is not a "type" like the ones in Creation Kit, as funny as it sounds. Edit: Considering what the function looks like: function RentRoom30Day(ModExtendedStayVariables pQuestScript)And how it is called, and how the parameter is passed: (akspeaker as RentRoomScript).RentRoom30Day(GetOwningQuest() as MODExtendedStayVariables)It could be that the owning quest of the dialogue topic (GetOwningQuest()) has MODExtendedStayVariables script attached to it, and that the properties of the script have been filled on that quest in the Creation Kit.
-
I am not an expert, but from what I have noticed, you can use a property of the base type and cast it: Quest Property SomeQuest Auto (SomeQuest as SomeQuestScript).SomeFunction() ; <-- where SomeQuestScript extends QuestAnd you can also use the derived script name as the type (since the 'type' is just a script name, Quest, ObjectReference, Form, etc. all are scripts) SomeQuestScript Property SomeQuest Auto SomeQuest.SomeFunction() ; <-- where SomeQuest IS SomeQuestScript (the type, no need to cast)And you can also use a derived script as the type, and cast it as another script derived from a same parent/base/something - a sort of 'sibling': SomeQuestScript Property SomeQuest Auto ((SomeQuestScript as Quest) as OtherScriptThatExtendsQuestScript).OtherFunction()But you cannot cast one derived script as another derived script (a 'sibling' of sorts) directly. That does not work. Then, when filling the property in the Creation Kit, if you have a script ScriptName _AAA_Flying_Pigs_Quest Extends Questthat you attach to a quest (in the Creation Kit), and then have another script ScriptName _AAA_Flying_Pigs_Actor Extends Actor _AAA_Flying_Pigs_Quest Property FlyingPigQuest Autothen the Creation Kit will only offer you quests that have _AAA_Flying_Pigs_Quest script attached to them (any quests that have it attached would do). Hopefully that makes some sense. :rolleyes: For example: SomeQuestScript.psc OtherQuestScript.psc SomeObjectReferenceScript.psc The 'type' - Quest, Actor, Form, ObjectReference, etc. - is just a script. They are listed here: http://www.creationkit.com/index.php?title=Script_Objects If someone spots anything fishy in that, feel free to correct. :blush: Edit: Umm... I think misunderstood the question. Oops. :psyduck:
-
No problem, it was interesting to finally see how Papyrus really can be slow. All the scripts I have done have been so small. Maybe this Wiki tutorial has something in it (it is a long one - really): http://www.creationkit.com/index.php?title=Creating_Multithreaded_Skyrim_Mods The tutorial apparently concentrates on spawning actors, but if they could somehow be replaced by json elements or MCM options, then that might help. Instead of using threads to spawn actors, the actual work would be to handle one json and/or MCM element and all the list looping + copying related to it. When I last read that tutorial, it was a bit complicated, or maybe I just did not know things then (still I do not know but let's nevermind that). If you have an idea on how to make scripts run in parallel in an easy way, then that is great. Maybe you could even use SKSE ModEvents for communication somehow, like in the tutorial? The Wiki says ModEvents need to be registered for on each game load, but maybe if it would be possible to register the refs for the mod events (in a non-parallel, non-asynchronous way) from inside the MCM script before starting the parallel stuff by ModEvents? Maybe calling a function on each ref that registers it, and when that is finished, then start despatching the parallel jobs with ModEvents? Or not? Incorporating the job/ref/thread manager in the MCM script somehow? Or not? I really have no idea. Maybe the tutorial could offer a better understanding of how to make things parallel, and then it might be easier to make one's own version with that gained knowledge. The tutorial's way of doing it looks so... sophisticated? Maybe there is an easier way to do it, too. Or maybe there is not. It should apparently be possible to use a quest with a ReferenceAlias pointing at the player character/reference, and then attach a script to that ReferenceAlias. When the script on the player Alias extends Actor script, OnPlayerLoadGame event should work. I think it does, I do not remember if I have done it myself, the MCM event has been enough for me. Maybe that one could be used? Or not? It still requires a quest and an Alias.
- 23 replies
-
- data structures
- papyrus
-
(and 1 more)
Tagged with:
-
So I have a sort of working version now (not quite, but enough for the loading part). It really does take minutes. I never thought Papyrus could be so slow. Well. The way I did it is actually really dumb, it just goes through everything and does nothing in parallel, and it uses lots of loops, so it will take forever obviously. However what I did notice was that actual loading and saving of data from and to json seems to be fast, and also accessing that loaded data seems to be fast. Using Utility.GetCurrentRealTime, it said it took about 0.018 seconds to load one int + two forms from json, but I think it might actually be less than that when the game is capped at 60 frames per second and calling the functions to get the time also take time. Also, when the FormLists have been saved in a variable and all that, the actual modification of leveled lists does not use json or anything loaded from it, it uses FormLists and LeveledActors in the game itself. Or that is how I think it works, it would be odd if it somehow worked otherwise, but I am not an expert. I think the actual issue is when looping through all the various lists inside lists inside lists and copying things. That happens inside the game, so I think that sort of solves it. Or not. Maybe another sort of design for the list system and such would work? And then using parallel processing for the actual list modifications somehow... ? To cut down the loop+copy part of it? So that there would be two FormLists for each json element, and both would hold a number of LeveledActors. The contents (each Actor) of each LeveledActor in source would be copied to each LeveledActor in target. It sounds a bit odd but at least it is very inefficient. Maybe I understood something wrong. And here is the actual testing thing --> link. It is a bit *cough* unfinished *cough* and all that, being purely for testing, but if it helps, then that is great. :blush: If there is something unclear about my test thing, I can see if I could explain it. There might be a pattern for the MCM option IDs, where first page is 256 forwards with even ones on the left and uneven ones on the right, and the second page also like that, but starting with 512. Or maybe not, it could just look like it. If there is a pattern, then the arrays for storing option IDs and json IDs could be gotten rid of, and the json IDs could be calculated from the MCM option IDs. Maybe. Hopefully someone else can help you reduce the actual work that is done when copying things. I think that is the issue, and not the json part. Of course I have no idea what JContainers can do, so maybe it has a few tricks up its sleeve for processing things in-game when they have been loaded. And maybe it is an overall better option. I have no idea, I really should take the time one day to learn it. I hope you will find a way to make your plans work while also being performant. Sorry for not being able to be of more help. At least this was interesting, and I finally managed to learn how JsonUtil works and all that. I think I mentioned it already, but I am still learning, so my skill level is a bit low. If any of that helps provide a new perspective, then I think it was worth it.
- 23 replies
-
- data structures
- papyrus
-
(and 1 more)
Tagged with:
-
So you had it imagined that way. Interesting, I imagined it a bit differently. Thinking about it, saving authors the trouble of writing it all out into a json file might actually be handy. Oh well. I will adjust my test thing, see how it works with a number of lists, and then post it here in case it will be of any use. It was Reneer who mentioned parallel processing or such I think, not me (unless you meant "you" in plural). There was a small tutorial in the wiki on how to use multithreading in Skyrim Papyrus, with a summon spell example. At the time I read it, it was a bit too complicated for me. Which actually reminds me: I am still learning how everything works, so whatever I may come up with, it will probably be sub-par. Considering how mator also recommends JContainers, it will probably be better when it comes to performance. Anyway, I will see if I can make something that works. It will probably just concentrate on making an MCM menu with all its data stored in json. The actual data would be stored in the json and not in the game at any time (except for when PapyrusUtil has it loaded in memory). It was the way I had it imagined, but it sounds like it will not be anywhere near enough. :blush: I will try to make something sub-par, then post it here, and hope it helps. At least it should provide an idea or two. Or not. Hopefully someone else can help you with the more complex aspects.
- 23 replies
-
- data structures
- papyrus
-
(and 1 more)
Tagged with:
-
So I finally have something that I can actually test for performance, but it is getting late and I will do it tomorrow. Storing all in a json file definitely works with PapyrusUtil/JsonUtil too, I have the following in it at the moment (for reference): And when loaded into a menu, turns into a page named "$_CX_JT_Page000" with a toggle option "$_CX_JT_Page000_000" that is disabled by default, but that has been toggled on by the user. And then the lists for adding things to and from, in the form PapyrusUtil stores them when using the Form commands for getting and setting them. The outcome is actually quite neat, page and option strings double as localisation keys. I did not check JContainers, it looked a bit too... sophisticated for my little brain. Maybe it would offer even better options. I will try to copy-paste two thousand items into the thing and see how performance is affected tomorrow if I have the time. Chances are it actually will take minutes, though, but I really need to see it to believe, all the scripts I have written have been so small that I have no idea how slow Papyrus actually is. Also, the way I have done it (in a dumb way), it scales not-so-well with input size, so I think it will be interesting to see what happens. I will post/link my testing thing here when it is finished so people can laugh at it. :P You mentioned having a FormList of references. Does that mean ObjectReferences? I have not really done much with FormLists, but it is apparently not too straightforward to add ObjectReferences to a FormList. Did you do it with a script, or in another manner? Or was it just an idea? Maybe I missed something, would not be the first time.
- 23 replies
-
- data structures
- papyrus
-
(and 1 more)
Tagged with:
-
Are there any mods that change how foraging works?
Surilindur replied to Inunah's topic in Oblivion's Classic Discussion
In case someone is not yet (for some reason) aware, the solution to number two is Harvest Flora: http://www.nexusmods.com/oblivion/mods/2037 Just dropping the name here since the original poster did not add it to the post after finding it. As for the first point (100% harvest chance), you can set that in the Bashed Patch - as well as set the messages displayed when harvest is a success or failure. When rebuilding the Bashed Patch (in Wrye Bash): Tweak Assorted -> Harvest Chance [100%] (right-click, select 100%)Tweak Settings -> Msg: Harvest Failure [[<msg>]]Tweak Settings -> Msg: Harvest Success [[<msg>]]Having a separate .esp file for harvest chance is therefore not necessary, even if there were lots of them available. Bashed Patch would be loaded last, and the tweak(s) can be built in it. The same goes for the UOP vampire face bug fix that is also available when building the Bashed Patch. Handy. :smile: Hopefully that helps a little. Keeping the load order small usually helps with managing it, too, from what I have noticed. Not having a huge brain capacity and all that. :blush: -
So I have been playing around with PapyrusUtil, and it seems to maybe offer some interesting ways to achieve that. Maybe. While it does not seem to offer things like structs (I am not sure what would, unless they really do add those in SSE), it apparently does make it possible to create custom structured json files quite well - the commands are labeled "experimental" but seem to work just fine. For example generating an MCM page full of toggle options from a json worked like a charm, and only took less than a hundred lines of code script (the whole script). I need to play around more with this, write something that generates a few thousand items in a json and see how the performance is affected. Of course the actual adding of things to leveled lists and such probably take most of the time the script needs. I will report back when I have finished the whole thing with leveled lists and others. This is actually quite interesting. If someone finds a working solution before I do, feel free to share, I would love to see it too. Chances are I will only manage to reproduce opusGlass' implementation and be stuck in the same position when everything has been added to the script. Only one way to find out. :tongue: Edit: Also, does anyone know how PapyrusUtil/JsonUtil handles data? The comments say that the user does not need to worry about saving the file, as that would be done automatically. Does it keep it all in memory before writing it to a file? That would be great, but sounds a bit too good to be true. I wish it were so. There is this at the very least: Edit 2: Ah, so you need to check if the form already exists in the LeveledActor list right? Or not? Even just adding them one by one looks terrifying. Or maybe I am just doing it wrong. Nevermind, I want to see what happens anyway. This is very very interesting.
- 23 replies
-
- data structures
- papyrus
-
(and 1 more)
Tagged with:
