Jump to content

qwm.fur

Members
  • Posts

    2
  • Joined

  • Last visited

About qwm.fur

qwm.fur's Achievements

  1. Yes, the bug is in IWD2. What about scripting, I guess I'm not a huge fan of both the scripting language and its API. I got too tired of implementing things with an instrument that doesn't seem adequate for such tasks. So now I'm looking for a way to re-implement some features that pre-IWD2 were a part of the engine. And add some features I previously used scripts for. Actually, at first I hoped those features are still a part of the engine, and all I need is some bit-hacking. But the content was actually removed. For example, if we talk about HP-regen, all that's left is a rudimentary field m_lastRegenerationTime in CGameSprite objects which gets updated with actual game time every once the effect list of the creature gets processed. Other than that, this field is never used for anything else. Anyway the rudimentary field update was a good injection point for a call to my regeneration subroutine, so I guess I should be thankful to some IWD2 programmer -) Now I'm looking for an easy way to implement XPBONUS.2DA. I like the idea of receiving XP for disarming traps, etc. But it demands changes in three parts of one nasty big function, so I might as well get bored too soon. Well, thank you for your answer. It's a pity there's noone who fix bugs in original IWD2 though. I guess gemrb is written from scratch, so it most likely has its own unique bugs, and not the ones inherited from vanilla Infinity Engine -)
  2. Please, excuse my ignorance. I never used the Gibberlings Tweaks, so I don't know what's inside. Does the sentence I quoted mean that the code modding is outside the scope of this project? The problem is: I was always disappointed by the fact that IWD2 does not use HPCONBON.2DA rule table which means there's no easy way to implement CONstitution-based HP-regeneration. HP-regen is my personal fetish, which lead me to dislike the game without it, 'cause I don't feel like the sleeping without a camp after every couple of battles is the way a group of real adventurers would go. Some days ago I decided to implement regeneration the hard way, and found a bug during this research. It resides in the function (sub_542a90 in GOG version): CRuleTables::RollHitPoints(int nSides, int nRolls, int nLevel, int nMinRoll, int nModifier) This method is called on level-ups to roll for hit points. When the roll result is less then nMinRoll, the nMinRoll value is used. But when it is greater, then the die is rerolled, and the new value is used indiscriminately, instead of just using the old value. This means that the HP value rolled on level-ups tend to be lesser than average, and can even be less than nMinRoll. For player characters nMinRoll usually equals 1, which makes HP roll of 1 more probable than all the other values.
×
×
  • Create New...