![]() |
The Black Wyrm's Lair Terms of Use |
![]() ![]() ![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() ![]() Mod Developer Posts: 210 Joined: 3-December 05 ![]() |
After all this years, it's good to start a new thread
![]() 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. This post has been edited by aigleborgne: Jun 22 2011, 06:41 AM |
|
|
![]() |
![]()
Post
#2
|
|
![]() ![]() Mod Developer Posts: 210 Joined: 3-December 05 ![]() |
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] |
|
|
![]() ![]() |
![]() |
Lo-Fi Version | Time is now: 2nd August 2025 - 09:13 AM |