Help - Search - Members - Calendar
Full Version: Progress report (2011+)
The Black Wyrm's Lair - Forums > Mods under development - Baldur's Gate, BG1Tutu, BG Trilogy > Enhanced Creatures
aigleborgne
After all this years, it's good to start a new thread smile.gif

Side work:
- Monsters : preparation task (sort, group, and find stats) : 100%
- AI script (complete rework in progress) : 50%

Main component:
- BG1 Monsters : 10%
- BG2 Monsters : 0%
- BG1 Adventurers: 0%
- BG2 Adventurers: 0%

At this moment, it seems that I undo some of my previous work (compared to old progress report).
This is true, but it isn't the same quality, it is a lot higher now.

With my new own tools and material, I'll be able to work 5 times faster on main components later on and still get an overall better result.
aigleborgne
Currently on Death Knight (aka Demon Knight).
It is nearly done, but I have 2 things that are not perfect yet:
- Wall of Ice animation, I can't do new animation so I use existing ones but haven't found yet a good one. Tried Ice Storm but it lasts 3 rounds which doesn't fit Wall of Ice in the way I'm using it (as a wall falling down on enemies, as described in P&P)
- Script almost finished : missing dispel magic block and then extensive testing
- Looking at all CRE to see if some need specific scripts or stats

I have spent quite some time on this monster but it plays an important part in BG1 as the final boss of Durlag's Tower !
All in all, it should be finished tonight smile.gif
aigleborgne
Haven't finished Death Knight tonight finally !
I've done all CRE and finished scripts but haven't time to test them and haven't found a good animation for wall of ice.

Mirror fiend (mirror Death Knight) is now an exact copy of Death Knight : same powers but allegiance is goodbutred. So, he will help party defeating DK + others mirrors.

Others mirrors will be a full balanced party of 6 level 7-8 characters. They will be ally with DK against the party. I'm thinking of evilbutgreen allegiance to show that they are party's mirrors, but it might be a little confusing.
Each mirror will be bound to one player : mirror 1 to player 1, ... If that player die, mirror will die too, same behavior than DK and mirror fiend smile.gif



aigleborgne
Not many updates these days, I'm pretty tired and spend more time on other activities.
I will have 2 weeks at home next month, it will be 2 weeks of modding (not all day through, but several hours each day at least).

I'm planning a release in august or september. Always late, I know...
In september, I should have 3 weeks at home again, to take care of my new born babies first, but also some time to mod smile.gif
aigleborgne
I'm back in modding!
Finally, I didn't mod in august. Was in holidays, but so tired I didn't even think about modding (a full year without holidays is tough!)

I've resumed my work last week-end.
There was a problem with my current advancement : I didn't check each creature script and just assigned mine.
It was wrong because some are related to quest or special behavior.

So, I had to check all my creatures scripts, took me several hours !

I'm in vaccation in 2 weeks, so I expect to mod a lot this month.
I would be happy to finish all BG1 monsters this month. It's doable, but it is certainly not a sure thing !

I will probably never move on others components.
I simply can't do it alone, the game is now rather old, and I plan to start a new modding activity on a new game (Skyrim).

My current plan is to finish BG1 monsters and determine if I can manage BG1 npc quickly.

By quickly, it means that I won't look into items (except to eventually change or add a weapon, but that's all).
A few steps on each npc :
- check characteristics with race/class and maybe pick a kit.
- check proficiencies and equiped weapons
- make a new spellbook inspired by existing one (but heavily based on kit / alignment)
- assign scripts
Should be between 1mn and 15mn per npc, which is quick enough for me.
Add to this around 50-100 hours to finish my scripts. This is a big part, but necessary anyways.

Nothing for BG2 : not entirely true, all existing BG1 monsters are also done for BG2 !
Sure, it miss out all interesting powerful monsters, but there are many mods that includes them (aTweaks beeing my favorite)

Salk
Nice to see you back in action! thumb.gif
aigleborgne
Hello,

Already late, but I have 3 weeks at home right now smile.gif
I'm finished scripts, and I will prepare several components for each monster or group of monsters.
This way, I can test each component one by one and it is also better for distribution.

So, my current purpose is to package and test finished monsters (shown in pinned down topic)
Testing might be tedious and I will not test each creature ! I will only test monster scripts to control their own abilities.
It might not be the perfect P&P monster mod that I dreamed of. It just takes considerable amount of time to make a full test on each creature.
But it will certainly be a lot better than current ones smile.gif

After browsing many creatures, I can tell you : Bioware did a lot of copy & paste when creating these creatures and I can't blame them, I do the same in my work.
But then, there are many mistakes. For example, everybody know that fire elementals are one the best druid summons. Earth elemental, through in spell level 7, are inferior.
This is just because most elementals (fire, earth, ...) have 19 strength. Now, I'm aware it is based on 2nd edition and strength is not always known. But an earth elemental is bound to earth and should be stronger.
In 3rd edition, it is obvious. Fire elementals never go beyond 18 strength while lesser earth elementals have 19. 24HD earth elemental have 25 strength.

Another copy & paste issue is consistency between levels, hit dice, thac0, saving throws. It is very common to see a level 3 creature with 90 hp.
Consequences might be irelevant or not, depending on each case, but I have corrected all of them.
Most of them will have better characteristics after correction, some will have lower, especially thac0 (9HD monsters with thac0 of 5 is impossible)
aigleborgne
I have definitly finished and tested 2 monsters:
- Ankheg
- Basilisk (lesser and greater)

I have done:
- correct several bugs in my AI scripts
- maximise AI script compression (before final generation). Now I have a great visibility on all scripts since an average script has 50 lines (including blank lines) but 500 after generation.
- correct a few important bug in my tph patching script
- repackage my whole tp2 install script

So now, it is very fast to make a script and test some creatures. This way, things should be faster smile.gif
aigleborgne
Now finished:
- Bear
- Crawler
- Cat
- Dog
- Construct

Currently working on Death Knight smile.gif

Note that Helmed and Battle Horror are very powerful now, maybe too much!
Construct type give the same immunities as undead, plus immunity to 3 spells AND magic missiles.
All in all, it is now very hard for a mage to kill a battle horror. Summon is now the key and he will need strong summons.
With 21 str and 2D6 great sword, one battle horror was able to destroy my whole party (a party with no items and only cleric/druid).

One thing that adds up to the power is the use of proficiency for monsters that use classic weapons.
2 solutions here:
- no proficiency
- one star max
- two star max

As a level 9 monster, battle horror currently have 5 in 2 handed sword and 2 in 2 handed weapons.
I will look into that potential problem.
Eventually, make this system optional during installation.
aigleborgne
I have finished to test and package all monsters up to elementals.
Now, I will continue to edit monsters, then test and package them before going to the next one.

