Jump to content

fireundubh

Mod Author
  • Posts

    350
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by fireundubh

  1. No longer participating in the STEP forum. If you want to talk about this script, send me a message at the Nexus.
  2. Seriously? You know you can't link directly to YouTube comments, right? I have no interest in participating in a forum that censors swearing like we're all children who can't handle the Internet and then issues you a "warning" for exposing our sensitive little hearts to the realities of the web. See ya.
  3. Yeah, I ended up adding an entire FAQs to my troubleshooting sticky in the Nexus comments thread, so that whoever decides to post a comment there is first bombarded with enough information that they have to scroll down to see any comments. It's too bad we can't move the "Add Comment" link to after the sticky. Anyway, here's one of the entries: I just don't know what people are thinking when they download mods without reading anything.
  4. I normally ignore the bad, but this one was a pet peeve I can't address in my other life. I hate when people poorly review things for either being what they are or not being what they're not! "The STEP forum is terrible because all they talk about over there are mods!""The STEP forum is terrible because it isn't the endocrinology forum I enjoy!" That was in the comments on Brodual's Master of Disguise Spotlight. YouTube is generally comprised of trolls trolling trolls trolling trolls, so I can't take the negativity seriously. YouTube is quite a place.
  5. Enjoy! Image removed due to content restrictions.
  6. ...and Brodual has featured the mod as well.
  7. MO doesn't let you modify Non-MO-handled files, even if you do get the save dialog and save. I had to copy the ESMs to a mod folder, rename them, activate that folder as a mod, clean the renamed plugins, save, and then rename them back.
  8. I wouldn't write many of the scripts the way I did anymore, now that I've learned more Delphi, but they're good starting points if you need an introduction to how to do things in xEdit.
  9. Master of Disguise has been inducted into GEMS in the 810 category.
  10. I can't speak to any other mods since I've only played Requiem, but there are many reasons why things don't happen, even in the real world. Just because you're strong enough, or smart enough, to do something doesn't mean you can or should or want to. If you're roleplaying, the demigod briarheart in the tower has a personality, motivations, dreams, aspirations, etc. He's probably more interested in ritual sacrifice and mystical power than conquest. If you're roleplaying, the Forsworn are led by a man who has his own ideas about how to retake the Reach and, well, they may not be very good ones. He did get himself locked up, after all. If you're roleplaying, powerful wizards live on the fringe of society because they're terribly insecure, or terribly afraid, or terribly paranoid. Maybe they really just want to be left alone, but this guy, or girl, calling himself the Dragonborn keeps invading their homes and slaughtering them. Yes, maybe you, the Dragonborn, are, in fact, a serial killer. If you're roleplaying, NPCs are characters, too.
  11. In an unleveled world, you're not supposed to be the godslayer. You're supposed to come up against challenges from which you will have to run away. That's part of the roleplay, part of your character's story.
  12. Yup. 1.4 is a bit different and has complete TES4/TES5 support. 1.3.9.1 and older don't even look at records for things like Stats when working with Skyrim. I'm not even sure how some of those tags are being generated for Skyrim plugins because the code says "if Fallout 3 or Fallout NV" not "if Fallout 3 or Fallout NV or Skyrim."
  13. I'll check it out. Thanks for the report.
  14. Here you go: Reduce Water Height Conflicts v0.1 This script will copy the winning override's water height value to the processed record if the processed record is not flagged Has Water and yet still defines a water height. In my very limited testing, many of the conflicts were "resolved" this way. { Purpose: Reduce Water Height Conflicts Game: Probably Any Author: fireundubh <fireundubh@gmail.com> Version: 0.1 } unit userscript; uses mteFunctions; {Returns true if specific flag is set and false if not} function IsFlagSet(f: IInterface; i: integer): boolean; begin Result := (GetNativeValue(f) and i > 0); end; {Returns integer of flag matching string} function GetCellFlag(s: string): integer; var cellFlag: TStringList; begin cellFlag := TStringList.Create; cellFlag.DelimitedText := lowercase('"Is Interior Cell=1", "Has Water=2", "Behave like exterior=128"'); Result := StrToInt(lowercase(cellFlag.Values[s])); cellFlag.Free; end; {Processes each record} function Process(e: IInterface): integer; var o, f, fo: IInterface; begin {exit if we're not looking at the appropriate record types} if (geev(e, 'Record Header\Signature') <> 'CELL') and (geev(e, 'Record Header\Signature') <> 'WRLD') then exit; {get winning override object} o := WinningOverride(e); {exit if there is no override for comparison} if not Assigned(o) then exit; {exit if records are flagged as deleted} if GetIsDeleted(e) or GetIsDeleted(o) then exit; {get record flag objects} f := ElementByPath(e, 'Record Header\Record Flags'); fo := ElementByPath(o, 'Record Header\Record Flags'); {exit if either cell has water because we presumably don't want to screw anything up} if IsFlagSet(f, GetCellFlag('Has Water')) or IsFlagSet(fo, GetCellFlag('Has Water')) then exit; {copy the overriding cell's water height if the processed cell does not have water but defines a water height anyway} if not IsFlagSet(f, GetCellFlag('Has Water')) and Assigned(ElementBySignature(e, 'XCLW')) then seev(e, 'XCLW', geev(o, 'XCLW')); end; end.
  15. Zilav calls it xEdit, so there you go.
  16. Someone want to move this thread to the new xEdit Support forum?
  17. v1.3.9 is up. Changelog: Requires xEdit svn1839 or older (SortKey is broken in later versions of xEdit; no ETA on fix)Uses SortKeys to evaluate records for tags instead of iterating through every element by indexAs a result, tag generation is more accurate (e.g., [FNV] YUM loses the Relations tag)Improved conflict detection through the magic of mteFunctionsSignificant performance improvement (e.g., [FNV] YUM processing time down from 35-40s to 21-22s)Refactored code and added some useful functions/proceduresAdded a counter to the final message output so you know right away how many tags were generatedI think the accuracy of tag generation can be improved a little bit further, if it's not already 100%, but I have to do some more testing during the day. v1.3.9.1 hotfix is up. Changelog: C.Water: This tag was being generated in error by interior cells whose water heights had been changed. For the purposes of generating the C.Water tag, interior cells are now ignored.
  18. Thankfully. The CK changes a lot of things that shouldn't be changed, and it does so because it's an internal development tool meant for internal use. Internal dev tools always have problems. It's okay for internal development tools to be janky though. Large game development teams have dedicated tools programmers whose sole purpose is to keep the tools working and to build new tools when needed. Personally, I've always found the messaging that xEdit is "just a conflict resolution tool" to be wrong. I've made all of my mods almost exclusively in xEdit, and I could do that because I don't make content mods. I desperately avoid the CK whenever I can. But towing the line that xEdit is just for conflict resolution probably scares off a lot of users who might not otherwise know what they're doing, so I usually let it be. But this is my thread. In this thread, xEdit has a lot more uses than just conflict resolution. ;) PS. v1.3.9 now checks only the cell record flags that Wrye Bash cares about.
  19. Creating a bashed patch with an xEdit script, while possible, would probably take at least 20 minutes for 100-200 plugins. I'm probably being overly optimistic about that number, too.
  20. My C.RecordFlags processor looks at all cell record flags, so maybe I should target just the ones you listed. Also, this is how I set up the filter: Then I went into the view pane, right clicked, and hit "hide no conflict rows." That makes it pretty easy to go down the list manually. I could write a script to find cells with just that element changed, but eh, I don't know if I'd trust it. ;)
  21. v1.3.8 is up. Changelog: No longer broken. Hooray. This is the most important point. That's why I made it first.No longer requires latest xEdit. See next bullet.Revived some code from v1.3.6. No idea how to use FlagValues and EnumValues anyway.No longer processes the file header while looking for tags. One less record to process = 10,000% speed bonus.Better conflict detection. Weird things were happening. Not anymore.Better flag checking. Actually checks flags that are set, not flags that exist.Better flag error handling. Checks if the flag element exists before checking the flags. Overkill, badly written, but my mouse has a double click problem and that's a lot of code to minimize.Better universal GetElement. It was broken, so of course it's better now.Factions: The validator uses SortKeys now, which is faster than iterating through each faction. When it's not broken.Graphics: DNAM\Material is validated, but I may have forgotten to make that exclusive to Skyrim. Oh, well.Tag Writing: If you choose to write tags to the file header, and no tags are suggested, say goodbye to your file header description field.
  22. Okay, in v1.3.8, this is what I get now. Unofficial Skyrim Patch.esp: Suggested tags: {{BASH:C.Climate,C.Encounter,C.Light,C.Location,C.Owner,C.RecordFlags,Delev,Graphics,Invent,Names,Relev,Sound,Stats}}C.Music should be there, too.WindhelmBloodworks "Windhelm Barracks" [CELL:0001677A] C.Name as well. WindhelmPalaceUpstairs02 "Palace of the Kings, Upstairs" [CELL:00097298] And C.ImageSpace. WhiterunJail02 "Guard Barracks" [CELL:000580A2] I don't see anything warranting C.Acoustic. Anyway, I figured out what was happening. And voila. Unofficial Skyrim Patch.esp: Suggested tags: {{BASH:C.Climate,C.Encounter,C.ImageSpace,C.Light,C.Location,C.Music,C.Name,C.Owner,C.RecordFlags,C.Water,Delev,Graphics,Invent,Names,Relev,Sound,Stats}}But more testing is needed. YUP - Base Game + All DLC.esm: Suggested tags: {{BASH:Actors.ACBS,Actors.AIData,Actors.CombatStyle,Actors.DeathItem,Actors.Skeleton,Actors.Stats,C.Owner,C.Water,Delev,Destructible,Factions,Graphics,Hair,Invent,Names,Relations,Relev,Scripts,Sound,SpellStats,Stats}}That looks crazy.
  23. For SortKey: DoubleVendorMoney.esp for FNV. VendorChestBuriedBrassLantern "Inventory Storage" [CONT:00020108]
  24. Oh, crap. LOL By the way, per my post in the TES5Edit comments, SortKey appears to be broken in the latest builds. AddMessage(SortKey(ElementByName(e, 'Items'), True)); xEdit svn1872: 0005D7FF|||000B41A1|||000C499C|| xEdit svn1866: 0005D7FF|||000B41A1|||000C499C|| xEdit svn1864: 0005D7FF|||000B41A1|||000C499C|| xEdit svn1839: 0005D7FF|080000002||000B41A1|080000001||000C499C|080000001|I also noticed that GetNativeValue started throwing errors when trying to read flag elements. Maybe other things are broken, too? And I don't understand how to make use of FlagValues.
  25. I don't really trust these tags at all. Something's amiss. I don't know what yet.
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.