Skip to content

[MOD] - Change Kits and add Kit overlays.

2»

Comments

  • Gel87Gel87 Member Posts: 434
    Okay, version 8 had loads of bugs, missing things etc xD

    Version 9 is soon done.
    Im missing this as i know of:
    - Remove profience possibilities for shortbow for shaman kit.
    - Check or Poisonous root spile has the proper bams etc assosiated.
    - Manually build the Learn Cleric and Learn Druid spells into wizard book.
    - Fix the learn druid to cleric spellbook script. And manually make the learning spell.
    - All monks combined with add superkit to darkmoon did not add superkit… tried moving the function to live script, lets see.
    - So im super close to a finnished version of mod. Dare i say it allows several thousand new «builds», almost everything can be tuned and combined now.


    Then i think in done :)
    Met some wierdness where monk was reacting to class fighter, shaman was reacting to class druid. Fixed that, but allows to overlay druid kit on shamans via Ability/potion of customization.
    Built potion of customization into a spell instead, because it failed. But the real fault was:
    No trigger in dialog, affed a True() and it worked. So i guess i can convert back.
    Also had to change all LastSummonerOf(Myself) after dialog to LastTalkedToBy(Myself).
  • Gel87Gel87 Member Posts: 434
    Okay, here is version 9.
    1 thing dont work: Druid spells into cleric spellbook.

    All Customization feature dont work if you choose to many choices at once. But you can clua Console GelPot1 and do as many times as you want.
    C:CreateItem("GelPot1")

  • Gel87Gel87 Member Posts: 434
    Okay, now i think i fixed all bugs ^^
    Finally i got a fully working code i believe.

    Version 10:
  • Gel87Gel87 Member Posts: 434
    edited May 12
    VERSION 11 attached here.
    Added Luck and Lore features.
    Fixed psionic blast.
    Fixed some other stuff..

    Okay, so i tested the potion menu fully:
    Thaco
    Speedfactor
    Ac
    Theese had wrong description, chosing nerf gave buff etc… fixed.

    Imminity features had wrong targeting code, basicly added them to creature xD… same with innate spells… fixed

    Opened up the backstab section for shaman. Tested on the Barbarian / Shaman in combi with shaman invisible dance. Choose modifier value via potion system. Worked wonders. Enabled axe backstab in installer, so was done while dual wielding axes.

    Tested adding totemic druid as overlay on shaman, worked wonders. Spirit animals availeble.

    Future plans:
    - Add luck modifiers
    - Add lore modifisers
    - Add animation changes
    - Add more custom spells and innates and level based packages. Adding stuff from some kits i made and like.

    This way you can basicly make ur own kit exactly how you want it with some extra fun feature.

    Forexample change animation to mindflayer, add devour attack, psionic innate package based on level. Or ability per ability.

    Installer option:
    Add all classes to backstab.2da so you can use potion to add backstab modifier. I will make 1 section per relevant class.

    Since im stuck on phone i will start making codes for it:
    /////// ====GelTDia.D==== //////
    // GelPotionOfChoices
    IF ~GlobalLT("GelLuckChoice","LOCALS",1)~ THEN REPLY ~I want to modify my luck~ DO ~SetGlobal("GelLuckChoice","LOCALS",1)~ GOTO GelLuckChoice
    
    IF ~GlobalLT("GelLoreChoice","LOCALS",1)~ THEN REPLY ~I want to modify my lore score~ DO ~ SetGlobal("GelLoreChoice","LOCALS",1)~ GOTO GelLoreChoice
    
    IF ~~ THEN BEGIN GelLuckChoice
      SAY ~Choose your luck bonus~
        IF ~~ THEN REPLY ~+1 Luck.~ DO ~SetGlobal("GelLuckBonusPlus1","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+2 Luck.~ DO ~SetGlobal("GelLuckBonusPlus2","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+3 Luck.~ DO ~SetGlobal("GelLuckBonusPlus3","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+4 Luck.~ DO ~SetGlobal("GelLuckBonusPlus4","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-1 Luck.~ DO ~SetGlobal("GelLuckBonusMinus1","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-2 Luck.~ DO ~SetGlobal("GelLuckBonusMinus2","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-3 Luck.~ DO ~SetGlobal("GelLuckBonusMinus3","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-4 Luck.~ DO ~SetGlobal("GelLuckBonusMinus4","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~I dont want it, go back.~ GOTO GelPotionOfChoices 
    END
    
    IF ~~ THEN BEGIN GelLoreChoice
      SAY ~Choose your Lore bonus~
        IF ~~ THEN REPLY ~+10 Lore.~ DO ~SetGlobal("GelLoreBonusPlus1","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+20 Lore.~ DO ~SetGlobal("GelLoreBonusPlus2","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+30 Lore.~ DO ~SetGlobal("GelLoreBonusPlus3","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~+40 Lore.~ DO ~SetGlobal("GelLoreBonusPlus4","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-10 Lore.~ DO ~SetGlobal("GelLoreBonusMinus1","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-20 Lore.~ DO ~SetGlobal("GelLoreBonusMinus2","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-30 Lore.~ DO ~SetGlobal("GelLoreBonusMinus3","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~-40 Lore.~ DO ~SetGlobal("GelLoreBonusMinus4","LOCALS",1)~ GOTO GelPotionOfChoices
        IF ~~ THEN REPLY ~I dont want it, go back.~ GOTO GelPotionOfChoices
    END
    
    //// ==== GelTDia.baf //////
    IF
      Global("GelLuckBonusPlus1","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
        SetGlobal("GelLuckBonusPlus1","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusPlus2","LOCALS",1)
    THEN
      RESPONSE #100
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
         SetGlobal("GelLuckBonusPlus2","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusPlus3","LOCALS",1)
    THEN
      RESPONSE #100
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
         SetGlobal("GelLuckBonusPlus3","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusPlus4","LOCALS",1)
    THEN
      RESPONSE #100
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
         ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuP1",LastTalkedToBy(Myself)))
           SetGlobal("GelLuckBonusPlus4","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusMinus1","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLuckBonusMinus1","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusMinus2","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLuckBonusMinus2","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusMinus3","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLuckBonusMinus3","LOCALS",2)
    END
    
    IF
      Global("GelLuckBonusMinus4","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLuN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLuckBonusMinus4","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusPlus1","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusPlus1","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusPlus2","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusPlus2","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusPlus3","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusPlus3","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusPlus4","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoP1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusPlus4","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusMinus1","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusMinus1","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusMinus2","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusMinus2","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusMinus3","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusMinus3","LOCALS",2)
    END
    
    IF
      Global("GelLoreBonusMinus4","LOCALS",1)
    THEN
      RESPONSE #100
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLoN1",LastTalkedToBy(Myself)))
        SetGlobal("GelLoreBonusMinus4","LOCALS",2)
    END
    
    // copy easier on pc
    //
    
    
    Post edited by Gel87 on
  • Gel87Gel87 Member Posts: 434
    edited May 16
    I have made so much progress now.
    Adding loads of stuff.
    Adding loads of items.
    Adding loads of kits.
    There are so much updates now, so i had to take a break from implementing new stuff and actually make the new version 13? installable. Then i can test if all the bams etc are featured. And that is excellent to test on a completely different baldur's gate folder at work. Then i can easier see if i miss any bams etc.

    Once im done with implementing all the custom kits and spells and items i want, i can enjoy testing them out at work, finnishing up some good ideas i had, make new cool .bam files and balance some stuff better :D

    But since my PC is very old, i make a backup here:

  • Gel87Gel87 Member Posts: 434
    And the new stuff to implement:
    Dno why this one is so big..
  • Gel87Gel87 Member Posts: 434
    Okay, now i have added and tested way more. Newest update here. Fixed some bugs, changed from op code 147 to 171 in TMC and FMTC kits. (avoid xp gain by learning).

    I do have plans to introduce a few more kits and its spells later:
    Maleficent - FMC
    Siren - (Archer)
    Succumb Forest Demon - Shaman kit.
    Skeleton - FMT
    Demon Knight - Will convert from current thief to paladin.
    Necromancer Diablo style.(mainly as a spell package)
    Anti Bard (Glassmaster)

    And more animation changes.
    Skeleton
    Succumb
    Siren
    Orc
    Goblins
    Hoogoblin
    Ogre
    Ogre mage
    Githyankee
  • IllustairIllustair Member Posts: 897
    Looks great!

    How does this interact with mods that add spells, say, OlvynSpells?
  • Gel87Gel87 Member Posts: 434
    edited June 8
    Illustair wrote: »
    Looks great!

    How does this interact with mods that add spells, say, OlvynSpells?

    It depends. Dont know this mod excact.
    Usually not a problem.
    Most vanilla kits are added to the features + some of my own.

    So:
    - Clab table functions are appended, its not overwritten.
    - Overlay kits are in vanilla form, but often mods alter spells. Like RR alters the basespell and then its included, meanwhile death attack is a new named spell which i manual added. If RR is installed you will get it, it RR is not installed you will cast the spell to learn it but will learn nothing as it dont exist.
    - Actually changing the kit, will use the version of the kit your game has.
    - Druid to cleric -> Cleric spellbook, automatic and will find all devine between SPPR100 to 720 or 750 or so. Which means it will include SCS and Iceiwindifications spells.
    - Cleric and Druid spells into wizard book automaticly find all spells within its range, but i decided to only learn specific of it as a wizard with both wizard, druid, cleric and shamn spells included is pretty filled... So i ingored useless ones.

    In most cases your class will learn what ur game is set up to make them learn, same with vanilla kits. But custom kits will not be able to dual from into a new kit, or as overlay. But you can dual them, and then add a overlay on ur 2nd class. Or actually both when level is regained/class reactivated..

    Hard to explain. Your other mods will work, but they may not be content in the kitchanger: Dual to kit, dual to kit and keep old kit, will not work. For multiclasses or potion meny your custom kits should be able to overlay kits(if a multiclass able class).

    Spells will still be able to learn into mage book, and if game is set up to learn new custom spells into priest book that will work as before. I do not alter, i add/overlay and use the things that are in the game itself.

    But i do not search and build the dialog with all the kits your installation has, like Customizable NPC's does.

    I will try to better explain how it works:

    1. All Generalist clab table's gets appended a automatic summoning of kitchanger.
    * This results in: Are you or an NPC a generalist the kitchanger will be summoned.
    * NPC's which are already kitted will get it as well. Via script.
    * If you are a kit and then dual. You always dual into a generalist. Which means creature summon again. You can choose to keep that kit via spell package(if its a vanilla one). And then overwrite its true kit when you change to a new kit on 2nd class. This will clear ur old clab file, and once re-activation of first class happens a new generalist clab table will apear and summon the creature. Now the game reads you as a kind of multiclass example: FIGHTER_THIEF, and you can overlay kits both sides.
    * If you did not overwrite ur first kit, this re-activation point does not introduce a new generalist clab table and you will not get the creature upon class re-activation.
    * A multiclass will summon 2 creatures, so you can overlay 2 kits each side. Or none. The choice is urs. A triple class will summon 3 creatures, one each generalist clab table, and you can in u want overlay 3 kits each class.

    2. When you start, you will have to rest once to trigger the action to give player 1 the override script(NPC has it appended). you will also gain 2 x potions of customization. Player1D.bcs is a rest based script which triggers 1 IF section each rest. It was a fine place to put on a override script on player 1... NPC's are not affected by this. They already have the script appended.

    3. The potion of customization is a different tool, a different dialog. It has tons of choices to make the character however you want. I will maby add more later. But you can tune your stats both ways, add backstab, reduce backstab, add attributes. Add innate, wizard, priest spells, or spellpackages based on levels. You can change into some animations, more are planned, but now its like mindflayer, Banshee(Wailing Virgin), Siren i think, Half Dragon and possible skeleton, i dont remember. Ye vampire too. You can also change race, but i noticed not all the different installs support that, and you have to think about the dual class cases etc...). I have completed the game as Vampire Race, without any issues while using override script. So it should not break such features. Your race is also included in some dialogs troughout the game.

    The potion can also overlay kits. But only for classes that can be a part of a multiclass. Some choices are hidden from unrelevant classes.
    But some classes are read as 2 classes in the game:
    Shaman also react to Druid.
    Monk also react to Fighter.

    This means the potion menu allows overlaying kits from those classes in potion menu, meanwhile i prevented that i kitchanger dialog.

    I would adivse to read the two dialogs:
    GelTDia.D - Potion dialog
    GelNDia.D - Kitchanger dialog

    That will give a very good overview of whats possible.
    My last post contains the newest version:
    Version 15.

    Its more than a kitrelated thing now.
    Lets say you want to play as a Blade, but you would like backstab and 1/2 attacks per round on level 7 and 13, then potion menu can do that. It requires no kitchange or whatever.

    Lets say you want your paladin to backstab with 2 handed swords, well installer + potion menu allows that.

    You want ur whatever kit or class to have a psionic blast and change ur animation to mindflayer you can do that, but you can also add devour attacks, helmet, level scaled psionic pack if you want. You can choose to stop at +4 devour attacks, or go to +6 which are nasty OP.

    You shaman can overlay the druid kit with summon spirit animals, then change shaman dance to something else and add backstab on axes and add a scaled backstab with +1bonus at level 1, 9, 17.

    You can basicly build kits live... Buffs can be countered with XP nerf, thievery nerf or other custom nerfs, whatever you choose.

    The main thing is flexibility. It do not care about lore, gamerules or whatever. But its able to do so. The choice is urs ;)
    You can nerf yourself back to the stoneage, or basicly play godmode. Full freedom :P
    Post edited by Gel87 on
  • IllustairIllustair Member Posts: 897
    Can’t wait to get back into BG, and try this. Keep up the great work, and thank you!
  • Gel87Gel87 Member Posts: 434
    edited June 12
    Illustair wrote: »
    Can’t wait to get back into BG, and try this. Keep up the great work, and thank you!

    Yes its very fun :)
    The dual to shadowdancer is really fun.

    The new true kits i added are:
    - Barbarian / Shaman built upon a shaman class, with scriptet profiency system, custom spells, change of shaman dance.
    - Woodclan Ninja (Pretty much stalker, but more ninja. Custom Ninja Stars(dart profiency), Ninja charge, backstabs, custom profience setup and a few selective nature innates.
    - Banshee (Custom offensive mage)
    - Mindflayer Mage with devour attacks, head and psionic innates.
    - Superthief (All the bonues from all thief kits into 1, with faked hide in plain sight innate).
    - Supermage (Basicly 1 extra spell slot, but no bonuses to learning/savings and no restricitons)
    - Slinging Beastmaster and Cleirc / Slinging beastmaster. Basicly a kit with combined beastmaster and archer. And possible 5 profience in sling. Restricted all metal wepons and armors. Slinging beastmaster is fun alone, but also very nice to dual to cleric if focus on sling. Stalker kit can be overlayd if u want forexample backstab, bonus to hide and those 3 mage spells in devine book. Backstab with quarterstaff. Meanwhile the multiclass version is for multclass of the same combination.
    - Half Dragon Paladin. Restricted to swords, or done so via Thaco penalty and possibilites to be profiencent in other types. Draconic spells etc.
    - Shadow Lurker (Vampire Monk, loads of vampire abilities like bat swarm, Blood Drain, Bloodlink, and some other dark stuff)
    - T/M/C
    - F/T/M/C

    Maby some more which i had forgotten. Anyway, theese spells/innates etc are also part of the potion meny. To pick as singular ability, or as a ability or spell package which scales on level.
    So if you forexample liked the Woodclan ninja, but really want to play as a monk. Well thats no problem.
    You choose forexample monk. (Monk has some extra stuff in kitchanger). But kitchanger will only appear via baseclass ofc(generalist), then use potion menu:
    1. Add innate package for Woodclan ninja.
    2. Put on scaled backstab bonus 1 at lvl 1, 2 at level 9, 3 at lvl 17. Then u can do +1 extra incase u want more.
    3. Set profiency to dart at wanted value.
    Now you are a monk with:
    Ninja Charge ability.
    Can summon Shurikens which scale enchantment on level.
    Cast Black Powderer Smoke Bomb
    Will get some nature spells.
    Can backstab with monkfists, katana, longs sword, knife, shortsword.

    The potion menu also has a lot of custom abilities. You can forexample get the ability to summon a custom familiar. This familiar is a mage/thief and can be partied for potion/wand/scroll usage or to steal from stores. He can also pickpocket/open locks/disarm traps etc.

    There are so many choices its hard to write a readme xD
    Post edited by Gel87 on
  • Gel87Gel87 Member Posts: 434
    edited July 11
    Okay, i found a fault.

    The use any item patch section:
    It’s missing EVAL.

    Should be:
    Resource = EVAL (then rest of line)
    It also miss to get rid of a few restrictions:
    Bows
    Axes
    Crossbows
    Darts

    I will update later, currently i forced myself spear/halbard/staff only Kensai&barbarian -> shadowdancer with assassin overlay.

    Also installed the mod on a PC elsewhere today. All from scratch.
    The Woodclan Ninja kit has a folder issue. Did not notice back home as that folder exists on my PC...
    Så it's just a matter of changing path to the correct folder.
    Post edited by Gel87 on
  • Gel87Gel87 Member Posts: 434
    Okay so fixed some stuff. Newest update is 16:
  • Gel87Gel87 Member Posts: 434
    edited August 22
    Next change i will make is upgrade option for azuredge(this already exist in other mod), and i will make an item upgrade to combine human flesh+5 together with the RR leather armor which gives physical res :)

    And enable composit shortbow and some RR items for shaman :)

    Tested it on a unmodded install:
    - It seems that i used a dialog block which comes from either RR or other tweak to input my upgrades.
    I will have a look there. With RR it has zero issues with the new stuff now.
    - Azuredge og Human flesh/abishai upgrade i have made here on a PC.

    Things im working on now(only have a few hours on some evenings atm, so its slow) :
    1. Patching M'khiin gear to be usable by all shamans. (SOD)
    2. Rewrite some of M'khiin content so that it triggers if player1 is shaman.
    3. Add M'khiin items, and possible other SOD items to BG2EE
    4. Upgrade mod for M'khiin items in BG2EE
    5. Have a look on if I want to unlock some other NPC items to that class in general. (im also wondering if I should make them locked to thief/bard class by OP kode to avoid unbalance, or possible a own install option to hard restrict them to class/kit).

    I just think there are several cool shaman items in SoD which i never see, because i only play solo.
    And Rasaad's boots is nice, but not op for any monk.
    Valygard's Familiy armor is really strong and fun, but hard restricting it to stalker's and woodclan ninja would be a ranger buff.
    Keldorn's family armor is nice, but far from OP. Still a little lore breaking to unlock.
    Edwin's amulet is less relevant for solo mage, as amulet of power is better :P
    Xan's moonblade is a fun piece of art, and lets face it, Xan's never frontlining anyway.
    Jan's items are nice for general thief's, and the skulltrap launcher is cool :) As a solo you do not lack skill points at this point.
    And in general, i don't know to much about NPC locked gear, as I only play solo.
    So feel free to advise me on cool gear that could be unlocked for NPC only.

    M'khiin Axes are fun, and actually quite a new edition to a solo shaman.
    Throwing axe with +1 apr
    A mid leather armor
    A casting speed related robe
    A staff

    My plans for upgrades for those are some along the lines of:
    - The axe which is +2, will turn into +3 or +4 and have a electrical charge which has 10% to spread from caster. (more gimmic than effective).
    - The leather will have some elemental res boost or something, and enchantment increase. Possible something like +10% detect illusion. Possible immunity to web or something.
    - The robe will have a boost in form of 10% increased magical damage
    - The staff will increase enchantment and have a summon charge of ancient ghost.

    I will also patch the +2 bone club you find in spellhold which is so bad at that point its sold or ignored anyway. Idea is higher enchantment and stun vs undeads and +1d6 magical damage vs undeads.
    The amulet found in same area will be possible to fuse with amulet of power, and will give +1 strenght to summoned spirits as well.
    Post edited by Gel87 on
  • Gel87Gel87 Member Posts: 434
    edited August 24
    Okay, so i have added some "enable RR axes and Composit shortbows for shaman"
    As well as patching the M'Khiin items to be usable for all.
    As well as Patching the M'Khiin morphing ability on the items to only trigger on goblins.
    As well as Added a seperate path for Player 1 shamans if M'Khiin is not in party to achieve the items and have the dialogs.
    As well as upgrade mod for human flesh with abishai fusing and Upgrade mod for Azuredge.

    I have not had the pleasure to test it yet, but this PC keeps resetting its Immage, so i upload before i loose my progress.

    Next plan is:
    M'Khiin items to BG2EE + Item Upgrade section for them.
    And also i will add M'Khiin ability as a choice for Shamans.

    Next plan after that:
    Enable som more NPC content like Rasaads boots, Xan's Moonblade etc for none NPC's. Possible the armors of Keldorn and Valygar, and his sword.

  • _DD__DD_ Member Posts: 85
    There are more, but the first npc exclusive items I remembered were the short swords of Haer'dalis: Chaos and Entropy. It depends on your definition of cool but Chaos has the uncommon effect of reducing the enemy's dex by 2 points each time you land a hit. And since you mentioned Valygar and Keldorn's armor, Corwin has unique armor too with movement bonus and magic resistance.
  • Gel87Gel87 Member Posts: 434
    edited August 26
    _DD_ wrote: »
    There are more, but the first npc exclusive items I remembered were the short swords of Haer'dalis: Chaos and Entropy. It depends on your definition of cool but Chaos has the uncommon effect of reducing the enemy's dex by 2 points each time you land a hit. And since you mentioned Valygar and Keldorn's armor, Corwin has unique armor too with movement bonus and magic resistance.

    Thank you :) I will look into thoose as well :) I',m sure there are already several mod's concerning edwin's amulet, but will have a look on that one as well. Haer'dalis. Some of thoose NPC's are very cool though, Haer'dalis is thiefling, which adds several unciue resist via race, and i already have race change options in my mod, like mindflayer, Banshee, Vampire etc in the potion menu. I have loads of content to add, its just that my interest comes and goes, and is deflected by BO1 and BO2 PS5 ports, and sometimes a little CS2 and real life too ofc xD The corwin bow also has a cool entangle effect. I have a Archer siren kit, its very old, it will be introduced but nerfed a little compared to my orginal version. It has custom Kiss attack and bow. And i think that bow could entangle as well :) I have a lot of cool old kit mods, where i want to add at least parts of them as choice in my potion menu, or as kits. As well as some cool items.

    I actually came pretty far yesterday. I miss like 2 lines of adding to the script of Kalagrym NPC and both quest should be working properly. The items where achieveble, just need to add the lines for guy to start dialog with me, instead of M'khiin.

    Goblins -> Blightburst bow had some issues as well, but i fixed them and tested ingame :)

    M'khiin gear i removed the input from USE_ITEM.2da so items wont be stuck in inventory.

    Also, since the M'Khiin items had op code with restrict usable only by M'Khiin, i had to patch quite a lot on those items:
    OP code for direct polymorph changed with: Op code to effect, with trigger on race goblin -> Effect does the polymorph.
    Setting proper unusable flag bits, op code to restrict druid.
    Op code removal of only usable by M'Khiin.
    And it had to be before the patching of items for such as "Enable backstab with axes". So then the thief flag will be removed, and replaced with OP code restriction of thief.
    Use any item has been patched to remove such OP codes which are set by manual restricting gear via potion menu, or this thief one.

    So either you install this feature part or not, M'Khiin will work as usual, but you have the possibility to do the quest if ur shaman player1 and M'Khiin is not in party. The M'Khinn related dialogs has been hidden if she aint in party, and overstring text and override of movement of player1 to dead goblins with kamera tracking and cutscenes etc has been added.

    Since all the lines are voiced, i made the route so that its only P1 choices which are not voiced.

    And if you do the quest urself, and then later party M'Khiin you can still use those items are normal.
    I do however have to take a look about Jegg's leather upgrade thingy. Did not check out that so far.

    Will update file once the final touchup is done. The beta i uploaded does not work.

    I fixed some other stuff as well, like enabling backstab was not possible without actually installing the patching of CDtweaks werewolf paw tokens. So now its better overall :) Update soon to come. Im on work from 07:00-19:00, so not much free spare time to do much atm :P The PC has been used by others as well most of the evenings xD
  • Gel87Gel87 Member Posts: 434
    edited August 28
    I found the reason why BDKRUN / Hide Armor refused to talk.
    Was missing a trigger for block 0. Without it, it cannot be started like that.
    Testet both goblins, and Kalagrym with and without M'khiin. Everythingn including gear works wonders.

    Also found a exploit for those who are interested in that. If u allow M'Khiin to be confused by trap prior to opening stash, you can infact chose none path and use all both armor and robe. My mod allows the dialog choice to go both ways anyway if ur without M'khiin in party.

    So I have done a lot, fixed all. Only Jeff's Leather need a look now before all SoD related is done :)
    So i will upload latest version here:

    Edit: Have also done the Jeff leather availeble as solo shaman now, but its not part of the file below. I update it once i have done some availability for corwins bow and armor, and added M'khiin's ability as choices in Kitchanger shaman part, as well as potionOfCustomisation for all types.

    Just gonna make the next parts easier for myself with some notes(add or patch) :
    - Summon Ghostly Defender: SPIN205.spl -> GelGho1.spl (Learn: Ghostly Defenender) KitChanger And PotionMenu
    - Corwin's Bow: BDBOW06.itm : +3damage, +2thaco, +1dex, 10% chance to entanlge(no MR, save vs breath), CompLongBow
    - Corwin's Armor: BDCHAN05: Chain mail +2, +1 movementspeed, +10% MR.
    - Rasaad's boots: Moonlight Walkers, RSBOOT.itm, +2aC
    - Moonblade +3: SW1H13, Xan

    Implementation of M'Khiin items to BG2EE:
    1. Export SPIN205.spl to mod folder, and add with name etc.
    2. Export BDBOW06.itm to mod folder, and add with name etc.
    3. Export BDCHAN05.itm to mod folder, and add with name etc.
    4. Export bdchan01.itm (Jegg's Leather +2 with 20% cold and fire res) to mod folder, and add with names etc.
    5. Export bdbow01.itm (Blightbringer) to mod folder, and add names etc. 10% chance that the target must save vs. Death or be afflicted by a foul disease, thereby losing 2 points of Dexterity (non-cumulative) and becoming slowed for 3 rounds. +1 / +3 vs gnomes and dwarfs.
    6. Export bdstaf02.itm (The Soulherder's Staff) +2, 1d6+2 magical, 15% MR, +1str summoned spirits.
    7. Export bdrobe03.itm (Ghostdreamers Robe), AC:5, +1 casting speed, Vocalize
    8. Export bdax1h02.itm (Kruntu's Axe) +2, 1d6+3 melee/thrown, 33% chance per hit that the target takes 1 point of poison damage per second for 2 rounds (Save vs. Death negates), +1 ARP
    9. Export bdchan02.itm Kruntu\s Armor (+3), Wisdom -1, Open Locks: -10%, Find Traps: -10%, Pick Pockets: -10%, Move, Silently: -20%, Immunity to stun

    Export all the needed bams and resources.

    Upgrade mod for:
    - BDBOW06, Set APR 3, +4 bow, Creates its own missle of +4. (BG2EE lacks longbows)
    - BDCHAN05, +3, +2 movementspeed, +1dex
    - bdchan01.itm + bdchan02.itm = Combined effects + 20% acid, light res.
    - bdbow01 -> +3, add +2 magic damage, increase to 20% chance.
    - bdstaf02 -> add: 20% to magic skill damage, turn into +4
    - bdrobe03 -> Summons A Ghostly Guardinan 1/day, AC:3
    - Kruntu's Axe -> +4, 10% chance for static outburst, damage change 1d8
    Need to find relevant items to use for upgrade, and price.
    Other:
    - Firetooth (Dagger) upgrade: 2d4 throwing knife +2, a way of combining for +4 or +5 late game. Combine with other upgraded dagger?

    Static outburst:
    Projectile, use the on from staff of the magic +3(custom), change bam to electric.

    Have a look at the Staff of Necromancy from older mod(only have back home)
    Have a look at: Chaos(NPSW06) and Entrophy(NPSW05).
    Have a look at: Corthala Family Armor (NPCHAN) and Corthala Family Blade (NPSW04)

    Hmm, im bored, might as well write the dialog parts for menus now as i do not have access to bg here xD
    // Add in GelNDia.D GelShamanChoice
    IF ~GlobalLT("GelShaGhostDef","LOCALS",1)~ THEN REPLY ~I wan't M'khiin's Ghostly Defender Ability~ DO ~SetGlobal("GelShaGhostDef","LOCALS",1)~ GOTO GelShamanGhostlyDefender
    
    //Add new in GelNDia.D
    IF ~~ THEN BEGIN GelShamanGhostlyDefender
      SAY ~Ghostly Defender Ability Added~
        IF ~~ THEN REPLY ~Thanks.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelShaGhostly","LOCALS",1))~ GOTO GelShamanChoice
    END
    
    //Add in GelKitP.baf
    IF
      Global("GelShaGhostly","LOCALS",1)
      Class(Myself,"SHAMAN")
    THEN
      RESPONSE #100
        ReallyForceSpellRES("GelGho1",Myself)
        SetGlobal("GelShaGhostly","LOCALS",2)
    END
    
    //Add inn GelTDia.D Section: GelInnateAbility
    IF ~GlobalLT("GelGhostlyDefender2","LOCALS",1)~ THEN REPLY ~I wan't Ghostly Defender Innate(M'Khiins ability)~ DO ~SetGlobal("GelGhostlyDefender2","LOCALS",1)~ GOTO GelInnateAbilityChosen
    
    //Add inn GelTDia.baf:
    IF
      Global("GelTDia_Process","LOCALS",1)
      Global("GelGhostlyDefender2","LOCALS",1)
    THEN
      RESPONSE #100
        ReallyForceSpellRes("GelGho1",LastSummonerOf(Myself)) 
        SetGlobal("GelGhostlyDefender2","LOCALS",2)
    END
    
    // Add to huge OR block:
      !Global("GelGhostlyDefender2","LOCALS",1)
    
    
    TP2 file:
    // Add the spell in first part.
    COPY ~GelThiefKitChange/items/SPIN205.spl~ ~Override~ 
      SAY NAME1 ~Ghostly Defender~
      SAY DESC ~Summons goblin spirits to fight for you. They will protect you, but you do not have full control over them~
    
    BEGIN ~Add M'khiins and Corwin's Items to BG2EE? There will be upgrades~
    REQUIRE_PREDICATE (GAME_IS ~bg2ee~) ~Only for BG2EE related stuff~
    
    // Adding desc and name later.
    COPY ~GelThiefKitChange/items/bdbow6.itm~ ~Override~ 
      SAY NAME1 ~Composite Longbow~
      SAY NAME2 ~Corwin's Bow +1~
      SAY DESC ~~
      SAY UNIDENTIFIED_DESC ~~
    
    COPY ~GelThiefKitChange/items/bdbow1.itm~ ~Override~ 
      SAY NAME1 ~Shortbow~
      SAY NAME2 ~Blightbringer~
      SAY DESC ~~
      SAY UNIDENTIFIED_DESC ~~
    
    COPY ~GelThiefKitChange/items/bdchan1.itm~ ~Override~ 
      SAY NAME1 ~Studdeth Leather Armor~
      SAY NAME2 ~Jeff's Leather~
      SAY DESC ~~
      SAY UNIDENTIFIED_DESC ~~
    
    COPY ~GelThiefKitChange/items/bdchan2.itm~ ~Override~ 
      SAY NAME1 ~Studdeth Leather Armor~
      SAY NAME2 ~Kruntur's Armor~
      SAY DESC ~~
      SAY UNIDENTIFIED_DESC ~~
    
    COPY ~GelThiefKitChange/items/bdrobe3.itm~ ~Override~ 
      SAY NAME1 ~Robe~
      SAY NAME2 ~Ghostdreamers Robe~
      SAY DESC ~~
      SAY UNIDENTIFIED_DESC ~~
    
    COPY ~GelThiefKitChange/items/bdchan5.itm~ ~Override~ 
      SAY NAME1 ~~ // Corwin's Armor
      SAY NAME2 ~~
      SAY DESC ~~
      SAY UNIDENTIFIED_DESC ~~
    
    COPY ~GelThiefKitChange/items/bdstaff02.itm~ ~Override~ 
      SAY NAME1 ~Quarterstaff~ 
      SAY NAME2 ~The Soulherder's Staff~
      SAY DESC ~~
      SAY UNIDENTIFIED_DESC ~~
    
    COPY ~GelThiefKitChange/items/bdax1h02.itm~ ~Override~ 
      SAY NAME1 ~Throwing Axe~ 
      SAY NAME2 ~Kruntur's Axe +2~
      SAY DESC ~~
      SAY UNIDENTIFIED_DESC ~~
    
    // COPY_EXISTING ~XXXX.cre~ // Need to add items to containers and stores and creatures in bg2ee..
    
    Post edited by Gel87 on
  • Gel87Gel87 Member Posts: 434
    edited August 29
    Got a plan for a Merlin Kit as well.

    Just gotta put this ready for it:
    Excalibur
    
    Excalibur is a relic of the Elder World, a weapon feared by kings, priests and the Folk alike. Though its edge can cut through flesh, steel and stone with equal ease, the true danger lies not in the blade itself, but in the corruption that follows its use.
    
    Each battle fought with Excalibur awakens something ancient within its bearer. Mercy fades. Doubt disappears. Violence becomes effortless.
    
    Many who have wielded the sword have conquered armies. Few have managed to remain themselves.
    
    The bond formed between wielder and blade is supernatural in nature, causing Excalibur to cling to its master long after reason would demand it be cast aside. Only a Remove Curse ritual can break this connection.
    

    Ranger/Cleric class - Suggest: SetPrivateProfileString('Game Options','Cleric Ranger Spells','0')
    Restric all wepons but staff, special requirement for Excalibur.
    Restrict all armors, helms and shields. Restrict the slot itself for helms.
    Excalibur is cursed.
    Merlin's Robe: 20% elemental and magical damage, +2 casting speed +spell slots, AC: 7

    Special Ability:
    Thorned Roots
    Thunder Bolt of Death
    Corrupted Fey Hand:
    Corrupted Fey Hand
    
    Drawing upon forbidden Fey magic, Merlin manifests a spectral hand infused with the same corrupting essence that flows through Excalibur. Though originally conceived as a gift of the Elder Folk, the spell has long since been twisted by forces beyond mortal understanding.
    
    The enchanted hand strengthens its master, strikes at his enemies, and serves as a constant reminder of the price demanded by ancient power.
    

    Type of Merlin:
    Fallen, like in the serie: Cursed
    Charismatic trickster, neutral evil.

    Escalibur strong, but cursed with berserk status effect. Remove curse to change wepon. Loss of control, but deadly. Combined with somewhat glass canon due to lack of helm/armor/shield. Unsure about 1 or 2 handed sword. Would be cool to combine with the druid icewindale offhand claw spell and animal rage stuff etc

    Kit Implementation:
    LAF ADD_KIT_EX
        INT_VAR
            kit_class = 18   // Cleric/Ranger
            mixed = RESOLVE_STR_REF(~Merlin~)
            lower = RESOLVE_STR_REF(~merlin~)
            help = RESOLVE_STR_REF(~Merlin, Last Archdruid:
    
    Merlin is among the last surviving masters of the Elder World, a powerful archdruid whose knowledge predates kingdoms, churches and empires. Once a trusted advisor to kings and rulers, he now walks a far more dangerous path, caught between the ambitions of men and the fading magic of the Fey.
    
    Unlike other druids, Merlin rejects the path of transformation, preferring to command the ancient forces of nature directly. Storms, roots, fire and forgotten magics answer his call, while his mastery of both druidic and arcane lore makes him one of the most formidable spellcasters alive.
    
    Yet Merlin bears a terrible burden. Bound to the legendary blade Excalibur, he constantly struggles against the corruption that lurks within its power. The sword offers unmatched strength and the ability to overcome nearly any foe, but at the cost of restraint, mercy and reason. Many who knew Merlin in ages past still whisper of the atrocities committed by his hand when the blade's influence was at its greatest.
    
    To his allies, Merlin is a wise sage, a cunning strategist and a powerful protector. To his enemies, he is a force of nature waiting to be unleashed. Should his control falter, few can predict where the wrath of Excalibur will fall.
    
    Advantages
    May attain Grand Mastery in Long Swords and Quarterstaves as wepons.
    Access to Druid spells.
    Access to selected Avenger and Stalker spells.
    May summon a Corrupted Fey Hand.
    Owns and may wield Excalibur.
    May cast Thunderbolt of Death once per day.
    May cast Thorned Roots once per day.
    
    Disadvantages
    Requires 18 Charisma, and wisdom 17.
    May only use Excalibur and Quarterstaves as wepons.
    May not wear armor, shields or helmets.
    Excalibur's corrupting influence may cause the wielder to lose control in battle.~)
            briefdesc = RESOLVE_STR_REF(~Merlin is one of the last Archdruids of the Elder World and a master of forgotten Fey magic. A trusted advisor to kings and rulers, he combines druidic spellcraft, ancient lore and martial skill in equal measure. Bound to the legendary Excalibur, Merlin wields tremendous power, but forever risks succumbing to the blade's corrupting influence. When his restraint fails, friend and foe alike may become victims of his wrath.~)
    
        STR_VAR
            kit_name = ~GelMerl~   // Set the kit name (Weidu will assign the kit_id)
            unusable = ~0x00020000~   // The "unusable" flag (adjust as necessary)
            ////////////n/n/n/n/n/n/n/n/b/l/s/a/t/k/s/d/w/c/s/h/f/m/q/c/l/s/d/s/2/S/s/d
            weapprof = ~0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 5 5 5 5~
            //clab_path = ~GelThiefKitChange/Tables/CLAGELME.2DA~  // Path to the class abilities table 
            clab_base_r   = ~GelThiefKitChange/Tables/CLAGEMER.2DA~  // abilities assigned to ranger class aspect
            clab_base_p   = ~GelThiefKitChange/Tables/CLAGEMEC.2DA~  // abilities assigned to cleric class aspect
            backstab = ~1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1~  // Backstab progression
            thiefscl = ~0 0 0 100 100 0 0 0~   // Thief skills classes
            clswpbon = ~1 0 2~  // Weapon proficiency bonus
    
    RET
    
    END
    
    Post edited by Gel87 on
  • Gel87Gel87 Member Posts: 434
    Always liked vanilla Nymphs the best:

    Here is newest edition, with Jegg's Leather. Did not do any porting of M'khiin to bg2ee yet.

    Creature:
    Nymphsu.cre
    nymph.bcs
    IF
        HaveSpell(CLERIC_BARKSKIN)  // SPPR202.SPL (Barkskin)
        See(NearestEnemyOf(Myself))
        Global("prep","LOCALS",0)
    THEN
        RESPONSE #100
            ApplySpell(Myself,CLERIC_BARKSKIN)  // SPPR202.SPL (Barkskin)
            SetGlobal("prep","LOCALS",1)
    END
    
    IF
        OR(2)
            !Allegiance(Myself,GOODCUTOFF)
            ActionListEmpty()
        See(NearestEnemyOf(Myself))
        HaveSpell(WIZARD_HOLD_MONSTER)  // SPWI507.SPL (Hold Monster)
        !StateCheck(LastSeenBy(Myself),STATE_HELPLESS)
    THEN
        RESPONSE #100
            Spell(NearestEnemyOf(Myself),WIZARD_HOLD_MONSTER)  // SPWI507.SPL (Hold Monster)
    END
    
    IF
        OR(2)
            !Allegiance(Myself,GOODCUTOFF)
            ActionListEmpty()
        See(NearestEnemyOf(Myself))
        HaveSpell(CLERIC_MENTAL_DOMINATION)  // SPPR405.SPL (Mental Domination)
        !StateCheck(LastSeenBy(Myself),STATE_HELPLESS)
    THEN
        RESPONSE #100
            Spell(NearestEnemyOf(Myself),CLERIC_MENTAL_DOMINATION)  // SPPR405.SPL (Mental Domination)
    END
    
    IF
        OR(2)
            !Allegiance(Myself,GOODCUTOFF)
            ActionListEmpty()
        HaveSpell(CLERIC_HOLD_PERSON)  // SPPR208.SPL (Hold Person)
        See(NearestEnemyOf(Myself))
        !StateCheck(LastSeenBy(Myself),STATE_HELPLESS)
    THEN
        RESPONSE #100
            Spell(NearestEnemyOf(Myself),CLERIC_HOLD_PERSON)  // SPPR208.SPL (Hold Person)
    END
    
    IF
        OR(2)
            !Allegiance(Myself,GOODCUTOFF)
            ActionListEmpty()
        See(NearestEnemyOf(Myself))
        Global("castConfusion","LOCALS",0)
    THEN
        RESPONSE #100
            Spell(NearestEnemyOf(Myself),NYMPH_CONFUSION)  // SPIN704.SPL (Confusion)
            SetGlobal("castConfusion","LOCALS",1)
    END
    
    IF
        OR(2)
            !Allegiance(Myself,GOODCUTOFF)
            ActionListEmpty()
        HaveSpell(CLERIC_CAUSE_SERIOUS_WOUNDS)  // SPPR414.SPL (Cause Serious Wounds)
        See(NearestEnemyOf(Myself))
    THEN
        RESPONSE #100
            Spell(NearestEnemyOf(Myself),CLERIC_CAUSE_SERIOUS_WOUNDS)  // SPPR414.SPL (Cause Serious Wounds)
            SetGlobal("lastSpell","LOCALS",1)
    END
    
    IF
        OR(2)
            !Allegiance(Myself,GOODCUTOFF)
            ActionListEmpty()
        HaveSpell(CLERIC_MASS_CURE)  // SPPR514.SPL (Mass Cure)
        HPPercentLT(Myself,80)
    THEN
        RESPONSE #100
            Spell(Myself,CLERIC_MASS_CURE)  // SPPR514.SPL (Mass Cure)
    END
    
    IF
        OR(2)
            !Allegiance(Myself,GOODCUTOFF)
            ActionListEmpty()
        See(NearestEnemyOf(Myself))
        !Range(NearestEnemyOf(Myself),3)
        Global("lastSpell","LOCALS",1)
        !GlobalTimerNotExpired("BD_Cast","LOCALS")
    THEN
        RESPONSE #100
            SetGlobalTimer("BD_Cast","LOCALS",ONE_ROUND)
            ForceSpellRES("BDDDOORX",NearestEnemyOf(Myself))  // Dimension Door
    END
    
    IF
        OR(2)
            !Allegiance(Myself,GOODCUTOFF)
            ActionListEmpty()
        See(NearestEnemyOf(Myself))
        Global("lastSpell","LOCALS",1)
    THEN
        RESPONSE #100
            AttackReevaluate(NearestEnemyOf(Myself),15)
    END
    
    
Sign In or Register to comment.