Jump to content


  • Content Count

  • Joined

  • Last visited


About Raduziel

  • Rank
    Noob Modder
  • Birthday 07/25/1988

Profile Information

  • Gender
  • Location
    Rio de Janeiro, Brazil
  • Mods Worked On
    Deities of Faerûn

    I Hate Undead

    Hephernaan BG2 (consultant for the NPC's kit)

Recent Profile Visitors

1,489 profile views
  1. I agree with it - pausing while using the inventory makes quick slots lose their reason to exist. But I work around this by simply not accessing the inventory during a battle. IIRC you may remove the access to inventory through keyboard - that should help with the muscle memory issue.
  2. Ok, now for some reason the NPC's class is not being changed (from Fighter to Cleric). I appreciate the effort but I'll give up for now and keep the original coding - it ignores mod-added spells but works as intended with both unmodded and DoF. Special thanks to @subtledoctor for sharing so much of his time.
  3. Ok, I think I understand the problem now and maybe I've expressed myself poorly. Taking this as an example. That's not what I'm looking for what I want is, following this example, all first-level spells that are not druid exclusive and not evil exclusive. Examples of such spells: Command, Magic Stone, Sanctuary... So maybe I need to invert the zeros and ones from the BAND part of the code? Edit: Changing to: PATCH_IF (alignment BAND 0b11111011 = 0b11111011) BEGIN PATCH_IF (class BAND 0b01111111 = 0b01111111) BEGIN Also doesn't work... Edit2: Made a new test using BOR PATCH_IF (alignment BOR 0b00000100 = 0b00000100) BEGIN PATCH_IF (class BOR 0b10000000 = 0b10000000) BEGIN Doing this the spells appear in the spellbook but too many spells, as you can see in the image attached - Change Chicken, Dark Gift, Chromatic Orb (twice), Repulse X, two versions of Entangle and Bless, Spirit Ward, a nameless spell with a Detect Evil icon, etc. But that's definitely some progress, no doubt. Anyone with an insight of what I may be doing wrong? Thanks.
  4. Like this? COPY_EXISTING_REGEXP ~^.+\.spl$~ override PATCH_IF %SOURCE_SIZE% > 0x71 BEGIN READ_SHORT 0x1c type READ_LONG 0x34 level READ_BYTE 0x1e alignment READ_BYTE 0x21 class PATCH_IF type = 2 BEGIN PATCH_IF (alignment BAND 0b00000100 = 0b00000100) BEGIN PATCH_IF (class BAND 0b10000000 = 0b10000000) BEGIN PATCH_IF level = 1 BEGIN SPRINT $level_one_divine(~%SOURCE_RES%~) ~1~ END PATCH_IF level = 2 BEGIN SPRINT $level_two_divine(~%SOURCE_RES%~) ~1~ END PATCH_IF level = 3 BEGIN SPRINT $level_three_divine(~%SOURCE_RES%~) ~1~ END PATCH_IF level = 4 BEGIN SPRINT $level_four_divine(~%SOURCE_RES%~) ~1~ END END END END END BUT_ONLY Still doesn't work, though. This will be done only twice (for Mazzy and Shar-Teel) so the eleven-arrays approach doesn't seem necessary.
  5. @subtledoctor Apparently it doesn't work (for adding spells at least): This installs smoothly but the NPC's spellbook is blank. COPY_EXISTING_REGEXP ~^.+\.spl$~ override PATCH_IF %SOURCE_SIZE% > 0x71 BEGIN READ_SHORT 0x1c type READ_LONG 0x34 level READ_LONG 0x1e restriction PATCH_IF type = 2 BEGIN PATCH_IF (restriction BAND 0b10000100 = 0b10000100) BEGIN PATCH_IF level = 1 BEGIN SPRINT $level_one_divine(~%SOURCE_RES%~) ~1~ END PATCH_IF level = 2 BEGIN SPRINT $level_two_divine(~%SOURCE_RES%~) ~1~ END PATCH_IF level = 3 BEGIN SPRINT $level_three_divine(~%SOURCE_RES%~) ~1~ END PATCH_IF level = 4 BEGIN SPRINT $level_four_divine(~%SOURCE_RES%~) ~1~ END END END END BUT_ONLY COPY_EXISTING ~shartd.cre~ ~override~ WRITE_SHORT 0x244 0 WRITE_BYTE 0x246 "%kit%" WRITE_BYTE 0x247 0x40 WRITE_BYTE 0x239 0 //Exceptional Strength WRITE_BYTE 0x23b 9 //Wisdom WRITE_BYTE 0x23d 11 //Constitution WRITE_BYTE 0x273 3 //Class WRITE_LONG 0x028 24592 //Animation WRITE_BYTE 0x052 20 //Thac0 WRITE_BYTE 0x054 10 //Death WRITE_BYTE 0x055 14 //Wands WRITE_BYTE 0x056 13 //Paralyze WRITE_BYTE 0x057 16 //Breath WRITE_BYTE 0x058 15 //Spells PHP_EACH level_one_divine AS spl => nul BEGIN ADD_KNOWN_SPELL ~%spl%~ #0 ~priest~ END PHP_EACH level_two_divine AS spl => nul BEGIN ADD_KNOWN_SPELL ~%spl%~ #1 ~priest~ END ADD_MEMORIZED_SPELL ~CLERIC_DOOM~ #0 ~priest~ (2) ADD_MEMORIZED_SPELL ~CLERIC_FLAME_BLADE~ #1 ~priest~ (1) READ_LONG 0x2a8 spl_off READ_LONG 0x2ac spl_num FOR (i = 0; i < spl_num; ++i) BEGIN READ_SHORT (spl_off + i * 0x10 + 0x8) type PATCH_IF (type = 0) BEGIN READ_SHORT (spl_off + i * 0x10) level PATCH_MATCH level WITH 0 BEGIN WRITE_SHORT (spl_off + i * 0x10 + 0x2) 2 END 1 BEGIN WRITE_SHORT (spl_off + i * 0x10 + 0x2) 1 END DEFAULT END END END BUT_ONLY The extra "1" at 0b00000100 is to keep Druid/Shaman spells away. I also tested without it and the spellbook was empty still. Also using READ_BYTE instead of READ_LONG doesn't do the trick. Thanks for the help.
  6. I'll test it and provide feedback. If it work as I'm planning I'll pay you a beer someday.
  7. That will save me a lot of time, thanks! I will try to adapt and use it to ADD_SPELL for two NPCs but I need to add one more filter (other than type and level) that is alignment restriction - so an Evil character wouldn't receive spells like Holy Smite and a Good character wouldn't receive spells like Unholy Smite. I know I would need to mess with READ_LONG 0x1e (Exclusion Flags) and bits 1 (exclude Evil) and 2 (exclude Good). But... how? Thanks in advance!
  8. Seems like an excellent solution and exactly what I'm looking for but IDK if I know how to do it to be honest. I could also use this to do the inverse (add spells) for DoF's Mazzy and Shar-Teel's component (so far the spells are added one by one).
  9. Let's say the character has 20,000 XP As a pureclass Cleric it would be a 5th level Cleric with access to spells up to the Third Circle. As a multiclass Cleric-Mage it would be a 4th level Cleric/4th level Mage with access to spells up to the Second Circle only. So if the "make this character a CM instead of a C" component is chosen, the Third Circle entry at the spellbook needs to be removed and its slots zeroed. I'm talking about removing divine spells. Arcane ones will be added by this component but that is quite easy. Removing is not that bad with REMOVE_KNOWS_SPELL but I may skip a mod-added one. Cheers.
  10. Maybe it was for the Undead Predator, I'll look into it. IIRC I went for the Disable spellcasting button and called it a day but may be a good way to improve it too. I'll give it a spin, thanks! And to everyone else, I'm still open to receive some new ideas.
  11. Hey, So I'm working with @Lava in a project where I'll turn a cleric into a cleric/mage. That means the XP will be split and some cleric levels will be lost - which mean eventually losing access to a whole spell circle. I do know how to remove spells one by one (quiet easy actually) but doing the way I usually do some mod-added spells may be left behind. SO... Is there a tricky to track and remove all the spells from a cleric spellbook based on the spell's level? Thanks in advance.
  12. Congratulations! I didn't know about half of those NPCs - they'll be used in my next run.
  13. Ok, now that I've slept I can answer properly: I never imagined that DoF would be that huge, to be honest. I don't know if you remember it but I pretty much started DoF with one goal and one goal only: give Yeslick the Clangeddin kit without having to install all the Ranger and Druid components of FnP (Clangeddin was only available under the "Install everything" option back then). After that I've noticed that making kits was not that hard and decided to tackle all Cleric NPCs. Then Mod-Added-Cleric NPCs. Then some deities that I think are interesting. Than it was only a matter of letting my OCD kick-in to say "Fuck, I'll do them all". When @kjeron started to help me I've realized that many things that I imagined could be implemented. At first it was a change or two. Enters the sphere system and my OCD combined saying "Fuck, let's make everything PnP-related". I keep postponing the separation between "Tweaks" and "Sphere System" - mostly also for OCD reasons (and I mean real medicine-controlled triple-check-the-door's-lock OCD, not a person who just likes to have his/her things organized). And I'm also a little tired of architectural changes as I already did that with DoF (once I discovered that lot of things were messed and poorly implemented) and I Hate Undead (ditto but did almost everything from scratch). Also I got into NPC-building (what I'm too lame and too English-illiterate to properly perform) and lots of real life stuff (from postgraduate studies to almost going to jail when a client o' mine decided to fuck up IRS and my name was among his dirty file). BUT Feel free to copy and paste for personal use whatever code suits you. Most of them were built by Kjeron anyway (he'll modestly say that no but he baby-stepped me so much that I don't even consider myself the author of a good share of DoF). What we can learn from that? Make Clangeddin an independent component. lol Cheers. PS: The only reason why DoF is not being expanded is because my new medicine is amazing and I don't feel the urge to release a new deity every three days.
  14. DoF tries to mirror 2nd as close as possible. Didn't understand your comment but seems like I'm getting dumber and dumber lately.
  • Create New...