Strontium Dog Posted February 7, 2010 Share Posted February 7, 2010 OK, I fouled up due to some problem with animation(I installed moinesse avatars which wasn't even on the big world project list of acceptable mods, not even in expert section, and that might be the problem re the CTD to full black screen occurring whenever I try to rest anywhere, unfortunately a bug which only occurred mid-game. Anyway, I'm trying to build my perfect megamod install again this time , sadly without moinesse avatars. My plan is to use, as before, my succcessful selective implementation of spell-rev combined with spell50, thus making mages more powerful overall(hostile liches are now seriously deadly!), along with 1 or 2 new (Iwd-related)spells from the spellpack b5 mods. That went without a hitch, in 99.9% of cases. There was a reported issue between spellpack b5 and the wild mage pack((which, I think, might have been the reason why the wildmagepack vortex spell failed to work -any ideas as to how they conflict? there's no wildmage forum you see)). I'd like to use improved summons for some of the summoned animals instead of spell-rev(eg;- the summon nymph/dryad/sirine instead of spellrev summon nymph) etc.. I presume I can do so by using /* and */ to (via the tp2 files) edit out any spells I don't want from any spell-adding/spell-altering mods, right? That way I can avoid any potential clashes. The improved summons tp2 is slightly different from the spell-rev tp2, including the word "BEGIN" instead of just "copy". I presume I put the /* before the begin word. 2 minor questions:- First off, I was surprised to find out that a wonderful spell I had in my previous game (sphere of chaos) causing all spellcasters to cast wild surges if a save at -6 was failed, originated from my previous spell_rev installation, installed over a year ago. It's now been changed with your new updates but I loved the previous spell so much(I always play wild mages) that I would like to incorporate the benefits of the new spell-rev with that previous spell. I have got the old and the new versions of the spell-rev mod on my PC. Any ideas on how to do this would be most welcome! Improved summons has a summon solar(I think it's just summon planetar but at 25th or 30th level+, one gets a solar. Out of curiosity, how does the improved summons solar compare to the enhanced spell-rev planetar? It's just that there's no specific data on improved summons creatures. All they show is 1 or abilities, such as mentioning that the elemental prince of air can cast chain-lightning continuously etc., but no details re AC etc. By the way, I fear I may have had some issues with gminion like you said might occur. In the planar sphere, I summoned a glabrezu for the 1st time, and the creatue stayed green for just 2 seconds, and then suddenly turned hostile on the party despite the fact that they all had protection from evil cast on them(the glabrezu hadn't been attacked by party spells or weapons). Link to comment
Jarno Mikkola Posted February 7, 2010 Share Posted February 7, 2010 I presume I can do so by using /* and */ to (via the tp2 files) edit out any spells I don't want from any spell-adding/spell-altering mods, right? That way I can avoid any potential clashes. The improved summons tp2 is slightly different from the spell-rev tp2, including the word "BEGIN" instead of just "copy". I presume I put the /* before the begin word. Yes, for the SR, but you see the Improved summons have the improvements divided in separated components, so the BEGIN is the start of the next component, so you can install each of the improvement separately. So no /* code */ -needed. And according to this page, it's in the BWP... not in the form you wish it to be... but still. Link to comment
Demivrgvs Posted February 8, 2010 Share Posted February 8, 2010 I'd like to use improved summons for some of the summoned animals instead of spell-rev(eg;- the summon nymph/dryad/sirine instead of spellrev summon nymph) etc.. I presume I can do so by using /* and */ to (via the tp2 files) edit out any spells I don't want from any spell-adding/spell-altering mods, right? That way I can avoid any potential clashes. The improved summons tp2 is slightly different from the spell-rev tp2, including the word "BEGIN" instead of just "copy". I presume I put the /* before the begin word.I don't know such mods so well, I can only speak for SR, but if you comment out those SR spells you should be able to install the other mods ovoer SR. First off, I was surprised to find out that a wonderful spell I had in my previous game (sphere of chaos) causing all spellcasters to cast wild surges if a save at -6 was failed, originated from my previous spell_rev installation, installed over a year ago. It's now been changed with your new updates but I loved the previous spell so much(I always play wild mages) that I would like to incorporate the benefits of the new spell-rev with that previous spell. I have got the old and the new versions of the spell-rev mod on my PC. Any ideas on how to do this would be most welcome!It should be easy...simply take the old spw file from v2 and copy it over v3 before installing. You also need to fx the descriptions in the tra files before installing, or you can do that with NI after installing. Improved summons has a summon solar(I think it's just summon planetar but at 25th or 30th level+, one gets a solar. Out of curiosity, how does the improved summons solar compare to the enhanced spell-rev planetar? It's just that there's no specific data on improved summons creatures. All they show is 1 or abilities, such as mentioning that the elemental prince of air can cast chain-lightning continuously etc., but no details re AC etc.I don't know that mod so well but in theory a summon Solar spell is utterly overpowered within BG (he should be able to kill a dragon on his own). It all depends on how the creature is implemented: as per PnP? if yes which edition? We have a quite different point of view on what is "overpowered/unbalancing" but I can assure you SR's Planetars are already outstandingly powerful. I tested one of them once against a drow party in the Underdark and he disintegrated them without a scratch. By the way, I fear I may have had some issues with gminion like you said might occur. In the planar sphere, I summoned a glabrezu for the 1st time, and the creatue stayed green for just 2 seconds, and then suddenly turned hostile on the party despite the fact that they all had protection from evil cast on them(the glabrezu hadn't been attacked by party spells or weapons).Gminion can't handle SR's summons, because I've added A LOT of unique abilities/spells/features, and it doesn't even know which creatures I'm currently assigning to each spell. Link to comment
Strontium Dog Posted February 8, 2010 Author Share Posted February 8, 2010 Great, thanks. So that means that I shouldn't install gminion in order to avoid issues. I think I'll stick with spellrev's angelic/demonic summons given various hints. For example, spellrev's pit-fiend seems remarkably powerful(150hp poison damage after 1 turn?) Link to comment
Strontium Dog Posted February 11, 2010 Author Share Posted February 11, 2010 It should be easy...simply take the old spw file from v2 and copy it over v3 before installing. You also need to fx the descriptions in the tra files before installing, or you can do that with NI after installing. Yes, but where are those tra files, and which one do I need to fix?(tra file same number as spell-code? Link to comment
Demivrgvs Posted February 11, 2010 Share Posted February 11, 2010 It should be easy...simply take the old spw file from v2 and copy it over v3 before installing. You also need to fx the descriptions in the tra files before installing, or you can do that with NI after installing. Yes, but where are those tra files, and which one do I need to fix?(tra file same number as spell-code? The arcane.tra and divine.tra files are in the language folder (it shouldn't be hard to find them), open them with whatever notepad-like program you have, search for 'Sphere of Chaos' and edit the description to suit your tastes (e.g. to mention the Wild Magic effect). Link to comment
Strontium Dog Posted February 11, 2010 Author Share Posted February 11, 2010 It should be easy...simply take the old spw file from v2 and copy it over v3 before installing. You also need to fx the descriptions in the tra files before installing, or you can do that with NI after installing. Yes, but where are those tra files, and which one do I need to fix?(tra file same number as spell-code? The arcane.tra and divine.tra files are in the language folder (it shouldn't be hard to find them), open them with whatever notepad-like program you have, search for 'Sphere of Chaos' and edit the description to suit your tastes (e.g. to mention the Wild Magic effect). Thank you! On another forum, someone had suggested I edit part of the (presumably huge) dailog.tlk file. Now that I know I just have to edit the arcane.tra or divine.tra files, things are going to be much easier. Cheers. I reckon I'll be able to do a BWP megamod install by tomorrow morning, latest. Link to comment
Strontium Dog Posted February 13, 2010 Author Share Posted February 13, 2010 OK, I tried editing the spell_rev tp2 file so that I could get only those spell_rev spells I wanted in my install. However, when I did my megamod install , the spell-rev mod install failed because of some bug in the tp2 file. I think I've sorted out the problem(some misplacing of th /* and */ ) but just wanted to check that it's Ok before I do another megamod install. Here's the tp2 file below, just in case someone spots an obvious error:- BACKUP ~spell_rev\backup~ // location to store files for uninstall purposes AUTHOR ~kaiser-sosa@libero.it~ // display email address if install fails //MODDER VERSION ~v3~ README ~spell_rev\readme-spell_rev.html~ //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////// LANGUAGE ~English~ ~languages\english~ ~spell_rev\languages\english\arcane.tra~ ~spell_rev\languages\english\divine.tra~ ~spell_rev\languages\english\setup.tra~ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /*------Spell Revisions------*/ BEGIN @9996 DESIGNATED 0 REQUIRE_PREDICATE (ENGINE_IS ~soa tob~) @8996 // ~This mod is designed for the Baldur's Gate II engine and will not function on other games.~ INCLUDE ~spell_rev\shared\cre_spell_immunity.tph~ // function used to make creatures immune to certain spells /* ----Various---- */ // Scroll Of Restoration: no longer needed since addition of spellbook fixing code in v3 // adscroll.itm still copied over in case someone wants to CLUAConsole it for use on an old save game COPY ~spell_rev\shared\adscroll.itm~ ~override~ SAY NAME2 @10000 SAY IDENTIFIED_DESC @10001 COPY ~spell_rev\shared\adscroll.bam~ ~override~ COPY ~spell_rev\shared\dvimhere.mrk~ ~override~ // Used to detect if SR is installed COPY ~spell_rev\shared\dvsrv3.mrk~ ~override~ // Used to detect if SR V3 is installed STRING_SET ~27982~ @5410 // replaces 'Protection from Illusions removed' with 'Illusionary protections removed' COPY_EXISTING ~intmod.2da~ ~override~ // Int Modifier for Maze & Imprisonment SET_2DA_ENTRY 0 4 6 ~7200~ SET_2DA_ENTRY 0 5 6 ~1~ SET_2DA_ENTRY 1 4 6 ~7200~ SET_2DA_ENTRY 1 5 6 ~1~ SET_2DA_ENTRY 2 4 6 ~7200~ SET_2DA_ENTRY 2 5 6 ~1~ SET_2DA_ENTRY 3 4 6 ~10~ SET_2DA_ENTRY 3 5 6 ~4~ SET_2DA_ENTRY 4 4 6 ~10~ SET_2DA_ENTRY 4 5 6 ~4~ SET_2DA_ENTRY 5 4 6 ~10~ SET_2DA_ENTRY 5 5 6 ~4~ SET_2DA_ENTRY 6 4 6 ~5~ SET_2DA_ENTRY 6 5 6 ~4~ SET_2DA_ENTRY 7 4 6 ~5~ SET_2DA_ENTRY 7 5 6 ~4~ SET_2DA_ENTRY 8 4 6 ~5~ SET_2DA_ENTRY 8 5 6 ~4~ BUT_ONLY_IF_IT_CHANGES COPY ~spell_rev\shared\dvwinded.spl~ ~override~ // Fatigue Effect COPY ~spell_rev\shared\dvbanish.eff~ ~override~ // Banish vvc COPY ~spell_rev\shared\dvpowerw.eff~ ~override~ // Power Words vvc COPY ~spell_rev\shared\dvelair.vvc~ ~override~ // Conjure Air Elemental new animation COPY ~spell_rev\shared\dvelair.bam~ ~override~ COPY ~spell_rev\shared\dveleart.vvc~ ~override~ // Conjure Earth Elemental new animation COPY ~spell_rev\shared\dveleart.bam~ ~override~ COPY ~spell_rev\shared\dvelfire.vvc~ ~override~ // Conjure Fire Elemental new animation COPY ~spell_rev\shared\dvelfire.bam~ ~override~ COPY ~spell_rev\shared\illush.wav~ ~override~ // New illusion spell effect COPY ~spell_rev\shared\illush.bam~ ~override~ COPY ~spell_rev\shared\illushvc.vvc~ ~override~ COPY ~spell_rev\shared\spmagglo.vvc~ ~override~ // New Spell Deflection/Immunity animation COPY ~spell_rev\shared\spmagglo.bam~ ~override~ COPY ~spell_rev\shared\dvsun1.vvc~ ~override~ // New sunlight effect COPY ~spell_rev\shared\dvsun2.vvc~ ~override~ COPY ~spell_rev\shared\dvsun.bam~ ~override~ COPY ~spell_rev\shared\dvinvis.spl~ ~override~ // Invisibility COPY ~spell_rev\shared\spwi977.spl~ ~override~ // Shapeshift Natural Form COPY ~spell_rev\shared\spwi978.spl~ ~override~ // Shapeshift Natural Form COPY ~spell_rev\shared\wings~ ~override~ // 1PP attachable wings COPY ~spell_rev\shared\unddeath.eff~ ~override~ // Variant undead death effect /* ----Projectiles---- */ ADD_PROJECTILE ~spell_rev\projectles\dvmainpr.pro~ // 1 target, no animation, 200 speed COPY_EXISTING ~bignarea.pro~ ~override~ WRITE_SHORT 0x206 256 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~iceglyp.pro~ ~override~ // Symbol of Death/Stun/Weakness WRITE_SHORT 0x200 77 // Don't affect caster and allied creatures WRITE_SHORT 0x206 200 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~trapglyp.pro~ ~override~ // Fire Trap/Glyph of Warding WRITE_SHORT 0x200 77 // Don't affect caster and allied creatures WRITE_SHORT 0x206 200 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~inareasm.pro~ ~override~ WRITE_SHORT 0x206 110 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~newbolt1.pro~ ~override~ // Lightning Bolt's "new" projectile WRITE_SHORT 0x0a 20 // Increase speed to 20 to match Chain Lightning's one BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~smllarnc.pro~ ~override~ WRITE_SHORT 0x206 60 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~smllnpc.pro~ ~override~ WRITE_SHORT 0x206 60 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~hold.pro~ ~override~ // Hold WRITE_SHORT 0x206 60 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~holdnecr.pro~ ~override~ // Halt/Control Undead WRITE_SHORT 0x206 60 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~insec2.pro~ ~override~ // Insect Plague and Creeping Doom WRITE_SHORT 0x0a 10 // Increase speed to 10 to match Insect spell's one BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~metswarm.pro~ ~override~ // Firestorm and vanilla's Meteor Swarm WRITE_SHORT 0x0a 40 // Increase speed to 40 WRITE_BYTE 0x216 4 // Fix duration to 4 rounds BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~dfirebl.pro~ ~override~ // Trap-like projectiles trigger more quickly ~iceglyp.pro~ ~override~ ~trapglyp.pro~ ~override~ ~trapskul.pro~ ~override~ WRITE_SHORT 0x210 10 BUT_ONLY_IF_IT_CHANGES /* ----Improved AI---- */ COPY ~spell_rev\shared\dvmelee.bcs~ ~override~ // Summons' melee AI COPY ~spell_rev\shared\dvranged.bcs~ ~override~ // Summons' ranged AI COPY ~spell_rev\shared\dvbrsker.bcs~ ~override~ // Summons' melee AI (with berserking ability) /* ----Creature Type Characteristics---- */ COPY ~spell_rev\shared\elemtype.itm~ ~override~ // Elemental type characteristics COPY ~spell_rev\shared\undtype.itm~ ~override~ // Undead type characteristics COPY ~spell_rev\shared\vermtype.itm~ ~override~ // Vermin type characteristics /* ----Bhaalspawn Abilities---- */ COPY ~spell_rev\shared\spin101.spl~ ~override~ // Cure Light Wounds COPY ~spell_rev\shared\spin102.spl~ ~override~ // Slow Poison COPY ~spell_rev\shared\spin103.spl~ ~override~ // Draw upon Divine Might COPY ~spell_rev\shared\spin104.spl~ ~override~ // Larloch's Minor Drain COPY ~spell_rev\shared\spin105.spl~ ~override~ // Horror COPY ~spell_rev\shared\spin106.spl~ ~override~ // Vampiric Drain /* ----Avenger Abilities---- */ COPY ~spell_rev\shared\spdr101.spl~ ~override~ // Chromatic Orb SAY NAME1 @433 SAY UNIDENTIFIED_DESC @434 /* COPY ~spell_rev\shared\spdr201.spl~ ~override~ // Web SAY NAME1 @477 SAY UNIDENTIFIED_DESC @478 */ COPY ~spell_rev\shared\spdr301.spl~ ~override~ // Lightning Bolt SAY NAME1 @515 SAY UNIDENTIFIED_DESC @516 COPY ~spell_rev\shared\spdr401.spl~ ~override~ // Improved Invisibility SAY NAME1 @569 SAY UNIDENTIFIED_DESC @570 COPY ~spell_rev\shared\spdr501.spl~ ~override~ // Chaos SAY NAME1 @625 SAY UNIDENTIFIED_DESC @626 COPY ~spell_rev\shared\spdr601.spl~ ~override~ // Chain Lightning SAY NAME1 @687 SAY UNIDENTIFIED_DESC @688 /* ----Stalker Abilities---- */ COPY ~spell_rev\shared\spra301.spl~ ~override~ // Haste SAY NAME1 @509 SAY UNIDENTIFIED_DESC @510 COPY ~spell_rev\shared\spra302.spl~ ~override~ // Minor Spell Deflection SAY NAME1 @533 SAY UNIDENTIFIED_DESC @534 COPY ~spell_rev\shared\spra303.spl~ ~override~ // Protection from Missiles SAY NAME1 @521 SAY UNIDENTIFIED_DESC @522 /* ----Beast Master Abilities---- */ COPY ~spell_rev\shared\spra304.spl~ ~override~ // Animal Summoning I SAY NAME1 @300 SAY UNIDENTIFIED_DESC @301 COPY ~spell_rev\shared\spra305.spl~ ~override~ // Animal Summoning II SAY NAME1 @302 SAY UNIDENTIFIED_DESC @303 COPY ~spell_rev\shared\spra306.spl~ ~override~ // Animal Summoning III SAY NAME1 @304 SAY UNIDENTIFIED_DESC @305 /* ----Innate Abilities---- */ COPY ~spell_rev\shared\fearaura.spl~ ~override~ // Aura of fear COPY ~spell_rev\shared\dvgasfrm.spl~ ~override~ // Gaseous Form COPY ~spell_rev\shared\dvgasfrm.itm~ ~override~ // Gaseous Form COPY ~spell_rev\shared\dvtelpor.spl~ ~override~ // Teleport Without Error COPY ~spell_rev\shared\spin113.spl~ ~override~ // Branwen Spiritual Hammer COPY ~spell_rev\shared\spin683.spl~ ~override~ // Innate Web Tangle COPY ~spell_rev\shared\spin788.spl~ ~override~ // Demilich Soul Trap COPY ~spell_rev\shared\spin789.spl~ ~override~ // Demilich Howl //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /* -------------------- DIVINE SPELLS -------------------------*/ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /*---------------------level 1-----------------------*/ COPY ~spell_rev\sppr1##\sppr101.spl~ ~override~ // Bless SAY NAME1 @1 SAY UNIDENTIFIED_DESC @2 COPY ~spell_rev\sppr1##\sppr102.spl~ ~override~ // Command SAY NAME1 @3 SAY UNIDENTIFIED_DESC @4 COPY ~spell_rev\sppr1##\sppr103.spl~ ~override~ // Cure Light Wounds SAY NAME1 @5 SAY UNIDENTIFIED_DESC @6 COPY ~spell_rev\sppr1##\sppr104.spl~ ~override~ // Detect Evil SAY NAME1 @7 SAY UNIDENTIFIED_DESC @8 COPY ~spell_rev\sppr1##\sppr105.spl~ ~override~ // Entangle SAY NAME1 @9 SAY UNIDENTIFIED_DESC @10 COPY ~spell_rev\sppr1##\dventang.eff~ ~override~ COPY ~spell_rev\shared\spentaai.bam~ ~override~ // IWD's Entangle Animation COPY ~spell_rev\shared\spentaci.bam~ ~override~ COPY ~spell_rev\sppr1##\sppr106.spl~ ~override~ // Magical Stone SAY NAME1 @11 SAY UNIDENTIFIED_DESC @12 COPY ~spell_rev\sppr1##\mstone.itm~ ~override~ SAY NAME1 @11 SAY NAME2 @11 SAY UNIDENTIFIED_DESC @1030 COPY ~spell_rev\sppr1##\mstone.bam~ ~override~ COPY ~spell_rev\sppr1##\mstone.eff~ ~override~ COPY ~spell_rev\sppr1##\sppr107.spl~ ~override~ // Protection From Evil SAY NAME1 @13 SAY UNIDENTIFIED_DESC @14 COPY ~spell_rev\sppr1##\sppr108.spl~ ~override~ // Resist Fear SAY NAME1 @15 SAY UNIDENTIFIED_DESC @16 COPY ~spell_rev\sppr1##\sppr109.spl~ ~override~ // Sanctuary SAY NAME1 @17 SAY UNIDENTIFIED_DESC @18 COPY ~spell_rev\sppr1##\sppr110.spl~ ~override~ // Shillelagh SAY NAME1 @19 SAY UNIDENTIFIED_DESC @20 COPY ~spell_rev\sppr1##\shille.itm~ ~override~ COPY ~spell_rev\sppr1##\shille2.itm~ ~override~ COPY ~spell_rev\sppr1##\shille3.itm~ ~override~ COPY ~spell_rev\sppr1##\dvshille.spl~ ~override~ COPY ~spell_rev\sppr1##\dvshille.eff~ ~override~ COPY ~spell_rev\sppr1##\sppr111.spl~ ~override~ // Armor Of Faith SAY NAME1 @21 SAY UNIDENTIFIED_DESC @22 COPY ~spell_rev\sppr1##\sppr113.spl~ ~override~ // Doom SAY NAME1 @23 SAY UNIDENTIFIED_DESC @24 ADD_PROJECTILE ~spell_rev\projectles\dvffire.pro~ COPY ~spell_rev\sppr1##\sppr114.spl~ ~override~ // Faerie Fire (new druid spell) SAY NAME1 @25 SAY UNIDENTIFIED_DESC @26 WRITE_SHORT 0x98 %dvffire% COPY ~spell_rev\sppr1##\sppr114f.spl~ ~override~ COPY ~spell_rev\sppr1##\sppr114b.bam~ ~override~ COPY ~spell_rev\sppr1##\sppr114c.bam~ ~override~ // uncomment the lines below to allow those affected by Faerie Fire to turn invisible //COPY ~spell_rev\sppr1##\nerfed_sppr114.spl~ ~override\sppr114.spl~ // Faerie Fire (new druid spell) // SAY NAME1 @25 SAY UNIDENTIFIED_DESC @26000 // WRITE_SHORT 0x98 %dvffire% COPY ~spell_rev\sppr1##\sppr115.spl~ ~override~ // Strength of Stone (new druid spell) SAY NAME1 @27 SAY UNIDENTIFIED_DESC @28 COPY ~spell_rev\sppr1##\sppr116.spl~ ~override~ // Sunscorch (new druid spell) SAY NAME1 @29 SAY UNIDENTIFIED_DESC @30 COPY ~spell_rev\sppr1##\dvsuns1.eff~ ~override~ COPY ~spell_rev\sppr1##\dvsuns2.eff~ ~override~ COPY ~spell_rev\sppr1##\dvsuns3.eff~ ~override~ COPY ~spell_rev\sppr1##\dvsuns4.eff~ ~override~ COPY ~spell_rev\sppr1##\dvsuns5.eff~ ~override~ COPY ~spell_rev\sppr1##\dvsuns6.eff~ ~override~ COPY ~spell_rev\sppr1##\dvsuns7.eff~ ~override~ COPY ~spell_rev\sppr1##\dvsuns8.eff~ ~override~ COPY ~spell_rev\sppr1##\dvsuns9.eff~ ~override~ COPY ~spell_rev\sppr1##\dvsuns10.eff~ ~override~ COPY ~spell_rev\sppr1##\sppr116a.bam~ ~override~ COPY ~spell_rev\sppr1##\sppr116b.bam~ ~override~ COPY ~spell_rev\sppr1##\sppr116c.bam~ ~override~ /*--------------------level 2----------------------*/ COPY ~spell_rev\sppr2##\sppr201.spl~ ~override~ // Aid SAY NAME1 @31 SAY UNIDENTIFIED_DESC @32 COPY ~spell_rev\sppr2##\sppr202.spl~ ~override~ // Barkskin SAY NAME1 @33 SAY UNIDENTIFIED_DESC @34 COPY ~spell_rev\sppr2##\sppr203.spl~ ~override~ // Chant SAY NAME1 @35 SAY UNIDENTIFIED_DESC @36 COPY ~spell_rev\sppr2##\sppr203d.spl~ ~override~ COPY ~spell_rev\sppr2##\sppr204.spl~ ~override~ // Charm Person or Mammal SAY NAME1 @37 SAY UNIDENTIFIED_DESC @38 COPY ~spell_rev\sppr2##\sppr205.spl~ ~override~ // Find Traps SAY NAME1 @39 SAY UNIDENTIFIED_DESC @40 COPY ~spell_rev\sppr2##\sppr205d.spl~ ~override~ COPY ~spell_rev\sppr2##\sppr206.spl~ ~override~ // Flame Blade SAY NAME1 @41 SAY UNIDENTIFIED_DESC @42 COPY ~spell_rev\sppr2##\fblade.itm~ ~override~ COPY ~spell_rev\sppr2##\fblade1.itm~ ~override~ COPY ~spell_rev\sppr2##\fblade2.itm~ ~override~ COPY ~spell_rev\sppr2##\fblade3.itm~ ~override~ COPY ~spell_rev\sppr2##\fblade4.itm~ ~override~ COPY ~spell_rev\sppr2##\fblade5.itm~ ~override~ COPY ~spell_rev\sppr2##\fblade6.itm~ ~override~ COPY ~spell_rev\sppr2##\fblade7.itm~ ~override~ COPY ~spell_rev\sppr2##\fblade8.itm~ ~override~ COPY ~spell_rev\sppr2##\fblade9.itm~ ~override~ COPY ~spell_rev\sppr2##\sppr207.spl~ ~override~ // Goodberry SAY NAME1 @43 SAY UNIDENTIFIED_DESC @44 COPY ~spell_rev\sppr2##\gberry.itm~ ~override~ SAY NAME1 @43 SAY NAME2 @43 SAY UNIDENTIFIED_DESC @1032 COPY ~spell_rev\sppr2##\gberry1.itm~ ~override~ SAY NAME1 @43 SAY NAME2 @43 SAY UNIDENTIFIED_DESC @1033 COPY ~spell_rev\sppr2##\gberry2.itm~ ~override~ SAY NAME1 @43 SAY NAME2 @43 SAY UNIDENTIFIED_DESC @1034 COPY ~spell_rev\sppr2##\gberry3.itm~ ~override~ SAY NAME1 @43 SAY NAME2 @43 SAY UNIDENTIFIED_DESC @1035 COPY ~spell_rev\sppr2##\gberry4.itm~ ~override~ SAY NAME1 @43 SAY NAME2 @43 SAY UNIDENTIFIED_DESC @1036 COPY ~spell_rev\sppr2##\gberry5.itm~ ~override~ SAY NAME1 @43 SAY NAME2 @43 SAY UNIDENTIFIED_DESC @1037 COPY ~spell_rev\sppr2##\gberry6.itm~ ~override~ SAY NAME1 @43 SAY NAME2 @43 SAY UNIDENTIFIED_DESC @1038 COPY ~spell_rev\sppr2##\sppr208.spl~ ~override~ // Hold Person SAY NAME1 @45 SAY UNIDENTIFIED_DESC @46 COPY ~spell_rev\sppr2##\sppr209.spl~ ~override~ // Know Opponent (replaces Know Alignment) SAY NAME1 @47 SAY UNIDENTIFIED_DESC @48 COPY ~spell_rev\sppr2##\dvknow1.eff~ ~override~ COPY ~spell_rev\sppr2##\sppr210.spl~ ~override~ // Resist Fire/Resist Cold SAY NAME1 @49 SAY UNIDENTIFIED_DESC @50 ADD_PROJECTILE ~spell_rev\projectles\dvsilenc.pro~ COPY ~spell_rev\sppr2##\sppr211.spl~ ~override~ // Silence SAY NAME1 @51 SAY UNIDENTIFIED_DESC @52 SET "loop" = 18 WHILE ("%loop%" > 0) BEGIN WRITE_SHORT (0x98 + 0x28 * ("%loop%" - 1) ) "%dvsilenc%" SET "loop" = "%loop%" - 1 END COPY ~spell_rev\sppr2##\sppr212.spl~ ~override~ // Slow Poison SAY NAME1 @53 SAY UNIDENTIFIED_DESC @54 COPY ~spell_rev\sppr2##\sppr213.spl~ ~override~ // Spiritual Hammer SAY NAME1 @55 SAY UNIDENTIFIED_DESC @56 COPY ~spell_rev\sppr2##\shammr.itm~ ~override~ COPY ~spell_rev\sppr2##\shammr2.itm~ ~override~ COPY ~spell_rev\sppr2##\shammr3.itm~ ~override~ COPY ~spell_rev\sppr2##\shammr4.itm~ ~override~ COPY ~spell_rev\sppr2##\shammr5.itm~ ~override~ COPY ~spell_rev\sppr2##\dvsphamm.spl~ ~override~ COPY ~spell_rev\sppr2##\dvsphamm.eff~ ~override~ COPY ~spell_rev\sppr2##\sppr214.spl~ ~override~ // Draw upon Divine Might (previously named Draw upon Holy Might) SAY NAME1 @57 SAY UNIDENTIFIED_DESC @58 COPY ~spell_rev\sppr2##\sppr214w.spl~ ~override~ STRING_SET ~12108~ @57 // change portrait icon name into Draw upon Divine Might COPY ~spell_rev\sppr2##\sppr215.spl~ ~override~ // Cure Moderate Wounds (active at lvl 2, disabled at lvl 3) SAY NAME1 @59 SAY UNIDENTIFIED_DESC @60 COPY ~spell_rev\sppr2##\sppr216.spl~ ~override~ // Fire Trap (new druid spell) SAY NAME1 @61 SAY UNIDENTIFIED_DESC @62 COPY ~spell_rev\sppr2##\sppr216b.bam~ ~override~ COPY ~spell_rev\sppr2##\sppr216c.bam~ ~override~ /*-----------------------level 3-----------------------*/ COPY ~spell_rev\sppr3##\sppr301.spl~ ~override~ // Animate Dead SAY NAME1 @71 SAY UNIDENTIFIED_DESC @72 COPY ~spell_rev\sppr3##\spandead.eff~ ~override~ COPY ~spell_rev\sppr3##\skellesu.cre~ ~override~ COPY ~spell_rev\sppr3##\skellesu.itm~ ~override~ COPY ~spell_rev\sppr3##\skelshld.itm~ ~override~ COPY ~spell_rev\sppr3##\spandl12.eff~ ~override~ COPY ~spell_rev\sppr3##\skelgrsu.cre~ ~override~ COPY ~spell_rev\sppr3##\skelgrsu.itm~ ~override~ COPY ~spell_rev\sppr3##\spandl15.eff~ ~override~ COPY ~spell_rev\sppr3##\skelwasu.cre~ ~override~ COPY ~spell_rev\sppr3##\skelwasu.itm~ ~override~ COPY ~spell_rev\sppr3##\sppr302.spl~ ~override~ // Call Lightning SAY NAME1 @73 SAY UNIDENTIFIED_DESC @74 COPY ~spell_rev\sppr3##\sppr303.spl~ ~override~ // Dispel Magic SAY NAME1 @75 SAY UNIDENTIFIED_DESC @76 /* COPY ~spell_rev\sppr3##\sppr304.spl~ ~override~ // Glyph of Warding SAY NAME1 @77 SAY UNIDENTIFIED_DESC @78 */ COPY ~spell_rev\sppr3##\sppr305.spl~ ~override~ // Hold Animal SAY NAME1 @79 SAY UNIDENTIFIED_DESC @80 COPY ~spell_rev\sppr3##\holdpran.eff~ ~override~ COPY ~spell_rev\sppr3##\sppr306.spl~ ~override~ // Protection from Fire (Disabled at level 3) SAY NAME1 @81 SAY UNIDENTIFIED_DESC @82 COPY ~spell_rev\sppr3##\sppr307.spl~ ~override~ // Break Enchantment (replaces Remove Curse) SAY NAME1 @83 SAY UNIDENTIFIED_DESC @84 COPY ~spell_rev\sppr3##\sppr308.spl~ ~override~ // Remove Paralysis SAY NAME1 @85 SAY UNIDENTIFIED_DESC @86 COPY ~spell_rev\sppr3##\sppr309.spl~ ~override~ // Invisibility Purge SAY NAME1 @87 SAY UNIDENTIFIED_DESC @88 COPY ~spell_rev\sppr3##\sppr309d.spl~ ~override~ /* COPY ~spell_rev\sppr3##\sppr310.spl~ ~override~ // Miscast Magic SAY NAME1 @89 SAY UNIDENTIFIED_DESC @90 COPY ~spell_rev\sppr3##\sppr310a.spl~ ~override~ COPY ~spell_rev\sppr3##\sppr310b.spl~ ~override~ */ COPY ~spell_rev\sppr3##\sppr311.spl~ ~override~ // Rigid Thinking SAY NAME1 @91 SAY UNIDENTIFIED_DESC @92 ADD_PROJECTILE ~spell_rev\projectles\dvstrone.pro~ COPY ~spell_rev\sppr3##\sppr312.spl~ ~override~ // Strength of One SAY NAME1 @93 SAY UNIDENTIFIED_DESC @94 WRITE_SHORT 0x98 %dvstrone% COPY ~spell_rev\sppr3##\sppr313.spl~ ~override~ // Holy Smite SAY NAME1 @95 SAY UNIDENTIFIED_DESC @96 COPY ~spell_rev\sppr3##\sppr313d.spl~ ~override~ COPY ~spell_rev\sppr3##\sppr313.eff~ ~override~ COPY_EXISTING ~pholyst.pro~ ~override~ WRITE_SHORT 0x204 190 WRITE_SHORT 0x206 190 COPY ~spell_rev\sppr3##\sppr314.spl~ ~override~ // Unholy Blight SAY NAME1 @97 SAY UNIDENTIFIED_DESC @98 COPY ~spell_rev\sppr3##\sppr314d.spl~ ~override~ COPY ~spell_rev\sppr3##\sppr314.eff~ ~override~ COPY_EXISTING ~punhlst.pro~ ~override~ WRITE_SHORT 0x204 190 WRITE_SHORT 0x206 190 COPY ~spell_rev\sppr3##\sppr315.spl~ ~override~ // Cure Serious Wounds (disabled at lvl4, active at lvl 3) SAY NAME1 @109 SAY UNIDENTIFIED_DESC @110 COPY ~spell_rev\sppr4##\scrl56.itm~ ~override~ SAY NAME2 @109 SAY IDENTIFIED_DESC @110 COPY ~spell_rev\sppr3##\sppr317.spl~ ~override~ // Cure Disease SAY NAME1 @99 SAY UNIDENTIFIED_DESC @100 COPY ~spell_rev\sppr3##\sppr318.spl~ ~override~ // Gust of Wind (replaces Zone of Sweet Air) SAY NAME1 @101 SAY UNIDENTIFIED_DESC @102 STRING_SET ~45247~ @3101 // change Load Game/Change Area string reference COPY ~spell_rev\sppr3##\sppr319.spl~ ~override~ // Summon Insects SAY NAME1 @103 SAY UNIDENTIFIED_DESC @104 COPY ~spell_rev\sppr3##\sppr319a.spl~ ~override~ COPY ~spell_rev\sppr3##\sppr319b.spl~ ~override~ COPY ~spell_rev\sppr3##\sppr320.spl~ ~override~ // Repulse Undead (active at lvl 3, disabled at lvl 5) SAY NAME1 @105 SAY UNIDENTIFIED_DESC @106 ADD_PROJECTILE ~spell_rev\projectles\dvrpdead.pro~ COPY ~spell_rev\sppr3##\sppr515d.spl~ ~override~ WRITE_SHORT 0x98 %dvrpdead% COPY ~spell_rev\sppr3##\sppr321.spl~ ~override~ // Cause Serious Wounds (disabled at lvl4, active at lvl 3) SAY NAME1 @107 SAY UNIDENTIFIED_DESC @108 COPY ~spell_rev\sppr3##\serious.itm~ ~override~ COPY ~spell_rev\sppr3##\sppr322.spl~ ~override~ // Storm Shield (added to druid's spells) SAY NAME1 @1109 SAY UNIDENTIFIED_DESC @1110 COPY ~spell_rev\sppr3##\spstorms.vvc~ ~override~ COPY ~spell_rev\sppr3##\spstorms.bam~ ~override~ /*-----------------------level 4-----------------------*/ COPY ~spell_rev\sppr4##\sppr401.spl~ ~override~ // Cure Critical Wounds (disabled at lvl5, active at lvl 4) SAY NAME1 @111 SAY UNIDENTIFIED_DESC @112 COPY ~spell_rev\sppr5##\scrl61.itm~ ~override~ SAY NAME2 @111 SAY IDENTIFIED_DESC @112 COPY ~spell_rev\sppr4##\sppr402.spl~ ~override~ // Animal Summoning I SAY NAME1 @113 SAY UNIDENTIFIED_DESC @114 COPY ~spell_rev\sppr4##\wolfdisu.eff~ ~override~ COPY ~spell_rev\sppr4##\wolfdisu.cre~ ~override~ COPY ~spell_rev\sppr4##\wolfdisu.itm~ ~override~ ADD_PROJECTILE ~spell_rev\projectles\dvanpack.pro~ COPY ~spell_rev\sppr4##\dvanpack.spl~ ~override~ WRITE_SHORT 0x98 %dvanpack% COPY ~spell_rev\sppr4##\dvanpack.eff~ ~override~ COPY ~spell_rev\sppr4##\sppr403.spl~ ~override~ // Free Action SAY NAME1 @115 SAY UNIDENTIFIED_DESC @116 COPY ~spell_rev\sppr4##\scrl58.itm~ ~override~ SAY NAME2 @115 SAY IDENTIFIED_DESC @116 COPY ~spell_rev\sppr4##\sppr404.spl~ ~override~ // Neutralize Poison SAY NAME1 @117 SAY UNIDENTIFIED_DESC @118 COPY ~spell_rev\sppr4##\sppr405.spl~ ~override~ // Mental Domination SAY NAME1 @119 SAY UNIDENTIFIED_DESC @120 COPY ~spell_rev\sppr4##\scrl5a.itm~ ~override~ SAY NAME2 @119 SAY IDENTIFIED_DESC @120 ADD_PROJECTILE ~spell_rev\projectles\dvharmon.pro~ COPY ~spell_rev\sppr4##\sppr406.spl~ ~override~ // Defensive Harmony SAY NAME1 @121 SAY UNIDENTIFIED_DESC @122 WRITE_SHORT 0x98 %dvharmon% COPY ~spell_rev\sppr4##\scrl5b.itm~ ~override~ SAY NAME2 @121 SAY IDENTIFIED_DESC @122 COPY ~spell_rev\sppr4##\sppr407.spl~ ~override~ // Protection from Lightning (Disabled at level 4) SAY NAME1 @123 SAY UNIDENTIFIED_DESC @124 COPY ~spell_rev\sppr4##\scrl5c.itm~ ~override~ SAY NAME2 @123 SAY IDENTIFIED_DESC @124 /* ADD_PROJECTILE ~spell_rev\projectles\dvproevi.pro~ COPY ~spell_rev\sppr4##\sppr408.spl~ ~override~ // Magic Circle against Evil (previously named Protection from Evil 10' Radius) SAY NAME1 @125 SAY UNIDENTIFIED_DESC @126 COPY ~spell_rev\sppr4##\sppr408d.spl~ ~override~ WRITE_SHORT 0x98 %dvproevi% COPY ~spell_rev\shared\dvholya1.bam~ ~override~ COPY ~spell_rev\shared\dvholya1.vvc~ ~override~ COPY ~spell_rev\shared\dvholya2.bam~ ~override~ COPY ~spell_rev\shared\dvholya2.vvc~ ~override~ COPY ~spell_rev\sppr4##\scrl5d.itm~ ~override~ SAY NAME2 @125 SAY IDENTIFIED_DESC @126 */ COPY ~spell_rev\sppr4##\sppr409.spl~ ~override~ // Death Ward SAY NAME1 @127 SAY UNIDENTIFIED_DESC @128 /* COPY ~spell_rev\sppr4##\sppr410.spl~ ~override~ // Call Woodland Beings SAY NAME1 @129 SAY UNIDENTIFIED_DESC @130 COPY ~spell_rev\sppr4##\DVNYMPH.EFF~ ~override~ COPY ~spell_rev\sppr4##\DVNYMPH.CRE~ ~override~ COPY ~spell_rev\sppr4##\DVNYMPH.ITM~ ~override~ COPY ~spell_rev\sppr4##\DVNYMPH.BCS~ ~override~ */ /* COPY ~spell_rev\sppr4##\sppr411.spl~ ~override~ // Poison SAY NAME1 @131 SAY UNIDENTIFIED_DESC @132 */ /* COPY ~spell_rev\sppr4##\sppr412.spl~ ~override~ // Divine Power (renamed from Holy Power) SAY NAME1 @133 SAY UNIDENTIFIED_DESC @134 COPY ~spell_rev\sppr4##\sppr412a.eff~ ~override~ COPY ~spell_rev\sppr4##\sppr412b.eff~ ~override~ STRING_SET ~8267~ @133 // change portrait icon name into Divine Power */ COPY ~spell_rev\sppr4##\sppr413.spl~ ~override~ // Negative Plane Protection SAY NAME1 @135 SAY UNIDENTIFIED_DESC @136 COPY ~spell_rev\sppr4##\sppr414.spl~ ~override~ // Cause Critical Wounds (enabled at lvl 4) SAY NAME1 @137 SAY UNIDENTIFIED_DESC @138 COPY ~spell_rev\sppr4##\critical.itm~ ~override~ COPY ~spell_rev\sppr4##\sppr415.spl~ ~override~ // Farsight SAY NAME1 @139 SAY UNIDENTIFIED_DESC @140 COPY ~spell_rev\sppr4##\sppr416.spl~ ~override~ // Cloak of Fear SAY NAME1 @141 SAY UNIDENTIFIED_DESC @142 ADD_PROJECTILE ~spell_rev\projectles\dvclfear.pro~ COPY ~spell_rev\sppr4##\sppr416d.spl~ ~override~ SAY NAME1 @141 WRITE_SHORT 0x98 %dvclfear% COPY ~spell_rev\sppr4##\sppr417.spl~ ~override~ // Lesser Restoration SAY NAME1 @143 SAY UNIDENTIFIED_DESC @144 COPY ~spell_rev\sppr4##\restore.itm~ ~override~ SAY NAME2 @143 SAY IDENTIFIED_DESC @144 COPY ~spell_rev\sppr4##\sppr418.spl~ ~override~ // Ice Storm (added to druid's spells) SAY NAME1 @145 SAY UNIDENTIFIED_DESC @146 /*-----------------------level 5-----------------------*/ COPY ~spell_rev\sppr5##\sppr501.spl~ ~override~ // Animal Summoning II SAY NAME1 @151 SAY UNIDENTIFIED_DESC @152 COPY ~spell_rev\sppr5##\leopdisu.eff~ ~override~ COPY ~spell_rev\sppr5##\leopdisu.cre~ ~override~ SAY NAME1 @1040 SAY NAME2 @1040 COPY ~spell_rev\sppr5##\leopdisu.itm~ ~override~ COPY ~spell_rev\sppr5##\leopdisu.bcs~ ~override~ COPY ~spell_rev\sppr5##\dvspratt.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr502.spl~ ~override~ // Cure Mortal Wounds (disabled at lvl 5) SAY NAME1 @153 SAY UNIDENTIFIED_DESC @154 ADD_PROJECTILE ~spell_rev\projectles\dvflame.pro~ COPY ~spell_rev\sppr5##\sppr503.spl~ ~override~ // Flame Strike SAY NAME1 @155 SAY UNIDENTIFIED_DESC @156 SET "loop" = 7 WHILE (%loop% > 0) BEGIN WRITE_SHORT (0x98 + 0x28 * (%loop% - 1) ) %dvflame% SET "loop" = %loop% - 1 END COPY ~spell_rev\sppr5##\scrl62.itm~ ~override~ SAY NAME2 @155 SAY IDENTIFIED_DESC @156 COPY ~spell_rev\sppr5##\sppr504.spl~ ~override~ // Raise Dead SAY NAME1 @157 SAY UNIDENTIFIED_DESC @158 COPY ~spell_rev\sppr5##\scrl63.itm~ ~override~ SAY NAME2 @157 SAY IDENTIFIED_DESC @158 COPY ~spell_rev\sppr5##\sppr505.spl~ ~override~ // True Seeing SAY NAME1 @159 SAY UNIDENTIFIED_DESC @160 COPY ~spell_rev\sppr5##\sppr505d.spl~ ~override~ SAY NAME1 @159 COPY ~spell_rev\sppr5##\sppr506.spl~ ~override~ // Iron Skins SAY NAME1 @161 SAY UNIDENTIFIED_DESC @162 COPY ~spell_rev\sppr5##\sppr507.spl~ ~override~ // Champion's Strength SAY NAME1 @163 SAY UNIDENTIFIED_DESC @164 COPY ~spell_rev\sppr5##\scrl5e.itm~ ~override~ SAY NAME2 @163 SAY IDENTIFIED_DESC @164 COPY ~spell_rev\sppr5##\sppr508.spl~ ~override~ // Chaotic Commands SAY NAME1 @165 SAY UNIDENTIFIED_DESC @166 COPY ~spell_rev\sppr5##\scrl5f.itm~ ~override~ SAY NAME2 @165 SAY IDENTIFIED_DESC @166 COPY ~spell_rev\sppr5##\sppr509.spl~ ~override~ // Magic Resistance SAY NAME1 @167 SAY UNIDENTIFIED_DESC @168 COPY ~spell_rev\sppr5##\sppr510.spl~ ~override~ // Cause Mortal Wounds (disabled at lvl 5) SAY NAME1 @169 SAY UNIDENTIFIED_DESC @170 COPY ~spell_rev\sppr5##\sppr511.spl~ ~override~ // Slay Living SAY NAME1 @171 SAY UNIDENTIFIED_DESC @172 COPY ~spell_rev\sppr5##\slaylive.itm~ ~override~ ADD_PROJECTILE ~spell_rev\projectles\dvgcommd.pro~ COPY ~spell_rev\sppr5##\sppr512.spl~ ~override~ // Greater Command SAY NAME1 @173 SAY UNIDENTIFIED_DESC @174 WRITE_SHORT 0x98 %dvgcommd% COPY ~spell_rev\sppr5##\sppr512a.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr512b.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr512c.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr512d.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr512e.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr512f.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr512g.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr512h.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr512i.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr513.spl~ ~override~ // Righteous Fury (previously named Righteous Magic) SAY NAME1 @175 SAY UNIDENTIFIED_DESC @176 COPY ~spell_rev\sppr5##\dvmgchit.eff~ ~override~ // 1d6 magic damage on hit STRING_SET ~8272~ @133 // change portrait icon name into Righteous Fury ADD_PROJECTILE ~spell_rev\projectles\dvmscure.pro~ COPY ~spell_rev\sppr5##\sppr514.spl~ ~override~ // Mass Cure SAY NAME1 @177 SAY UNIDENTIFIED_DESC @178 SET "loop" = 12 WHILE (%loop% > 0) BEGIN WRITE_SHORT (0x98 + 0x28 * (%loop% - 1) ) %dvmscure% SET "loop" = %loop% - 1 END COPY ~spell_rev\sppr5##\sppr515.spl~ ~override~ // Undead Ward (disabled at lvl 5, active at lvl 3) COPY ~spell_rev\sppr5##\sppr516.spl~ ~override~ // Pixie Dust SAY NAME1 @179 SAY UNIDENTIFIED_DESC @180 COPY ~spell_rev\sppr5##\sppr517.spl~ ~override~ // Insect Plague SAY NAME1 @181 SAY UNIDENTIFIED_DESC @182 COPY ~spell_rev\sppr5##\sppr517a.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr517b.spl~ ~override~ COPY ~spell_rev\sppr5##\sppr519.spl~ ~override~ // Polymorph Other (added to druid's spells) SAY NAME1 @185 SAY UNIDENTIFIED_DESC @186 COPY ~spell_rev\sppr5##\dvsquir.itm~ ~override~ COPY ~spell_rev\sppr5##\sppr520.spl~ ~override~ // Protection from Acid (added to priest's spells) SAY NAME1 @187 SAY UNIDENTIFIED_DESC @188 COPY ~spell_rev\sppr5##\sppr521.spl~ ~override~ // Protection from Cold (added to priest's spells) SAY NAME1 @189 SAY UNIDENTIFIED_DESC @190 COPY ~spell_rev\sppr5##\sppr522.spl~ ~override~ // Protection from Electricity (disabled at lvl 4, active at lvl 5) SAY NAME1 @123 SAY UNIDENTIFIED_DESC @124 COPY ~spell_rev\sppr5##\sppr523.spl~ ~override~ // Protection from Fire (disabled at lvl 3, active at lvl 5) SAY NAME1 @81 SAY UNIDENTIFIED_DESC @82 COPY ~spell_rev\sppr5##\spja01.spl~ ~override~ // Harper's Call SAY NAME1 @2157 SAY UNIDENTIFIED_DESC @2158 COPY ~spell_rev\sppr5##\spja01a.eff~ ~override~ COPY ~spell_rev\sppr5##\spja01b.eff~ ~override~ COPY ~spell_rev\sppr5##\spja01c.eff~ ~override~ COPY ~spell_rev\sppr5##\spja01d.eff~ ~override~ COPY ~spell_rev\sppr5##\spja01e.eff~ ~override~ COPY ~spell_rev\sppr5##\spja01f.eff~ ~override~ /*-----------------------level 6-----------------------*/ COPY ~spell_rev\sppr6##\sppr601.spl~ ~override~ // Aerial Servant SAY NAME1 @191 SAY UNIDENTIFIED_DESC @192 COPY ~spell_rev\sppr6##\servsu.cre~ ~override~ COPY ~spell_rev\sppr6##\servsu.itm~ ~override~ COPY ~spell_rev\sppr6##\sppr602.spl~ ~override~ // Animal Summoning III SAY NAME1 @193 SAY UNIDENTIFIED_DESC @194 COPY ~spell_rev\sppr6##\beardisu.eff~ ~override~ COPY ~spell_rev\sppr6##\beardisu.cre~ ~override~ SAY NAME1 @1041 SAY NAME2 @1041 COPY ~spell_rev\sppr6##\beardisu.itm~ ~override~ COPY ~spell_rev\sppr6##\sppr603.spl~ ~override~ // Blade Barrier SAY NAME1 @195 SAY UNIDENTIFIED_DESC @196 COPY ~spell_rev\sppr6##\sppr603d.spl~ ~override~ COPY ~spell_rev\sppr6##\sppr603e.spl~ ~override~ COPY ~spell_rev\sppr6##\sppr698.spl~ ~override~ // Blade Barrier (AI's version) COPY ~spell_rev\sppr6##\sppr604.spl~ ~override~ // Conjure Animals SAY NAME1 @197 SAY UNIDENTIFIED_DESC @198 COPY ~spell_rev\sppr6##\sppr605.spl~ ~override~ // Conjure Fire Elemental SAY NAME1 @199 SAY UNIDENTIFIED_DESC @200 COPY ~spell_rev\sppr6##\sppr606.spl~ ~override~ // Fire Seeds SAY NAME1 @201 SAY UNIDENTIFIED_DESC @202 COPY ~spell_rev\sppr6##\sppr606d.spl~ ~override~ COPY ~spell_rev\sppr6##\fireseed.itm~ ~override~ SAY UNIDENTIFIED_DESC @1039 COPY_EXISTING ~bolt2.pro~ ~override~ WRITE_SHORT 0x204 110 WRITE_SHORT 0x206 110 COPY ~spell_rev\sppr6##\sppr607.spl~ ~override~ // Heal SAY NAME1 @203 SAY UNIDENTIFIED_DESC @204 COPY ~spell_rev\sppr6##\sppr608.spl~ ~override~ // Harm SAY NAME1 @205 SAY UNIDENTIFIED_DESC @206 COPY ~spell_rev\sppr6##\harm.itm~ ~override~ /* COPY ~spell_rev\sppr6##\sppr609.spl~ ~override~ // False Dawn SAY NAME1 @207 SAY UNIDENTIFIED_DESC @208 ADD_PROJECTILE ~spell_rev\projectles\dvfdawn.pro~ COPY ~spell_rev\sppr6##\sppr609e.spl~ ~override~ WRITE_SHORT 0x98 %dvfdawn% COPY ~spell_rev\sppr6##\sppr609f.spl~ ~override~ COPY ~spell_rev\sppr6##\sppr609.eff~ ~override~ COPY ~spell_rev\sppr6##\dawnvis2.eff~ ~override~ COPY ~spell_rev\sppr6##\dawndam2.eff~ ~override~ COPY ~spell_rev\sppr6##\dawnblnd.eff~ ~override~ */ COPY ~spell_rev\sppr6##\sppr610.spl~ ~override~ // Dolorous Decay SAY NAME1 @209 SAY UNIDENTIFIED_DESC @210 COPY ~spell_rev\sppr6##\dvddecay.eff~ ~override~ COPY ~spell_rev\sppr6##\sppr611.spl~ ~override~ // Wondrous Recall SAY NAME1 @211 SAY UNIDENTIFIED_DESC @212 COPY ~spell_rev\sppr6##\sppr612.spl~ ~override~ // Bolt of Glory SAY NAME1 @213 SAY UNIDENTIFIED_DESC @214 COPY ~spell_rev\sppr6##\boltdem.eff~ ~override~ COPY ~spell_rev\sppr6##\boltelem.eff~ ~override~ COPY ~spell_rev\sppr6##\boltprim.eff~ ~override~ COPY ~spell_rev\sppr6##\boltund.eff~ ~override~ COPY ~spell_rev\sppr6##\sppr613.spl~ ~override~ // Physical Mirror SAY NAME1 @215 SAY UNIDENTIFIED_DESC @216 COPY ~spell_rev\sppr6##\sppr614.spl~ ~override~ // Sol's Searing Orb SAY NAME1 @217 SAY UNIDENTIFIED_DESC @218 COPY ~spell_rev\sppr6##\sorb.itm~ ~override~ COPY ~spell_rev\sppr6##\sorb12.itm~ ~override~ COPY ~spell_rev\sppr6##\sorb13.itm~ ~override~ COPY ~spell_rev\sppr6##\sorb14.itm~ ~override~ COPY ~spell_rev\sppr6##\sorb15.itm~ ~override~ COPY ~spell_rev\sppr6##\sorb16.itm~ ~override~ COPY ~spell_rev\sppr6##\sorb17.itm~ ~override~ COPY ~spell_rev\sppr6##\sorb18.itm~ ~override~ COPY ~spell_rev\sppr6##\sorb19.itm~ ~override~ COPY ~spell_rev\sppr6##\sorb20.itm~ ~override~ COPY ~spell_rev\sppr6##\sorb20.itm~ ~override~ COPY ~spell_rev\sppr6##\dvsol5d6.eff~ ~override~ COPY ~spell_rev\sppr6##\dvsol6d6.eff~ ~override~ COPY ~spell_rev\sppr6##\dvsol7d6.eff~ ~override~ COPY ~spell_rev\sppr6##\dvsol8d6.eff~ ~override~ COPY ~spell_rev\sppr6##\dvsol9d6.eff~ ~override~ COPY ~spell_rev\sppr6##\dvsol0d6.eff~ ~override~ COPY ~spell_rev\sppr6##\sppr620.spl~ ~override~ // Control Undead (added to cleric's spells) SAY NAME1 @223 SAY UNIDENTIFIED_DESC @224 COPY ~spell_rev\sppr6##\sppr621.spl~ ~override~ // Conjure Air Elemental (added to druid's spells) SAY NAME1 @219 SAY UNIDENTIFIED_DESC @220 COPY ~spell_rev\sppr6##\sppr622.spl~ ~override~ // Conjure Earth Elemental (enabled at level 6, disabled at level 7) SAY NAME1 @221 SAY UNIDENTIFIED_DESC @222 COPY ~spell_rev\sppr6##\sppr623.spl~ ~override~ // Create Undead (added to cleric's spells) SAY NAME1 @225 SAY UNIDENTIFIED_DESC @226 /*-----------------------level 7-----------------------*/ COPY ~spell_rev\sppr7##\sppr701.spl~ ~override~ // Shield of the Archons SAY NAME1 @231 SAY UNIDENTIFIED_DESC @232 COPY ~spell_rev\sppr7##\sppr702.spl~ ~override~ // Summon Shambling Mound (replaces Conjure Earth Elemental) SAY NAME1 @233 SAY UNIDENTIFIED_DESC @234 COPY ~spell_rev\sppr7##\mound.eff~ ~override~ COPY ~spell_rev\sppr7##\smoundsu.cre~ ~override~ COPY ~spell_rev\sppr7##\smoundsu.itm~ ~override~ COPY ~spell_rev\sppr7##\dvsmound.spl~ ~override~ COPY ~spell_rev\sppr7##\dvsmound.bcs~ ~override~ COPY ~spell_rev\sppr7##\sppr703.spl~ ~override~ // Cacofiend (replaces Gate) SAY NAME1 @235 SAY UNIDENTIFIED_DESC @236 ADD_PROJECTILE ~spell_rev\projectles\dvnatbty.pro~ COPY ~spell_rev\sppr7##\sppr704.spl~ ~override~ // Nature's Beauty SAY NAME1 @237 SAY UNIDENTIFIED_DESC @238 WRITE_SHORT 0x98 %dvnatbty% COPY ~spell_rev\sppr7##\sppr705.spl~ ~override~ // Fire Storm SAY NAME1 @239 SAY UNIDENTIFIED_DESC @240 COPY ~spell_rev\sppr7##\dvfirest.eff~ ~override~ COPY ~spell_rev\sppr7##\sppr705d.spl~ ~override~ COPY ~spell_rev\sppr7##\sppr705e.spl~ ~override~ COPY ~spell_rev\sppr7##\sppr706.spl~ ~override~ // Symbol of Weakness SAY NAME1 @241 SAY UNIDENTIFIED_DESC @242 COPY ~spell_rev\sppr7##\a#spain.bam~ ~override~ COPY ~spell_rev\sppr7##\a#ispain.vvc~ ~override~ COPY ~spell_rev\sppr7##\sppr707.spl~ ~override~ // Sunray SAY NAME1 @243 SAY UNIDENTIFIED_DESC @244 COPY ~spell_rev\sppr7##\sppr707f.spl~ ~override~ COPY ~spell_rev\sppr7##\sppr707.eff~ ~override~ COPY ~spell_rev\sppr7##\sppr708.spl~ ~override~ // Finger of Death SAY NAME1 @245 SAY UNIDENTIFIED_DESC @246 ADD_PROJECTILE ~spell_rev\projectles\dvschaos.pro~ COPY ~spell_rev\sppr7##\sppr709.spl~ ~override~ // Sphere of Chaos (replaces Confusion) SAY NAME1 @297 SAY UNIDENTIFIED_DESC @298 WRITE_SHORT 0x98 %dvschaos% COPY ~spell_rev\sppr7##\sppr710.spl~ ~override~ // Holy Word SAY NAME1 @247 SAY UNIDENTIFIED_DESC @248 COPY ~spell_rev\sppr7##\dvhoword.eff~ ~override~ /* COPY ~spell_rev\sppr7##\sppr711.spl~ ~override~ // Regeneration SAY NAME1 @249 SAY UNIDENTIFIED_DESC @250 */ COPY ~spell_rev\sppr7##\sppr712.spl~ ~override~ // Resurrection SAY NAME1 @251 SAY UNIDENTIFIED_DESC @252 /* COPY ~spell_rev\sppr7##\sppr713.spl~ ~override~ // Greater Restoration SAY NAME1 @253 SAY UNIDENTIFIED_DESC @254 */ COPY ~spell_rev\sppr7##\sppr715.spl~ ~override~ // Unholy Word SAY NAME1 @255 SAY UNIDENTIFIED_DESC @256 COPY ~spell_rev\sppr7##\dvunword.eff~ ~override~ COPY ~spell_rev\sppr7##\sppr717.spl~ ~override~ // Creeping Doom SAY NAME1 @257 SAY UNIDENTIFIED_DESC @258 COPY ~spell_rev\sppr7##\sppr717a.spl~ ~override~ COPY ~spell_rev\sppr7##\sppr717b.spl~ ~override~ COPY ~spell_rev\sppr7##\sppr718.spl~ ~override~ // Symbol of Stunning SAY NAME1 @259 SAY UNIDENTIFIED_DESC @260 COPY ~spell_rev\sppr7##\a#shope.bam~ ~override~ COPY ~spell_rev\sppr7##\a#ishope.vvc~ ~override~ COPY ~spell_rev\sppr7##\sppr719.spl~ ~override~ // Symbol of Death SAY NAME1 @295 SAY UNIDENTIFIED_DESC @296 COPY ~spell_rev\sppr7##\sppr720.spl~ ~override~ // Earthquake SAY NAME1 @261 SAY UNIDENTIFIED_DESC @262 COPY ~spell_rev\sppr7##\sppr720d.spl~ ~override~ COPY ~spell_rev\sppr7##\sppr720e.spl~ ~override~ COPY ~spell_rev\sppr7##\dvquake.eff~ ~override~ /*-----------------------level 8-----------------------*/ COPY ~spell_rev\sppr7##\sppr721.spl~ ~override~ // Energy Blades SAY NAME1 @271 SAY UNIDENTIFIED_DESC @272 COPY ~spell_rev\sppr7##\sppr722.spl~ ~override~ // Storm of Vengeance SAY NAME1 @273 SAY UNIDENTIFIED_DESC @274 COPY ~spell_rev\sppr7##\sppr723.spl~ ~override~ // Elemental Swarm SAY NAME1 @275 SAY UNIDENTIFIED_DESC @276 COPY ~spell_rev\sppr7##\sppr724.spl~ ~override~ // Elemental Prince Call SAY NAME1 @277 SAY UNIDENTIFIED_DESC @278 COPY ~spell_rev\sppr7##\elemchan.bcs~ ~override~ COPY ~spell_rev\sppr7##\elemchan.cre~ ~override~ COPY ~spell_rev\sppr7##\sumchan.eff~ ~override~ COPY ~spell_rev\sppr7##\elemchan.itm~ ~override~ COPY ~spell_rev\sppr7##\elemsunn.bcs~ ~override~ COPY ~spell_rev\sppr7##\elemsunn.cre~ ~override~ COPY ~spell_rev\sppr7##\sumsunn.eff~ ~override~ COPY ~spell_rev\sppr7##\elemsunn.itm~ ~override~ COPY ~spell_rev\sppr7##\dvsunnis.spl~ ~override~ COPY ~spell_rev\sppr7##\elemzaam.bcs~ ~override~ COPY ~spell_rev\sppr7##\elemzaam.cre~ ~override~ COPY ~spell_rev\sppr7##\sumzaam.eff~ ~override~ COPY ~spell_rev\sppr7##\elemzaam.itm~ ~override~ COPY ~spell_rev\sppr7##\dvzaaman.spl~ ~override~ COPY ~spell_rev\sppr7##\sppr725.spl~ ~override~ // Globe of Blades SAY NAME1 @279 SAY UNIDENTIFIED_DESC @280 COPY ~spell_rev\sppr7##\sppr725d.spl~ ~override~ COPY ~spell_rev\sppr7##\sppr725e.spl~ ~override~ COPY ~spell_rev\sppr7##\sppr726.spl~ ~override~ // Summon Deva SAY NAME1 @281 SAY UNIDENTIFIED_DESC @282 COPY ~spell_rev\sppr7##\devagood.cre~ ~override~ COPY ~spell_rev\sppr7##\dvdevag.bcs~ ~override~ COPY ~spell_rev\sppr7##\dvdevaga.itm~ ~override~ COPY ~spell_rev\sppr7##\dvdevagr.itm~ ~override~ COPY ~spell_rev\sppr7##\dvdevagw.itm~ ~override~ COPY ~spell_rev\sppr7##\dw#devag.spl~ ~override~ // SCSII Summon Deva COPY ~spell_rev\sppr7##\sppr727.spl~ ~override~ // Summon Fallen Deva SAY NAME1 @283 SAY UNIDENTIFIED_DESC @284 COPY ~spell_rev\sppr7##\devaevil.cre~ ~override~ COPY ~spell_rev\sppr7##\dvdevae.bcs~ ~override~ COPY ~spell_rev\sppr7##\dvdevaea.itm~ ~override~ COPY ~spell_rev\sppr7##\dvdevaer.itm~ ~override~ COPY ~spell_rev\sppr7##\dvdevaew.itm~ ~override~ COPY ~spell_rev\sppr7##\dw#devae.spl~ ~override~ // SCSII Summon Fallen Deva COPY ~spell_rev\sppr7##\sppr728.spl~ ~override~ // Implosion SAY NAME1 @285 SAY UNIDENTIFIED_DESC @286 COPY ~spell_rev\sppr7##\dvimplo.bam~ ~override~ COPY ~spell_rev\sppr7##\dvimplo.eff~ ~override~ COPY ~spell_rev\sppr7##\dvimplo.vvc~ ~override~ COPY ~spell_rev\sppr7##\sppr729.spl~ ~override~ // Mass Raise Dead SAY NAME1 @287 SAY UNIDENTIFIED_DESC @288 COPY ~spell_rev\sppr7##\sppr730.spl~ ~override~ // Aura of Flaming Death SAY NAME1 @289 SAY UNIDENTIFIED_DESC @290 COPY ~spell_rev\sppr7##\sppr730d.spl~ ~override~ SAY NAME1 @289 COPY ~spell_rev\sppr7##\sppr731.spl~ ~override~ // Fire Elemental Transformation SAY NAME1 @291 SAY UNIDENTIFIED_DESC @292 COPY ~spell_rev\sppr7##\sppr731.itm~ ~override~ COPY ~spell_rev\sppr7##\sppr732.spl~ ~override~ // Earth Elemental Transformation SAY NAME1 @293 SAY UNIDENTIFIED_DESC @294 COPY ~spell_rev\sppr7##\sppr732.itm~ ~override~ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /* -------------------- ARCANE SPELLS -------------------------*/ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /*---------------------level 1-----------------------*/ COPY_EXISTING ~grease.pro~ ~override~ // Grease projectile WRITE_SHORT 0x206 110 COPY ~spell_rev\spwi1##\spwi101.spl~ ~override~ SAY NAME1 @401 SAY UNIDENTIFIED_DESC @402 COPY ~spell_rev\spwi1##\scrl66.itm~ ~override~ SAY NAME2 @401 SAY IDENTIFIED_DESC @402 COPY ~spell_rev\spwi1##\spwi101i.eff~ ~override~ COPY ~spell_rev\spwi1##\spwi102.spl~ ~override~ // Armor SAY NAME1 @403 SAY UNIDENTIFIED_DESC @404 COPY ~spell_rev\spwi1##\scrl67.itm~ ~override~ SAY NAME2 @403 SAY IDENTIFIED_DESC @404 ADD_PROJECTILE ~spell_rev\projectles\dvburnhd.pro~ COPY ~spell_rev\spwi1##\spwi103.spl~ ~override~ // Burning Hands SAY NAME1 @405 SAY UNIDENTIFIED_DESC @406 SET "loop" = 5 WHILE (%loop% > 0) BEGIN WRITE_SHORT (0x98 + 0x28 * (%loop% - 1) ) %dvburnhd% SET "loop" = %loop% - 1 END COPY ~spell_rev\spwi1##\scrl68.itm~ ~override~ SAY NAME2 @405 SAY IDENTIFIED_DESC @406 COPY ~spell_rev\spwi1##\spwi104.spl~ ~override~ // Charm Person SAY NAME1 @407 SAY UNIDENTIFIED_DESC @408 COPY ~spell_rev\spwi1##\scrl69.itm~ ~override~ SAY NAME2 @407 SAY IDENTIFIED_DESC @408 COPY ~spell_rev\spwi1##\spwi105.spl~ ~override~ // Color Spray SAY NAME1 @409 SAY UNIDENTIFIED_DESC @410 COPY ~spell_rev\spwi1##\scrl70.itm~ ~override~ SAY NAME2 @409 SAY IDENTIFIED_DESC @410 COPY ~spell_rev\projectles\cspray.pro~ ~override~ COPY ~spell_rev\spwi1##\spwi106.spl~ ~override~ // Blindness SAY NAME1 @411 SAY UNIDENTIFIED_DESC @412 COPY ~spell_rev\spwi1##\scrl71.itm~ ~override~ SAY NAME2 @411 SAY IDENTIFIED_DESC @412 COPY ~spell_rev\spwi1##\spwi107.spl~ ~override~ // Friends SAY NAME1 @413 SAY UNIDENTIFIED_DESC @414 COPY ~spell_rev\spwi1##\scrl72.itm~ ~override~ SAY NAME2 @413 SAY IDENTIFIED_DESC @414 COPY ~spell_rev\spwi1##\spwi108.spl~ ~override~ // Protection from Petrification SAY NAME1 @415 SAY UNIDENTIFIED_DESC @416 COPY ~spell_rev\spwi1##\scrl73.itm~ ~override~ SAY NAME2 @415 SAY IDENTIFIED_DESC @416 COPY ~spell_rev\spwi1##\spwi110.spl~ ~override~ // Identify SAY NAME1 @417 SAY UNIDENTIFIED_DESC @418 COPY ~spell_rev\spwi1##\scrl75.itm~ ~override~ SAY NAME2 @417 SAY IDENTIFIED_DESC @418 COPY ~spell_rev\spwi1##\spwi111.spl~ ~override~ // True Strike (replaces Infravision) SAY NAME1 @419 SAY UNIDENTIFIED_DESC @420 COPY ~spell_rev\spwi1##\scrl76.itm~ ~override~ SAY NAME2 @419 SAY IDENTIFIED_DESC @420 COPY ~spell_rev\spwi1##\spwi112.spl~ ~override~ // Magic Missile SAY NAME1 @421 SAY UNIDENTIFIED_DESC @422 COPY ~spell_rev\spwi1##\scrl77.itm~ ~override~ SAY NAME2 @421 SAY IDENTIFIED_DESC @422 COPY ~spell_rev\spwi1##\spwi113.spl~ ~override~ // Protection from Evil SAY NAME1 @423 SAY UNIDENTIFIED_DESC @424 COPY ~spell_rev\spwi1##\scrl78.itm~ ~override~ SAY NAME2 @423 SAY IDENTIFIED_DESC @424 COPY ~spell_rev\spwi1##\spwi114.spl~ ~override~ // Shield SAY NAME1 @425 SAY UNIDENTIFIED_DESC @426 COPY ~spell_rev\spwi1##\scrl79.itm~ ~override~ SAY NAME2 @425 SAY IDENTIFIED_DESC @426 COPY ~spell_rev\spwi1##\spwi115.spl~ ~override~ // Shocking Grasp SAY NAME1 @427 SAY UNIDENTIFIED_DESC @428 COPY ~spell_rev\spwi1##\scrl80.itm~ ~override~ SAY NAME2 @427 SAY IDENTIFIED_DESC @428 COPY ~spell_rev\spwi1##\sgrasp01.itm~ ~override~ COPY ~spell_rev\spwi1##\sgrasp02.itm~ ~override~ COPY ~spell_rev\spwi1##\sgrasp03.itm~ ~override~ COPY ~spell_rev\spwi1##\sgrasp04.itm~ ~override~ COPY ~spell_rev\spwi1##\sgrasp05.itm~ ~override~ COPY ~spell_rev\spwi1##\spwi116.spl~ ~override~ // Sleep SAY NAME1 @429 SAY UNIDENTIFIED_DESC @430 COPY ~spell_rev\spwi1##\scrl81.itm~ ~override~ SAY NAME2 @429 SAY IDENTIFIED_DESC @430 COPY ~spell_rev\spwi1##\spwi116d.spl~ ~override~ COPY ~spell_rev\spwi1##\spwi116i.eff~ ~override~ COPY ~spell_rev\spwi1##\spwi117.spl~ ~override~ // Chill Touch SAY NAME1 @431 SAY UNIDENTIFIED_DESC @432 COPY ~spell_rev\spwi1##\scrl82.itm~ ~override~ SAY NAME2 @431 SAY IDENTIFIED_DESC @432 COPY ~spell_rev\spwi1##\chillt.itm~ ~override~ COPY ~spell_rev\spwi1##\spwi118.spl~ ~override~ // Chromatic Orb SAY NAME1 @433 SAY UNIDENTIFIED_DESC @434 COPY ~spell_rev\spwi1##\scrl83.itm~ ~override~ SAY NAME2 @433 SAY IDENTIFIED_DESC @434 COPY ~spell_rev\spwi1##\spwi118a.spl~ ~override~ SAY NAME1 @1001 COPY ~spell_rev\spwi1##\spwi118b.spl~ ~override~ SAY NAME1 @1002 COPY ~spell_rev\spwi1##\spwi118c.spl~ ~override~ SAY NAME1 @1003 COPY ~spell_rev\spwi1##\spwi118d.spl~ ~override~ SAY NAME1 @1004 COPY ~spell_rev\spwi1##\spwi118e.spl~ ~override~ SAY NAME1 @1005 COPY ~spell_rev\spwi1##\spwi118f.spl~ ~override~ SAY NAME1 @1006 COPY ~spell_rev\spwi1##\spwi118g.spl~ ~override~ SAY NAME1 @1007 COPY ~spell_rev\spwi1##\spwi118z.spl~ ~override~ COPY ~spell_rev\spwi1##\spchrorb.bam~ ~override~ COPY ~spell_rev\spwi1##\chromorb.pro~ ~override~ COPY ~spell_rev\spwi1##\spwi119.spl~ ~override~ // Larloch's Minor Drain SAY NAME1 @435 SAY UNIDENTIFIED_DESC @436 COPY ~spell_rev\spwi1##\scrl84.itm~ ~override~ SAY NAME2 @435 SAY IDENTIFIED_DESC @436 COPY ~spell_rev\spwi1##\spwi120.spl~ ~override~ // Reflected Image SAY NAME1 @437 SAY UNIDENTIFIED_DESC @438 COPY ~spell_rev\spwi1##\scrl5u.itm~ ~override~ SAY NAME2 @437 SAY IDENTIFIED_DESC @438 COPY ~spell_rev\spwi1##\spwi120d.spl~ ~override~ COPY ~spell_rev\spwi1##\spwi123.spl~ ~override~ // Find Familiar SAY NAME1 @439 SAY UNIDENTIFIED_DESC @440 COPY ~spell_rev\spwi1##\scrl6d.itm~ ~override~ SAY NAME2 @439 SAY IDENTIFIED_DESC @440 COPY ~spell_rev\spwi1##\famcat.cre~ ~override~ COPY ~spell_rev\spwi1##\famcat.itm~ ~override~ SAY UNIDENTIFIED_DESC @1008 COPY ~spell_rev\spwi1##\famcat25.cre~ ~override~ COPY ~spell_rev\spwi1##\famcat25.itm~ ~override~ SAY UNIDENTIFIED_DESC @1009 COPY ~spell_rev\spwi1##\famdust.cre~ ~override~ COPY ~spell_rev\spwi1##\famdust.itm~ ~override~ SAY UNIDENTIFIED_DESC @1010 COPY ~spell_rev\spwi1##\famdus25.cre~ ~override~ COPY ~spell_rev\spwi1##\famdus25.itm~ ~override~ SAY UNIDENTIFIED_DESC @1011 COPY ~spell_rev\spwi1##\famfair.cre~ ~override~ COPY ~spell_rev\spwi1##\famfair.itm~ ~override~ SAY UNIDENTIFIED_DESC @1012 COPY ~spell_rev\spwi1##\famfai25.cre~ ~override~ COPY ~spell_rev\spwi1##\famfai25.itm~ ~override~ SAY UNIDENTIFIED_DESC @1013 COPY ~spell_rev\spwi1##\famfer.cre~ ~override~ COPY ~spell_rev\spwi1##\famfer.itm~ ~override~ SAY UNIDENTIFIED_DESC @1014 COPY ~spell_rev\spwi1##\famfer25.cre~ ~override~ COPY ~spell_rev\spwi1##\famfer25.itm~ ~override~ SAY UNIDENTIFIED_DESC @1015 COPY ~spell_rev\spwi1##\famimp.cre~ ~override~ COPY ~spell_rev\spwi1##\famimp.itm~ ~override~ SAY UNIDENTIFIED_DESC @1016 COPY ~spell_rev\spwi1##\famimp25.cre~ ~override~ COPY ~spell_rev\spwi1##\famimp25.itm~ ~override~ SAY UNIDENTIFIED_DESC @1017 COPY ~spell_rev\spwi1##\fampsd.cre~ ~override~ COPY ~spell_rev\spwi1##\fampsd.itm~ ~override~ SAY UNIDENTIFIED_DESC @1018 COPY ~spell_rev\spwi1##\fampsd25.cre~ ~override~ COPY ~spell_rev\spwi1##\fampsd25.itm~ ~override~ SAY UNIDENTIFIED_DESC @1019 COPY ~spell_rev\spwi1##\famquas.cre~ ~override~ COPY ~spell_rev\spwi1##\famquas.itm~ ~override~ SAY UNIDENTIFIED_DESC @1020 COPY ~spell_rev\spwi1##\famqua25.cre~ ~override~ COPY ~spell_rev\spwi1##\famqua25.itm~ ~override~ SAY UNIDENTIFIED_DESC @1021 COPY ~spell_rev\spwi1##\famrab.cre~ ~override~ COPY ~spell_rev\spwi1##\famrab.itm~ ~override~ SAY UNIDENTIFIED_DESC @1022 COPY ~spell_rev\spwi1##\famrab25.cre~ ~override~ COPY ~spell_rev\spwi1##\famrab25.itm~ ~override~ SAY UNIDENTIFIED_DESC @1023 COPY ~spell_rev\spwi1##\impclaw.itm~ ~override~ COPY ~spell_rev\spwi1##\mepfir.itm~ ~override~ COPY ~spell_rev\spwi1##\psdclaw.itm~ ~override~ COPY ~spell_rev\spwi1##\quasclaw.itm~ ~override~ COPY ~spell_rev\spwi1##\spwi124.spl~ ~override~ // Nahal's Reckless Dweomer SAY NAME1 @441 SAY UNIDENTIFIED_DESC @442 /* COPY ~spell_rev\spwi1##\spwi125.spl~ ~override~ // Spook SAY NAME1 @443 SAY UNIDENTIFIED_DESC @444 COPY ~spell_rev\spwi1##\scrla6.itm~ ~override~ SAY NAME2 @443 SAY IDENTIFIED_DESC @444 COPY ~spell_rev\spwi1##\spwi125i.eff~ ~override~ */ /*--------------------level 2----------------------*/ COPY ~spell_rev\spwi2##\spwi201.spl~ ~override~ // Blur SAY NAME1 @451 SAY UNIDENTIFIED_DESC @452 COPY ~spell_rev\spwi2##\scrl85.itm~ ~override~ SAY NAME2 @451 SAY IDENTIFIED_DESC @452 COPY ~spell_rev\spwi2##\spwi202.spl~ ~override~ // Detect Alignment (replaces Detect Evil) SAY NAME1 @453 SAY UNIDENTIFIED_DESC @454 COPY ~spell_rev\spwi2##\scrl86.itm~ ~override~ SAY NAME2 @453 SAY IDENTIFIED_DESC @454 COPY ~spell_rev\spwi2##\spwi203.spl~ ~override~ // Detect Invisibility SAY NAME1 @455 SAY UNIDENTIFIED_DESC @456 COPY ~spell_rev\spwi2##\scrl87.itm~ ~override~ SAY NAME2 @455 SAY IDENTIFIED_DESC @456 COPY ~spell_rev\spwi2##\spwi203d.spl~ ~override~ SAY NAME1 @455 COPY ~spell_rev\spwi2##\spwi205.spl~ ~override~ // Horror SAY NAME1 @457 SAY UNIDENTIFIED_DESC @458 COPY ~spell_rev\spwi2##\scrl89.itm~ ~override~ SAY NAME2 @457 SAY IDENTIFIED_DESC @458 COPY ~spell_rev\spwi2##\spwi205i.eff~ ~override~ COPY ~spell_rev\spwi2##\spwi206.spl~ ~override~ // Invisibility SAY NAME1 @459 SAY UNIDENTIFIED_DESC @460 COPY ~spell_rev\spwi2##\scrl90.itm~ ~override~ SAY NAME2 @459 SAY IDENTIFIED_DESC @460 COPY ~spell_rev\spwi2##\spwi207.spl~ ~override~ // Knock SAY NAME1 @461 SAY UNIDENTIFIED_DESC @462 COPY ~spell_rev\spwi2##\scrl91.itm~ ~override~ SAY NAME2 @461 SAY IDENTIFIED_DESC @462 COPY ~spell_rev\spwi2##\spwi208.spl~ ~override~ // Know Opponent (replaces Know Alignment) SAY NAME1 @463 SAY UNIDENTIFIED_DESC @464 COPY ~spell_rev\spwi2##\scrl92.itm~ ~override~ SAY NAME2 @463 SAY IDENTIFIED_DESC @464 COPY ~spell_rev\spwi2##\dvknow2.eff~ ~override~ COPY ~spell_rev\spwi2##\spwi209.spl~ ~override~ // Luck SAY NAME1 @465 SAY UNIDENTIFIED_DESC @466 COPY ~spell_rev\spwi2##\scrl93.itm~ ~override~ SAY NAME2 @465 SAY IDENTIFIED_DESC @466 COPY ~spell_rev\spwi2##\spwi210.spl~ ~override~ // Resist Fear SAY NAME1 @467 SAY UNIDENTIFIED_DESC @468 COPY ~spell_rev\spwi2##\scrl94.itm~ ~override~ SAY NAME2 @467 SAY IDENTIFIED_DESC @468 /* COPY ~spell_rev\spwi2##\spwi211.spl~ ~override~ // Melf's Acid Arrow SAY NAME1 @469 SAY UNIDENTIFIED_DESC @470 COPY ~spell_rev\spwi2##\scrl95.itm~ ~override~ SAY NAME2 @469 SAY IDENTIFIED_DESC @470 */ COPY ~spell_rev\spwi2##\spwi212.spl~ ~override~ // Mirror Image SAY NAME1 @471 SAY UNIDENTIFIED_DESC @472 COPY ~spell_rev\spwi2##\scrl96.itm~ ~override~ SAY NAME2 @471 SAY IDENTIFIED_DESC @472 ADD_PROJECTILE ~spell_rev\projectles\dvstink.pro~ COPY ~spell_rev\spwi2##\spwi213.spl~ ~override~ // Stinking Cloud SAY NAME1 @473 SAY UNIDENTIFIED_DESC @474 WRITE_SHORT 0x98 %dvstink% SET dvstink -= 1 APPEND ~clearair.2da~ ~Stink Cloud %dvstink%~ COPY ~spell_rev\spwi2##\scrl97.itm~ ~override~ SAY NAME2 @473 SAY IDENTIFIED_DESC @474 COPY ~spell_rev\spwi2##\spwi213i.eff~ ~override~ COPY ~spell_rev\spwi2##\spwi214.spl~ ~override~ // Strength SAY NAME1 @475 SAY UNIDENTIFIED_DESC @476 COPY ~spell_rev\spwi2##\scrl98.itm~ ~override~ SAY NAME2 @475 SAY IDENTIFIED_DESC @476 COPY_EXISTING ~web.pro~ ~override~ // Web projectile WRITE_SHORT 0x206 190 COPY ~spell_rev\spwi2##\spwi215.spl~ ~override~ // Web SAY NAME1 @477 SAY UNIDENTIFIED_DESC @478 COPY ~spell_rev\spwi2##\scrl99.itm~ ~override~ SAY NAME2 @477 SAY IDENTIFIED_DESC @478 COPY ~spell_rev\spwi2##\spwi215i.eff~ ~override~ COPY ~spell_rev\spwi2##\spwi217.spl~ ~override~ // Agannazar's Scorcher SAY NAME1 @479 SAY UNIDENTIFIED_DESC @480 COPY ~spell_rev\spwi2##\scrl1b.itm~ ~override~ SAY NAME2 @479 SAY IDENTIFIED_DESC @480 COPY ~spell_rev\spwi2##\spwi218.spl~ ~override~ // Ghoul Touch SAY NAME1 @481 SAY UNIDENTIFIED_DESC @482 COPY ~spell_rev\spwi2##\scrl1c.itm~ ~override~ SAY NAME2 @481 SAY IDENTIFIED_DESC @482 COPY ~spell_rev\spwi2##\ghoult.itm~ ~override~ COPY ~spell_rev\spwi2##\spwi219.spl~ ~override~ // Vocalize SAY NAME1 @483 SAY UNIDENTIFIED_DESC @484 COPY ~spell_rev\spwi2##\scrl3g.itm~ ~override~ SAY NAME2 @483 SAY IDENTIFIED_DESC @484 COPY ~spell_rev\spwi2##\spwi220.spl~ ~override~ // Power Word Sleep SAY NAME1 @485 SAY UNIDENTIFIED_DESC @486 COPY ~spell_rev\spwi2##\scrl6e.itm~ ~override~ SAY NAME2 @485 SAY IDENTIFIED_DESC @486 COPY ~spell_rev\spwi2##\spwi220i.eff~ ~override~ COPY ~spell_rev\spwi2##\spwi221.spl~ ~override~ // Ray of Enfeeblement SAY NAME1 @487 SAY UNIDENTIFIED_DESC @488 COPY ~spell_rev\spwi2##\scrl6f.itm~ ~override~ SAY NAME2 @487 SAY IDENTIFIED_DESC @488 /* COPY ~spell_rev\spwi2##\spwi222.spl~ ~override~ // Chaos Shield SAY NAME1 @489 SAY UNIDENTIFIED_DESC @490 */ COPY ~spell_rev\spwi2##\spwi223.spl~ ~override~ // Deafness SAY NAME1 @491 SAY UNIDENTIFIED_DESC @492 COPY ~spell_rev\spwi2##\scrla2.itm~ ~override~ SAY NAME2 @491 SAY IDENTIFIED_DESC @492 /* ADD_PROJECTILE ~spell_rev\projectles\dvgldust.pro~ COPY ~spell_rev\spwi2##\spwi224.spl~ ~override~ // Glitterdust SAY NAME1 @493 SAY UNIDENTIFIED_DESC @494 WRITE_SHORT 0x98 %dvgldust% COPY ~spell_rev\spwi2##\scrla3.itm~ ~override~ SAY NAME2 @493 SAY IDENTIFIED_DESC @494 COPY ~spell_rev\spwi2##\spwi224d.spl~ ~override~ */ /* uncomment the lines below to allow those affected by Glitterdust to turn invisible */ /* COPY ~spell_rev\spwi2##\nerfed_spwi224.spl~ ~override\spwi224.spl~ Glitterdust SAY NAME1 @493 SAY UNIDENTIFIED_DESC @494000 WRITE_SHORT 0x98 %dvgldust% COPY ~spell_rev\spwi2##\scrla3.itm~ ~override~ SAY NAME2 @493 SAY IDENTIFIED_DESC @494000 */ /*-----------------------level 3-----------------------*/ COPY ~spell_rev\spwi3##\spwi301.spl~ ~override~ // Clairvoyance SAY NAME1 @501 SAY UNIDENTIFIED_DESC @502 COPY ~spell_rev\spwi3##\scrl1d.itm~ ~override~ SAY NAME2 @501 SAY IDENTIFIED_DESC @502 COPY ~spell_rev\spwi3##\spwi302.spl~ ~override~ // Remove Magic SAY NAME1 @503 SAY UNIDENTIFIED_DESC @504 COPY ~spell_rev\spwi3##\scrla7.itm~ ~override~ SAY NAME2 @503 SAY IDENTIFIED_DESC @504 ADD_PROJECTILE ~spell_rev\projectles\dvfarrow.pro~ COPY ~spell_rev\spwi3##\spwi303.spl~ ~override~ // Flame Arrow SAY NAME1 @505 SAY UNIDENTIFIED_DESC @506 COPY ~spell_rev\spwi3##\scrl1f.itm~ ~override~ SAY NAME2 @505 SAY IDENTIFIED_DESC @506 COPY ~spell_rev\spwi3##\spwi303a.spl~ ~override~ WRITE_SHORT 0x98 %dvfarrow% COPY ~spell_rev\spwi3##\spwi303b.spl~ ~override~ WRITE_SHORT 0x98 %dvfarrow% COPY ~spell_rev\spwi3##\spwi303c.spl~ ~override~ WRITE_SHORT 0x98 %dvfarrow% COPY ~spell_rev\spwi3##\spwi303d.spl~ ~override~ WRITE_SHORT 0x98 %dvfarrow% COPY ~spell_rev\spwi3##\spwi303e.spl~ ~override~ /* COPY ~spell_rev\spwi3##\spwi304.spl~ ~override~ // Fireball SAY NAME1 @507 SAY UNIDENTIFIED_DESC @508 COPY ~spell_rev\spwi3##\scrl1g.itm~ ~override~ SAY NAME2 @507 SAY IDENTIFIED_DESC @508 */ /* COPY ~spell_rev\spwi3##\spwi305.spl~ ~override~ // Haste SAY NAME1 @509 SAY UNIDENTIFIED_DESC @510 COPY ~spell_rev\spwi3##\scrl1h.itm~ ~override~ SAY NAME2 @509 SAY IDENTIFIED_DESC @510 COPY ~spell_rev\spwi3##\spwi305d.spl~ ~override~ */ COPY ~spell_rev\spwi3##\spwi306.spl~ ~override~ // Hold Person SAY NAME1 @511 SAY UNIDENTIFIED_DESC @512 COPY ~spell_rev\spwi3##\scrl1i.itm~ ~override~ SAY NAME2 @511 SAY IDENTIFIED_DESC @512 COPY ~spell_rev\spwi3##\spwi307.spl~ ~override~ // Invisibility Sphere (previously named Invisibility 10' Radius) SAY NAME1 @513 SAY UNIDENTIFIED_DESC @514 COPY ~spell_rev\spwi3##\scrl1j.itm~ ~override~ SAY NAME2 @513 SAY IDENTIFIED_DESC @514 /* COPY ~spell_rev\spwi3##\spwi308.spl~ ~override~ // Lightning Bolt SAY NAME1 @515 SAY UNIDENTIFIED_DESC @516 COPY ~spell_rev\spwi3##\scrl1k.itm~ ~override~ SAY NAME2 @515 SAY IDENTIFIED_DESC @516 */ COPY ~spell_rev\spwi3##\spwi309.spl~ ~override~ // Monster Summoning I SAY NAME1 @517 SAY UNIDENTIFIED_DESC @518 COPY ~spell_rev\spwi3##\scrl1l.itm~ ~override~ SAY NAME2 @517 SAY IDENTIFIED_DESC @518 COPY ~spell_rev\spwi3##\hobarcsu.eff~ ~override~ COPY ~spell_rev\spwi3##\hobarcsu.cre~ ~override~ COPY ~spell_rev\spwi3##\hobarcsu.itm~ ~override~ COPY ~spell_rev\spwi3##\hobwarsu.itm~ ~override~ COPY ~spell_rev\spwi3##\hobshasu.eff~ ~override~ COPY ~spell_rev\spwi3##\hobshasu.cre~ ~override~ COPY ~spell_rev\spwi3##\hobshasu.itm~ ~override~ COPY ~spell_rev\spwi3##\dvhobsha.bcs~ ~override~ COPY ~spell_rev\spwi3##\spwi310.spl~ ~override~ // Non-Detection SAY NAME1 @519 SAY UNIDENTIFIED_DESC @520 COPY ~spell_rev\spwi3##\scrl1m.itm~ ~override~ SAY NAME2 @519 SAY IDENTIFIED_DESC @520 COPY ~spell_rev\spwi3##\spwi311.spl~ ~override~ // Protection from Missiles SAY NAME1 @521 SAY UNIDENTIFIED_DESC @522 COPY ~spell_rev\spwi3##\scrl1n.itm~ ~override~ SAY NAME2 @521 SAY IDENTIFIED_DESC @522 /* COPY ~spell_rev\spwi3##\spwi312.spl~ ~override~ // Slow SAY NAME1 @523 SAY UNIDENTIFIED_DESC @524 COPY ~spell_rev\spwi3##\scrl1o.itm~ ~override~ SAY NAME2 @523 SAY IDENTIFIED_DESC @524 */ /* COPY ~spell_rev\spwi3##\spwi313.spl~ ~override~ // Skull Trap SAY NAME1 @525 SAY UNIDENTIFIED_DESC @526 COPY ~spell_rev\spwi3##\scrl1p.itm~ ~override~ SAY NAME2 @525 SAY IDENTIFIED_DESC @526 */ COPY ~spell_rev\spwi3##\spwi314.spl~ ~override~ // Vampiric Touch SAY NAME1 @527 SAY UNIDENTIFIED_DESC @528 COPY ~spell_rev\spwi3##\scrl1q.itm~ ~override~ SAY NAME2 @527 SAY IDENTIFIED_DESC @528 COPY ~spell_rev\spwi3##\spwi316.spl~ ~override~ // Dire Charm SAY NAME1 @529 SAY UNIDENTIFIED_DESC @530 COPY ~spell_rev\spwi3##\scrl1s.itm~ ~override~ SAY NAME2 @529 SAY IDENTIFIED_DESC @530 COPY ~spell_rev\spwi3##\spwi317.spl~ ~override~ // Ghost Armor SAY NAME1 @531 SAY UNIDENTIFIED_DESC @532 COPY ~spell_rev\spwi3##\scrl1t.itm~ ~override~ SAY NAME2 @531 SAY IDENTIFIED_DESC @532 COPY ~spell_rev\spwi3##\gharmor.vvc~ ~override~ COPY ~spell_rev\spwi3##\gharmor.bam~ ~override~ /* COPY ~spell_rev\spwi3##\spwi318.spl~ ~override~ // Minor Spell Deflection SAY NAME1 @533 SAY UNIDENTIFIED_DESC @534 COPY ~spell_rev\spwi3##\scrl6g.itm~ ~override~ SAY NAME2 @533 SAY IDENTIFIED_DESC @534 */ COPY ~spell_rev\spwi3##\spwi319.spl~ ~override~ // Protection from Fire SAY NAME1 @535 SAY UNIDENTIFIED_DESC @536 COPY ~spell_rev\spwi3##\scrl6h.itm~ ~override~ SAY NAME2 @535 SAY IDENTIFIED_DESC @536 COPY ~spell_rev\spwi3##\spwi320.spl~ ~override~ // Protection from Cold SAY NAME1 @537 SAY UNIDENTIFIED_DESC @538 COPY ~spell_rev\spwi3##\scrl6i.itm~ ~override~ SAY NAME2 @537 SAY IDENTIFIED_DESC @538 ADD_PROJECTILE ~spell_rev\projectles\dvsplthr.pro~ COPY ~spell_rev\spwi3##\spwi321.spl~ ~override~ // Spell Thrust SAY NAME1 @539 SAY UNIDENTIFIED_DESC @540 WRITE_SHORT 0x98 %dvsplthr% COPY ~spell_rev\spwi3##\scrl6j.itm~ ~override~ SAY NAME2 @539 SAY IDENTIFIED_DESC @540 COPY ~spell_rev\spwi3##\spwi322.spl~ ~override~ // Detect Illusion SAY NAME1 @541 SAY UNIDENTIFIED_DESC @542 COPY ~spell_rev\spwi3##\scrl6k.itm~ ~override~ SAY NAME2 @541 SAY IDENTIFIED_DESC @542 COPY ~spell_rev\spwi3##\spwi324.spl~ ~override~ // Hold Undead SAY NAME1 @543 SAY UNIDENTIFIED_DESC @544 COPY ~spell_rev\spwi3##\scrl6l.itm~ ~override~ SAY NAME2 @543 SAY IDENTIFIED_DESC @544 COPY_EXISTING ~holdnecr.pro~ ~override~ WRITE_SHORT 0x204 65 WRITE_SHORT 0x206 65 COPY ~spell_rev\spwi3##\spwi325.spl~ ~override~ // Melf's Minute Meteors SAY NAME1 @545 SAY UNIDENTIFIED_DESC @546 COPY ~spell_rev\spwi3##\scrla5.itm~ ~override~ SAY NAME2 @545 SAY IDENTIFIED_DESC @546 COPY ~spell_rev\spwi3##\melfmet.itm~ ~override~ COPY ~spell_rev\spwi3##\spwi326.spl~ ~override~ // Dispel Magic SAY NAME1 @547 SAY UNIDENTIFIED_DESC @548 COPY ~spell_rev\spwi3##\scrl1e.itm~ ~override~ SAY NAME2 @547 SAY IDENTIFIED_DESC @548 /*-----------------------level 4-----------------------*/ COPY ~spell_rev\spwi4##\spwi401.spl~ ~override~ // Confusion SAY NAME1 @561 SAY UNIDENTIFIED_DESC @562 COPY ~spell_rev\spwi4##\scrl1u.itm~ ~override~ SAY NAME2 @561 SAY IDENTIFIED_DESC @562 COPY ~spell_rev\spwi4##\spwi402.spl~ ~override~ // Dimension Door SAY NAME1 @563 SAY UNIDENTIFIED_DESC @564 COPY ~spell_rev\spwi4##\scrl1v.itm~ ~override~ SAY NAME2 @563 SAY IDENTIFIED_DESC @564 COPY ~spell_rev\spwi4##\spwi403.spl~ ~override~ // Fire Shield (Blue) SAY NAME1 @565 SAY UNIDENTIFIED_DESC @566 COPY ~spell_rev\spwi4##\scrl1w.itm~ ~override~ SAY NAME2 @565 SAY IDENTIFIED_DESC @566 COPY ~spell_rev\spwi4##\spwi403a.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi403b.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi403c.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi403d.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi403e.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi403f.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi403g.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi403h.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi404.spl~ ~override~ // Ice Storm SAY NAME1 @567 SAY UNIDENTIFIED_DESC @568 COPY ~spell_rev\spwi4##\scrl1x.itm~ ~override~ SAY NAME2 @567 SAY IDENTIFIED_DESC @568 COPY_EXISTING ~icestorm.pro~ ~override~ WRITE_BYTE 0x216 4 COPY ~spell_rev\spwi4##\spwi405.spl~ ~override~ // Improved Invisibility SAY NAME1 @569 SAY UNIDENTIFIED_DESC @570 COPY ~spell_rev\spwi4##\scrl1y.itm~ ~override~ SAY NAME2 @569 SAY IDENTIFIED_DESC @570 COPY ~spell_rev\spwi4##\spwi406.spl~ ~override~ // Minor Globe of Invulnerability SAY NAME1 @571 SAY UNIDENTIFIED_DESC @572 COPY ~spell_rev\spwi4##\scrl1z.itm~ ~override~ SAY NAME2 @571 SAY IDENTIFIED_DESC @572 COPY ~spell_rev\spwi4##\spwi407.spl~ ~override~ // Monster Summoning II SAY NAME1 @573 SAY UNIDENTIFIED_DESC @574 COPY ~spell_rev\spwi4##\scrl2a.itm~ ~override~ SAY NAME2 @573 SAY IDENTIFIED_DESC @574 COPY ~spell_rev\spwi4##\gnollsu.eff~ ~override~ COPY ~spell_rev\spwi4##\gnollsu.cre~ ~override~ COPY ~spell_rev\spwi4##\gnollsu.itm~ ~override~ COPY ~spell_rev\spwi4##\gnlcapsu.eff~ ~override~ COPY ~spell_rev\spwi4##\gnlcapsu.cre~ ~override~ COPY ~spell_rev\spwi4##\gnlcapsu.itm~ ~override~ /* COPY ~spell_rev\spwi4##\spwi408.spl~ ~override~ // Stoneskin SAY NAME1 @575 SAY UNIDENTIFIED_DESC @576 COPY ~spell_rev\spwi4##\scrl2b.itm~ ~override~ SAY NAME2 @575 SAY IDENTIFIED_DESC @576 */ COPY ~spell_rev\spwi4##\spwi409.spl~ ~override~ // Contagion SAY NAME1 @577 SAY UNIDENTIFIED_DESC @578 COPY ~spell_rev\spwi4##\scrla8.itm~ ~override~ SAY NAME2 @577 SAY IDENTIFIED_DESC @578 COPY ~spell_rev\spwi4##\spwi410.spl~ ~override~ // Break Enchantment (replaces Remove Curse) SAY NAME1 @579 SAY UNIDENTIFIED_DESC @580 COPY ~spell_rev\spwi4##\scrl5g.itm~ ~override~ SAY NAME2 @579 SAY IDENTIFIED_DESC @580 COPY ~spell_rev\spwi4##\spwi411.spl~ ~override~ // Emotion SAY NAME1 @581 SAY UNIDENTIFIED_DESC @582 COPY ~spell_rev\spwi4##\scrl5h.itm~ ~override~ SAY NAME2 @581 SAY IDENTIFIED_DESC @582 /* COPY ~spell_rev\spwi4##\spwi412.spl~ ~override~ // Greater Malison SAY NAME1 @583 SAY UNIDENTIFIED_DESC @584 COPY ~spell_rev\spwi4##\scrl5i.itm~ ~override~ SAY NAME2 @583 SAY IDENTIFIED_DESC @584 */ COPY ~spell_rev\spwi4##\spwi413.spl~ ~override~ // Otiluke's Resilient Sphere SAY NAME1 @585 SAY UNIDENTIFIED_DESC @586 COPY ~spell_rev\spwi4##\scrl5j.itm~ ~override~ SAY NAME2 @585 SAY IDENTIFIED_DESC @586 COPY ~spell_rev\spwi4##\spwi413d.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi413c.eff~ ~override~ COPY ~spell_rev\spwi4##\spwi413d.eff~ ~override~ COPY ~spell_rev\spwi4##\spwi414.spl~ ~override~ // Spirit Armor SAY NAME1 @587 SAY UNIDENTIFIED_DESC @588 COPY ~spell_rev\spwi4##\scrl5k.itm~ ~override~ SAY NAME2 @587 SAY IDENTIFIED_DESC @588 COPY ~spell_rev\spwi4##\spwi415.spl~ ~override~ // Polymorph Other SAY NAME1 @589 SAY UNIDENTIFIED_DESC @590 COPY ~spell_rev\spwi4##\scrl5l.itm~ ~override~ SAY NAME2 @589 SAY IDENTIFIED_DESC @590 COPY ~spell_rev\spwi4##\plysquir.eff~ ~override~ COPY ~spell_rev\spwi4##\squirp.itm~ ~override~ COPY ~spell_rev\spwi4##\spwi416.spl~ ~override~ // Polymorph Self SAY NAME1 @591 SAY UNIDENTIFIED_DESC @592 COPY ~spell_rev\spwi4##\scrl5m.itm~ ~override~ SAY NAME2 @591 SAY IDENTIFIED_DESC @592 COPY ~spell_rev\spwi4##\spwi461.itm~ ~override~ COPY ~spell_rev\spwi4##\spwi461.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi462.itm~ ~override~ COPY ~spell_rev\spwi4##\spwi462.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi463.itm~ ~override~ COPY ~spell_rev\spwi4##\spwi463.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi464.itm~ ~override~ COPY ~spell_rev\spwi4##\spwi464.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi465.itm~ ~override~ COPY ~spell_rev\spwi4##\spwi465.spl~ ~override~ SAY NAME1 ~Shapeshifts Winter Wolf~ COPY ~spell_rev\spwi4##\spwi417.spl~ ~override~ // Enchanted Weapon SAY NAME1 @593 SAY UNIDENTIFIED_DESC @594 COPY ~spell_rev\spwi4##\scrl6m.itm~ ~override~ SAY NAME2 @593 SAY IDENTIFIED_DESC @594 COPY ~spell_rev\spwi4##\spwi417~ ~override~ COPY ~spell_rev\spwi4##\spwi418.spl~ ~override~ // Fire Shield (Red) SAY NAME1 @595 SAY UNIDENTIFIED_DESC @596 COPY ~spell_rev\spwi4##\scrl6n.itm~ ~override~ SAY NAME2 @595 SAY IDENTIFIED_DESC @596 COPY ~spell_rev\spwi4##\spwi418a.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi418b.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi418c.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi418d.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi418e.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi418f.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi418g.spl~ ~override~ COPY ~spell_rev\spwi4##\spwi418h.spl~ ~override~ ADD_PROJECTILE ~spell_rev\projectles\dvsecret.pro~ COPY ~spell_rev\spwi4##\spwi419.spl~ ~override~ // Secret Word SAY NAME1 @597 SAY UNIDENTIFIED_DESC @598 WRITE_SHORT 0x98 %dvsecret% COPY ~spell_rev\spwi4##\scrl6o.itm~ ~override~ SAY NAME2 @597 SAY IDENTIFIED_DESC @598 COPY ~spell_rev\spwi4##\spwi420.spl~ ~override~ // Simbul's Spell Matrix (previously named Minor Spell Sequencer) SAY NAME1 @599 SAY UNIDENTIFIED_DESC @600 COPY ~spell_rev\spwi4##\scrl6p.itm~ ~override~ SAY NAME2 @599 SAY IDENTIFIED_DESC @600 COPY ~spell_rev\spwi4##\spwi420d.spl~ ~override~ SAY NAME2 @599 COPY ~spell_rev\spwi4##\spwi421.spl~ ~override~ // Teleport Field SAY NAME1 @601 SAY UNIDENTIFIED_DESC @602 COPY ~spell_rev\spwi4##\scrl6q.itm~ ~override~ SAY NAME2 @601 SAY IDENTIFIED_DESC @602 /* COPY ~spell_rev\spwi4##\spwi423.spl~ ~override~ // Spider Spawn SAY NAME1 @603 SAY UNIDENTIFIED_DESC @604 COPY ~spell_rev\spwi4##\scrl6r.itm~ ~override~ SAY NAME2 @603 SAY IDENTIFIED_DESC @604 COPY ~spell_rev\spwi4##\spidgisu.cre~ ~override~ COPY ~spell_rev\spwi4##\spidgisu.itm~ ~override~ COPY ~spell_rev\spwi4##\spidphsu.cre~ ~override~ COPY ~spell_rev\spwi4##\spidphsu.itm~ ~override~ COPY ~spell_rev\spwi4##\spidswsu.cre~ ~override~ COPY ~spell_rev\spwi4##\spidswsu.itm~ ~override~ */ COPY ~spell_rev\spwi4##\spwi424.spl~ ~override~ // Farsight SAY NAME1 @605 SAY UNIDENTIFIED_DESC @606 COPY ~spell_rev\spwi4##\scrlaq.itm~ ~override~ SAY NAME2 @605 SAY IDENTIFIED_DESC @606 COPY ~spell_rev\spwi4##\spwi425.spl~ ~override~ // Wizard Eye SAY NAME1 @607 SAY UNIDENTIFIED_DESC @608 COPY ~spell_rev\spwi4##\scrla1.itm~ ~override~ SAY NAME2 @607 SAY IDENTIFIED_DESC @608 /*-----------------------level 5-----------------------*/ COPY ~spell_rev\spwi5##\spwi501.spl~ ~override~ // Summon Shadow (replaces Animate Dead) SAY NAME1 @611 SAY UNIDENTIFIED_DESC @612 COPY ~spell_rev\spwi5##\scrl2d.itm~ ~override~ SAY NAME2 @611 SAY IDENTIFIED_DESC @612 COPY ~spell_rev\spwi5##\shadowsu.cre~ ~override~ COPY ~spell_rev\spwi5##\shadowsu.eff~ ~override~ COPY ~spell_rev\spwi5##\shadowsu.itm~ ~override~ COPY ~spell_rev\spwi5##\dvwraith.cre~ ~override~ COPY ~spell_rev\spwi5##\dvwraith.eff~ ~override~ COPY ~spell_rev\spwi5##\dvwraith.itm~ ~override~ ADD_PROJECTILE ~spell_rev\projectles\dvckill.pro~ COPY ~spell_rev\spwi5##\spwi502.spl~ ~override~ // Cloudkill SAY NAME1 @613 SAY UNIDENTIFIED_DESC @614 WRITE_SHORT 0x98 %dvckill% SET dvckill -= 1 APPEND ~clearair.2da~ ~Cloudkill %dvckill%~ COPY ~spell_rev\spwi5##\scrl2e.itm~ ~override~ SAY NAME2 @613 SAY IDENTIFIED_DESC @614 COPY ~spell_rev\spwi5##\spwi502i.eff~ ~override~ /* COPY ~spell_rev\spwi5##\spwi503.spl~ ~override~ // Cone of Cold SAY NAME1 @615 SAY UNIDENTIFIED_DESC @616 COPY ~spell_rev\spwi5##\scrl2f.itm~ ~override~ SAY NAME2 @615 SAY IDENTIFIED_DESC @616 COPY_EXISTING ~conecold.pro~ ~override~ WRITE_SHORT 0x204 256 WRITE_SHORT 0x206 256 */ COPY ~spell_rev\spwi5##\spwi504.spl~ ~override~ // Monster Summoning III SAY NAME1 @617 SAY UNIDENTIFIED_DESC @618 COPY ~spell_rev\spwi5##\scrl2g.itm~ ~override~ SAY NAME2 @617 SAY IDENTIFIED_DESC @618 COPY ~spell_rev\spwi5##\ogregrsu.eff~ ~override~ COPY ~spell_rev\spwi5##\ogregrsu.cre~ ~override~ COPY ~spell_rev\spwi5##\ogregrsu.itm~ ~override~ COPY ~spell_rev\spwi5##\ogremasu.eff~ ~override~ COPY ~spell_rev\spwi5##\ogremasu.cre~ ~override~ COPY ~spell_rev\spwi5##\ogremasu.itm~ ~override~ COPY ~spell_rev\spwi5##\ogremasu.bcs~ ~override~ /* COPY ~spell_rev\spwi5##\spwi505.spl~ ~override~ // Shadow Door SAY NAME1 @619 SAY UNIDENTIFIED_DESC @620 COPY ~spell_rev\spwi5##\scrl2h.itm~ ~override~ SAY NAME2 @619 SAY IDENTIFIED_DESC @620 ADD_PROJECTILE ~spell_rev\projectles\dvsdoor.pro~ COPY ~spell_rev\spwi5##\spwi505d.spl~ ~override~ WRITE_SHORT 0x98 %dvsdoor% COPY ~spell_rev\spwi5##\dvsdoor.eff~ ~override~ COPY ~spell_rev\spwi5##\dvsdoor.bam~ ~override~ COPY ~spell_rev\spwi5##\dvsdoor.vvc~ ~override~ */ COPY ~spell_rev\spwi5##\spwi506.spl~ ~override~ // Domination SAY NAME1 @621 SAY UNIDENTIFIED_DESC @622 COPY ~spell_rev\spwi5##\scrl5n.itm~ ~override~ SAY NAME2 @621 SAY IDENTIFIED_DESC @622 COPY ~spell_rev\spwi5##\spwi507.spl~ ~override~ // Hold Monster SAY NAME1 @623 SAY UNIDENTIFIED_DESC @624 COPY ~spell_rev\spwi5##\scrl5o.itm~ ~override~ SAY NAME2 @623 SAY IDENTIFIED_DESC @624 COPY ~spell_rev\spwi5##\spwi508.spl~ ~override~ // Chaos SAY NAME1 @625 SAY UNIDENTIFIED_DESC @626 COPY ~spell_rev\spwi5##\scrl5p.itm~ ~override~ SAY NAME2 @625 SAY IDENTIFIED_DESC @626 COPY ~spell_rev\spwi5##\spwi509.spl~ ~override~ // Feeblemind SAY NAME1 @627 SAY UNIDENTIFIED_DESC @628 COPY ~spell_rev\spwi5##\scrl5q.itm~ ~override~ SAY NAME2 @627 SAY IDENTIFIED_DESC @628 /* COPY ~spell_rev\spwi5##\spwi510.spl~ ~override~ // Spell Immunity SAY NAME1 @629 SAY UNIDENTIFIED_DESC @630 COPY ~spell_rev\spwi5##\scrl6s.itm~ ~override~ SAY NAME2 @629 SAY IDENTIFIED_DESC @630 COPY ~spell_rev\spwi5##\spwi590.spl~ ~override~ COPY ~spell_rev\spwi5##\spwi591.spl~ ~override~ COPY ~spell_rev\spwi5##\spwi592.spl~ ~override~ COPY ~spell_rev\spwi5##\spwi593.spl~ ~override~ COPY ~spell_rev\spwi5##\spwi594.spl~ ~override~ COPY ~spell_rev\spwi5##\spwi595.spl~ ~override~ COPY ~spell_rev\spwi5##\spwi596.spl~ ~override~ COPY ~spell_rev\spwi5##\spwi597.spl~ ~override~ */ COPY ~spell_rev\spwi5##\spwi511.spl~ ~override~ // Protection from Normal Weapons SAY NAME1 @631 SAY UNIDENTIFIED_DESC @632 COPY ~spell_rev\spwi5##\scrl6t.itm~ ~override~ SAY NAME2 @631 SAY IDENTIFIED_DESC @632 COPY ~spell_rev\spwi5##\spwi512.spl~ ~override~ // Protection from Electricity SAY NAME1 @633 SAY UNIDENTIFIED_DESC @634 COPY ~spell_rev\spwi5##\scrl5t.itm~ ~override~ SAY NAME2 @633 SAY IDENTIFIED_DESC @634 COPY ~spell_rev\spwi5##\spwi513.spl~ ~override~ // Breach SAY NAME1 @635 SAY UNIDENTIFIED_DESC @636 COPY ~spell_rev\spwi5##\scrl6u.itm~ ~override~ SAY NAME2 @635 SAY IDENTIFIED_DESC @636 /* COPY ~spell_rev\spwi5##\spwi514.spl~ ~override~ // Lower Resistance SAY NAME1 @637 SAY UNIDENTIFIED_DESC @638 COPY ~spell_rev\spwi5##\scrl6v.itm~ ~override~ SAY NAME2 @637 SAY IDENTIFIED_DESC @638 */ COPY ~spell_rev\spwi5##\spwi515.spl~ ~override~ // Oracle SAY NAME1 @639 SAY UNIDENTIFIED_DESC @640 COPY ~spell_rev\spwi5##\scrl6w.itm~ ~override~ SAY NAME2 @639 SAY IDENTIFIED_DESC @640 COPY ~spell_rev\spwi5##\spwi516.spl~ ~override~ // Conjure Lesser Fire Elemental SAY NAME1 @641 SAY UNIDENTIFIED_DESC @642 COPY ~spell_rev\spwi5##\scrl6x.itm~ ~override~ SAY NAME2 @641 SAY IDENTIFIED_DESC @642 COPY ~spell_rev\spwi5##\splesfir.eff~ ~override~ COPY ~spell_rev\spwi5##\elfirsu1.cre~ ~override~ COPY ~spell_rev\spwi5##\elfirsu1.itm~ ~override~ COPY ~spell_rev\spwi5##\spwi517.spl~ ~override~ // Protection From Acid SAY NAME1 @643 SAY UNIDENTIFIED_DESC @644 COPY ~spell_rev\spwi5##\scrl6y.itm~ ~override~ SAY NAME2 @643 SAY IDENTIFIED_DESC @644 COPY ~spell_rev\spwi5##\spwi518.spl~ ~override~ // Phantom Blade SAY NAME1 @645 SAY UNIDENTIFIED_DESC @646 COPY ~spell_rev\spwi5##\scrl6z.itm~ ~override~ SAY NAME2 @645 SAY IDENTIFIED_DESC @646 COPY ~spell_rev\spwi5##\phanblad.itm~ ~override~ COPY ~spell_rev\spwi5##\spwi519.spl~ ~override~ // Spell Shield (disabled at level 5) SAY NAME1 @647 SAY UNIDENTIFIED_DESC @648 COPY ~spell_rev\spwi5##\spwi520.spl~ ~override~ // Conjure Lesser Air Elemental SAY NAME1 @649 SAY UNIDENTIFIED_DESC @650 COPY ~spell_rev\spwi5##\scrl7b.itm~ ~override~ SAY NAME2 @649 SAY IDENTIFIED_DESC @650 COPY ~spell_rev\spwi5##\splesair.eff~ ~override~ COPY ~spell_rev\spwi5##\elairsu1.cre~ ~override~ COPY ~spell_rev\spwi5##\elairsu1.itm~ ~override~ COPY ~spell_rev\spwi5##\spwi521.spl~ ~override~ // Conjure Lesser Earth Elemental SAY NAME1 @651 SAY UNIDENTIFIED_DESC @652 COPY ~spell_rev\spwi5##\scrl7c.itm~ ~override~ SAY NAME2 @651 SAY IDENTIFIED_DESC @652 COPY ~spell_rev\spwi5##\splesear.eff~ ~override~ COPY ~spell_rev\spwi5##\elearsu1.cre~ ~override~ COPY ~spell_rev\spwi5##\elearsu1.itm~ ~override~ COPY ~spell_rev\spwi5##\spwi522.spl~ ~override~ // Minor Spell Turning SAY NAME1 @653 SAY UNIDENTIFIED_DESC @654 COPY ~spell_rev\spwi5##\scrl7d.itm~ ~override~ SAY NAME2 @653 SAY IDENTIFIED_DESC @654 /* ADD_PROJECTILE ~spell_rev\projectles\dvsunfir.pro~ COPY ~spell_rev\spwi5##\spwi523.spl~ ~override~ // Sunfire SAY NAME1 @655 SAY UNIDENTIFIED_DESC @656 COPY ~spell_rev\spwi5##\scrlar.itm~ ~override~ SAY NAME2 @655 SAY IDENTIFIED_DESC @656 COPY ~spell_rev\spwi5##\spwi523d.spl~ ~override~ WRITE_SHORT 0x98 %dvsunfir% SET "loop" = 7 WHILE ("%loop%" > 0) BEGIN WRITE_SHORT (0x98 + 0x28 * ("%loop%" - 1) ) "%dvsunfir%" SET "loop" = "%loop%" - 1 END */ COPY ~spell_rev\spwi5##\spwi524.spl~ ~override~ // Protection from Fire (moved from level 3) SAY NAME1 @535 SAY UNIDENTIFIED_DESC @536 COPY ~spell_rev\spwi5##\spwi525.spl~ ~override~ // Protection from Cold (moved from level 3) SAY NAME1 @537 SAY UNIDENTIFIED_DESC @538 COPY ~spell_rev\spwi5##\fireelem.itm~ ~override~ /*-----------------------level 6-----------------------*/ COPY ~spell_rev\spwi6##\spwi601.spl~ ~override~ // Invisible Stalker SAY NAME1 @661 SAY UNIDENTIFIED_DESC @662 COPY ~spell_rev\spwi6##\scrl7e.itm~ ~override~ SAY NAME2 @661 SAY IDENTIFIED_DESC @662 COPY ~spell_rev\spwi6##\spstalk.eff~ ~override~ COPY ~spell_rev\spwi6##\dvstalk.cre~ ~override~ COPY ~spell_rev\spwi6##\stalke.cre~ ~override~ COPY ~spell_rev\spwi6##\stalker.itm~ ~override~ COPY ~spell_rev\spwi6##\stalkesu.itm~ ~override~ COPY ~spell_rev\spwi6##\spwi602.spl~ ~override~ // Globe of Invulnerability SAY NAME1 @663 SAY UNIDENTIFIED_DESC @664 COPY ~spell_rev\spwi6##\scrl7f.itm~ ~override~ SAY NAME2 @663 SAY IDENTIFIED_DESC @664 COPY ~spell_rev\spwi6##\spwi603.spl~ ~override~ // Tenser's Transformation SAY NAME1 @665 SAY UNIDENTIFIED_DESC @666 COPY ~spell_rev\spwi6##\scrl7g.itm~ ~override~ SAY NAME2 @665 SAY IDENTIFIED_DESC @666 COPY ~spell_rev\spwi6##\spwi603a.eff~ ~override~ COPY ~spell_rev\spwi6##\spwi603b.eff~ ~override~ COPY ~spell_rev\spwi6##\spwi604.spl~ ~override~ // Flesh to Stone SAY NAME1 @667 SAY UNIDENTIFIED_DESC @668 COPY ~spell_rev\spwi6##\scrl7h.itm~ ~override~ SAY NAME2 @667 SAY IDENTIFIED_DESC @668 COPY ~spell_rev\spwi6##\spwi605.spl~ ~override~ // Death Spell SAY NAME1 @669 SAY UNIDENTIFIED_DESC @670 COPY ~spell_rev\spwi6##\scrl7i.itm~ ~override~ SAY NAME2 @669 SAY IDENTIFIED_DESC @670 COPY ~spell_rev\spwi6##\spwi606.spl~ ~override~ // Protection from Magic Energy SAY NAME1 @671 SAY UNIDENTIFIED_DESC @672 COPY ~spell_rev\spwi6##\scrl7j.itm~ ~override~ SAY NAME2 @671 SAY IDENTIFIED_DESC @672 /* COPY ~spell_rev\spwi6##\spwi607.spl~ ~override~ // Mislead SAY NAME1 @673 SAY UNIDENTIFIED_DESC @674 COPY ~spell_rev\spwi6##\scrl7k.itm~ ~override~ SAY NAME2 @673 SAY IDENTIFIED_DESC @674 COPY ~spell_rev\spwi6##\mislead.spl~ ~override~ COPY ~spell_rev\spwi6##\dvnosong.spl~ ~override~ */ /* COPY ~spell_rev\spwi6##\spwi608.spl~ ~override~ // Pierce Magic SAY NAME1 @675 SAY UNIDENTIFIED_DESC @676 COPY ~spell_rev\spwi6##\scrl7l.itm~ ~override~ SAY NAME2 @675 SAY IDENTIFIED_DESC @676 */ /* COPY ~spell_rev\spwi6##\spwi609.spl~ ~override~ // True Seeing (previously named True Sight) SAY NAME1 @677 SAY UNIDENTIFIED_DESC @678 COPY ~spell_rev\spwi6##\scrl7m.itm~ ~override~ SAY NAME2 @677 SAY IDENTIFIED_DESC @678 COPY ~spell_rev\spwi6##\spwi609d.spl~ ~override~ */ /* COPY ~spell_rev\spwi6##\spwi611.spl~ ~override~ // Protection from Magical Weapons SAY NAME1 @679 SAY UNIDENTIFIED_DESC @680 COPY ~spell_rev\spwi6##\scrl7o.itm~ ~override~ SAY NAME2 @679 SAY IDENTIFIED_DESC @680 */ COPY ~spell_rev\spwi6##\spwi612.spl~ ~override~ // Power Word Silence SAY NAME1 @681 SAY UNIDENTIFIED_DESC @682 COPY ~spell_rev\spwi6##\scrl7p.itm~ ~override~ SAY NAME2 @681 SAY IDENTIFIED_DESC @682 /* COPY ~spell_rev\spwi6##\spwi613.spl~ ~override~ // Improved Haste SAY NAME1 @683 SAY UNIDENTIFIED_DESC @684 COPY ~spell_rev\spwi6##\scrl7q.itm~ ~override~ SAY NAME2 @683 SAY IDENTIFIED_DESC @684 */ ADD_PROJECTILE ~spell_rev\projectles\dvafog.pro~ COPY ~spell_rev\spwi6##\spwi614.spl~ ~override~ // Acid Fog (replaces Death Fog) SAY NAME1 @685 SAY UNIDENTIFIED_DESC @686 WRITE_SHORT 0x98 %dvafog% SET dvafog -= 1 APPEND ~clearair.2da~ ~Acid Fog %dvafog%~ COPY ~spell_rev\spwi6##\scrl7r.itm~ ~override~ SAY NAME2 @685 SAY IDENTIFIED_DESC @686 /* COPY ~spell_rev\spwi6##\spwi615.spl~ ~override~ // Chain Lightning SAY NAME1 @687 SAY UNIDENTIFIED_DESC @688 COPY ~spell_rev\spwi6##\scrl7s.itm~ ~override~ SAY NAME2 @687 SAY IDENTIFIED_DESC @688 COPY ~spell_rev\spwi6##\spwi615A.spl~ ~override~ COPY ~spell_rev\spwi6##\spwi615B.spl~ ~override~ */ COPY ~spell_rev\spwi6##\spwi616.spl~ ~override~ // Disintegrate SAY NAME1 @689 SAY UNIDENTIFIED_DESC @690 COPY ~spell_rev\spwi6##\scrl7t.itm~ ~override~ SAY NAME2 @689 SAY IDENTIFIED_DESC @690 COPY ~spell_rev\spwi6##\spgreorb.pro~ ~override~ COPY ~spell_rev\spwi6##\spwi617.spl~ ~override~ // Contingency SAY NAME1 @691 SAY UNIDENTIFIED_DESC @692 COPY ~spell_rev\spwi6##\scrl7u.itm~ ~override~ SAY NAME2 @691 SAY IDENTIFIED_DESC @692 COPY ~spell_rev\spwi6##\spwi618.spl~ ~override~ // Spell Deflection SAY NAME1 @693 SAY UNIDENTIFIED_DESC @694 COPY ~spell_rev\spwi6##\scrl7v.itm~ ~override~ SAY NAME2 @693 SAY IDENTIFIED_DESC @694 COPY ~spell_rev\spwi6##\spwi619.spl~ ~override~ // Wyvern Call SAY NAME1 @695 SAY UNIDENTIFIED_DESC @696 COPY ~spell_rev\spwi6##\scrl7w.itm~ ~override~ SAY NAME2 @695 SAY IDENTIFIED_DESC @696 COPY ~spell_rev\spwi6##\wyvernsu.cre~ ~override~ COPY ~spell_rev\spwi6##\wyvernsu.itm~ ~override~ COPY ~spell_rev\spwi6##\spwi620.spl~ ~override~ // Conjure Fire Elemental SAY NAME1 @697 SAY UNIDENTIFIED_DESC @698 COPY ~spell_rev\spwi6##\scrl7x.itm~ ~override~ SAY NAME2 @697 SAY IDENTIFIED_DESC @698 COPY ~spell_rev\spwi6##\spfir1.eff~ ~override~ COPY ~spell_rev\spwi6##\spfir2.eff~ ~override~ COPY ~spell_rev\spwi6##\elfirsu2.cre~ ~override~ COPY ~spell_rev\spwi6##\elfirsu2.itm~ ~override~ COPY ~spell_rev\spwi6##\elfirsu3.cre~ ~override~ COPY ~spell_rev\spwi6##\elfirsu3.itm~ ~override~ COPY ~spell_rev\spwi6##\spwi621.spl~ ~override~ // Conjure Air Elemental SAY NAME1 @699 SAY UNIDENTIFIED_DESC @700 COPY ~spell_rev\spwi6##\scrl7y.itm~ ~override~ SAY NAME2 @699 SAY IDENTIFIED_DESC @700 COPY ~spell_rev\spwi6##\spair1.eff~ ~override~ COPY ~spell_rev\spwi6##\spair2.eff~ ~override~ COPY ~spell_rev\spwi6##\elairsu2.cre~ ~override~ COPY ~spell_rev\spwi6##\elairsu2.itm~ ~override~ COPY ~spell_rev\spwi6##\elairsu3.cre~ ~override~ COPY ~spell_rev\spwi6##\elairsu3.itm~ ~override~ COPY ~spell_rev\spwi6##\spwi622.spl~ ~override~ // Conjure Earth Elemental SAY NAME1 @701 SAY UNIDENTIFIED_DESC @702 COPY ~spell_rev\spwi6##\scrl7z.itm~ ~override~ SAY NAME2 @701 SAY IDENTIFIED_DESC @702 COPY ~spell_rev\spwi6##\speart1.eff~ ~override~ COPY ~spell_rev\spwi6##\speart2.eff~ ~override~ COPY ~spell_rev\spwi6##\elearsu2.cre~ ~override~ COPY ~spell_rev\spwi6##\elearsu2.itm~ ~override~ COPY ~spell_rev\spwi6##\elearsu3.cre~ ~override~ COPY ~spell_rev\spwi6##\elearsu3.itm~ ~override~ COPY ~spell_rev\spwi6##\spwi623.spl~ ~override~ // Create Undead (replaces Summon Carrion) SAY NAME1 @703 SAY UNIDENTIFIED_DESC @704 COPY ~spell_rev\spwi6##\scrl8a.itm~ ~override~ SAY NAME2 @703 SAY IDENTIFIED_DESC @704 COPY ~spell_rev\spwi6##\ghastsu.eff~ ~override~ COPY ~spell_rev\spwi6##\ghastsu.cre~ ~override~ COPY ~spell_rev\spwi6##\ghastsu.itm~ ~override~ OUTER_SET dvstench = IDS_OF_SYMBOL (~projectl~ ~dvstench~) + 1 ACTION_IF (dvstench < 1) BEGIN ADD_PROJECTILE ~spell_rev\projectles\dvstench.pro~ END COPY ~spell_rev\spwi6##\dvstench.spl~ ~override~ WRITE_SHORT 0x98 %dvstench% COPY ~spell_rev\spwi6##\dvstench.eff~ ~override~ COPY ~spell_rev\spwi6##\mummysu.eff~ ~override~ COPY ~spell_rev\spwi6##\mummysu.cre~ ~override~ COPY ~spell_rev\spwi6##\mummysu.itm~ ~override~ COPY ~spell_rev\spwi6##\mummysu.bcs~ ~override~ COPY ~spell_rev\spwi6##\mummydsp.spl~ ~override~ COPY ~spell_rev\spwi6##\mummydsp.eff~ ~override~ COPY ~spell_rev\spwi6##\spwi501a.bam~ ~override~ COPY ~spell_rev\spwi6##\spwi501b.bam~ ~override~ COPY ~spell_rev\spwi6##\spwi501c.bam~ ~override~ COPY ~spell_rev\spwi6##\spwi624.spl~ ~override~ // Summon Nishruu SAY NAME1 @705 SAY UNIDENTIFIED_DESC @706 COPY ~spell_rev\spwi6##\scrl8b.itm~ ~override~ SAY NAME2 @705 SAY IDENTIFIED_DESC @706 COPY ~spell_rev\spwi6##\nishrusu.cre~ ~override~ COPY ~spell_rev\spwi6##\nishruu.itm~ ~override~ COPY ~spell_rev\spwi6##\spwi625.spl~ ~override~ // Stone to Flesh SAY NAME1 @707 SAY UNIDENTIFIED_DESC @708 COPY ~spell_rev\spwi6##\scrl8c.itm~ ~override~ SAY NAME2 @707 SAY IDENTIFIED_DESC @708 //COPY ~spell_rev\spwi6##\spin686.spl~ ~override~ COPY ~spell_rev\spwi6##\wand18.itm~ ~override~ /*-----------------------level 7-----------------------*/ /* COPY ~spell_rev\spwi7##\spwi701.spl~ ~override~ // Spell Turning SAY NAME1 @721 SAY UNIDENTIFIED_DESC @722 COPY ~spell_rev\spwi7##\scrl8d.itm~ ~override~ SAY NAME2 @721 SAY IDENTIFIED_DESC @722 */ COPY ~spell_rev\spwi7##\spwi702.spl~ ~override~ // Protection from the Elements SAY NAME1 @723 SAY UNIDENTIFIED_DESC @724 COPY ~spell_rev\spwi7##\scrl8e.itm~ ~override~ SAY NAME2 @723 SAY IDENTIFIED_DESC @724 /* COPY ~spell_rev\spwi7##\spwi703.spl~ ~override~ // Project Image SAY NAME1 @725 SAY UNIDENTIFIED_DESC @726 COPY ~spell_rev\spwi7##\scrl8f.itm~ ~override~ SAY NAME2 @725 SAY IDENTIFIED_DESC @726 COPY ~spell_rev\spwi7##\PROJIMAG.SPL~ ~override~ */ ADD_PROJECTILE ~spell_rev\projectles\dvrubray.pro~ COPY ~spell_rev\spwi7##\spwi704.spl~ ~override~ // Ruby Ray of Reversal SAY NAME1 @727 SAY UNIDENTIFIED_DESC @728 WRITE_SHORT 0x98 %dvrubray% COPY ~spell_rev\spwi7##\scrl8g.itm~ ~override~ SAY NAME2 @727 SAY IDENTIFIED_DESC @728 COPY ~spell_rev\spwi7##\spwi705.spl~ ~override~ // Khelben's Warding Whip SAY NAME1 @729 SAY UNIDENTIFIED_DESC @730 COPY ~spell_rev\spwi7##\scrl8h.itm~ ~override~ SAY NAME2 @729 SAY IDENTIFIED_DESC @730 COPY ~spell_rev\spwi7##\spwi707.spl~ ~override~ // Summon Death Knight (Cacofiend) SAY NAME1 @731 SAY UNIDENTIFIED_DESC @732 COPY ~spell_rev\spwi7##\scrl8i.itm~ ~override~ SAY NAME2 @731 SAY IDENTIFIED_DESC @732 COPY ~spell_rev\spwi7##\spcaco.eff~ ~override~ COPY ~spell_rev\spwi7##\dvdeathk.bcs~ ~override~ COPY ~spell_rev\spwi7##\dvdeathk.cre~ ~override~ COPY ~spell_rev\spwi7##\dvdeathk.itm~ ~override~ COPY ~spell_rev\spwi7##\spwi708.spl~ ~override~ // Mantle SAY NAME1 @733 SAY UNIDENTIFIED_DESC @734 COPY ~spell_rev\spwi7##\scrl8j.itm~ ~override~ SAY NAME2 @733 SAY IDENTIFIED_DESC @734 COPY ~spell_rev\spwi7##\spwi710.spl~ ~override~ // Simbul's Spell Sequencer (previously named Spell Sequencer) SAY NAME1 @735 SAY UNIDENTIFIED_DESC @736 COPY ~spell_rev\spwi7##\scrl8l.itm~ ~override~ SAY NAME2 @735 SAY IDENTIFIED_DESC @736 COPY ~spell_rev\spwi7##\spwi710d.spl~ ~override~ SAY NAME1 @735 COPY ~spell_rev\spwi7##\spwi711.spl~ ~override~ // Sphere of Chaos SAY NAME1 @737 SAY UNIDENTIFIED_DESC @738 WRITE_SHORT 0x98 %dvschaos% COPY ~spell_rev\spwi7##\scrl8m.itm~ ~override~ SAY NAME2 @737 SAY IDENTIFIED_DESC @738 COPY ~spell_rev\spwi7##\spwi712.spl~ ~override~ // Delayed Blast Fireball SAY NAME1 @739 SAY UNIDENTIFIED_DESC @740 COPY ~spell_rev\spwi7##\scrl8n.itm~ ~override~ SAY NAME2 @739 SAY IDENTIFIED_DESC @740 COPY ~spell_rev\spwi7##\spwi713.spl~ ~override~ // Finger of Death SAY NAME1 @741 SAY UNIDENTIFIED_DESC @742 COPY ~spell_rev\spwi7##\scrl8o.itm~ ~override~ SAY NAME2 @741 SAY IDENTIFIED_DESC @742 COPY ~spell_rev\spwi7##\spwi714.spl~ ~override~ // Prismatic Spray SAY NAME1 @743 SAY UNIDENTIFIED_DESC @744 COPY ~spell_rev\spwi7##\scrl8p.itm~ ~override~ SAY NAME2 @743 SAY IDENTIFIED_DESC @744 COPY_EXISTING ~pspray.pro~ ~override~ WRITE_BYTE 0x200 0 WRITE_SHORT 0x204 256 WRITE_SHORT 0x206 256 COPY ~spell_rev\spwi7##\spwi715.spl~ ~override~ // Power Word Stun SAY NAME1 @745 SAY UNIDENTIFIED_DESC @746 COPY ~spell_rev\spwi7##\scrl8q.itm~ ~override~ SAY NAME2 @745 SAY IDENTIFIED_DESC @746 /* COPY ~spell_rev\spwi7##\spwi716.spl~ ~override~ // Mordenkainen's Sword SAY NAME1 @747 SAY UNIDENTIFIED_DESC @748 COPY ~spell_rev\spwi7##\scrl8r.itm~ ~override~ SAY NAME2 @747 SAY IDENTIFIED_DESC @748 COPY ~spell_rev\spwi7##\sword01.cre~ ~override~ COPY ~spell_rev\spwi7##\spmorsw.eff~ ~override~ COPY ~spell_rev\spwi7##\morsword.itm~ ~override~ COPY ~spell_rev\spwi7##\dvmsword.bcs~ ~override~ */ COPY ~spell_rev\spwi7##\spwi717.spl~ ~override~ // Summon Efreeti SAY NAME1 @749 SAY UNIDENTIFIED_DESC @750 COPY ~spell_rev\spwi7##\scrl8s.itm~ ~override~ SAY NAME2 @749 SAY IDENTIFIED_DESC @750 COPY ~spell_rev\spwi7##\dvefreet.eff~ ~override~ COPY ~spell_rev\spwi7##\dvefreet.cre~ ~override~ COPY ~spell_rev\spwi7##\dvefreet.itm~ ~override~ COPY ~spell_rev\spwi7##\dvefreet.bcs~ ~override~ COPY ~spell_rev\spwi7##\spwi718.spl~ ~override~ // Summon Djinni SAY NAME1 @751 SAY UNIDENTIFIED_DESC @752 COPY ~spell_rev\spwi7##\scrl8t.itm~ ~override~ SAY NAME2 @751 SAY IDENTIFIED_DESC @752 COPY ~spell_rev\spwi7##\dvdjinni.eff~ ~override~ COPY ~spell_rev\spwi7##\dvdjinni.cre~ ~override~ COPY ~spell_rev\spwi7##\dvdjinni.itm~ ~override~ COPY ~spell_rev\spwi7##\dvdjinni.bcs~ ~override~ COPY ~spell_rev\spwi7##\spwi719.spl~ ~override~ // Summon Hakeashar SAY NAME1 @753 SAY UNIDENTIFIED_DESC @754 COPY ~spell_rev\spwi7##\scrl8u.itm~ ~override~ SAY NAME2 @753 SAY IDENTIFIED_DESC @754 COPY ~spell_rev\spwi7##\haksu.cre~ ~override~ COPY ~spell_rev\spwi7##\haksu.itm~ ~override~ COPY ~spell_rev\spwi7##\spwi720.spl~ ~override~ // Control Undead SAY NAME1 @755 SAY UNIDENTIFIED_DESC @756 COPY ~spell_rev\spwi7##\scrl8v.itm~ ~override~ SAY NAME2 @755 SAY IDENTIFIED_DESC @756 COPY ~spell_rev\spwi7##\dvctrund.eff~ ~override~ /* COPY ~spell_rev\spwi7##\spwi721.spl~ ~override~ // Mass Invisibility SAY NAME1 @757 SAY UNIDENTIFIED_DESC @758 COPY ~spell_rev\spwi7##\scrl8w.itm~ ~override~ SAY NAME2 @757 SAY IDENTIFIED_DESC @758 */ COPY ~spell_rev\spwi7##\spwi722.spl~ ~override~ // Limited Wish SAY NAME1 @759 SAY UNIDENTIFIED_DESC @760 COPY ~spell_rev\spwi7##\scrla4.itm~ ~override~ SAY NAME2 @759 SAY IDENTIFIED_DESC @760 COPY ~spell_rev\spwi7##\spin734.spl~ ~override~ // Mass Heal (limited wish) COPY ~spell_rev\spwi7##\spwi723.spl~ ~override~ // Improved Chaos Shield SAY NAME1 @761 SAY UNIDENTIFIED_DESC @762 /*-----------------------level 8-----------------------*/ COPY ~spell_rev\spwi8##\spwi801.spl~ ~override~ // Ghostform (new alteration spell) SAY NAME1 @767 SAY UNIDENTIFIED_DESC @768 COPY ~spell_rev\spwi8##\scrlw801.itm~ ~override~ SAY NAME2 @767 SAY IDENTIFIED_DESC @768 COPY ~spell_rev\spwi8##\spwi802.spl~ ~override~ // Spell Shield (moved from 5th level) SAY NAME1 @769 SAY UNIDENTIFIED_DESC @770 COPY ~spell_rev\spwi8##\scrl8x.itm~ ~override~ SAY NAME2 @769 SAY IDENTIFIED_DESC @770 COPY ~spell_rev\spwi8##\spwi803.spl~ ~override~ // Protection from Energy SAY NAME1 @771 SAY UNIDENTIFIED_DESC @772 COPY ~spell_rev\spwi8##\scrl8y.itm~ ~override~ SAY NAME2 @771 SAY IDENTIFIED_DESC @772 COPY ~spell_rev\spwi8##\spwi804.spl~ ~override~ // Simulacrum SAY NAME1 @773 SAY UNIDENTIFIED_DESC @774 COPY ~spell_rev\spwi8##\scrl8z.itm~ ~override~ SAY NAME2 @773 SAY IDENTIFIED_DESC @774 COPY ~spell_rev\spwi8##\SIMULACR.SPL~ ~override~ COPY ~spell_rev\spwi8##\spwi805.spl~ ~override~ // Pierce Shield SAY NAME1 @775 SAY UNIDENTIFIED_DESC @776 COPY ~spell_rev\spwi8##\scrl9a.itm~ ~override~ SAY NAME2 @775 SAY IDENTIFIED_DESC @776 COPY ~spell_rev\spwi8##\spwi807.spl~ ~override~ // Summon Fiend SAY NAME1 @777 SAY UNIDENTIFIED_DESC @778 COPY ~spell_rev\spwi8##\scrl9b.itm~ ~override~ SAY NAME2 @777 SAY IDENTIFIED_DESC @778 COPY ~spell_rev\spwi8##\demglasu.cre~ ~override~ COPY ~spell_rev\spwi8##\dvglabre.bcs~ ~override~ COPY ~spell_rev\spwi8##\demglasu.itm~ ~override~ COPY ~spell_rev\spwi8##\spwi808.spl~ ~override~ // Improved Mantle SAY NAME1 @779 SAY UNIDENTIFIED_DESC @780 COPY ~spell_rev\spwi8##\scrl9c.itm~ ~override~ SAY NAME2 @779 SAY IDENTIFIED_DESC @780 COPY ~spell_rev\spwi8##\spwi809.spl~ ~override~ // Simbul's Spell Trigger (previously named Spell Trigger) SAY NAME1 @781 SAY UNIDENTIFIED_DESC @782 COPY ~spell_rev\spwi8##\scrl9d.itm~ ~override~ SAY NAME2 @781 SAY IDENTIFIED_DESC @782 COPY ~spell_rev\spwi8##\spwi809d.spl~ ~override~ SAY NAME1 @781 /* ADD_PROJECTILE ~spell_rev\projectles\dvicloud.pro~ COPY ~spell_rev\spwi8##\spwi810.spl~ ~override~ // Incendiary Cloud SAY NAME1 @783 SAY UNIDENTIFIED_DESC @784 WRITE_SHORT 0x98 %dvicloud% SET dvicloud -= 1 */ APPEND ~clearair.2da~ ~Incendiary Cloud %dvicloud%~ COPY ~spell_rev\spwi8##\scrl9e.itm~ ~override~ SAY NAME2 @783 SAY IDENTIFIED_DESC @784 COPY ~spell_rev\spwi8##\dvicloud.eff~ ~override~ */ COPY_EXISTING ~GORLIC01.CRE~ ~override~ // Azamantes ~GORSKU01.CRE~ ~override~ // Flaming Skull ~HGSKU01.CRE~ ~override~ // Flaming Skull PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN LAUNCH_PATCH_FUNCTION ~ADD_CRE_IMMUNITY_TO_SPELL~ INT_VAR mi_strref = 0 // no text STR_VAR mi_spell = ~SPWI810~ // incendiary cloud END END BUT_ONLY COPY ~spell_rev\spwi8##\spwi811.spl~ ~override~ // Symbol of Weakness (replaces Symbol of Fear) SAY NAME1 @785 SAY UNIDENTIFIED_DESC @786 COPY ~spell_rev\spwi8##\scrl9f.itm~ ~override~ SAY NAME2 @785 SAY IDENTIFIED_DESC @786 COPY ~spell_rev\shared\spwi899.spl~ ~override~ // Innate Symbol of Weakness /* COPY ~spell_rev\spwi8##\spwi812.spl~ ~override~ // Abi-Dalzim's Horrid Wilting SAY NAME1 @787 SAY UNIDENTIFIED_DESC @788 COPY ~spell_rev\spwi8##\scrl9g.itm~ ~override~ SAY NAME2 @787 SAY IDENTIFIED_DESC @788 COPY ~spell_rev\spwi8##\dvhorrid.eff~ ~override~ */ COPY ~spell_rev\spwi8##\spwi813.spl~ ~override~ // Maze SAY NAME1 @789 SAY UNIDENTIFIED_DESC @790 COPY ~spell_rev\spwi8##\scrl9h.itm~ ~override~ SAY NAME2 @789 SAY IDENTIFIED_DESC @790 COPY ~spell_rev\spwi8##\spwi815.spl~ ~override~ // Power Word Blind SAY NAME1 @791 SAY UNIDENTIFIED_DESC @792 COPY ~spell_rev\spwi8##\scrl9j.itm~ ~override~ SAY NAME2 @791 SAY IDENTIFIED_DESC @792 COPY_EXISTING ~holdsumm.pro~ ~override~ WRITE_SHORT 0x204 110 WRITE_SHORT 0x206 110 COPY ~spell_rev\spwi8##\spwi816.spl~ ~override~ // Symbol of Stunning SAY NAME1 @793 SAY UNIDENTIFIED_DESC @794 COPY ~spell_rev\spwi8##\scrlap.itm~ ~override~ SAY NAME2 @793 SAY IDENTIFIED_DESC @794 /* COPY ~spell_rev\shared\spwi898.spl~ ~override~ // Innate Symbol of Stunning */ COPY ~spell_rev\spwi8##\spwi817.spl~ ~override~ // Symbol of Death SAY NAME1 @795 SAY UNIDENTIFIED_DESC @796 COPY ~spell_rev\spwi8##\scrlao.itm~ ~override~ SAY NAME2 @795 SAY IDENTIFIED_DESC @796 COPY ~spell_rev\shared\spwi897.spl~ ~override~ // Innate Symbol of Death COPY ~spell_rev\spwi8##\spwi818.spl~ ~override~ // Bigby's Clenched Fist SAY NAME1 @797 SAY UNIDENTIFIED_DESC @798 COPY ~spell_rev\spwi8##\scrlb1.itm~ ~override~ SAY NAME2 @797 SAY IDENTIFIED_DESC @798 COPY ~spell_rev\spwi8##\spwi818d.spl~ ~override~ /*-----------------------level 9-----------------------*/ COPY ~spell_rev\spwi9##\spwi902.spl~ ~override~ // Spell Trap SAY NAME1 @811 SAY UNIDENTIFIED_DESC @812 COPY ~spell_rev\spwi9##\scrl9l.itm~ ~override~ SAY NAME2 @811 SAY IDENTIFIED_DESC @812 ADD_PROJECTILE ~spell_rev\projectles\dvsplstr.pro~ COPY ~spell_rev\spwi9##\spwi903.spl~ ~override~ // Spellstrike SAY NAME1 @813 SAY UNIDENTIFIED_DESC @814 WRITE_SHORT 0x98 %dvsplstr% COPY ~spell_rev\spwi9##\scrl9m.itm~ ~override~ SAY NAME2 @813 SAY IDENTIFIED_DESC @814 COPY ~spell_rev\spwi9##\spwi905.spl~ ~override~ // Gate SAY NAME1 @815 SAY UNIDENTIFIED_DESC @816 COPY ~spell_rev\spwi9##\scrl9n.itm~ ~override~ SAY NAME2 @815 SAY IDENTIFIED_DESC @816 COPY ~spell_rev\spwi9##\dempitsu.cre~ ~override~ COPY ~spell_rev\spwi9##\dempitsu.itm~ ~override~ COPY ~spell_rev\spwi9##\dvpitsu.bcs~ ~override~ COPY ~spell_rev\spwi9##\spwi907.spl~ ~override~ // Absolute Immunity SAY NAME1 @817 SAY UNIDENTIFIED_DESC @818 COPY ~spell_rev\spwi9##\scrl9p.itm~ ~override~ SAY NAME2 @817 SAY IDENTIFIED_DESC @818 COPY ~spell_rev\spwi9##\spwi908.spl~ ~override~ // Chain Contingency SAY NAME1 @819 SAY UNIDENTIFIED_DESC @820 COPY ~spell_rev\spwi9##\scrl9q.itm~ ~override~ SAY NAME2 @819 SAY IDENTIFIED_DESC @820 /* COPY ~spell_rev\spwi9##\spwi909.spl~ ~override~ // Time Stop SAY NAME1 @821 SAY UNIDENTIFIED_DESC @822 COPY ~spell_rev\spwi9##\scrl9r.itm~ ~override~ SAY NAME2 @821 SAY IDENTIFIED_DESC @822 */ COPY ~spell_rev\spwi9##\spwi910.spl~ ~override~ // Imprisonment SAY NAME1 @823 SAY UNIDENTIFIED_DESC @824 COPY ~spell_rev\spwi9##\scrl9s.itm~ ~override~ SAY NAME2 @823 SAY IDENTIFIED_DESC @824 ADD_PROJECTILE ~spell_rev\projectles\dvmswarm.pro~ COPY ~spell_rev\spwi9##\spwi911.spl~ ~override~ // Meteor Swarm SAY NAME1 @825 SAY UNIDENTIFIED_DESC @826 WRITE_SHORT 0x98 %dvmswarm% COPY ~spell_rev\spwi9##\scrl9t.itm~ ~override~ SAY NAME2 @825 SAY IDENTIFIED_DESC @826 COPY ~spell_rev\spwi9##\dvmeteor.vvc~ ~override~ COPY ~spell_rev\spwi9##\spwi912.spl~ ~override~ // Power Word Kill SAY NAME1 @827 SAY UNIDENTIFIED_DESC @828 COPY ~spell_rev\spwi9##\scrl9u.itm~ ~override~ SAY NAME2 @827 SAY IDENTIFIED_DESC @828 COPY ~spell_rev\spwi9##\spwi913.spl~ ~override~ // Wail of the Banshee SAY NAME1 @829 SAY UNIDENTIFIED_DESC @830 COPY ~spell_rev\spwi9##\scrl9v.itm~ ~override~ SAY NAME2 @829 SAY IDENTIFIED_DESC @830 COPY ~spell_rev\spwi9##\spwi914.spl~ ~override~ // Energy Drain SAY NAME1 @831 SAY UNIDENTIFIED_DESC @832 COPY ~spell_rev\spwi9##\scrl9w.itm~ ~override~ SAY NAME2 @831 SAY IDENTIFIED_DESC @832 COPY ~spell_rev\spwi9##\dvenerdr.eff~ ~override~ COPY ~spell_rev\spwi9##\spwi915.spl~ ~override~ // Black Blade of Disaster SAY NAME1 @833 SAY UNIDENTIFIED_DESC @834 COPY ~spell_rev\spwi9##\scrl9x.itm~ ~override~ SAY NAME2 @833 SAY IDENTIFIED_DESC @834 COPY ~spell_rev\spwi9##\blakblad.itm~ ~override~ COPY ~spell_rev\spwi9##\spwi916.spl~ ~override~ // Shapechange SAY NAME1 @835 SAY UNIDENTIFIED_DESC @836 COPY ~spell_rev\spwi9##\scrl9y.itm~ ~override~ SAY NAME2 @835 SAY IDENTIFIED_DESC @836 COPY ~spell_rev\spwi9##\spwi971.itm~ ~override~ COPY ~spell_rev\spwi9##\spwi971.spl~ ~override~ COPY ~spell_rev\spwi9##\spwi972.itm~ ~override~ COPY ~spell_rev\spwi9##\spwi972.spl~ ~override~ COPY ~spell_rev\spwi9##\spwi973.itm~ ~override~ COPY ~spell_rev\spwi9##\spwi973.spl~ ~override~ COPY ~spell_rev\spwi9##\spwi974.itm~ ~override~ COPY ~spell_rev\spwi9##\spwi974.spl~ ~override~ COPY ~spell_rev\spwi9##\spwi975.itm~ ~override~ COPY ~spell_rev\spwi9##\spwi975.spl~ ~override~ SAY NAME1 ~Shapechange Spirit Troll~ COPY ~spell_rev\spwi9##\spwi976.spl~ ~override~ COPY ~spell_rev\spwi9##\spwi976.itm~ ~override~ COPY ~spell_rev\spwi9##\spwi917.spl~ ~override~ // Freedom SAY NAME1 @837 SAY UNIDENTIFIED_DESC @838 COPY ~spell_rev\spwi9##\scrl9z.itm~ ~override~ SAY NAME2 @837 SAY IDENTIFIED_DESC @838 COPY ~spell_rev\spwi9##\spwi918.spl~ ~override~ // Bigby's Crushing Hand SAY NAME1 @839 SAY UNIDENTIFIED_DESC @840 COPY ~spell_rev\spwi9##\scrlb2.itm~ ~override~ SAY NAME2 @839 SAY IDENTIFIED_DESC @840 COPY ~spell_rev\spwi9##\spwi918d.spl~ ~override~ COPY ~spell_rev\spwi9##\spwi919.spl~ ~override~ // Wish SAY NAME1 @841 SAY UNIDENTIFIED_DESC @842 COPY ~spell_rev\spwi9##\scrlb4.itm~ ~override~ SAY NAME2 @841 SAY IDENTIFIED_DESC @842 COPY ~spell_rev\spwi9##\p3-12m4.itm~ ~override~ /*-----------------------level 10-----------------------*/ COPY ~spell_rev\spwi9##\spwi920.spl~ ~override~ // Energy Blades SAY NAME1 @851 SAY UNIDENTIFIED_DESC @852 COPY ~spell_rev\spwi9##\eneblade.itm~ ~override~ SAY UNIDENTIFIED_DESC @1024 /* COPY ~spell_rev\spwi9##\spwi921.spl~ ~override~ // Improved Alacrity SAY NAME1 @853 SAY UNIDENTIFIED_DESC @854 */ COPY ~spell_rev\spwi9##\spwi922.spl~ ~override~ // Dragon's Breath SAY NAME1 @855 SAY UNIDENTIFIED_DESC @856 COPY ~spell_rev\spwi9##\spwi923.spl~ ~override~ // Summon Planetar SAY NAME1 @857 SAY UNIDENTIFIED_DESC @858 COPY ~spell_rev\spwi9##\plangood.cre~ ~override~ COPY ~spell_rev\spwi9##\dvplang.bcs~ ~override~ COPY ~spell_rev\spwi9##\dvplanga.itm~ ~override~ COPY ~spell_rev\spwi9##\dvplangr.itm~ ~override~ COPY ~spell_rev\spwi9##\dvplangw.itm~ ~override~ COPY ~spell_rev\spwi9##\dw#plang.spl~ ~override~ // SCSII Planetar COPY ~spell_rev\spwi9##\spwi924.spl~ ~override~ // Summon Dark Planetar SAY NAME1 @859 SAY UNIDENTIFIED_DESC @860 COPY ~spell_rev\spwi9##\planevil.cre~ ~override~ COPY ~spell_rev\spwi9##\dvplane.bcs~ ~override~ COPY ~spell_rev\spwi9##\dvplanea.itm~ ~override~ COPY ~spell_rev\spwi9##\dvplaner.itm~ ~override~ COPY ~spell_rev\spwi9##\dvplanew.itm~ ~override~ COPY ~spell_rev\spwi9##\dw#plane.spl~ ~override~ // SCSII Dark Planetar COPY ~spell_rev\spwi9##\spwi925.spl~ ~override~ // Comet SAY NAME1 @861 SAY UNIDENTIFIED_DESC @862 /*---------------------Tutu Scrolls---------------------*/ ACTION_IF (GAME_IS ~tutu tutu_totsc~) BEGIN ACTION_FOR_EACH scroll IN ~scrl1b~ // agannazar's scorcher ~scrl67~ // armor ~scrl71~ // blindness ~scrl85~ // blur ~scrl68~ // burning hands ~scrl5e~ // champion's strength ~scrl5p~ // chaos ~scrl5f~ // chaotic commands ~scrl69~ // charm person ~scrl82~ // chill touch ~scrl83~ // chromatic orb ~scrl1d~ // clairvoyance ~scrl2e~ // cloudkill ~scrl70~ // color spray ~scrl1u~ // confusion ~scrl56~ // cure serious wounds ~scrl5b~ // defensive harmony ~scrl86~ // detect evil ~scrl87~ // detect invisibility ~scrl1v~ // dimension door ~scrl1s~ // dire charm ~scrl1e~ // dispel magic ~scrl5n~ // domination ~scrl5h~ // emotion ~scrl5q~ // feeblemind ~scrl1g~ // fireball ~scrl1f~ // flame arrow ~scrl58~ // free action ~scrl72~ // friends ~scrl1t~ // ghost armor ~scrl1c~ // ghoul touch ~scrl66~ // grease ~scrl5i~ // greater malison ~scrl1h~ // haste ~scrl5o~ // hold monster ~scrl1i~ // hold person ~scrl89~ // horror ~scrl1y~ // improved invisibility ~scrl76~ // infravision ~scrl90~ // invisibility ~scrl91~ // knock ~scrl92~ // know opponent ~scrl84~ // larloch's minor drain ~scrl1k~ // lightning bolt ~scrl93~ // luck ~scrl77~ // magic missile ~scrl95~ // melf's acid arrow ~scrl5a~ // mental domination ~scrl1z~ // minor globe of invulnerability ~scrl96~ // mirror image ~scrl1l~ // monster summoning i ~scrl2a~ // monster summoning ii ~scrl2g~ // monster summoning iii ~scrl59~ // neutralize poison ~scrl1m~ // non-detection ~scrl5j~ // otiluke's resilient sphere ~scrl5m~ // polymorph self ~scrl78~ // protection from evil ~scrl1n~ // protection from normal missiles ~scrl73~ // protection from petrification ~scrl03~ // protection from acid ~scrl04~ // protection from cold ~scrl05~ // protection from electricity ~scrl5d~ // protection from evil 10' radius ~scrl06~ // protection from fire ~scrl5c~ // protection from lightning ~scrl07~ // protection from magic ~scrl15~ // protection from petrification ~scrl08~ // protection from poison ~scrl09~ // protection from undead ~scrl5g~ // remove curse ~scrl94~ // resist fear ~scrl79~ // shield ~scrl80~ // shocking grasp ~scrl1p~ // skull trap ~scrl81~ // sleep ~scrl1o~ // slow ~scrl5k~ // spirit armor ~scrl97~ // stinking cloud ~scrl98~ // strength ~scrl1q~ // vampiric touch ~scrl3g~ // vocalize ~scrl99~ // web BEGIN ACTION_IF (FILE_EXISTS_IN_GAME ~%scroll%.itm~) BEGIN COPY_EXISTING ~%scroll%.itm~ ~override\_%scroll%.itm~ END END END /*----------------Add New Spell Scrolls-----------------*/ COPY_EXISTING ~ribald3.sto~ ~override~ // Ribald's Secret Stash PATCH_IF (SOURCE_SIZE > 0x9b) BEGIN ADD_STORE_ITEM ~scrlw801~ AFTER ~scrl9v~ #1 #1 #0 ~IDENTIFIED~ #1 // Adds 1 Ghostform Scroll END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ~25spell.sto~ ~override~ // Arcana Archives PATCH_IF (SOURCE_SIZE > 0x9b) BEGIN ADD_STORE_ITEM ~scrlw801~ AFTER ~scrlb1~ #1 #0 #0 ~IDENTIFIED~ #2 // Adds 2 Ghostform Scrolls END BUT_ONLY_IF_IT_CHANGES //ENDCOMPONENT //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /*------Deva and Planetar Animations------*/ BEGIN @9995 DESIGNATED 10 REQUIRE_PREDICATE (ENGINE_IS ~tob~) @8997 // ~This component requires Baldur's Gate II: Throne of Bhaal be installed.~ // function for writing needed changes to creatures INCLUDE ~spell_rev\shared\celestial_animations.tph~ // changes for planetars DEFINE_PATCH_MACRO ~PLANETAR_ANIMATION~ BEGIN LAUNCH_PATCH_FUNCTION ~CELESTIAL_ANIMATIONS~ INT_VAR animation = 0x6201 // mage_male_elf metal_colour = 105 minor_colour = 25 major_colour = 105 skin_colour = 10 leather_colour = 105 armor_colour = 105 hair_colour = 25 battle_cry1_strref = 61729 battle_cry2_strref = (0 - 1) damage_strref = 61730 dying_strref = 61731 hurt_strref = 61732 select_common1_strref = 61724 select_common2_strref = 61725 select_common3_strref = 61726 STR_VAR armour = ~~ END END // changes for dark planetars DEFINE_PATCH_MACRO ~DARK_PLANETAR_ANIMATION~ BEGIN LAUNCH_PATCH_FUNCTION ~CELESTIAL_ANIMATIONS~ INT_VAR animation = 0x6211 // mage_female_elf metal_colour = 28 minor_colour = 47 major_colour = 66 skin_colour = 21 leather_colour = 66 armor_colour = 28 hair_colour = 101 battle_cry1_strref = 61758 battle_cry2_strref = 61761 damage_strref = 55381 dying_strref = 55382 hurt_strref = (0 - 1) select_common1_strref = 61759 select_common2_strref = (0 - 1) select_common3_strref = (0 - 1) STR_VAR armour = ~dvplanea~ END END // changes for devas DEFINE_PATCH_MACRO ~DEVA_ANIMATION~ BEGIN LAUNCH_PATCH_FUNCTION ~CELESTIAL_ANIMATIONS~ INT_VAR animation = 0x6001 // cleric_male_elf metal_colour = 105 minor_colour = 25 major_colour = 105 skin_colour = 10 leather_colour = 105 armor_colour = 105 hair_colour = 17 battle_cry1_strref = 61729 battle_cry2_strref = (0 - 1) damage_strref = 61730 dying_strref = 61731 hurt_strref = 61732 select_common1_strref = 61724 select_common2_strref = 61725 select_common3_strref = 61726 STR_VAR armour = ~dvdevaga~ END END // changes for fallen devas DEFINE_PATCH_MACRO ~FALLEN_DEVA_ANIMATION~ BEGIN LAUNCH_PATCH_FUNCTION ~CELESTIAL_ANIMATIONS~ INT_VAR animation = 0x6011 // cleric_female_elf metal_colour = 27 minor_colour = 27 major_colour = 19 skin_colour = 21 leather_colour = 14 armor_colour = 19 hair_colour = 6 battle_cry1_strref = 61758 battle_cry2_strref = 61761 damage_strref = 55381 dying_strref = 55382 hurt_strref = (0 - 1) select_common1_strref = 61759 select_common2_strref = (0 - 1) select_common3_strref = (0 - 1) STR_VAR armour = ~dvdevaea~ END END // copy over items for wings, weapons, and armour COPY ~spell_rev\shared\wings~ ~override~ ACTION_IF (NOT MOD_IS_INSTALLED ~setup-spell_rev.tp2~ 0) BEGIN COPY ~spell_rev\spwi9##\dvplanga.itm~ ~override~ COPY ~spell_rev\spwi9##\dvplangw.itm~ ~override~ COPY ~spell_rev\spwi9##\dvplanea.itm~ ~override~ COPY ~spell_rev\spwi9##\dvplanew.itm~ ~override~ COPY ~spell_rev\sppr7##\dvdevaga.itm~ ~override~ COPY ~spell_rev\sppr7##\dvdevagw.itm~ ~override~ COPY ~spell_rev\sppr7##\dvdevaea.itm~ ~override~ COPY ~spell_rev\sppr7##\dvdevaew.itm~ ~override~ END // patch weapons to use real animations COPY_EXISTING ~dvplangw.itm~ ~override~ ~dvplanew.itm~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN WRITE_ASCII 0x22 ~S2~ // two-handed sword END BUT_ONLY COPY_EXISTING ~dvdevaew.itm~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN WRITE_ASCII 0x22 ~FS~ // flaming sword END BUT_ONLY COPY_EXISTING ~dvdevagw.itm~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN WRITE_ASCII 0x22 ~MC~ // mace END BUT_ONLY // patch creatures COPY_EXISTING ~planevil.cre~ ~override~ // Dark Planetar PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN LAUNCH_PATCH_MACRO ~DARK_PLANETAR_ANIMATION~ REPLACE_CRE_ITEM ~dvplanew~ #0 #0 #0 ~unstealable~ ~weapon1~ EQUIP TWOHANDED END BUT_ONLY COPY_EXISTING ~devaevil.cre~ ~override~ // Fallen Deva PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN LAUNCH_PATCH_MACRO ~FALLEN_DEVA_ANIMATION~ REPLACE_CRE_ITEM ~dvdevaew~ #0 #0 #0 ~unstealable~ ~weapon1~ EQUIP END BUT_ONLY COPY_EXISTING ~plangood.cre~ ~override~ // Planetar PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN LAUNCH_PATCH_MACRO ~PLANETAR_ANIMATION~ REPLACE_CRE_ITEM ~dvplangw~ #0 #0 #0 ~unstealable~ ~weapon1~ EQUIP TWOHANDED END BUT_ONLY COPY_EXISTING ~devagood.cre~ ~override~ // Deva PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN LAUNCH_PATCH_MACRO ~DEVA_ANIMATION~ REPLACE_CRE_ITEM ~dvdevagw~ #0 #0 #0 ~unstealable~ ~weapon1~ EQUIP END BUT_ONLY // p&p celestials compatibility ACTION_IF (MOD_IS_INSTALLED ~setup-celestials.tp2~ 0) BEGIN // patch weapons to use real animations COPY_EXISTING ~ca#planw.itm~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN WRITE_ASCII 0x22 ~S2~ // two-handed sword END BUT_ONLY COPY_EXISTING ~ca#asdm.itm~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN WRITE_ASCII 0x22 ~MC~ // mace // fix colour glow so that it looks awesomer READ_LONG 0x6a effects_off READ_SHORT 0x70 num_effects FOR (i = 0; i < num_effects; i += 1) BEGIN READ_SHORT (effects_off + 0x30*i) opcode PATCH_IF (opcode == 9) BEGIN // color glow pulse READ_SHORT (effects_off + 0x30*i + 0x0a) cycle_speed PATCH_IF (cycle_speed == 0) BEGIN WRITE_SHORT (effects_off + 0x30*i + 0x0a) 110 END END END END BUT_ONLY COPY_EXISTING ~ca#monrd.itm~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN WRITE_ASCII 0x22 ~QS~ // quarterstaff END BUT_ONLY COPY_EXISTING ~ca#movsw.itm~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN WRITE_ASCII 0x22 ~FS~ // flaming sword END BUT_ONLY // patch creatures COPY_EXISTING ~ca#plan.cre~ ~override~ // Planetar PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN LAUNCH_PATCH_MACRO ~PLANETAR_ANIMATION~ // re-equipping weapon as it's now 2-handed REPLACE_CRE_ITEM ~ca#planw~ #0 #0 #0 ~unstealable~ ~weapon1~ EQUIP TWOHANDED END BUT_ONLY COPY_EXISTING ~ca#dastr.cre~ ~override~ // Astral Deva PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN LAUNCH_PATCH_MACRO ~DEVA_ANIMATION~ END BUT_ONLY COPY_EXISTING ~ca#dmond.cre~ ~override~ // Monadic Deva PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN LAUNCH_PATCH_MACRO ~DEVA_ANIMATION~ // re-equipping weapon as it's now 2-handed REPLACE_CRE_ITEM ~ca#monrd~ #0 #0 #0 ~unstealable~ ~weapon1~ EQUIP TWOHANDED END BUT_ONLY COPY_EXISTING ~ca#dmova.cre~ ~override~ // Movanic Deva PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN LAUNCH_PATCH_MACRO ~DEVA_ANIMATION~ END BUT_ONLY END //ENDCOMPONENT //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /*------Mirror Image Fix------*/ BEGIN @9992 DESIGNATED 20 REQUIRE_PREDICATE (ENGINE_IS ~soa tob~) @8996 // ~This mod is designed for the Baldur's Gate II engine and will not function on other games.~ OUTER_PATCH_SAVE orig_bytes_1 ~~ BEGIN INSERT_BYTES 0x000 0x23 WRITE_LONG 0x000 0x888a0845 WRITE_LONG 0x004 0x00002e7d WRITE_LONG 0x008 0x8be84d88 WRITE_LONG 0x00c 0xbf0f0855 WRITE_LONG 0x010 0x00140482 WRITE_LONG 0x014 0x4d8b5000 WRITE_LONG 0x018 0xffe181e8 WRITE_LONG 0x01c 0x83000000 WRITE_SHORT 0x020 0x01c1 WRITE_BYTE 0x022 0x51 END OUTER_PATCH_SAVE patch_bytes_1 ~~ BEGIN INSERT_BYTES 0x000 0x23 WRITE_LONG 0x000 0x898bc84d WRITE_LONG 0x004 0x00000098 WRITE_LONG 0x008 0x0000e181 WRITE_LONG 0x00c 0xc9850100 WRITE_LONG 0x010 0x0144850f WRITE_LONG 0x014 0xbf0f0000 WRITE_LONG 0x018 0x00140488 WRITE_LONG 0x01c 0xc2835100 WRITE_SHORT 0x020 0x5201 WRITE_BYTE 0x022 0x90 END COPY bgmain.exe bgmain.exe READ_ASCII 0x00107ee4 target_bytes_1 ELSE 0 (0x23) PATCH_IF (~%target_bytes_1%~ STRING_EQUAL ~%orig_bytes_1%~) THEN BEGIN WRITE_ASCIIE 0x00107ee4 ~%patch_bytes_1%~ (0x23) END ELSE PATCH_PRINT ~Target bytes don't match. Aborting ...~ // list AoE projectiles ACTION_FOR_EACH ~pronumber~ IN // vanilla projectiles ~3~ // ARROWEX ~18~ // BULLETEX ~38~ // FIREBALL ~40~ // Lightning Bolt ~81~ // Call Lightning ~92~ // FIRESTOR ~95~ // CLOUD ~96~ // TRAPSKUL ~98~ // ICESTORM ~100~ // TRAPGLYP ~187~ // CLOUDKIL ~211~ // FIREBLNS ~213~ // LIGHTCHA ~223~ // CLOUDPC ~224~ // GOLCLOUD ~229~ // METSWARM ~230~ // INSEC3 ~232~ // INSEC4 ~234~ // PFIRE2 ~235~ // PSKULLT ~236~ // PCOMETT ~237~ // PWILT ~244~ // DFIREBL ~246~ // DRAGRED ~247~ // DRAGBLCK ~248~ // DRAGSILV ~250~ // CONECOLD ~251~ // PHOLYST ~252~ // PUNHLST ~253~ // PSPRAY (prismatic spray)... assuming BIGNAREA was a typo, 254 hasn't been added ~256~ // REDHIT // ~258~ // PFIRE3 (melf's minute meteors/sol's searing orb??) ~261~ // HOLYAREA ~262~ // UNLYAREA ~265~ // STRMVENG (storm of vengeance) ~266~ // Comet ~270~ // SPDRBRTH ~272~ // DRAGGREE ~273~ // GREEHIT BEGIN OUTER_SPRINT $mirror_ignore(~%pronumber%~) ~~ END ACTION_FOR_EACH ~pro~ IN // mod-added projectiles ~burnhand~ // Fixpack's OBC Burning Hands ~dvflame~ // SR's Flame Strike ~dvburnhd~ // SR's Burning Hands ~dvckill~ // SR's Cloudkill ~dvsunfir~ // SR's Sunfire ~dvafog~ // SR's Acid Fog ~dvicloud~ // SR's Incendiary Cloud ~dvmswarm~ // SR's Meteor Swarm BEGIN OUTER_SET pronumber = IDS_OF_SYMBOL (projectl ~%pro%~) + 1 ACTION_IF (pronumber > 0) BEGIN OUTER_SPRINT $mirror_ignore(~%pronumber%~) ~~ END END // patch all item abilities and spells using AoE projectiles COPY_EXISTING_REGEXP GLOB ~^.+\.spl$~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN READ_LONG 0x64 abilities_off READ_SHORT 0x68 num_abilities PATCH_IF (num_abilities > 0) BEGIN READ_SHORT (abilities_off + 0x26) pronum PATCH_IF (VARIABLE_IS_SET $mirror_ignore(~%pronum%~)) BEGIN READ_BYTE 0x1b flags WRITE_BYTE 0x1b (flags BOR 0b00000001) END END END BUT_ONLY COPY_EXISTING_REGEXP GLOB ~^.+\.itm$~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN READ_LONG 0x64 abilities_off READ_SHORT 0x68 num_abilities FOR (i = 0; i < num_abilities; i += 1) BEGIN READ_SHORT (abilities_off + 0x38*i + 0x2a) pronum PATCH_IF (VARIABLE_IS_SET $mirror_ignore(~%pronum%~)) BEGIN READ_BYTE (abilities_off + 0x38*i + 0x29) flags WRITE_BYTE (abilities_off + 0x38*i + 0x29) (flags BOR 0b00000001) END END END BUT_ONLY // now patch special cases where the spell/item ability isn't using an AoE-specific projectile that exist... // ...in both SR and vanilla COPY_EXISTING ~abzaway.spl~ ~override~ // custom abazigal spell ~sppr707.spl~ ~override~ // sunray's base damage ~sppr720.spl~ ~override~ // earthquake ~sppr730d.spl~ ~override~ // aura of flaming death PATCH_IF (SOURCE_SIZE > 0x71) BEGIN READ_BYTE 0x1b flags WRITE_BYTE 0x1b (flags BOR 0b00000001) END BUT_ONLY ACTION_IF (MOD_IS_INSTALLED ~setup-spell_rev.tp2~ 0) BEGIN // ...only in SR ACTION_FOR_EACH spell IN ~sppr313d~ // holy smite (can't bypass MI in vanilla) ~sppr314d~ // unholy blight (can't bypass MI in vanilla) ~spwi403a~ // fire shield blue ~spwi403b~ ~spwi403c~ ~spwi403d~ ~spwi403e~ ~spwi403f~ ~spwi403g~ ~spwi403h~ ~spwi418a~ // fire shield red ~spwi418b~ ~spwi418c~ ~spwi418d~ ~spwi418e~ ~spwi418f~ ~spwi418g~ ~spwi418h~ ~spwi616~ // disintegrate ~sppr319b~ // summon insects (can't bypass MI in vanilla) ~sppr517b~ // insect plague (can't bypass MI in vanilla) ~sppr606d~ // fire seeds (with this as a spell, Protection from Fire can protect against the animation) ~sppr609f~ // false dawn (can't bypass MI in vanilla) ~sppr707f~ // sunray's undead damage (can't bypass MI in vanilla) ~sppr717b~ // creeping doom (can't bypass MI in vanilla) BEGIN COPY_EXISTING ~%spell%.spl~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN READ_BYTE 0x1b flags WRITE_BYTE 0x1b (flags BOR 0b00000001) END BUT_ONLY END END ELSE BEGIN // ...and only in vanilla ACTION_FOR_EACH spell IN ~sppr951d~ // fire shield blue ~sppr952d~ // fire shield red BEGIN COPY_EXISTING ~%spell%.spl~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN READ_BYTE 0x1b flags WRITE_BYTE 0x1b (flags BOR 0b00000001) END BUT_ONLY END COPY_EXISTING ~fireseed.itm~ ~override~ // fire seeds PATCH_IF (SOURCE_SIZE > 0x71) BEGIN READ_LONG 0x64 abilities_off READ_SHORT 0x68 num_abilities FOR (i = 0; i < num_abilities; i += 1) BEGIN READ_BYTE (abilities_off + 0x38*i + 0x29) flags WRITE_BYTE (abilities_off + 0x38*i + 0x29) (flags BOR 0b00000001) END END BUT_ONLY END // fix MI to keep caster level (not needed with SR's Mirror Image) ACTION_IF (NOT MOD_IS_INSTALLED ~setup-spell_rev.tp2~ 0) BEGIN OUTER_PATCH_SAVE orig_bytes_1 ~~ BEGIN INSERT_BYTES 0x000 0x1e WRITE_LONG 0x000 0x8bfc558b WRITE_LONG 0x004 0x488bd445 WRITE_LONG 0x008 0x484a8948 WRITE_LONG 0x00c 0x8bfc558b WRITE_LONG 0x010 0x888bd445 WRITE_LONG 0x014 0x000000cc WRITE_LONG 0x018 0x00cc8a89 WRITE_SHORT 0x01c 0x0000 END OUTER_PATCH_SAVE patch_bytes_1 ~~ BEGIN INSERT_BYTES 0x000 0x1e WRITE_LONG 0x000 0x8bd4558b WRITE_LONG 0x004 0x4889484a WRITE_LONG 0x008 0x70c08348 WRITE_LONG 0x00c 0x8b70c283 WRITE_LONG 0x010 0x4889544a WRITE_LONG 0x014 0x5c4a8b54 WRITE_LONG 0x018 0x905c4889 WRITE_SHORT 0x01c 0x9090 END COPY bgmain.exe bgmain.exe READ_ASCII 0x00121184 target_bytes_1 ELSE 0 (0x1e) PATCH_IF (~%target_bytes_1%~ STRING_EQUAL ~%orig_bytes_1%~) THEN BEGIN WRITE_ASCIIE 0x00121184 ~%patch_bytes_1%~ (0x1e) END ELSE PATCH_IF (~%target_bytes_1%~ STRING_EQUAL ~%patch_bytes_1%~) THEN BEGIN PATCH_PRINT ~Patch already applied. Skipping ...~ END ELSE INNER_ACTION BEGIN FAIL ~Target bytes don't match. Aborting ...~ END BUT_ONLY END //ENDCOMPONENT //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /*------Dispel Magic Fix------*/ BEGIN @9991 DESIGNATED 30 REQUIRE_PREDICATE (ENGINE_IS ~soa tob~) @8996 // ~This mod is designed for the Baldur's Gate II engine and will not function on other games.~ // Taimon's dispel fix OUTER_PATCH_SAVE orig_bytes_1 ~~ BEGIN INSERT_BYTES 0x000 0xe WRITE_LONG 0x000 0x8b0ac06b WRITE_LONG 0x004 0xe1811c4d WRITE_LONG 0x008 0x000000ff WRITE_SHORT 0x00c 0xc12b END OUTER_PATCH_SAVE patch_bytes_1 ~~ BEGIN INSERT_BYTES 0x000 0xe WRITE_LONG 0x000 0x811c4d8b WRITE_LONG 0x004 0x0000ffe1 WRITE_LONG 0x008 0x6bc12b00 WRITE_SHORT 0x00c 0x0ac0 END OUTER_PATCH_SAVE orig_bytes_2 ~~ BEGIN INSERT_BYTES 0x000 0x12 WRITE_LONG 0x000 0x7ff4553b WRITE_LONG 0x004 0x18458b0d WRITE_LONG 0x008 0x0000ff25 WRITE_LONG 0x00c 0x63f88300 WRITE_SHORT 0x010 0x097e END OUTER_PATCH_SAVE patch_bytes_2 ~~ BEGIN INSERT_BYTES 0x000 0x12 WRITE_LONG 0x000 0x7463fa83 WRITE_LONG 0x004 0x18458b0d WRITE_LONG 0x008 0x0000ff25 WRITE_LONG 0x00c 0xf4453b00 WRITE_SHORT 0x010 0x097c END COPY bgmain.exe bgmain.exe READ_ASCII 0x00143f42 target_bytes_1 ELSE 0 (0xe) READ_ASCII 0x00143f97 target_bytes_2 ELSE 0 (0x12) PATCH_IF (~%target_bytes_1%~ STRING_EQUAL ~%orig_bytes_1%~) AND (~%target_bytes_2%~ STRING_EQUAL ~%orig_bytes_2%~) THEN BEGIN WRITE_ASCIIE 0x00143f42 ~%patch_bytes_1%~ (0xe) WRITE_ASCIIE 0x00143f97 ~%patch_bytes_2%~ (0x12) END ELSE PATCH_IF (~%target_bytes_1%~ STRING_EQUAL ~%patch_bytes_1%~) AND (~%target_bytes_2%~ STRING_EQUAL ~%patch_bytes_2%~) THEN BEGIN PATCH_PRINT ~Patch already applied. Skipping ...~ END ELSE INNER_ACTION BEGIN FAIL ~Target bytes don't match. Aborting ...~ END BUT_ONLY // introducing Taimon's dispellable flag for items // This modifies the dispel effect to not automatically dispel items // in the magical weapon slot. You still need to delete the "Remove Item" // effects in the standard dispel spells. // The behavior is configurable with the upper word of param2 (0x08): // 0: Item is not dispelled. // 1: Item is always dispelled. // 2: Item is dispelled based on roughly the same probability that gets // used for dispelling the effects. // As there is no equivalent of a "caster level" for the item, the // the highest magic class level of the character that wields the item // is used. // // It also introduces a special item flag (bit 24) that skips the dispel // effect on that particular item, even if the effect itself is configured // to dispel items. OUTER_PATCH_SAVE orig_bytes_1 ~~ BEGIN INSERT_BYTES 0x000 0x252 WRITE_LONG 0x000 0x8bd04d89 WRITE_LONG 0x004 0x7883d045 WRITE_LONG 0x008 0x850f001c WRITE_LONG 0x00c 0x000000ba WRITE_LONG 0x010 0x81084d8b WRITE_LONG 0x014 0x003590c1 WRITE_LONG 0x018 0xfc4d8900 WRITE_LONG 0x01c 0x8b08558b WRITE_LONG 0x020 0x0035b082 WRITE_LONG 0x024 0xe8458900 WRITE_LONG 0x028 0x006a006a WRITE_LONG 0x02c 0x016a006a WRITE_LONG 0x030 0x51e84d8b WRITE_LONG 0x034 0x5208558b WRITE_LONG 0x038 0xe8fc4d8b WRITE_LONG 0x03c 0x0002b9a8 WRITE_LONG 0x040 0x0508458b WRITE_LONG 0x044 0x00003564 WRITE_LONG 0x048 0x8bfc4589 WRITE_LONG 0x04c 0x918b084d WRITE_LONG 0x050 0x00003584 WRITE_LONG 0x054 0x6ae45589 WRITE_LONG 0x058 0x6a006a00 WRITE_LONG 0x05c 0x8b016a00 WRITE_LONG 0x060 0x8b50e445 WRITE_LONG 0x064 0x8b51084d WRITE_LONG 0x068 0x79e8fc4d WRITE_LONG 0x06c 0x6a0002b9 WRITE_LONG 0x070 0x084d8b01 WRITE_LONG 0x074 0x3b20cfe8 WRITE_LONG 0x078 0x8b226a00 WRITE_LONG 0x07c 0xe8520855 WRITE_LONG 0x080 0x00007dd8 WRITE_LONG 0x084 0x6a08c483 WRITE_LONG 0x088 0x084d8b01 WRITE_LONG 0x08c 0x3b231ce8 WRITE_LONG 0x090 0x08458b00 WRITE_LONG 0x094 0x36dc80c7 WRITE_LONG 0x098 0x00010000 WRITE_LONG 0x09c 0x4d8b0000 WRITE_LONG 0x0a0 0xe081c708 WRITE_LONG 0x0a4 0x01000036 WRITE_LONG 0x0a8 0x8b000000 WRITE_LONG 0x0ac 0x82c70855 WRITE_LONG 0x0b0 0x000036e4 WRITE_LONG 0x0b4 0x00000001 WRITE_LONG 0x0b8 0xc7d0458b WRITE_LONG 0x0bc 0x00011480 WRITE_LONG 0x0c0 0x00000100 WRITE_LONG 0x0c4 0x01bce900 WRITE_LONG 0x0c8 0x4d8b0000 WRITE_LONG 0x0cc 0x1c7983d0 WRITE_LONG 0x0d0 0xdd850f01 WRITE_LONG 0x0d4 0xe8000000 WRITE_LONG 0x0d8 0x00520b44 WRITE_LONG 0x0dc 0xc164c06b WRITE_LONG 0x0e0 0x45880ff8 WRITE_LONG 0x0e4 0x08558bf8 WRITE_LONG 0x0e8 0x3590c281 WRITE_LONG 0x0ec 0x55890000 WRITE_LONG 0x0f0 0x08458bf4 WRITE_LONG 0x0f4 0x35b0888b WRITE_LONG 0x0f8 0x4d890000 WRITE_LONG 0x0fc 0xd0558be0 WRITE_LONG 0x100 0x00c4828a WRITE_LONG 0x104 0x8a500000 WRITE_LONG 0x108 0x6a51f84d WRITE_LONG 0x10c 0x8b016a01 WRITE_LONG 0x110 0x8b52e055 WRITE_LONG 0x114 0x8b500845 WRITE_LONG 0x118 0xc9e8f44d WRITE_LONG 0x11c 0x8b0002b8 WRITE_LONG 0x120 0xc181084d WRITE_LONG 0x124 0x00003564 WRITE_LONG 0x128 0x8bf44d89 WRITE_LONG 0x12c 0x828b0855 WRITE_LONG 0x130 0x00003584 WRITE_LONG 0x134 0x8bdc4589 WRITE_LONG 0x138 0x918ad04d WRITE_LONG 0x13c 0x000000c4 WRITE_LONG 0x140 0xf8458a52 WRITE_LONG 0x144 0x6a016a50 WRITE_LONG 0x148 0xdc4d8b01 WRITE_LONG 0x14c 0x08558b51 WRITE_LONG 0x150 0xf44d8b52 WRITE_LONG 0x154 0x02b88fe8 WRITE_LONG 0x158 0x8b016a00 WRITE_LONG 0x15c 0xe5e8084d WRITE_LONG 0x160 0x6a003b1f WRITE_LONG 0x164 0x08458b22 WRITE_LONG 0x168 0x7ceee850 WRITE_LONG 0x16c 0xc4830000 WRITE_LONG 0x170 0x8b016a08 WRITE_LONG 0x174 0x32e8084d WRITE_LONG 0x178 0x8b003b22 WRITE_LONG 0x17c 0x81c7084d WRITE_LONG 0x180 0x000036dc WRITE_LONG 0x184 0x00000001 WRITE_LONG 0x188 0xc708558b WRITE_LONG 0x18c 0x0036e082 WRITE_LONG 0x190 0x00000100 WRITE_LONG 0x194 0x08458b00 WRITE_LONG 0x198 0x36e480c7 WRITE_LONG 0x19c 0x00010000 WRITE_LONG 0x1a0 0x4d8b0000 WRITE_LONG 0x1a4 0x1481c7d0 WRITE_LONG 0x1a8 0x01000001 WRITE_LONG 0x1ac 0xe9000000 WRITE_LONG 0x1b0 0x000000d2 WRITE_LONG 0x1b4 0x520a67e8 WRITE_LONG 0x1b8 0x64c06b00 WRITE_LONG 0x1bc 0x880ff8c1 WRITE_LONG 0x1c0 0x558bf045 WRITE_LONG 0x1c4 0x90c28108 WRITE_LONG 0x1c8 0x89000035 WRITE_LONG 0x1cc 0x458bec55 WRITE_LONG 0x1d0 0xb0888b08 WRITE_LONG 0x1d4 0x89000035 WRITE_LONG 0x1d8 0x558bd84d WRITE_LONG 0x1dc 0x18428ad0 WRITE_LONG 0x1e0 0xf04d8a50 WRITE_LONG 0x1e4 0x6a016a51 WRITE_LONG 0x1e8 0xd8558b01 WRITE_LONG 0x1ec 0x08458b52 WRITE_LONG 0x1f0 0xec4d8b50 WRITE_LONG 0x1f4 0x02b7efe8 WRITE_LONG 0x1f8 0x084d8b00 WRITE_LONG 0x1fc 0x3564c181 WRITE_LONG 0x200 0x4d890000 WRITE_LONG 0x204 0x08558bec WRITE_LONG 0x208 0x3584828b WRITE_LONG 0x20c 0x45890000 WRITE_LONG 0x210 0xd04d8bd4 WRITE_LONG 0x214 0x5218518a WRITE_LONG 0x218 0x50f0458a WRITE_LONG 0x21c 0x016a016a WRITE_LONG 0x220 0x51d44d8b WRITE_LONG 0x224 0x5208558b WRITE_LONG 0x228 0xe8ec4d8b WRITE_LONG 0x22c 0x0002b7b8 WRITE_LONG 0x230 0x4d8b016a WRITE_LONG 0x234 0x1f0ee808 WRITE_LONG 0x238 0x226a003b WRITE_LONG 0x23c 0x5008458b WRITE_LONG 0x240 0x007c17e8 WRITE_LONG 0x244 0x08c48300 WRITE_LONG 0x248 0x4d8b016a WRITE_LONG 0x24c 0x215be808 WRITE_SHORT 0x250 0x003b END OUTER_PATCH_SAVE patch_bytes_1 ~~ BEGIN INSERT_BYTES 0x000 0x252 WRITE_LONG 0x000 0x8bd04d89 WRITE_LONG 0x004 0xff251c41 WRITE_LONG 0x008 0x890000ff WRITE_LONG 0x00c 0x518bfc45 WRITE_LONG 0x010 0x10eac11c WRITE_LONG 0x014 0xe8f85589 WRITE_LONG 0x018 0x00520c04 WRITE_LONG 0x01c 0xc164c06b WRITE_LONG 0x020 0x45890ff8 WRITE_LONG 0x024 0xfc7d83f4 WRITE_LONG 0x028 0x33147500 WRITE_LONG 0x02c 0xf05589d2 WRITE_LONG 0x030 0x89ec5589 WRITE_LONG 0x034 0x45c7e855 WRITE_LONG 0x038 0x000001e4 WRITE_LONG 0x03c 0x8349eb00 WRITE_LONG 0x040 0x7501fc7d WRITE_LONG 0x044 0xd04d8b24 WRITE_LONG 0x048 0x818ac033 WRITE_LONG 0x04c 0x000000c4 WRITE_LONG 0x050 0x8bf04589 WRITE_LONG 0x054 0x5589f455 WRITE_LONG 0x058 0xe845c7ec WRITE_LONG 0x05c 0x00000001 WRITE_LONG 0x060 0x01e445c7 WRITE_LONG 0x064 0xeb000000 WRITE_LONG 0x068 0xd04d8b1f WRITE_LONG 0x06c 0x418ac033 WRITE_LONG 0x070 0xf0458918 WRITE_LONG 0x074 0x89f4558b WRITE_LONG 0x078 0x45c7ec55 WRITE_LONG 0x07c 0x000001e8 WRITE_LONG 0x080 0xe445c700 WRITE_LONG 0x084 0x00000001 WRITE_LONG 0x088 0x8b084d8b WRITE_LONG 0x08c 0x0035b081 WRITE_LONG 0x090 0xf075ff00 WRITE_LONG 0x094 0xffec75ff WRITE_LONG 0x098 0x75ffe875 WRITE_LONG 0x09c 0x815150e4 WRITE_LONG 0x0a0 0x003590c1 WRITE_LONG 0x0a4 0xb93ee800 WRITE_LONG 0x0a8 0x4d8b0002 WRITE_LONG 0x0ac 0x84818b08 WRITE_LONG 0x0b0 0xff000035 WRITE_LONG 0x0b4 0x75fff075 WRITE_LONG 0x0b8 0xe875ffec WRITE_LONG 0x0bc 0x50e475ff WRITE_LONG 0x0c0 0x64c18151 WRITE_LONG 0x0c4 0xe8000035 WRITE_LONG 0x0c8 0x0002b91c WRITE_LONG 0x0cc 0x83084d8b WRITE_LONG 0x0d0 0x000ae2b9 WRITE_LONG 0x0d4 0x840f0000 WRITE_LONG 0x0d8 0x00000176 WRITE_LONG 0x0dc 0x0ae2898b WRITE_LONG 0x0e0 0xcae80000 WRITE_LONG 0x0e4 0x2500092f WRITE_LONG 0x0e8 0x01000000 WRITE_LONG 0x0ec 0x850fc085 WRITE_LONG 0x0f0 0x0000015e WRITE_LONG 0x0f4 0x00f87d83 WRITE_LONG 0x0f8 0x0154840f WRITE_LONG 0x0fc 0x7d830000 WRITE_LONG 0x100 0x840f01f8 WRITE_LONG 0x104 0x000000ae WRITE_LONG 0x108 0x83084d8b WRITE_LONG 0x10c 0x006412b9 WRITE_LONG 0x110 0x0d740000 WRITE_LONG 0x114 0x0508458b WRITE_LONG 0x118 0x00000b0a WRITE_LONG 0x11c 0xebe04589 WRITE_LONG 0x120 0x08458b0b WRITE_LONG 0x124 0x0013c205 WRITE_LONG 0x128 0xe0458900 WRITE_LONG 0x12c 0xe81cc183 WRITE_LONG 0x130 0xffefd290 WRITE_LONG 0x134 0xe04d8b50 WRITE_LONG 0x138 0xf5d3dde8 WRITE_LONG 0x13c 0x00ff25ff WRITE_LONG 0x140 0x45890000 WRITE_LONG 0x144 0x084d8bdc WRITE_LONG 0x148 0xe81cc183 WRITE_LONG 0x14c 0xffefd274 WRITE_LONG 0x150 0xe04d8b50 WRITE_LONG 0x154 0xf5d274e8 WRITE_LONG 0x158 0x00ff25ff WRITE_LONG 0x15c 0x45890000 WRITE_LONG 0x160 0xdc558bd8 WRITE_LONG 0x164 0x057dd03b WRITE_LONG 0x168 0xebd44589 WRITE_LONG 0x16c 0xd4558903 WRITE_LONG 0x170 0x85fc4d8b WRITE_LONG 0x174 0x8b0c75c9 WRITE_LONG 0x178 0x888ad045 WRITE_LONG 0x17c 0x000000c4 WRITE_LONG 0x180 0x8bf04d89 WRITE_LONG 0x184 0x558bd445 WRITE_LONG 0x188 0x76c22bf0 WRITE_LONG 0x18c 0x0ac06b05 WRITE_LONG 0x190 0xc06b03eb WRITE_LONG 0x194 0x32c08305 WRITE_LONG 0x198 0x81f44d8b WRITE_LONG 0x19c 0x0000ffe1 WRITE_LONG 0x1a0 0x0fc98500 WRITE_LONG 0x1a4 0x0000a984 WRITE_LONG 0x1a8 0x63f98300 WRITE_LONG 0x1ac 0xc83b0874 WRITE_LONG 0x1b0 0x009c8c0f WRITE_LONG 0x1b4 0x016a0000 WRITE_LONG 0x1b8 0xe8084d8b WRITE_LONG 0x1bc 0x003b1f88 WRITE_LONG 0x1c0 0x458b226a WRITE_LONG 0x1c4 0x91e85008 WRITE_LONG 0x1c8 0x8300007c WRITE_LONG 0x1cc 0x016a08c4 WRITE_LONG 0x1d0 0xe8084d8b WRITE_LONG 0x1d4 0x003b21d5 WRITE_LONG 0x1d8 0x909078eb WRITE_LONG 0x1dc 0x90909090 WRITE_LONG 0x1e0 0x90909090 WRITE_LONG 0x1e4 0x90909090 WRITE_LONG 0x1e8 0x90909090 WRITE_LONG 0x1ec 0x90909090 WRITE_LONG 0x1f0 0x90909090 WRITE_LONG 0x1f4 0x90909090 WRITE_LONG 0x1f8 0x90909090 WRITE_LONG 0x1fc 0x90909090 WRITE_LONG 0x200 0x90909090 WRITE_LONG 0x204 0x90909090 WRITE_LONG 0x208 0x90909090 WRITE_LONG 0x20c 0x90909090 WRITE_LONG 0x210 0x90909090 WRITE_LONG 0x214 0x90909090 WRITE_LONG 0x218 0x90909090 WRITE_LONG 0x21c 0x90909090 WRITE_LONG 0x220 0x90909090 WRITE_LONG 0x224 0x90909090 WRITE_LONG 0x228 0x90909090 WRITE_LONG 0x22c 0x90909090 WRITE_LONG 0x230 0x90909090 WRITE_LONG 0x234 0x90909090 WRITE_LONG 0x238 0x90909090 WRITE_LONG 0x23c 0x90909090 WRITE_LONG 0x240 0x90909090 WRITE_LONG 0x244 0x90909090 WRITE_LONG 0x248 0x90909090 WRITE_LONG 0x24c 0x90909090 WRITE_SHORT 0x250 0x9090 END COPY bgmain.exe bgmain.exe READ_ASCII 0x001184e0 target_bytes_1 ELSE 0 (0x252) PATCH_IF (~%target_bytes_1%~ STRING_EQUAL ~%orig_bytes_1%~) THEN BEGIN WRITE_ASCIIE 0x001184e0 ~%patch_bytes_1%~ (0x252) END ELSE PATCH_IF (~%target_bytes_1%~ STRING_EQUAL ~%patch_bytes_1%~) THEN BEGIN PATCH_PRINT ~Patch already applied. Skipping ...~ END ELSE INNER_ACTION BEGIN FAIL ~Target bytes don't match. Aborting ...~ END BUT_ONLY // checking all existing dispel effects, if they're scalable then kill the 'remove item [112]' opcode // and adjust the effect to dispel such items on the same terms as magical effect // // also we're making a list of items that may be created in the 'magical weapon' slot OUTER_SET counter=0 COPY_EXISTING_REGEXP GLOB ~^.+\.spl$~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN SET found_dispel=0 READ_LONG 0x64 ab_off READ_SHORT 0x68 ab_num READ_LONG 0x6a ef_off FOR (i=0;i<ab_num;i+=1) BEGIN READ_SHORT (ab_off+i*0x28+0x1e) ef_num READ_SHORT (ab_off+i*0x28+0x20) ef_ind FOR (k=0;k<ef_num;k+=1) BEGIN READ_SHORT (ef_off+(k+ef_ind)*0x30) opcode PATCH_IF opcode=58 BEGIN SET found_dispel=1 READ_LONG (ef_off+(k+ef_ind)*0x30+0x8) param PATCH_IF param!=0 BEGIN // if dispel's power is level based then... WRITE_SHORT (ef_off+(k+ef_ind)*0x30+0xa) 2 // ...items are dispelled as regular effects END ELSE BEGIN // if level independant then... WRITE_SHORT (ef_off+(k+ef_ind)*0x30+0xa) 1 // ...items are always dispelled END END PATCH_IF (opcode=111) BEGIN READ_ASCII (ef_off+(k+ef_ind)*0x30+0x14) resource (8) NULL SPRINT $item("%counter%") ~%resource%~ SET counter+=1 END END END // kill 'remove item' opcode // note: this one isn't very elegant, but the chance of it potentially ruining something seems too low PATCH_IF (found_dispel=1) BEGIN SET opcode_to_delete = 112 LAUNCH_PATCH_MACRO DELETE_SPELL_EFFECT END END BUT_ONLY COPY_EXISTING_REGEXP GLOB ~^.+\.itm$~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN SET found_dispel=0 READ_LONG 0x64 ab_off READ_SHORT 0x68 ab_num READ_LONG 0x6a ef_off FOR (i=0;i<ab_num;i+=1) BEGIN READ_SHORT (ab_off+i*0x38+0x1e) ef_num READ_SHORT (ab_off+i*0x38+0x20) ef_ind FOR (k=0;k<ef_num;k+=1) BEGIN READ_SHORT (ef_off+(ef_ind+k)*0x30) opcode PATCH_IF opcode=58 BEGIN SET found_dispel=1 READ_LONG (ef_off+(k+ef_ind)*0x30+0x8) param PATCH_IF param!=0 BEGIN // if dispel's power is level based then... WRITE_SHORT (ef_off+(k+ef_ind)*0x30+0xa) 2 // ...items are dispelled as regular effects END ELSE BEGIN // if level independant then... WRITE_SHORT (ef_off+(k+ef_ind)*0x30+0xa) 1 // ...items are always dispelled END END PATCH_IF opcode=111 BEGIN READ_ASCII (ef_off+(ef_ind+k)*0x30+0x14) resource (8) NULL SPRINT $item("%counter%") ~%resource%~ SET counter+=1 END END END // kill 'remove item' opcode PATCH_IF (found_dispel=1) BEGIN SET opcode_to_delete = 112 LAUNCH_PATCH_MACRO DELETE_ITEM_EFFECT END END BUT_ONLY COPY_EXISTING_REGEXP GLOB ~^.+\.eff$~ ~override~ PATCH_IF (SOURCE_SIZE > 0x109) BEGIN READ_LONG 0x10 opcode PATCH_IF opcode=58 BEGIN READ_LONG 0x20 param PATCH_IF param!=0 BEGIN WRITE_SHORT 0x22 2 END ELSE BEGIN WRITE_SHORT 0x22 1 END END PATCH_IF opcode=111 BEGIN READ_ASCII 0x30 resource (8) NULL SPRINT $item("%counter%") ~%resource%~ SET counter+=1 END END BUT_ONLY // patching all found 'magical' items to non-dispellable state OUTER_FOR (i=0;i<counter;i+=1) BEGIN OUTER_SPRINT name $item("%i%") ACTION_IF (FILE_EXISTS_IN_GAME ~%name%.itm~) BEGIN COPY_EXISTING ~%name%.itm~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN READ_BYTE 0x1b flags WRITE_BYTE 0x1b (flags BOR 0b00000001) END BUT_ONLY END END // undoing the previous patch to whitelisted items that should be dispellable ACTION_FOR_EACH item IN // magically created items ~sblade~ // selune's blade (unused in vanilla, maybe some other mod restores it??) ~eneblade~ // energy blades ~blakblad~ // black blade of disaster ~phanblad~ // phantom blade ~melfmet~ // melf's minute meteors ~sorb~ // sol's searing orb // SR-specific ~sorb12~ ~sorb13~ ~sorb14~ ~sorb15~ ~sorb16~ ~sorb17~ ~sorb18~ ~sorb19~ ~sorb20~ ~fireseed~ // fire seeds ~shammr~ // spiritual hammer ~shammr2~ ~shammr3~ // SR-specific ~shammr4~ ~shammr5~ ~fblade~ // flame blade // SR-specific ~fblade1~ ~fblade2~ ~fblade3~ ~fblade4~ ~fblade5~ ~fblade6~ ~fblade7~ ~fblade8~ ~fblade9~ ~shille~ // shillelagh // SR-specific ~shille2~ ~shille3~ ~sw1hseek~ // priest of helm's seeking sword // 'touch' spells ~ghoult~ // ghoul touch ~chillt~ // chill touch ~sgrasp01~ // shocking grasp ~sgrasp02~ ~sgrasp03~ ~sgrasp04~ ~sgrasp05~ // vanilla-specific ~sgrasp06~ ~sgrasp07~ ~sgrasp08~ ~sgrasp09~ ~sgrasp10~ ~sgrasp11~ ~sgrasp12~ ~sgrasp13~ ~sgrasp14~ ~sgrasp15~ ~sgrasp16~ ~sgrasp17~ ~sgrasp18~ ~sgrasp19~ ~sgrasp20~ // 'cause wounds' spells /* //~harm~ // harm //~slaylive~ // slay living //~critical~ // cause critical wounds //~serious~ // cause serious wounds */ // other spells ~dvsquir~ // polymorph other (SR specific) BEGIN ACTION_IF (FILE_EXISTS_IN_GAME ~%item%.itm~) BEGIN COPY_EXISTING ~%item%.itm~ ~override~ PATCH_IF (SOURCE_SIZE > 0x71) BEGIN READ_BYTE 0x1b flags WRITE_BYTE 0x1b (flags BAND 0b11111110) END BUT_ONLY END END //ENDCOMPONENT //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /*------Cure Sleep Fix------*/ BEGIN @9994 DESIGNATED 40 REQUIRE_PREDICATE (ENGINE_IS ~soa tob~) @8996 // ~This mod is designed for the Baldur's Gate II engine and will not function on other games.~ REQUIRE_COMPONENT ~setup-spell_rev.tp2~ 0 @8999 // ~This component requires that the main Spell Revisions component be installed.~ COPY_EXISTING ~bgmain.exe~ ~bgmain.exe~ PATCH_FOR_EACH "of" IN 0x1035f4 0x10362c BEGIN READ_BYTE "of" "val" PATCH_IF ("val" = 0x2 || "val" = 0x27) THEN BEGIN WRITE_BYTE "of" 0x27 END ELSE BEGIN INNER_ACTION BEGIN FAIL @7997 // ~Couldn't find the right places to patch in your bgmain.exe~ END END END BUT_ONLY_IF_IT_CHANGES //ENDCOMPONENT //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /*------Remove Disabled Spells from Spell Selection Screens (Chargen, Sorcerer Level-Up)------*/ BEGIN @9990 DESIGNATED 50 REQUIRE_PREDICATE (ENGINE_IS ~soa tob~) @8996 // ~This mod is designed for the Baldur's Gate II engine and will not function on other games.~ REQUIRE_COMPONENT ~setup-spell_rev.tp2~ 0 @8999 // ~This component requires that the main Spell Revisions component be installed.~ OUTER_PATCH_SAVE orig_bytes_1 ~~ BEGIN INSERT_BYTES 0x000 0x6 WRITE_LONG 0x000 0x01ecec81 WRITE_SHORT 0x004 0x0000 END OUTER_PATCH_SAVE patch_bytes_1 ~~ BEGIN INSERT_BYTES 0x000 0x6 WRITE_LONG 0x000 0x0218ec81 WRITE_SHORT 0x004 0x0000 END OUTER_PATCH_SAVE orig_bytes_2 ~~ BEGIN INSERT_BYTES 0x000 0x54 WRITE_LONG 0x000 0x958b2a75 WRITE_LONG 0x004 0xffffff7c WRITE_LONG 0x008 0x8920428b WRITE_LONG 0x00c 0xfffe6885 WRITE_LONG 0x010 0xd8c068ff WRITE_LONG 0x014 0x1a6a0000 WRITE_LONG 0x018 0xfe688d8b WRITE_LONG 0x01c 0x8b51ffff WRITE_LONG 0x020 0xfffe248d WRITE_LONG 0x024 0xdd33e8ff WRITE_LONG 0x028 0x28eb0000 WRITE_LONG 0x02c 0xff7c958b WRITE_LONG 0x030 0x428bffff WRITE_LONG 0x034 0x64858920 WRITE_LONG 0x038 0x68fffffe WRITE_LONG 0x03c 0x0000d8c1 WRITE_LONG 0x040 0x8d8b1a6a WRITE_LONG 0x044 0xfffffe64 WRITE_LONG 0x048 0x248d8b51 WRITE_LONG 0x04c 0xe8fffffe WRITE_LONG 0x050 0x0000dd09 END OUTER_PATCH_SAVE patch_bytes_2 ~~ BEGIN INSERT_BYTES 0x000 0x54 WRITE_LONG 0x000 0xc0680775 WRITE_LONG 0x004 0xeb0000d8 WRITE_LONG 0x008 0xd8c16805 WRITE_LONG 0x00c 0x1a6a0000 WRITE_LONG 0x010 0xff7c958b WRITE_LONG 0x014 0x428bffff WRITE_LONG 0x018 0x8d8b5020 WRITE_LONG 0x01c 0xfffffe24 WRITE_LONG 0x020 0x00dd38e8 WRITE_LONG 0x024 0xe48d8d00 WRITE_LONG 0x028 0xe8fffffd WRITE_LONG 0x02c 0xfff5ce45 WRITE_LONG 0x030 0x4c505368 WRITE_LONG 0x034 0x49486800 WRITE_LONG 0x038 0x8d544544 WRITE_LONG 0x03c 0xfffde48d WRITE_LONG 0x040 0x1984e8ff WRITE_LONG 0x044 0xc483ffd2 WRITE_LONG 0x048 0x9009eb08 WRITE_LONG 0x04c 0x90909090 WRITE_LONG 0x050 0x90909090 END OUTER_PATCH_SAVE orig_bytes_3 ~~ BEGIN INSERT_BYTES 0x000 0x5 WRITE_LONG 0x000 0x0005c7e9 WRITE_BYTE 0x004 0x00 END OUTER_PATCH_SAVE patch_bytes_3 ~~ BEGIN INSERT_BYTES 0x000 0x5 WRITE_LONG 0x000 0x0000f7e9 WRITE_BYTE 0x004 0x00 END OUTER_PATCH_SAVE orig_bytes_4 ~~ BEGIN INSERT_BYTES 0x000 0xc3 WRITE_LONG 0x000 0xb2be4068 WRITE_LONG 0x004 0xd08d8d00 WRITE_LONG 0x008 0xe8fffffe WRITE_LONG 0x00c 0x002b8cd0 WRITE_LONG 0x010 0x0574c085 WRITE_LONG 0x014 0xffff2ee9 WRITE_LONG 0x018 0xbe4868ff WRITE_LONG 0x01c 0x8d8d00b2 WRITE_LONG 0x020 0xfffffed0 WRITE_LONG 0x024 0x2b8cb7e8 WRITE_LONG 0x028 0x74c08500 WRITE_LONG 0x02c 0xff15e905 WRITE_LONG 0x030 0x5068ffff WRITE_LONG 0x034 0x8d00b2be WRITE_LONG 0x038 0xfffed08d WRITE_LONG 0x03c 0x8c9ee8ff WRITE_LONG 0x040 0xc085002b WRITE_LONG 0x044 0xfce90574 WRITE_LONG 0x048 0x68fffffe WRITE_LONG 0x04c 0x00b2be58 WRITE_LONG 0x050 0xfed08d8d WRITE_LONG 0x054 0x85e8ffff WRITE_LONG 0x058 0x85002b8c WRITE_LONG 0x05c 0xe90574c0 WRITE_LONG 0x060 0xfffffee3 WRITE_LONG 0x064 0xb2be6068 WRITE_LONG 0x068 0xd08d8d00 WRITE_LONG 0x06c 0xe8fffffe WRITE_LONG 0x070 0x002b8c6c WRITE_LONG 0x074 0x0574c085 WRITE_LONG 0x078 0xfffecae9 WRITE_LONG 0x07c 0xbe6868ff WRITE_LONG 0x080 0x8d8d00b2 WRITE_LONG 0x084 0xfffffed0 WRITE_LONG 0x088 0x2b8c53e8 WRITE_LONG 0x08c 0x74c08500 WRITE_LONG 0x090 0xfeb1e905 WRITE_LONG 0x094 0x7068ffff WRITE_LONG 0x098 0x8d00b2be WRITE_LONG 0x09c 0xfffed08d WRITE_LONG 0x0a0 0x8c3ae8ff WRITE_LONG 0x0a4 0xc085002b WRITE_LONG 0x0a8 0x98e90574 WRITE_LONG 0x0ac 0x68fffffe WRITE_LONG 0x0b0 0x00b2be78 WRITE_LONG 0x0b4 0xfed08d8d WRITE_LONG 0x0b8 0x21e8ffff WRITE_LONG 0x0bc 0x85002b8c WRITE_SHORT 0x0c0 0x74c0 WRITE_BYTE 0x0c2 0x05 END OUTER_PATCH_SAVE patch_bytes_4 ~~ BEGIN INSERT_BYTES 0x000 0xc3 WRITE_LONG 0x000 0xfed08d8d WRITE_LONG 0x004 0x8d51ffff WRITE_LONG 0x008 0xfffde08d WRITE_LONG 0x00c 0xf423e8ff WRITE_LONG 0x010 0x8d8d0036 WRITE_LONG 0x014 0xfffffde0 WRITE_LONG 0x018 0x12586851 WRITE_LONG 0x01c 0xc18300b8 WRITE_LONG 0x020 0x32c3e804 WRITE_LONG 0x024 0x108bffd2 WRITE_LONG 0x028 0x7454e852 WRITE_LONG 0x02c 0xc4830035 WRITE_LONG 0x030 0xdc858904 WRITE_LONG 0x034 0x8dfffffd WRITE_LONG 0x038 0xfffde08d WRITE_LONG 0x03c 0xf385e8ff WRITE_LONG 0x040 0x858b0036 WRITE_LONG 0x044 0xfffffddc WRITE_LONG 0x048 0x7c74c085 WRITE_LONG 0x04c 0xfffef6e9 WRITE_LONG 0x050 0x909090ff WRITE_LONG 0x054 0x90909090 WRITE_LONG 0x058 0x90909090 WRITE_LONG 0x05c 0x90909090 WRITE_LONG 0x060 0x90909090 WRITE_LONG 0x064 0x90909090 WRITE_LONG 0x068 0x90909090 WRITE_LONG 0x06c 0x90909090 WRITE_LONG 0x070 0x90909090 WRITE_LONG 0x074 0x90909090 WRITE_LONG 0x078 0x90909090 WRITE_LONG 0x07c 0x90909090 WRITE_LONG 0x080 0x90909090 WRITE_LONG 0x084 0x90909090 WRITE_LONG 0x088 0x90909090 WRITE_LONG 0x08c 0x90909090 WRITE_LONG 0x090 0x90909090 WRITE_LONG 0x094 0x90909090 WRITE_LONG 0x098 0x90909090 WRITE_LONG 0x09c 0x90909090 WRITE_LONG 0x0a0 0x90909090 WRITE_LONG 0x0a4 0x90909090 WRITE_LONG 0x0a8 0x90909090 WRITE_LONG 0x0ac 0x008d8d90 WRITE_LONG 0x0b0 0xe8fffffe WRITE_LONG 0x0b4 0x0036f30f WRITE_LONG 0x0b8 0xfde48d8d WRITE_LONG 0x0bc 0x47e8ffff WRITE_SHORT 0x0c0 0xd5aa WRITE_BYTE 0x0c2 0xff END OUTER_PATCH_SAVE orig_bytes_5 ~~ BEGIN INSERT_BYTES 0x000 0x39 WRITE_LONG 0x000 0xb2be8068 WRITE_LONG 0x004 0xc88d8d00 WRITE_LONG 0x008 0xe8fffffe WRITE_LONG 0x00c 0x002b8a69 WRITE_LONG 0x010 0x840fc085 WRITE_LONG 0x014 0x0000038f WRITE_LONG 0x018 0x3bcc3d83 WRITE_LONG 0x01c 0x750000ab WRITE_LONG 0x020 0xbe886818 WRITE_LONG 0x024 0x8d8d00b2 WRITE_LONG 0x028 0xfffffec8 WRITE_LONG 0x02c 0x2b8b3fe8 WRITE_LONG 0x030 0x0fc08500 WRITE_LONG 0x034 0x00036e85 WRITE_BYTE 0x038 0x00 END OUTER_PATCH_SAVE patch_bytes_5 ~~ BEGIN INSERT_BYTES 0x000 0x39 WRITE_LONG 0x000 0x909037eb WRITE_LONG 0x004 0x90909090 WRITE_LONG 0x008 0x90909090 WRITE_LONG 0x00c 0x90909090 WRITE_LONG 0x010 0x90909090 WRITE_LONG 0x014 0x90909090 WRITE_LONG 0x018 0x90909090 WRITE_LONG 0x01c 0x90909090 WRITE_LONG 0x020 0x90909090 WRITE_LONG 0x024 0x90909090 WRITE_LONG 0x028 0x90909090 WRITE_LONG 0x02c 0x90909090 WRITE_LONG 0x030 0x90909090 WRITE_LONG 0x034 0x90909090 WRITE_BYTE 0x038 0x90 END OUTER_PATCH_SAVE orig_bytes_6 ~~ BEGIN INSERT_BYTES 0x000 0x29 WRITE_LONG 0x000 0x0204ec81 WRITE_LONG 0x004 0x8d890000 WRITE_LONG 0x008 0xfffffe1c WRITE_LONG 0x00c 0xb773cca1 WRITE_LONG 0x010 0xba888b00 WRITE_LONG 0x014 0x89000042 WRITE_LONG 0x018 0xfffe7c8d WRITE_LONG 0x01c 0x7c958bff WRITE_LONG 0x020 0x89fffffe WRITE_LONG 0x024 0xffff7495 WRITE_BYTE 0x028 0xff END OUTER_PATCH_SAVE patch_bytes_6 ~~ BEGIN INSERT_BYTES 0x000 0x29 WRITE_LONG 0x000 0x0230ec81 WRITE_LONG 0x004 0x8d890000 WRITE_LONG 0x008 0xfffffe1c WRITE_LONG 0x00c 0xb773cca1 WRITE_LONG 0x010 0xba888b00 WRITE_LONG 0x014 0x89000042 WRITE_LONG 0x018 0xffff748d WRITE_LONG 0x01c 0xcc8d8dff WRITE_LONG 0x020 0xe8fffffd WRITE_LONG 0x024 0xfff22fd0 WRITE_BYTE 0x028 0x90 END OUTER_PATCH_SAVE orig_bytes_7 ~~ BEGIN INSERT_BYTES 0x000 0x45 WRITE_LONG 0x000 0xfe1c858b WRITE_LONG 0x004 0x80c7ffff WRITE_LONG 0x008 0x00001476 WRITE_LONG 0x00c 0x00004362 WRITE_LONG 0x010 0xfe1c8d8b WRITE_LONG 0x014 0x81c7ffff WRITE_LONG 0x018 0x0000147c WRITE_LONG 0x01c 0x00004362 WRITE_LONG 0x020 0x8b08558b WRITE_LONG 0x024 0x85892042 WRITE_LONG 0x028 0xfffffe58 WRITE_LONG 0x02c 0x00436268 WRITE_LONG 0x030 0x8b1b6a00 WRITE_LONG 0x034 0xfffe588d WRITE_LONG 0x038 0x8d8b51ff WRITE_LONG 0x03c 0xfffffe1c WRITE_LONG 0x040 0x006a0ce8 WRITE_BYTE 0x044 0x00 END OUTER_PATCH_SAVE patch_bytes_7 ~~ BEGIN INSERT_BYTES 0x000 0x45 WRITE_LONG 0x000 0x004362b8 WRITE_LONG 0x004 0x1c8d8b00 WRITE_LONG 0x008 0x89fffffe WRITE_LONG 0x00c 0x00147681 WRITE_LONG 0x010 0x7c818900 WRITE_LONG 0x014 0x50000014 WRITE_LONG 0x018 0x558b1b6a WRITE_LONG 0x01c 0x20428b08 WRITE_LONG 0x020 0x6a2be850 WRITE_LONG 0x024 0x53680000 WRITE_LONG 0x028 0x68004c50 WRITE_LONG 0x02c 0x45444948 WRITE_LONG 0x030 0xcc8d8d54 WRITE_LONG 0x034 0xe8fffffd WRITE_LONG 0x038 0xffce76f0 WRITE_LONG 0x03c 0x9008c483 WRITE_LONG 0x040 0x90909090 WRITE_BYTE 0x044 0x90 END OUTER_PATCH_SAVE orig_bytes_8 ~~ BEGIN INSERT_BYTES 0x000 0x51 WRITE_LONG 0x000 0xb33e4c68 WRITE_LONG 0x004 0xcc8d8d00 WRITE_LONG 0x008 0xe8fffffe WRITE_LONG 0x00c 0x0027e8ec WRITE_LONG 0x010 0x840fc085 WRITE_LONG 0x014 0x000003a7 WRITE_LONG 0x018 0xb33e5468 WRITE_LONG 0x01c 0xcc8d8d00 WRITE_LONG 0x020 0xe8fffffe WRITE_LONG 0x024 0x0027e8d4 WRITE_LONG 0x028 0x840fc085 WRITE_LONG 0x02c 0x0000038f WRITE_LONG 0x030 0x3bcc3d83 WRITE_LONG 0x034 0x750000ab WRITE_LONG 0x038 0x3e5c6818 WRITE_LONG 0x03c 0x8d8d00b3 WRITE_LONG 0x040 0xfffffecc WRITE_LONG 0x044 0x27e9aae8 WRITE_LONG 0x048 0x0fc08500 WRITE_LONG 0x04c 0x00036e85 WRITE_BYTE 0x050 0x00 END OUTER_PATCH_SAVE patch_bytes_8 ~~ BEGIN INSERT_BYTES 0x000 0x51 WRITE_LONG 0x000 0xfecc8d8d WRITE_LONG 0x004 0x8d51ffff WRITE_LONG 0x008 0xfffdc88d WRITE_LONG 0x00c 0x5136e8ff WRITE_LONG 0x010 0x8d8d0033 WRITE_LONG 0x014 0xfffffdc8 WRITE_LONG 0x018 0x12586851 WRITE_LONG 0x01c 0xc18300b8 WRITE_LONG 0x020 0x8fd6e804 WRITE_LONG 0x024 0x108bffce WRITE_LONG 0x028 0xd167e852 WRITE_LONG 0x02c 0xc4830031 WRITE_LONG 0x030 0xc4858904 WRITE_LONG 0x034 0x8dfffffd WRITE_LONG 0x038 0xfffdc88d WRITE_LONG 0x03c 0x5098e8ff WRITE_LONG 0x040 0x858b0033 WRITE_LONG 0x044 0xfffffdc4 WRITE_LONG 0x048 0x850fc085 WRITE_LONG 0x04c 0x0000036f WRITE_BYTE 0x050 0x90 END OUTER_PATCH_SAVE orig_bytes_9 ~~ BEGIN INSERT_BYTES 0x000 0x68 WRITE_LONG 0x000 0xff70bd83 WRITE_LONG 0x004 0x7500ffff WRITE_LONG 0x008 0x68006a19 WRITE_LONG 0x00c 0x00b33edc WRITE_LONG 0x010 0xb33eec68 WRITE_LONG 0x014 0x09ad6800 WRITE_LONG 0x018 0x25e80000 WRITE_LONG 0x01c 0x83002834 WRITE_LONG 0x020 0x958b10c4 WRITE_LONG 0x024 0xfffffe1c WRITE_LONG 0x028 0x828ac033 WRITE_LONG 0x02c 0x00001456 WRITE_LONG 0x030 0xfe1c8d8b WRITE_LONG 0x034 0xd233ffff WRITE_LONG 0x038 0x1457918a WRITE_LONG 0x03c 0xc23b0000 WRITE_LONG 0x040 0x3268537d WRITE_LONG 0x044 0x8d00000a WRITE_LONG 0x048 0xfffe8485 WRITE_LONG 0x04c 0x18e850ff WRITE_LONG 0x050 0x83ffd1f5 WRITE_LONG 0x054 0x858908c4 WRITE_LONG 0x058 0xfffffdfc WRITE_LONG 0x05c 0xfdfc8d8b WRITE_LONG 0x060 0x8d89ffff WRITE_LONG 0x064 0xfffffdf8 END OUTER_PATCH_SAVE patch_bytes_9 ~~ BEGIN INSERT_BYTES 0x000 0x68 WRITE_LONG 0x000 0x1975c085 WRITE_LONG 0x004 0xdc68006a WRITE_LONG 0x008 0x6800b33e WRITE_LONG 0x00c 0x00b33eec WRITE_LONG 0x010 0x0009ad68 WRITE_LONG 0x014 0x342ae800 WRITE_LONG 0x018 0xc4830028 WRITE_LONG 0x01c 0xe88d8d10 WRITE_LONG 0x020 0xe8fffffd WRITE_LONG 0x024 0x00334c7d WRITE_LONG 0x028 0xfdcc8d8d WRITE_LONG 0x02c 0xb5e8ffff WRITE_LONG 0x030 0x8bffd203 WRITE_LONG 0x034 0xfffe1c95 WRITE_LONG 0x038 0x8ac033ff WRITE_LONG 0x03c 0x00145682 WRITE_LONG 0x040 0x57823a00 WRITE_LONG 0x044 0x7d000014 WRITE_LONG 0x048 0x0a32684c WRITE_LONG 0x04c 0x858d0000 WRITE_LONG 0x050 0xfffffe84 WRITE_LONG 0x054 0xf511e850 WRITE_LONG 0x058 0xc483ffd1 WRITE_LONG 0x05c 0xf8858908 WRITE_LONG 0x060 0x90fffffd WRITE_LONG 0x064 0x90909090 END COPY bgmain.exe bgmain.exe READ_ASCII 0x002e0ffe target_bytes_1 ELSE 0 (0x6) READ_ASCII 0x002e13bb target_bytes_2 ELSE 0 (0x54) READ_ASCII 0x002e14b7 target_bytes_3 ELSE 0 (0x5) READ_ASCII 0x002e1506 target_bytes_4 ELSE 0 (0xc3) READ_ASCII 0x002e1676 target_bytes_5 ELSE 0 (0x39) READ_ASCII 0x0031b238 target_bytes_6 ELSE 0 (0x29) READ_ASCII 0x0031b659 target_bytes_7 ELSE 0 (0x45) READ_ASCII 0x0031b7f3 target_bytes_8 ELSE 0 (0x51) READ_ASCII 0x0031bc28 target_bytes_9 ELSE 0 (0x68) PATCH_IF (~%target_bytes_1%~ STRING_EQUAL ~%orig_bytes_1%~) AND (~%target_bytes_2%~ STRING_EQUAL ~%orig_bytes_2%~) AND (~%target_bytes_3%~ STRING_EQUAL ~%orig_bytes_3%~) AND (~%target_bytes_4%~ STRING_EQUAL ~%orig_bytes_4%~) AND (~%target_bytes_5%~ STRING_EQUAL ~%orig_bytes_5%~) AND (~%target_bytes_6%~ STRING_EQUAL ~%orig_bytes_6%~) AND (~%target_bytes_7%~ STRING_EQUAL ~%orig_bytes_7%~) AND (~%target_bytes_8%~ STRING_EQUAL ~%orig_bytes_8%~) AND (~%target_bytes_9%~ STRING_EQUAL ~%orig_bytes_9%~) THEN BEGIN WRITE_ASCIIE 0x002e0ffe ~%patch_bytes_1%~ (0x6) WRITE_ASCIIE 0x002e13bb ~%patch_bytes_2%~ (0x54) WRITE_ASCIIE 0x002e14b7 ~%patch_bytes_3%~ (0x5) WRITE_ASCIIE 0x002e1506 ~%patch_bytes_4%~ (0xc3) WRITE_ASCIIE 0x002e1676 ~%patch_bytes_5%~ (0x39) WRITE_ASCIIE 0x0031b238 ~%patch_bytes_6%~ (0x29) WRITE_ASCIIE 0x0031b659 ~%patch_bytes_7%~ (0x45) WRITE_ASCIIE 0x0031b7f3 ~%patch_bytes_8%~ (0x51) WRITE_ASCIIE 0x0031bc28 ~%patch_bytes_9%~ (0x68) END ELSE PATCH_IF (~%target_bytes_1%~ STRING_EQUAL ~%patch_bytes_1%~) AND (~%target_bytes_2%~ STRING_EQUAL ~%patch_bytes_2%~) AND (~%target_bytes_3%~ STRING_EQUAL ~%patch_bytes_3%~) AND (~%target_bytes_4%~ STRING_EQUAL ~%patch_bytes_4%~) AND (~%target_bytes_5%~ STRING_EQUAL ~%patch_bytes_5%~) AND (~%target_bytes_6%~ STRING_EQUAL ~%patch_bytes_6%~) AND (~%target_bytes_7%~ STRING_EQUAL ~%patch_bytes_7%~) AND (~%target_bytes_8%~ STRING_EQUAL ~%patch_bytes_8%~) AND (~%target_bytes_9%~ STRING_EQUAL ~%patch_bytes_9%~) THEN BEGIN PATCH_PRINT ~Patch already applied. Skipping ...~ END ELSE INNER_ACTION BEGIN FAIL ~Target bytes don't match. Aborting ...~ END BUT_ONLY COPY ~spell_rev\shared\hidespl.2da~ ~override~ // stolen from BG2 Tweak Pack at G3 OUTER_INNER_PATCH ~12~ BEGIN WRITE_BYTE 1 0x09 READ_ASCII 1 tab (1) // 0x09, tab WRITE_BYTE 1 0x0a READ_ASCII 1 lnl (1) // 0x0a, Linux WRITE_BYTE 0 0x0d READ_ASCII 0 mnl (1) // 0x0d, Mac READ_ASCII 0 wnl (2) // 0x0d0a, Windows END OUTER_SPRINT disabled_spells ~~ OUTER_SPRINT disabled_spells ~%disabled_spells%SPWI319 1%wnl%~ // protection from fire is moved to 5th lvl OUTER_SPRINT disabled_spells ~%disabled_spells%SPWI320 1%wnl%~ // protection from cold is moved to 5th lvl //OUTER_SPRINT disabled_spells ~%disabled_spells%SPWI402 1%wnl%~ // SR re-enables Dimension Door OUTER_SPRINT disabled_spells ~%disabled_spells%SPWI519 1%wnl%~ // disable Wizard's Spell Shield //OUTER_SPRINT disabled_spells ~%disabled_spells%SPWI802 1%wnl%~ // SR uses this slot for Spell Shield/Greater Globe of Invulnerability APPEND ~hidespl.2da~ ~%disabled_spells%~ //ENDCOMPONENT //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ /*------Update Spellbooks of Joinable NPCs------*/ BEGIN @9989 DESIGNATED 60 REQUIRE_PREDICATE (ENGINE_IS ~soa tob~) @8996 // ~This mod is designed for the Baldur's Gate II engine and will not function on other games.~ REQUIRE_COMPONENT ~setup-spell_rev.tp2~ 0 @8999 // ~This component requires that the main Spell Revisions component be installed.~ FORBID_COMPONENT ~Setup-Divine_Remix.tp2~ 0 @8995 // ~This component will not work properly with Divine Remix installed.~ PRINT @7999 // ~Patching spellbooks of joinable NPCs, this may take a moment...~ // remove old spells, add new ones INCLUDE ~spell_rev\shared\fix_spellbooks.tph~ PRINT @7998 // ~Done!~ //ENDCOMPONENT //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\\\ ////\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ Link to comment
Demivrgvs Posted February 13, 2010 Share Posted February 13, 2010 OK, I tried editing the spell_rev tp2 file so that I could get only those spell_rev spells I wanted in my install. However, when I did my megamod install , the spell-rev mod install failed because of some bug in the tp2 file. I think I've sorted out the problem(some misplacing of th /* and */ ) but just wanted to check that it's Ok before I do another megamod install. Here's the tp2 file below, just in case someone spots an obvious error:-Seems fine, though I don't understand why you commented out some spells. I can understand why you commented out things like Project Image (you probably want to abuse it) or Horrid Wilting (you are for uber-damaging spells and I "nerfed" it)...but why commenting out things such as True Seeing and Time Stop? True Seeing has lost nothing, it's the very same spell with few more small features (e.g. immunity to Spook), while Time Stop is EXACTLY the same. P.S And what about Miscast Magic...wasn't you the one who liked V2's Sphere of Chaos causing wild magic surges? Link to comment
Strontium Dog Posted February 13, 2010 Author Share Posted February 13, 2010 Seems fine, though I don't understand why you commented out some spells. I can understand why you commented out things like Project Image (you probably want to abuse it) or Horrid Wilting (you are for uber-damaging spells and I "nerfed" it)...but why commenting out things such as True Seeing and Time Stop? True Seeing has lost nothing, it's the very same spell with few more small features (e.g. immunity to Spook), while Time Stop is EXACTLY the same. P.S And what about Miscast Magic...wasn't you the one who liked V2's Sphere of Chaos causing wild magic surges? Truse seeing and time stop are slightly improved re duration via the 2nd component of the spell50 mod which adds an extra round for every 3 levels above 20th level to those spells. I seem to have made a mistake re miscast magic, thanks. I'll deal with it. Link to comment
Jarno Mikkola Posted February 13, 2010 Share Posted February 13, 2010 but why commenting out things such as True Seeing and Time Stop? ...while Time Stop is EXACTLY the same. Is it wise to overwrite just to overwrite? Can't you just leave the spell as it is?(in case some other mod patches the spell!) Link to comment
Demivrgvs Posted February 13, 2010 Share Posted February 13, 2010 Truse seeing and time stop are slightly improved re duration via the 2nd component of the spell50 mod which adds an extra round for every 3 levels above 20th level to those spells. I seem to have made a mistake re miscast magic, thanks. I'll deal with it.A Time Stop which lasts 5 or more rounds?!! OMG!! but why commenting out things such as True Seeing and Time Stop? ...while Time Stop is EXACTLY the same. Is it wise to overwrite just to overwrite? Can't you just leave the spell as it is?(in case some other mod patches the spell!)I don't know what you mean with "wise", anyway even if Time Stop is untouched it's not a matter of "overwrite just to overwrite". Despite what some may believe "overwriting" isn't always a bad thing at all (though patching is better in 90% of cases). For example there's no way to safely patch a spell description and make sure the patch can take into account any change made by tons of mods (e.g. ironically Salk's mod would have been much more compatibile with IR if he made it overwrite my work). For example in this case if you install SR over a mod which makes Time Stop lasts a decade I wouldn't be able to detect it and the description would be erroneously set. I'd say I'm mid-way between the two opposites (e.g. Miloch vs Sikret). The former prefer to have almost anything as a patching separate/optional component, leaving players to decide amongst tons of different builds/installations, the latter envision a world where everything he write is "law" (which is not necessarily "bad" per se imo, and generally assures less bugs and much better overall "balance"). In general I actually think I'm more similar to Sikret when it comes to "master plan", because even if I try to please every player I'd also prefer most things to be mandatory (Mike struggled quite a lot to have me remove tons of things from IR's Main Component). I do try to support players who prefer to break my "laws" (Sikret doesn't), but for me a SR player should play the game without altering my work, and then discuss with me and other players if something needs to be improved, nerfed, tweaked or whatever. Long story short, a Time Stop which lasts 3 rounds is already the most powerful and exploitable spell ever, thus when someone install SR (which is supposed to make the whole spell system balanced) I want to be absolutely sure that if he wants a more powerful TS he does it on purpose (like Strontium), altering my work, and clearly going against "SR's community". Link to comment
Jarno Mikkola Posted February 13, 2010 Share Posted February 13, 2010 I'd say I'm mid-way between the two opposites (e.g. Miloch vs Sikret). The former prefer to have almost anything as a patching separate/optional component, leaving players to decide amongst tons of different builds/installations, the latter envision a world where everything he write is "law" (which is not necessarily "bad" per se imo, and generally assures less bugs and much better overall "balance"). In general I actually think I'm more similar to Sikret when it comes to "master plan", because even if I try to please every player I'd also prefer most things to be mandatory (Mike struggled quite a lot to have me remove tons of things from IR's Main Component). I do try to support players who prefer to break my "laws" (Sikret doesn't), but for me a SR player should play the game without altering my work, and then discuss with me and other players if something needs to be improved, nerfed, tweaked or whatever. Long story short, a Time Stop which lasts 3 rounds is already the most powerful and exploitable spell ever, thus when someone install SR (which is supposed to make the whole spell system balanced) I want to be absolutely sure that if he wants a more powerful TS he does it on purpose (like Strontium), altering my work, and clearly going against "SR's community". But what about a mod that patches the spell so it's more usable, as it includes a feature the usability needs. Say an feature that can be seen by an AI. Now, if you then over write the change, you'll destroy the AI! Yes, that can be over come with the right install order, but mostly not... AND you are not changing the spell!!!! Wise = Having the ability to discern or judge what is true, right, or lasting... link. Link to comment
Strontium Dog Posted February 13, 2010 Author Share Posted February 13, 2010 but why commenting out things such as True Seeing and Time Stop? ...while Time Stop is EXACTLY the same. Is it wise to overwrite just to overwrite? Can't you just leave the spell as it is?(in case some other mod patches the spell!) Well, those spells aren't patched, so that's fine. Link to comment
Jarno Mikkola Posted February 13, 2010 Share Posted February 13, 2010 but why commenting out things such as True Seeing and Time Stop? ...while Time Stop is EXACTLY the same. Is it wise to overwrite just to overwrite? Can't you just leave the spell as it is?(in case some other mod patches the spell!) Well, those spells aren't patched, so that's fine. Perhaps not by those 4 mods you use, but say you have a mod that does patch spells... yes, you then have to use proper install order. But in this case we are talking about a spell that doesn't get a change... so we could assume that if the original spell has certain small criteria that when checked will always produce the same result if the spell is unchanged and if that's true, the spell description can be upgraded without copying over the file, if the check fails it won't happen. Now if the player selects an option to force overwrite the files he can command the installer to do so and replace the current one and their description with the updated old one. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.