Jump to content

MAGE_ALL


Kish

Recommended Posts

I had some issues using MAGE_ALL for spell targeting. I was using the Use EFF Targeting opcode, and MAGE_ALL was not being applied to a barbarian > mage dualclass (prior to the barbarian levels being reactivated). Changing the targeting to MAGE worked. Similar issues popped up for THIEF_ALL and CLERIC_ALL.

 

Not really related to your inquiry, but I thought I'd throw it in for no apparent reason. :)

Link to comment
Guest your Name
The inclusion of LONG_BOW in the IDS file is hardly a bug, since the files aren't used by the game, and compile to the same value.

Doesn't the game use the IDS files to resolve triggers and actions for dialogues?

Link to comment

I was doing some testing on this matter and remembered some threads on the subject from days gone by. This thread seemed to be the most reasonable place to post this info even though it's archived now. Much of what I found verifies what is said or inferred above, but I'm posting it in a hopefully useful reference format.

 

Sorted by class:

BARD (kits) =		 BARD_ALL
CLERIC (kits) =	   CLERIC_ALL
CLERIC/MAGE =		 CLERIC_ALL, MAGE_ALL
CLERIC/RANGER =	   CLERIC_ALL, RANGER_ALL
CLERIC/THIEF =		CLERIC_ALL, THIEF_ALL
DRUID (kits) =		DRUID_ALL
FIGHTER (kits) =	  FIGHTER_ALL
FIGHTER/CLERIC =	  FIGHTER_ALL, CLERIC_ALL
FIGHTER/DRUID =	   FIGHTER_ALL, DRUID_ALL
FIGHTER/MAGE =		FIGHTER_ALL, MAGE_ALL
FIGHTER/MAGE/CLERIC = FIGHTER_ALL, MAGE_ALL, CLERIC_ALL
FIGHTER/MAGE/THIEF =  FIGHTER_ALL, MAGE_ALL, THIEF_ALL
FIGHTER/THIEF =	   FIGHTER_ALL, THIEF_ALL
MAGE (kits) =		 MAGE_ALL
MAGE/THIEF =		  MAGE_ALL, THIEF_ALL
MONK =				FIGHTER_ALL
RANGER (kits) =	   RANGER_ALL
PALADIN (kits) =	  PALADIN_ALL
SORCERER =			MAGE_ALL
THIEF (kits) =		THIEF_ALL

Sorted by class mask:

BARD_ALL =	BARD (kits)

CLERIC_ALL =  CLERIC (kits), CLERIC/MAGE, CLERIC/RANGER, CLERIC/THIEF, FIGHTER/CLERIC, FIGHTER/MAGE/CLERIC

DRUID_ALL =   DRUID (kits), FIGHTER/DRUID

FIGHTER_ALL = FIGHTER (kits), FIGHTER/CLERIC, FIGHTER/DRUID, FIGHTER/MAGE, FIGHTER/MAGE/CLERIC, FIGHTER/MAGE/THIEF, FIGHTER/THIEF, MONK

MAGE_ALL =	CLERIC/MAGE, FIGHTER/MAGE, FIGHTER/MAGE/CLERIC, FIGHTER/MAGE/THIEF, MAGE (kits), MAGE/THIEF, SORCERER

RANGER_ALL =  CLERIC/RANGER, RANGER (kits)

PALADIN_ALL = PALADIN (kits)

THIEF_ALL =   CLERIC/THIEF, FIGHTER/THIEF, FIGHTER/MAGE/THIEF, MAGE/THIEF, THIEF (kits)

 

Some notes...

 

- Multi-classed and mature dual-classed characters can have their individual classes detected by using the appropriate class mask.

- Dual-classed characters will detect only as their new class until their original class is re-activated, then they will detect as a multi-classed character.

- Kits are based on classes but use a different attribute to specify the kit portion. To detect a kit specifically, use the Kit() trigger with a fixed KIT.IDS file. To detect a kit by its base class, use Class() with one of the above classes or class masks.

- Baldur's Gate 2 treats specialist magi as kits for the mage class.

- The Wild Mage is a kit for the mage class.

- The Sorcerer is a special class that is included with other mage types for the MAGE_ALL class mask.

- The Monk is a special class that is included with other fighter types for the FIGHTER_ALL class mask.

- The Barbarian is a fourth kit for the fighter class that is shown separately from the other fighter kits for some reason.

 

I tested using a modified DPLAYER3 script with hotkeys to dynamically change class and to display which class masks were true for the current class definition. I also used a nearby character with test dialog to provide the same information through the dialog interface, just in case there might be differences; there weren't any. For special classes and extra kits I generated a new character rather than trying to dynamically change class via script. I did not test with EFF targeting, though the results shouldn't be any different, provided you are aware of the points outlined above, and have constructed your EFF correctly.

 

If a class mask doesn't seem to be working, make sure your other triggers aren't causing a problem. For example, a See() with a Class(LastTalkedToBy,MAGE_ALL) won't work if your mage is invisible.

 

Edit: added monk, clarified some points.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...