Regarding Elementals, I have added Elder Elemental name for 24HD
For example:
- Lesser fire elemental
- Fire Elemental
- Greater Fire Elemental
- Elder Fire Elemental

This way, you can evaluate your foe or your summon.
It is more important to know as there is now quite a difference between each ones.
aigleborgne
Back to work, so less time to mod.
Right now, I encountered problems with complex mage scripts.

Problem 1: it takes about one round to start its first spell, instead of immediate cast for classic script. It has something to do with initialization blocks because if I remove them, it works... It is annoying because a few seconds delay is vital for a caster!
Problem 2: my double randomize system doesn't work properly. Sometimes, a caster won't cast any spells for quite some time. One type of spells is selected but for some reason, all spells of that type don't meet requirement so nothing is cast. Or even if very few types are available, there are still randomize on each type, which means that it is possible to not find any type of spells to cast.

I am very disapointed with this very limited script language and I can't find any good outcome.
Eventually, I'll do simple scripts closed to existing ones. Just better targetting system and some random here and here.
aigleborgne
aTweaks is gonna make enhanced monsters obsolete, I just can't reach the level of quality of aTweaks in every aspects.
Well, aTweaks don't cover all BG1 monsters so my component still makes sense.

I wanted to finish my install tp2 script, so I started to work on adventurers.
Some numbers:
- 116 very important adventurers
- 108 important adventurers (it includes powerful ones like Thalantyr)
- 145 secondary adventurers, those should not get attacked so they are just bonus. I will make some of them, but not all !
- about 40 groups of adventurers
These numbers count creatures, one adventurer might have several files.

I make a new experience table for adventurers. I think it is more accurate and, at least, is consistent.
For each adventurer, I check levels and class first. So many class are irelevant, as if it was mass copy and paste to go through all CRE very fast !
I tried to find the most accurate class for each one and for many, it remains identical.

Then, I look if a kit can be assigned, I like kits and I think many adventurers should get one.

After, I check abilities scores with race/class/kit, it is usually correct, but some were not. Many CRE were just clones : same abilities scores, same class, just different names...

In case of a spellcaster, I do a whole new spellbook.

Finally, I remove all illegal items and immunities, adjust proficiencies, thac0, hit points, saving throws, add kit abilities and immunities, and assign new scripts.

All this only takes a few minutes, my editor helps a lot. A spellcaster takes more time as I need to make a spellbook, and I don't want to make all the same ones. Diversity is more fun.

For example, I started with Amarande, level 6 archdruid in cloakwood.
An archdruid is level 13, something a lot more powerful ! So I made him level 13 avenger. I chose avenger because of his low constitution and strength scores (9), it fits avenger ones!
I removed his illegal items and didn't give him new ones, eventually I'll give him a few potions, but that's all.
All is powers now come from his new spellbook and this is something! He should be easily taken out by a low level party, but eh, he is an archdruid !

Now, we all know that druid or cleric, even at high levels, are not very dangerous opponents. Sure they can be dangerous if you let them cast their spells but it is quite easy to stop them before.
They don't have all those great protection spells that mage have. A simple level 7 mage with minor globe and stone skin is very well protected in BG1. Even at level 13, a druid can't compare!
So, a well prepared party could kill him before he could cast more than 2 spells. It is for that reason that I might give him a few potions, sounds fair to me.

On a final note, I am considering Spell Revision as a require mod. It would allow more diversity on spellbooks, and I really can't make 2 spellbooks for each spellcaster.
Same for divine remix as there are a lot of enemies cleric in that game and only 2 kits available (as most are evil or neutral)
aigleborgne
After long considerations, I confirm that my mod will assume that Spell Revision is installed as I really like most of the changes.
Regarding Divine Remix, I'm not sure about spheres system. I haven't really played DR but I heard that spheres are more a pain than a blessing.
aigleborgne
I am currently rebuilding my mage scripts with Spell Revision in mind.
I have many scripts, for each class and eventually for some kits if necessary. On top of that, for spellcasters, I do a script for each new spell level.
It is easier to select spell order this way, and depending on level, spell order can change. For example, magic missile is rather weak at level 1, but become great later on.

I have added doom to detectable spells. Priest will now cast doom before casting another spell.
For example, he want to cast hold spell. He checks a valid target (not disabled), then he checks a valid target affected by either Doom or Greater Malison.
If he found a target affected by doom, he cast hold. If not and if he has doom, he will cast it before hold.

This way, he makes a good use of doom spell. In fact, he will try to focus all spells after that. Doom can be seen as "focus on him". Althrough, target must be fill other criteria (like not beeing disable, ...)

By now, I have only done a few scripts : fighter (only one script) and druid level 1, 3, 5, 7.
I am testing druid script with Seniyad and Amarande and I am satisfied with current results.

I have tested SCS for these foes and don't like it at all. Yes, they are powerful and it is well done but there are several things I don't like:
- spellbooks are generated. It reminds me my old generator smile.gif It is a good way to quickly do all casters but it is a lot better to make a custom spellbook for each caster.
- scripts still cheat in some ways. Some spells are cast even if not memorized (Detect invisibility for example)
- scripts do many check for each spell : resistances, immunity... some may like it, some don't. I have added all checks in my mod, but they all depend on a parameter, it can be enable or disable.

It will take me some time to do all scripts. Cleric will be very closed to druid so it will be quick.
But mages are huge ! mage, bard, wild mage on one set, then all others on separate set.
Sorcerer will be the hardest and I don't know yet if I will put on them in game. My editor can build a sorcerer spellbook but I need a script dedicated and efficient.
Initially, I will do script to spell level 6 as it covers most spell casters. Then, I will add others when needed.

Below an example of a script before baf generation.
Java program uses an ini file for a few parameters and IMMUNITY_CHECK is one of them.
Globally, it is quite simple but the job is done.

CODE
// Druid
[CASTER=PRIEST]

[include=init_npc]

[include=tracking]

[include=potions]

[include=disable_spellcasting]

//[include=shapeshift_druid]

// Improved Invisibility
[action=SPELL(SPDR401,,75,notarget);require=*visible]

// Gust of Wind
[action=SPELL(SPPR318,,75,notarget,hit);require=range(6,attacker)]

// Cloak of Fear
[action=SPELL(CLERIC_CLOAK_OF_FEAR,,75);target=NearestEnemy(num:6);require=range(6),!disable,!fearImmunity]

// Neutralize poison
[action=SPELL(CLERIC_NEUTRALIZE_POISON,,,notarget);require=*state(STATE_POISONED)]

