Jump to content


  • Content Count

  • Joined

  • Last visited

About Nythrun

  • Rank
    Long since out to pasture

Profile Information

  • Gender

Contact Methods

  • Website URL
  • AIM
  • MSN
  • ICQ

Recent Profile Visitors

8,395 profile views
  1. Nythrun

    Level One NPCs

    Version v3


    This mod allows the player to select classes and kits for all joinable NPCs, and then start them from level one (with enough experience to level up to the player immediately) so that the player can select skills, spells, proficiencies, etc. Learn more about the mod View the Readme Visit the Forum
  2. Nythrun

    When and why to use filesize sanity checks

    The purpose has generally been to simplify file lists while precluding non-necessarily-extant Throne of Bhaal or mod-added items from patches, like so ALLOW_MISSING soa_item.itm tob_item.itm tdd_item.itm COPY_EXISTING soa_item.itm tob_item.itm tdd_item.itm PATCH_IF( SOURCE_SIZE )BEGIN DO_STUFF END BUT_ONLY Since ALLOW_MISSING creates a phantom tdd_item.itm for installs that don't have one, the COPY_EXISTING block won't fail on a missing item. And since that phantom item is 0 bytes in size, the filesize sanity check keeps WeiDU from trying to extraneously patch something that doesn't actually exist. This usage ought probably be deprecated in favor of ACTION_FOR_EACH file IN soa_item.itm tob_item.itm tdd_item.itm BEGIN ACTION_IF( FILE_EXISTS_IN_GAME ~%file%~ )BEGIN COPY_EXISTING DO_STUFF BUT_ONLY END END In this case just letting WeiDU error out on corrupted files is not a bad way to go - anything you were trying to do is obviously not going to work anyway. If you code your mod so that it can install with errors, then you've coded a mod that will...install, even in some cases when it isn't going to work. I like including specific error messages (though there's no end to that process, so it's easy to waste time) and correcting for specific possible errors or common mistakes, but it's easy to drive yourself batty on the impossible task of making sure nothing can ever go wrong. Shorter Nythrun: they're generally not as good as alternatives, sometimes including DO_NOTHING.
  3. Nythrun

    V2 Progress

    Right-o. Back to work.
  4. Nythrun

    V2 Progress

    Not really L1NPCs material. Here's a separate, untested quicky mod to do it though. http://www.mediafire.com/?vh6b9994pa6b9ph I can support it in the next version I release. What I won't be doing then is recoding a version of that: for now I'm content to let any bugs be someone else's fault Standing around waiting for the march of immersion-breaking string displays to end. It's an experience modifying script because it modifies experience, not because it modifies another script. And if the player has installed component 3 of this mod, there is another script to modify. And if they install component 3 after the other that needs accounting for as well (and BGTweaks, and NPCs with their own levelup code). None of which is difficult to account for, but account for them we must. It's okay if we're missing a few things here and there for the next release - I'll need to go back through most of the mods out there to inspect for signature kits and any other such thing we might be handling. I need to bow out for a few days to handle other matters, though. Up to 183 components, by the way.
  5. Nythrun

    V2 Progress

    It'll require having an experience modifying script at all, is the thing; I really dislike that technique and don't want to multiply its use without necessity. We'll see what others have to say, though. Unlikely, at least not for the next two weeks or so. Might as well lob 1.4 at the world and not squander all the effort lavished on it. Most of the mega-mod NPCs won't be able to use their signature items in 1.4, but it looks generally solid.
  6. Nythrun

    V2 Progress

    Right. Well, I guess I'd better code this before y'all figure out what a potzer I am. I'm pretty sure the usual suspects could find a use for that - at least after everyone's done squabbling over the implementation. For now I'm just infodumping into a MKDIRed mod_resources folder in the BG2 directory. My initial thought was to not change the .cre's kit number from 0x40000000 to ~%kit%~ at all until after they've joined up. A short delay in the XP script will keep that from kicking in too early. After that they'll be in the same predicament as stock Yoshimo if you dual him to fighter and then rescue him from a short date with a medusa. Though there does remain potential trouble with Jaheira and her party-ditching ways if I don't add a whole stupid lot of transition actions to her rejoin dialogue. I'll think about it more, but I may end up outsmarting myself rather than the engine if I pursue this route That's really clever, and something I hadn't encountered, thanks. It's also really on the bleeding edge of unacceptably hacky, even by my standards. While specific-NPC-only kits do allow you to finesse a few of the difficulties, I don't know that it's potentially bugfree enough that I'd want to release something like that. So definitely maybe, and definitely not right now. I should be able to support applying the multiclass kits which that mod generates to NPCs, though.
  7. Nythrun

    V2 Progress

    That so needed to go away Anyway, in earlier versions I'd been thinking a bit about adding the ability to dual class NPCs in the selection menu. There are several ways to go about this (all of which have drawbacks) and I'd never settled on implementing any of them. As it's turned out, the "Joinable NPCs more closely match the PC's experience" component has been popular (who knew?), which constrains the available implementations somewhat. Solutions like granting an NPC an invokable item that levels them up once per use until they match charname are intrusive and translation intensive and I don't like them. So with that in mind, I'm thinking about something like: If you picked fighter, then: Dual this character [y/n]? If you picked yes, then: Dual to Mage, Cleric, Thief, or Druid? If you picked Mage, then: At which level [2 to ( maximum of {mage/fighter} level under exp cap) - 2 ] Then pick your additional proficiencies and second class proficiencies and spells and what have you. Obviously, this is a bit more exploitable than the rest of the mod "Why Xzar-the-Fighter30/Mage1, what big hit points you have!". But I don't care about policing that sort of thing, and really, anyone who wants to push it that far already has Shadowkeeper and the like. And that's the only serious disadvantage. The advantages are that it'll work, even in the presence of XP adjusting scripts, that it requires no fuss in game, and you won't have to worry about meeting the wrong incarnation of the NPC, or about NPCs not matching between BG and BGII in BGT games. Plus, I already have support for displaying required attribute minima in the "Adjust NPC attributes?" routine, so it's relatively easy to code. Best of all, I get to put off the meticulous excision of bits of NPC Kitpack and SCS until another day - that sort of compatibility work being a tedious slog that I'm happy to procrastinate on. And maybe I'll steal cmorgan's "Pick a wealth level" idea while I'm at it. So, erm, thoughts?
  8. Nythrun

    V2 Progress

    And while I'm here yakking, I'd like to wholesale hork both your "prettify string display if ~%LANGUAGE%~ STR_CMP ENGLISH" and all the data for the megamod NPCs so I don't have to download them all again. Fair warning and such
  9. Nythrun

    V2 Progress

    Also, would you mind changing the new component numbers to something less random if you're planning on uploading something?
  10. Nythrun

    V2 Progress

    Heh. Guess I'll wait for the code then. I have the "Skip nuisance prompt if Item Revisions is installed" and "Allow 3-5 stars in Grandmastery for All" already. Bugfixes won't matter: out with the old bugs, in with the new. Nope. Nor would I have all that installed anyway, and if I did I'm unsure that modding only TDD NPCs would be my choice. But if there's someone else out there who wants it, that'll suffice as a reason. I will. I have it for the weapon proficiency tweaks bit already, it just needs to be coded for the NPC menu. (It was going to be necessary anyway for the "Use the BG stats you've selected for the BG2 incarnation of Gavin, reselect, or skip?" prompt.) In re batch files: the new selection menu is a function, and will check for an existing ~auto/gavin.txt~ file before offering the menu. If the file exists, its input will be used instead of choosing manually. That way you can skip rewriting the batch file every time your kit order changes or whatnot, and component selection batches can be shortened. I'll be rewriting and deprecating those fix components. If there's stuff in there that's directly affecting the NPCs, it really ought to go into a subjunctive/bgt.tph and install by default; if it's not directly affecting, it should probably hit the road to avoid more update headaches. Is what? I'm not sure that collecting a bunch of different persons' preferred tweak values is the best idea, no matter how well thought out they are. There's no race for any of this, by the way - it'll take me some nontrivial amount of time after the code is written to catch the parse errors and logic goofs. A longer amount if I continue feeling like a microwaved McAssBurger.
  11. Nythrun

    V2 Progress

    I've a predilection for the rather silly. Also for not foundering when people DontReadMe, or read the readmes and chose to ignore them. Plus it's swell to have a proficiency tweak that works correctly atop BG1 style profs - I don't know that there are any others. Which requests did you add? Wherefore GROUP? Dex < 13 will do that. Skilldex alone doesn't suffice to say whether the base value is negative, however, which is why I added the effects of both in the display menu and then factored them back out. I thought everything in skillrac was non-negative; I'll check.
  12. Nythrun


    Yes, but skillrac didn't apply to non-party members when I tested it? We fix the bug of Yoshimo getting his race bonus twice when he's in the party by adding a bug where he doesn't get it at all when he does his ill-advised Hide() ShivParty() routine. I'll check it again though; it's always possible I bungled something in the test or got stung by the Active Bounce Effects Make The Engine Go Play Twiddlywinks For Thirty Seconds Instead Of Doing Its Low Level Processing Bug or some other such incompetence. Please exclude me from suggestions and all other forms of hypnosis so that I may retire. It does, because the skill selection menu in game is not WYSIWYG (the menu allows negative values, but the value the engine uses is an unsigned byte; unlike the bonus to thief skill opcode, .2da bonus is bounds-checked against underflow). The last build of L1NPCs does not display either one correctly. That's a discussion for elsewhere, though Haer'Dalis gets the elven bonus.
  13. Nythrun

    V2 Progress

    In progress: Deep thoughts Done: Move all code out of main .tp2 file for faster chain installs and uninstalls Shunt all load-file-to-buffer stuff into a single run-once datamine macro so that modding an NPC requires only a few integer tests and writes Set useful constants so i can do PATCH_IF( class == cleric_ranger )BEGIN and suchlike. It's easier for other nice people to debug now, hurray! Datamine macro draws a dynamic list of available spells and their properties rather than making any assumptions Datamine macro draws a dynamic list of weapon and armor properties Rewrite the tweak proficiencies bit so it will function correctly if other mods have made sweeping changes to the proficiency system Rewrite selection menu to employ new tech Add reallocation of attribute points, displaying legal min/max, original total, and new total Scan kit/class .2das for spells granted and prohibition of spellcasting Pick archetypal .cre to pinch initial race/attribute/alignment data from Input signature kits to selection menu via signature_kit_0 = whatever Input signature profs to selection menu for cheaters...erm...Coran Detect item revisions fighter-druid armor nerf so as not to bother the player with redundancies Add proficiency types for wakizashi ninjato morningstar twohandedaxe in case things have gone totally topsy-turvy No getting trapped in the selection menu if there are fewer choices available then permissible Reflect altered attributes in signature items Add HP calculations to recalculate_derived_attributes, whoops Ugly sorcerer kludges must be rewritten or the shame will outlive me Exclude Gavin, Haldmir, Aran, et alis from levelup code Standardize on unprefixed local vars rather than the ugly mix in play now Add that key_5 == class && class == mage nonsense so you can pick mage kits even if clabma01.2da doesn't exist Run monk signature item conversion exclusively off of animation Ensure new proficiencies added are using the current system, not the default Fix that SET $signature_kit (~%i%~ ) = IDS_OF_SYMBOL ( class num ) stoopid > Replace the FOR( k = 0x080 + i * 0x10 ; k < 0x110 ; k += 0x010 )BEGIN junk with a GOA loop Replace the five thousand line nightmare of item assignation with something nicer IT IS DONE To do: More logspam by Logspammer Technologies © . Logspammer © : All the news unfit to PRINT apr opcode observes level limits w/o .effs? i don't even remember and check also for apr .effs before adding ranger perq surpressed when dualling? (it doesn't matter, but cosmetics...) bonus spells due to int ... add more known ? calculation of casting_level kinda sucks for dual classes npc_kitpack messes with scripts, account for that so does laviconia, except that also breaks your game memed priest spells j < EVAL ~div_spell_%i%~ && num && SHORT_AT foo in the table (maybe not, should work fine, don't need bloaty safeguards) profcount for arbitrary duals at levels > 1 "fix" xan moonblade type to longsword? add retain_item_0 syntax, add_no_foo (or just skip if something's equipped in the slot already, or all three) BGII Viconia gets a super special flameblade with which to battle townies BG Shar-Teel gets a super special itam with which to menace charname's masculinity lookup strings for fatespirit dialogue double check 3,4,5 stars in multi-grandmastery add alignment modifications, with forcible warnings about the catastrophic consequences? probably not LPF level1npcs_recalculate_animation INT_VAR animate_ids = 36864 END aerie if not ToB should include some AoE detection? RR thief dualwield ? add_generic_spells might as well accept inputs too reflect attribute mods in cleric spells/day? add random sorcerer spells for use of this function outside l1npcs? allow a nicer importation of variables to suppress item addition better selection of scrolls double check list of people who get nothing nonstandard non-tieflings get human bonus to skills or nothing? i forget. repair XP if DavidW has been im Haus double check map in itm_ex -> kit_ex fixpack holy symbol scripts check quantities on add ammo change slot assignment for shield->cloak transformation, others think of something not so horrible for the xp match component enable modify exported PCs component think long about adding support for pre-dualled NPCs and then wander off to do other things more NPCs The light at the end of the tunnel is a relativistic polar jet.
  14. Sounds good. The trick with zero duration effects is that they only last for one ai update, and with spell_1 -> eff -> spell_2 then spell_2 is processed one update later than spell_1. But you have all the real effects happening one tick late, so it ought to come out in the wash. If not it'll be obvious and easy to fix. I don't think I even read the manual