Jump to content

BGEE/BG2EE-specific opcodes and scripting


Recommended Posts

Just wanted to start a thread to try and document some of the new files and features of the EE-variant of the IE engine. For the most part, it's a straight BG2-ToB engine with some new wrinkles.

 

The AreaCheckObject trigger is more robust (i.e. no crashes).

 

Nearest object trigger was nreliable and now works. nthNearestObject and nthNearestMyGroupOfType would always return the nearest object and now actually behave as expected.

 

NearestDoor didn't work with nested objects (i.e. NearestDoor(Myself)) but does on EE.

 

The TakePartyItem action (and its variants), when performed by a non-party member, would fill the creature's magic weapon slot and then its inventory. In EE, the magic weapon slot is ignored and items taken go straight to the inventory.

 

PickPocketFailed() now just passes along PickPocketFailed and not AttackedBy. (Sorry, link goes to the NDA'd bug tracker, but EE treats this trigger exactly like TobEx.)

 

Opcode 243 (item charge drain) works in EE:

 

243 (0x0F3) Item: Drain Item Charges [243]
Parameter #1: Item Type
Parameter #2: Number to Drain
Description:
Magical items matching the 'Item Type' value on the targeted creature(s) will have their charges drained by Number to Drain. Non-recharging items drained of all their charges are destroyed.

Known values for 'Item Type' are:
0 Magical items excluding weapons
1 Magical items including weapons

 

It only drains charges from magical headers (3) and does not destroy items that recharge (i.e. so it would drain Kitthix's figurine but not destroy; wands will be drained and destroyed). It will not drain items flagged as unsellable (bit 0 at 0x18) and will drain only if the item is flagged as magical and droppable (bits 2 and 6 at 0x18).

 

Opcodes 146, 147, and 148 now behave when used in conjunction with containers.

 

Opcode 232 has some additional arguments for parameter2. 12 is for making a kill and is used by Dorn's sword to grant him a 24-hour-long extra +1 thac0 after making a kill. 13 is TimeofDay (parameter1 needs to be set to 0, 0x2c contains the time). This is used by the Night Club to grant extra bonuses at night.

 

Opcode 319 is a new opcode used to restrict items to specific IDS values:

 

Opcode #319 Usability
Spell level set to 1 means only usable by
Parameter #1: IDS Entry
Parameter #2: IDS File
Special: STRREF displayed in the item description.

 

It also has a secondary use where it can be used to restrict items to a specific NPC--using the name STRREF in parameter1, death variable in the resource field, and parameter2 to 10.

 

Opcode 320 lets you change the weather:

 

Parameter #1: Type
1: Rain
2: Snow
3: Nothing

 

A new scripting action, 353 AdvanceTime( I:Time*GTIMES), allows for arbitrary advancement of the game time. Cromwell's forging really can take 24 hours without shenanigans.

 

352 SetAreaScript(S:Script*,I:ScriptSlot) lets you change and set area scripts on the fly. Unlike ChangeAIScript it doesn't have to be run from an area, i.e. it'll work on an area without a script.

 

Opcode 321 is basically IWD's 254, Removal: Effects specified by Resource, which allows you to dispel/remove effects based on what spell they came from. It should only be used with limited timing modes with 0 duration (otherwise it behaves like 206).

Link to comment

Next, new (and changed) 2da files.

 

backstab will now take additional rows for custom backstab multiplier progression:

 

 

2DA		   V1.0
0
		  0		  1		  2		  3		  4		  5		  6		  7		  8		  9		  10		 11		 12		 13		 14		 15		 16		 17		 18		 19		 20		 21		 22		 23		 24		 25		 26		 27		 28		 29		 30		 31		 32		 33		 34		 35		 36		 37		 38		 39		 40		
THIEF		 1		  2		  2		  2		  2		  3		  3		  3		  3		  4		  4		  4		  4		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  
SHADOWDANCER  1		  2		  2		  2		  2		  2		  2		  2		  2		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  3		  
ASSASIN	   1		  2		  2		  2		  2		  3		  3		  3		  3		  4		  4		  4		  4		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  
BOUNTY_HUNTER 1		  2		  2		  2		  2		  3		  3		  3		  3		  4		  4		  4		  4		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  5		  
STALKER	   1		  2		  2		  2		  2		  2		  2		  2		  2		  3		  3		  3		  3		  3		  3		  3		  3		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4		  4						  

 

 

banttimg controls the (previously hardcoded) timing of banters:

 

 

2DA V1.0
0
					VALUE
FREQUENCY			   600	  
PROBABILITY			 10	
REPLAYDELAY			 150	  
SPECIALPROBABILITY	  25	   

 

 

clascolr sets default coloring for new characters based on their class/kit:

 

 

2DA				 V1.0
54
		MAGE	   SORCERER   FIGHTER	CLERIC	 THIEF	  BARD	   PALADIN	DRUID	  RANGER	 FIGHTER_MAGE FIGHTER_CLERIC FIGHTER_THIEF FIGHTER_MAGE_THIEF MAGE_THIEF CLERIC_MAGE CLERIC_THIEF FIGHTER_DRUID FIGHTER_MAGE_CLERIC CLERIC_RANGER ABJURER	CONJURER   DIVINER	ENCHANTER  ILLUSIONIST INVOKER	NECROMANCER TRANSMUTER BERSERKER  WIZARD_SLAYER KENSAI	 CAVALIER   INQUISITOR UNDEAD_HUNTER FERALAN	STALKER	BEASTMASTER ASSASIN	BOUNTY_HUNTER SWASHBUCKLER BLADE	  JESTER	 SKALD	  TOTEMIC_DRUID SHAPESHIFTER BEAST_FRIEND TALOS	  HELM	   LATHANDER  MONK	   BARBARIAN  WILDMAGE   Blackguard SHADOWDANCER DWARVEN_DEFENDER DRAGON_DISCIPLE DARK_MOON  SUN_SOUL  
METAL	   57		 67		 30		 25		 24		 24		 25		 30		 30		 57		 25		 24		 24		 57		 57		 24		 30		 24		 25		 57		 57		 57		 57		 57		 57		 57		 57		 72		 72		 72		 67		 25		 93		 28		 93		 30		 182		24		 93		 24		 24		 24		 30		 30		 30		 25		 18		 67		 25		 30		 57		 182		142		28		 67		 25		 67		
MINOR_CLOTH 58		 46		 91		 28		 99		 67		 28		 86		 37		 58		 28		 99		 58		 58		 58		 99		 86		 46		 28		 58		 58		 58		 58		 58		 58		 58		 58		 46		 58		 67		 25		 28		 72		 93		 182		86		 182		99		 99		 67		 67		 99		 54		 54		 54		 83		 5		  25		 28		 91		 58		 182		142		93		 25		 83		 25		
MAIN_CLOTH  122		47		 93		 57		 169		56		 57		 37		 86		 122		57		 169		169		122		122		169		37		 57		 37		 122		122		122		122		122		122		122		122		47		 122		169		70		 57		 169		91		 136		37		 136		144		169		56		 56		 169		52		 52		 52		 66		 24		 79		 57		 93		 122		136		136		91		 70		 66		 79		
LEATHER	 1		  2		  23		 2		  2		  2		  2		  1		  1		  1		  2		  2		  2		  1		  1		  2		  1		  2		  2		  1		  1		  1		  1		  1		  1		  1		  1		  2		  2		  93		 93		 2		  93		 91		 184		1		  184		2		  93		 2		  2		  2		  23		 23		 23		 28		 27		 23		 2		  23		 1		  184		182		91		 94		 28		 23		
ARMOR	   43		 43		 93		 24		 93		 25		 24		 110		110		43		 24		 93		 93		 43		 43		 93		 110		93		 24		 43		 43		 43		 43		 43		 43		 43		 43		 93		 93		 72		 43		 24		 72		 93		 93		 110		142		93		 72		 25		 25		 25		 30		 30		 30		 23		 30		 24		 24		 93		 43		 142		136		93		 43		 23		 24		 

 

 

clasiskl sets the initial scores for thieving abilities:

 

 

2DA				 V1.0
*
				MAGE				FIGHTER			 CLERIC			  THIEF			   BARD				PALADIN			 DRUID			   RANGER			  FIGHTER_MAGE		FIGHTER_CLERIC	  FIGHTER_THIEF	   FIGHTER_MAGE_THIEF  MAGE_THIEF		  CLERIC_MAGE		 CLERIC_THIEF		FIGHTER_DRUID	   FIGHTER_MAGE_CLERIC CLERIC_RANGER	   ABJURER			 CONJURER			DIVINER			 ENCHANTER		   ILLUSIONIST		 INVOKER			 NECROMANCER		 TRANSMUTER		  BERSERKER		   WIZARD_SLAYER	   KENSAI			  CAVALIER			INQUISITOR		  UNDEAD_HUNTER	   FERALAN			 STALKER			 BEASTMASTER		 ASSASIN			 BOUNTY_HUNTER	   SWASHBUCKLER		BLADE			   JESTER			  SKALD			   TOTEMIC_DRUID	   SHAPESHIFTER		BEAST_FRIEND		TALOS			   HELM				LATHANDER		   MONK				BARBARIAN		   SORCERER			WILDMAGE			DARK_MOON		   DRAGON_DISCIPLE	 DWARVEN_DEFENDER
PICK_POCKETS		0				   0				   0				   0				   25				  0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   25				  25				  25				  0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0
OPEN_LOCKS		  0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0
FIND_TRAPS		  0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0
MOVE_SILENTLY	   0				   0				   0				   0				   0				   0				   0				   15				  0				   0				   0				   0				   0				   0				   0				   0				   0				   15				  0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   15				  15				  15				  0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0
HIDE_IN_SHADOWS	 0				   0				   0				   0				   0				   0				   0				   15				  0				   0				   0				   0				   0				   0				   0				   0				   0				   15				  0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   15				  15				  15				  0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0
DETECT_ILLUSION	 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0
SET_TRAPS		   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0

 

 

clastext will allow for the setting of custom bios based on the character's class/kit, but is not yet finalized.

 

clasthac allows for setting additional thac0 penalties based on class/kit:

 

 

2DA				 V1.0
*
				MAGE				FIGHTER			 CLERIC			  THIEF			   BARD				PALADIN			 DRUID			   RANGER			  FIGHTER_MAGE		FIGHTER_CLERIC	  FIGHTER_THIEF	   FIGHTER_MAGE_THIEF  MAGE_THIEF		  CLERIC_MAGE		 CLERIC_THIEF		FIGHTER_DRUID	   FIGHTER_MAGE_CLERIC CLERIC_RANGER	   ABJURER			 CONJURER			DIVINER			 ENCHANTER		   ILLUSIONIST		 INVOKER			 NECROMANCER		 TRANSMUTER		  BERSERKER		   WIZARD_SLAYER	   KENSAI			  CAVALIER			INQUISITOR		  UNDEAD_HUNTER	   FERALAN			 STALKER			 BEASTMASTER		 ASSASIN			 BOUNTY_HUNTER	   SWASHBUCKLER		BLADE			   JESTER			  SKALD			   TOTEMIC_DRUID	   SHAPESHIFTER		BEAST_FRIEND		TALOS			   HELM				LATHANDER		   MONK				BARBARIAN		   SORCERER			WILDMAGE			DARK_MOON		   DRAGON_DISCIPLE	 DWARVEN_DEFENDER
BONUS			   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0

 

 

clsrcreq externalizes which races are allowed to select which classes, as well as which races can dual-class. Same implementation as TobEx.

 

 

2DA V1.0
1
					HUMAN   ELF   HALF_ELF	 DWARF   HALFLING GNOME	HALFORC
MAGE					1	   1	 1			0	   0		1		0
FIGHTER				 1	   1	 1			1	   1		1		1
CLERIC				  1	   1	 1			1	   1		1		1
THIEF				   1	   1	 1			1	   1		1		1
BARD					1	   0	 1			0	   0		0		0
PALADIN				 1	   0	 0			0	   0		0		0
FIGHTER_MAGE			0	   1	 1			0	   0		1		0
FIGHTER_CLERIC		  0	   0	 1			1	   0		1		1
FIGHTER_THIEF		   0	   1	 1			1	   1		1		1
FIGHTER_MAGE_THIEF	  0	   1	 1			0	   0		0		0
DRUID				   1	   0	 1			0	   0		0		0
RANGER				  1	   1	 1			0	   0		0		0
MAGE_THIEF			  0	   1	 1			0	   0		1		0
CLERIC_MAGE			 0	   0	 1			0	   0		1		0
CLERIC_THIEF			0	   0	 0			0	   0		1		1
FIGHTER_DRUID		   0	   0	 1			0	   0		0		0
FIGHTER_MAGE_CLERIC	 0	   0	 1			0	   0		0		0
CLERIC_RANGER		   0	   0	 1			0	   0		0		0
SORCERER				1	   1	 1			0	   0		0		0
MONK					1	   0	 0			0	   0		0		0
DUALCLASS				1		0	  0			   0	   0		0		0

 

 

clswpbon externalizes non-proficiency penalties, as well as which classes get the bonus APR from wspatck. UNARMED_DIVISOR sets number of attacks for unarmed (i.e. fist) characters--0 means no bonus, non-zero means level/value (rounded down) APR bonus.

 

 

2DA V1.0
0
					GETS_PROF_APR   UNARMED_DIVISOR ZERO_SKILL_THAC0
MAGE					0			   0			   5
FIGHTER				 1			   0			   2
CLERIC				  0			   0			   3
THIEF				   0			   0			   3
BARD					0			   0			   3
PALADIN				 1			   0			   2
DRUID				   0			   0			   3
RANGER				  1			   0			   2
FIGHTER_MAGE			1			   0			   2
FIGHTER_CLERIC		  1			   0			   2
FIGHTER_THIEF		   1			   0			   2
FIGHTER_MAGE_THIEF	  1			   0			   2
MAGE_THIEF			  0			   0			   5
CLERIC_MAGE			 0			   0			   3
CLERIC_THIEF			0			   0			   3
FIGHTER_DRUID		   1			   0			   2
FIGHTER_MAGE_CLERIC	 1			   0			   2
CLERIC_RANGER		   1			   0			   2
ABJURER				 0			   0			   5
CONJURER				0			   0			   5
DIVINER				 0			   0			   5
ENCHANTER			   0			   0			   5
ILLUSIONIST			 0			   0			   5
INVOKER				 0			   0			   5
NECROMANCER			 0			   0			   5
TRANSMUTER			  0			   0			   5
WILDMAGE				0			   0			   5
BERSERKER			   1			   0			   2
WIZARD_SLAYER		   1			   0			   2
KENSAI				  1			   0			   2
CAVALIER				1			   0			   2
INQUISITOR			  1			   0			   2
UNDEAD_HUNTER		   1			   0			   2
FERALAN				 1			   0			   2
STALKER				 1			   0			   2
BEASTMASTER			 1			   0			   2
ASSASIN				 0			   0			   3
BOUNTY_HUNTER		   0			   0			   3
SWASHBUCKLER			0				  0			   3
BLADE				   0			   0			   3
JESTER				  0			   0			   3
SKALD				   0			   0			   3
TOTEMIC_DRUID		   0			   0			   3
SHAPESHIFTER			0			   0			   3
BEAST_FRIEND			0			   0			   3
TALOS				   0			   0			   3
HELM					0			   0			   3
LATHANDER			   0			   0			   3
BARBARIAN			   1			   0			   2
BLACKGUARD			  1			   0			   2
SHADOWDANCER			0			   0			   5
DWARVEN_DEFENDER		1			   0			   2
DRAGON_DISCIPLE		 0			   0			   5
MONK					1				3			   2
DARK_MOON			   1			   3			   2
SUN_SOUL				1			   3			   2

 

 

extanim and extspeed can be used to set various properties of new creature animations:

 

 

2DA V1.0
*
	  ARMOR_MAX_CODE CAN_LIE_DOWN DETECTED_BY_INFRAVISION DOUBLE_BLIT EQUIP_HELMET SPLIT_BAMS COLOR_BLOOD COLOR_CHUNKS FALSE_COLOR HEIGHT_CODE HEIGHT_CODE_HELMET HEIGHT_CODE_SHIELD SND_FREQ PERSONAL_SPACE RESREF RESREF_PAPERDOLL RESREF_ARMORBASE RESREF_ARMORSPECIFIC RESREF_SHADOW

2DA V1.0
*
	SPEED
12288	6
28928	6
28929	6
29184	9
29185	9
29186	9
29187	9
29698	10
29697	10
29696	10
29952	7
29953	7
25600	9
53248	10
30466	5
30464	5
30720	7
32768	8
32523	10
32522	10
28672	7
33024	7
58368	7
58384	7
58400	7
58416	7
57424	6
58624	6
58656	6
57456	8
59392	7
59424	7
59408	7
59440	7
59456	7
59136	7
59152	7
59168	7
57520	7
33280	7
32525	6
36864	8
30465	5
31745	7
31744	7
31232	8
31233	8
31234	8
32559	8
31235	8
31236	8
32512	7
32527	7
31488	10
31490	10
31493	10
31494	10
31492	10
31491	10
31489	10
40960	9
4096	8
32557	8
32000	5

 

familiar lets you designate familiars per alignment:

 

 

2DA V1.0

			FAMILIAR
L_G		FAMPSD
N_G		FAMPSD
C_G		FAMFAIR
L_N		FAMFER
N_N		FAMRAB
C_N		FAMCAT
L_E		FAMIMP
N_E		FAMDUST
C_E		FAMQUAS

 

 

hidespl lets you designate spells to hide from level-up selection screens. Same implementation as TobEx.

 

 

2DA		  V1.0
0
	IS_HIDDEN	IS_FINAL
SPWI001	1			0
SPWI002	1			0
SPWI003	1			0
SPWI004	1			0
SPWI005	1			0
SPWI006	1			0
SPWI007	1			0
SPWI008	1			0
SPWI009	1			0
SPWI010	1			0
SPWI011	1			0
SPWI012	1			0
SPWI013	1			0
SPWI014	1			0
SPWI015	1			0
SPWI016	1			0
SPWI017	1			0
SPWI018	1			0
SPWI019	1			0
SPWI020	1			0
SPWI021	1			0
SPWI022	1			0
SPWI023	1			0
SPWI024	1			0
SPWI025	1			0
SPWI026	1			0
SPWI027	1			0
SPWI050	1			0
SPWI051	1			0
SPWI052	1			0
SPWI053	1			0
SPWI054	1			0
SPWI055	1			0
SPWI056	1			0
SPWI298	1			0
SPWI299	1			0
SPWI399	1			0
SPWI402	1			0
SPWI483	1			0
SPWI484	1			0
SPWI485	1			0
SPWI486	1			0
SPWI487	1			0
SPWI488	1			0
SPWI489	1			0
SPWI490	1			0
SPWI491	1			0
SPWI493	1			0
SPWI494	1			0
SPWI495	1			0
SPWI496	1			0
SPWI497	1			0
SPWI498	1			0
SPWI499	1			0
SPWI590	1			0
SPWI591	1			0
SPWI592	1			0
SPWI593	1			0
SPWI594	1			0
SPWI595	1			0
SPWI596	1			0
SPWI597	1			0
SPWI802	1			0
SPWI853	1			0
SPWI888	1			0
SPWI897	1			0
SPWI898	1			0
SPWI899	1			0
SPWI920	1			0
SPWI921	1			0
SPWI922	1			0
SPWI923	1			0
SPWI924	1			0
SPWI925	1			0
SPWI926	1			1
SPWI927	1			0
SPWI928	1			0
SPWI929	1			0
SPWI930	1			0
SPWI931	1			0
SPWI932	1			0
SPWI933	1			0
SPWI934	1			0
SPWI935	1			0
SPWI936	1			0
SPWI937	1			0
SPWI938	1			0
SPWI939	1			0
SPWI940	1			0
SPWI941	1			0
SPWI942	1			0
SPWI943	1			0
SPWI944	1			0
SPWI945	1			0
SPWI946	1			0
SPWI947	1			0
SPWI948	1			0
SPWI949	1			0
SPWI950	1			0
SPWI951	1			0
SPWI952	1			0
SPWI953	1			0
SPWI954	1			0
SPWI955	1			0
SPWI956	1			0
SPWI957	1			0
SPWI958	1			0
SPWI959	1			0
SPWI960	1			0
SPWI979	1			0
SPWI980	1			0
SPWI981	1			0
SPWI982	1			0
SPWI983	1			0
SPWI984	1			0
SPWI985	1			0
SPWI986	1			0
SPWI987	1			0
SPWI988	1			0
SPWI989	1			0
SPWI990	1			0
SPWI991	1			0
SPWI992	1			0
SPWI993	1			0
SPWI994	1			0
SPWI995	1			0
SPWI996	1			0
SPWI997	1			0
SPWI998	1			0
SPWI999	1			0
SPPR721	1			0
SPPR722	1			0
SPPR723	1			0
SPPR724	1			0
SPPR725	1			0
SPPR726	1			0
SPPR727	1			0
SPPR728	1			0
SPPR729	1			0
SPPR730	1			0
SPPR731	1			0
SPPR732	1			0

 

 

hpbarb externalizes the barbarian HP table, same as TobEx:

 

 

2DA V1.0
0
SIDES   ROLLS   MODIFIER
1   12	  1	   0
2   12	  1	   0
3   12	  1	   0
4   12	  1	   0
5   12	  1	   0
6   12	  1	   0
7   12	  1	   0
8   12	  1	   0
9   12	  1	   0
10  12	  0	   3
11  12	  0	   3
12  12	  0	   3
13  12	  0	   3
14  12	  0	   3
15  12	  0	   3
16  12	  0	   3
17  12	  0	   3
18  12	  0	   3
19  12	  0	   3
20  12	  0	   3
21  12	  0	   3
22  12	  0	   3
23  12	  0	   3
24  12	  0	   3
25  12	  0	   3
26  12	  0	   3
27  12	  0	   3
28  12	  0	   3
29  12	  0	   3
30  12	  0	   3
31  12	  0	   3
32  12	  0	   3
33  12	  0	   3
34  12	  0	   3
35  12	  0	   3
36  12	  0	   3
37  12	  0	   3
38  12	  0	   3
39  12	  0	   3
40  12	  0	   3

 

 

hpclass externalizes which HP table to use for each class/kit. New tables can also be created and referenced (see hpdd below). Same implementation as TobEx.

 

 

2DA				  V1.0
HPWAR
				 TABLE  
FIGHTER			  HPWAR	  
BERSERKER			HPWAR	  
WIZARD_SLAYER		HPWAR	  
KENSAI			   HPWAR	  
DWARVEN_DEFENDER	 HPBARB	  
RANGER			   HPWAR	
ARCHER			   HPWAR	
STALKER			  HPWAR	
BEAST_MASTER		 HPWAR  
PALADIN			  HPWAR	  
CAVALIER			 HPWAR	  
INQUISITOR		   HPWAR	  
UNDEAD_HUNTER		HPWAR	  
BLACKGUARD		   HPWAR		
CLERIC			   HPPRS	  
TALOS				HPPRS	  
HELM				 HPPRS	  
LATHANDER			HPPRS	  
DRUID				HPPRS	
TOTEMIC_DRUID		HPPRS	
SHAPESHIFTER		 HPPRS	
BEAST_FRIEND		 HPPRS	
MAGE				 HPWIZ	  
ABJURER			  HPWIZ	  
CONJURER			 HPWIZ	  
DIVINER			  HPWIZ	  
ENCHANTER			HPWIZ	  
ILLUSIONIST		  HPWIZ	  
INVOKER			  HPWIZ	  
NECROMANCER		  HPWIZ	  
TRANSMUTER		   HPWIZ	  
WILDMAGE			 HPWIZ	  
THIEF				HPROG	  
ASSASIN			  HPROG	  
BOUNTY_HUNTER		HPROG	  
SWASHBUCKLER		 HPROG	  
SHADOWDANCER		 HPROG	  
BARD				 HPROG	  
BLADE				HPROG	  
JESTER			   HPROG	  
SKALD				HPROG	  
SORCERER			 HPWIZ	
DRAGON_DISCIPLE	  HPDD	
MONK				 HPMONK	
DARK_MOON			HPMONK	
SUN_SOUL			 HPMONK	
BARBARIAN			HPBARB	  
FIGHTER_MAGE		 HPWAR	  
FIGHTER_CLERIC	   HPWAR	  
FIGHTER_THIEF		HPWAR	  
FIGHTER_MAGE_THIEF   HPWAR	
MAGE_THIEF		   HPWIZ	
CLERIC_MAGE		  HPPRS	
CLERIC_THIEF		 HPPRS	
FIGHTER_DRUID		HPWAR	
FIGHTER_MAGE_CLERIC  HPWAR	
CLERIC_RANGER		HPPRS	 

 

 

hpdd and hp monk are new HP progression tables:

 

 

2DA V1.0
0
SIDES   ROLLS   MODIFIER
1   6	   1	   0
2   6	   1	   0
3   6	   1	   0
4   6	   1	   0
5   6	   1	   0
6   6	   1	   0
7   6	   1	   0
8   6	   1	   0
9   6	   1	   0
10  6	   1	   0
11  6	   0	   1
12  6	   0	   1
13  6	   0	   1
14  6	   0	   1
15  6	   0	   1
16  6	   0	   1
17  6	   0	   1
18  6	   0	   1
19  6	   0	   1
20  6	   0	   1
21  6	   0	   1
22  6	   0	   1
23  6	   0	   1
24  6	   0	   1
25  6	   0	   1
26  6	   0	   1
27  6	   0	   1
28  6	   0	   1
29  6	   0	   1
30  6	   0	   1
31  6	   0	   1
32  6	   0	   1
33  6	   0	   1
34  6	   0	   1
35  6	   0	   1
36  6	   0	   1
37  6	   0	   1
38  6	   0	   1
39  6	   0	   1
40  6	   0	   1

2DA V1.0
0
SIDES   ROLLS   MODIFIER
1   8	   1	   0
2   8	   1	   0
3   8	   1	   0
4   8	   1	   0
5   8	   1	   0
6   8	   1	   0
7   8	   1	   0
8   8	   1	   0
9   8	   1	   0
10  8	   0	   2
11  8	   0	   2
12  8	   0	   2
13  8	   0	   2
14  8	   0	   2
15  8	   0	   2
16  8	   0	   2
17  8	   0	   2
18  8	   0	   2
19  8	   0	   2
20  8	   0	   2
21  8	   0	   2
22  8	   0	   2
23  8	   0	   2
24  8	   0	   2
25  8	   0	   2
26  8	   0	   2
27  8	   0	   2
28  8	   0	   2
29  8	   0	   2
30  8	   0	   2
31  8	   0	   2
32  8	   0	   2
33  8	   0	   2
34  8	   0	   2
35  8	   0	   2
36  8	   0	   2
37  8	   0	   2
38  8	   0	   2
39  8	   0	   2
40  8	   0	   2

 

 

item_use externalizes NPC undroppable items, i.e. Alora's luck rabbit foot or Edwin's amulet, as well as what they say about them. Same implementation as TobEx:

 

 

2DA V1.0
*
USER	STRREF  FLAG
MISC84	MINSC	  10218	3
MISC88	ALORA	10219	1
MISC89	EDWIN	  10222	1
SW1H13	XAN	10220	2
AROW14	ELDOTH	10221	2

 

 

itemanim is another TobEx import:

 

 

2DA V1.0
-1
					SEQUENCE			  
POTN00				  -1		
FIRESEED		8

 

 

itemtype allows for custom item types as well as their custom sound effects for picking them up and dropping them. There's some discussion of breaking up the misc category into more distinct item types, or using the IWD system of delineating shields and armor into their own types (buckers, small shields, etc. and leather, plate, etc.) but nothing has come of it yet.

 

 

2DA V1.0			
0			
TAKESOUND	DROPSOUND	SLOT
0	0	0	-1
1	0	0	-1
2	0	0	1
3	0	0	-1
4	0	0	-1
5	0	0	-1
6	0	0	-1
7	0	0	-1
8	0	0	-1
9	0	0	-1
10	0	0	-1
11	0	0	-1
12	0	0	-1
13	0	0	-1
14	0	0	-1
15	0	0	-1
16	0	0	-1
17	0	0	-1
18	0	0	-1
19	0	0	-1
20	0	0	-1
21	0	0	-1
22	0	0	-1
23	0	0	-1
24	0	0	-1
25	0	0	-1
26	0	0	-1
27	0	0	-1
28	0	0	-1
29	0	0	-1
30	0	0	-1
31	0	0	-1
32	0	0	-1
33	0	0	-1
34	0	0	-1
35	0	0	-1
36	0	0	-1
37	0	0	-1
38	0	0	-1
39	0	0	-1
40	0	0	-1
41	GAM_26A	GAM_26B	9
42	0	0	-1
43	FAL_01B	GAM_21B	-1
44	GAM_39A	GAM_39B	-1
45	ABELA03	ABELA02	-1
46	GAM_23A	GAM_23B	-1
47	GAM_26A	GAM_26B	9
48	FAL_01B	GAM_21B	-1
49	GAM_26A	GAM_26B	9
50	GAM_05	GAM_06	-1
51	GAM_39A	GAM_39B	-1
52	GAM_21A	GAM_21B	-1
53	GAM_26A	GAM_26B	9
54	GAM_21A	GAM_21B	-1
55	0	0	-1
56	GAM_38A	GAM_38B	-1
57	GAM_41A	GAM_41B	35
58	GAM_15A	GAM_15B	-1
59	GAM_15A	GAM_15B	-1
60	GAM_15A	GAM_15B	1
61	GAM_15A	GAM_15B	1
62	GAM_16A	GAM_16B	1
63	GAM_16A	GAM_16B	1
64	GAM_17A	GAM_17B	1
65	GAM_17A	GAM_17B	1
66	GAM_15A	GAM_15B	1
67	GAM_36A	GAM_36B	1
68	GAM_16A	GAM_16B	1
69	GAM_41A	GAM_41B	35
70	0	0	-1
71	GAM_21A	GAM_21B	-1
72	0	0	-1
73	0	0	-1

 

 

loadh25 and loadhint are still present, but unused (no loading screens for EE).

 

mgsrcreq externalizes racial access to arcane kits, same as TobEx:

 

 

2DA V1.0
1
			CLASS				   HUMAN   ELF   HALF_ELF	 DWARF   HALFLING GNOME	HALFORC
0x00004000		MAGE					1	   1	 1			0	   0		0		0
0x00000040		ABJURER				 1	   0	 0			0	   0		0		0
0x00000080		CONJURER				1	   0	 1			0	   0		0		0
0x00000100		DIVINER				 1	   1	 1			0	   0		0		0
0x00000200		ENCHANTER				  1	   1	 1			0	   0		0		0
0x00000400		ILLUSIONIST			 1	   0	 0			0	   0		1		0
0x00000800		INVOKER				 1	   0	 0			0	   0		0		0
0x00001000		NECROMANCER			 1	   0	 0			0	   0		0		0
0x00002000		TRANSMUTER				 1	   0	 1			0	   0		0		0
0x80000000		WILDMAGE				1	   1	 1			0	   0		0		0

 

 

monkfist externalizes the assignment of monk fist weapons per level. It should also be noted that monk AC progression is now granted by their CLAB file and no longer hardcoded.

 

 

2DA	V1.0
MFIST8
	   RESREF
1	  MFIST1
2	  MFIST1
3	  MFIST2
4	  MFIST2
5	  MFIST2
6	  MFIST3
7	  MFIST3
8	  MFIST3
9	  MFIST4
10	 MFIST4
11	 MFIST4
12	 MFIST5
13	 MFIST5
14	 MFIST5
15	 MFIST6
16	 MFIST6
17	 MFIST6
18	 MFIST6
19	 MFIST7
20	 MFIST7
21	 MFIST7
22	 MFIST7
23	 MFIST7
24	 MFIST7
25	 MFIST8
26	 MFIST8
27	 MFIST8
28	 MFIST8
29	 MFIST8
30	 MFIST8
31	 MFIST8
32	 MFIST8
33	 MFIST8
34	 MFIST8
35	 MFIST8
36	 MFIST8
37	 MFIST8
38	 MFIST8
39	 MFIST8
40	 MFIST8

 

 

numwslot externalizes the number of weapons slots per kit/class:

 

 

2DA				 V1.0
4
			 SLOTS
MAGE				2
FIGHTER			 4
CLERIC			  2
THIEF			   2
BARD				2
PALADIN			 3
DRUID			   2
RANGER			  3
FIGHTER_MAGE		2
FIGHTER_CLERIC	  2
FIGHTER_THIEF	   2
FIGHTER_MAGE_THIEF  2
MAGE_THIEF		  2
CLERIC_MAGE		 2
CLERIC_THIEF		2
FIGHTER_DRUID	   2
FIGHTER_MAGE_CLERIC 2
CLERIC_RANGER	   2
ABJURER			 2
CONJURER			2
DIVINER			 2
ENCHANTER		   2
ILLUSIONIST		 2
INVOKER			 2
NECROMANCER		 2
TRANSMUTER		  2
BERSERKER		   4
WIZARD_SLAYER	   4
KENSAI			  4
CAVALIER			3
INQUISITOR		  3
UNDEAD_HUNTER	   3
FERALAN			 3
STALKER			 3
BEASTMASTER		 3
ASSASIN			 2
BOUNTY_HUNTER	   2
SWASHBUCKLER		2
BLADE			   2
JESTER			  2
SKALD			   2
TOTEMIC_DRUID	   2
SHAPESHIFTER		2
BEAST_FRIEND		2
TALOS			   2
HELM				2
LATHANDER		   2
MONK				3
SORCERER			2
BARBARIAN		   4
WILDMAGE			2
Blackguard		  3
SHADOWDANCER		2
DWARVEN_DEFENDER	4
DRAGON_DISCIPLE	 2
DARK_MOON		   3
SUN_SOUL			3

 

 

profsmax is actually used and enforced in EE.

 

racetext sets default biographies by race. It's basically TobEx's externalization with a new bio column:

 

 

2DA	   V1.0
-1
	  ID		NAME	  DESCSTR   UPPERCASE BIOGRAPHY
HUMAN	 1		 7193	  9550	  1096	  15895
ELF	   2		 7194	  9552	  1097	  15891
HALF_ELF  3		 7197	  9555	  1098	  15892
DWARF	 4		 7182	  9551	  1100	  15890
HALFLING  5		 7195	  9554	  1101	  15893
GNOME	 6		 7196	  9553	  1099	  15894
HALF_ORC  7		 24200	 24204	 24202	 31709
TIEFLING  153	   24201	 -1		24203	 15891

 

 

racethac externalizes the racial to-hit bonuses with specific weapons:

 

 

2DA					  V1.0
0
					 LABEL					HUMAN					DWARF					ELF					  GNOME					HALF_ELF				 HALFLING				 HALFORC
89					   BASTARDSWORD			 0						0						0						0						0						0						0
90					   LONGSWORD				0						0						1						0						0						0						0
91					   SHORTSWORD			   0						0						1						0						0						0						0
92					   AXE					  0						0						0						0						0						0						0
93					   TWOHANDEDSWORD		   0						0						0						0						0						0						0
94					   KATANA				   0						0						0						0						0						0						0
95					   SCIMITARWAKISASHININJATO 0						0						0						0						0						0						0
96					   DAGGER				   0						0						0						0						0						0						0
97					   WARHAMMER				0						0						0						0						0						0						0
115					  CLUB					 0						0						0						0						0						0						0
98					   SPEAR					0						0						0						0						0						0						0
99					   HALBERD				  0						0						0						0						0						0						0
100					  FLAILMORNINGSTAR		 0						0						0						0						0						0						0
101					  MACE					 0						0						0						0						0						0						0
102					  QUARTERSTAFF			 0						0						0						0						0						0						0
103					  CROSSBOW				 0						0						0						0						0						0						0
104					  LONGBOW				  0						0						1						0						0						0						0
105					  SHORTBOW				 0						0						1						0						0						0						0
106					  DART					 0						0						0						0						0						0						0
107					  SLING					0						0						0						0						0						1						0
111					  2HANDED				  0						0						0						0						0						0						0
112					  SWORDANDSHIELD		   0						0						0						0						0						0						0
113					  SINGLEWEAPON			 0						0						0						0						0						0						0
114					  2WEAPON				  0						0						0						0						0						0						0
116					  EXTRA2				   0						0						0						0						0						0						0
117					  EXTRA3				   0						0						0						0						0						0						0
118					  EXTRA4				   0						0						0						0						0						0						0
119					  EXTRA5				   0						0						0						0						0						0						0
120					  EXTRA6				   0						0						0						0						0						0						0
121					  EXTRA7				   0						0						0						0						0						0						0
122					  EXTRA8				   0						0						0						0						0						0						0
123					  EXTRA9				   0						0						0						0						0						0						0
124					  EXTRA10				  0						0						0						0						0						0						0
125					  EXTRA11				  0						0						0						0						0						0						0
126					  EXTRA12				  0						0						0						0						0						0						0
127					  EXTRA13				  0						0						0						0						0						0						0
128					  EXTRA14				  0						0						0						0						0						0						0
129					  EXTRA15				  0						0						0						0						0						0						0
130					  EXTRA16				  0						0						0						0						0						0						0
131					  EXTRA17				  0						0						0						0						0						0						0
132					  EXTRA18				  0						0						0						0						0						0						0
133					  EXTRA19				  0						0						0						0						0						0						0
134					  EXTRA20				  0						0						0						0						0						0						0

 

 

sltsteal allows for setting custom difficulties for pickpocketing per item slot; same implementation as TobEx.

 

songlist can be extended beyond 100, same as TobEx.

 

startare is now a generic starting 2da--i.e. startare is used by BGEE for the traditional BG cmapiagn, while startbp is used to kick off the Black Pits campaign. It's identical to BG2's startare except it includes a line to set the XP cap. I believe startpos is still used for player positioning.

 

 

2DA V1.0
BADVAL
					VALUE
START_AREA			  AR2600
START_XPOS			  1080
START_YPOS			  530
START_AREA_TUTORIAL	 TU0015
START_XPOS_TUTORIAL	 607
START_YPOS_TUTORIAL	 660
START_AREA_MP		   AR4000
START_XPOS_MP		   1311
START_YPOS_MP		   2347
START_XP				0
START_XP_CAP			161000

 

 

stylbonu externalizes the effects of the weapon style proficiency bonii:

 

 

2DA			  V1.0
0
			 DAMAGE_RIGHT	 DAMAGE_LEFT	  THAC0_RIGHT	  THAC0_LEFT	   AC_BASE		  AC_MISSILE	   SPEED			CRITICALROLL
TWOHANDED-0	  0				0				0				0				0				0				0				0
SINGLEWEAPON-0   0				0				0				0				0				0				0				0
SWORDANDSHIELD-0 0				0				0				0				0				0				0				0
TWOWEAPON-0	  0				0				4				8				0				0				0				0
TWOHANDED-1	  1				0				0				0				0				0				-2			   1
SINGLEWEAPON-1   0				0				0				0				-1			   0				0				1
SWORDANDSHIELD-1 0				0				0				0				0				-2			   0				0
TWOWEAPON-1	  0				0				2				6				0				0				0				0
TWOHANDED-2	  1				0				0				0				0				0				-4			   1
SINGLEWEAPON-2   0				0				0				0				-2			   0				0				1
SWORDANDSHIELD-2 0				0				0				0				0				-4			   0				0
TWOWEAPON-2	  0				0				0				4				0				0				0				0
TWOWEAPON-3	  0				0				0				2				0				0				0				0

 

 

summlimt externalizes the summoning caps:

 

 

2DA	   V1.0
0
			 LIMIT
NORMAL	5
CELESTIAL 1

 

 

thiefscl scales thieving abilities as a percentage. A value of 300 would mean any point invested in a skill would actually mean 3 points when used in the game. A value of 0 disables the skill for the class/kit. By default these are all 100 or 0 to enable or disable thieving skills:

 

 

2DA				 V1.0
0
				MAGE				FIGHTER			 CLERIC			  THIEF			   BARD				PALADIN			 DRUID			   RANGER			  FIGHTER_MAGE		FIGHTER_CLERIC	  FIGHTER_THIEF	   FIGHTER_MAGE_THIEF  MAGE_THIEF		  CLERIC_MAGE		 CLERIC_THIEF		FIGHTER_DRUID	   FIGHTER_MAGE_CLERIC CLERIC_RANGER	   ABJURER			 CONJURER			DIVINER			 ENCHANTER		   ILLUSIONIST		 INVOKER			 NECROMANCER		 TRANSMUTER		  BERSERKER		   WIZARD_SLAYER	   KENSAI			  CAVALIER			INQUISITOR		  UNDEAD_HUNTER	   FERALAN			 STALKER			 BEASTMASTER		 ASSASIN			 BOUNTY_HUNTER	   SWASHBUCKLER		BLADE			   JESTER			  SKALD			   TOTEMIC_DRUID	   SHAPESHIFTER		BEAST_FRIEND		TALOS			   HELM				LATHANDER		   MONK				BARBARIAN		   SORCERER			WILDMAGE			DARK_MOON		   DRAGON_DISCIPLE	 DWARVEN_DEFENDER	SHADOWDANCER	SUN_SOUL
PICK_POCKETS		0				   0				   0				   100				 100				 0				   0				   0				   0				   0				   100				 100				 100				 0				   100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 100				 100				 50				  100				 25				  0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   100			 0  
OPEN_LOCKS		  0				   0				   0				   100				 0				   0				   0				   0				   0				   0				   100				 100				 100				 0				   100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 100				 100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   100			 0
FIND_TRAPS		  0				   0				   0				   100				 0				   0				   0				   0				   0				   0				   100				 100				 100				 0				   100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 100				 100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 0				   0				   0				   100				 0				   0				   100			 100
MOVE_SILENTLY	   0				   0				   0				   100				 0				   0				   0				   100				 0				   0				   100				 100				 100				 0				   100				 0				   0				   100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 100				 100				 100				 100				 100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 0				   0				   0				   100				 0				   0				   100			 100
HIDE_IN_SHADOWS	 0				   0				   0				   100				 0				   0				   0				   100				 0				   0				   100				 100				 100				 0				   100				 0				   0				   100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 100				 100				 100				 100				 100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 0				   0				   0				   100				 0				   0				   100			 100
DETECT_ILLUSION	 0				   0				   0				   100				 0				   0				   0				   0				   0				   0				   100				 100				 100				 0				   100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 100				 100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 0				   0				   100			 0
SET_TRAPS		   0				   0				   0				   100				 0				   0				   0				   0				   0				   0				   100				 100				 100				 0				   100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   100				 100				 100				 0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0				   0			   0
STEALTH				0					0					0					0					0					0					0					100					0					0					0					0					0					0					0					0					0					100					0					0					0					0					0					0					0					0					0					0					0					0					0					0					100					100					100					0					0					0					0					0					0					0					0					0					0					0					0					0					0					0					0					0					0					0					0				0	   

 

 

thiefskl controls the points to distribute at character creation and at subsequent level-ups:

 

2DA V1.0
0
		START_POINTS	LEVEL_POINTS
THIEF			40		25
SHADOWDANCER		30		15
ASSASIN			40		15
BOUNTY_HUNTER		40		20
SWASHBUCKLER		40		25
MONK			0		10
SUN_SOUL			0		10
DARK_MOON			0		10
FIGHTER_THIEF		40		25
MAGE_THIEF		40		25
CLERIC_THIEF		40		25
FIGHTER_MAGE_THIEF	40		25

 

 

tokentxt is used to allow modders to create custom tokens, but I don't actually have any information or examples about how it actually works:

 

 

2DA V1.0

*

	   TOKEN_TEXT			 PROTAGONIST STAT	   VALUE	  EQUALITY   STRINGT	STRINGF	



 

 

traplimt externalizes the trap cap:

 

 

2DA				V1.0
0
			 LIMIT
THIEF			  6
FIGHTER_THIEF	  6
FIGHTER_MAGE_THIEF 6
MAGE_THIEF		 6
CLERIC_THIEF	   6
ASSASIN			6
BOUNTY_HUNTER	  6
SWASHBUCKLER	   6
SHADOWDANCER	   6

 

Link to comment

EE has dir.ids, which is now referenced by all of the actions that use an orientation argument (i.e. CreateCreature is now CreateCreature(S:NewObject*,P:Location*,I:Face*DIR):

 

IDS
0 S
1 SSW
2 SW
3 SWW
4 W
5 NWW
6 NW
7 NNW
8 N
9 NNE
10 NE
11 NEE
12 E
13 SEE
14 SE
15 SSE

 

A blank moraleai.ids is included just to shut up DLTCEP.

 

As for actions, I've already mentioned 352 and 353 above:

 

352 SetAreaScript(S:Script*,I:ScriptSlot)
353 AdvanceTime(I:Time*GTIMES)
354 RunAwayFromNoInterruptNoLeaveArea(O:Creature*,I:Time*)
355 RunAwayFromNoLeaveArea(O:Creature*,I:Time*)
356 TransformItem(S:OldItem*,S:NewItem*)
357 ForceRandomEncounter(S:Area*)
358 JumpToObject(O:Target*)

 

354 and 355 are simply variants of the existing RunAway actions.

 

TransformItem is a PsT import and allows for changing an item to a new one while still retaining all of the charges/flags of the previous item.

 

When called, ForceRandomEncounter will force the party into the selected area on their next worldmap travel. Only one ForceRandomEncounter can be in play at a time so subsequent use will clear the previous one. It will also be cleared once the party arrives in the designated area.

 

JumpToObject is an IWD2 import.

 

As for triggers:

 

0x40DD IsTouchGUI()
0x40DE HasDLC(S:DLCName*)
0x40DF BeenInParty(S:Name*)

IsTouchGUI() will return true for stuff like iPads and whatnot. HasDLC will always evaluate to true on Windows/OS X/Linux (there's no DLC); on other platforms it will return true or false based on whether the DLC has been purchased. BeenInParty will, oddly enough, return true of the designated object has been in the party.

 

TobEx's NextTriggerObject is in the works if not already in the nightly builds.

Link to comment

Wow, thanks!

 

Opcode 232: since 0x2c is already used (iesdp is old there), is the time stored as a word or dword? Hopefully just in the first word.

 

extspeed sounds wonderful. And just a big grin at "A blank moraleai.ids is included just to shut up DLTCEP.". :)

 

Link to comment

0x2c is a special field that is interpreted opcode specifically in a handful of opcodes. Think of it as a param #2.5

It exists in eff v1, so its use should have been encouraged more instead of param #3 which exists only in eff v2.

Edited by Avenger
Link to comment

The followup for the NDA'd links.

 

NearestDoor, used with a nested object, crashes ToB. It now behaves as expected, though NearestDoor(Myself) still misbehaves--just use NearestDoor().

 

Fo the contingency (232) opcode, quoth the Avenger:

 

12 - Killed - used in dorn's sword

13 - TimeOfDay - used in blun38. 0x2c contains the time of day, param1 should be set to 0.

 

For opcode 319, quoth the Coriander:

 

Add to item equipped effects

 

Opcode #319 Usability

Spell level set to 1 means only usable by

Parameter #1: IDS Entry

Parameter #2: IDS File

Special: STRREF displayed in the item description.

Adding a special case for targeting name.

Parameter 1: Name STRREF

Parameter 2: 10

The second quote is inaccurate (as was I in my first post), as it was later decided to use DV targeting. To make an item usable by only one creature, parameter2 is set to 10 and the resource field to the DV (paameter1 is not relevant).

 

The interesting revelation from the SetAreaScript thread is that every area in the engine has the full array of six script slots. From Cori:

 

We're adding a new script action that will set the area script. It's mostly self explanatory.

The slot options are:

0 DEFAULT
1 GENERAL
2 RACE
3 CLASS
4 OVERRIDE
5+ DEFAULT

 

Only the default script is loaded when you move to an area or load.

 

So you can set an override/race/etc. script for an area, with a caveat. Apparently every object has the full array of these scripts (i.e. areas, containers) but they're not stored through save/load. Cori again:

 

The filetypes are just for storing information, anything that has a script is treated the same way by the engine. Which is why you get bugs like Ulgoth's Beard or Candlekeep displaying text in the upper left corner. If it was a creature, that's where it's head would be.

 

An example usage she gave was

 

TEST.BS
IF
HotKey(D)
THEN
RESPONSE #100
SetAreaScript("chicken", 2)
END

CHICKEN.BCS
IF
TRUE()
THEN
RESPONSE #100
CreateCreatureObject("CHICKE", Player1, 0, 0, 0)
END

which will flood the given area with chickens once you press D.

 

There's not really a lot to add to the 320 description above, or to the AdvanceTime command.

Link to comment

clswpbon externalizes non-proficiency penalties, as well as which classes get the bonus APR from wspatck. UNARMED_DIVISOR sets number of attacks for unarmed (i.e. fist) characters--0 means no bonus, non-zero means level/value (rounded down) APR bonus.

This is also in error. A non-zero UNARMED_DIVISOR means 1 unarmed attack plus an additonal 1/2 (not full) attack per every (value of UNARMED_DIVISOR) levels.

Link to comment

Opcode 319 is a new opcode used to restrict items to specific IDS values:

 

Opcode #319 Usability
Spell level set to 1 means only usable by
Parameter #1: IDS Entry
Parameter #2: IDS File
Special: STRREF displayed in the item description.

 

It also has a secondary use where it can be used to restrict items to a specific NPC--using the name STRREF in parameter1, death variable in the resource field, and parameter2 to 10.

 

Does the "Special" parameter for opcode 319 refer to the field at 0x2c Avenger described as Param 2.5?

 

Is the list of IDS files that can be referenced by this and other opcodes increased at all? Referencing kit.ids would be nice.

2 EA.ids

3 General.ids

4 Race.ids

5 Class.ids

6 Specific.ids

7 Gender.ids

8 Align.ids

 

To make sure I understand "Spell level set to 1 means only usable by", let's say there was an effect that specified Param2=7 (GENDER.IDS) and Param1=2 (FEMALE). With spell level set to 1, it would prevent non-female characters from using the item, but with spell level set to something else, it would prevent female characters from using it?

 

Is there anything that could make an item usable by a kit but not its parent class?

Link to comment

Opcode 319 is a new opcode used to restrict items to specific IDS values:

 

Opcode #319 Usability
Spell level set to 1 means only usable by
Parameter #1: IDS Entry
Parameter #2: IDS File
Special: STRREF displayed in the item description.

 

It also has a secondary use where it can be used to restrict items to a specific NPC--using the name STRREF in parameter1, death variable in the resource field, and parameter2 to 10.

 

Does the "Special" parameter for opcode 319 refer to the field at 0x2c Avenger described as Param 2.5?

 

...

Yes, it is there so you don't have to make external eff files.

Link to comment

Would it be appropriate to put in a request?

 

A class-specific (or better--kit-specific) hidespl would be very helpful for creating custom spell lists for arcane casters. Something like hpclass to refer to different 2da's would be excellent. Perhaps the default could be to refer to a single 2da for all classes but allowing modders to create alternate ones for specific kits or classes. I make this request having no idea how difficult this would be. :p

 

Edited for clarity (hopefully)

Edited by Grammarsalad
Link to comment

Opcode 319 is a new opcode used to restrict items to specific IDS values:

 

Opcode #319 Usability
Spell level set to 1 means only usable by
Parameter #1: IDS Entry
Parameter #2: IDS File
Special: STRREF displayed in the item description.

 

It also has a secondary use where it can be used to restrict items to a specific NPC--using the name STRREF in parameter1, death variable in the resource field, and parameter2 to 10.

 

Does the "Special" parameter for opcode 319 refer to the field at 0x2c Avenger described as Param 2.5?

 

Is the list of IDS files that can be referenced by this and other opcodes increased at all? Referencing kit.ids would be nice.

2 EA.ids

3 General.ids

4 Race.ids

5 Class.ids

6 Specific.ids

7 Gender.ids

8 Align.ids

 

To make sure I understand "Spell level set to 1 means only usable by", let's say there was an effect that specified Param2=7 (GENDER.IDS) and Param1=2 (FEMALE). With spell level set to 1, it would prevent non-female characters from using the item, but with spell level set to something else, it would prevent female characters from using it?

 

Is there anything that could make an item usable by a kit but not its parent class?

9 - kit.ids (works with almost all ids targeting opcode, except protection from creature)

 

Opcode 319 also works with name/scripting name.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...