// Slow Poison
[action=SPELL(CLERIC_SLOW_POISON,,,notarget);require=*state(STATE_POISONED)]

// Cure Critical Wounds
[action=SPELL(CLERIC_CURE_SERIOUS_WOUNDS,,,notarget);require=*hp%lt(70),OR(*sanctuary,!seeEnemy,!hit)]

// Cure Moderate Wounds
[action=SPELL(SPPR215,,,notarget);require=*hp%lt(80),OR(*sanctuary,!seeEnemy,!hit)]

// Cure Light Wounds
[action=SPELL(CLERIC_CURE_LIGHT_WOUNDS,,,notarget);require=*hp%lt(90),OR(*sanctuary,!seeEnemy,!hit)]

// Strength of One
[action=SPELL(CLERIC_STRENGTH_OF_ONE,,75,notarget)]

// Death Ward
[action=SPELL(CLERIC_DEATH_WARD,,75,notarget)]

// Free action
[action=SPELL(CLERIC_FREE_ACTION,,75,notarget)]

// Woodland beings
[action=SPELL(CLERIC_CALL_WOODLAND_BEINGS,,75,notarget)]

// Animal Summoning 1
[action=SPELL(CLERIC_ANIMAL_SUMMONING_1,,75,notarget)]

// Totemic animals
[action=TIMER(ja#totemic,30),SPELL(SPCL621,,50,notarget)]

// Web
[action=SPELL(SPDR201,,75);require=!disable,!magicImmunity,!globe,!holdImmunity]

// Entangle  
[action=SPELL(CLERIC_ENTANGLE,,75);target=NearestEnemy(num:5);require=!disable,!magicImmunity,!globe]

// Ice Storm
[target=Summon(num:5);require=valid,!magicImmunity,!coldImmunity]
[action=SPELL(SPPR418,,75);target=Player;require=*resistCold,!magicImmunity,!coldImmunity]

// Fire Trap
[target=Summon(num:5);require=valid,!magicImmunity,!fireImmunity,!globe]
[action=SPELL(SPPR216,,75);target=Player;require=!magicImmunity,!fireImmunity,!globe]

// Dispel Magic
[action=SPELL(CLERIC_DISPEL_MAGIC,,75),RUN(30);target=Player;require=enchanted,!range(15)]

// Storm shield
[action=SPELL(SPPR322,,75,notarget)]

// Charm Person or Animal
[target=Fighter;require=valid,!disable,!magicImmunity,!globe,!charmImmunity]
[target=Fighter;require=valid,!disable,!magicImmunity,!globe,!charmImmunity,stat(1,WIZARD_GREATER_MALISON)]
[action=SPELL(CLERIC_DOOM,,75);require=!stat(1,WIZARD_GREATER_MALISON),!disable,!magicImmunity,!globe,!charmImmunity]
[action=SPELL(CLERIC_CHARM_PERSON,,75,fighter);require=!disable,!magicImmunity,!globe,!charmImmunity]

// Hold Person or Animal
[target=Player;require=!disable,!magicImmunity,!globe,!holdImmunity]
[target=Player;require=!disable,!magicImmunity,!globe,!holdImmunity,stat(1,WIZARD_GREATER_MALISON)]
[action=SPELL(CLERIC_DOOM,,75);require=!stat(1,WIZARD_GREATER_MALISON),!disable,!magicImmunity,!globe,!holdImmunity]
[action=SPELL(SPPR305,,75);require=!disable,!magicImmunity,!globe,!holdImmunity]

// Summon Insects
[target=Caster;require=valid,!disable,!silence,!failure,!magicImmunity,!globe]
[target=Caster;require=valid,!disable,!silence,!failure,!magicImmunity,!globe,stat(1,WIZARD_GREATER_MALISON)]
[action=SPELL(CLERIC_DOOM,,75);require=!stat(1,WIZARD_GREATER_MALISON),!disable,!silence,!failure,!magicImmunity,!globe]
[action=SPELL(CLERIC_SUMMON_INSECTS,,75,caster);require=!disable,!silence,!failure,!magicImmunity,!globe]

// Mistcast Magic
[action=SPELL(CLERIC_MISCAST_MAGIC,,75,caster);require=!disable,!silence,!failure,!magicImmunity,!globe]

// Contagion
[target=Fighter;require=valid,!disable,!magicImmunity,!globe]
[target=Fighter;require=valid,!disable,!magicImmunity,!globe,stat(1,WIZARD_GREATER_MALISON)]
[action=SPELL(CLERIC_DOOM,,75);require=!stat(1,WIZARD_GREATER_MALISON),!disable,!magicImmunity,!globe]
[action=SPELL(SPPR311,,75,fighter);target=Fighter;require=!disable,!magicImmunity,!globe]

// Select random target or doomed target
[target=Player;require=valid,!magicImmunity,!globe]
[target=Player;require=valid,!magicImmunity,!globe,stat(1,WIZARD_GREATER_MALISON)]
[action=SPELL(CLERIC_DOOM,,75);require=!stat(1,WIZARD_GREATER_MALISON),!magicImmunity,!globe]

// Poison
[action=SPELL(CLERIC_POISON,,75);require=!magicImmunity,!poisonImmunity]

// Call Lightning
[action=SPELL(CLERIC_CALL_LIGHTNING,,75);require=!magicImmunity,!globe,!electricityImmunity]

// Lightning Bolt
[action=SPELL(SPDR301,,75);require=!magicImmunity,!globe,!electricityImmunity]

// Bless
[action=SPELL(CLERIC_BLESS,,75,notarget)]

// Neutralize poison
[action=SPELL(CLERIC_NEUTRALIZE_POISON,,75,notarget)]

// Barkskin
[action=SPELL(CLERIC_BARKSKIN,,75,notarget)]

// Resist Fire and Cold
[action=SPELL(CLERIC_RESIST_FIRE,,75,notarget)]

// Armor of faith
[action=SPELL(CLERIC_ARMOR_OF_FAITH,,75,notarget);require=*stat(0,CLERIC_ARMOR_OF_FAITH)]

// Flame Blade
[action=SPELL(CLERIC_FLAME_BLADE,,75,notarget);require=!*magicalWeaponItem]

// Shillelagh
[action=SPELL(CLERIC_SHILLELAGH,,75,notarget);require=!*magicalWeaponItem]

// Strength of Stone
[action=SPELL(SPPR115,,75,notarget)]

// Know Opponent
[action=SPELL(SPPR209,,75);require=!magicImmunity,!globe]

// Faerie Fire
[action=SPELL(SPPR114,,75);require=!magicImmunity,!globe]

// Chromatic Orb
[action=SPELL(SPDR101,,75);require=!magicImmunity,!globe]

// Sunscorch
[action=SPELL(SPPR116,,75);require=!magicImmunity,!globe,!fireImmunity]

[action=WALK;require=*invisible]

[include=combat_smart_both]


A few explanations of code:
CODE
// Hold Person or Animal
[target=Player;require=!disable,!magicImmunity,!globe,!holdImmunity]
[target=Player;require=!disable,!magicImmunity,!globe,!holdImmunity,stat(1,WIZARD_GREATER_MALISON)]
[action=SPELL(CLERIC_DOOM,,75);require=!stat(1,WIZARD_GREATER_MALISON),!disable,!magicImmunity,!globe,!holdImmunity]
[action=SPELL(SPPR305,,75);require=!disable,!magicImmunity,!globe,!holdImmunity]

It randomly selects a valid target (no sanctuary or improved invisibility), not disable (charm, stun, fear, hold, fear...)
It randomly selects a valid target (no sanctuary or improved invisibility), not disable (charm, stun, fear, hold, fear...), and affected by doom or greater malison
If selected target is not affect by doom or greater malison and I have doom, 75% to cast doom
75% to cast Hold Person or Animal
Other attributes are used if IMMUNITY_CHECK is set to true.

It generates:
CODE
// Hold Person or Animal
IF
  OR(6)
    StateCheck(Player6,STATE_CHARMED)
    CheckStatGT(Player6,0,HELD)
    StateCheck(Player6,STATE_HARMLESS)
    StateCheck(Player6,STATE_CONFUSED)
    StateCheck(Player6,STATE_PANIC)
    RandomNumGT(1000,167)
  OR(6)
    StateCheck(Player5,STATE_CHARMED)
    CheckStatGT(Player5,0,HELD)
    StateCheck(Player5,STATE_HARMLESS)
    StateCheck(Player5,STATE_CONFUSED)
    StateCheck(Player5,STATE_PANIC)
    RandomNumGT(1000,200)
  OR(6)
    StateCheck(Player4,STATE_CHARMED)
    CheckStatGT(Player4,0,HELD)
    StateCheck(Player4,STATE_HARMLESS)
    StateCheck(Player4,STATE_CONFUSED)
    StateCheck(Player4,STATE_PANIC)
    RandomNumGT(1000,250)
  OR(6)
    StateCheck(Player3,STATE_CHARMED)
    CheckStatGT(Player3,0,HELD)
    StateCheck(Player3,STATE_HARMLESS)
    StateCheck(Player3,STATE_CONFUSED)
    StateCheck(Player3,STATE_PANIC)
    RandomNumGT(1000,333)
  OR(6)
    StateCheck(Player2,STATE_CHARMED)
    CheckStatGT(Player2,0,HELD)
    StateCheck(Player2,STATE_HARMLESS)
    StateCheck(Player2,STATE_CONFUSED)
    StateCheck(Player2,STATE_PANIC)
    RandomNumGT(1000,500)
  OR(5)
    StateCheck(Player1,STATE_CHARMED)
    CheckStatGT(Player1,0,HELD)
    StateCheck(Player1,STATE_HARMLESS)
    StateCheck(Player1,STATE_CONFUSED)
    StateCheck(Player1,STATE_PANIC)
THEN
  RESPONSE #100
    Continue()
END

IF
  OR(7)
    StateCheck(Player6,STATE_CHARMED)
    CheckStatGT(Player6,0,HELD)
    StateCheck(Player6,STATE_HARMLESS)
    StateCheck(Player6,STATE_CONFUSED)
    StateCheck(Player6,STATE_PANIC)
    !CheckStat(Player6,1,WIZARD_GREATER_MALISON)
    RandomNumGT(1000,167)
  OR(7)
    StateCheck(Player5,STATE_CHARMED)
    CheckStatGT(Player5,0,HELD)
    StateCheck(Player5,STATE_HARMLESS)
    StateCheck(Player5,STATE_CONFUSED)
    StateCheck(Player5,STATE_PANIC)
    !CheckStat(Player5,1,WIZARD_GREATER_MALISON)
    RandomNumGT(1000,200)
  OR(7)
    StateCheck(Player4,STATE_CHARMED)
    CheckStatGT(Player4,0,HELD)
    StateCheck(Player4,STATE_HARMLESS)
    StateCheck(Player4,STATE_CONFUSED)
    StateCheck(Player4,STATE_PANIC)
    !CheckStat(Player4,1,WIZARD_GREATER_MALISON)
    RandomNumGT(1000,250)
  OR(7)
    StateCheck(Player3,STATE_CHARMED)
    CheckStatGT(Player3,0,HELD)
    StateCheck(Player3,STATE_HARMLESS)
    StateCheck(Player3,STATE_CONFUSED)
    StateCheck(Player3,STATE_PANIC)
    !CheckStat(Player3,1,WIZARD_GREATER_MALISON)
    RandomNumGT(1000,333)
  OR(7)
    StateCheck(Player2,STATE_CHARMED)
    CheckStatGT(Player2,0,HELD)
    StateCheck(Player2,STATE_HARMLESS)
    StateCheck(Player2,STATE_CONFUSED)
    StateCheck(Player2,STATE_PANIC)
    !CheckStat(Player2,1,WIZARD_GREATER_MALISON)
    RandomNumGT(1000,500)
  OR(6)
    StateCheck(Player1,STATE_CHARMED)
    CheckStatGT(Player1,0,HELD)
    StateCheck(Player1,STATE_HARMLESS)
    StateCheck(Player1,STATE_CONFUSED)
    StateCheck(Player1,STATE_PANIC)
    !CheckStat(Player1,1,WIZARD_GREATER_MALISON)
THEN
  RESPONSE #100
    Continue()
END

IF
  HaveSpell(CLERIC_DOOM)
  Global("ja#disable_spellcasting","LOCALS",0)
  !GlobalTimerNotExpired("ja#round","LOCALS")
  !CheckStatGT(LastSeenBy(Myself),0,SANCTUARY)
  !StateCheck(LastSeenBy(Myself),STATE_IMPROVEDINVISIBILITY)
  !General(LastSeenBy(Myself),WEAPON)
  See(LastSeenBy(Myself))
  !CheckStat(LastSeenBy(Myself),1,WIZARD_GREATER_MALISON)
  !CheckStatGT(LastSeenBy(Myself),0,HELD)
  !StateCheck(LastSeenBy(Myself),STATE_HARMLESS)
  !StateCheck(LastSeenBy(Myself),STATE_CONFUSED)
  !StateCheck(LastSeenBy(Myself),STATE_PANIC)
  RandomNumGT(100,25)
THEN
  RESPONSE #100
    SetGlobalTimer("ja#round","LOCALS",6)
    Spell(LastSeenBy(Myself),CLERIC_DOOM)
END

IF
  HaveSpellRES("SPPR305")
  Global("ja#disable_spellcasting","LOCALS",0)
  !GlobalTimerNotExpired("ja#round","LOCALS")
  !CheckStatGT(LastSeenBy(Myself),0,SANCTUARY)
  !StateCheck(LastSeenBy(Myself),STATE_IMPROVEDINVISIBILITY)
  !General(LastSeenBy(Myself),WEAPON)
  See(LastSeenBy(Myself))
  !CheckStatGT(LastSeenBy(Myself),0,HELD)
  !StateCheck(LastSeenBy(Myself),STATE_HARMLESS)
  !StateCheck(LastSeenBy(Myself),STATE_CONFUSED)
  !StateCheck(LastSeenBy(Myself),STATE_PANIC)
  RandomNumGT(100,25)
THEN
  RESPONSE #100
    SetGlobalTimer("ja#round","LOCALS",6)
    SpellRES("SPPR305",LastSeenBy(Myself))
END
aigleborgne
I have finished all cleric and druid scripts.
For maintenance and improvement issues, I have made some changes in my generator. Now, each block can be associated with a level, so when I generate a script, I can restrict all blocks to a maximum level.
This way, I have one file containing all spells : cleric and druid. Then each script set their own level variable.
Drawbacks : I can't make specific spell order
Advantages : adding a new spell, modifiy spells conditions, change order... and it happens often currently!

I have started to work on mage scripts and with Spell Revision, I am very happy to make spellbooks!
I use PnP rules to make spellbooks : a kit must have at least one spell of its school memorized, and when it is not too much, I use PnP opposite schools. So conjurer can't access to invoker spells.
I think it is more balanced but can be seen as a nerf because players don't have these restrictions. But Spell Revision help a lot here, with many spells that was useless before and are now good !
Kits try to use many spells of their own schools, but I am often limitated with balance and spells availability.
aigleborgne
I have finished mage spellbooks up to spell level 5. I am not very satisfied with current spell order but it is rather difficult to find a good one.
I have also work on minor sequencer and contingency.

Specialize mages will use PnP rules for their spellbook as I said earlier. This way, they have more restrictions than a player :
- more opposite schools
- forced to choose at least one spell of their own school each spell level
- I tried to really focus on primary school and give them as many spells of their own school as possible. I feel that a necromancer with 5 level 1 spells and only one necromancy spell is not really a necromancer!
- Same thing applies for sequencer and contingency
aigleborgne
I was busy on my real life last month but I found several hours to work on my mod.
Again, most of my time was focus on scripts.

My generator becomes very powerful and efficient.
I found out that generic caster scripts are not good enough and too complicated to support.

So, every spellcaster will have a specific script designed with his spellbook.
Downside on this choice is that changing spellbook implies to change script.
Now let's see advantages:
- smaller script size
- better spell order as it is possible to imagine how to play a set spellbook
- less errors because script is rather small

A quick example: a lone conjurer should cast haste after summoning many creatures while a mage in a group should cast haste in the beginning of the battle. Each situation requires a specific script.
Below an example of Davaeorn script. Notice how small it is. Right now, I'm pretty satisfied with it, but it might change a bit.

CODE
[CASTER=MAGE]
[CASTER_LEVEL=11]
[MAX_SPELL_LEVEL=5]
[RUN_AWAY_FROM_AOE=false]
[include=autocast_spell_arcane]

IF
    Detect([PC])
    NumTimesTalkedTo(0)
THEN
    RESPONSE #100
        StartDialog("_DAVAEO",LastSeenBy(Myself))
END

[include=init_npc]
[include=disable_spellcasting]

// Track escaping target
[action=MOVE;requireSelf=!blind;require=!seeEnemy,visible,hpgt(0),range(70);target=attacker]
[action=MOVE;requireSelf=!blind;require=!seeEnemy,visible,hpgt(0),range(70);target=lastseen]
[action=MOVE;requireSelf=!blind;require=!seeEnemy,visible,hpgt(0),range(70);target=player1]

// if no enemies detected, stop combat
[action=GLOBAL(ja#combat,0);require=!detectEnemy]

// Dimension Door
IF
  Global("ja#teleport","LOCALS",1)
THEN
  RESPONSE #70
        SetGlobal("ja#teleport","LOCALS",0)
        ForceSpellPoint([1244.780],WIZARD_DIMENSION_DOOR)
  RESPONSE #80
        SetGlobal("ja#teleport","LOCALS",0)
        ForceSpellPoint([1388.421],WIZARD_DIMENSION_DOOR)
  RESPONSE #90
        SetGlobal("ja#teleport","LOCALS",0)
        ForceSpellPoint([812.450],WIZARD_DIMENSION_DOOR)
  RESPONSE #100
        SetGlobal("ja#teleport","LOCALS",0)
        ForceSpellPoint([856.825],WIZARD_DIMENSION_DOOR)
END

[spell=WIZARD_STONE_SKIN]

[spell=Shadow Door;requireSelf=!improvedInvisible]
[spell=Shadow Door;requireSelf=hit]

[spell=Minor Globe of Invulnerability;requireSelf=norandom,visible]
[spell=WIZARD_MIRROR_IMAGE]
[spell=WIZARD_PROTECTION_FROM_NORMAL_MISSILES]
[spell=Minor Globe of Invulnerability;require=norandom]
[spell=WIZARD_SPELL_IMMUNITY_INVOCATION;require=norandom]

[spell=Stinking Cloud;teleport;target=default]
[spell=WIZARD_ICE_STORM;teleport;target=default]
[spell=WIZARD_FIREBALL;teleport;target=default]
[spell=WIZARD_LIGHTNING_BOLT;teleport;target=default]
[spell=Cone of Cold;teleport;target=default]

[action=MINORSEQUENCER(WIZARD_MAGIC_MISSILE,WIZARD_MAGIC_MISSILE,response<60>),
        MINORSEQUENCER(WIZARD_AGANNAZAR_SCORCHER,WIZARD_AGANNAZAR_SCORCHER,response<80>),
        MINORSEQUENCER(WIZARD_MAGIC_MISSILE,WIZARD_AGANNAZAR_SCORCHER,response<100>)
;teleport;target=player;require=!disable,random2(75)]

[spell=Agannazar's Scorcher;teleport;target=default;require=random2(75)]
[spell=WIZARD_MAGIC_MISSILE;teleport;target=default]

[include=combat_mage]
[include=combat_smart_both]
aigleborgne
I am highly motivated these days and I even work on my mod at my office or at midday.
I will release an alpha version next week, that could be seen as a demo.

It will include all these adventurers:
- Aldeth Sashenstar, barbarian
- Amarande, avenger
- Arkion, necromancer
- Arkushule, diviner
- Black Talon Elite, wizard slayer
- Borda, mage/thief
- Brage, fighter (he now fights with his curse berserking sword and I added all immunities in that sword, as it should have been)
- Corsone, avenger
- Cuchol, wild mage
- Cythandria, conjurer
- Dabron Sashenstar, archer
- Davaeorn, invoker
- Dradeel, enchanter

Some of these are really powerful ! (Amarande, Davaeorn, Cythandria)

Dradeel should not be attacked but you can come to a fight if you provoke him.
In the first encounter, he doesn't have his spellbook but has 3 selune spells. I added sequencers and contingency (might have been cast before loosing his spellbook).
Because a mage can have contingency and chain contingencies, minor sequencer, spell sequencer, and spell trigger, it makes him quite powerful !
After recovering his spellbook, I don't remember if he can be attacked, but he will have all spells memorized this time! Althrough it would mave no sense to attack him at this point.

I have done many monsters too, and I might include them in the demo.

Remember that Spell Revision is required, and without, my mod won't install at all.
It is so good that I can't see any reason to not use it smile.gif


Salk
These are great news, aigleborgne!

Thanks for putting so much time in refining the scripts. I personally believe SCS to be a great modification. I like SCS II less because it might add to the crazy power's escalation in a way that practically every single fight becomes a serious menace to the player, forcing difficult challenges one after the other. And when it's not difficult, it can be practically impossible, an exercise of metagaming and reload.

I am thankful to DavidW because he kindly allowed (although he does not support it) for stripping the AI of detectable item, which is something I really loathe. I am happy to read that Enhanced Creature also allows for enabling or disabling it (if I understood well).

My criticism to your approach is one (and you perhaps understand it because I moved the same criticism when I was collaborating with you): you force the user to have some mods installed.

I personally have SR in my installation (but definitely not Divine Remix) but I believe that it should be possible to play Enhanced Creature without SR too! In this, DavidW is ahead of you, I think. SCS does not even require (only recommends) the BG2 Fixpack.

Good luck with your demo release! thumb.gif
aigleborgne
Yeah, I gave up Divine Remix too.
Regarding SR, I have based all my spellbooks with SR in mind.
Removing SR implies to check all spellbooks again to see what should be changed, it is almost like doing 2 spellbooks for each caster. I don't have time to do this right now.
Plus, I don't see the point to play the game without SR in 2011. Players that still play BG have tons of mods installed and SR is likely to be one of them.

A mod like SR radically change the whole spellcasting system. It's like changing the fundations of a structure. Then, it's difficult to make a mod that can be designed for both states.

As for my AI, you can disable or enable many things:
; barbarian and berserker rage
CHECK_RAGE=false
; CHECK_ELEMENTAL_IMMUNITY includes resistances to fire, cold, electricity, acid, magic damage
CHECK_ELEMENTAL_IMMUNITY=false
CHECK_POISON_IMMUNITY=false
CHECK_MAGIC_RESISTANCE=false
; CHECK_SPELL_PROTECTIONS includes minor globe, spell immunity, spell turning, ...
CHECK_SPELL_PROTECTIONS=false
; CHECK_WEAPON_PROTECTIONS includes stoneskin, protection from missile/normal/weapon/magic weapon, mantle, ...
CHECK_WEAPON_PROTECTIONS=false
CHECK_SLEEP_IMMUNITY=false
CHECK_FEAR_IMMUNITY=false
CHECK_STUN_IMMUNITY=false
CHECK_HOLD_IMMUNITY=false
CHECK_CHARM_IMMUNITY=false
CHECK_CONFUSION_IMMUNITY=false
CHECK_DEATH_IMMUNITY=false

ALL_CHECK_OVERRIDE=false

QUOTE(Salk @ Dec 29 2011, 10:18 AM) *
These are great news, aigleborgne!

Thanks for putting so much time in refining the scripts. I personally believe SCS to be a great modification. I like SCS II less because it might add to the crazy power's escalation in a way that practically every single fight becomes a serious menace to the player, forcing difficult challenges one after the other. And when it's not difficult, it can be practically impossible, an exercise of metagaming and reload.

I am thankful to DavidW because he kindly allowed (although he does not support it) for stripping the AI of detectable item, which is something I really loathe. I am happy to read that Enhanced Creature also allows for enabling or disabling it (if I understood well).

My criticism to your approach is one (and you perhaps understand it because I moved the same criticism when I was collaborating with you): you force the user to have some mods installed.

I personally have SR in my installation (but definitely not Divine Remix) but I believe that it should be possible to play Enhanced Creature without SR too! In this, DavidW is ahead of you, I think. SCS does not even require (only recommends) the BG2 Fixpack.

Good luck with your demo release! thumb.gif

aigleborgne
I still plan to release something this week-end.
I need to test again my 20 adventurers, they are a few things to change with my new detectable spells and a new behavior to decide when to attack with weapons for casters.
I've also made some changes with new tobEx triggers.

So, I should release it saturday or sunday.
I will not make a light package, full mod will be packaged. It will include everything I have done, but monsters won't work for sure, scripts are broken with my new system I guess (can't remember if I tried to generate them).

No readme will be included yet, it is usually done right before a true release ohmy.gif
It will be possible to change AI settings and generate scripts to include more detection, althrough I haven't tested full detection yet.
This could be also be done by WEIDU maybe, I'll check for this one day just before the final release.

aigleborgne
This is it, first release is done smile.gif

Next release will be fast. I will include all P&P shapeshift forms and balanced totemic summon.
So it will be possible to fully understand that shapeshift is now a true power (previously, it was almost comestic)
Then, I will migrate all working monsters so they can be installed.

I should release all this in one month I guess.
aigleborgne
I have migrated all monster scripts and while it is far better, I still think I can make an improvement.
I am implementing a template system for monsters.

Basically, there is a default behavior for a monster script, then it can be altered with keyword or partial block codes.

For example, this is the most simple monster script:
CODE
// Elemental
[monster=race(ELEMENTAL),walk]
[generate]


A monster with one ability:
CODE
// Lesser Basilisk
[monster=race(BASILISK),walk]

[section=beforeCombat]
  [reallyForceSpell=Petrification]

[generate]



A monster with abilities and spells:
CODE
// Death Knight
[monster=class(DEATHKNIGHT),smart]

[section=beforeTracking]
  [reallyForceSpell=Death Knight Spell Turning]
  [action=timer(ja#detect,24),forceSpell(Detect Invisibility);requireSelf=nodisablecheck,nomem]

[section=beforeCombat]
  [reallyForceSpell=Demon Knight Fear]
  [action=forceSpell(WIZARD_TRUE_DISPEL_MAGIC,remove)]
  [action=forceSpell(DEATHKNIGHT_FIREBALL,remove)]
  [action=forceSpell(WIZARD_POWER_WORD_KILL),remove(WIZARD_POWER_WORD_KILL,WIZARD_POWER_WORD_STUN,WIZARD_POWER_WORD_BLIND);require=random(50)]
  [action=forceSpell(WIZARD_POWER_WORD_STUN),remove(WIZARD_POWER_WORD_KILL,WIZARD_POWER_WORD_STUN,WIZARD_POWER_WORD_BLIND);require=random(60)]
  [action=forceSpell(WIZARD_POWER_WORD_BLIND),remove(WIZARD_POWER_WORD_KILL,WIZARD_POWER_WORD_STUN,WIZARD_POWER_WORD_BLIND);require=random(20)]
  [action=forceSpell(Symbol of Pain),remove(Symbol of Pain,WIZARD_SYMBOL_FEAR);require=random(75)]
  [action=forceSpell(WIZARD_SYMBOL_FEAR),remove(PAIN,WIZARD_SYMBOL_FEAR);require=random(75)]
  [action=forceSpell(Wall of Ice)]

[generate]


As you can see, it is very easy to read.
Scripts are very short, so less potential bugs.

I've started to work on this, should be finished next week or maybe this week.
In the meantime, I'm adding new monsters relating to shapeshift.

Once everything is done, I will have to test again, one by one, all monsters.

I expect to release a new version in 2 months.
This version will be compatible with BGT (finally) !
Salk
The script looks really neat!

And great news about making the mod BGT compatible!

Thank you so much! wub.gif
aigleborgne
I've finished my refactoring.
I've started testing monsters yesterday, beginning with bears.

2 major problems:
- movement speed, didn't seem to match P&P speed with my current formula (P&P Speed * 0.75 round to floor). So I changed it to P&P Speed * 0.8 round to ceiling. For example, bear has 12 in P&P, they are supposed to be as fast as human. Previously they had 9 in game but were a bit slower than human. Now they have 10, they can still be outrun a bit, but 11 is too much, they are faster!
- script problem, without adding ActionListEmpty() trigger to most blocks, I encounter a problem when some attack block are evaluated too often. When my creature was running to melee range, it would stop every 3 meters before running again. Obviously, it was really bad and totally not acceptable. ActionListEmpty() on most blocks (including targetting blocks) perfectly solve this issue.

I've also added bit 24 on flags for all druid polymorph forms weapons so they can't be dispelled. (thanks to TobEx)
I should finish my tests this evening, of course I am not testing all CRE (there are 32 for bears), just one of each sort (black, brown, cave, grizzly, mountain, and kaldran in durlag tower)
aigleborgne
Things are doing well smile.gif
I've finished several monsters:
- Ankheg
- Bear
- Cat
- Basilisk
- Carrion Crawler

I found some bugs related to script, experience, or movement speed. They are all corrected now!
This is, this time, my last run through monsters before final release.
Because each monster is exported on a separate file containing all cre with all changes (+ some other individual files for spells and effects), I am now sure that these files won't change 'till release.

I still want to make a full documentation of each monster changes (something like in aTweaks).

2 monsters found in Durlag's Tower will disappear and replaced by BG2 monster : greater ghoul and crypt crawler.
Keeping undead theme, it will be 2 undead. Right now, I am unsure of choice, but thinking about mummy and maybe vampires?
Of course, if I choose vampire, they will have less hd (down to 5-6 hd)

Normally, PC should be around level 7-8 for the last levels of Durlag's Tower. So it gives me some choice smile.gif
I might replace more monsters like ancien wyverns although I can't put dragons and wyverns are the best call after.
Eventually Dragons, I need to look at Monster Manual to read everything about the lowest hd dragons and their power.

Finally, BGT will not be supported so soon as I am not finding time to work on it.
Until the final release, it will be tutu exclusive.
aigleborgne
I'm glad to have time to work on my project these days.
I spend about 2-3 hours per day on it. This might seem a lot but it is not. Modding takes a lot of time.
To give an example, yesterday, I was testing again my adventurers found in the alpha release. Some of them weren't totally finished and need some work.
In about 2 hours, I've only done about 4-5 adventurers.

I am closed to finish my TODO list for next release.
Content:
- about 30-40 adventurers
- all monsters list here
- readme
- adventurers' documentation (class/kit, level, xp value, and eventually a note)
- monsters' documentation

It should be released in end february if I keep my current advancement.
I'm stilll in a polishing phase: scripts still need slight adjustements (which also mean generator's changes).
I like to use random walk for casters between spells, but sometimes, they get out of range and never come back ! Obviously, it was a problem tied to my tracking system. I think I have solved this issue, but I'm not sure and need a lot of testing because it doesn't occur everytime!
aigleborgne
I'm closed to release alpha v0.2.
Only 2 monsters to finish : Hobgobelin and Kobold.
And making monster's documentation (other readme are done)

I should release it next week smile.gif

After, I will take a break of one or two weeks to test Lost Crossroads (SpellPack).
aigleborgne
Before finishing Hobgobelin and Kobold, I'm doing monsters' documentation.

I have almost finished but during the process, I have found some bugs and took time to correct them.
In that regard, documentation was a good way to control many things.

Additionally, I am implementing D&D 3rd edition monster's types because I think it makes more sense.
For example, constructs (mainly helmed horror, battle horror, flesh golem) have the same immunities as undead, plus :
- immunity to any necromancy effect (ie: spells)
- bonus hit points based on their size (battle horror gets 20 hp bonus)
- 10 hit dice size
- no good saving throws (translated by 20 in all saves)

One item for one type's traits, as undead in vanilla.

I will check again, but I think undead should get more immunities. For example, any life drain like vampiric touch or larloch should not work with undead. I will check and update if necessary.
I will not use RING95 but a new ring instead of.
Undead will have 12 hit dice size now (probably to balance their lack of constitution ?). It is 50% more than in vanilla !

I have already updated most of monsters but I need to test everything to make sure it works as intended.
Then, I'm not sure to be able to release something this week, but I will try anyway smile.gif

Lastly, I'm quite interested by Hard Times mod because Mac Ready got a good point on iron crisis not reflected in game.
BG1 is full of magical items...
I'll probably go in the same way when changing items on an adventurer.
I will check exactly how it is done, I agree to stricly limit magical weapons but I don't want to give a normal weapon (that can be broken) on an important adventurer either.
I remember reading a note where fine weapons would replace +1 weapons.

If I validate this point, I will have to check again my 30 adventurers. Some of them have magical weapons or arrows.
aigleborgne
Hard Times is now part of my install.
I have spent my whole week-end on a new install, which will be more or less definitive.

I am currently thinking of implementing "3rd edition bonuses for ability points" for monsters.
It would only concern bonus hit points from constitution. I think it would be better than 2nd edition system.
And it is optional during install, although it won't be 2nd, 3rd, or none.

I will not release anything this month finally, because I am testing SpellPack (Lost Crossroads).
And since I got no feedback from first release, I don't feel to be in a hurry for a next release that would be probably not beeing tested smile.gif

On a final note, I will check if Infinite Animations is installed and update a few CRE that don't benefit from new animations.
For example, there is Icharyd, skeleton warrior.

aigleborgne
I have worked a bit these last weeks and I have done about 70% of all monsters.
I am currently working on Ogre Mage, and it took me the whole week-end (several hours) to make their abilities.
It is an interesting monster, which is pretty important in BG1.

In vanilla game, ogre mages are almost classic wizard with a semi-random spellbook.
I have restored all of their P&P spells and abilities. They have 4 abilities that can be cast at will (invisibility, regenerate, cause darkness 10 feet, fly) and 4 spells with one use per day: cone of cold, charm person, assume gaseous form, sleep.

I freely chose to use dire charm instead of charm person (because charm person is really weak because target will do nothing)

I haven't done their script yet, but they might be weaker.
Cone of cold is their only damaging spell : it does about 8d8 or 8d6, half if saves are successful.

Charm and sleep are nice also, althrough they can be resist.
Beyond these spells, others are just defensive.
It will regenerate 1hp / round and fly at 15 movement speed with immunities to ground based spells (web, grease, ...)

Invisibility might interesting in combat : they will try to escape to regenerate.
Here, there is a lot to do: escaping with gaseous form, going invisible before or after, regenerate, and back to combat eventually.
Gaseous form give them about the same as ghostform of SR plus a few more effects like flying at 18 movement speed, 50% resistance to magic, fire, cold, electricity, acid. Thus, it is great for escaping a tough situation.

All their abilities are cast at 1 casting speed and can't be interrupt.

So globally, ogre-mages loose a bit their offensive abilities but gain a lot in defensive. They might become annoying but less dangerous.
Although on a low level party, their cone of cold is highly dangerous.
Salk
Sounds good. In BG1 Ogra Mages were rather scary and I think that Enhanced Cratures is not making them any less scary, all considered!

Good work! thumb.gif
aigleborgne
I have almost finished all ogres (will be finished in a few days), this is about 100 creatures (BG1 and BG2).

I have implemented a few things for ogres, that I might extend to some monsters like gnolls.
For normal monsters, no change. It is only for chiefs and leaders.

To be clear, I will take an example:
- a classic ogre is 4 hit dice
- a leader can be 6+ hit dice. vanilla game gave them very high thaco and increase attack per round. This makes them more powerful than in Enhanced Creatures.

I wanted an intelligent solution and 3rd edition gave me some directions with barbarian ogres.
So... when a monster have more hit dice than he should have, he becomes a fighter and starts gaining proficiencies like a fighter.
Becoming a fighter also means he will recieve an extra half attack at level 7 and 13.

Basically, in P&P, a monster is supposed to be able to use his weapon (one star in this weapon).
But a level 13 ogre should still attack as level 4 ogre? Only a better thac0 would make them different ?
If answer is yes, it kills most challenges in BG as it is a common fact.

A concrete example with Berserker Ogre.
I used barbarian ogre found in 3rd edition : they have 5hd and only have 1 apr (compared to 2 in vanilla).
But they follow barbarian kit and gains its advantages : immune to backstab, +2 movement speed, rolls 10 size-dice instead of 8, ... and their rage is mix of vanilla and 3rd edition. They get 2 rages per day, and it lasts 1 turn followed by 3 turns of fatigue.

I tried to make a duel between vanilla berserker ogre and mine. It is very close each time but vanilla usually win smile.gif
Now, rage and speed will bring more challenge versus a party.

Berserker ogre leaders (8+ hd) will start to gain proficiencies:
- level 8 : 2 stars in morning stars
- level 11 : 2 stars in morning stars, 1 in single weapon
- level 14 : 2 stars in morning stars, 2 in single weapon
As barbarian kit, they can't go further 2 stars, but a classic ogre leader could go up to 5.

Larz, level 14-15 ogre in vanilla (his hd might be incorrect, but looking at thac0 and hit points, it is in this range).
He has a very low thac0 and 3 APR.
Mine will have 2.5 apr but better critical and damage, plus a rage ability. He will also 10 or 15% resistance to physical damage, immunity to backstab, better movement speed. Overall, he will be stronger than vanilla, at least in the first turn. After, he is less dangerous when fatigued.

Another example: Kahrk, leader of ogre-mages. It is said in P&P that they can learn martial arts.
As a result, I decided that Kahrk would be a monk, with all ogre mage powers (plus additionnal use for some spells as a leader).
I noticed that Kahrk had a bonus AC vs missiles, which is a bonus given to monks.
Kahrk is now level 14 monk ogre-mage with many abilities
Is he stronger than in vanilla? Not so sure, in vanilla he has minor globe and many offensive spells but he was exactly a mage with more powerful melee abilities.

Mine is a stronger ogre mage. All ogre-mages abilities that can be cast once per day have been trippled: 3 cone of cold, 3 dire charm, 3 gaseous form basically.
On top of that, he gains all abilities of a level 14 monk, which make him more resilient and far better in melee.
About 2.5 apr with 1-12 fists, add other abilities like stunning blow and you obtain a quite unique monster.

On a final note, I am also writting a new script generator from scratch. This new version is very well written and should be a lot better than my current one.
I still have problems with scripts in general. I can't do what I want and it is really a mess. But I have doing this task separatly because I want to finish monster component as possible. I will just have to do a refactoring to scripts on a later stage.
Salk
This update is really interesting.

Ogres are some of my favourite monsters.... happy.gif But when you write that scripts are still a mess I get a bit worried since a good AI mod must have scripts working very well. Am I wrong?
aigleborgne
QUOTE(Salk @ Apr 5 2012, 04:18 PM) *
This update is really interesting.

Ogres are some of my favourite monsters.... happy.gif But when you write that scripts are still a mess I get a bit worried since a good AI mod must have scripts working very well. Am I wrong?


Obviously not, you are right.
Script files are good in fact, problem is generated scripts, which are related to engine flaws or known issues.
So, it can be corrected at any moment by changing script generator. An action I have started but it will takes some time.

By that time, I will continue to work on monsters. Although these days, I have done almost nothing, I'm quite tired.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.