5084 lines
208 KiB
Plaintext
5084 lines
208 KiB
Plaintext
////////////////////////////////////////////////////////
|
|
//
|
|
// NWScript
|
|
//
|
|
// The list of actions and pre-defined constants.
|
|
//
|
|
// (c) BioWare Corp, 1999
|
|
//
|
|
////////////////////////////////////////////////////////
|
|
|
|
#define ENGINE_NUM_STRUCTURES 4
|
|
#define ENGINE_STRUCTURE_0 effect
|
|
#define ENGINE_STRUCTURE_1 event
|
|
#define ENGINE_STRUCTURE_2 location
|
|
#define ENGINE_STRUCTURE_3 talent
|
|
|
|
// Constants
|
|
|
|
int NUM_INVENTORY_SLOTS = 18;
|
|
|
|
int TRUE = 1;
|
|
int FALSE = 0;
|
|
|
|
float DIRECTION_EAST = 0.0;
|
|
float DIRECTION_NORTH = 90.0;
|
|
float DIRECTION_WEST = 180.0;
|
|
float DIRECTION_SOUTH = 270.0;
|
|
float PI = 3.141592;
|
|
|
|
int ATTITUDE_NEUTRAL = 0;
|
|
int ATTITUDE_AGGRESSIVE = 1;
|
|
int ATTITUDE_DEFENSIVE = 2;
|
|
int ATTITUDE_SPECIAL = 3;
|
|
|
|
int TALKVOLUME_TALK = 0;
|
|
int TALKVOLUME_WHISPER = 1;
|
|
int TALKVOLUME_SHOUT = 2;
|
|
int TALKVOLUME_SILENT_TALK = 3;
|
|
int TALKVOLUME_SILENT_SHOUT = 4;
|
|
|
|
int INVENTORY_SLOT_HEAD = 0;
|
|
int INVENTORY_SLOT_CHEST = 1;
|
|
int INVENTORY_SLOT_BOOTS = 2;
|
|
int INVENTORY_SLOT_ARMS = 3;
|
|
int INVENTORY_SLOT_RIGHTHAND = 4;
|
|
int INVENTORY_SLOT_LEFTHAND = 5;
|
|
int INVENTORY_SLOT_CLOAK = 6;
|
|
int INVENTORY_SLOT_LEFTRING = 7;
|
|
int INVENTORY_SLOT_RIGHTRING = 8;
|
|
int INVENTORY_SLOT_NECK = 9;
|
|
int INVENTORY_SLOT_BELT = 10;
|
|
int INVENTORY_SLOT_ARROWS = 11;
|
|
int INVENTORY_SLOT_BULLETS = 12;
|
|
int INVENTORY_SLOT_BOLTS = 13;
|
|
int INVENTORY_SLOT_CWEAPON_L = 14;
|
|
int INVENTORY_SLOT_CWEAPON_R = 15;
|
|
int INVENTORY_SLOT_CWEAPON_B = 16;
|
|
int INVENTORY_SLOT_CARMOUR = 17;
|
|
|
|
//Effect type constants
|
|
int DURATION_TYPE_INSTANT = 0;
|
|
int DURATION_TYPE_TEMPORARY = 1;
|
|
int DURATION_TYPE_PERMANENT = 2;
|
|
|
|
int SUBTYPE_MAGICAL = 8;
|
|
int SUBTYPE_SUPERNATURAL = 16;
|
|
int SUBTYPE_EXTRAORDINARY = 24;
|
|
|
|
int ABILITY_STRENGTH = 0; // should be the same as in nwseffectlist.cpp
|
|
int ABILITY_DEXTERITY = 1;
|
|
int ABILITY_CONSTITUTION = 2;
|
|
int ABILITY_INTELLIGENCE = 3;
|
|
int ABILITY_WISDOM = 4;
|
|
int ABILITY_CHARISMA = 5;
|
|
|
|
int SHAPE_SPELLCYLINDER = 0;
|
|
int SHAPE_CONE = 1;
|
|
int SHAPE_CUBE = 2;
|
|
int SHAPE_SPELLCONE = 3;
|
|
int SHAPE_SPHERE = 4;
|
|
|
|
int METAMAGIC_NONE = 0;
|
|
int METAMAGIC_EMPOWER = 1;
|
|
int METAMAGIC_EXTEND = 2;
|
|
int METAMAGIC_MAXIMIZE = 4;
|
|
int METAMAGIC_QUICKEN = 8;
|
|
int METAMAGIC_SILENT = 16;
|
|
int METAMAGIC_STILL = 32;
|
|
int METAMAGIC_ANY = 255;
|
|
|
|
int OBJECT_TYPE_CREATURE = 1;
|
|
int OBJECT_TYPE_ITEM = 2;
|
|
int OBJECT_TYPE_TRIGGER = 4;
|
|
int OBJECT_TYPE_DOOR = 8;
|
|
int OBJECT_TYPE_AREA_OF_EFFECT = 16;
|
|
int OBJECT_TYPE_WAYPOINT = 32;
|
|
int OBJECT_TYPE_PLACEABLE = 64;
|
|
int OBJECT_TYPE_STORE = 128;
|
|
int OBJECT_TYPE_ALL = 32767;
|
|
|
|
int OBJECT_TYPE_INVALID = 32767;
|
|
|
|
int GENDER_MALE = 0;
|
|
int GENDER_FEMALE = 1;
|
|
int GENDER_BOTH = 2;
|
|
int GENDER_OTHER = 3;
|
|
int GENDER_NONE = 4;
|
|
|
|
int DAMAGE_TYPE_BLUDGEONING = 1;
|
|
int DAMAGE_TYPE_PIERCING = 2;
|
|
int DAMAGE_TYPE_SLASHING = 4;
|
|
int DAMAGE_TYPE_MAGICAL = 8;
|
|
int DAMAGE_TYPE_ACID = 16;
|
|
int DAMAGE_TYPE_COLD = 32;
|
|
int DAMAGE_TYPE_DIVINE = 64;
|
|
int DAMAGE_TYPE_ELECTRICAL = 128;
|
|
int DAMAGE_TYPE_FIRE = 256;
|
|
int DAMAGE_TYPE_NEGATIVE = 512;
|
|
int DAMAGE_TYPE_POSITIVE = 1024;
|
|
int DAMAGE_TYPE_SONIC = 2048;
|
|
|
|
// Special versus flag just for AC effects
|
|
int AC_VS_DAMAGE_TYPE_ALL = 4103;
|
|
|
|
int DAMAGE_BONUS_1 = 1;
|
|
int DAMAGE_BONUS_2 = 2;
|
|
int DAMAGE_BONUS_3 = 3;
|
|
int DAMAGE_BONUS_4 = 4;
|
|
int DAMAGE_BONUS_5 = 5;
|
|
int DAMAGE_BONUS_1d4 = 6;
|
|
int DAMAGE_BONUS_1d6 = 7;
|
|
int DAMAGE_BONUS_1d8 = 8;
|
|
int DAMAGE_BONUS_1d10 = 9;
|
|
int DAMAGE_BONUS_2d6 = 10;
|
|
|
|
int DAMAGE_POWER_NORMAL = 0;
|
|
int DAMAGE_POWER_PLUS_ONE = 1;
|
|
int DAMAGE_POWER_PLUS_TWO = 2;
|
|
int DAMAGE_POWER_PLUS_THREE = 3;
|
|
int DAMAGE_POWER_PLUS_FOUR = 4;
|
|
int DAMAGE_POWER_PLUS_FIVE = 5;
|
|
int DAMAGE_POWER_ENERGY = 6;
|
|
|
|
int ATTACK_BONUS_MISC = 0;
|
|
int ATTACK_BONUS_ONHAND = 1;
|
|
int ATTACK_BONUS_OFFHAND = 2;
|
|
|
|
int AC_DODGE_BONUS = 0;
|
|
int AC_NATURAL_BONUS = 1;
|
|
int AC_ARMOUR_ENCHANTMENT_BONUS = 2;
|
|
int AC_SHIELD_ENCHANTMENT_BONUS = 3;
|
|
int AC_DEFLECTION_BONUS = 4;
|
|
|
|
int DOOR_ACTION_OPEN = 0;
|
|
int DOOR_ACTION_UNLOCK = 1;
|
|
int DOOR_ACTION_BASH = 2;
|
|
int DOOR_ACTION_IGNORE = 3;
|
|
int DOOR_ACTION_KNOCK = 4;
|
|
|
|
int PLACEABLE_ACTION_USE = 0;
|
|
int PLACEABLE_ACTION_UNLOCK = 1;
|
|
int PLACEABLE_ACTION_BASH = 2;
|
|
int PLACEABLE_ACTION_KNOCK = 4;
|
|
|
|
|
|
int RACIAL_TYPE_DWARF = 0;
|
|
int RACIAL_TYPE_ELF = 1;
|
|
int RACIAL_TYPE_GNOME = 2;
|
|
int RACIAL_TYPE_HALFLING = 3;
|
|
int RACIAL_TYPE_HALFELF = 4;
|
|
int RACIAL_TYPE_HALFORC = 5;
|
|
int RACIAL_TYPE_HUMAN = 6;
|
|
int RACIAL_TYPE_ABERRATION = 7;
|
|
int RACIAL_TYPE_ANIMAL = 8;
|
|
int RACIAL_TYPE_BEAST = 9;
|
|
int RACIAL_TYPE_CONSTRUCT = 10;
|
|
int RACIAL_TYPE_DRAGON = 11;
|
|
int RACIAL_TYPE_HUMANOID_GOBLINOID = 12;
|
|
int RACIAL_TYPE_HUMANOID_MONSTROUS = 13;
|
|
int RACIAL_TYPE_HUMANOID_ORC = 14;
|
|
int RACIAL_TYPE_HUMANOID_REPTILIAN = 15;
|
|
int RACIAL_TYPE_ELEMENTAL = 16;
|
|
int RACIAL_TYPE_FEY = 17;
|
|
int RACIAL_TYPE_GIANT = 18;
|
|
int RACIAL_TYPE_MAGICAL_BEAST = 19;
|
|
int RACIAL_TYPE_OUTSIDER = 20;
|
|
int RACIAL_TYPE_SHAPECHANGER = 23;
|
|
int RACIAL_TYPE_UNDEAD = 24;
|
|
int RACIAL_TYPE_VERMIN = 25;
|
|
int RACIAL_TYPE_MINOTAUR = 26;
|
|
int RACIAL_TYPE_VAMPIRE = 27;
|
|
int RACIAL_TYPE_WEREWOLF = 28;
|
|
int RACIAL_TYPE_ALL = 29;
|
|
int RACIAL_TYPE_INVALID = 30;
|
|
|
|
|
|
|
|
int ALIGNMENT_ALL = 0;
|
|
int ALIGNMENT_NEUTRAL = 1;
|
|
int ALIGNMENT_LAWFUL = 2;
|
|
int ALIGNMENT_CHAOTIC = 3;
|
|
int ALIGNMENT_GOOD = 4;
|
|
int ALIGNMENT_EVIL = 5;
|
|
|
|
int SAVING_THROW_ALL = 0;
|
|
int SAVING_THROW_FORT = 1;
|
|
int SAVING_THROW_REFLEX = 2;
|
|
int SAVING_THROW_WILL = 3;
|
|
|
|
int SAVING_THROW_TYPE_ALL = 0;
|
|
int SAVING_THROW_TYPE_NONE = 0;
|
|
int SAVING_THROW_TYPE_MIND_SPELLS = 1;
|
|
int SAVING_THROW_TYPE_POISON = 2;
|
|
int SAVING_THROW_TYPE_DISEASE = 3;
|
|
int SAVING_THROW_TYPE_FEAR = 4;
|
|
int SAVING_THROW_TYPE_SONIC = 5;
|
|
int SAVING_THROW_TYPE_ACID = 6;
|
|
int SAVING_THROW_TYPE_FIRE = 7;
|
|
int SAVING_THROW_TYPE_ELECTRICITY = 8;
|
|
int SAVING_THROW_TYPE_POSITIVE = 9;
|
|
int SAVING_THROW_TYPE_NEGATIVE = 10;
|
|
int SAVING_THROW_TYPE_DEATH = 11;
|
|
int SAVING_THROW_TYPE_COLD = 12;
|
|
int SAVING_THROW_TYPE_DIVINE = 13;
|
|
int SAVING_THROW_TYPE_TRAP = 14;
|
|
int SAVING_THROW_TYPE_SPELL = 15;
|
|
int SAVING_THROW_TYPE_GOOD = 16;
|
|
int SAVING_THROW_TYPE_EVIL = 17;
|
|
int SAVING_THROW_TYPE_LAW = 18;
|
|
int SAVING_THROW_TYPE_CHAOS = 19;
|
|
|
|
int IMMUNITY_TYPE_NONE = 0;
|
|
int IMMUNITY_TYPE_MIND_SPELLS = 1;
|
|
int IMMUNITY_TYPE_POISON = 2;
|
|
int IMMUNITY_TYPE_DISEASE = 3;
|
|
int IMMUNITY_TYPE_FEAR = 4;
|
|
int IMMUNITY_TYPE_TRAP = 5;
|
|
int IMMUNITY_TYPE_PARALYSIS = 6;
|
|
int IMMUNITY_TYPE_BLINDNESS = 7;
|
|
int IMMUNITY_TYPE_DEAFNESS = 8;
|
|
int IMMUNITY_TYPE_SLOW = 9;
|
|
int IMMUNITY_TYPE_ENTANGLE = 10;
|
|
int IMMUNITY_TYPE_SILENCE = 11;
|
|
int IMMUNITY_TYPE_STUN = 12;
|
|
int IMMUNITY_TYPE_SLEEP = 13;
|
|
int IMMUNITY_TYPE_CHARM = 14;
|
|
int IMMUNITY_TYPE_DOMINATE = 15;
|
|
int IMMUNITY_TYPE_CONFUSED = 16;
|
|
int IMMUNITY_TYPE_CURSED = 17;
|
|
int IMMUNITY_TYPE_DAZED = 18;
|
|
int IMMUNITY_TYPE_ABILITY_DECREASE = 19;
|
|
int IMMUNITY_TYPE_ATTACK_DECREASE = 20;
|
|
int IMMUNITY_TYPE_DAMAGE_DECREASE = 21;
|
|
int IMMUNITY_TYPE_DAMAGE_IMMUNITY_DECREASE = 22;
|
|
int IMMUNITY_TYPE_AC_DECREASE = 23;
|
|
int IMMUNITY_TYPE_MOVEMENT_SPEED_DECREASE = 24;
|
|
int IMMUNITY_TYPE_SAVING_THROW_DECREASE = 25;
|
|
int IMMUNITY_TYPE_SPELL_RESISTANCE_DECREASE = 26;
|
|
int IMMUNITY_TYPE_SKILL_DECREASE = 27;
|
|
int IMMUNITY_TYPE_KNOCKDOWN = 28;
|
|
int IMMUNITY_TYPE_NEGATIVE_LEVEL = 29;
|
|
int IMMUNITY_TYPE_SNEAK_ATTACK = 30;
|
|
int IMMUNITY_TYPE_CRITICAL_HIT = 31;
|
|
int IMMUNITY_TYPE_DEATH = 32;
|
|
|
|
int AREA_TRANSITION_RANDOM = 0;
|
|
int AREA_TRANSITION_USER_DEFINED = 1;
|
|
int AREA_TRANSITION_CITY_01 = 2;
|
|
int AREA_TRANSITION_CITY_02 = 3;
|
|
int AREA_TRANSITION_CITY_03 = 4;
|
|
int AREA_TRANSITION_CITY_04 = 5;
|
|
int AREA_TRANSITION_CITY_05 = 6;
|
|
int AREA_TRANSITION_CRYPT_01 = 7;
|
|
int AREA_TRANSITION_CRYPT_02 = 8;
|
|
int AREA_TRANSITION_CRYPT_03 = 9;
|
|
int AREA_TRANSITION_CRYPT_04 = 10;
|
|
int AREA_TRANSITION_CRYPT_05 = 11;
|
|
int AREA_TRANSITION_DUNGEON_01 = 12;
|
|
int AREA_TRANSITION_DUNGEON_02 = 13;
|
|
int AREA_TRANSITION_DUNGEON_03 = 14;
|
|
int AREA_TRANSITION_DUNGEON_04 = 15;
|
|
int AREA_TRANSITION_DUNGEON_05 = 16;
|
|
int AREA_TRANSITION_DUNGEON_06 = 17;
|
|
int AREA_TRANSITION_DUNGEON_07 = 18;
|
|
int AREA_TRANSITION_DUNGEON_08 = 19;
|
|
int AREA_TRANSITION_MINES_01 = 20;
|
|
int AREA_TRANSITION_MINES_02 = 21;
|
|
int AREA_TRANSITION_MINES_03 = 22;
|
|
int AREA_TRANSITION_MINES_04 = 23;
|
|
int AREA_TRANSITION_MINES_05 = 24;
|
|
int AREA_TRANSITION_MINES_06 = 25;
|
|
int AREA_TRANSITION_MINES_07 = 26;
|
|
int AREA_TRANSITION_MINES_08 = 27;
|
|
int AREA_TRANSITION_MINES_09 = 28;
|
|
int AREA_TRANSITION_SEWER_01 = 29;
|
|
int AREA_TRANSITION_SEWER_02 = 30;
|
|
int AREA_TRANSITION_SEWER_03 = 31;
|
|
int AREA_TRANSITION_SEWER_04 = 32;
|
|
int AREA_TRANSITION_SEWER_05 = 33;
|
|
int AREA_TRANSITION_CASTLE_01 = 34;
|
|
int AREA_TRANSITION_CASTLE_02 = 35;
|
|
int AREA_TRANSITION_CASTLE_03 = 36;
|
|
int AREA_TRANSITION_CASTLE_04 = 37;
|
|
int AREA_TRANSITION_CASTLE_05 = 38;
|
|
int AREA_TRANSITION_CASTLE_06 = 39;
|
|
int AREA_TRANSITION_CASTLE_07 = 40;
|
|
int AREA_TRANSITION_CASTLE_08 = 41;
|
|
int AREA_TRANSITION_INTERIOR_01 = 42;
|
|
int AREA_TRANSITION_INTERIOR_02 = 43;
|
|
int AREA_TRANSITION_INTERIOR_03 = 44;
|
|
int AREA_TRANSITION_INTERIOR_04 = 45;
|
|
int AREA_TRANSITION_INTERIOR_05 = 46;
|
|
int AREA_TRANSITION_INTERIOR_06 = 47;
|
|
int AREA_TRANSITION_INTERIOR_07 = 48;
|
|
int AREA_TRANSITION_INTERIOR_08 = 49;
|
|
int AREA_TRANSITION_INTERIOR_09 = 50;
|
|
int AREA_TRANSITION_INTERIOR_10 = 51;
|
|
int AREA_TRANSITION_INTERIOR_11 = 52;
|
|
int AREA_TRANSITION_INTERIOR_12 = 53;
|
|
int AREA_TRANSITION_INTERIOR_13 = 54;
|
|
int AREA_TRANSITION_INTERIOR_14 = 55;
|
|
int AREA_TRANSITION_INTERIOR_15 = 56;
|
|
int AREA_TRANSITION_INTERIOR_16 = 57;
|
|
int AREA_TRANSITION_FOREST_01 = 58;
|
|
int AREA_TRANSITION_FOREST_02 = 59;
|
|
int AREA_TRANSITION_FOREST_03 = 60;
|
|
int AREA_TRANSITION_FOREST_04 = 61;
|
|
int AREA_TRANSITION_FOREST_05 = 62;
|
|
int AREA_TRANSITION_RURAL_01 = 63;
|
|
int AREA_TRANSITION_RURAL_02 = 64;
|
|
int AREA_TRANSITION_RURAL_03 = 65;
|
|
int AREA_TRANSITION_RURAL_04 = 66;
|
|
int AREA_TRANSITION_RURAL_05 = 67;
|
|
|
|
// Legacy area-transition constants. Do not delete these.
|
|
int AREA_TRANSITION_CITY = 2;
|
|
int AREA_TRANSITION_CRYPT = 7;
|
|
int AREA_TRANSITION_FOREST = 58;
|
|
int AREA_TRANSITION_RURAL = 63;
|
|
|
|
int BODY_NODE_HAND = 0;
|
|
int BODY_NODE_CHEST = 1;
|
|
|
|
float RADIUS_SIZE_SMALL = 1.67f;
|
|
float RADIUS_SIZE_MEDIUM = 3.33f;
|
|
float RADIUS_SIZE_LARGE = 5.0f;
|
|
float RADIUS_SIZE_HUGE = 6.67f;
|
|
float RADIUS_SIZE_GARGANTUAN = 8.33f;
|
|
float RADIUS_SIZE_COLOSSAL = 10.0f;
|
|
|
|
// these are magic numbers. they should correspond to the values layed out in ExecuteCommandGetEffectType
|
|
int EFFECT_TYPE_INVALIDEFFECT = 0;
|
|
int EFFECT_TYPE_DAMAGE_RESISTANCE = 1;
|
|
//int EFFECT_TYPE_ABILITY_BONUS = 2;
|
|
int EFFECT_TYPE_REGENERATE = 3;
|
|
//int EFFECT_TYPE_SAVING_THROW_BONUS = 4;
|
|
//int EFFECT_TYPE_MODIFY_AC = 5;
|
|
//int EFFECT_TYPE_ATTACK_BONUS = 6;
|
|
int EFFECT_TYPE_DAMAGE_REDUCTION = 7;
|
|
//int EFFECT_TYPE_DAMAGE_BONUS = 8;
|
|
int EFFECT_TYPE_TEMPORARY_HITPOINTS = 9;
|
|
//int EFFECT_TYPE_DAMAGE_IMMUNITY = 10;
|
|
int EFFECT_TYPE_ENTANGLE = 11;
|
|
int EFFECT_TYPE_INVULNERABLE = 12;
|
|
int EFFECT_TYPE_DEAF = 13;
|
|
int EFFECT_TYPE_RESURRECTION = 14;
|
|
int EFFECT_TYPE_IMMUNITY = 15;
|
|
//int EFFECT_TYPE_BLIND = 16;
|
|
int EFFECT_TYPE_ENEMY_ATTACK_BONUS = 17;
|
|
int EFFECT_TYPE_ARCANE_SPELL_FAILURE = 18;
|
|
//int EFFECT_TYPE_MOVEMENT_SPEED = 19;
|
|
int EFFECT_TYPE_AREA_OF_EFFECT = 20;
|
|
int EFFECT_TYPE_BEAM = 21;
|
|
//int EFFECT_TYPE_SPELL_RESISTANCE = 22;
|
|
int EFFECT_TYPE_CHARMED = 23;
|
|
int EFFECT_TYPE_CONFUSED = 24;
|
|
int EFFECT_TYPE_FRIGHTENED = 25;
|
|
int EFFECT_TYPE_DOMINATED = 26;
|
|
int EFFECT_TYPE_PARALYZE = 27;
|
|
int EFFECT_TYPE_DAZED = 28;
|
|
int EFFECT_TYPE_STUNNED = 29;
|
|
int EFFECT_TYPE_SLEEP = 30;
|
|
int EFFECT_TYPE_POISON = 31;
|
|
int EFFECT_TYPE_DISEASE = 32;
|
|
int EFFECT_TYPE_CURSE = 33;
|
|
int EFFECT_TYPE_SILENCE = 34;
|
|
int EFFECT_TYPE_TURNED = 35;
|
|
int EFFECT_TYPE_HASTE = 36;
|
|
int EFFECT_TYPE_SLOW = 37;
|
|
int EFFECT_TYPE_ABILITY_INCREASE = 38;
|
|
int EFFECT_TYPE_ABILITY_DECREASE = 39;
|
|
int EFFECT_TYPE_ATTACK_INCREASE = 40;
|
|
int EFFECT_TYPE_ATTACK_DECREASE = 41;
|
|
int EFFECT_TYPE_DAMAGE_INCREASE = 42;
|
|
int EFFECT_TYPE_DAMAGE_DECREASE = 43;
|
|
int EFFECT_TYPE_DAMAGE_IMMUNITY_INCREASE = 44;
|
|
int EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE = 45;
|
|
int EFFECT_TYPE_AC_INCREASE = 46;
|
|
int EFFECT_TYPE_AC_DECREASE = 47;
|
|
int EFFECT_TYPE_MOVEMENT_SPEED_INCREASE = 48;
|
|
int EFFECT_TYPE_MOVEMENT_SPEED_DECREASE = 49;
|
|
int EFFECT_TYPE_SAVING_THROW_INCREASE = 50;
|
|
int EFFECT_TYPE_SAVING_THROW_DECREASE = 51;
|
|
int EFFECT_TYPE_SPELL_RESISTANCE_INCREASE = 52;
|
|
int EFFECT_TYPE_SPELL_RESISTANCE_DECREASE = 53;
|
|
int EFFECT_TYPE_SKILL_INCREASE = 54;
|
|
int EFFECT_TYPE_SKILL_DECREASE = 55;
|
|
int EFFECT_TYPE_INVISIBILITY = 56;
|
|
int EFFECT_TYPE_IMPROVEDINVISIBILITY = 57;
|
|
int EFFECT_TYPE_DARKNESS = 58;
|
|
int EFFECT_TYPE_DISPELMAGICALL = 59;
|
|
int EFFECT_TYPE_ELEMENTALSHIELD = 60;
|
|
int EFFECT_TYPE_NEGATIVELEVEL = 61;
|
|
int EFFECT_TYPE_POLYMORPH = 62;
|
|
int EFFECT_TYPE_SANCTUARY = 63;
|
|
int EFFECT_TYPE_TRUESEEING = 64;
|
|
int EFFECT_TYPE_SEEINVISIBLE = 65;
|
|
int EFFECT_TYPE_TIMESTOP = 66;
|
|
int EFFECT_TYPE_BLINDNESS = 67;
|
|
int EFFECT_TYPE_SPELLLEVELABSORPTION = 68;
|
|
int EFFECT_TYPE_DISPELMAGICBEST = 69;
|
|
int EFFECT_TYPE_ULTRAVISION = 70;
|
|
int EFFECT_TYPE_MISS_CHANCE = 71;
|
|
int EFFECT_TYPE_CONCEALMENT = 72;
|
|
int EFFECT_TYPE_SPELL_IMMUNITY = 73;
|
|
|
|
int ITEM_PROPERTY_ABILITY_BONUS = 0 ;
|
|
int ITEM_PROPERTY_AC_BONUS = 1 ;
|
|
int ITEM_PROPERTY_AC_BONUS_VS_ALIGNMENT_GROUP = 2 ;
|
|
int ITEM_PROPERTY_AC_BONUS_VS_DAMAGE_TYPE = 3 ;
|
|
int ITEM_PROPERTY_AC_BONUS_VS_RACIAL_GROUP = 4 ;
|
|
int ITEM_PROPERTY_AC_BONUS_VS_SPECIFIC_ALIGNMENT = 5 ;
|
|
int ITEM_PROPERTY_ENHANCEMENT_BONUS = 6 ;
|
|
int ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_ALIGNMENT_GROUP = 7 ;
|
|
int ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP = 8 ;
|
|
int ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_SPECIFIC_ALIGNEMENT = 9 ;
|
|
int ITEM_PROPERTY_DECREASED_ENHANCEMENT_MODIFIER = 10 ;
|
|
int ITEM_PROPERTY_BASE_ITEM_WEIGHT_REDUCTION = 11 ;
|
|
int ITEM_PROPERTY_BONUS_FEAT = 12 ;
|
|
int ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N = 13 ;
|
|
int ITEM_PROPERTY_BOOMERANG = 14 ;
|
|
int ITEM_PROPERTY_CAST_SPELL = 15 ;
|
|
int ITEM_PROPERTY_DAMAGE_BONUS = 16 ;
|
|
int ITEM_PROPERTY_DAMAGE_BONUS_VS_ALIGNMENT_GROUP = 17 ;
|
|
int ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP = 18 ;
|
|
int ITEM_PROPERTY_DAMAGE_BONUS_VS_SPECIFIC_ALIGNMENT = 19 ;
|
|
int ITEM_PROPERTY_IMMUNITY_DAMAGE_TYPE = 20 ;
|
|
int ITEM_PROPERTY_DECREASED_DAMAGE = 21 ;
|
|
int ITEM_PROPERTY_DAMAGE_REDUCTION = 22 ;
|
|
int ITEM_PROPERTY_DAMAGE_RESISTANCE = 23 ;
|
|
int ITEM_PROPERTY_DAMAGE_VULNERABILITY = 24 ;
|
|
int ITEM_PROPERTY_DANCING = 25 ;
|
|
int ITEM_PROPERTY_DARKVISION = 26 ;
|
|
int ITEM_PROPERTY_DECREASED_ABILITY_SCORE = 27 ;
|
|
int ITEM_PROPERTY_DECREASED_AC = 28 ;
|
|
int ITEM_PROPERTY_DECREASED_SKILL_MODIFIER = 29 ;
|
|
int ITEM_PROPERTY_DOUBLE_STACK = 30 ;
|
|
int ITEM_PROPERTY_ENHANCED_CONTAINER_BONUS_SLOTS = 31 ;
|
|
int ITEM_PROPERTY_ENHANCED_CONTAINER_REDUCED_WEIGHT = 32 ;
|
|
int ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE = 33 ;
|
|
int ITEM_PROPERTY_EXTRA_RANGED_DAMAGE_TYPE = 34 ;
|
|
int ITEM_PROPERTY_HASTE = 35 ;
|
|
int ITEM_PROPERTY_HOLY_AVENGER = 36 ;
|
|
int ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS = 37 ;
|
|
int ITEM_PROPERTY_IMPROVED_EVASION = 38 ;
|
|
int ITEM_PROPERTY_SPELL_RESISTANCE = 39 ;
|
|
int ITEM_PROPERTY_SAVING_THROW_BONUS = 40 ;
|
|
int ITEM_PROPERTY_SAVING_THROW_BONUS_SPECIFIC = 41 ;
|
|
int ITEM_PROPERTY_KEEN = 43 ;
|
|
int ITEM_PROPERTY_LIGHT = 44 ;
|
|
int ITEM_PROPERTY_MIGHTY = 45 ;
|
|
int ITEM_PROPERTY_MIND_BLANK = 46 ;
|
|
int ITEM_PROPERTY_NO_DAMAGE = 47 ;
|
|
int ITEM_PROPERTY_ON_HIT_PROPERTIES = 48 ;
|
|
int ITEM_PROPERTY_DECREASED_SAVING_THROWS = 49 ;
|
|
int ITEM_PROPERTY_DECREASED_SAVING_THROWS_SPECIFIC = 50 ;
|
|
int ITEM_PROPERTY_REGENERATION = 51 ;
|
|
int ITEM_PROPERTY_SKILL_BONUS = 52 ;
|
|
int ITEM_PROPERTY_IMMUNITY_SPECIFIC_SPELL = 53 ;
|
|
int ITEM_PROPERTY_IMMUNITY_SPELL_SCHOOL = 54 ;
|
|
int ITEM_PROPERTY_THIEVES_TOOLS = 55 ;
|
|
int ITEM_PROPERTY_ATTACK_BONUS = 56 ;
|
|
int ITEM_PROPERTY_ATTACK_BONUS_VS_ALIGNMENT_GROUP = 57 ;
|
|
int ITEM_PROPERTY_ATTACK_BONUS_VS_RACIAL_GROUP = 58 ;
|
|
int ITEM_PROPERTY_ATTACK_BONUS_VS_SPECIFIC_ALIGNMENT = 59 ;
|
|
int ITEM_PROPERTY_DECREASED_ATTACK_MODIFIER = 60 ;
|
|
int ITEM_PROPERTY_UNLIMITED_AMMUNITION = 61 ;
|
|
int ITEM_PROPERTY_USE_LIMITATION_ALIGNMENT_GROUP = 62 ;
|
|
int ITEM_PROPERTY_USE_LIMITATION_CLASS = 63 ;
|
|
int ITEM_PROPERTY_USE_LIMITATION_RACIAL_TYPE = 64 ;
|
|
int ITEM_PROPERTY_USE_LIMITATION_SPECIFIC_ALIGNMENT = 65 ;
|
|
int ITEM_PROPERTY_USE_LIMITATION_TILESET = 66 ;
|
|
int ITEM_PROPERTY_REGENERATION_VAMPIRIC = 67 ;
|
|
int ITEM_PROPERTY_VORPAL = 68 ;
|
|
int ITEM_PROPERTY_WOUNDING = 69 ;
|
|
int ITEM_PROPERTY_TRAP = 70 ;
|
|
int ITEM_PROPERTY_TRUE_SEEING = 71 ;
|
|
int ITEM_PROPERTY_ON_MONSTER_HIT = 72 ;
|
|
int ITEM_PROPERTY_TURN_RESISTANCE = 73 ;
|
|
int ITEM_PROPERTY_MASSIVE_CRITICALS = 74 ;
|
|
int ITEM_PROPERTY_FREEDOM_OF_MOVEMENT = 75 ;
|
|
int ITEM_PROPERTY_POISON = 76 ;
|
|
int ITEM_PROPERTY_MONSTER_DAMAGE = 77 ;
|
|
int ITEM_PROPERTY_IMMUNITY_SPELLS_BY_LEVEL = 78 ;
|
|
|
|
int BASE_ITEM_SHORTSWORD = 0;
|
|
int BASE_ITEM_LONGSWORD = 1;
|
|
int BASE_ITEM_BATTLEAXE = 2;
|
|
int BASE_ITEM_BASTARDSWORD = 3;
|
|
int BASE_ITEM_LIGHTFLAIL = 4;
|
|
int BASE_ITEM_WARHAMMER = 5;
|
|
int BASE_ITEM_HEAVYCROSSBOW = 6;
|
|
int BASE_ITEM_LIGHTCROSSBOW = 7;
|
|
int BASE_ITEM_LONGBOW = 8;
|
|
int BASE_ITEM_LIGHTMACE = 9;
|
|
int BASE_ITEM_HALBERD = 10;
|
|
int BASE_ITEM_SHORTBOW = 11;
|
|
int BASE_ITEM_TWOBLADEDSWORD = 12;
|
|
int BASE_ITEM_GREATSWORD = 13;
|
|
int BASE_ITEM_SMALLSHIELD = 14;
|
|
int BASE_ITEM_TORCH = 15;
|
|
int BASE_ITEM_ARMOR = 16;
|
|
int BASE_ITEM_HELMET = 17;
|
|
int BASE_ITEM_GREATAXE = 18;
|
|
int BASE_ITEM_AMULET = 19;
|
|
int BASE_ITEM_ARROW = 20;
|
|
int BASE_ITEM_BELT = 21;
|
|
int BASE_ITEM_DAGGER = 22;
|
|
int BASE_ITEM_MISCSMALL = 24;
|
|
int BASE_ITEM_BOLT = 25;
|
|
int BASE_ITEM_BOOTS = 26;
|
|
int BASE_ITEM_BULLET = 27;
|
|
int BASE_ITEM_CLUB = 28;
|
|
int BASE_ITEM_MISCMEDIUM = 29;
|
|
int BASE_ITEM_DART = 31;
|
|
int BASE_ITEM_DIREMACE = 32;
|
|
int BASE_ITEM_DOUBLEAXE = 33;
|
|
int BASE_ITEM_MISCLARGE = 34;
|
|
int BASE_ITEM_HEAVYFLAIL = 35;
|
|
int BASE_ITEM_GLOVES = 36;
|
|
int BASE_ITEM_LIGHTHAMMER = 37;
|
|
int BASE_ITEM_HANDAXE = 38;
|
|
int BASE_ITEM_HEALERSKIT = 39;
|
|
int BASE_ITEM_KAMA = 40;
|
|
int BASE_ITEM_KATANA = 41;
|
|
int BASE_ITEM_KUKRI = 42;
|
|
int BASE_ITEM_MISCTALL = 43;
|
|
int BASE_ITEM_MAGICROD = 44;
|
|
int BASE_ITEM_MAGICSTAFF = 45;
|
|
int BASE_ITEM_MAGICWAND = 46;
|
|
int BASE_ITEM_MORNINGSTAR = 47;
|
|
|
|
int BASE_ITEM_POTIONS = 49;
|
|
int BASE_ITEM_QUARTERSTAFF = 50;
|
|
int BASE_ITEM_RAPIER = 51;
|
|
int BASE_ITEM_RING = 52;
|
|
int BASE_ITEM_SCIMITAR = 53;
|
|
int BASE_ITEM_SCROLL = 54;
|
|
int BASE_ITEM_SCYTHE = 55;
|
|
int BASE_ITEM_LARGESHIELD = 56;
|
|
int BASE_ITEM_TOWERSHIELD = 57;
|
|
int BASE_ITEM_SHORTSPEAR = 58;
|
|
int BASE_ITEM_SHURIKEN = 59;
|
|
int BASE_ITEM_SICKLE = 60;
|
|
int BASE_ITEM_SLING = 61;
|
|
int BASE_ITEM_THIEVESTOOLS = 62;
|
|
int BASE_ITEM_THROWINGAXE = 63;
|
|
int BASE_ITEM_TRAPKIT = 64;
|
|
int BASE_ITEM_KEY = 65;
|
|
int BASE_ITEM_LARGEBOX = 66;
|
|
int BASE_ITEM_MISCWIDE = 68;
|
|
int BASE_ITEM_CSLASHWEAPON = 69;
|
|
int BASE_ITEM_CPIERCWEAPON = 70;
|
|
int BASE_ITEM_CBLUDGWEAPON = 71;
|
|
int BASE_ITEM_CSLSHPRCWEAP = 72;
|
|
int BASE_ITEM_CREATUREITEM = 73;
|
|
int BASE_ITEM_BOOK = 74;
|
|
int BASE_ITEM_SPELLSCROLL = 75;
|
|
int BASE_ITEM_GOLD = 76;
|
|
int BASE_ITEM_GEM = 77;
|
|
int BASE_ITEM_BRACER = 78;
|
|
int BASE_ITEM_MISCTHIN = 79;
|
|
int BASE_ITEM_CLOAK = 80;
|
|
|
|
int BASE_ITEM_INVALID = 256;
|
|
|
|
int VFX_NONE = -1;
|
|
int VFX_DUR_BLUR = 0;
|
|
int VFX_DUR_DARKNESS = 1;
|
|
int VFX_DUR_ENTANGLE = 2;
|
|
int VFX_DUR_FREEDOM_OF_MOVEMENT = 3;
|
|
int VFX_DUR_GLOBE_INVULNERABILITY = 4;
|
|
int VFX_DUR_BLACKOUT = 5;
|
|
int VFX_DUR_INVISIBILITY = 6;
|
|
int VFX_DUR_MIND_AFFECTING_NEGATIVE = 7;
|
|
int VFX_DUR_MIND_AFFECTING_POSITIVE = 8;
|
|
int VFX_DUR_GHOSTLY_VISAGE = 9;
|
|
int VFX_DUR_ETHEREAL_VISAGE = 10;
|
|
int VFX_DUR_PROT_BARKSKIN = 11;
|
|
int VFX_DUR_PROT_GREATER_STONESKIN = 12;
|
|
int VFX_DUR_PROT_PREMONITION = 13;
|
|
int VFX_DUR_PROT_SHADOW_ARMOR = 14;
|
|
int VFX_DUR_PROT_STONESKIN = 15;
|
|
int VFX_DUR_SANCTUARY = 16;
|
|
int VFX_DUR_WEB = 17;
|
|
int VFX_FNF_BLINDDEAF = 18;
|
|
int VFX_FNF_DISPEL = 19;
|
|
int VFX_FNF_DISPEL_DISJUNCTION = 20;
|
|
int VFX_FNF_DISPEL_GREATER = 21 ;
|
|
int VFX_FNF_FIREBALL = 22 ;
|
|
int VFX_FNF_FIRESTORM = 23 ;
|
|
int VFX_FNF_IMPLOSION = 24 ;
|
|
//int VFX_FNF_MASS_HASTE = 25 ;
|
|
int VFX_FNF_MASS_HEAL = 26 ;
|
|
int VFX_FNF_MASS_MIND_AFFECTING = 27 ;
|
|
int VFX_FNF_METEOR_SWARM = 28 ;
|
|
int VFX_FNF_NATURES_BALANCE = 29 ;
|
|
int VFX_FNF_PWKILL = 30 ;
|
|
int VFX_FNF_PWSTUN = 31 ;
|
|
int VFX_FNF_SUMMON_GATE = 32 ;
|
|
int VFX_FNF_SUMMON_MONSTER_1 = 33 ;
|
|
int VFX_FNF_SUMMON_MONSTER_2 = 34 ;
|
|
int VFX_FNF_SUMMON_MONSTER_3 = 35 ;
|
|
int VFX_FNF_SUMMON_UNDEAD = 36 ;
|
|
int VFX_FNF_SUNBEAM = 37 ;
|
|
int VFX_FNF_TIME_STOP = 38 ;
|
|
int VFX_FNF_WAIL_O_BANSHEES = 39 ;
|
|
int VFX_FNF_WEIRD = 40 ;
|
|
int VFX_FNF_WORD = 41 ;
|
|
int VFX_IMP_AC_BONUS = 42 ;
|
|
int VFX_IMP_ACID_L = 43 ;
|
|
int VFX_IMP_ACID_S = 44 ;
|
|
//int VFX_IMP_ALTER_WEAPON = 45 ;
|
|
int VFX_IMP_BLIND_DEAF_M = 46 ;
|
|
int VFX_IMP_BREACH = 47 ;
|
|
int VFX_IMP_CONFUSION_S = 48 ;
|
|
int VFX_IMP_DAZED_S = 49 ;
|
|
int VFX_IMP_DEATH = 50 ;
|
|
int VFX_IMP_DISEASE_S = 51 ;
|
|
int VFX_IMP_DISPEL = 52 ;
|
|
int VFX_IMP_DISPEL_DISJUNCTION = 53 ;
|
|
int VFX_IMP_DIVINE_STRIKE_FIRE = 54 ;
|
|
int VFX_IMP_DIVINE_STRIKE_HOLY = 55 ;
|
|
int VFX_IMP_DOMINATE_S = 56 ;
|
|
int VFX_IMP_DOOM = 57 ;
|
|
int VFX_IMP_FEAR_S = 58 ;
|
|
//int VFX_IMP_FLAME_L = 59 ;
|
|
int VFX_IMP_FLAME_M = 60 ;
|
|
int VFX_IMP_FLAME_S = 61 ;
|
|
int VFX_IMP_FROST_L = 62 ;
|
|
int VFX_IMP_FROST_S = 63 ;
|
|
int VFX_IMP_GREASE = 64 ;
|
|
int VFX_IMP_HASTE = 65 ;
|
|
int VFX_IMP_HEALING_G = 66 ;
|
|
int VFX_IMP_HEALING_L = 67 ;
|
|
int VFX_IMP_HEALING_M = 68 ;
|
|
int VFX_IMP_HEALING_S = 69 ;
|
|
int VFX_IMP_HEALING_X = 70 ;
|
|
int VFX_IMP_HOLY_AID = 71 ;
|
|
int VFX_IMP_KNOCK = 72 ;
|
|
int VFX_BEAM_LIGHTNING = 73 ;
|
|
int VFX_IMP_LIGHTNING_M = 74 ;
|
|
int VFX_IMP_LIGHTNING_S = 75 ;
|
|
int VFX_IMP_MAGBLUE = 76 ;
|
|
//int VFX_IMP_MAGBLUE2 = 77 ;
|
|
//int VFX_IMP_MAGBLUE3 = 78 ;
|
|
//int VFX_IMP_MAGBLUE4 = 79 ;
|
|
//int VFX_IMP_MAGBLUE5 = 80 ;
|
|
int VFX_IMP_NEGATIVE_ENERGY = 81 ;
|
|
int VFX_DUR_PARALYZE_HOLD = 82 ;
|
|
int VFX_IMP_POISON_L = 83 ;
|
|
int VFX_IMP_POISON_S = 84 ;
|
|
int VFX_IMP_POLYMORPH = 85 ;
|
|
int VFX_IMP_PULSE_COLD = 86 ;
|
|
int VFX_IMP_PULSE_FIRE = 87 ;
|
|
int VFX_IMP_PULSE_HOLY = 88 ;
|
|
int VFX_IMP_PULSE_NEGATIVE = 89 ;
|
|
int VFX_IMP_RAISE_DEAD = 90 ;
|
|
int VFX_IMP_REDUCE_ABILITY_SCORE = 91 ;
|
|
int VFX_IMP_REMOVE_CONDITION = 92 ;
|
|
int VFX_IMP_SILENCE = 93 ;
|
|
int VFX_IMP_SLEEP = 94 ;
|
|
int VFX_IMP_SLOW = 95 ;
|
|
int VFX_IMP_SONIC = 96 ;
|
|
int VFX_IMP_STUN = 97 ;
|
|
int VFX_IMP_SUNSTRIKE = 98 ;
|
|
int VFX_IMP_UNSUMMON = 99 ;
|
|
int VFX_COM_SPECIAL_BLUE_RED = 100 ;
|
|
int VFX_COM_SPECIAL_PINK_ORANGE = 101 ;
|
|
int VFX_COM_SPECIAL_RED_WHITE = 102 ;
|
|
int VFX_COM_SPECIAL_RED_ORANGE = 103 ;
|
|
int VFX_COM_SPECIAL_WHITE_BLUE = 104 ;
|
|
int VFX_COM_SPECIAL_WHITE_ORANGE = 105 ;
|
|
int VFX_COM_BLOOD_REG_WIMP = 106 ;
|
|
int VFX_COM_BLOOD_LRG_WIMP = 107 ;
|
|
int VFX_COM_BLOOD_CRT_WIMP = 108 ;
|
|
int VFX_COM_BLOOD_REG_RED = 109 ;
|
|
int VFX_COM_BLOOD_REG_GREEN = 110 ;
|
|
int VFX_COM_BLOOD_REG_YELLOW = 111 ;
|
|
int VFX_COM_BLOOD_LRG_RED = 112 ;
|
|
int VFX_COM_BLOOD_LRG_GREEN = 113 ;
|
|
int VFX_COM_BLOOD_LRG_YELLOW = 114 ;
|
|
int VFX_COM_BLOOD_CRT_RED = 115 ;
|
|
int VFX_COM_BLOOD_CRT_GREEN = 116 ;
|
|
int VFX_COM_BLOOD_CRT_YELLOW = 117 ;
|
|
int VFX_COM_SPARKS_PARRY = 118 ;
|
|
//int VFX_COM_GIB = 119 ;
|
|
int VFX_COM_UNLOAD_MODEL = 120 ;
|
|
int VFX_COM_CHUNK_RED_SMALL = 121 ;
|
|
int VFX_COM_CHUNK_RED_MEDIUM = 122 ;
|
|
int VFX_COM_CHUNK_GREEN_SMALL = 123 ;
|
|
int VFX_COM_CHUNK_GREEN_MEDIUM = 124 ;
|
|
int VFX_COM_CHUNK_YELLOW_SMALL = 125 ;
|
|
int VFX_COM_CHUNK_YELLOW_MEDIUM = 126 ;
|
|
//int VFX_ITM_ACID = 127 ;
|
|
//int VFX_ITM_FIRE = 128 ;
|
|
//int VFX_ITM_FROST = 129 ;
|
|
//int VFX_ITM_ILLUMINATED_BLUE = 130 ;
|
|
//int VFX_ITM_ILLUMINATED_PURPLE = 131 ;
|
|
//int VFX_ITM_ILLUMINATED_RED = 132 ;
|
|
//int VFX_ITM_LIGHTNING = 133 ;
|
|
//int VFX_ITM_PULSING_BLUE = 134 ;
|
|
//int VFX_ITM_PULSING_PURPLE = 135 ;
|
|
//int VFX_ITM_PULSING_RED = 136 ;
|
|
//int VFX_ITM_SMOKING = 137 ;
|
|
int VFX_DUR_SPELLTURNING = 138;
|
|
int VFX_IMP_IMPROVE_ABILITY_SCORE = 139;
|
|
int VFX_IMP_CHARM = 140;
|
|
int VFX_IMP_MAGICAL_VISION = 141;
|
|
//int VFX_IMP_LAW_HELP = 142;
|
|
//int VFX_IMP_CHAOS_HELP = 143;
|
|
int VFX_IMP_EVIL_HELP = 144;
|
|
int VFX_IMP_GOOD_HELP = 145;
|
|
int VFX_IMP_DEATH_WARD = 146;
|
|
int VFX_DUR_ELEMENTAL_SHIELD = 147;
|
|
int VFX_DUR_LIGHT = 148;
|
|
int VFX_IMP_MAGIC_PROTECTION = 149;
|
|
int VFX_IMP_SUPER_HEROISM = 150;
|
|
int VFX_FNF_STORM = 151;
|
|
int VFX_IMP_ELEMENTAL_PROTECTION = 152;
|
|
int VFX_DUR_LIGHT_BLUE_5 = 153;
|
|
int VFX_DUR_LIGHT_BLUE_10 = 154;
|
|
int VFX_DUR_LIGHT_BLUE_15 = 155;
|
|
int VFX_DUR_LIGHT_BLUE_20 = 156;
|
|
int VFX_DUR_LIGHT_YELLOW_5 = 157;
|
|
int VFX_DUR_LIGHT_YELLOW_10 = 158;
|
|
int VFX_DUR_LIGHT_YELLOW_15 = 159;
|
|
int VFX_DUR_LIGHT_YELLOW_20 = 160;
|
|
int VFX_DUR_LIGHT_PURPLE_5 = 161;
|
|
int VFX_DUR_LIGHT_PURPLE_10 = 162;
|
|
int VFX_DUR_LIGHT_PURPLE_15 = 163;
|
|
int VFX_DUR_LIGHT_PURPLE_20 = 164;
|
|
int VFX_DUR_LIGHT_RED_5 = 165;
|
|
int VFX_DUR_LIGHT_RED_10 = 166;
|
|
int VFX_DUR_LIGHT_RED_15 = 167;
|
|
int VFX_DUR_LIGHT_RED_20 = 168;
|
|
int VFX_DUR_LIGHT_ORANGE_5 = 169;
|
|
int VFX_DUR_LIGHT_ORANGE_10 = 170;
|
|
int VFX_DUR_LIGHT_ORANGE_15 = 171;
|
|
int VFX_DUR_LIGHT_ORANGE_20 = 172;
|
|
int VFX_DUR_LIGHT_WHITE_5 = 173;
|
|
int VFX_DUR_LIGHT_WHITE_10 = 174;
|
|
int VFX_DUR_LIGHT_WHITE_15 = 175;
|
|
int VFX_DUR_LIGHT_WHITE_20 = 176;
|
|
int VFX_DUR_LIGHT_GREY_5 = 177;
|
|
int VFX_DUR_LIGHT_GREY_10 = 178;
|
|
int VFX_DUR_LIGHT_GREY_15 = 179;
|
|
int VFX_DUR_LIGHT_GREY_20 = 180;
|
|
int VFX_IMP_MIRV = 181;
|
|
int VFX_DUR_DARKVISION = 182;
|
|
int VFX_FNF_SOUND_BURST = 183;
|
|
int VFX_FNF_STRIKE_HOLY = 184;
|
|
int VFX_FNF_LOS_EVIL_10 = 185;
|
|
int VFX_FNF_LOS_EVIL_20 = 186;
|
|
int VFX_FNF_LOS_EVIL_30 = 187;
|
|
int VFX_FNF_LOS_HOLY_10 = 188;
|
|
int VFX_FNF_LOS_HOLY_20 = 189;
|
|
int VFX_FNF_LOS_HOLY_30 = 190;
|
|
int VFX_FNF_LOS_NORMAL_10 = 191;xzX`
|
|
int VFX_FNF_LOS_NORMAL_20 = 192;
|
|
int VFX_FNF_LOS_NORMAL_30 = 193;
|
|
int VFX_IMP_HEAD_ACID = 194;
|
|
int VFX_IMP_HEAD_FIRE = 195;
|
|
int VFX_IMP_HEAD_SONIC = 196;
|
|
int VFX_IMP_HEAD_ELECTRICITY = 197;
|
|
int VFX_IMP_HEAD_COLD = 198;
|
|
int VFX_IMP_HEAD_HOLY = 199;
|
|
int VFX_IMP_HEAD_NATURE = 200;
|
|
int VFX_IMP_HEAD_HEAL = 201;
|
|
int VFX_IMP_HEAD_MIND = 202;
|
|
int VFX_IMP_HEAD_EVIL = 203;
|
|
int VFX_IMP_HEAD_ODD = 204;
|
|
int VFX_DUR_CESSATE_NEUTRAL = 205;
|
|
int VFX_DUR_CESSATE_POSITIVE = 206;
|
|
int VFX_DUR_CESSATE_NEGATIVE = 207;
|
|
int VFX_DUR_MIND_AFFECTING_DISABLED = 208;
|
|
int VFX_DUR_MIND_AFFECTING_DOMINATED= 209;
|
|
int VFX_BEAM_FIRE = 210;
|
|
int VFX_BEAM_COLD = 211;
|
|
int VFX_BEAM_HOLY = 212;
|
|
int VFX_BEAM_MIND = 213;
|
|
int VFX_BEAM_EVIL = 214;
|
|
int VFX_BEAM_ODD = 215;
|
|
int VFX_BEAM_FIRE_LASH = 216;
|
|
int VFX_IMP_DEATH_L = 217;
|
|
int VFX_DUR_MIND_AFFECTING_FEAR = 218;
|
|
int VFX_FNF_SUMMON_CELESTIAL = 219;
|
|
int VFX_DUR_GLOBE_MINOR = 220;
|
|
int VFX_IMP_RESTORATION_LESSER = 221;
|
|
int VFX_IMP_RESTORATION = 222;
|
|
int VFX_IMP_RESTORATION_GREATER = 223;
|
|
int VFX_DUR_PROTECTION_ELEMENTS = 224;
|
|
int VFX_DUR_PROTECTION_GOOD_MINOR = 225;
|
|
int VFX_DUR_PROTECTION_GOOD_MAJOR = 226;2Z
|
|
int VFX_DUR_PROTECTION_EVIL_MINOR = 227;
|
|
int VFX_DUR_PROTECTION_EVIL_MAJOR = 228;
|
|
int VFX_DUR_MAGICAL_SIGHT = 229;
|
|
int VFX_DUR_WEB_MASS = 230;
|
|
int VFX_FNF_ICESTORM = 231;
|
|
int VFX_DUR_PARALYZED = 232;
|
|
int VFX_IMP_MIRV_FLAME = 233;
|
|
int VFX_IMP_DESTRUCTION = 234;
|
|
int VFX_COM_CHUNK_RED_LARGE = 235;
|
|
int VFX_COM_CHUNK_BONE_MEDIUM = 236;
|
|
int VFX_COM_BLOOD_SPARK_SMALL = 237;
|
|
int VFX_COM_BLOOD_SPARK_MEDIUM = 238;
|
|
int VFX_COM_BLOOD_SPARK_LARGE = 239;
|
|
int VFX_DUR_GHOSTLY_PULSE = 240;
|
|
int VFX_FNF_HORRID_WILTING = 241;
|
|
int VFX_DUR_BLINDVISION = 242;
|
|
int VFX_DUR_LOWLIGHTVISION = 243;
|
|
int VFX_DUR_ULTRAVISION = 244;
|
|
int VFX_DUR_MIRV_ACID = 245;
|
|
int VFX_IMP_HARM = 246;
|
|
int VFX_DUR_BLIND = 247;
|
|
int VFX_DUR_ANTI_LIGHT_10 = 248;
|
|
int VFX_DUR_MAGIC_RESISTANCE = 249;
|
|
int VFX_IMP_MAGIC_RESISTANCE_USE = 250;
|
|
int VFX_IMP_GLOBE_USE = 251;
|
|
int VFX_IMP_WILL_SAVING_THROW_USE = 252;
|
|
int VFX_IMP_SPIKE_TRAP = 253;
|
|
int VFX_IMP_SPELL_MANTLE_USE = 254;
|
|
int VFX_IMP_FORTITUDE_SAVING_THROW_USE = 255;
|
|
int VFX_IMP_REFLEX_SAVE_THROW_USE = 256;
|
|
int VFX_FNF_GAS_EXPLOSION_ACID = 257;
|
|
int VFX_FNF_GAS_EXPLOSION_EVIL = 258;
|
|
int VFX_FNF_GAS_EXPLOSION_NATURE = 259;
|
|
int VFX_FNF_GAS_EXPLOSION_FIRE = 260;
|
|
int VFX_FNF_GAS_EXPLOSION_GREASE = 261;
|
|
int VFX_FNF_GAS_EXPLOSION_MIND = 262;
|
|
int VFX_FNF_SMOKE_PUFF = 263;
|
|
int VFX_IMP_PULSE_WATER = 264;
|
|
int VFX_IMP_PULSE_WIND = 265;
|
|
int VFX_IMP_PULSE_NATURE = 266;
|
|
int VFX_DUR_AURA_COLD = 267;
|
|
int VFX_DUR_AURA_FIRE = 268;
|
|
int VFX_DUR_AURA_POISON = 269;
|
|
int VFX_DUR_AURA_DISEASE = 270;
|
|
int VFX_DUR_AURA_ODD = 271;
|
|
int VFX_DUR_AURA_SILENCE = 272;
|
|
int VFX_IMP_AURA_HOLY = 273;
|
|
int VFX_IMP_AURA_UNEARTHLY = 274;
|
|
int VFX_IMP_AURA_FEAR = 275;
|
|
int VFX_IMP_AURA_NEGATIVE_ENERGY = 276;
|
|
int VFX_DUR_BARD_SONG = 277;
|
|
int VFX_FNF_HOWL_MIND = 278;
|
|
int VFX_FNF_HOWL_ODD = 279;
|
|
int VFX_COM_HIT_FIRE = 280;
|
|
int VFX_COM_HIT_FROST = 281;
|
|
int VFX_COM_HIT_ELECTRICAL = 282;
|
|
int VFX_COM_HIT_ACID = 283;
|
|
int VFX_COM_HIT_SONIC = 284;
|
|
int VFX_FNF_HOWL_WAR_CRY = 285;
|
|
int VFX_FNF_SCREEN_SHAKE = 286;
|
|
int VFX_FNF_SCREEN_BUMP = 287;
|
|
int VFX_COM_HIT_NEGATIVE = 288;
|
|
int VFX_COM_HIT_DIVINE = 289;
|
|
int VFX_FNF_HOWL_WAR_CRY_FEMALE = 290;
|
|
int VFX_DUR_AURA_DRAGON_FEAR = 291;
|
|
int VFX_DUR_FLAG_RED = 303;
|
|
int VFX_DUR_FLAG_BLUE = 304;
|
|
int VFX_DUR_FLAG_GOLD = 305;
|
|
int VFX_DUR_FLAG_PURPLE = 306;
|
|
int VFX_DUR_TENTACLE = 346;
|
|
|
|
int AOE_PER_FOGACID = 0;
|
|
int AOE_PER_FOGFIRE = 1;
|
|
int AOE_PER_FOGSTINK = 2;
|
|
int AOE_PER_FOGKILL = 3;
|
|
int AOE_PER_FOGMIND = 4;
|
|
int AOE_PER_WALLFIRE = 5;
|
|
int AOE_PER_WALLWIND = 6;
|
|
int AOE_PER_WALLBLADE = 7;
|
|
int AOE_PER_WEB = 8;
|
|
int AOE_PER_ENTANGLE = 9;
|
|
//int AOE_PER_CHAOS = 10;
|
|
int AOE_PER_DARKNESS = 11;
|
|
int AOE_MOB_CIRCEVIL = 12;
|
|
int AOE_MOB_CIRCGOOD = 13;
|
|
int AOE_MOB_CIRCLAW = 14;
|
|
int AOE_MOB_CIRCCHAOS = 15;
|
|
int AOE_MOB_FEAR = 16;
|
|
int AOE_MOB_BLINDING = 17;
|
|
int AOE_MOB_UNEARTHLY = 18;
|
|
int AOE_MOB_MENACE = 19;
|
|
int AOE_MOB_UNNATURAL = 20;
|
|
int AOE_MOB_STUN = 21;
|
|
int AOE_MOB_PROTECTION = 22;
|
|
int AOE_MOB_FIRE = 23;
|
|
int AOE_MOB_FROST = 24;
|
|
int AOE_MOB_ELECTRICAL = 25;
|
|
int AOE_PER_FOGGHOUL = 26;
|
|
int AOE_MOB_TYRANT_FOG = 27;
|
|
int AOE_PER_STORM = 28;
|
|
int AOE_PER_INVIS_SPHERE = 29;
|
|
int AOE_MOB_SILENCE = 30;
|
|
int AOE_PER_DELAY_BLAST_FIREBALL = 31;
|
|
int AOE_PER_GREASE = 32;
|
|
int AOE_PER_CREEPING_DOOM = 33;
|
|
int AOE_PER_EVARDS_BLACK_TENTACLES = 34;
|
|
int AOE_MOB_INVISIBILITY_PURGE = 35;
|
|
int AOE_MOB_DRAGON_FEAR = 36;
|
|
|
|
int SPELL_ALL_SPELLS = -1; // used for spell immunity.
|
|
int SPELL_ACID_FOG = 0;
|
|
int SPELL_AID = 1;
|
|
int SPELL_ANIMATE_DEAD = 2;
|
|
int SPELL_BARKSKIN = 3;
|
|
int SPELL_BESTOW_CURSE = 4;
|
|
int SPELL_BLADE_BARRIER = 5;
|
|
int SPELL_BLESS = 6;
|
|
int SPELL_BLESS_WEAPON = 7;
|
|
int SPELL_BLINDNESS_AND_DEAFNESS = 8;
|
|
int SPELL_BULLS_STRENGTH = 9;
|
|
int SPELL_BURNING_HANDS = 10;
|
|
int SPELL_CALL_LIGHTNING = 11;
|
|
//int SPELL_CALM_EMOTIONS = 12;
|
|
int SPELL_CATS_GRACE = 13;
|
|
int SPELL_CHAIN_LIGHTNING = 14;
|
|
int SPELL_CHARM_MONSTER = 15;
|
|
int SPELL_CHARM_PERSON = 16;
|
|
int SPELL_CHARM_PERSON_OR_ANIMAL = 17;
|
|
int SPELL_CIRCLE_OF_DEATH = 18;
|
|
int SPELL_CIRCLE_OF_DOOM = 19;
|
|
int SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE = 20;
|
|
int SPELL_CLARITY = 21;
|
|
int SPELL_CLOAK_OF_CHAOS = 22;
|
|
int SPELL_CLOUDKILL = 23;
|
|
int SPELL_COLOR_SPRAY = 24;
|
|
int SPELL_CONE_OF_COLD = 25;
|
|
int SPELL_CONFUSION = 26;
|
|
int SPELL_CONTAGION = 27;
|
|
int SPELL_CONTROL_UNDEAD = 28;
|
|
int SPELL_CREATE_GREATER_UNDEAD = 29;
|
|
int SPELL_CREATE_UNDEAD = 30;
|
|
int SPELL_CURE_CRITICAL_WOUNDS = 31;
|
|
int SPELL_CURE_LIGHT_WOUNDS = 32;
|
|
int SPELL_CURE_MINOR_WOUNDS = 33;
|
|
int SPELL_CURE_MODERATE_WOUNDS = 34;
|
|
int SPELL_CURE_SERIOUS_WOUNDS = 35;
|
|
int SPELL_DARKNESS = 36;
|
|
int SPELL_DAZE = 37;
|
|
int SPELL_DEATH_WARD = 38;
|
|
int SPELL_DELAYED_BLAST_FIREBALL = 39;
|
|
int SPELL_DISMISSAL = 40;
|
|
int SPELL_DISPEL_MAGIC = 41;
|
|
int SPELL_DIVINE_POWER = 42;
|
|
int SPELL_DOMINATE_ANIMAL = 43;
|
|
int SPELL_DOMINATE_MONSTER = 44;
|
|
int SPELL_DOMINATE_PERSON = 45;
|
|
int SPELL_DOOM = 46;
|
|
int SPELL_ELEMENTAL_SHIELD = 47;
|
|
int SPELL_ELEMENTAL_SWARM = 48;
|
|
int SPELL_ENDURANCE = 49;
|
|
int SPELL_ENDURE_ELEMENTS = 50;
|
|
int SPELL_ENERGY_DRAIN = 51;
|
|
int SPELL_ENERVATION = 52;
|
|
int SPELL_ENTANGLE = 53;
|
|
int SPELL_FEAR = 54;
|
|
int SPELL_FEEBLEMIND = 55;
|
|
int SPELL_FINGER_OF_DEATH = 56;
|
|
int SPELL_FIRE_STORM = 57;
|
|
int SPELL_FIREBALL = 58;
|
|
int SPELL_FLAME_ARROW = 59;
|
|
int SPELL_FLAME_LASH = 60;
|
|
int SPELL_FLAME_STRIKE = 61;
|
|
int SPELL_FREEDOM_OF_MOVEMENT = 62;
|
|
int SPELL_GATE = 63;
|
|
int SPELL_GHOUL_TOUCH = 64;
|
|
int SPELL_GLOBE_OF_INVULNERABILITY = 65;
|
|
int SPELL_GREASE = 66;
|
|
int SPELL_GREATER_DISPELLING = 67;
|
|
int SPELL_GREATER_MAGIC_WEAPON = 68;
|
|
int SPELL_GREATER_PLANAR_BINDING = 69;
|
|
int SPELL_GREATER_RESTORATION = 70;
|
|
//int SPELL_GREATER_SHADOW_CONJURATION = 71;
|
|
int SPELL_GREATER_SPELL_BREACH = 72;
|
|
int SPELL_GREATER_SPELL_MANTLE = 73;
|
|
int SPELL_GREATER_STONESKIN = 74;
|
|
// int SPELL_GUST_OF_WIND = 75;
|
|
int SPELL_HAMMER_OF_THE_GODS = 76;
|
|
int SPELL_HARM = 77;
|
|
int SPELL_HASTE = 78;
|
|
int SPELL_HEAL = 79;
|
|
int SPELL_HEALING_CIRCLE = 80;
|
|
int SPELL_HOLD_ANIMAL = 81;
|
|
int SPELL_HOLD_MONSTER = 82;
|
|
int SPELL_HOLD_PERSON = 83;
|
|
int SPELL_HOLY_AURA = 84;
|
|
int SPELL_HOLY_SWORD = 85;
|
|
int SPELL_IDENTIFY = 86;
|
|
int SPELL_IMPLOSION = 87;
|
|
int SPELL_IMPROVED_INVISIBILITY = 88;
|
|
int SPELL_INCENDIARY_CLOUD = 89;
|
|
int SPELL_INVISIBILITY = 90;
|
|
int SPELL_INVISIBILITY_PURGE = 91;
|
|
int SPELL_INVISIBILITY_SPHERE = 92;
|
|
int SPELL_KNOCK = 93;
|
|
int SPELL_LESSER_DISPEL = 94;
|
|
int SPELL_LESSER_MIND_BLANK = 95;
|
|
int SPELL_LESSER_PLANAR_BINDING = 96;
|
|
int SPELL_LESSER_RESTORATION = 97;
|
|
int SPELL_LESSER_SPELL_BREACH = 98;
|
|
int SPELL_LESSER_SPELL_MANTLE = 99;
|
|
int SPELL_LIGHT = 100;
|
|
int SPELL_LIGHTNING_BOLT = 101;
|
|
int SPELL_MAGE_ARMOR = 102;
|
|
int SPELL_MAGIC_CIRCLE_AGAINST_CHAOS = 103;
|
|
int SPELL_MAGIC_CIRCLE_AGAINST_EVIL = 104;
|
|
int SPELL_MAGIC_CIRCLE_AGAINST_GOOD = 105;
|
|
int SPELL_MAGIC_CIRCLE_AGAINST_LAW = 106;
|
|
int SPELL_MAGIC_MISSILE = 107;
|
|
int SPELL_MAGIC_VESTMENT = 108;
|
|
int SPELL_MAGIC_WEAPON = 109;
|
|
int SPELL_MASS_BLINDNESS_AND_DEAFNESS = 110;
|
|
int SPELL_MASS_CHARM = 111;
|
|
// int SPELL_MASS_DOMINATION = 112;
|
|
int SPELL_MASS_HASTE = 113;
|
|
int SPELL_MASS_HEAL = 114;
|
|
int SPELL_MELFS_ACID_ARROW = 115;
|
|
int SPELL_METEOR_SWARM = 116;
|
|
int SPELL_MIND_BLANK = 117;
|
|
int SPELL_MIND_FOG = 118;
|
|
int SPELL_MINOR_GLOBE_OF_INVULNERABILITY = 119;
|
|
int SPELL_GHOSTLY_VISAGE = 120;
|
|
int SPELL_ETHEREAL_VISAGE = 121;
|
|
int SPELL_MORDENKAINENS_DISJUNCTION = 122;
|
|
int SPELL_MORDENKAINENS_SWORD = 123;
|
|
int SPELL_NATURES_BALANCE = 124;
|
|
int SPELL_NEGATIVE_ENERGY_PROTECTION = 125;
|
|
int SPELL_NEUTRALIZE_POISON = 126;
|
|
int SPELL_PHANTASMAL_KILLER = 127;
|
|
int SPELL_PLANAR_BINDING = 128;
|
|
int SPELL_POISON = 129;
|
|
int SPELL_POLYMORPH_SELF = 130;
|
|
int SPELL_POWER_WORD_KILL = 131;
|
|
int SPELL_POWER_WORD_STUN = 132;
|
|
int SPELL_PRAYER = 133;
|
|
int SPELL_PREMONITION = 134;
|
|
int SPELL_PRISMATIC_SPRAY = 135;
|
|
int SPELL_PROTECTION__FROM_CHAOS = 136;
|
|
int SPELL_PROTECTION_FROM_ELEMENTS = 137;
|
|
int SPELL_PROTECTION_FROM_EVIL = 138;
|
|
int SPELL_PROTECTION_FROM_GOOD = 139;
|
|
int SPELL_PROTECTION_FROM_LAW = 140;
|
|
int SPELL_PROTECTION_FROM_SPELLS = 141;
|
|
int SPELL_RAISE_DEAD = 142;
|
|
int SPELL_RAY_OF_ENFEEBLEMENT = 143;
|
|
int SPELL_RAY_OF_FROST = 144;
|
|
int SPELL_REMOVE_BLINDNESS_AND_DEAFNESS = 145;
|
|
int SPELL_REMOVE_CURSE = 146;
|
|
int SPELL_REMOVE_DISEASE = 147;
|
|
int SPELL_REMOVE_FEAR = 148;
|
|
int SPELL_REMOVE_PARALYSIS = 149;
|
|
int SPELL_RESIST_ELEMENTS = 150;
|
|
int SPELL_RESISTANCE = 151;
|
|
int SPELL_RESTORATION = 152;
|
|
int SPELL_RESURRECTION = 153;
|
|
int SPELL_SANCTUARY = 154;
|
|
int SPELL_SCARE = 155;
|
|
int SPELL_SEARING_LIGHT = 156;
|
|
int SPELL_SEE_INVISIBILITY = 157;
|
|
//int SPELL_SHADES = 158;
|
|
//int SPELL_SHADOW_CONJURATION = 159;
|
|
int SPELL_SHADOW_SHIELD = 160;
|
|
int SPELL_SHAPECHANGE = 161;
|
|
int SPELL_SHIELD_OF_LAW = 162;
|
|
int SPELL_SILENCE = 163;
|
|
int SPELL_SLAY_LIVING = 164;
|
|
int SPELL_SLEEP = 165;
|
|
int SPELL_SLOW = 166;
|
|
int SPELL_SOUND_BURST = 167;
|
|
int SPELL_SPELL_RESISTANCE = 168;
|
|
int SPELL_SPELL_MANTLE = 169;
|
|
int SPELL_SPHERE_OF_CHAOS = 170;
|
|
int SPELL_STINKING_CLOUD = 171;
|
|
int SPELL_STONESKIN = 172;
|
|
int SPELL_STORM_OF_VENGEANCE = 173;
|
|
int SPELL_SUMMON_CREATURE_I = 174;
|
|
int SPELL_SUMMON_CREATURE_II = 175;
|
|
int SPELL_SUMMON_CREATURE_III = 176;
|
|
int SPELL_SUMMON_CREATURE_IV = 177;
|
|
int SPELL_SUMMON_CREATURE_IX = 178;
|
|
int SPELL_SUMMON_CREATURE_V = 179;
|
|
int SPELL_SUMMON_CREATURE_VI = 180;
|
|
int SPELL_SUMMON_CREATURE_VII = 181;
|
|
int SPELL_SUMMON_CREATURE_VIII = 182;
|
|
int SPELL_SUNBEAM = 183;
|
|
int SPELL_TENSERS_TRANSFORMATION = 184;
|
|
int SPELL_TIME_STOP = 185;
|
|
int SPELL_TRUE_SEEING = 186;
|
|
int SPELL_UNHOLY_AURA = 187;
|
|
int SPELL_VAMPIRIC_TOUCH = 188;
|
|
int SPELL_VIRTUE = 189;
|
|
int SPELL_WAIL_OF_THE_BANSHEE = 190;
|
|
int SPELL_WALL_OF_FIRE = 191;
|
|
int SPELL_WEB = 192;
|
|
int SPELL_WEIRD = 193;
|
|
int SPELL_WORD_OF_FAITH = 194;
|
|
int SPELLABILITY_AURA_BLINDING = 195;
|
|
int SPELLABILITY_AURA_COLD = 196;
|
|
int SPELLABILITY_AURA_ELECTRICITY = 197;
|
|
int SPELLABILITY_AURA_FEAR = 198;
|
|
int SPELLABILITY_AURA_FIRE = 199;
|
|
int SPELLABILITY_AURA_MENACE = 200;
|
|
int SPELLABILITY_AURA_PROTECTION = 201;
|
|
int SPELLABILITY_AURA_STUN = 202;
|
|
int SPELLABILITY_AURA_UNEARTHLY_VISAGE = 203;
|
|
int SPELLABILITY_AURA_UNNATURAL = 204;
|
|
int SPELLABILITY_BOLT_ABILITY_DRAIN_CHARISMA = 205;
|
|
int SPELLABILITY_BOLT_ABILITY_DRAIN_CONSTITUTION = 206;
|
|
int SPELLABILITY_BOLT_ABILITY_DRAIN_DEXTERITY = 207;
|
|
int SPELLABILITY_BOLT_ABILITY_DRAIN_INTELLIGENCE = 208;
|
|
int SPELLABILITY_BOLT_ABILITY_DRAIN_STRENGTH = 209;
|
|
int SPELLABILITY_BOLT_ABILITY_DRAIN_WISDOM = 210;
|
|
int SPELLABILITY_BOLT_ACID = 211;
|
|
int SPELLABILITY_BOLT_CHARM = 212;
|
|
int SPELLABILITY_BOLT_COLD = 213;
|
|
int SPELLABILITY_BOLT_CONFUSE = 214;
|
|
int SPELLABILITY_BOLT_DAZE = 215;
|
|
int SPELLABILITY_BOLT_DEATH = 216;
|
|
int SPELLABILITY_BOLT_DISEASE = 217;
|
|
int SPELLABILITY_BOLT_DOMINATE = 218;
|
|
int SPELLABILITY_BOLT_FIRE = 219;
|
|
int SPELLABILITY_BOLT_KNOCKDOWN = 220;
|
|
int SPELLABILITY_BOLT_LEVEL_DRAIN = 221;
|
|
int SPELLABILITY_BOLT_LIGHTNING = 222;
|
|
int SPELLABILITY_BOLT_PARALYZE = 223;
|
|
int SPELLABILITY_BOLT_POISON = 224;
|
|
int SPELLABILITY_BOLT_SHARDS = 225;
|
|
int SPELLABILITY_BOLT_SLOW = 226;
|
|
int SPELLABILITY_BOLT_STUN = 227;
|
|
int SPELLABILITY_BOLT_WEB = 228;
|
|
int SPELLABILITY_CONE_ACID = 229;
|
|
int SPELLABILITY_CONE_COLD = 230;
|
|
int SPELLABILITY_CONE_DISEASE = 231;
|
|
int SPELLABILITY_CONE_FIRE = 232;
|
|
int SPELLABILITY_CONE_LIGHTNING = 233;
|
|
int SPELLABILITY_CONE_POISON = 234;
|
|
int SPELLABILITY_CONE_SONIC = 235;
|
|
int SPELLABILITY_DRAGON_BREATH_ACID = 236;
|
|
int SPELLABILITY_DRAGON_BREATH_COLD = 237;
|
|
int SPELLABILITY_DRAGON_BREATH_FEAR = 238;
|
|
int SPELLABILITY_DRAGON_BREATH_FIRE = 239;
|
|
int SPELLABILITY_DRAGON_BREATH_GAS = 240;
|
|
int SPELLABILITY_DRAGON_BREATH_LIGHTNING = 241;
|
|
int SPELLABILITY_DRAGON_BREATH_PARALYZE = 242;
|
|
int SPELLABILITY_DRAGON_BREATH_SLEEP = 243;
|
|
int SPELLABILITY_DRAGON_BREATH_SLOW = 244;
|
|
int SPELLABILITY_DRAGON_BREATH_WEAKEN = 245;
|
|
int SPELLABILITY_DRAGON_WING_BUFFET = 246;
|
|
int SPELLABILITY_FEROCITY_1 = 247;
|
|
int SPELLABILITY_FEROCITY_2 = 248;
|
|
int SPELLABILITY_FEROCITY_3 = 249;
|
|
int SPELLABILITY_GAZE_CHARM = 250;
|
|
int SPELLABILITY_GAZE_CONFUSION = 251;
|
|
int SPELLABILITY_GAZE_DAZE = 252;
|
|
int SPELLABILITY_GAZE_DEATH = 253;
|
|
int SPELLABILITY_GAZE_DESTROY_CHAOS = 254;
|
|
int SPELLABILITY_GAZE_DESTROY_EVIL = 255;
|
|
int SPELLABILITY_GAZE_DESTROY_GOOD = 256;
|
|
int SPELLABILITY_GAZE_DESTROY_LAW = 257;
|
|
int SPELLABILITY_GAZE_DOMINATE = 258;
|
|
int SPELLABILITY_GAZE_DOOM = 259;
|
|
int SPELLABILITY_GAZE_FEAR = 260;
|
|
int SPELLABILITY_GAZE_PARALYSIS = 261;
|
|
int SPELLABILITY_GAZE_STUNNED = 262;
|
|
int SPELLABILITY_GOLEM_BREATH_GAS = 263;
|
|
int SPELLABILITY_HELL_HOUND_FIREBREATH = 264;
|
|
int SPELLABILITY_HOWL_CONFUSE = 265;
|
|
int SPELLABILITY_HOWL_DAZE = 266;
|
|
int SPELLABILITY_HOWL_DEATH = 267;
|
|
int SPELLABILITY_HOWL_DOOM = 268;
|
|
int SPELLABILITY_HOWL_FEAR = 269;
|
|
int SPELLABILITY_HOWL_PARALYSIS = 270;
|
|
int SPELLABILITY_HOWL_SONIC = 271;
|
|
int SPELLABILITY_HOWL_STUN = 272;
|
|
int SPELLABILITY_INTENSITY_1 = 273;
|
|
int SPELLABILITY_INTENSITY_2 = 274;
|
|
int SPELLABILITY_INTENSITY_3 = 275;
|
|
int SPELLABILITY_KRENSHAR_SCARE = 276;
|
|
int SPELLABILITY_LESSER_BODY_ADJUSTMENT = 277;
|
|
int SPELLABILITY_MEPHIT_SALT_BREATH = 278;
|
|
int SPELLABILITY_MEPHIT_STEAM_BREATH = 279;
|
|
int SPELLABILITY_MUMMY_BOLSTER_UNDEAD = 280;
|
|
int SPELLABILITY_PULSE_DROWN = 281;
|
|
int SPELLABILITY_PULSE_SPORES = 282;
|
|
int SPELLABILITY_PULSE_WHIRLWIND = 283;
|
|
int SPELLABILITY_PULSE_FIRE = 284;
|
|
int SPELLABILITY_PULSE_LIGHTNING = 285;
|
|
int SPELLABILITY_PULSE_COLD = 286;
|
|
int SPELLABILITY_PULSE_NEGATIVE = 287;
|
|
int SPELLABILITY_PULSE_HOLY = 288;
|
|
int SPELLABILITY_PULSE_DEATH = 289;
|
|
int SPELLABILITY_PULSE_LEVEL_DRAIN = 290;
|
|
int SPELLABILITY_PULSE_ABILITY_DRAIN_INTELLIGENCE = 291;
|
|
int SPELLABILITY_PULSE_ABILITY_DRAIN_CHARISMA = 292;
|
|
int SPELLABILITY_PULSE_ABILITY_DRAIN_CONSTITUTION = 293;
|
|
int SPELLABILITY_PULSE_ABILITY_DRAIN_DEXTERITY = 294;
|
|
int SPELLABILITY_PULSE_ABILITY_DRAIN_STRENGTH = 295;
|
|
int SPELLABILITY_PULSE_ABILITY_DRAIN_WISDOM = 296;
|
|
int SPELLABILITY_PULSE_POISON = 297;
|
|
int SPELLABILITY_PULSE_DISEASE = 298;
|
|
int SPELLABILITY_RAGE_3 = 299;
|
|
int SPELLABILITY_RAGE_4 = 300;
|
|
int SPELLABILITY_RAGE_5 = 301;
|
|
int SPELLABILITY_SMOKE_CLAW = 302;
|
|
int SPELLABILITY_SUMMON_SLAAD = 303;
|
|
int SPELLABILITY_SUMMON_TANARRI = 304;
|
|
int SPELLABILITY_TRUMPET_BLAST = 305;
|
|
int SPELLABILITY_TYRANT_FOG_MIST = 306;
|
|
int SPELLABILITY_BARBARIAN_RAGE = 307;
|
|
int SPELLABILITY_TURN_UNDEAD = 308;
|
|
int SPELLABILITY_WHOLENESS_OF_BODY = 309;
|
|
int SPELLABILITY_QUIVERING_PALM = 310;
|
|
int SPELLABILITY_EMPTY_BODY = 311;
|
|
int SPELLABILITY_DETECT_EVIL = 312;
|
|
int SPELLABILITY_LAY_ON_HANDS = 313;
|
|
int SPELLABILITY_AURA_OF_COURAGE = 314;
|
|
int SPELLABILITY_SMITE_EVIL = 315;
|
|
int SPELLABILITY_REMOVE_DISEASE = 316;
|
|
int SPELLABILITY_SUMMON_ANIMAL_COMPANION = 317;
|
|
int SPELLABILITY_SUMMON_FAMILIAR = 318;
|
|
int SPELLABILITY_ELEMENTAL_SHAPE = 319;
|
|
int SPELLABILITY_WILD_SHAPE = 320;
|
|
//int SPELL_PROTECTION_FROM_ALIGNMENT = 321;
|
|
//int SPELL_MAGIC_CIRCLE_AGAINST_ALIGNMENT = 322;
|
|
//int SPELL_AURA_VERSUS_ALIGNMENT = 323;
|
|
int SPELL_SHADES_SUMMON_SHADOW = 324;
|
|
//int SPELL_PROTECTION_FROM_ELEMENTS_COLD = 325;
|
|
//int SPELL_PROTECTION_FROM_ELEMENTS_FIRE = 326;
|
|
//int SPELL_PROTECTION_FROM_ELEMENTS_ACID = 327;
|
|
//int SPELL_PROTECTION_FROM_ELEMENTS_SONIC = 328;
|
|
//int SPELL_PROTECTION_FROM_ELEMENTS_ELECTRICITY = 329;
|
|
//int SPELL_ENDURE_ELEMENTS_COLD = 330;
|
|
//int SPELL_ENDURE_ELEMENTS_FIRE = 331;
|
|
//int SPELL_ENDURE_ELEMENTS_ACID = 332;
|
|
//int SPELL_ENDURE_ELEMENTS_SONIC = 333;
|
|
//int SPELL_ENDURE_ELEMENTS_ELECTRICITY = 334;
|
|
//int SPELL_RESIST_ELEMENTS_COLD = 335;
|
|
//int SPELL_RESIST_ELEMENTS_FIRE = 336;
|
|
//int SPELL_RESIST_ELEMENTS_ACID = 337;
|
|
//int SPELL_RESIST_ELEMENTS_SONIC = 338;
|
|
//int SPELL_RESIST_ELEMENTS_ELECTRICITY = 339;
|
|
int SPELL_SHADES_CONE_OF_COLD = 340;
|
|
int SPELL_SHADES_FIREBALL = 341;
|
|
int SPELL_SHADES_STONESKIN = 342;
|
|
int SPELL_SHADES_WALL_OF_FIRE = 343;
|
|
int SPELL_SHADOW_CONJURATION_SUMMON_SHADOW = 344;
|
|
int SPELL_SHADOW_CONJURATION_DARKNESS = 345;
|
|
int SPELL_SHADOW_CONJURATION_INIVSIBILITY = 346;
|
|
int SPELL_SHADOW_CONJURATION_MAGE_ARMOR = 347;
|
|
int SPELL_SHADOW_CONJURATION_MAGIC_MISSILE = 348;
|
|
int SPELL_GREATER_SHADOW_CONJURATION_SUMMON_SHADOW = 349;
|
|
int SPELL_GREATER_SHADOW_CONJURATION_ACID_ARROW = 350;
|
|
int SPELL_GREATER_SHADOW_CONJURATION_MIRROR_IMAGE = 351;
|
|
int SPELL_GREATER_SHADOW_CONJURATION_WEB = 352;
|
|
int SPELL_GREATER_SHADOW_CONJURATION_MINOR_GLOBE = 353;
|
|
int SPELL_EAGLE_SPLEDOR = 354;
|
|
int SPELL_OWLS_WISDOM = 355;
|
|
int SPELL_FOXS_CUNNING = 356;
|
|
int SPELL_GREATER_EAGLE_SPLENDOR = 357;
|
|
int SPELL_GREATER_OWLS_WISDOM = 358;
|
|
int SPELL_GREATER_FOXS_CUNNING = 359;
|
|
int SPELL_GREATER_BULLS_STRENGTH = 360;
|
|
int SPELL_GREATER_CATS_GRACE = 361;
|
|
int SPELL_GREATER_ENDURANCE = 362;
|
|
int SPELL_AWAKEN = 363;
|
|
int SPELL_CREEPING_DOOM = 364;
|
|
int SPELL_DARKVISION = 365;
|
|
int SPELL_DESTRUCTION = 366;
|
|
int SPELL_HORRID_WILTING = 367;
|
|
int SPELL_ICE_STORM = 368;
|
|
int SPELL_ENERGY_BUFFER = 369;
|
|
int SPELL_NEGATIVE_ENERGY_BURST = 370;
|
|
int SPELL_NEGATIVE_ENERGY_RAY = 371;
|
|
int SPELL_AURA_OF_VITALITY = 372;
|
|
int SPELL_WAR_CRY = 373;
|
|
int SPELL_REGENERATE = 374;
|
|
int SPELL_EVARDS_BLACK_TENTACLES = 375;
|
|
int SPELL_LEGEND_LORE = 376;
|
|
int SPELL_FIND_TRAPS = 377;
|
|
int SPELLABILITY_SUMMON_MEPHIT = 378;
|
|
int SPELLABILITY_SUMMON_CELESTIAL = 379;
|
|
int SPELLABILITY_BATTLE_MASTERY = 380;
|
|
int SPELLABILITY_DIVINE_STRENGTH = 381;
|
|
int SPELLABILITY_DIVINE_PROTECTION = 382;
|
|
int SPELLABILITY_NEGATIVE_PLANE_AVATAR = 383;
|
|
int SPELLABILITY_DIVINE_TRICKERY = 384;
|
|
int SPELLABILITY_ROGUES_CUNNING = 385;
|
|
int SPELLABILITY_ACTIVATE_ITEM = 386;
|
|
int SPELLABILITY_DRAGON_FEAR = 412;
|
|
int SPELL_BLUR = 414;
|
|
int SPELL_FAERIEFIRE = 415;
|
|
|
|
// these constants must match those in poison.2da
|
|
int POISON_NIGHTSHADE = 0;
|
|
int POISON_SMALL_CENTIPEDE_POISON = 1;
|
|
int POISON_BLADE_BANE = 2;
|
|
int POISON_GREENBLOOD_OIL = 3;
|
|
int POISON_BLOODROOT = 4;
|
|
int POISON_PURPLE_WORM_POISON = 5;
|
|
int POISON_LARGE_SCORPION_VENOM = 6;
|
|
int POISON_WYVERN_POISON = 7;
|
|
int POISON_BLUE_WHINNIS = 8;
|
|
int POISON_GIANT_WASP_POISON = 9;
|
|
int POISON_SHADOW_ESSENCE = 10;
|
|
int POISON_BLACK_ADDER_VENOM = 11;
|
|
int POISON_DEATHBLADE = 12;
|
|
int POISON_MALYSS_ROOT_PASTE = 13;
|
|
int POISON_NITHARIT = 14;
|
|
int POISON_DRAGON_BILE = 15;
|
|
int POISON_SASSONE_LEAF_RESIDUE = 16;
|
|
int POISON_TERINAV_ROOT = 17;
|
|
int POISON_CARRION_CRAWLER_BRAIN_JUICE = 18;
|
|
int POISON_BLACK_LOTUS_EXTRACT = 19;
|
|
int POISON_OIL_OF_TAGGIT = 20;
|
|
int POISON_ID_MOSS = 21;
|
|
int POISON_STRIPED_TOADSTOOL = 22;
|
|
int POISON_ARSENIC = 23;
|
|
int POISON_LICH_DUST = 24;
|
|
int POISON_DARK_REAVER_POWDER = 25;
|
|
int POISON_UNGOL_DUST = 26;
|
|
int POISON_BURNT_OTHUR_FUMES = 27;
|
|
int POISON_CHAOS_MIST = 28;
|
|
int POISON_BEBILITH_VENOM = 29;
|
|
int POISON_QUASIT_VENOM = 30;
|
|
int POISON_PIT_FIEND_ICHOR = 31;
|
|
int POISON_ETTERCAP_VENOM = 32;
|
|
int POISON_ARANEA_VENOM = 33;
|
|
int POISON_TINY_SPIDER_VENOM = 34;
|
|
int POISON_SMALL_SPIDER_VENOM = 35;
|
|
int POISON_MEDIUM_SPIDER_VENOM = 36;
|
|
int POISON_LARGE_SPIDER_VENOM = 37;
|
|
int POISON_HUGE_SPIDER_VENOM = 38;
|
|
int POISON_GARGANTUAN_SPIDER_VENOM = 39;
|
|
int POISON_COLOSSAL_SPIDER_VENOM = 40;
|
|
int POISON_PHASE_SPIDER_VENOM = 41;
|
|
int POISON_WRAITH_SPIDER_VENOM = 42;
|
|
int POISON_IRON_GOLEM = 43;
|
|
|
|
// these constants match those in disease.2da
|
|
int DISEASE_BLINDING_SICKNESS = 0;
|
|
int DISEASE_CACKLE_FEVER = 1;
|
|
int DISEASE_DEVIL_CHILLS = 2;
|
|
int DISEASE_DEMON_FEVER = 3;
|
|
int DISEASE_FILTH_FEVER = 4;
|
|
int DISEASE_MINDFIRE = 5;
|
|
int DISEASE_MUMMY_ROT = 6;
|
|
int DISEASE_RED_ACHE = 7;
|
|
int DISEASE_SHAKES = 8;
|
|
int DISEASE_SLIMY_DOOM = 9;
|
|
int DISEASE_RED_SLAAD_EGGS = 10;
|
|
int DISEASE_GHOUL_ROT = 11;
|
|
int DISEASE_ZOMBIE_CREEP = 12;
|
|
int DISEASE_DREAD_BLISTERS = 13;
|
|
int DISEASE_BURROW_MAGGOTS = 14;
|
|
int DISEASE_SOLDIER_SHAKES = 15;
|
|
int DISEASE_VERMIN_MADNESS = 16;
|
|
|
|
// the thing after CREATURE_TYPE_ should refer to the
|
|
// actual "subtype" in the lists given above.
|
|
int CREATURE_TYPE_RACIAL_TYPE = 0;
|
|
int CREATURE_TYPE_PLAYER_CHAR = 1;
|
|
int CREATURE_TYPE_CLASS = 2;
|
|
int CREATURE_TYPE_REPUTATION = 3;
|
|
int CREATURE_TYPE_IS_ALIVE = 4;
|
|
int CREATURE_TYPE_HAS_SPELL_EFFECT = 5;
|
|
int CREATURE_TYPE_DOES_NOT_HAVE_SPELL_EFFECT = 6;
|
|
int CREATURE_TYPE_PERCEPTION = 7;
|
|
//int CREATURE_TYPE_ALIGNMENT = 2;
|
|
|
|
int REPUTATION_TYPE_FRIEND = 0;
|
|
int REPUTATION_TYPE_ENEMY = 1;
|
|
int REPUTATION_TYPE_NEUTRAL = 2;
|
|
|
|
int PERCEPTION_SEEN_AND_HEARD = 0;
|
|
int PERCEPTION_NOT_SEEN_AND_NOT_HEARD = 1;
|
|
int PERCEPTION_HEARD_AND_NOT_SEEN = 2;
|
|
int PERCEPTION_SEEN_AND_NOT_HEARD = 3;
|
|
int PERCEPTION_NOT_HEARD = 4;
|
|
int PERCEPTION_HEARD = 5;
|
|
int PERCEPTION_NOT_SEEN = 6;
|
|
int PERCEPTION_SEEN = 7;
|
|
|
|
int PLAYER_CHAR_NOT_PC = FALSE;
|
|
int PLAYER_CHAR_IS_PC = TRUE;
|
|
|
|
int CLASS_TYPE_BARBARIAN = 0;
|
|
int CLASS_TYPE_BARD = 1;
|
|
int CLASS_TYPE_CLERIC = 2;
|
|
int CLASS_TYPE_DRUID = 3;
|
|
int CLASS_TYPE_FIGHTER = 4;
|
|
int CLASS_TYPE_MONK = 5;
|
|
int CLASS_TYPE_PALADIN = 6;
|
|
int CLASS_TYPE_RANGER = 7;
|
|
int CLASS_TYPE_ROGUE = 8;
|
|
int CLASS_TYPE_SORCERER = 9;
|
|
int CLASS_TYPE_WIZARD = 10;
|
|
int CLASS_TYPE_ABERRATION = 11;
|
|
int CLASS_TYPE_ANIMAL = 12;
|
|
int CLASS_TYPE_CONSTRUCT = 13;
|
|
int CLASS_TYPE_HUMANOID = 14;
|
|
int CLASS_TYPE_MONSTROUS = 15;
|
|
int CLASS_TYPE_ELEMENTAL = 16;
|
|
int CLASS_TYPE_FEY = 17;
|
|
int CLASS_TYPE_DRAGON = 18;
|
|
int CLASS_TYPE_UNDEAD = 19;
|
|
int CLASS_TYPE_COMMONER = 20;
|
|
int CLASS_TYPE_BEAST = 21;
|
|
int CLASS_TYPE_GIANT = 22;
|
|
int CLASS_TYPE_MAGICAL_BEAST = 23;
|
|
int CLASS_TYPE_OUTSIDER = 24;
|
|
int CLASS_TYPE_SHAPECHANGER = 25;
|
|
int CLASS_TYPE_VERMIN = 26;
|
|
|
|
int CLASS_TYPE_INVALID = 255;
|
|
|
|
// These are for GetFirstInPersistentObject() and GetNextInPersistentObject()
|
|
int PERSISTENT_ZONE_ACTIVE = 0;
|
|
int PERSISTENT_ZONE_FOLLOW = 1;
|
|
|
|
int STANDARD_FACTION_HOSTILE = 0;
|
|
int STANDARD_FACTION_COMMONER = 1;
|
|
int STANDARD_FACTION_MERCHANT = 2;
|
|
int STANDARD_FACTION_DEFENDER = 3;
|
|
|
|
// Skill defines
|
|
int SKILL_ANIMAL_EMPATHY = 0;
|
|
int SKILL_CONCENTRATION = 1;
|
|
int SKILL_DISABLE_TRAP = 2;
|
|
int SKILL_DISCIPLINE = 3;
|
|
int SKILL_HEAL = 4;
|
|
int SKILL_HIDE = 5;
|
|
int SKILL_LISTEN = 6;
|
|
int SKILL_LORE = 7;
|
|
int SKILL_MOVE_SILENTLY = 8;
|
|
int SKILL_OPEN_LOCK = 9;
|
|
int SKILL_PARRY = 10;
|
|
int SKILL_PERFORM = 11;
|
|
int SKILL_PERSUADE = 12;
|
|
int SKILL_PICK_POCKET = 13;
|
|
int SKILL_SEARCH = 14;
|
|
int SKILL_SET_TRAP = 15;
|
|
int SKILL_SPELLCRAFT = 16;
|
|
int SKILL_SPOT = 17;
|
|
int SKILL_TAUNT = 18;
|
|
int SKILL_USE_MAGIC_DEVICE = 19;
|
|
int SKILL_ALL_SKILLS = 255;
|
|
|
|
int SUBSKILL_FLAGTRAP = 100;
|
|
int SUBSKILL_RECOVERTRAP = 101;
|
|
int SUBSKILL_EXAMINETRAP = 102;
|
|
|
|
int FEAT_ALERTNESS = 0;
|
|
int FEAT_AMBIDEXTERITY = 1;
|
|
int FEAT_ARMOR_PROFICIENCY_HEAVY = 2;
|
|
int FEAT_ARMOR_PROFICIENCY_LIGHT = 3;
|
|
int FEAT_ARMOR_PROFICIENCY_MEDIUM = 4;
|
|
int FEAT_CALLED_SHOT = 5;
|
|
int FEAT_CLEAVE = 6;
|
|
int FEAT_COMBAT_CASTING = 7;
|
|
int FEAT_DEFLECT_ARROWS = 8;
|
|
int FEAT_DISARM = 9;
|
|
int FEAT_DODGE = 10;
|
|
int FEAT_EMPOWER_SPELL = 11;
|
|
int FEAT_EXTEND_SPELL = 12;
|
|
int FEAT_EXTRA_TURNING = 13;
|
|
int FEAT_GREAT_FORTITUDE = 14;
|
|
int FEAT_IMPROVED_CRITICAL_CLUB = 15;
|
|
int FEAT_IMPROVED_DISARM = 16;
|
|
int FEAT_IMPROVED_KNOCKDOWN = 17;
|
|
int FEAT_IMPROVED_PARRY = 18;
|
|
int FEAT_IMPROVED_POWER_ATTACK = 19;
|
|
int FEAT_IMPROVED_TWO_WEAPON_FIGHTING = 20;
|
|
int FEAT_IMPROVED_UNARMED_STRIKE = 21;
|
|
int FEAT_IRON_WILL = 22;
|
|
int FEAT_KNOCKDOWN = 23;
|
|
int FEAT_LIGHTNING_REFLEXES = 24;
|
|
int FEAT_MAXIMIZE_SPELL = 25;
|
|
int FEAT_MOBILITY = 26;
|
|
int FEAT_POINT_BLANK_SHOT = 27;
|
|
int FEAT_POWER_ATTACK = 28;
|
|
int FEAT_QUICKEN_SPELL = 29;
|
|
int FEAT_RAPID_SHOT = 30;
|
|
int FEAT_SAP = 31;
|
|
int FEAT_SHIELD_PROFICIENCY = 32;
|
|
int FEAT_SILENCE_SPELL = 33;
|
|
int FEAT_SKILL_FOCUS_ANIMAL_EMPATHY = 34;
|
|
int FEAT_SPELL_FOCUS_ABJURATION = 35;
|
|
int FEAT_SPELL_PENETRATION = 36;
|
|
int FEAT_STILL_SPELL = 37;
|
|
int FEAT_STUNNING_FIST = 39;
|
|
int FEAT_TOUGHNESS = 40;
|
|
int FEAT_TWO_WEAPON_FIGHTING = 41;
|
|
int FEAT_WEAPON_FINESSE = 42;
|
|
int FEAT_WEAPON_FOCUS_CLUB = 43;
|
|
int FEAT_WEAPON_PROFICIENCY_EXOTIC = 44;
|
|
int FEAT_WEAPON_PROFICIENCY_MARTIAL = 45;
|
|
int FEAT_WEAPON_PROFICIENCY_SIMPLE = 46;
|
|
int FEAT_WEAPON_SPECIALIZATION_CLUB = 47;
|
|
int FEAT_WEAPON_PROFICIENCY_DRUID = 48;
|
|
int FEAT_WEAPON_PROFICIENCY_MONK = 49;
|
|
int FEAT_WEAPON_PROFICIENCY_ROGUE = 50;
|
|
int FEAT_WEAPON_PROFICIENCY_WIZARD = 51;
|
|
int FEAT_IMPROVED_CRITICAL_DAGGER = 52;
|
|
int FEAT_IMPROVED_CRITICAL_DART = 53;
|
|
int FEAT_IMPROVED_CRITICAL_HEAVY_CROSSBOW = 54;
|
|
int FEAT_IMPROVED_CRITICAL_LIGHT_CROSSBOW = 55;
|
|
int FEAT_IMPROVED_CRITICAL_LIGHT_MACE = 56;
|
|
int FEAT_IMPROVED_CRITICAL_MORNING_STAR = 57;
|
|
int FEAT_IMPROVED_CRITICAL_STAFF = 58;
|
|
int FEAT_IMPROVED_CRITICAL_SPEAR = 59;
|
|
int FEAT_IMPROVED_CRITICAL_SICKLE = 60;
|
|
int FEAT_IMPROVED_CRITICAL_SLING = 61;
|
|
int FEAT_IMPROVED_CRITICAL_UNARMED_STRIKE = 62;
|
|
int FEAT_IMPROVED_CRITICAL_LONGBOW = 63;
|
|
int FEAT_IMPROVED_CRITICAL_SHORTBOW = 64;
|
|
int FEAT_IMPROVED_CRITICAL_SHORT_SWORD = 65;
|
|
int FEAT_IMPROVED_CRITICAL_RAPIER = 66;
|
|
int FEAT_IMPROVED_CRITICAL_SCIMITAR = 67;
|
|
int FEAT_IMPROVED_CRITICAL_LONG_SWORD = 68;
|
|
int FEAT_IMPROVED_CRITICAL_GREAT_SWORD = 69;
|
|
int FEAT_IMPROVED_CRITICAL_HAND_AXE = 70;
|
|
int FEAT_IMPROVED_CRITICAL_THROWING_AXE = 71;
|
|
int FEAT_IMPROVED_CRITICAL_BATTLE_AXE = 72;
|
|
int FEAT_IMPROVED_CRITICAL_GREAT_AXE = 73;
|
|
int FEAT_IMPROVED_CRITICAL_HALBERD = 74;
|
|
int FEAT_IMPROVED_CRITICAL_LIGHT_HAMMER = 75;
|
|
int FEAT_IMPROVED_CRITICAL_LIGHT_FLAIL = 76;
|
|
int FEAT_IMPROVED_CRITICAL_WAR_HAMMER = 77;
|
|
int FEAT_IMPROVED_CRITICAL_HEAVY_FLAIL = 78;
|
|
int FEAT_IMPROVED_CRITICAL_KAMA = 79;
|
|
int FEAT_IMPROVED_CRITICAL_KUKRI = 80;
|
|
//int FEAT_IMPROVED_CRITICAL_NUNCHAKU = 81;
|
|
int FEAT_IMPROVED_CRITICAL_SHURIKEN = 82;
|
|
int FEAT_IMPROVED_CRITICAL_SCYTHE = 83;
|
|
int FEAT_IMPROVED_CRITICAL_KATANA = 84;
|
|
int FEAT_IMPROVED_CRITICAL_BASTARD_SWORD = 85;
|
|
int FEAT_IMPROVED_CRITICAL_DIRE_MACE = 87;
|
|
int FEAT_IMPROVED_CRITICAL_DOUBLE_AXE = 88;
|
|
int FEAT_IMPROVED_CRITICAL_TWO_BLADED_SWORD = 89;
|
|
int FEAT_WEAPON_FOCUS_DAGGER = 90;
|
|
int FEAT_WEAPON_FOCUS_DART = 91;
|
|
int FEAT_WEAPON_FOCUS_HEAVY_CROSSBOW = 92;
|
|
int FEAT_WEAPON_FOCUS_LIGHT_CROSSBOW = 93;
|
|
int FEAT_WEAPON_FOCUS_LIGHT_MACE = 94;
|
|
int FEAT_WEAPON_FOCUS_MORNING_STAR = 95;
|
|
int FEAT_WEAPON_FOCUS_STAFF = 96;
|
|
int FEAT_WEAPON_FOCUS_SPEAR = 97;
|
|
int FEAT_WEAPON_FOCUS_SICKLE = 98;
|
|
int FEAT_WEAPON_FOCUS_SLING = 99;
|
|
int FEAT_WEAPON_FOCUS_UNARMED_STRIKE = 100;
|
|
int FEAT_WEAPON_FOCUS_LONGBOW = 101;
|
|
int FEAT_WEAPON_FOCUS_SHORTBOW = 102;
|
|
int FEAT_WEAPON_FOCUS_SHORT_SWORD = 103;
|
|
int FEAT_WEAPON_FOCUS_RAPIER = 104;
|
|
int FEAT_WEAPON_FOCUS_SCIMITAR = 105;
|
|
int FEAT_WEAPON_FOCUS_LONG_SWORD = 106;
|
|
int FEAT_WEAPON_FOCUS_GREAT_SWORD = 107;
|
|
int FEAT_WEAPON_FOCUS_HAND_AXE = 108;
|
|
int FEAT_WEAPON_FOCUS_THROWING_AXE = 109;
|
|
int FEAT_WEAPON_FOCUS_BATTLE_AXE = 110;
|
|
int FEAT_WEAPON_FOCUS_GREAT_AXE = 111;
|
|
int FEAT_WEAPON_FOCUS_HALBERD = 112;
|
|
int FEAT_WEAPON_FOCUS_LIGHT_HAMMER = 113;
|
|
int FEAT_WEAPON_FOCUS_LIGHT_FLAIL = 114;
|
|
int FEAT_WEAPON_FOCUS_WAR_HAMMER = 115;
|
|
int FEAT_WEAPON_FOCUS_HEAVY_FLAIL = 116;
|
|
int FEAT_WEAPON_FOCUS_KAMA = 117;
|
|
int FEAT_WEAPON_FOCUS_KUKRI = 118;
|
|
//int FEAT_WEAPON_FOCUS_NUNCHAKU = 119;
|
|
int FEAT_WEAPON_FOCUS_SHURIKEN = 120;
|
|
int FEAT_WEAPON_FOCUS_SCYTHE = 121;
|
|
int FEAT_WEAPON_FOCUS_KATANA = 122;
|
|
int FEAT_WEAPON_FOCUS_BASTARD_SWORD = 123;
|
|
int FEAT_WEAPON_FOCUS_DIRE_MACE = 125;
|
|
int FEAT_WEAPON_FOCUS_DOUBLE_AXE = 126;
|
|
int FEAT_WEAPON_FOCUS_TWO_BLADED_SWORD = 127;
|
|
int FEAT_WEAPON_SPECIALIZATION_DAGGER = 128;
|
|
int FEAT_WEAPON_SPECIALIZATION_DART = 129;
|
|
int FEAT_WEAPON_SPECIALIZATION_HEAVY_CROSSBOW = 130;
|
|
int FEAT_WEAPON_SPECIALIZATION_LIGHT_CROSSBOW = 131;
|
|
int FEAT_WEAPON_SPECIALIZATION_LIGHT_MACE = 132;
|
|
int FEAT_WEAPON_SPECIALIZATION_MORNING_STAR = 133;
|
|
int FEAT_WEAPON_SPECIALIZATION_STAFF = 134;
|
|
int FEAT_WEAPON_SPECIALIZATION_SPEAR = 135;
|
|
int FEAT_WEAPON_SPECIALIZATION_SICKLE = 136;
|
|
int FEAT_WEAPON_SPECIALIZATION_SLING = 137;
|
|
int FEAT_WEAPON_SPECIALIZATION_UNARMED_STRIKE = 138;
|
|
int FEAT_WEAPON_SPECIALIZATION_LONGBOW = 139;
|
|
int FEAT_WEAPON_SPECIALIZATION_SHORTBOW = 140;
|
|
int FEAT_WEAPON_SPECIALIZATION_SHORT_SWORD = 141;
|
|
int FEAT_WEAPON_SPECIALIZATION_RAPIER = 142;
|
|
int FEAT_WEAPON_SPECIALIZATION_SCIMITAR = 143;
|
|
int FEAT_WEAPON_SPECIALIZATION_LONG_SWORD = 144;
|
|
int FEAT_WEAPON_SPECIALIZATION_GREAT_SWORD = 145;
|
|
int FEAT_WEAPON_SPECIALIZATION_HAND_AXE = 146;
|
|
int FEAT_WEAPON_SPECIALIZATION_THROWING_AXE = 147;
|
|
int FEAT_WEAPON_SPECIALIZATION_BATTLE_AXE = 148;
|
|
int FEAT_WEAPON_SPECIALIZATION_GREAT_AXE = 149;
|
|
int FEAT_WEAPON_SPECIALIZATION_HALBERD = 150;
|
|
int FEAT_WEAPON_SPECIALIZATION_LIGHT_HAMMER = 151;
|
|
int FEAT_WEAPON_SPECIALIZATION_LIGHT_FLAIL = 152;
|
|
int FEAT_WEAPON_SPECIALIZATION_WAR_HAMMER = 153;
|
|
int FEAT_WEAPON_SPECIALIZATION_HEAVY_FLAIL = 154;
|
|
int FEAT_WEAPON_SPECIALIZATION_KAMA = 155;
|
|
int FEAT_WEAPON_SPECIALIZATION_KUKRI = 156;
|
|
//int FEAT_WEAPON_SPECIALIZATION_NUNCHAKU = 157;
|
|
int FEAT_WEAPON_SPECIALIZATION_SHURIKEN = 158;
|
|
int FEAT_WEAPON_SPECIALIZATION_SCYTHE = 159;
|
|
int FEAT_WEAPON_SPECIALIZATION_KATANA = 160;
|
|
int FEAT_WEAPON_SPECIALIZATION_BASTARD_SWORD = 161;
|
|
int FEAT_WEAPON_SPECIALIZATION_DIRE_MACE = 163;
|
|
int FEAT_WEAPON_SPECIALIZATION_DOUBLE_AXE = 164;
|
|
int FEAT_WEAPON_SPECIALIZATION_TWO_BLADED_SWORD = 165;
|
|
int FEAT_SPELL_FOCUS_CONJURATION = 166;
|
|
int FEAT_SPELL_FOCUS_DIVINATION = 167;
|
|
int FEAT_SPELL_FOCUS_ENCHANTMENT = 168;
|
|
int FEAT_SPELL_FOCUS_EVOCATION = 169;
|
|
int FEAT_SPELL_FOCUS_ILLUSION = 170;
|
|
int FEAT_SPELL_FOCUS_NECROMANCY = 171;
|
|
int FEAT_SPELL_FOCUS_TRANSMUTATION = 172;
|
|
int FEAT_SKILL_FOCUS_CONCENTRATION = 173;
|
|
int FEAT_SKILL_FOCUS_DISABLE_TRAP = 174;
|
|
int FEAT_SKILL_FOCUS_DISCIPLINE = 175;
|
|
int FEAT_SKILL_FOCUS_HEAL = 177;
|
|
int FEAT_SKILL_FOCUS_HIDE = 178;
|
|
int FEAT_SKILL_FOCUS_LISTEN = 179;
|
|
int FEAT_SKILL_FOCUS_LORE = 180;
|
|
int FEAT_SKILL_FOCUS_MOVE_SILENTLY = 181;
|
|
int FEAT_SKILL_FOCUS_OPEN_LOCK = 182;
|
|
int FEAT_SKILL_FOCUS_PARRY = 183;
|
|
int FEAT_SKILL_FOCUS_PERFORM = 184;
|
|
int FEAT_SKILL_FOCUS_PERSUADE = 185;
|
|
int FEAT_SKILL_FOCUS_PICK_POCKET = 186;
|
|
int FEAT_SKILL_FOCUS_SEARCH = 187;
|
|
int FEAT_SKILL_FOCUS_SET_TRAP = 188;
|
|
int FEAT_SKILL_FOCUS_SPELLCRAFT = 189;
|
|
int FEAT_SKILL_FOCUS_SPOT = 190;
|
|
int FEAT_SKILL_FOCUS_TAUNT = 192;
|
|
int FEAT_SKILL_FOCUS_USE_MAGIC_DEVICE = 193;
|
|
int FEAT_BARBARIAN_ENDURANCE = 194;
|
|
int FEAT_UNCANNY_DODGE_1 = 195;
|
|
int FEAT_DAMAGE_REDUCTION = 196;
|
|
int FEAT_BARDIC_KNOWLEDGE = 197;
|
|
int FEAT_NATURE_SENSE = 198;
|
|
int FEAT_ANIMAL_COMPANION = 199;
|
|
int FEAT_WOODLAND_STRIDE = 200;
|
|
int FEAT_TRACKLESS_STEP = 201;
|
|
int FEAT_RESIST_NATURES_LURE = 202;
|
|
int FEAT_VENOM_IMMUNITY = 203;
|
|
int FEAT_FLURRY_OF_BLOWS = 204;
|
|
int FEAT_EVASION = 206;
|
|
int FEAT_MONK_ENDURANCE = 207;
|
|
int FEAT_STILL_MIND = 208;
|
|
int FEAT_PURITY_OF_BODY = 209;
|
|
int FEAT_WHOLENESS_OF_BODY = 211;
|
|
int FEAT_IMPROVED_EVASION = 212;
|
|
int FEAT_KI_STRIKE = 213;
|
|
int FEAT_DIAMOND_BODY = 214;
|
|
int FEAT_DIAMOND_SOUL = 215;
|
|
int FEAT_PERFECT_SELF = 216;
|
|
int FEAT_DIVINE_GRACE = 217;
|
|
int FEAT_DIVINE_HEALTH = 219;
|
|
int FEAT_SNEAK_ATTACK = 221;
|
|
int FEAT_CRIPPLING_STRIKE = 222;
|
|
int FEAT_DEFENSIVE_ROLL = 223;
|
|
int FEAT_OPPORTUNIST = 224;
|
|
int FEAT_SKILL_MASTERY = 225;
|
|
int FEAT_UNCANNY_REFLEX = 226;
|
|
int FEAT_STONECUNNING = 227;
|
|
int FEAT_DARKVISION = 228;
|
|
int FEAT_HARDINESS_VERSUS_POISONS = 229;
|
|
int FEAT_HARDINESS_VERSUS_SPELLS = 230;
|
|
int FEAT_BATTLE_TRAINING_VERSUS_ORCS = 231;
|
|
int FEAT_BATTLE_TRAINING_VERSUS_GOBLINS = 232;
|
|
int FEAT_BATTLE_TRAINING_VERSUS_GIANTS = 233;
|
|
int FEAT_SKILL_AFFINITY_LORE = 234;
|
|
int FEAT_IMMUNITY_TO_SLEEP = 235;
|
|
int FEAT_HARDINESS_VERSUS_ENCHANTMENTS = 236;
|
|
int FEAT_SKILL_AFFINITY_LISTEN = 237;
|
|
int FEAT_SKILL_AFFINITY_SEARCH = 238;
|
|
int FEAT_SKILL_AFFINITY_SPOT = 239;
|
|
int FEAT_KEEN_SENSE = 240;
|
|
int FEAT_HARDINESS_VERSUS_ILLUSIONS = 241;
|
|
int FEAT_BATTLE_TRAINING_VERSUS_REPTILIANS = 242;
|
|
int FEAT_SKILL_AFFINITY_CONCENTRATION = 243;
|
|
int FEAT_PARTIAL_SKILL_AFFINITY_LISTEN = 244;
|
|
int FEAT_PARTIAL_SKILL_AFFINITY_SEARCH = 245;
|
|
int FEAT_PARTIAL_SKILL_AFFINITY_SPOT = 246;
|
|
int FEAT_SKILL_AFFINITY_MOVE_SILENTLY = 247;
|
|
int FEAT_LUCKY = 248;
|
|
int FEAT_FEARLESS = 249;
|
|
int FEAT_GOOD_AIM = 250;
|
|
int FEAT_UNCANNY_DODGE_2 = 251;
|
|
int FEAT_UNCANNY_DODGE_3 = 252;
|
|
int FEAT_UNCANNY_DODGE_4 = 253;
|
|
int FEAT_UNCANNY_DODGE_5 = 254;
|
|
int FEAT_UNCANNY_DODGE_6 = 255;
|
|
int FEAT_WEAPON_PROFICIENCY_ELF = 256;
|
|
int FEAT_BARD_SONGS = 257;
|
|
int FEAT_QUICK_TO_MASTER = 258;
|
|
int FEAT_SLIPPERY_MIND = 259;
|
|
int FEAT_MONK_AC_BONUS = 260;
|
|
int FEAT_FAVORED_ENEMY_DWARF = 261;
|
|
int FEAT_FAVORED_ENEMY_ELF = 262;
|
|
int FEAT_FAVORED_ENEMY_GNOME = 263;
|
|
int FEAT_FAVORED_ENEMY_HALFLING = 264;
|
|
int FEAT_FAVORED_ENEMY_HALFELF = 265;
|
|
int FEAT_FAVORED_ENEMY_HALFORC = 266;
|
|
int FEAT_FAVORED_ENEMY_HUMAN = 267;
|
|
int FEAT_FAVORED_ENEMY_ABERRATION = 268;
|
|
int FEAT_FAVORED_ENEMY_ANIMAL = 269;
|
|
int FEAT_FAVORED_ENEMY_BEAST = 270;
|
|
int FEAT_FAVORED_ENEMY_CONSTRUCT = 271;
|
|
int FEAT_FAVORED_ENEMY_DRAGON = 272;
|
|
int FEAT_FAVORED_ENEMY_GOBLINOID = 273;
|
|
int FEAT_FAVORED_ENEMY_MONSTROUS = 274;
|
|
int FEAT_FAVORED_ENEMY_ORC = 275;
|
|
int FEAT_FAVORED_ENEMY_REPTILIAN = 276;
|
|
int FEAT_FAVORED_ENEMY_ELEMENTAL = 277;
|
|
int FEAT_FAVORED_ENEMY_FEY = 278;
|
|
int FEAT_FAVORED_ENEMY_GIANT = 279;
|
|
int FEAT_FAVORED_ENEMY_MAGICAL_BEAST = 280;
|
|
int FEAT_FAVORED_ENEMY_OUTSIDER = 281;
|
|
int FEAT_FAVORED_ENEMY_SHAPECHANGER = 284;
|
|
int FEAT_FAVORED_ENEMY_UNDEAD = 285;
|
|
int FEAT_FAVORED_ENEMY_VERMIN = 286;
|
|
int FEAT_WEAPON_PROFICIENCY_CREATURE = 289;
|
|
int FEAT_WEAPON_SPECIALIZATION_CREATURE = 290;
|
|
int FEAT_WEAPON_FOCUS_CREATURE = 291;
|
|
int FEAT_IMPROVED_CRITICAL_CREATURE = 292;
|
|
int FEAT_BARBARIAN_RAGE = 293;
|
|
int FEAT_TURN_UNDEAD = 294;
|
|
int FEAT_QUIVERING_PALM = 296;
|
|
int FEAT_EMPTY_BODY = 297;
|
|
//int FEAT_DETECT_EVIL = 298;
|
|
int FEAT_LAY_ON_HANDS = 299;
|
|
int FEAT_AURA_OF_COURAGE = 300;
|
|
int FEAT_SMITE_EVIL = 301;
|
|
int FEAT_REMOVE_DISEASE = 302;
|
|
int FEAT_SUMMON_FAMILIAR = 303;
|
|
int FEAT_ELEMENTAL_SHAPE = 304;
|
|
int FEAT_WILD_SHAPE = 305;
|
|
int FEAT_WAR_DOMAIN_POWER = 306;
|
|
int FEAT_STRENGTH_DOMAIN_POWER = 307;
|
|
int FEAT_PROTECTION_DOMAIN_POWER = 308;
|
|
int FEAT_LUCK_DOMAIN_POWER = 309;
|
|
int FEAT_DEATH_DOMAIN_POWER = 310;
|
|
int FEAT_AIR_DOMAIN_POWER = 311;
|
|
int FEAT_ANIMAL_DOMAIN_POWER = 312;
|
|
int FEAT_DESTRUCTION_DOMAIN_POWER = 313;
|
|
int FEAT_EARTH_DOMAIN_POWER = 314;
|
|
int FEAT_EVIL_DOMAIN_POWER = 315;
|
|
int FEAT_FIRE_DOMAIN_POWER = 316;
|
|
int FEAT_GOOD_DOMAIN_POWER = 317;
|
|
int FEAT_HEALING_DOMAIN_POWER = 318;
|
|
int FEAT_KNOWLEDGE_DOMAIN_POWER = 319;
|
|
int FEAT_MAGIC_DOMAIN_POWER = 320;
|
|
int FEAT_PLANT_DOMAIN_POWER = 321;
|
|
int FEAT_SUN_DOMAIN_POWER = 322;
|
|
int FEAT_TRAVEL_DOMAIN_POWER = 323;
|
|
int FEAT_TRICKERY_DOMAIN_POWER = 324;
|
|
int FEAT_WATER_DOMAIN_POWER = 325;
|
|
int FEAT_LOWLIGHTVISION = 354;
|
|
int FEAT_SKILL_FOCUS_PERSUADE_R = 376;
|
|
int FEAT_SKILL_FOCUS_HIDE_R = 377;
|
|
|
|
|
|
// Special Attack Defines
|
|
int SPECIAL_ATTACK_INVALID = 0;
|
|
int SPECIAL_ATTACK_CALLED_SHOT_LEG = 1;
|
|
int SPECIAL_ATTACK_CALLED_SHOT_ARM = 2;
|
|
int SPECIAL_ATTACK_SAP = 3;
|
|
int SPECIAL_ATTACK_DISARM = 4;
|
|
int SPECIAL_ATTACK_IMPROVED_DISARM = 5;
|
|
int SPECIAL_ATTACK_KNOCKDOWN = 6;
|
|
int SPECIAL_ATTACK_IMPROVED_KNOCKDOWN = 7;
|
|
int SPECIAL_ATTACK_STUNNING_FIST = 8;
|
|
int SPECIAL_ATTACK_FLURRY_OF_BLOWS = 9;
|
|
int SPECIAL_ATTACK_RAPID_SHOT = 10;
|
|
|
|
// Combat Mode Defines
|
|
int COMBAT_MODE_INVALID = 0;
|
|
int COMBAT_MODE_PARRY = 1;
|
|
int COMBAT_MODE_POWER_ATTACK = 2;
|
|
int COMBAT_MODE_IMPROVED_POWER_ATTACK = 3;
|
|
int COMBAT_MODE_FLURRY_OF_BLOWS = 4;
|
|
int COMBAT_MODE_RAPID_SHOT = 5;
|
|
|
|
// These represent the row in the difficulty 2da, rather than
|
|
// a difficulty value.
|
|
int ENCOUNTER_DIFFICULTY_VERY_EASY = 0;
|
|
int ENCOUNTER_DIFFICULTY_EASY = 1;
|
|
int ENCOUNTER_DIFFICULTY_NORMAL = 2;
|
|
int ENCOUNTER_DIFFICULTY_HARD = 3;
|
|
int ENCOUNTER_DIFFICULTY_IMPOSSIBLE = 4;
|
|
|
|
// Looping animation constants.
|
|
int ANIMATION_LOOPING_PAUSE = 0;
|
|
int ANIMATION_LOOPING_PAUSE2 = 1;
|
|
int ANIMATION_LOOPING_LISTEN = 2;
|
|
int ANIMATION_LOOPING_MEDITATE = 3;
|
|
int ANIMATION_LOOPING_WORSHIP = 4;
|
|
int ANIMATION_LOOPING_LOOK_FAR = 5;
|
|
int ANIMATION_LOOPING_SIT_CHAIR = 6;
|
|
int ANIMATION_LOOPING_SIT_CROSS = 7;
|
|
int ANIMATION_LOOPING_TALK_NORMAL = 8;
|
|
int ANIMATION_LOOPING_TALK_PLEADING = 9;
|
|
int ANIMATION_LOOPING_TALK_FORCEFUL = 10;
|
|
int ANIMATION_LOOPING_TALK_LAUGHING = 11;
|
|
int ANIMATION_LOOPING_GET_LOW = 12;
|
|
int ANIMATION_LOOPING_GET_MID = 13;
|
|
int ANIMATION_LOOPING_PAUSE_TIRED = 14;
|
|
int ANIMATION_LOOPING_PAUSE_DRUNK = 15;
|
|
int ANIMATION_LOOPING_DEAD_FRONT = 16;
|
|
|
|
// Fire and forget animation constants.
|
|
int ANIMATION_FIREFORGET_HEAD_TURN_LEFT = 100;
|
|
int ANIMATION_FIREFORGET_HEAD_TURN_RIGHT = 101;
|
|
int ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD = 102;
|
|
int ANIMATION_FIREFORGET_PAUSE_BORED = 103;
|
|
int ANIMATION_FIREFORGET_SALUTE = 104;
|
|
int ANIMATION_FIREFORGET_BOW = 105;
|
|
int ANIMATION_FIREFORGET_STEAL = 106;
|
|
int ANIMATION_FIREFORGET_GREETING = 107;
|
|
int ANIMATION_FIREFORGET_TAUNT = 108;
|
|
int ANIMATION_FIREFORGET_VICTORY1 = 109;
|
|
int ANIMATION_FIREFORGET_VICTORY2 = 110;
|
|
int ANIMATION_FIREFORGET_VICTORY3 = 111;
|
|
int ANIMATION_FIREFORGET_READ = 112;
|
|
int ANIMATION_FIREFORGET_DRINK = 113;
|
|
|
|
// Placeable animation constants
|
|
int ANIMATION_PLACEABLE_ACTIVATE = 200;
|
|
int ANIMATION_PLACEABLE_DEACTIVATE = 201;
|
|
int ANIMATION_PLACEABLE_OPEN = 202;
|
|
int ANIMATION_PLACEABLE_CLOSE = 203;
|
|
|
|
int TALENT_TYPE_SPELL = 0;
|
|
int TALENT_TYPE_FEAT = 1;
|
|
int TALENT_TYPE_SKILL = 2;
|
|
|
|
// These must match the values in nwscreature.h and nwccreaturemenu.cpp
|
|
// Cannot use the value -1 because that is used to start a conversation
|
|
int ASSOCIATE_COMMAND_STANDGROUND = -2;
|
|
int ASSOCIATE_COMMAND_ATTACKNEAREST = -3;
|
|
int ASSOCIATE_COMMAND_HEALMASTER = -4;
|
|
int ASSOCIATE_COMMAND_FOLLOWMASTER = -5;
|
|
int ASSOCIATE_COMMAND_MASTERFAILEDLOCKPICK = -6;
|
|
int ASSOCIATE_COMMAND_GUARDMASTER = -7;
|
|
int ASSOCIATE_COMMAND_UNSUMMONFAMILIAR = -8;
|
|
int ASSOCIATE_COMMAND_UNSUMMONANIMALCOMPANION = -9;
|
|
int ASSOCIATE_COMMAND_UNSUMMONSUMMONED = -10;
|
|
int ASSOCIATE_COMMAND_MASTERUNDERATTACK = -11;
|
|
int ASSOCIATE_COMMAND_RELEASEDOMINATION = -12;
|
|
int ASSOCIATE_COMMAND_UNPOSSESSFAMILIAR = -13;
|
|
int ASSOCIATE_COMMAND_MASTERSAWTRAP = -14;
|
|
int ASSOCIATE_COMMAND_MASTERATTACKEDOTHER = -15;
|
|
int ASSOCIATE_COMMAND_MASTERGOINGTOBEATTACKED = -16;
|
|
int ASSOCIATE_COMMAND_LEAVEPARTY = -17;
|
|
|
|
// These match the values in nwscreature.h
|
|
int ASSOCIATE_TYPE_HENCHMAN = 1;
|
|
int ASSOCIATE_TYPE_ANIMALCOMPANION = 2;
|
|
int ASSOCIATE_TYPE_FAMILIAR = 3;
|
|
int ASSOCIATE_TYPE_SUMMONED = 4;
|
|
int ASSOCIATE_TYPE_DOMINATED = 5;
|
|
|
|
// These must match the list in nwscreaturestats.cpp
|
|
int TALENT_CATEGORY_HARMFUL_AREAEFFECT_DISCRIMINANT = 1;
|
|
int TALENT_CATEGORY_HARMFUL_RANGED = 2;
|
|
int TALENT_CATEGORY_HARMFUL_TOUCH = 3;
|
|
int TALENT_CATEGORY_BENEFICIAL_HEALING_AREAEFFECT = 4;
|
|
int TALENT_CATEGORY_BENEFICIAL_HEALING_TOUCH = 5;
|
|
int TALENT_CATEGORY_BENEFICIAL_CONDITIONAL_AREAEFFECT = 6;
|
|
int TALENT_CATEGORY_BENEFICIAL_CONDITIONAL_SINGLE = 7;
|
|
int TALENT_CATEGORY_BENEFICIAL_ENHANCEMENT_AREAEFFECT = 8;
|
|
int TALENT_CATEGORY_BENEFICIAL_ENHANCEMENT_SINGLE = 9;
|
|
int TALENT_CATEGORY_BENEFICIAL_ENHANCEMENT_SELF = 10;
|
|
int TALENT_CATEGORY_HARMFUL_AREAEFFECT_INDISCRIMINANT = 11;
|
|
int TALENT_CATEGORY_BENEFICIAL_PROTECTION_SELF = 12;
|
|
int TALENT_CATEGORY_BENEFICIAL_PROTECTION_SINGLE = 13;
|
|
int TALENT_CATEGORY_BENEFICIAL_PROTECTION_AREAEFFECT = 14;
|
|
int TALENT_CATEGORY_BENEFICIAL_OBTAIN_ALLIES = 15;
|
|
int TALENT_CATEGORY_PERSISTENT_AREA_OF_EFFECT = 16;
|
|
int TALENT_CATEGORY_BENEFICIAL_HEALING_POTION = 17;
|
|
int TALENT_CATEGORY_BENEFICIAL_CONDITIONAL_POTION = 18;
|
|
int TALENT_CATEGORY_DRAGONS_BREATH = 19;
|
|
int TALENT_CATEGORY_BENEFICIAL_PROTECTION_POTION = 20;
|
|
int TALENT_CATEGORY_BENEFICIAL_ENHANCEMENT_POTION = 21;
|
|
int TALENT_CATEGORY_HARMFUL_MELEE = 22;
|
|
|
|
int INVENTORY_DISTURB_TYPE_ADDED = 0;
|
|
int INVENTORY_DISTURB_TYPE_REMOVED = 1;
|
|
int INVENTORY_DISTURB_TYPE_STOLEN = 2;
|
|
|
|
int GUI_PANEL_PLAYER_DEATH = 0;
|
|
|
|
int VOICE_CHAT_ATTACK = 0;
|
|
int VOICE_CHAT_BATTLECRY1 = 1;
|
|
int VOICE_CHAT_BATTLECRY2 = 2;
|
|
int VOICE_CHAT_BATTLECRY3 = 3;
|
|
int VOICE_CHAT_HEALME = 4;
|
|
int VOICE_CHAT_HELP = 5;
|
|
int VOICE_CHAT_ENEMIES = 6;
|
|
int VOICE_CHAT_FLEE = 7;
|
|
int VOICE_CHAT_TAUNT = 8;
|
|
int VOICE_CHAT_GUARDME = 9;
|
|
int VOICE_CHAT_HOLD = 10;
|
|
int VOICE_CHAT_GATTACK1 = 11;
|
|
int VOICE_CHAT_GATTACK2 = 12;
|
|
int VOICE_CHAT_GATTACK3 = 13;
|
|
int VOICE_CHAT_PAIN1 = 14;
|
|
int VOICE_CHAT_PAIN2 = 15;
|
|
int VOICE_CHAT_PAIN3 = 16;
|
|
int VOICE_CHAT_NEARDEATH = 17;
|
|
int VOICE_CHAT_DEATH = 18;
|
|
int VOICE_CHAT_POISONED = 19;
|
|
int VOICE_CHAT_SPELLFAILED = 20;
|
|
int VOICE_CHAT_WEAPONSUCKS = 21;
|
|
int VOICE_CHAT_FOLLOWME = 22;
|
|
int VOICE_CHAT_LOOKHERE = 23;
|
|
int VOICE_CHAT_GROUP = 24;
|
|
int VOICE_CHAT_MOVEOVER = 25;
|
|
int VOICE_CHAT_PICKLOCK = 26;
|
|
int VOICE_CHAT_SEARCH = 27;
|
|
int VOICE_CHAT_HIDE = 28;
|
|
int VOICE_CHAT_CANDO = 29;
|
|
int VOICE_CHAT_CANTDO = 30;
|
|
int VOICE_CHAT_TASKCOMPLETE = 31;
|
|
int VOICE_CHAT_ENCUMBERED = 32;
|
|
int VOICE_CHAT_SELECTED = 33;
|
|
int VOICE_CHAT_HELLO = 34;
|
|
int VOICE_CHAT_YES = 35;
|
|
int VOICE_CHAT_NO = 36;
|
|
int VOICE_CHAT_STOP = 37;
|
|
int VOICE_CHAT_REST = 38;
|
|
int VOICE_CHAT_BORED = 39;
|
|
int VOICE_CHAT_GOODBYE = 40;
|
|
int VOICE_CHAT_THANKS = 41;
|
|
int VOICE_CHAT_LAUGH = 42;
|
|
int VOICE_CHAT_CUSS = 43;
|
|
int VOICE_CHAT_CHEER = 44;
|
|
int VOICE_CHAT_TALKTOME = 45;
|
|
int VOICE_CHAT_GOODIDEA = 46;
|
|
int VOICE_CHAT_BADIDEA = 47;
|
|
int VOICE_CHAT_THREATEN = 48;
|
|
|
|
int POLYMORPH_TYPE_WEREWOLF = 0;
|
|
int POLYMORPH_TYPE_WERERAT = 1;
|
|
int POLYMORPH_TYPE_WERECAT = 2;
|
|
int POLYMORPH_TYPE_GIANT_SPIDER = 3;
|
|
int POLYMORPH_TYPE_TROLL = 4;
|
|
int POLYMORPH_TYPE_UMBER_HULK = 5;
|
|
int POLYMORPH_TYPE_PIXIE = 6;
|
|
int POLYMORPH_TYPE_ZOMBIE = 7;
|
|
int POLYMORPH_TYPE_RED_DRAGON = 8;
|
|
int POLYMORPH_TYPE_FIRE_GIANT = 9;
|
|
int POLYMORPH_TYPE_BALOR = 10;
|
|
int POLYMORPH_TYPE_DEATH_SLAAD = 11;
|
|
int POLYMORPH_TYPE_IRON_GOLEM = 12;
|
|
int POLYMORPH_TYPE_HUGE_FIRE_ELEMENTAL = 13;
|
|
int POLYMORPH_TYPE_HUGE_WATER_ELEMENTAL = 14;
|
|
int POLYMORPH_TYPE_HUGE_EARTH_ELEMENTAL = 15;
|
|
int POLYMORPH_TYPE_HUGE_AIR_ELEMENTAL = 16;
|
|
int POLYMORPH_TYPE_ELDER_FIRE_ELEMENTAL = 17;
|
|
int POLYMORPH_TYPE_ELDER_WATER_ELEMENTAL = 18;
|
|
int POLYMORPH_TYPE_ELDER_EARTH_ELEMENTAL = 19;
|
|
int POLYMORPH_TYPE_ELDER_AIR_ELEMENTAL = 20;
|
|
int POLYMORPH_TYPE_BROWN_BEAR = 21;
|
|
int POLYMORPH_TYPE_PANTHER = 22;
|
|
int POLYMORPH_TYPE_WOLF = 23;
|
|
int POLYMORPH_TYPE_BOAR = 24;
|
|
int POLYMORPH_TYPE_BADGER = 25;
|
|
int POLYMORPH_TYPE_PENGUIN = 26;
|
|
int POLYMORPH_TYPE_COW = 27;
|
|
int POLYMORPH_TYPE_DOOM_KNIGHT = 28;
|
|
int POLYMORPH_TYPE_YUANTI = 29;
|
|
int POLYMORPH_TYPE_IMP = 30;
|
|
int POLYMORPH_TYPE_QUASIT = 31;
|
|
int POLYMORPH_TYPE_SUCCUBUS = 32;
|
|
int POLYMORPH_TYPE_DIRE_BROWN_BEAR = 33;
|
|
int POLYMORPH_TYPE_DIRE_PANTHER = 34;
|
|
int POLYMORPH_TYPE_DIRE_WOLF = 35;
|
|
int POLYMORPH_TYPE_DIRE_BOAR = 36;
|
|
int POLYMORPH_TYPE_DIRE_BADGER = 37;
|
|
|
|
int INVISIBILITY_TYPE_NORMAL = 1;
|
|
int INVISIBILITY_TYPE_DARKNESS = 2;
|
|
int INVISIBILITY_TYPE_IMPROVED = 4;
|
|
|
|
int CREATURE_SIZE_INVALID = 0;
|
|
int CREATURE_SIZE_TINY = 1;
|
|
int CREATURE_SIZE_SMALL = 2;
|
|
int CREATURE_SIZE_MEDIUM = 3;
|
|
int CREATURE_SIZE_LARGE = 4;
|
|
int CREATURE_SIZE_HUGE = 5;
|
|
|
|
int SPELL_SCHOOL_GENERAL = 0;
|
|
int SPELL_SCHOOL_ABJURATION = 1;
|
|
int SPELL_SCHOOL_CONJURATION = 2;
|
|
int SPELL_SCHOOL_DIVINATION = 3;
|
|
int SPELL_SCHOOL_ENCHANTMENT = 4;
|
|
int SPELL_SCHOOL_EVOCATION = 5;
|
|
int SPELL_SCHOOL_ILLUSION = 6;
|
|
int SPELL_SCHOOL_NECROMANCY = 7;
|
|
int SPELL_SCHOOL_TRANSMUTATION = 8;
|
|
|
|
int ANIMAL_COMPANION_CREATURE_TYPE_BADGER = 0;
|
|
int ANIMAL_COMPANION_CREATURE_TYPE_WOLF = 1;
|
|
int ANIMAL_COMPANION_CREATURE_TYPE_BEAR = 2;
|
|
int ANIMAL_COMPANION_CREATURE_TYPE_BOAR = 3;
|
|
int ANIMAL_COMPANION_CREATURE_TYPE_HAWK = 4;
|
|
int ANIMAL_COMPANION_CREATURE_TYPE_PANTHER = 5;
|
|
int ANIMAL_COMPANION_CREATURE_TYPE_SPIDER = 6;
|
|
int ANIMAL_COMPANION_CREATURE_TYPE_DIREWOLF = 7;
|
|
int ANIMAL_COMPANION_CREATURE_TYPE_NONE = 255;
|
|
|
|
int FAMILIAR_CREATURE_TYPE_BAT = 0;
|
|
int FAMILIAR_CREATURE_TYPE_CRAGCAT = 1;
|
|
int FAMILIAR_CREATURE_TYPE_HELLHOUND = 2;
|
|
int FAMILIAR_CREATURE_TYPE_IMP = 3;
|
|
int FAMILIAR_CREATURE_TYPE_FIREMEPHIT = 4;
|
|
int FAMILIAR_CREATURE_TYPE_ICEMEPHIT = 5;
|
|
int FAMILIAR_CREATURE_TYPE_PIXIE = 6;
|
|
int FAMILIAR_CREATURE_TYPE_RAVEN = 7;
|
|
int FAMILIAR_CREATURE_TYPE_NONE = 255;
|
|
|
|
int CAMERA_MODE_CHASE_CAMERA = 0;
|
|
int CAMERA_MODE_TOP_DOWN = 1;
|
|
int CAMERA_MODE_STIFF_CHASE_CAMERA = 2;
|
|
|
|
int CAMERA_TRANSITION_TYPE_SNAP = 0;
|
|
int CAMERA_TRANSITION_TYPE_CRAWL = 2;
|
|
int CAMERA_TRANSITION_TYPE_VERY_SLOW = 5;
|
|
int CAMERA_TRANSITION_TYPE_SLOW = 20;
|
|
int CAMERA_TRANSITION_TYPE_MEDIUM = 40;
|
|
int CAMERA_TRANSITION_TYPE_FAST = 70;
|
|
int CAMERA_TRANSITION_TYPE_VERY_FAST = 100;
|
|
|
|
int WEATHER_CLEAR = 0;
|
|
int WEATHER_RAIN = 1;
|
|
int WEATHER_SNOW = 2;
|
|
int WEATHER_USE_AREA_SETTINGS = -1;
|
|
|
|
int REST_EVENTTYPE_REST_INVALID = 0;
|
|
int REST_EVENTTYPE_REST_STARTED = 1;
|
|
int REST_EVENTTYPE_REST_FINISHED = 2;
|
|
int REST_EVENTTYPE_REST_CANCELLED = 3;
|
|
|
|
int PROJECTILE_PATH_TYPE_DEFAULT = 0;
|
|
int PROJECTILE_PATH_TYPE_HOMING = 1;
|
|
int PROJECTILE_PATH_TYPE_BALLISTIC = 2;
|
|
int PROJECTILE_PATH_TYPE_HIGH_BALLISTIC = 3;
|
|
int PROJECTILE_PATH_TYPE_ACCELERATING = 4;
|
|
|
|
int GAME_DIFFICULTY_VERY_EASY = 0;
|
|
int GAME_DIFFICULTY_EASY = 1;
|
|
int GAME_DIFFICULTY_NORMAL = 2;
|
|
int GAME_DIFFICULTY_CORE_RULES = 3;
|
|
int GAME_DIFFICULTY_DIFFICULT = 4;
|
|
|
|
int TILE_MAIN_LIGHT_COLOR_BLACK = 0;
|
|
int TILE_MAIN_LIGHT_COLOR_DIM_WHITE = 1;
|
|
int TILE_MAIN_LIGHT_COLOR_WHITE = 2;
|
|
int TILE_MAIN_LIGHT_COLOR_BRIGHT_WHITE = 3;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_DARK_YELLOW = 4;
|
|
int TILE_MAIN_LIGHT_COLOR_DARK_YELLOW = 5;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_YELLOW = 6;
|
|
int TILE_MAIN_LIGHT_COLOR_YELLOW = 7;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_DARK_GREEN = 8;
|
|
int TILE_MAIN_LIGHT_COLOR_DARK_GREEN = 9;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_GREEN = 10;
|
|
int TILE_MAIN_LIGHT_COLOR_GREEN = 11;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_DARK_AQUA = 12;
|
|
int TILE_MAIN_LIGHT_COLOR_DARK_AQUA = 13;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_AQUA = 14;
|
|
int TILE_MAIN_LIGHT_COLOR_AQUA = 15;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_DARK_BLUE = 16;
|
|
int TILE_MAIN_LIGHT_COLOR_DARK_BLUE = 17;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_BLUE = 18;
|
|
int TILE_MAIN_LIGHT_COLOR_BLUE = 19;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_DARK_PURPLE = 20;
|
|
int TILE_MAIN_LIGHT_COLOR_DARK_PURPLE = 21;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_PURPLE = 22;
|
|
int TILE_MAIN_LIGHT_COLOR_PURPLE = 23;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_DARK_RED = 24;
|
|
int TILE_MAIN_LIGHT_COLOR_DARK_RED = 25;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_RED = 26;
|
|
int TILE_MAIN_LIGHT_COLOR_RED = 27;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_DARK_ORANGE = 28;
|
|
int TILE_MAIN_LIGHT_COLOR_DARK_ORANGE = 29;
|
|
int TILE_MAIN_LIGHT_COLOR_PALE_ORANGE = 30;
|
|
int TILE_MAIN_LIGHT_COLOR_ORANGE = 31;
|
|
|
|
int TILE_SOURCE_LIGHT_COLOR_BLACK = 0;
|
|
int TILE_SOURCE_LIGHT_COLOR_WHITE = 1;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_YELLOW = 2;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_YELLOW = 3;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_GREEN = 4;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_GREEN = 5;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_AQUA = 6;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_AQUA = 7;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_BLUE = 8;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_BLUE = 9;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_PURPLE = 10;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_PURPLE = 11;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_RED = 12;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_RED = 13;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_ORANGE = 14;
|
|
int TILE_SOURCE_LIGHT_COLOR_PALE_ORANGE = 15;
|
|
|
|
int PANEL_BUTTON_MAP = 0;
|
|
int PANEL_BUTTON_INVENTORY = 1;
|
|
int PANEL_BUTTON_JOURNAL = 2;
|
|
int PANEL_BUTTON_CHARACTER = 3;
|
|
int PANEL_BUTTON_OPTIONS = 4;
|
|
int PANEL_BUTTON_SPELLS = 5;
|
|
int PANEL_BUTTON_REST = 6;
|
|
int PANEL_BUTTON_PLAYER_VERSUS_PLAYER = 7;
|
|
|
|
int ACTION_MOVETOPOINT = 0;
|
|
int ACTION_PICKUPITEM = 1;
|
|
int ACTION_DROPITEM = 2;
|
|
int ACTION_ATTACKOBJECT = 3;
|
|
int ACTION_CASTSPELL = 4;
|
|
int ACTION_OPENDOOR = 5;
|
|
int ACTION_CLOSEDOOR = 6;
|
|
int ACTION_DIALOGOBJECT = 7;
|
|
int ACTION_DISABLETRAP = 8;
|
|
int ACTION_RECOVERTRAP = 9;
|
|
int ACTION_FLAGTRAP = 10;
|
|
int ACTION_EXAMINETRAP = 11;
|
|
int ACTION_SETTRAP = 12;
|
|
int ACTION_OPENLOCK = 13;
|
|
int ACTION_LOCK = 14;
|
|
int ACTION_USEOBJECT = 15;
|
|
int ACTION_ANIMALEMPATHY = 16;
|
|
int ACTION_REST = 17;
|
|
int ACTION_TAUNT = 18;
|
|
int ACTION_ITEMCASTSPELL = 19;
|
|
int ACTION_COUNTERSPELL = 31;
|
|
int ACTION_HEAL = 33;
|
|
int ACTION_PICKPOCKET = 34;
|
|
int ACTION_FOLLOW = 35;
|
|
int ACTION_WAIT = 36;
|
|
int ACTION_SIT = 37;
|
|
|
|
int ACTION_INVALID = 65535;
|
|
|
|
int TRAP_BASE_TYPE_MINOR_SPIKE = 0;
|
|
int TRAP_BASE_TYPE_AVERAGE_SPIKE = 1;
|
|
int TRAP_BASE_TYPE_STRONG_SPIKE = 2;
|
|
int TRAP_BASE_TYPE_DEADLY_SPIKE = 3;
|
|
int TRAP_BASE_TYPE_MINOR_HOLY = 4;
|
|
int TRAP_BASE_TYPE_AVERAGE_HOLY = 5;
|
|
int TRAP_BASE_TYPE_STRONG_HOLY = 6;
|
|
int TRAP_BASE_TYPE_DEADLY_HOLY = 7;
|
|
int TRAP_BASE_TYPE_MINOR_TANGLE = 8;
|
|
int TRAP_BASE_TYPE_AVERAGE_TANGLE = 9;
|
|
int TRAP_BASE_TYPE_STRONG_TANGLE = 10;
|
|
int TRAP_BASE_TYPE_DEADLY_TANGLE = 11;
|
|
int TRAP_BASE_TYPE_MINOR_ACID = 12;
|
|
int TRAP_BASE_TYPE_AVERAGE_ACID = 13;
|
|
int TRAP_BASE_TYPE_STRONG_ACID = 14;
|
|
int TRAP_BASE_TYPE_DEADLY_ACID = 15;
|
|
int TRAP_BASE_TYPE_MINOR_FIRE = 16;
|
|
int TRAP_BASE_TYPE_AVERAGE_FIRE = 17;
|
|
int TRAP_BASE_TYPE_STRONG_FIRE = 18;
|
|
int TRAP_BASE_TYPE_DEADLY_FIRE = 19;
|
|
int TRAP_BASE_TYPE_MINOR_ELECTRICAL = 20;
|
|
int TRAP_BASE_TYPE_AVERAGE_ELECTRICAL = 21;
|
|
int TRAP_BASE_TYPE_STRONG_ELECTRICAL = 22;
|
|
int TRAP_BASE_TYPE_DEADLY_ELECTRICAL = 23;
|
|
int TRAP_BASE_TYPE_MINOR_GAS = 24;
|
|
int TRAP_BASE_TYPE_AVERAGE_GAS = 25;
|
|
int TRAP_BASE_TYPE_STRONG_GAS = 26;
|
|
int TRAP_BASE_TYPE_DEADLY_GAS = 27;
|
|
int TRAP_BASE_TYPE_MINOR_FROST = 28;
|
|
int TRAP_BASE_TYPE_AVERAGE_FROST = 29;
|
|
int TRAP_BASE_TYPE_STRONG_FROST = 30;
|
|
int TRAP_BASE_TYPE_DEADLY_FROST = 31;
|
|
int TRAP_BASE_TYPE_MINOR_NEGATIVE = 32;
|
|
int TRAP_BASE_TYPE_AVERAGE_NEGATIVE = 33;
|
|
int TRAP_BASE_TYPE_STRONG_NEGATIVE = 34;
|
|
int TRAP_BASE_TYPE_DEADLY_NEGATIVE = 35;
|
|
int TRAP_BASE_TYPE_MINOR_SONIC = 36;
|
|
int TRAP_BASE_TYPE_AVERAGE_SONIC = 37;
|
|
int TRAP_BASE_TYPE_STRONG_SONIC = 38;
|
|
int TRAP_BASE_TYPE_DEADLY_SONIC = 39;
|
|
int TRAP_BASE_TYPE_MINOR_ACID_SPLASH = 40;
|
|
int TRAP_BASE_TYPE_AVERAGE_ACID_SPLASH = 41;
|
|
int TRAP_BASE_TYPE_STRONG_ACID_SPLASH = 42;
|
|
int TRAP_BASE_TYPE_DEADLY_ACID_SPLASH = 43;
|
|
|
|
int STEALTH_MODE_DISABLED = 0;
|
|
int STEALTH_MODE_ACTIVATED = 1;
|
|
int DETECT_MODE_PASSIVE = 0;
|
|
int DETECT_MODE_ACTIVE = 1;
|
|
|
|
string sLanguage = "nwscript";
|
|
|
|
// Get an integer between 0 and nMaxInteger-1.
|
|
// Return value on error: 0
|
|
int Random(int nMaxInteger);
|
|
|
|
// Output sString to the log file.
|
|
void PrintString(string sString);
|
|
|
|
// Output a formatted float to the log file.
|
|
// - nWidth should be a value from 0 to 18 inclusive.
|
|
// - nDecimals should be a value from 0 to 9 inclusive.
|
|
void PrintFloat(float fFloat, int nWidth=18, int nDecimals=9);
|
|
|
|
// Convert fFloat into a string.
|
|
// - nWidth should be a value from 0 to 18 inclusive.
|
|
// - nDecimals should be a value from 0 to 9 inclusive.
|
|
string FloatToString(float fFloat, int nWidth=18, int nDecimals=9);
|
|
|
|
// Output nInteger to the log file.
|
|
void PrintInteger(int nInteger);
|
|
|
|
// Output oObject's ID to the log file.
|
|
void PrintObject(object oObject);
|
|
|
|
// Assign aActionToAssign to oActionSubject.
|
|
// * No return value, but if an error occurs, the log file will contain
|
|
// "AssignCommand failed."
|
|
// (If the object doesn't exist, nothing happens.)
|
|
void AssignCommand(object oActionSubject,action aActionToAssign);
|
|
|
|
// Delay aActionToDelay by fSeconds.
|
|
// * No return value, but if an error occurs, the log file will contain
|
|
// "DelayCommand failed.".
|
|
// It is suggested that functions which create effects should not be used
|
|
// as parameters to delayed actions. Instead, the effect should be created in the
|
|
// script and then passed into the action. For example:
|
|
// effect eDamage = EffectDamage(nDamage, DAMAGE_TYPE_MAGICAL);
|
|
// DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget);
|
|
void DelayCommand(float fSeconds, action aActionToDelay);
|
|
|
|
// Make oTarget run sScript and then return execution to the calling script.
|
|
// If sScript does not specify a compiled script, nothing happens.
|
|
void ExecuteScript(string sScript, object oTarget);
|
|
|
|
// Clear all the actions of the caller.
|
|
// * No return value, but if an error occurs, the log file will contain
|
|
// "ClearAllActions failed.".
|
|
// - nClearCombatState: if true, this will immediately clear the combat state
|
|
// on a creature, which will stop the combat music and allow them to rest,
|
|
// engage in dialog, or other actions that they would normally have to wait for.
|
|
void ClearAllActions(int nClearCombatState=FALSE);
|
|
|
|
// Cause the caller to face fDirection.
|
|
// - fDirection is expressed as anticlockwise degrees from Due East.
|
|
// DIRECTION_EAST, DIRECTION_NORTH, DIRECTION_WEST and DIRECTION_SOUTH are
|
|
// predefined. (0.0f=East, 90.0f=North, 180.0f=West, 270.0f=South)
|
|
void SetFacing(float fDirection);
|
|
|
|
// Set the calendar to the specified date.
|
|
// - nYear should be from 0 to 32000 inclusive
|
|
// - nMonth should be from 1 to 12 inclusive
|
|
// - nDay should be from 1 to 28 inclusive
|
|
// 1) Time can only be advanced forwards; attempting to set the time backwards
|
|
// will result in no change to the calendar.
|
|
// 2) If values larger than the month or day are specified, they will be wrapped
|
|
// around and the overflow will be used to advance the next field.
|
|
// e.g. Specifying a year of 1350, month of 33 and day of 10 will result in
|
|
// the calender being set to a year of 1352, a month of 9 and a day of 10.
|
|
void SetCalendar(int nYear,int nMonth, int nDay);
|
|
|
|
// Set the time to the time specified.
|
|
// - nHour should be from 0 to 23 inclusive
|
|
// - nMinute should be from 0 to 59 inclusive
|
|
// - nSecond should be from 0 to 59 inclusive
|
|
// - nMillisecond should be from 0 to 999 inclusive
|
|
// 1) Time can only be advanced forwards; attempting to set the time backwards
|
|
// will result in the day advancing and then the time being set to that
|
|
// specified, e.g. if the current hour is 15 and then the hour is set to 3,
|
|
// the day will be advanced by 1 and the hour will be set to 3.
|
|
// 2) If values larger than the max hour, minute, second or millisecond are
|
|
// specified, they will be wrapped around and the overflow will be used to
|
|
// advance the next field, e.g. specifying 62 hours, 250 minutes, 10 seconds
|
|
// and 10 milliseconds will result in the calendar day being advanced by 2
|
|
// and the time being set to 18 hours, 10 minutes, 10 milliseconds.
|
|
void SetTime(int nHour,int nMinute,int nSecond,int nMillisecond);
|
|
|
|
// Get the current calendar year.
|
|
int GetCalendarYear();
|
|
|
|
// Get the current calendar month.
|
|
int GetCalendarMonth();
|
|
|
|
// Get the current calendar day.
|
|
int GetCalendarDay();
|
|
|
|
// Get the current hour.
|
|
int GetTimeHour();
|
|
|
|
// Get the current minute
|
|
int GetTimeMinute();
|
|
|
|
// Get the current second
|
|
int GetTimeSecond();
|
|
|
|
// Get the current millisecond
|
|
int GetTimeMillisecond();
|
|
|
|
// The action subject will generate a random location near its current location
|
|
// and pathfind to it. All commands will remove a RandomWalk() from the action
|
|
// queue if there is one in place.
|
|
// * No return value, but if an error occurs the log file will contain
|
|
// "ActionRandomWalk failed."
|
|
void ActionRandomWalk();
|
|
|
|
// The action subject will move to lDestination.
|
|
// - lDestination: The object will move to this location. If the location is
|
|
// invalid or a path cannot be found to it, the command does nothing.
|
|
// - bRun: If this is TRUE, the action subject will run rather than walk
|
|
// * No return value, but if an error occurs the log file will contain
|
|
// "MoveToPoint failed."
|
|
void ActionMoveToLocation(location lDestination, int bRun=FALSE);
|
|
|
|
// Cause the action subject to move to a certain distance from oMoveTo.
|
|
// If there is no path to oMoveTo, this command will do nothing.
|
|
// - oMoveTo: This is the object we wish the action subject to move to
|
|
// - bRun: If this is TRUE, the action subject will run rather than walk
|
|
// - fRange: This is the desired distance between the action subject and oMoveTo
|
|
// * No return value, but if an error occurs the log file will contain
|
|
// "ActionMoveToObject failed."
|
|
void ActionMoveToObject(object oMoveTo, int bRun=FALSE, float fRange=1.0f);
|
|
|
|
// Cause the action subject to move to a certain distance away from oFleeFrom.
|
|
// - oFleeFrom: This is the object we wish the action subject to move away from.
|
|
// If oFleeFrom is not in the same area as the action subject, nothing will
|
|
// happen.
|
|
// - bRun: If this is TRUE, the action subject will run rather than walk
|
|
// - fMoveAwayRange: This is the distance we wish the action subject to put
|
|
// between themselves and oFleeFrom
|
|
// * No return value, but if an error occurs the log file will contain
|
|
// "ActionMoveAwayFromObject failed."
|
|
void ActionMoveAwayFromObject(object oFleeFrom, int bRun=FALSE, float fMoveAwayRange=40.0f);
|
|
|
|
// Get the area that oTarget is currently in
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetArea(object oTarget);
|
|
|
|
// The value returned by this function depends on the object type of the caller:
|
|
// 1) If the caller is a door it returns the object that last
|
|
// triggered it.
|
|
// 2) If the caller is a trigger, area of effect, module, area or encounter it
|
|
// returns the object that last entered it.
|
|
// * Return value on error: OBJECT_INVALID
|
|
// When called on doors, this should be called in the OnAreaTransitionClick event.
|
|
// Otherwise it should only be called in OnEnter scripts.
|
|
object GetEnteringObject();
|
|
|
|
// Get the object that last left the caller. This function works on triggers,
|
|
// areas of effect, modules, areas and encounters.
|
|
// * Return value on error: OBJECT_INVALID
|
|
// This should only be called in OnExit scripts.
|
|
object GetExitingObject();
|
|
|
|
// Get the position of oTarget
|
|
// * Return value on error: vector (0.0f, 0.0f, 0.0f)
|
|
vector GetPosition(object oTarget);
|
|
|
|
// Get the direction in which oTarget is facing, expressed as a float between
|
|
// 0.0f and 360.0f
|
|
// * Return value on error: -1.0f
|
|
float GetFacing(object oTarget);
|
|
|
|
// Get the possessor of oItem
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetItemPossessor(object oItem);
|
|
|
|
// Get the object possessed by oCreature with the tag sItemTag
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetItemPossessedBy(object oCreature, string sItemTag);
|
|
|
|
// Create an item with the template sItemTemplate in oTarget's inventory.
|
|
// - nStackSize: This is the stack size of the item to be created
|
|
// * Return value: The object that has been created. On error, this returns
|
|
// OBJECT_INVALID.
|
|
object CreateItemOnObject(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1);
|
|
|
|
// Equip oItem into nInventorySlot.
|
|
// - nInventorySlot: INVENTORY_SLOT_*
|
|
// * No return value, but if an error occurs the log file will contain
|
|
// "ActionEquipItem failed."
|
|
void ActionEquipItem(object oItem, int nInventorySlot);
|
|
|
|
// Unequip oItem from whatever slot it is currently in.
|
|
void ActionUnequipItem(object oItem);
|
|
|
|
// Pick up oItem from the ground.
|
|
// * No return value, but if an error occurs the log file will contain
|
|
// "ActionPickUpItem failed."
|
|
void ActionPickUpItem(object oItem);
|
|
|
|
// Put down oItem on the ground.
|
|
// * No return value, but if an error occurs the log file will contain
|
|
// "ActionPutDownItem failed."
|
|
void ActionPutDownItem(object oItem);
|
|
|
|
// Get the last attacker of oAttackee. This should only be used ONLY in the
|
|
// OnAttacked events for creatures, placeables and doors.
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetLastAttacker(object oAttackee=OBJECT_SELF);
|
|
|
|
// Attack oAttackee.
|
|
// - bPassive: If this is TRUE, attack is in passive mode.
|
|
void ActionAttack(object oAttackee, int bPassive=FALSE);
|
|
|
|
// Get the creature nearest to oTarget, subject to all the criteria specified.
|
|
// - nFirstCriteriaType: CREATURE_TYPE_*
|
|
// - nFirstCriteriaValue:
|
|
// -> CLASS_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_CLASS
|
|
// -> SPELL_* if nFirstCriteriaType was CREATURE_TYPE_DOES_NOT_HAVE_SPELL_EFFECT
|
|
// or CREATURE_TYPE_HAS_SPELL_EFFECT
|
|
// -> TRUE or FALSE if nFirstCriteriaType was CREATURE_TYPE_IS_ALIVE
|
|
// -> PERCEPTION_* if nFirstCriteriaType was CREATURE_TYPE_PERCEPTION
|
|
// -> PLAYER_CHAR_IS_PC or PLAYER_CHAR_NOT_PC if nFirstCriteriaType was
|
|
// CREATURE_TYPE_PLAYER_CHAR
|
|
// -> RACIAL_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_RACIAL_TYPE
|
|
// -> REPUTATION_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_REPUTATION
|
|
// For example, to get the nearest PC, use:
|
|
// (CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC)
|
|
// - oTarget: We're trying to find the creature of the specified type that is
|
|
// nearest to oTarget
|
|
// - nNth: We don't have to find the first nearest: we can find the Nth nearest...
|
|
// - nSecondCriteriaType: This is used in the same way as nFirstCriteriaType to
|
|
// further specify the type of creature that we are looking for.
|
|
// - nSecondCriteriaValue: This is used in the same way as nFirstCriteriaValue
|
|
// to further specify the type of creature that we are looking for.
|
|
// - nThirdCriteriaType: This is used in the same way as nFirstCriteriaType to
|
|
// further specify the type of creature that we are looking for.
|
|
// - nThirdCriteriaValue: This is used in the same way as nFirstCriteriaValue to
|
|
// further specify the type of creature that we are looking for.
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetNearestCreature(int nFirstCriteriaType, int nFirstCriteriaValue, object oTarget=OBJECT_SELF, int nNth=1, int nSecondCriteriaType=-1, int nSecondCriteriaValue=-1, int nThirdCriteriaType=-1, int nThirdCriteriaValue=-1 );
|
|
|
|
// Add a speak action to the action subject.
|
|
// - sStringToSpeak: String to be spoken
|
|
// - nTalkVolume: TALKVOLUME_*
|
|
void ActionSpeakString(string sStringToSpeak, int nTalkVolume=TALKVOLUME_TALK);
|
|
|
|
// Cause the action subject to play an animation
|
|
// - nAnimation: ANIMATION_*
|
|
// - fSpeed: Speed of the animation
|
|
// - fDurationSeconds: Duration of the animation (this is not used for Fire and
|
|
// Forget animations)
|
|
void ActionPlayAnimation(int nAnimation, float fSpeed=1.0, float fDurationSeconds=0.0);
|
|
|
|
// Get the distance from the caller to oObject in metres.
|
|
// * Return value on error: -1.0f
|
|
float GetDistanceToObject(object oObject);
|
|
|
|
// * Returns TRUE if oObject is a valid object.
|
|
int GetIsObjectValid(object oObject);
|
|
|
|
// Cause the action subject to open oDoor
|
|
void ActionOpenDoor(object oDoor);
|
|
|
|
// Cause the action subject to close oDoor
|
|
void ActionCloseDoor(object oDoor);
|
|
|
|
// Change the direction in which the camera is facing
|
|
// - fDirection is expressed as anticlockwise degrees from Due East.
|
|
// (0.0f=East, 90.0f=North, 180.0f=West, 270.0f=South)
|
|
// A value of -1.0f for any parameter will be ignored and instead it will
|
|
// use the current camera value.
|
|
// This can be used to change the way the camera is facing after the player
|
|
// emerges from an area transition.
|
|
// - nTransitionType: CAMERA_TRANSITION_TYPE_* SNAP will immediately move the
|
|
// camera to the new position, while the other types will result in the camera moving gradually into position
|
|
void SetCameraFacing(float fDirection, float fDistance = -1.0f, float fPitch = -1.0, int nTransitionType=CAMERA_TRANSITION_TYPE_SNAP);
|
|
|
|
|
|
// Play sSoundName
|
|
// - sSoundName: TBD - SS
|
|
// This will play a mono sound from the location of the object running the command.
|
|
void PlaySound(string sSoundName);
|
|
|
|
// Get the object at which the caller last cast a spell
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetSpellTargetObject();
|
|
|
|
// This action casts a spell at oTarget.
|
|
// - nSpell: SPELL_*
|
|
// - oTarget: Target for the spell
|
|
// - nMetamagic: METAMAGIC_*
|
|
// - bCheat: If this is TRUE, then the executor of the action doesn't have to be
|
|
// able to cast the spell.
|
|
// - nDomainLevel: TBD - SS
|
|
// - nProjectilePathType: PROJECTILE_PATH_TYPE_*
|
|
// - bInstantSpell: If this is TRUE, the spell is cast immediately. This allows
|
|
// the end-user to simulate a high-level magic-user having lots of advance
|
|
// warning of impending trouble
|
|
void ActionCastSpellAtObject(int nSpell, object oTarget, int nMetaMagic=METAMAGIC_ANY, int bCheat=FALSE, int nDomainLevel=0, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT, int bInstantSpell=FALSE);
|
|
|
|
// Get the current hitpoints of oObject
|
|
// * Return value on error: 0
|
|
int GetCurrentHitPoints(object oObject=OBJECT_SELF);
|
|
|
|
// Get the maximum hitpoints of oObject
|
|
// * Return value on error: 0
|
|
int GetMaxHitPoints(object oObject=OBJECT_SELF);
|
|
|
|
// Get oObject's local integer variable sVarName
|
|
// * Return value on error: 0
|
|
int GetLocalInt(object oObject, string sVarName);
|
|
|
|
// Get oObject's local float variable sVarName
|
|
// * Return value on error: 0.0f
|
|
float GetLocalFloat(object oObject, string sVarName);
|
|
|
|
// Get oObject's local string variable sVarName
|
|
// * Return value on error: ""
|
|
string GetLocalString(object oObject, string sVarName);
|
|
|
|
// Get oObject's local object variable sVarName
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetLocalObject(object oObject, string sVarName);
|
|
|
|
// Set oObject's local integer variable sVarName to nValue
|
|
void SetLocalInt(object oObject, string sVarName, int nValue);
|
|
|
|
// Set oObject's local float variable sVarName to nValue
|
|
void SetLocalFloat(object oObject, string sVarName, float fValue);
|
|
|
|
// Set oObject's local string variable sVarName to nValue
|
|
void SetLocalString(object oObject, string sVarName, string sValue);
|
|
|
|
// Set oObject's local object variable sVarName to nValue
|
|
void SetLocalObject(object oObject, string sVarName, object oValue);
|
|
|
|
// Get the length of sString
|
|
// * Return value on error: -1
|
|
int GetStringLength(string sString);
|
|
|
|
// Convert sString into upper case
|
|
// * Return value on error: ""
|
|
string GetStringUpperCase(string sString);
|
|
|
|
// Convert sString into lower case
|
|
// * Return value on error: ""
|
|
string GetStringLowerCase(string sString);
|
|
|
|
// Get nCount characters from the right end of sString
|
|
// * Return value on error: ""
|
|
string GetStringRight(string sString, int nCount);
|
|
|
|
// Get nCounter characters from the left end of sString
|
|
// * Return value on error: ""
|
|
string GetStringLeft(string sString, int nCount);
|
|
|
|
// Insert sString into sDestination at nPosition
|
|
// * Return value on error: ""
|
|
string InsertString(string sDestination, string sString, int nPosition);
|
|
|
|
// Get nCount characters from sString, starting at nStart
|
|
// * Return value on error: ""
|
|
string GetSubString(string sString, int nStart, int nCount);
|
|
|
|
// Find the position of sSubstring inside sString
|
|
int FindSubString(string sString, string sSubString);
|
|
// * Return value on error: -1
|
|
|
|
// math operations
|
|
|
|
// Maths operation: absolute value of fValue
|
|
float fabs(float fValue);
|
|
|
|
// Maths operation: cosine of fValue
|
|
float cos(float fValue);
|
|
|
|
// Maths operation: sine of fValue
|
|
float sin(float fValue);
|
|
|
|
// Maths operation: tan of fValue
|
|
float tan(float fValue);
|
|
|
|
// Maths operation: arccosine of fValue
|
|
// * Returns zero if fValue > 1 or fValue < -1
|
|
float acos(float fValue);
|
|
|
|
// Maths operation: arcsine of fValue
|
|
// * Returns zero if fValue >1 or fValue < -1
|
|
float asin(float fValue);
|
|
|
|
// Maths operation: arctan of fValue
|
|
float atan(float fValue);
|
|
|
|
// Maths operation: log of fValue
|
|
// * Returns zero if fValue <= zero
|
|
float log(float fValue);
|
|
|
|
// Maths operation: fValue is raised to the power of fExponent
|
|
// * Returns zero if fValue ==0 and fExponent <0
|
|
float pow(float fValue, float fExponent);
|
|
|
|
// Maths operation: square root of fValue
|
|
// * Returns zero if fValue <0
|
|
float sqrt(float fValue);
|
|
|
|
// Maths operation: integer absolute value of nValue
|
|
// * Return value on error: 0
|
|
int abs(int nValue);
|
|
|
|
// Create a Heal effect. This should be applied as an instantaneous effect.
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nDamageToHeal < 0.
|
|
effect EffectHeal(int nDamageToHeal);
|
|
|
|
// Create a Damage effect
|
|
// - nDamageAmount: amount of damage to be dealt. This should be applied as an
|
|
// instantaneous effect.
|
|
// - nDamageType: DAMAGE_TYPE_*
|
|
// - nDamagePower: DAMAGE_POWER_*
|
|
effect EffectDamage(int nDamageAmount, int nDamageType=DAMAGE_TYPE_MAGICAL, int nDamagePower=DAMAGE_POWER_NORMAL);
|
|
|
|
// Create an Ability Increase effect
|
|
// - bAbilityToIncrease: ABILITY_*
|
|
effect EffectAbilityIncrease(int nAbilityToIncrease, int nModifyBy);
|
|
|
|
// Create a Damage Resistance effect that removes the first nAmount points of
|
|
// damage of type nDamageType, up to nLimit (or infinite if nLimit is 0)
|
|
// - nDamageType: DAMAGE_TYPE_*
|
|
// - nAmount
|
|
// - nLimit
|
|
effect EffectDamageResistance(int nDamageType, int nAmount, int nLimit=0);
|
|
|
|
// Create a Resurrection effect. This should be applied as an instantaneous effect.
|
|
effect EffectResurrection();
|
|
|
|
// Create a Summon Creature effect. The creature is created and placed into the
|
|
// caller's party/faction.
|
|
// - sCreatureResref: Identifies the creature to be summoned
|
|
// - nVisualEffectId: VFX_*
|
|
// - fDelaySeconds: There can be delay between the visual effect being played, and the
|
|
// creature being added to the area
|
|
effect EffectSummonCreature(string sCreatureResref, int nVisualEffectId=VFX_NONE, float fDelaySeconds=0.0f);
|
|
|
|
// Get the Caster Level of oCreature.
|
|
// * Return value on error: 0;
|
|
int GetCasterLevel(object oCreature);
|
|
|
|
// Get the first in-game effect on oCreature.
|
|
effect GetFirstEffect(object oCreature);
|
|
|
|
// Get the next in-game effect on oCreature.
|
|
effect GetNextEffect(object oCreature);
|
|
|
|
// Remove eEffect from oCreature.
|
|
// * No return value
|
|
void RemoveEffect(object oCreature, effect eEffect);
|
|
|
|
// * Returns TRUE if eEffect is a valid effect.
|
|
int GetIsEffectValid(effect eEffect);
|
|
|
|
// Get the duration type (DURATION_TYPE_*) of eEffect.
|
|
// * Return value if eEffect is not valid: -1
|
|
int GetEffectDurationType(effect eEffect);
|
|
|
|
// Get the subtype (SUBTYPE_*) of eEffect.
|
|
// * Return value on error: 0
|
|
int GetEffectSubType(effect eEffect);
|
|
|
|
// Get the object that created eEffect.
|
|
// * Returns OBJECT_INVALID if eEffect is not a valid effect.
|
|
object GetEffectCreator(effect eEffect);
|
|
|
|
// Convert nInteger into a string.
|
|
// * Return value on error: ""
|
|
string IntToString(int nInteger);
|
|
|
|
// Get the first object in oArea.
|
|
// If no valid area is specified, it will use the caller's area.
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetFirstObjectInArea(object oArea=OBJECT_INVALID);
|
|
|
|
// Get the next object in oArea.
|
|
// If no valid area is specified, it will use the caller's area.
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetNextObjectInArea(object oArea=OBJECT_INVALID);
|
|
|
|
// Get the total from rolling (nNumDice x d2 dice).
|
|
// - nNumDice: If this is less than 1, the value 1 will be used.
|
|
int d2(int nNumDice=1);
|
|
|
|
// Get the total from rolling (nNumDice x d3 dice).
|
|
// - nNumDice: If this is less than 1, the value 1 will be used.
|
|
int d3(int nNumDice=1);
|
|
|
|
// Get the total from rolling (nNumDice x d4 dice).
|
|
// - nNumDice: If this is less than 1, the value 1 will be used.
|
|
int d4(int nNumDice=1);
|
|
|
|
// Get the total from rolling (nNumDice x d6 dice).
|
|
// - nNumDice: If this is less than 1, the value 1 will be used.
|
|
int d6(int nNumDice=1);
|
|
|
|
// Get the total from rolling (nNumDice x d8 dice).
|
|
// - nNumDice: If this is less than 1, the value 1 will be used.
|
|
int d8(int nNumDice=1);
|
|
|
|
// Get the total from rolling (nNumDice x d10 dice).
|
|
// - nNumDice: If this is less than 1, the value 1 will be used.
|
|
int d10(int nNumDice=1);
|
|
|
|
// Get the total from rolling (nNumDice x d12 dice).
|
|
// - nNumDice: If this is less than 1, the value 1 will be used.
|
|
int d12(int nNumDice=1);
|
|
|
|
// Get the total from rolling (nNumDice x d20 dice).
|
|
// - nNumDice: If this is less than 1, the value 1 will be used.
|
|
int d20(int nNumDice=1);
|
|
|
|
// Get the total from rolling (nNumDice x d100 dice).
|
|
// - nNumDice: If this is less than 1, the value 1 will be used.
|
|
int d100(int nNumDice=1);
|
|
|
|
// Get the magnitude of vVector; this can be used to determine the
|
|
// distance between two points.
|
|
// * Return value on error: 0.0f
|
|
float VectorMagnitude(vector vVector);
|
|
|
|
// Get the metamagic type (METAMAGIC_*) of the last spell cast by the caller
|
|
// * Return value if the caster is not a valid object: -1
|
|
int GetMetaMagicFeat();
|
|
|
|
// Get the object type (OBJECT_TYPE_*) of oTarget
|
|
// * Return value if oTarget is not a valid object: -1
|
|
int GetObjectType(object oTarget);
|
|
|
|
// Get the racial type (RACIAL_TYPE_*) of oCreature
|
|
// * Return value if oCreature is not a valid creature: RACIAL_TYPE_INVALID
|
|
int GetRacialType(object oCreature);
|
|
|
|
// Do a Fortitude Save check for the given DC
|
|
// - oCreature
|
|
// - nDC: Difficulty check
|
|
// - nSaveType: SAVING_THROW_TYPE_*
|
|
// - oSaveVersus
|
|
// Returns: 0 if the saving throw roll failed
|
|
// Returns: 1 if the saving throw roll succeeded
|
|
// Returns: 2 if the target was immune to the save type specified
|
|
int FortitudeSave(object oCreature, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus=OBJECT_SELF);
|
|
|
|
// Does a Reflex Save check for the given DC
|
|
// - oCreature
|
|
// - nDC: Difficulty check
|
|
// - nSaveType: SAVING_THROW_TYPE_*
|
|
// - oSaveVersus
|
|
// Returns: 0 if the saving throw roll failed
|
|
// Returns: 1 if the saving throw roll succeeded
|
|
// Returns: 2 if the target was immune to the save type specified
|
|
int ReflexSave(object oCreature, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus=OBJECT_SELF);
|
|
|
|
// Does a Will Save check for the given DC
|
|
// - oCreature
|
|
// - nDC: Difficulty check
|
|
// - nSaveType: SAVING_THROW_TYPE_*
|
|
// - oSaveVersus
|
|
// Returns: 0 if the saving throw roll failed
|
|
// Returns: 1 if the saving throw roll succeeded
|
|
// Returns: 2 if the target was immune to the save type specified
|
|
int WillSave(object oCreature, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus=OBJECT_SELF);
|
|
|
|
// Get the DC to save against for a spell (10 + spell level + relevant ability
|
|
// bonus). This can be called by a creature or by an Area of Effect object.
|
|
int GetSpellSaveDC();
|
|
|
|
// Set the subtype of eEffect to Magical and return eEffect.
|
|
// (Effects default to magical if the subtype is not set)
|
|
effect MagicalEffect(effect eEffect);
|
|
|
|
// Set the subtype of eEffect to Supernatural and return eEffect.
|
|
// (Effects default to magical if the subtype is not set)
|
|
effect SupernaturalEffect(effect eEffect);
|
|
|
|
// Set the subtype of eEffect to Extraordinary and return eEffect.
|
|
// (Effects default to magical if the subtype is not set)
|
|
effect ExtraordinaryEffect(effect eEffect);
|
|
|
|
// Create an AC Increase effect
|
|
// - nValue: size of AC increase
|
|
// - nModifyType: AC_*_BONUS
|
|
// - nDamageType: DAMAGE_TYPE_*
|
|
// * Default value for nDamageType should only ever be used in this function prototype.
|
|
effect EffectACIncrease(int nValue, int nModifyType=AC_DODGE_BONUS, int nDamageType=AC_VS_DAMAGE_TYPE_ALL);
|
|
|
|
// If oObject is a creature, this will return that creature's armour class
|
|
// If oObject is an item, door or placeable, this will return zero.
|
|
// - nForFutureUse: this parameter is not currently used
|
|
// * Return value if oObject is not a creature, item, door or placeable: -1
|
|
int GetAC(object oObject, int nForFutureUse=0);
|
|
|
|
// Create an AC Decrease effect
|
|
// - nSave: SAVING_THROW_* (not SAVING_THROW_TYPE_*)
|
|
// - nValue: size of AC decrease
|
|
// - nSaveType: SAVING_THROW_TYPE_*
|
|
effect EffectSavingThrowIncrease(int nSave, int nValue, int nSaveType=SAVING_THROW_TYPE_ALL);
|
|
|
|
// Create an Attack Increase effect
|
|
// - nBonus: size of attack bonus
|
|
// - nModifierType: ATTACK_BONUS_*
|
|
effect EffectAttackIncrease(int nBonus, int nModifierType=ATTACK_BONUS_MISC);
|
|
|
|
// Create a Damage Reduction effect
|
|
// - nAmount: amount of damage reduction
|
|
// - nDamagePower: DAMAGE_POWER_*
|
|
// - nLimit: How much damage the effect can absorb before disappearing.
|
|
// Set to zero for infinite
|
|
effect EffectDamageReduction(int nAmount, int nDamagePower, int nLimit=0);
|
|
|
|
// Create a Damage Increase effect
|
|
// - nBonus: DAMAGE_BONUS_*
|
|
// - nDamageType: DAMAGE_TYPE_*
|
|
effect EffectDamageIncrease(int nBonus, int nDamageType=DAMAGE_TYPE_MAGICAL);
|
|
|
|
// Convert nRounds into a number of seconds
|
|
// A round is always 6.0 seconds
|
|
float RoundsToSeconds(int nRounds);
|
|
|
|
// Convert nHours into a number of seconds
|
|
// The result will depend on how many minutes there are per hour (game-time)
|
|
float HoursToSeconds(int nHours);
|
|
|
|
// Convert nTurns into a number of seconds
|
|
// A turn is always 60.0 seconds
|
|
float TurnsToSeconds(int nTurns);
|
|
|
|
// Get an integer between 0 and 100 (inclusive) to represent oCreature's
|
|
// Law/Chaos alignment
|
|
// (100=law, 0=chaos)
|
|
// * Return value if oCreature is not a valid creature: -1
|
|
int GetLawChaosValue(object oCreature);
|
|
|
|
// Get an integer between 0 and 100 (inclusive) to represent oCreature's
|
|
// Good/Evil alignment
|
|
// (100=good, 0=evil)
|
|
// * Return value if oCreature is not a valid creature: -1
|
|
int GetGoodEvilValue(object oCreature);
|
|
|
|
// Return an ALIGNMENT_* constant to represent oCreature's law/chaos alignment
|
|
// * Return value if oCreature is not a valid creature: -1
|
|
int GetAlignmentLawChaos(object oCreature);
|
|
|
|
// Return an ALIGNMENT_* constant to represent oCreature's good/evil alignment
|
|
// * Return value if oCreature is not a valid creature: -1
|
|
int GetAlignmentGoodEvil(object oCreature);
|
|
|
|
// Get the first object in nShape
|
|
// - nShape: SHAPE_*
|
|
// - fSize:
|
|
// -> If nShape == SHAPE_SPHERE, this is the radius of the sphere
|
|
// -> If nShape == SHAPE_SPELLCYLINDER, this is the radius of the cylinder
|
|
// -> If nShape == SHAPE_CONE, this is the widest radius of the cone
|
|
// -> If nShape == SHAPE_CUBE, this is half the length of one of the sides of
|
|
// the cube
|
|
// - lTarget: This is the centre of the effect, usually GetSpellTargetPosition(),
|
|
// or the end of a cylinder or cone.
|
|
// - bLineOfSight: This controls whether to do a line-of-sight check on the
|
|
// object returned.
|
|
// (This can be used to ensure that spell effects do not go through walls.)
|
|
// - nObjectFilter: This allows you to filter out undesired object types, using
|
|
// bitwise "or".
|
|
// For example, to return only creatures and doors, the value for this
|
|
// parameter would be OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR
|
|
// - vOrigin: This is only used for cylinders and cones, and specifies the
|
|
// origin of the effect(normally the spell-caster's position).
|
|
// Return value on error: OBJECT_INVALID
|
|
object GetFirstObjectInShape(int nShape, float fSize, location lTarget, int bLineOfSight=FALSE, int nObjectFilter=OBJECT_TYPE_CREATURE, vector vOrigin=[0.0,0.0,0.0]);
|
|
|
|
// Get the next object in nShape
|
|
// - nShape: SHAPE_*
|
|
// - fSize:
|
|
// -> If nShape == SHAPE_SPHERE, this is the radius of the sphere
|
|
// -> If nShape == SHAPE_SPELLCYLINDER, this is the radius of the cylinder
|
|
// -> If nShape == SHAPE_CONE, this is the widest radius of the cone
|
|
// -> If nShape == SHAPE_CUBE, this is half the length of one of the sides of
|
|
// the cube
|
|
// - lTarget: This is the centre of the effect, usually GetSpellTargetPosition(),
|
|
// or the end of a cylinder or cone.
|
|
// - bLineOfSight: This controls whether to do a line-of-sight check on the
|
|
// object returned. (This can be used to ensure that spell effects do not go
|
|
// through walls.)
|
|
// - nObjectFilter: This allows you to filter out undesired object types, using
|
|
// bitwise "or". For example, to return only creatures and doors, the value for
|
|
// this parameter would be OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR
|
|
// - vOrigin: This is only used for cylinders and cones, and specifies the origin
|
|
// of the effect (normally the spell-caster's position).
|
|
// Return value on error: OBJECT_INVALID
|
|
object GetNextObjectInShape(int nShape, float fSize, location lTarget, int bLineOfSight=FALSE, int nObjectFilter=OBJECT_TYPE_CREATURE, vector vOrigin=[0.0,0.0,0.0]);
|
|
|
|
// Create an Entangle effect
|
|
// When applied, this effect will restrict the creature's movement and apply a
|
|
// (-2) to all attacks and a -4 to AC.
|
|
effect EffectEntangle();
|
|
|
|
// Cause oObject to run evToRun
|
|
void SignalEvent(object oObject, event evToRun);
|
|
|
|
// Create an event of the type nUserDefinedEventNumber
|
|
event EventUserDefined(int nUserDefinedEventNumber);
|
|
|
|
// Create a Death effect
|
|
// - nSpectacularDeath: if this is TRUE, the creature to which this effect is
|
|
// applied will die in an extraordinary fashion
|
|
// - nDisplayFeedback
|
|
effect EffectDeath(int nSpectacularDeath=FALSE, int nDisplayFeedback=TRUE);
|
|
|
|
// Create a Knockdown effect
|
|
// This effect knocks creatures off their feet, they will sit until the effect
|
|
// is removed. This should be applied as a temporary effect with a 3 second
|
|
// duration minimum (1 second to fall, 1 second sitting, 1 second to get up).
|
|
effect EffectKnockdown();
|
|
|
|
// Give oItem to oGiveTo
|
|
// If oItem is not a valid item, or oGiveTo is not a valid object, nothing will
|
|
// happen.
|
|
void ActionGiveItem(object oItem, object oGiveTo);
|
|
|
|
// Take oItem from oTakeFrom
|
|
// If oItem is not a valid item, or oTakeFrom is not a valid object, nothing
|
|
// will happen.
|
|
void ActionTakeItem(object oItem, object oTakeFrom);
|
|
|
|
// Normalize vVector
|
|
vector VectorNormalize(vector vVector);
|
|
|
|
// Create a Curse effect.
|
|
// - nStrMod: strength modifier
|
|
// - nDexMod: dexterity modifier
|
|
// - nConMod: constitution modifier
|
|
// - nIntMod: intelligence modifier
|
|
// - nWisMod: wisdom modifier
|
|
// - nChaMod: charisma modifier
|
|
effect EffectCurse(int nStrMod=1, int nDexMod=1, int nConMod=1, int nIntMod=1, int nWisMod=1, int nChaMod=1);
|
|
|
|
// Get the ability score of type nAbility for a creature (otherwise 0)
|
|
// - oCreature: the creature whose ability score we wish to find out
|
|
// - nAbilityType: ABILITY_*
|
|
// Return value on error: 0
|
|
int GetAbilityScore(object oCreature, int nAbilityType);
|
|
|
|
// * Returns TRUE if oCreature is a dead NPC, dead PC or a dying PC.
|
|
int GetIsDead(object oCreature);
|
|
|
|
// Output vVector to the logfile.
|
|
// - vVector
|
|
// - bPrepend: if this is TRUE, the message will be prefixed with "PRINTVECTOR:"
|
|
void PrintVector(vector vVector, int bPrepend);
|
|
|
|
// Create a vector with the specified values for x, y and z
|
|
vector Vector(float x=0.0f, float y=0.0f, float z=0.0f);
|
|
|
|
// Cause the caller to face vTarget
|
|
void SetFacingPoint(vector vTarget);
|
|
|
|
// Convert fAngle to a vector
|
|
vector AngleToVector(float fAngle);
|
|
|
|
// Convert vVector to an angle
|
|
float VectorToAngle(vector vVector);
|
|
|
|
// The caller will perform a Melee Touch Attack on oTarget
|
|
// This is not an action, and it assumes the caller is already within range of
|
|
// oTarget
|
|
// * Returns 0 on a miss, 1 on a hit and 2 on a critical hit
|
|
int TouchAttackMelee(object oTarget, int bDisplayFeedback=TRUE);
|
|
|
|
// The caller will perform a Ranged Touch Attack on oTarget
|
|
// * Returns 0 on a miss, 1 on a hit and 2 on a critical hit
|
|
int TouchAttackRanged(object oTarget, int bDisplayFeedback=TRUE);
|
|
|
|
// Create a Paralyze effect
|
|
effect EffectParalyze();
|
|
|
|
// Create a Spell Immunity effect.
|
|
// There is a known bug with this function. There *must* be a parameter specified
|
|
// when this is called (even if the desired parameter is SPELL_ALL_SPELLS),
|
|
// otherwise an effect of type EFFECT_TYPE_INVALIDEFFECT will be returned.
|
|
// - nImmunityToSpell: SPELL_*
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nImmunityToSpell is
|
|
// invalid.
|
|
effect EffectSpellImmunity(int nImmunityToSpell=SPELL_ALL_SPELLS);
|
|
|
|
// Create a Deaf effect
|
|
effect EffectDeaf();
|
|
|
|
// Get the distance in metres between oObjectA and oObjectB.
|
|
// * Return value if either object is invalid: 0.0f
|
|
float GetDistanceBetween(object oObjectA, object oObjectB);
|
|
|
|
// Set oObject's local location variable sVarname to lValue
|
|
void SetLocalLocation(object oObject, string sVarName, location lValue);
|
|
|
|
// Get oObject's local location variable sVarname
|
|
location GetLocalLocation(object oObject, string sVarName);
|
|
|
|
// Create a Sleep effect
|
|
effect EffectSleep();
|
|
|
|
// Get the object which is in oCreature's specified inventory slot
|
|
// - nInventorySlot: INVENTORY_SLOT_*
|
|
// - oCreature
|
|
// * Returns OBJECT_INVALID if oCreature is not a valid creature or there is no
|
|
// item in nInventorySlot.
|
|
object GetItemInSlot(int nInventorySlot, object oCreature=OBJECT_SELF);
|
|
|
|
// Create a Charm effect
|
|
effect EffectCharmed();
|
|
|
|
// Create a Confuse effect
|
|
effect EffectConfused();
|
|
|
|
// Create a Frighten effect
|
|
effect EffectFrightened();
|
|
|
|
// Create a Dominate effect
|
|
effect EffectDominated();
|
|
|
|
// Create a Daze effect
|
|
effect EffectDazed();
|
|
|
|
// Create a Stun effect
|
|
effect EffectStunned();
|
|
|
|
// Set whether oTarget's action stack can be modified
|
|
void SetCommandable(int bCommandable, object oTarget=OBJECT_SELF);
|
|
|
|
// Determine whether oTarget's action stack can be modified.
|
|
int GetCommandable(object oTarget=OBJECT_SELF);
|
|
|
|
// Create a Regenerate effect.
|
|
// - nAmount: amount of damage to be regenerated per time interval
|
|
// - fIntervalSeconds: length of interval in seconds
|
|
effect EffectRegenerate(int nAmount, float fIntervalSeconds);
|
|
|
|
// Create a Movement Speed Increase effect.
|
|
// - nPercentChange: percentage change in movement speed
|
|
effect EffectMovementSpeedIncrease(int nPercentChange);
|
|
|
|
// Get the number of hitdice for oCreature.
|
|
// * Return value if oCreature is not a valid creature: 0
|
|
int GetHitDice(object oCreature);
|
|
|
|
// The action subject will follow oFollow until a ClearAllActions() is called.
|
|
// - oFollow: this is the object to be followed
|
|
// - fFollowDistance: follow distance in metres
|
|
// * No return value
|
|
void ActionForceFollowObject(object oFollow, float fFollowDistance=0.0f);
|
|
|
|
// Get the Tag of oObject
|
|
// * Return value if oObject is not a valid object: ""
|
|
string GetTag(object oObject);
|
|
|
|
// Do a Spell Resistance check between oCaster and oTarget, returning TRUE if
|
|
// the spell was resisted.
|
|
// * Return value if oCaster or oTarget is an invalid object: FALSE
|
|
int ResistSpell(object oCaster, object oTarget);
|
|
|
|
// Get the effect type (EFFECT_TYPE_*) of eEffect.
|
|
// * Return value if eEffect is invalid: EFFECT_INVALIDEFFECT
|
|
int GetEffectType(effect eEffect);
|
|
|
|
// Create an Area Of Effect effect in the area of the creature it is applied to.
|
|
// If the scripts are not specified, default ones will be used.
|
|
effect EffectAreaOfEffect(int nAreaEffectId, string sOnEnterScript="", string sHeartbeatScript="", string sOnExitScript="");
|
|
|
|
// * Returns TRUE if the Faction Ids of the two objects are the same
|
|
int GetFactionEqual(object oFirstObject, object oSecondObject=OBJECT_SELF);
|
|
|
|
// Make oObjectToChangeFaction join the faction of oMemberOfFactionToJoin.
|
|
// NB. ** This will only work for two NPCs **
|
|
void ChangeFaction(object oObjectToChangeFaction, object oMemberOfFactionToJoin);
|
|
|
|
// * Returns TRUE if oObject is listening for something
|
|
int GetIsListening(object oObject);
|
|
|
|
// Set whether oObject is listening.
|
|
void SetListening(object oObject, int bValue);
|
|
|
|
// Set the string for oObject to listen for.
|
|
// Note: this does not set oObject to be listening.
|
|
void SetListenPattern(object oObject, string sPattern, int nNumber=0);
|
|
|
|
// * Returns TRUE if sStringToTest matches sPattern.
|
|
int TestStringAgainstPattern(string sPattern, string sStringToTest);
|
|
|
|
// Get the appropriate matched string (this should only be used in
|
|
// OnConversation scripts).
|
|
// * Returns the appropriate matched string, otherwise returns ""
|
|
string GetMatchedSubstring(int nString);
|
|
|
|
// Get the number of string parameters available.
|
|
// * Returns -1 if no string matched (this could be because of a dialogue event)
|
|
int GetMatchedSubstringsCount();
|
|
|
|
// * Create a Visual Effect that can be applied to an object.
|
|
// - nVisualEffectId
|
|
// - nMissEffect: if this is TRUE, a random vector near or past the target will
|
|
// be generated, on which to play the effect
|
|
effect EffectVisualEffect(int nVisualEffectId, int nMissEffect=FALSE);
|
|
|
|
// Get the weakest member of oFactionMember's faction.
|
|
// * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
|
|
object GetFactionWeakestMember(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
|
|
|
|
// Get the strongest member of oFactionMember's faction.
|
|
// * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
|
|
object GetFactionStrongestMember(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
|
|
|
|
// Get the member of oFactionMember's faction that has taken the most hit points
|
|
// of damage.
|
|
// * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
|
|
object GetFactionMostDamagedMember(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
|
|
|
|
// Get the member of oFactionMember's faction that has taken the fewest hit
|
|
// points of damage.
|
|
// * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
|
|
object GetFactionLeastDamagedMember(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
|
|
|
|
// Get the amount of gold held by oFactionMember's faction.
|
|
// * Returns -1 if oFactionMember's faction is invalid.
|
|
int GetFactionGold(object oFactionMember);
|
|
|
|
// Get an integer between 0 and 100 (inclusive) that represents how
|
|
// oSourceFactionMember's faction feels about oTarget.
|
|
// * Return value on error: -1
|
|
int GetFactionAverageReputation(object oSourceFactionMember, object oTarget);
|
|
|
|
// Get an integer between 0 and 100 (inclusive) that represents the average
|
|
// good/evil alignment of oFactionMember's faction.
|
|
// * Return value on error: -1
|
|
int GetFactionAverageGoodEvilAlignment(object oFactionMember);
|
|
|
|
// Get an integer between 0 and 100 (inclusive) that represents the average
|
|
// law/chaos alignment of oFactionMember's faction.
|
|
// * Return value on error: -1
|
|
int GetFactionAverageLawChaosAlignment(object oFactionMember);
|
|
|
|
// Get the average level of the members of the faction.
|
|
// * Return value on error: -1
|
|
int GetFactionAverageLevel(object oFactionMember);
|
|
|
|
// Get the average XP of the members of the faction.
|
|
// * Return value on error: -1
|
|
int GetFactionAverageXP(object oFactionMember);
|
|
|
|
// Get the most frequent class in the faction - this can be compared with the
|
|
// constants CLASS_TYPE_*.
|
|
// * Return value on error: -1
|
|
int GetFactionMostFrequentClass(object oFactionMember);
|
|
|
|
// Get the object faction member with the lowest armour class.
|
|
// * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
|
|
object GetFactionWorstAC(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
|
|
|
|
// Get the object faction member with the highest armour class.
|
|
// * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
|
|
object GetFactionBestAC(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
|
|
|
|
// Sit in oChair.
|
|
// Note: not all creatures will be able to sit.
|
|
void ActionSit(object oChair);
|
|
|
|
// In an onConversation script this gets the number of the string pattern
|
|
// matched (the one that triggered the script).
|
|
// * Returns -1 if no string matched
|
|
int GetListenPatternNumber();
|
|
|
|
// Jump to an object ID, or as near to it as possible.
|
|
void ActionJumpToObject(object oToJumpTo, int bWalkStraightLineToPoint=TRUE);
|
|
|
|
// Get the first waypoint with the specified tag.
|
|
// * Returns OBJECT_INVALID if the waypoint cannot be found.
|
|
object GetWaypointByTag(string sWaypointTag);
|
|
|
|
// Get the destination (a waypoint or a door) for a trigger or a door.
|
|
// * Returns OBJECT_INVALID if oTransition is not a valid trigger or door.
|
|
object GetTransitionTarget(object oTransition);
|
|
|
|
// Link the two supplied effects, returning eChildEffect as a child of
|
|
// eParentEffect.
|
|
// Note: When applying linked effects if the target is immune to all valid
|
|
// effects all other effects will be removed as well. This means that if you
|
|
// apply a visual effect and a silence effect (in a link) and the target is
|
|
// immune to the silence effect that the visual effect will get removed as well.
|
|
// Visual Effects are not considered "valid" effects for the purposes of
|
|
// determining if an effect will be removed or not and as such should never be
|
|
// packaged *only* with other visual effects in a link.
|
|
effect EffectLinkEffects(effect eChildEffect, effect eParentEffect );
|
|
|
|
// Get the nNth object with the specified tag.
|
|
// - sTag
|
|
// - nNth: the nth object with this tag may be requested
|
|
// * Returns OBJECT_INVALID if the object cannot be found.
|
|
// Note: The module cannot be retrieved by GetObjectByTag(), use GetModule() instead.
|
|
object GetObjectByTag(string sTag, int nNth=0);
|
|
|
|
// Adjust the alignment of oSubject.
|
|
// - oSubject
|
|
// - nAlignment:
|
|
// -> ALIGNMENT_LAWFUL/ALIGNMENT_CHAOTIC/ALIGNMENT_GOOD/ALIGNMENT_EVIL: oSubject's
|
|
// alignment will be shifted in the direction specified
|
|
// -> ALIGNMENT_ALL: nShift will be added to oSubject's law/chaos and
|
|
// good/evil alignment values
|
|
// -> ALIGNMENT_NEUTRAL: nShift is applied to oSubject's law/chaos and
|
|
// good/evil alignment values in the direction which is towards neutrality.
|
|
// e.g. If oSubject has a law/chaos value of 10 (i.e. chaotic) and a
|
|
// good/evil value of 80 (i.e. good) then if nShift is 15, the
|
|
// law/chaos value will become (10+15)=25 and the good/evil value will
|
|
// become (80-25)=55
|
|
// Furthermore, the shift will at most take the alignment value to 50 and
|
|
// not beyond.
|
|
// e.g. If oSubject has a law/chaos value of 40 and a good/evil value of 70,
|
|
// then if nShift is 15, the law/chaos value will become 50 and the
|
|
// good/evil value will become 55
|
|
// - nShift: this is the desired shift in alignment
|
|
// * No return value
|
|
void AdjustAlignment(object oSubject, int nAlignment, int nShift);
|
|
|
|
// Do nothing for fSeconds seconds.
|
|
void ActionWait(float fSeconds);
|
|
|
|
// Set the transition bitmap of a player; this should only be called in area
|
|
// transition scripts. This action should be run by the person "clicking" the
|
|
// area transition via AssignCommand.
|
|
// - nPredefinedAreaTransition:
|
|
// -> To use a predefined area transition bitmap, use one of AREA_TRANSITION_*
|
|
// -> To use a custom, user-defined area transition bitmap, use
|
|
// AREA_TRANSITION_USER_DEFINED and specify the filename in the second
|
|
// parameter
|
|
// - sCustomAreaTransitionBMP: this is the filename of a custom, user-defined
|
|
// area transition bitmap
|
|
void SetAreaTransitionBMP(int nPredefinedAreaTransition, string sCustomAreaTransitionBMP="");
|
|
|
|
// Starts a conversation with oObjectToConverseWith - this will cause their
|
|
// OnDialog event to fire.
|
|
// - oObjectToConverseWith
|
|
// - sDialogResRef: If this is blank, the creature's own dialogue file will be used
|
|
// - bPrivateConversation
|
|
void ActionStartConversation(object oObjectToConverseWith, string sDialogResRef="", int bPrivateConversation=FALSE);
|
|
|
|
// Pause the current conversation.
|
|
void ActionPauseConversation();
|
|
|
|
// Resume a conversation after it has been paused.
|
|
void ActionResumeConversation();
|
|
|
|
// Create a Beam effect.
|
|
// - nBeamVisualEffect: VFX_BEAM_*
|
|
// - oEffector: the beam is emitted from this creature
|
|
// - nBodyPart: BODY_NODE_*
|
|
// - bMissEffect: If this is TRUE, the beam will fire to a random vector near or
|
|
// past the target
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nBeamVisualEffect is
|
|
// not valid.
|
|
effect EffectBeam(int nBeamVisualEffect, object oEffector, int nBodyPart, int bMissEffect=FALSE);
|
|
|
|
// Get an integer between 0 and 100 (inclusive) that represents how oSource
|
|
// feels about oTarget.
|
|
// -> 0-10 means oSource is hostile to oTarget
|
|
// -> 11-89 means oSource is neutral to oTarget
|
|
// -> 90-100 means oSource is friendly to oTarget
|
|
// * Returns -1 if oSource or oTarget does not identify a valid object
|
|
int GetReputation(object oSource, object oTarget);
|
|
|
|
// Adjust how oSourceFactionMember's faction feels about oTarget by the
|
|
// specified amount.
|
|
// Note: This adjusts Faction Reputation, how the entire faction that
|
|
// oSourceFactionMember is in, feels about oTarget.
|
|
// * No return value
|
|
void AdjustReputation(object oTarget, object oSourceFactionMember, int nAdjustment);
|
|
|
|
// Get the creature that is currently sitting on the specified object.
|
|
// - oChair
|
|
// * Returns OBJECT_INVALID if oChair is not a valid placeable.
|
|
object GetSittingCreature(object oChair);
|
|
|
|
// Get the creature that is going to attack oTarget.
|
|
// Note: This value is cleared out at the end of every combat round and should
|
|
// not be used in any case except when getting a "going to be attacked" shout
|
|
// from the master creature (and this creature is a henchman)
|
|
// * Returns OBJECT_INVALID if oTarget is not a valid creature.
|
|
object GetGoingToBeAttackedBy(object oTarget);
|
|
|
|
// Create a Spell Resistance Increase effect.
|
|
// - nValue: size of spell resistance increase
|
|
effect EffectSpellResistanceIncrease(int nValue);
|
|
|
|
// Get the location of oObject.
|
|
location GetLocation(object oObject);
|
|
|
|
// The subject will jump to lLocation instantly (even between areas).
|
|
// If lLocation is invalid, nothing will happen.
|
|
void ActionJumpToLocation(location lLocation);
|
|
|
|
// Create a location.
|
|
location Location(object oArea, vector vPosition, float fOrientation);
|
|
|
|
// Apply eEffect at lLocation.
|
|
void ApplyEffectAtLocation(int nDurationType, effect eEffect, location lLocation, float fDuration=0.0f);
|
|
|
|
// * Returns TRUE if oCreature is a Player Controlled character.
|
|
int GetIsPC(object oCreature);
|
|
|
|
// Convert fFeet into a number of meters.
|
|
float FeetToMeters(float fFeet);
|
|
|
|
// Convert fYards into a number of meters.
|
|
float YardsToMeters(float fYards);
|
|
|
|
// Apply eEffect to oTarget.
|
|
void ApplyEffectToObject(int nDurationType, effect eEffect, object oTarget, float fDuration=0.0f);
|
|
|
|
// The caller will immediately speak sStringToSpeak (this is different from
|
|
// ActionSpeakString)
|
|
// - sStringToSpeak
|
|
// - nTalkVolume: TALKVOLUME_*
|
|
void SpeakString(string sStringToSpeak, int nTalkVolume=TALKVOLUME_TALK);
|
|
|
|
// Get the location of the caller's last spell target.
|
|
location GetSpellTargetLocation();
|
|
|
|
// Get the position vector from lLocation.
|
|
vector GetPositionFromLocation(location lLocation);
|
|
|
|
// Get the area's object ID from lLocation.
|
|
object GetAreaFromLocation(location lLocation);
|
|
|
|
// Get the orientation value from lLocation.
|
|
float GetFacingFromLocation(location lLocation);
|
|
|
|
// Get the creature nearest to lLocation, subject to all the criteria specified.
|
|
// - nFirstCriteriaType: CREATURE_TYPE_*
|
|
// - nFirstCriteriaValue:
|
|
// -> CLASS_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_CLASS
|
|
// -> SPELL_* if nFirstCriteriaType was CREATURE_TYPE_DOES_NOT_HAVE_SPELL_EFFECT
|
|
// or CREATURE_TYPE_HAS_SPELL_EFFECT
|
|
// -> TRUE or FALSE if nFirstCriteriaType was CREATURE_TYPE_IS_ALIVE
|
|
// -> PERCEPTION_* if nFirstCriteriaType was CREATURE_TYPE_PERCEPTION
|
|
// -> PLAYER_CHAR_IS_PC or PLAYER_CHAR_NOT_PC if nFirstCriteriaType was
|
|
// CREATURE_TYPE_PLAYER_CHAR
|
|
// -> RACIAL_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_RACIAL_TYPE
|
|
// -> REPUTATION_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_REPUTATION
|
|
// For example, to get the nearest PC, use
|
|
// (CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC)
|
|
// - lLocation: We're trying to find the creature of the specified type that is
|
|
// nearest to lLocation
|
|
// - nNth: We don't have to find the first nearest: we can find the Nth nearest....
|
|
// - nSecondCriteriaType: This is used in the same way as nFirstCriteriaType to
|
|
// further specify the type of creature that we are looking for.
|
|
// - nSecondCriteriaValue: This is used in the same way as nFirstCriteriaValue
|
|
// to further specify the type of creature that we are looking for.
|
|
// - nThirdCriteriaType: This is used in the same way as nFirstCriteriaType to
|
|
// further specify the type of creature that we are looking for.
|
|
// - nThirdCriteriaValue: This is used in the same way as nFirstCriteriaValue to
|
|
// further specify the type of creature that we are looking for.
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetNearestCreatureToLocation(int nFirstCriteriaType, int nFirstCriteriaValue, location lLocation, int nNth=1, int nSecondCriteriaType=-1, int nSecondCriteriaValue=-1, int nThirdCriteriaType=-1, int nThirdCriteriaValue=-1 );
|
|
|
|
// Get the Nth object nearest to oTarget that is of the specified type.
|
|
// - nObjectType: OBJECT_TYPE_*
|
|
// - oTarget
|
|
// - nNth
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetNearestObject(int nObjectType=OBJECT_TYPE_ALL, object oTarget=OBJECT_SELF, int nNth=1);
|
|
|
|
// Get the nNth object nearest to lLocation that is of the specified type.
|
|
// - nObjectType: OBJECT_TYPE_*
|
|
// - lLocation
|
|
// - nNth
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetNearestObjectToLocation(int nObjectType, location lLocation, int nNth=1);
|
|
|
|
// Get the nth Object nearest to oTarget that has sTag as its tag.
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetNearestObjectByTag(string sTag, object oTarget=OBJECT_SELF, int nNth=1);
|
|
|
|
// Convert nInteger into a floating point number.
|
|
float IntToFloat(int nInteger);
|
|
|
|
// Convert fFloat into the nearest integer.
|
|
int FloatToInt(float fFloat);
|
|
|
|
// Convert sNumber into an integer.
|
|
int StringToInt(string sNumber);
|
|
|
|
// Convert sNumber into a floating point number.
|
|
float StringToFloat(string sNumber);
|
|
|
|
// Cast spell nSpell at lTargetLocation.
|
|
// - nSpell: SPELL_*
|
|
// - lTargetLocation
|
|
// - nMetaMagic: METAMAGIC_*
|
|
// - bCheat: If this is TRUE, then the executor of the action doesn't have to be
|
|
// able to cast the spell.
|
|
// - nProjectilePathType: PROJECTILE_PATH_TYPE_*
|
|
// - bInstantSpell: If this is TRUE, the spell is cast immediately; this allows
|
|
// the end-user to simulate
|
|
// a high-level magic user having lots of advance warning of impending trouble.
|
|
void ActionCastSpellAtLocation(int nSpell, location lTargetLocation, int nMetaMagic=METAMAGIC_ANY, int bCheat=FALSE, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT, int bInstantSpell=FALSE);
|
|
|
|
// * Returns TRUE if oSource considers oTarget as an enemy.
|
|
int GetIsEnemy(object oTarget, object oSource=OBJECT_SELF);
|
|
|
|
// * Returns TRUE if oSource considers oTarget as a friend.
|
|
int GetIsFriend(object oTarget, object oSource=OBJECT_SELF);
|
|
|
|
// * Returns TRUE if oSource considers oTarget as neutral.
|
|
int GetIsNeutral(object oTarget, object oSource=OBJECT_SELF);
|
|
|
|
// Get the PC that is involved in the conversation.
|
|
// * Returns OBJECT_INVALID on error.
|
|
object GetPCSpeaker();
|
|
|
|
// Get a string from the talk table using nStrRef.
|
|
string GetStringByStrRef(int nStrRef);
|
|
|
|
// Causes the creature to speak a translated string.
|
|
// - nStrRef: Reference of the string in the talk table
|
|
// - nTalkVolume: TALKVOLUME_*
|
|
void ActionSpeakStringByStrRef(int nStrRef, int nTalkVolume=TALKVOLUME_TALK);
|
|
|
|
// Destroy oObject (irrevocably).
|
|
// This will not work on modules and areas.
|
|
void DestroyObject(object oDestroy, float fDelay=0.0f);
|
|
|
|
// Get the module.
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetModule();
|
|
|
|
// Create an object of the specified type at lLocation.
|
|
// - nObjectType: OBJECT_TYPE_ITEM, OBJECT_TYPE_CREATURE, OBJECT_TYPE_PLACEABLE,
|
|
// OBJECT_TYPE_STORE
|
|
// - sTemplate
|
|
// - lLocation
|
|
// - bUseAppearAnimation
|
|
object CreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE);
|
|
|
|
// Create an event which triggers the "SpellCastAt" script
|
|
event EventSpellCastAt(object oCaster, int nSpell, int bHarmful=TRUE);
|
|
|
|
// This is for use in a "Spell Cast" script, it gets who cast the spell.
|
|
// The spell could have been cast by a creature, placeable or door.
|
|
// * Returns OBJECT_INVALID if the caller is not a creature, placeable or door.
|
|
object GetLastSpellCaster();
|
|
|
|
// This is for use in a "Spell Cast" script, it gets the ID of the spell that
|
|
// was cast.
|
|
int GetLastSpell();
|
|
|
|
// This is for use in a user-defined script, it gets the event number.
|
|
int GetUserDefinedEventNumber();
|
|
|
|
// This is for use in a Spell script, it gets the ID of the spell that is being
|
|
// cast (SPELL_*).
|
|
int GetSpellId();
|
|
|
|
// Generate a random name.
|
|
string RandomName();
|
|
|
|
// Create a Poison effect.
|
|
// - nPoisonType: POISON_*
|
|
effect EffectPoison(int nPoisonType);
|
|
|
|
// Create a Disease effect.
|
|
// - nDiseaseType: DISEASE_*
|
|
effect EffectDisease(int nDiseaseType);
|
|
|
|
// Create a Silence effect.
|
|
effect EffectSilence();
|
|
|
|
// Get the name of oObject.
|
|
string GetName(object oObject);
|
|
|
|
// Use this in a conversation script to get the person with whom you are conversing.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid creature.
|
|
object GetLastSpeaker();
|
|
|
|
// Use this in an OnDialog script to start up the dialog tree.
|
|
// - sResRef: if this is not specified, the default dialog file will be used
|
|
// - oObjectToDialog: if this is not specified the person that triggered the
|
|
// event will be used
|
|
int BeginConversation(string sResRef="", object oObjectToDialog=OBJECT_INVALID);
|
|
|
|
// Use this in an OnPerception script to get the object that was perceived.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid creature.
|
|
object GetLastPerceived();
|
|
|
|
// Use this in an OnPerception script to determine whether the object that was
|
|
// perceived was heard.
|
|
int GetLastPerceptionHeard();
|
|
|
|
// Use this in an OnPerception script to determine whether the object that was
|
|
// perceived has become inaudible.
|
|
int GetLastPerceptionInaudible();
|
|
|
|
// Use this in an OnPerception script to determine whether the object that was
|
|
// perceived was seen.
|
|
int GetLastPerceptionSeen();
|
|
|
|
// Use this in an OnClosed script to get the object that closed the door or placeable.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid door or placeable.
|
|
object GetLastClosedBy();
|
|
|
|
// Use this in an OnPerception script to determine whether the object that was
|
|
// perceived has vanished.
|
|
int GetLastPerceptionVanished();
|
|
|
|
// Get the first object within oPersistentObject.
|
|
// - oPersistentObject
|
|
// - nResidentObjectType: OBJECT_TYPE_*
|
|
// - nPersistentZone: PERSISTENT_ZONE_ACTIVE. [This could also take the value
|
|
// PERSISTENT_ZONE_FOLLOW, but this is no longer used.]
|
|
// * Returns OBJECT_INVALID if no object is found.
|
|
object GetFirstInPersistentObject(object oPersistentObject=OBJECT_SELF, int nResidentObjectType=OBJECT_TYPE_CREATURE, int nPersistentZone=PERSISTENT_ZONE_ACTIVE);
|
|
|
|
// Get the next object within oPersistentObject.
|
|
// - oPersistentObject
|
|
// - nResidentObjectType: OBJECT_TYPE_*
|
|
// - nPersistentZone: PERSISTENT_ZONE_ACTIVE. [This could also take the value
|
|
// PERSISTENT_ZONE_FOLLOW, but this is no longer used.]
|
|
// * Returns OBJECT_INVALID if no object is found.
|
|
object GetNextInPersistentObject(object oPersistentObject=OBJECT_SELF, int nResidentObjectType=OBJECT_TYPE_CREATURE, int nPersistentZone=PERSISTENT_ZONE_ACTIVE);
|
|
|
|
// This returns the creator of oAreaOfEffectObject.
|
|
// * Returns OBJECT_INVALID if oAreaOfEffectObject is not a valid Area of Effect object.
|
|
object GetAreaOfEffectCreator(object oAreaOfEffectObject=OBJECT_SELF);
|
|
|
|
// Delete oObject's local integer variable sVarName
|
|
void DeleteLocalInt(object oObject, string sVarName);
|
|
|
|
// Delete oObject's local float variable sVarName
|
|
void DeleteLocalFloat(object oObject, string sVarName);
|
|
|
|
// Delete oObject's local string variable sVarName
|
|
void DeleteLocalString(object oObject, string sVarName);
|
|
|
|
// Delete oObject's local object variable sVarName
|
|
void DeleteLocalObject(object oObject, string sVarName);
|
|
|
|
// Delete oObject's local location variable sVarName
|
|
void DeleteLocalLocation(object oObject, string sVarName);
|
|
|
|
// Create a Haste effect.
|
|
effect EffectHaste();
|
|
|
|
// Create a Slow effect.
|
|
effect EffectSlow();
|
|
|
|
// Convert oObject into a hexadecimal string.
|
|
string ObjectToString(object oObject);
|
|
|
|
// Create an Immunity effect.
|
|
// - nImmunityType: IMMUNITY_TYPE_*
|
|
effect EffectImmunity(int nImmunityType);
|
|
|
|
// - oCreature
|
|
// - nImmunityType: IMMUNITY_TYPE_*
|
|
// - oVersus: if this is specified, then we also check for the race and
|
|
// alignment of oVersus
|
|
// * Returns TRUE if oCreature has immunity of type nImmunity versus oVersus.
|
|
int GetIsImmune(object oCreature, int nImmunityType, object oVersus=OBJECT_INVALID);
|
|
|
|
// Creates a Damage Immunity Increase effect.
|
|
// - nDamageType: DAMAGE_TYPE_*
|
|
// - nPercentImmunity
|
|
effect EffectDamageImmunityIncrease(int nDamageType, int nPercentImmunity);
|
|
|
|
// Determine whether oEncounter is active.
|
|
int GetEncounterActive(object oEncounter=OBJECT_SELF);
|
|
|
|
// Set oEncounter's active state to nNewValue.
|
|
// - nNewValue: TRUE/FALSE
|
|
// - oEncounter
|
|
void SetEncounterActive(int nNewValue, object oEncounter=OBJECT_SELF);
|
|
|
|
// Get the maximum number of times that oEncounter will spawn.
|
|
int GetEncounterSpawnsMax(object oEncounter=OBJECT_SELF);
|
|
|
|
// Set the maximum number of times that oEncounter can spawn
|
|
void SetEncounterSpawnsMax(int nNewValue, object oEncounter=OBJECT_SELF);
|
|
|
|
// Get the number of times that oEncounter has spawned so far
|
|
int GetEncounterSpawnsCurrent(object oEncounter=OBJECT_SELF);
|
|
|
|
// Set the number of times that oEncounter has spawned so far
|
|
void SetEncounterSpawnsCurrent(int nNewValue, object oEncounter=OBJECT_SELF);
|
|
|
|
// Use this in an OnItemAcquired script to get the item that was acquired.
|
|
// * Returns OBJECT_INVALID if the module is not valid.
|
|
object GetModuleItemAcquired();
|
|
|
|
// Use this in an OnItemAcquired script to get the creatre that previously
|
|
// possessed the item.
|
|
// * Returns OBJECT_INVALID if the item was picked up from the ground.
|
|
object GetModuleItemAcquiredFrom();
|
|
|
|
// Set the value for a custom token.
|
|
void SetCustomToken(int nCustomTokenNumber, string sTokenValue);
|
|
|
|
// Determine whether oCreature has nFeat, and nFeat is useable.
|
|
// - nFeat: FEAT_*
|
|
// - oCreature
|
|
int GetHasFeat(int nFeat, object oCreature=OBJECT_SELF);
|
|
|
|
// Determine whether oCreature has nSkill, and nSkill is useable.
|
|
// - nSkill: SKILL_*
|
|
// - oCreature
|
|
int GetHasSkill(int nSkill, object oCreature=OBJECT_SELF);
|
|
|
|
// Use nFeat on oTarget.
|
|
// - nFeat: FEAT_*
|
|
// - oTarget
|
|
void ActionUseFeat(int nFeat, object oTarget);
|
|
|
|
// Runs the action "UseSkill" on the current creature
|
|
// Use nSkill on oTarget.
|
|
// - nSkill: SKILL_*
|
|
// - oTarget
|
|
// - nSubSkill: SUBSKILL_*
|
|
// - oItemUsed: Item to use in conjunction with the skill
|
|
void ActionUseSkill(int nSkill, object oTarget, int nSubSkill=0, object oItemUsed=OBJECT_INVALID );
|
|
|
|
// Determine whether oSource sees oTarget.
|
|
int GetObjectSeen(object oTarget, object oSource=OBJECT_SELF);
|
|
|
|
// Determine whether oSource hears oTarget.
|
|
int GetObjectHeard(object oTarget, object oSource=OBJECT_SELF);
|
|
|
|
// Use this in an OnPlayerDeath module script to get the last player that died.
|
|
object GetLastPlayerDied();
|
|
|
|
// Use this in an OnItemLost script to get the item that was lost/dropped.
|
|
// * Returns OBJECT_INVALID if the module is not valid.
|
|
object GetModuleItemLost();
|
|
|
|
// Use this in an OnItemLost script to get the creature that lost the item.
|
|
// * Returns OBJECT_INVALID if the module is not valid.
|
|
object GetModuleItemLostBy();
|
|
|
|
// Do aActionToDo.
|
|
void ActionDoCommand(action aActionToDo);
|
|
|
|
// Conversation event.
|
|
event EventConversation();
|
|
|
|
// Set the difficulty level of oEncounter.
|
|
// - nEncounterDifficulty: ENCOUNTER_DIFFICULTY_*
|
|
// - oEncounter
|
|
void SetEncounterDifficulty(int nEncounterDifficulty, object oEncounter=OBJECT_SELF);
|
|
|
|
// Get the difficulty level of oEncounter.
|
|
int GetEncounterDifficulty(object oEncounter=OBJECT_SELF);
|
|
|
|
// Get the distance between lLocationA and lLocationB.
|
|
float GetDistanceBetweenLocations(location lLocationA, location lLocationB);
|
|
|
|
// Use this in spell scripts to get nDamage adjusted by oTarget's reflex and
|
|
// evasion saves.
|
|
// - nDamage
|
|
// - oTarget
|
|
// - nDC: Difficulty check
|
|
// - nSaveType: SAVING_THROW_TYPE_*
|
|
// - oSaveVersus
|
|
int GetReflexAdjustedDamage(int nDamage, object oTarget, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus=OBJECT_SELF);
|
|
|
|
// Play nAnimation immediately.
|
|
// - nAnimation: ANIMATION_*
|
|
// - fSpeed
|
|
// - fSeconds
|
|
void PlayAnimation(int nAnimation, float fSpeed=1.0, float fSeconds=0.0);
|
|
|
|
// Create a Spell Talent.
|
|
// - nSpell: SPELL_*
|
|
talent TalentSpell(int nSpell);
|
|
|
|
// Create a Feat Talent.
|
|
// - nFeat: FEAT_*
|
|
talent TalentFeat(int nFeat);
|
|
|
|
// Create a Skill Talent.
|
|
// - nSkill: SKILL_*
|
|
talent TalentSkill(int nSkill);
|
|
|
|
// Determine if oObject has effects originating from nSpell.
|
|
// - nSpell: SPELL_*
|
|
// - oObject
|
|
int GetHasSpellEffect(int nSpell, object oObject=OBJECT_SELF);
|
|
|
|
// Get the spell (SPELL_*) that applied eSpellEffect.
|
|
// * Returns -1 if eSpellEffect was applied outside a spell script.
|
|
int GetEffectSpellId(effect eSpellEffect);
|
|
|
|
// Determine whether oCreature has tTalent.
|
|
int GetCreatureHasTalent(talent tTalent, object oCreature=OBJECT_SELF);
|
|
|
|
// Get a random talent of oCreature, within nCategory.
|
|
// - nCategory: TALENT_CATEGORY_*
|
|
// - oCreature
|
|
talent GetCreatureTalentRandom(int nCategory, object oCreature=OBJECT_SELF);
|
|
|
|
// Get the best talent (i.e. closest to nCRMax without going over) of oCreature,
|
|
// within nCategory.
|
|
// - nCategory: TALENT_CATEGORY_*
|
|
// - nCRMax: Challenge Rating of the talent
|
|
// - oCreature
|
|
talent GetCreatureTalentBest(int nCategory, int nCRMax, object oCreature=OBJECT_SELF);
|
|
|
|
// Use tChosenTalent on oTarget.
|
|
void ActionUseTalentOnObject(talent tChosenTalent, object oTarget);
|
|
|
|
// Use tChosenTalent at lTargetLocation.
|
|
void ActionUseTalentAtLocation(talent tChosenTalent, location lTargetLocation);
|
|
|
|
// Get the gold piece value of oItem.
|
|
// * Returns 0 if oItem is not a valid item.
|
|
int GetGoldPieceValue(object oItem);
|
|
|
|
// * Returns TRUE if oCreature is of a playable racial type.
|
|
int GetIsPlayableRacialType(object oCreature);
|
|
|
|
// Jump to lDestination. The action is added to the TOP of the action queue.
|
|
void JumpToLocation(location lDestination);
|
|
|
|
// Create a Temporary Hitpoints effect.
|
|
// - nHitPoints: a positive integer
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nHitPoints < 0.
|
|
effect EffectTemporaryHitpoints(int nHitPoints);
|
|
|
|
// Get the number of ranks that oTarget has in nSkill.
|
|
// - nSkill: SKILL_*
|
|
// - oTarget
|
|
// * Returns -1 if oTarget doesn't have nSkill.
|
|
// * Returns 0 if nSkill is untrained.
|
|
int GetSkillRank(int nSkill, object oTarget=OBJECT_SELF);
|
|
|
|
// Get the attack target of oCreature.
|
|
// This only works when oCreature is in combat.
|
|
object GetAttackTarget(object oCreature=OBJECT_SELF);
|
|
|
|
// Get the attack type (SPECIAL_ATTACK_*) of oCreature's last attack.
|
|
// This only works when oCreature is in combat.
|
|
int GetLastAttackType(object oCreature=OBJECT_SELF);
|
|
|
|
// Get the attack mode (COMBAT_MODE_*) of oCreature's last attack.
|
|
// This only works when oCreature is in combat.
|
|
int GetLastAttackMode(object oCreature=OBJECT_SELF);
|
|
|
|
// Get the master of oAssociate.
|
|
object GetMaster(object oAssociate=OBJECT_SELF);
|
|
|
|
// * Returns TRUE if oCreature is in combat.
|
|
int GetIsInCombat(object oCreature=OBJECT_SELF);
|
|
|
|
// Get the last command (ASSOCIATE_COMMAND_*) issued to oAssociate.
|
|
int GetLastAssociateCommand(object oAssociate=OBJECT_SELF);
|
|
|
|
// Give nGP gold to oCreature.
|
|
void GiveGoldToCreature(object oCreature, int nGP);
|
|
|
|
// Set the destroyable status of the caller.
|
|
// - bDestroyable: If this is FALSE, the caller does not fade out on death, but
|
|
// sticks around as a corpse.
|
|
// - bRaiseable: If this is TRUE, the caller can be raised via resurrection.
|
|
// - bSelectableWhenDead: If this is TRUE, the caller is selectable after death.
|
|
void SetIsDestroyable(int bDestroyable, int bRaiseable=TRUE, int bSelectableWhenDead=FALSE);
|
|
|
|
// Set the locked state of oTarget, which can be a door or a placeable object.
|
|
void SetLocked(object oTarget, int bLocked);
|
|
|
|
// Get the locked state of oTarget, which can be a door or a placeable object.
|
|
int GetLocked(object oTarget);
|
|
|
|
// Use this in a trigger's OnClick event script to get the object that last
|
|
// clicked on it.
|
|
// This is identical to GetEnteringObject.
|
|
object GetClickingObject();
|
|
|
|
// Initialise oTarget to listen for the standard Associates commands.
|
|
void SetAssociateListenPatterns(object oTarget=OBJECT_SELF);
|
|
|
|
// Get the last weapon that oCreature used in an attack.
|
|
// * Returns OBJECT_INVALID if oCreature did not attack, or has no weapon equipped.
|
|
object GetLastWeaponUsed(object oCreature);
|
|
|
|
// Use oPlaceable.
|
|
void ActionInteractObject(object oPlaceable);
|
|
|
|
// Get the last object that used the placeable object that is calling this function.
|
|
// * Returns OBJECT_INVALID if it is called by something other than a placeable or
|
|
// a door.
|
|
object GetLastUsedBy();
|
|
|
|
// Returns the ability modifier for the specified ability
|
|
// Get oCreature's ability modifier for nAbility.
|
|
// - nAbility: ABILITY_*
|
|
// - oCreature
|
|
int GetAbilityModifier(int nAbility, object oCreature=OBJECT_SELF);
|
|
|
|
// Determined whether oItem has been identified.
|
|
int GetIdentified(object oItem);
|
|
|
|
// Set whether oItem has been identified.
|
|
void SetIdentified(object oItem, int bIdentified);
|
|
|
|
// Summon an Animal Companion
|
|
void SummonAnimalCompanion(object oMaster=OBJECT_SELF);
|
|
|
|
// Summon a Familiar
|
|
void SummonFamiliar(object oMaster=OBJECT_SELF);
|
|
|
|
// Get the last blocking door encountered by the caller of this function.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid creature.
|
|
object GetBlockingDoor();
|
|
|
|
// - oTargetDoor
|
|
// - nDoorAction: DOOR_ACTION_*
|
|
// * Returns TRUE if nDoorAction can be performed on oTargetDoor.
|
|
int GetIsDoorActionPossible(object oTargetDoor, int nDoorAction);
|
|
|
|
// Perform nDoorAction on oTargetDoor.
|
|
void DoDoorAction(object oTargetDoor, int nDoorAction);
|
|
|
|
// Get the first item in oTarget's inventory (start to cycle through oTarget's
|
|
// inventory).
|
|
// * Returns OBJECT_INVALID if the caller is not a creature, item, placeable or store,
|
|
// or if no item is found.
|
|
object GetFirstItemInInventory(object oTarget=OBJECT_SELF);
|
|
|
|
// Get the next item in oTarget's inventory (continue to cycle through oTarget's
|
|
// inventory).
|
|
// * Returns OBJECT_INVALID if the caller is not a creature, item, placeable or store,
|
|
// or if no item is found.
|
|
object GetNextItemInInventory(object oTarget=OBJECT_SELF);
|
|
|
|
// A creature can have up to three classes. This function determines the
|
|
// creature's class (CLASS_TYPE_*) based on nClassPosition.
|
|
// - nClassPosition: 1, 2 or 3
|
|
// - oCreature
|
|
// * Returns CLASS_TYPE_INVALID if the oCreature does not have a class in
|
|
// nClassPosition (i.e. a single-class creature will only have a value in
|
|
// nClassLocation=1) or if oCreature is not a valid creature.
|
|
int GetClassByPosition(int nClassPosition, object oCreature=OBJECT_SELF);
|
|
|
|
// A creature can have up to three classes. This function determines the
|
|
// creature's class level based on nClass Position.
|
|
// - nClassPosition: 1, 2 or 3
|
|
// - oCreature
|
|
// * Returns 0 if oCreature does not have a class in nClassPosition
|
|
// (i.e. a single-class creature will only have a value in nClassLocation=1)
|
|
// or if oCreature is not a valid creature.
|
|
int GetLevelByPosition(int nClassPosition, object oCreature=OBJECT_SELF);
|
|
|
|
// Determine the levels that oCreature holds in nClassType.
|
|
// - nClassType: CLASS_TYPE_*
|
|
// - oCreature
|
|
int GetLevelByClass(int nClassType, object oCreature=OBJECT_SELF);
|
|
|
|
// Get the amount of damage of type nDamageType that has been dealt to the caller.
|
|
// - nDamageType: DAMAGE_TYPE_*
|
|
int GetDamageDealtByType(int nDamageType);
|
|
|
|
// Get the total amount of damage that has been dealt to the caller.
|
|
int GetTotalDamageDealt();
|
|
|
|
// Get the last object that damaged the caller.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid object.
|
|
object GetLastDamager();
|
|
|
|
// Get the last object that disarmed the trap on the caller.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid placeable, trigger or
|
|
// door.
|
|
object GetLastDisarmed();
|
|
|
|
// Get the last object that disturbed the inventory of the caller.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid creature or placeable.
|
|
object GetLastDisturbed();
|
|
|
|
// Get the last object that locked the caller.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid door or placeable.
|
|
object GetLastLocked();
|
|
|
|
// Get the last object that unlocked the caller.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid door or placeable.
|
|
object GetLastUnlocked();
|
|
|
|
// Create a Skill Increase effect.
|
|
// - nSkill: SKILL_*
|
|
// - nValue
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nSkill is invalid.
|
|
effect EffectSkillIncrease(int nSkill, int nValue);
|
|
|
|
// Get the type of disturbance (INVENTORY_DISTURB_*) that caused the caller's
|
|
// OnInventoryDisturbed script to fire. This will only work for creatures and
|
|
// placeables.
|
|
int GetInventoryDisturbType();
|
|
|
|
// get the item that caused the caller's OnInventoryDisturbed script to fire.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid object.
|
|
object GetInventoryDisturbItem();
|
|
|
|
// Get the henchman belonging to oMaster.
|
|
// * Return OBJECT_INVALID if oMaster does not have a henchman.
|
|
object GetHenchman(object oMaster=OBJECT_SELF);
|
|
|
|
// Set eEffect to be versus a specific alignment.
|
|
// - eEffect
|
|
// - nLawChaos: ALIGNMENT_LAWFUL/ALIGNMENT_CHAOTIC/ALIGNMENT_ALL
|
|
// - nGoodEvil: ALIGNMENT_GOOD/ALIGNMENT_EVIL/ALIGNMENT_ALL
|
|
effect VersusAlignmentEffect(effect eEffect, int nLawChaos=ALIGNMENT_ALL, int nGoodEvil=ALIGNMENT_ALL);
|
|
|
|
// Set eEffect to be versus nRacialType.
|
|
// - eEffect
|
|
// - nRacialType: RACIAL_TYPE_*
|
|
effect VersusRacialTypeEffect(effect eEffect, int nRacialType);
|
|
|
|
// Set eEffect to be versus traps.
|
|
effect VersusTrapEffect(effect eEffect);
|
|
|
|
// Get the gender of oCreature.
|
|
int GetGender(object oCreature);
|
|
|
|
// * Returns TRUE if tTalent is valid.
|
|
int GetIsTalentValid(talent tTalent);
|
|
|
|
// Causes the action subject to move away from lMoveAwayFrom.
|
|
void ActionMoveAwayFromLocation(location lMoveAwayFrom, int bRun=FALSE, float fMoveAwayRange=40.0f);
|
|
|
|
// Get the target that the caller attempted to attack - this should be used in
|
|
// conjunction with GetAttackTarget(). This value is set every time an attack is
|
|
// made, and is reset at the end of combat.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid creature.
|
|
object GetAttemptedAttackTarget();
|
|
|
|
// Get the type (TALENT_TYPE_*) of tTalent.
|
|
int GetTypeFromTalent(talent tTalent);
|
|
|
|
// Get the ID of tTalent. This could be a SPELL_*, FEAT_* or SKILL_*.
|
|
int GetIdFromTalent(talent tTalent);
|
|
|
|
// Get the associate of type nAssociateType belonging to oMaster.
|
|
// - nAssociateType: ASSOCIATE_TYPE_*
|
|
// - nMaster
|
|
// * Returns OBJECT_INVALID if no such associate exists.
|
|
object GetAssociate(int nAssociateType, object oMaster=OBJECT_SELF);
|
|
|
|
// Add oHenchman as a henchman to oMaster
|
|
// If oHenchman is a player character or a DM, this will have no effect
|
|
void AddHenchman(object oMaster, object oHenchman=OBJECT_SELF);
|
|
|
|
// Remove oHenchman from the service of oMaster, returning them to their original faction.
|
|
void RemoveHenchman(object oMaster, object oHenchman=OBJECT_SELF);
|
|
|
|
// Add a journal quest entry to oCreature.
|
|
// - szPlotID: the plot identifier used in the toolset's Journal Editor
|
|
// - nState: the state of the plot as seen in the toolset's Journal Editor
|
|
// - oCreature
|
|
// - bAllPartyMembers: If this is TRUE, the entry will show up in the journal of
|
|
// everyone in the party
|
|
// - bAllPlayers: If this is TRUE, the entry will show up in the journal of
|
|
// everyone in the world
|
|
// - bAllowOverrideHigher: If this is TRUE, you can set the state to a lower
|
|
// number than the one it is currently on
|
|
void AddJournalQuestEntry(string szPlotID, int nState, object oCreature, int bAllPartyMembers=TRUE, int bAllPlayers=FALSE, int bAllowOverrideHigher=FALSE);
|
|
|
|
// Remove a journal quest entry from oCreature.
|
|
// - szPlotID: the plot identifier used in the toolset's Journal Editor
|
|
// - oCreature
|
|
// - bAllPartyMembers: If this is TRUE, the entry will be removed from the
|
|
// journal of everyone in the party
|
|
// - bAllPlayers: If this is TRUE, the entry will be removed from the journal of
|
|
// everyone in the world
|
|
void RemoveJournalQuestEntry(string szPlotID, object oCreature, int bAllPartyMembers=TRUE, int bAllPlayers=FALSE);
|
|
|
|
// Get the public part of the CD Key that oPlayer used when logging in.
|
|
string GetPCPublicCDKey(object oPlayer);
|
|
|
|
// Get the IP address from which oPlayer has connected.
|
|
string GetPCIPAddress(object oPlayer);
|
|
|
|
// Get the name of oPlayer.
|
|
string GetPCPlayerName(object oPlayer);
|
|
|
|
// Sets oPlayer and oTarget to like each other.
|
|
void SetPCLike(object oPlayer, object oTarget);
|
|
|
|
// Sets oPlayer and oTarget to dislike each other.
|
|
void SetPCDislike(object oPlayer, object oTarget);
|
|
|
|
// Send a server message (szMessage) to the oPlayer.
|
|
void SendMessageToPC(object oPlayer, string szMessage);
|
|
|
|
// Get the target at which the caller attempted to cast a spell.
|
|
// This value is set every time a spell is cast and is reset at the end of
|
|
// combat.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid creature.
|
|
object GetAttemptedSpellTarget();
|
|
|
|
// Get the last creature that opened the caller.
|
|
// * Returns OBJECT_INVALID if the caller is not a valid door or placeable.
|
|
object GetLastOpenedBy();
|
|
|
|
// Determine whether oCreature has nSpell memorised.
|
|
// - nSpell: SPELL_*
|
|
// - oCreature
|
|
int GetHasSpell(int nSpell, object oCreature=OBJECT_SELF);
|
|
|
|
// Open oStore for oPC.
|
|
// - nBonusMarkUp is added to the stores default mark up percentage on items sold (-100 to 100)
|
|
// - nBonusMarkDown is added to the stores default mark down percentage on items bought (-100 to 100)
|
|
void OpenStore(object oStore, object oPC, int nBonusMarkUp=0, int nBonusMarkDown=0);
|
|
|
|
// Create a Turned effect.
|
|
effect EffectTurned();
|
|
|
|
// Get the first member of oMemberOfFaction's faction (start to cycle through
|
|
// oMemberOfFaction's faction).
|
|
// * Returns OBJECT_INVALID if oMemberOfFaction's faction is invalid.
|
|
object GetFirstFactionMember(object oMemberOfFaction, int bPCOnly=TRUE);
|
|
|
|
// Get the next member of oMemberOfFaction's faction (continue to cycle through
|
|
// oMemberOfFaction's faction).
|
|
// * Returns OBJECT_INVALID if oMemberOfFaction's faction is invalid.
|
|
object GetNextFactionMember(object oMemberOfFaction, int bPCOnly=TRUE);
|
|
|
|
// Force the action subject to move to lDestination.
|
|
void ActionForceMoveToLocation(location lDestination, int bRun=FALSE, float fTimeout=30.0f);
|
|
|
|
// Force the action subject to move to oMoveTo.
|
|
void ActionForceMoveToObject(object oMoveTo, int bRun=FALSE, float fRange=1.0f, float fTimeout=30.0f);
|
|
|
|
// Get the experience assigned in the journal editor for szPlotID.
|
|
int GetJournalQuestExperience(string szPlotID);
|
|
|
|
// Jump to oToJumpTo (the action is added to the top of the action queue).
|
|
void JumpToObject(object oToJumpTo, int nWalkStraightLineToPoint=1);
|
|
|
|
// Set whether oMapPin is enabled.
|
|
// - oMapPin
|
|
// - nEnabled: 0=Off, 1=On
|
|
void SetMapPinEnabled(object oMapPin, int nEnabled);
|
|
|
|
// Create a Hit Point Change When Dying effect.
|
|
// - fHitPointChangePerRound: this can be positive or negative, but not zero.
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if fHitPointChangePerRound is 0.
|
|
effect EffectHitPointChangeWhenDying(float fHitPointChangePerRound);
|
|
|
|
// Spawn a GUI panel for the client that controls oPC.
|
|
// - oPC
|
|
// - nGUIPanel: GUI_PANEL_*
|
|
// * Nothing happens if oPC is not a player character or if an invalid value is
|
|
// used for nGUIPanel.
|
|
void PopUpGUIPanel(object oPC, int nGUIPanel);
|
|
|
|
// Clear all personal feelings that oSource has about oTarget.
|
|
void ClearPersonalReputation(object oTarget, object oSource=OBJECT_SELF);
|
|
|
|
// oSource will temporarily be friends towards oTarget.
|
|
// bDecays determines whether the personal reputation value decays over time
|
|
// fDurationInSeconds is the length of time that the temporary friendship lasts
|
|
|
|
// Make oSource into a temporary friend of oTarget using personal reputation.
|
|
// - oTarget
|
|
// - oSource
|
|
// - bDecays: If this is TRUE, the friendship decays over fDurationInSeconds;
|
|
// otherwise it is indefinite.
|
|
// - fDurationInSeconds: This is only used if bDecays is TRUE, it is how long
|
|
// the friendship lasts.
|
|
// Note: If bDecays is TRUE, the personal reputation amount decreases in size
|
|
// over fDurationInSeconds. Friendship will only be in effect as long as
|
|
// (faction reputation + total personal reputation) >= REPUTATION_TYPE_FRIEND.
|
|
void SetIsTemporaryFriend(object oTarget, object oSource=OBJECT_SELF, int bDecays=FALSE, float fDurationInSeconds=180.0f);
|
|
|
|
// Make oSource into a temporary enemy of oTarget using personal reputation.
|
|
// - oTarget
|
|
// - oSource
|
|
// - bDecays: If this is TRUE, the enmity decays over fDurationInSeconds;
|
|
// otherwise it is indefinite.
|
|
// - fDurationInSeconds: This is only used if bDecays is TRUE, it is how long
|
|
// the enmity lasts.
|
|
// Note: If bDecays is TRUE, the personal reputation amount decreases in size
|
|
// over fDurationInSeconds. Enmity will only be in effect as long as
|
|
// (faction reputation + total personal reputation) <= REPUTATION_TYPE_ENEMY.
|
|
void SetIsTemporaryEnemy(object oTarget, object oSource=OBJECT_SELF, int bDecays=FALSE, float fDurationInSeconds=180.0f);
|
|
|
|
// Make oSource temporarily neutral to oTarget using personal reputation.
|
|
// - oTarget
|
|
// - oSource
|
|
// - bDecays: If this is TRUE, the neutrality decays over fDurationInSeconds;
|
|
// otherwise it is indefinite.
|
|
// - fDurationInSeconds: This is only used if bDecays is TRUE, it is how long
|
|
// the neutrality lasts.
|
|
// Note: If bDecays is TRUE, the personal reputation amount decreases in size
|
|
// over fDurationInSeconds. Neutrality will only be in effect as long as
|
|
// (faction reputation + total personal reputation) > REPUTATION_TYPE_ENEMY and
|
|
// (faction reputation + total personal reputation) < REPUTATION_TYPE_FRIEND.
|
|
void SetIsTemporaryNeutral(object oTarget, object oSource=OBJECT_SELF, int bDecays=FALSE, float fDurationInSeconds=180.0f);
|
|
|
|
// Gives nXpAmount to oCreature.
|
|
void GiveXPToCreature(object oCreature, int nXpAmount);
|
|
|
|
// Sets oCreature's experience to nXpAmount.
|
|
void SetXP(object oCreature, int nXpAmount);
|
|
|
|
// Get oCreature's experience.
|
|
int GetXP(object oCreature);
|
|
|
|
// Convert nInteger to hex, returning the hex value as a string.
|
|
// * Return value has the format "0x????????" where each ? will be a hex digit
|
|
// (8 digits in total).
|
|
string IntToHexString(int nInteger);
|
|
|
|
// Get the base item type (BASE_ITEM_*) of oItem.
|
|
// * Returns BASE_ITEM_INVALID if oItem is an invalid item.
|
|
int GetBaseItemType(object oItem);
|
|
|
|
// Determines whether oItem has nProperty.
|
|
// - oItem
|
|
// - nProperty: ITEM_PROPERTY_*
|
|
// * Returns FALSE if oItem is not a valid item, or if oItem does not have
|
|
// nProperty.
|
|
int GetItemHasItemProperty(object oItem, int nProperty);
|
|
|
|
// The creature will equip the melee weapon in its possession that can do the
|
|
// most damage. If no valid melee weapon is found, it will equip the most
|
|
// damaging range weapon. This function should only ever be called in the
|
|
// EndOfCombatRound scripts, because otherwise it would have to stop the combat
|
|
// round to run simulation.
|
|
// - oVersus: You can try to get the most damaging weapon against oVersus
|
|
// - bOffHand
|
|
void ActionEquipMostDamagingMelee(object oVersus=OBJECT_INVALID, int bOffHand=FALSE);
|
|
|
|
// The creature will equip the range weapon in its possession that can do the
|
|
// most damage.
|
|
// If no valid range weapon can be found, it will equip the most damaging melee
|
|
// weapon.
|
|
// - oVersus: You can try to get the most damaging weapon against oVersus
|
|
void ActionEquipMostDamagingRanged(object oVersus=OBJECT_INVALID);
|
|
|
|
// Get the Armour Class of oItem.
|
|
// * Return 0 if the oItem is not a valid item, or if oItem has no armour value.
|
|
int GetItemACValue(object oItem);
|
|
|
|
// The creature will rest.
|
|
void ActionRest();
|
|
|
|
// Expose the entire map of oArea to oPlayer.
|
|
void ExploreAreaForPlayer(object oArea, object oPlayer);
|
|
|
|
// The creature will equip the armour in its possession that has the highest
|
|
// armour class.
|
|
void ActionEquipMostEffectiveArmor();
|
|
|
|
// * Returns TRUE if it is currently day.
|
|
int GetIsDay();
|
|
|
|
// * Returns TRUE if it is currently night.
|
|
int GetIsNight();
|
|
|
|
// * Returns TRUE if it is currently dawn.
|
|
int GetIsDawn();
|
|
|
|
// * Returns TRUE if it is currently dusk.
|
|
int GetIsDusk();
|
|
|
|
// * Returns TRUE if oCreature was spawned from an encounter.
|
|
int GetIsEncounterCreature(object oCreature=OBJECT_SELF);
|
|
|
|
// Use this in an OnPlayerDying module script to get the last player who is dying.
|
|
object GetLastPlayerDying();
|
|
|
|
// Get the starting location of the module.
|
|
location GetStartingLocation();
|
|
|
|
// Make oCreatureToChange join one of the standard factions.
|
|
// ** This will only work on an NPC **
|
|
// - nStandardFaction: STANDARD_FACTION_*
|
|
void ChangeToStandardFaction(object oCreatureToChange, int nStandardFaction);
|
|
|
|
// Play oSound.
|
|
void SoundObjectPlay(object oSound);
|
|
|
|
// Stop playing oSound.
|
|
void SoundObjectStop(object oSound);
|
|
|
|
// Set the volume of oSound.
|
|
// - oSound
|
|
// - nVolume: 0-127
|
|
void SoundObjectSetVolume(object oSound, int nVolume);
|
|
|
|
// Set the position of oSound.
|
|
void SoundObjectSetPosition(object oSound, vector vPosition);
|
|
|
|
|
|
// Immediately speak a conversation one-liner.
|
|
// - sDialogResRef
|
|
// - oTokenTarget: This must be specified if there are creature-specific tokens
|
|
// in the string.
|
|
void SpeakOneLinerConversation(string sDialogResRef="", object oTokenTarget=OBJECT_TYPE_INVALID);
|
|
|
|
// Get the amount of gold possessed by oTarget.
|
|
int GetGold(object oTarget=OBJECT_SELF);
|
|
|
|
// Use this in an OnRespawnButtonPressed module script to get the object id of
|
|
// the player who last pressed the respawn button.
|
|
object GetLastRespawnButtonPresser();
|
|
|
|
// * Returns TRUE if oCreature is controlled by the Dungeon Master.
|
|
int GetIsDM(object oCreature);
|
|
|
|
// Play a voice chat.
|
|
// - nVoiceChatID: VOICE_CHAT_*
|
|
// - oTarget
|
|
void PlayVoiceChat(int nVoiceChatID, object oTarget=OBJECT_SELF);
|
|
|
|
// * Returns TRUE if the weapon equipped is capable of damaging oVersus.
|
|
int GetIsWeaponEffective(object oVersus=OBJECT_INVALID, int bOffHand=FALSE);
|
|
|
|
// Use this in a SpellCast script to determine whether the spell was considered
|
|
// harmful.
|
|
// * Returns TRUE if the last spell cast was harmful.
|
|
int GetLastSpellHarmful();
|
|
|
|
// Activate oItem.
|
|
event EventActivateItem(object oItem, location lTarget, object oTarget=OBJECT_INVALID);
|
|
|
|
// Play the background music for oArea.
|
|
void MusicBackgroundPlay(object oArea);
|
|
|
|
// Stop the background music for oArea.
|
|
void MusicBackgroundStop(object oArea);
|
|
|
|
// Set the delay for the background music for oArea.
|
|
// - oArea
|
|
// - nDelay: delay in milliseconds
|
|
void MusicBackgroundSetDelay(object oArea, int nDelay);
|
|
|
|
// Change the background day track for oArea to nTrack.
|
|
// - oArea
|
|
// - nTrack
|
|
void MusicBackgroundChangeDay(object oArea, int nTrack);
|
|
|
|
// Change the background night track for oArea to nTrack.
|
|
// - oArea
|
|
// - nTrack
|
|
void MusicBackgroundChangeNight(object oArea, int nTrack);
|
|
|
|
// Play the battle music for oArea.
|
|
void MusicBattlePlay(object oArea);
|
|
|
|
// Stop the battle music for oArea.
|
|
void MusicBattleStop(object oArea);
|
|
|
|
// Change the battle track for oArea.
|
|
// - oArea
|
|
// - nTrack
|
|
void MusicBattleChange(object oArea, int nTrack);
|
|
|
|
// Play the ambient sound for oArea.
|
|
void AmbientSoundPlay(object oArea);
|
|
|
|
// Stop the ambient sound for oArea.
|
|
void AmbientSoundStop(object oArea);
|
|
|
|
// Change the ambient day track for oArea to nTrack.
|
|
// - oArea
|
|
// - nTrack
|
|
void AmbientSoundChangeDay(object oArea, int nTrack);
|
|
|
|
// Change the ambient night track for oArea to nTrack.
|
|
// - oArea
|
|
// - nTrack
|
|
void AmbientSoundChangeNight(object oArea, int nTrack);
|
|
|
|
// Get the object that killed the caller.
|
|
object GetLastKiller();
|
|
|
|
// Use this in a spell script to get the item used to cast the spell.
|
|
object GetSpellCastItem();
|
|
|
|
// Use this in an OnItemActivated module script to get the item that was activated.
|
|
object GetItemActivated();
|
|
|
|
// Use this in an OnItemActivated module script to get the creature that
|
|
// activated the item.
|
|
object GetItemActivator();
|
|
|
|
// Use this in an OnItemActivated module script to get the location of the item's
|
|
// target.
|
|
location GetItemActivatedTargetLocation();
|
|
|
|
// Use this in an OnItemActivated module script to get the item's target.
|
|
object GetItemActivatedTarget();
|
|
|
|
// * Returns TRUE if oObject (which is a placeable or a door) is currently open.
|
|
int GetIsOpen(object oObject);
|
|
|
|
// Take nAmount of gold from oCreatureToTakeFrom.
|
|
// - nAmount
|
|
// - oCreatureToTakeFrom: If this is not a valid creature, nothing will happen.
|
|
// - bDestroy: If this is TRUE, the caller will not get the gold. Instead, the
|
|
// gold will be destroyed and will vanish from the game.
|
|
void TakeGoldFromCreature(int nAmount, object oCreatureToTakeFrom, int bDestroy=FALSE);
|
|
|
|
// Determine whether oObject is in conversation.
|
|
int IsInConversation(object oObject);
|
|
|
|
// Create an Ability Decrease effect.
|
|
// - nAbility: ABILITY_*
|
|
// - nModifyBy: This is the amount by which to decrement the ability
|
|
effect EffectAbilityDecrease(int nAbility, int nModifyBy);
|
|
|
|
// Create an Attack Decrease effect.
|
|
// - nPenalty
|
|
// - nModifierType: ATTACK_BONUS_*
|
|
effect EffectAttackDecrease(int nPenalty, int nModifierType=ATTACK_BONUS_MISC);
|
|
|
|
// Create a Damage Decrease effect.
|
|
// - nPenalty
|
|
// - nDamageType: DAMAGE_TYPE_*
|
|
effect EffectDamageDecrease(int nPenalty, int nDamageType=DAMAGE_TYPE_MAGICAL);
|
|
|
|
// Create a Damage Immunity Decrease effect.
|
|
// - nDamageType: DAMAGE_TYPE_*
|
|
// - nPercentImmunity
|
|
effect EffectDamageImmunityDecrease(int nDamageType, int nPercentImmunity);
|
|
|
|
// Create an AC Decrease effect.
|
|
// - nValue
|
|
// - nModifyType: AC_*
|
|
// - nDamageType: DAMAGE_TYPE_*
|
|
// * Default value for nDamageType should only ever be used in this function prototype.
|
|
effect EffectACDecrease(int nValue, int nModifyType=AC_DODGE_BONUS, int nDamageType=AC_VS_DAMAGE_TYPE_ALL);
|
|
|
|
// Create a Movement Speed Decrease effect.
|
|
// - nPercentChange
|
|
effect EffectMovementSpeedDecrease(int nPercentChange);
|
|
|
|
// Create a Saving Throw Decrease effect.
|
|
// - nSave
|
|
// - nValue
|
|
// - nSaveType: SAVING_THROW_TYPE_*
|
|
effect EffectSavingThrowDecrease(int nSave, int nValue, int nSaveType=SAVING_THROW_TYPE_ALL);
|
|
|
|
// Create a Skill Decrease effect.
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nSkill is invalid.
|
|
effect EffectSkillDecrease(int nSkill, int nValue);
|
|
|
|
// Create a Spell Resistance Decrease effect.
|
|
effect EffectSpellResistanceDecrease(int nValue);
|
|
|
|
// Determine whether oTarget is a plot object.
|
|
int GetPlotFlag(object oTarget=OBJECT_SELF);
|
|
|
|
// Set oTarget's plot object status.
|
|
void SetPlotFlag(object oTarget, int nPlotFlag);
|
|
|
|
// Create an Invisibility effect.
|
|
// - nInvisibilityType: INVISIBILITY_TYPE_*
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nInvisibilityType
|
|
// is invalid.
|
|
effect EffectInvisibility(int nInvisibilityType);
|
|
|
|
// Create a Concealment effect.
|
|
// - nPercentage: 1-100 inclusive
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nPercentage < 1 or
|
|
// nPercentage > 100.
|
|
effect EffectConcealment(int nPercentage);
|
|
|
|
// Create a Darkness effect.
|
|
effect EffectDarkness();
|
|
|
|
// Create a Dispel Magic All effect.
|
|
effect EffectDispelMagicAll(int nCasterLevel);
|
|
|
|
// Create an Ultravision effect.
|
|
effect EffectUltravision();
|
|
|
|
// Create a Negative Level effect.
|
|
// - nNumLevels: the number of negative levels to apply.
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nNumLevels > 100.
|
|
effect EffectNegativeLevel(int nNumLevels);
|
|
|
|
// Create a Polymorph effect.
|
|
effect EffectPolymorph(int nPolymorphSelection);
|
|
|
|
// Create a Sanctuary effect.
|
|
// - nDifficultyClass: must be a non-zero, positive number
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nDifficultyClass <= 0.
|
|
effect EffectSanctuary(int nDifficultyClass);
|
|
|
|
// Create a True Seeing effect.
|
|
effect EffectTrueSeeing();
|
|
|
|
// Create a See Invisible effect.
|
|
effect EffectSeeInvisible();
|
|
|
|
// Create a Time Stop effect.
|
|
effect EffectTimeStop();
|
|
|
|
// Create a Blindness effect.
|
|
effect EffectBlindness();
|
|
|
|
// Determine whether oSource has a friendly reaction towards oTarget, depending
|
|
// on the reputation, PVP setting and (if both oSource and oTarget are PCs),
|
|
// oSource's Like/Dislike setting for oTarget.
|
|
// Note: If you just want to know how two objects feel about each other in terms
|
|
// of faction and personal reputation, use GetIsFriend() instead.
|
|
// * Returns TRUE if oSource has a friendly reaction towards oTarget
|
|
int GetIsReactionTypeFriendly(object oTarget, object oSource=OBJECT_SELF);
|
|
|
|
// Determine whether oSource has a neutral reaction towards oTarget, depending
|
|
// on the reputation, PVP setting and (if both oSource and oTarget are PCs),
|
|
// oSource's Like/Dislike setting for oTarget.
|
|
// Note: If you just want to know how two objects feel about each other in terms
|
|
// of faction and personal reputation, use GetIsNeutral() instead.
|
|
// * Returns TRUE if oSource has a neutral reaction towards oTarget
|
|
int GetIsReactionTypeNeutral(object oTarget, object oSource=OBJECT_SELF);
|
|
|
|
// Determine whether oSource has a Hostile reaction towards oTarget, depending
|
|
// on the reputation, PVP setting and (if both oSource and oTarget are PCs),
|
|
// oSource's Like/Dislike setting for oTarget.
|
|
// Note: If you just want to know how two objects feel about each other in terms
|
|
// of faction and personal reputation, use GetIsEnemy() instead.
|
|
// * Returns TRUE if oSource has a hostile reaction towards oTarget
|
|
int GetIsReactionTypeHostile(object oTarget, object oSource=OBJECT_SELF);
|
|
|
|
// Create a Spell Level Absorption effect.
|
|
// - nMaxSpellLevelAbsorbed: maximum spell level that will be absorbed by the
|
|
// effect
|
|
// - nTotalSpellLevelsAbsorbed: maximum number of spell levels that will be
|
|
// absorbed by the effect
|
|
// - nSpellSchool: SPELL_SCHOOL_*
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if:
|
|
// nMaxSpellLevelAbsorbed is not between -1 and 9 inclusive, or nSpellSchool
|
|
// is invalid.
|
|
effect EffectSpellLevelAbsorption(int nMaxSpellLevelAbsorbed, int nTotalSpellLevelsAbsorbed=0, int nSpellSchool=SPELL_SCHOOL_GENERAL );
|
|
|
|
// Create a Dispel Magic Best effect.
|
|
effect EffectDispelMagicBest(int nCasterLevel);
|
|
|
|
// Try to send oTarget to a new server defined by sIPaddress.
|
|
// - oTarget
|
|
// - sIPaddress: this can be numerical "192.168.0.84" or alphanumeric
|
|
// "www.bioware.com". It can also contain a port "192.168.0.84:5121" or
|
|
// "www.bioware.com:5121"; if the port is not specified, it will default to
|
|
// 5121.
|
|
// - sPassword: login password for the destination server
|
|
// - sWaypointTag: if this is set, after portalling the character will be moved
|
|
// to this waypoint if it exists
|
|
// - bSeamless: if this is set, the client wil not be prompted with the
|
|
// information window telling them about the server, and they will not be
|
|
// allowed to save a copy of their character if they are using a local vault
|
|
// character.
|
|
void ActivatePortal(object oTarget, string sIPaddress="", string sPassword="", string sWaypointTag="", int bSeemless=FALSE);
|
|
|
|
// Get the number of stacked items that oItem comprises.
|
|
int GetNumStackedItems(object oItem);
|
|
|
|
// Use this on an NPC to cause all creatures within a 10-metre radius to stop
|
|
// what they are doing and sets the NPC's enemies within this range to be
|
|
// neutral towards the NPC for roughly 3 minutes. If this command is run on a PC
|
|
// or an object that is not a creature, nothing will happen.
|
|
void SurrenderToEnemies();
|
|
|
|
// Create a Miss Chance effect.
|
|
// - nPercentage: 1-100 inclusive
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nPercentage < 1 or
|
|
// nPercentage > 100.
|
|
effect EffectMissChance(int nPercentage);
|
|
|
|
// Get the number of Hitdice worth of Turn Resistance that oUndead may have.
|
|
// This will only work on undead creatures.
|
|
int GetTurnResistanceHD(object oUndead=OBJECT_SELF);
|
|
|
|
// Get the size (CREATURE_SIZE_*) of oCreature.
|
|
int GetCreatureSize(object oCreature);
|
|
|
|
// Create a Disappear/Appear effect.
|
|
// The object will "fly away" for the duration of the effect and will reappear
|
|
// at lLocation.
|
|
effect EffectDisappearAppear(location lLocation);
|
|
|
|
// Create a Disappear effect to make the object "fly away" and then destroy
|
|
// itself.
|
|
effect EffectDisappear();
|
|
|
|
// Create an Appear effect to make the object "fly in".
|
|
effect EffectAppear();
|
|
|
|
// The action subject will unlock oTarget, which can be a door or a placeable
|
|
// object.
|
|
void ActionUnlockObject(object oTarget);
|
|
|
|
// The action subject will lock oTarget, which can be a door or a placeable
|
|
// object.
|
|
void ActionLockObject(object oTarget);
|
|
|
|
// Create a Modify Attacks effect to add attacks.
|
|
// - nAttacks: maximum is 5, even with the effect stacked
|
|
// * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nAttacks > 5.
|
|
effect EffectModifyAttacks(int nAttacks);
|
|
|
|
// Get the last trap detected by oTarget.
|
|
// * Return value on error: OBJECT_INVALID
|
|
object GetLastTrapDetected(object oTarget=OBJECT_SELF);
|
|
|
|
// Create a Damage Shield effect which does (nDamageAmount + nRandomAmount)
|
|
// damage to any melee attacker on a successful attack of damage type nDamageType.
|
|
// - nDamageAmount: an integer value
|
|
// - nRandomAmount: DAMAGE_BONUS_*
|
|
// - nDamageType: DAMAGE_TYPE_*
|
|
effect EffectDamageShield(int nDamageAmount, int nRandomAmount, int nDamageType);
|
|
|
|
// Get the trap nearest to oTarget.
|
|
// Note : "trap objects" are actually any trigger, placeable or door that is
|
|
// trapped in oTarget's area.
|
|
// - oTarget
|
|
// - nTrapDetected: if this is TRUE, the trap returned has to have been detected
|
|
// by oTarget.
|
|
object GetNearestTrapToObject(object oTarget=OBJECT_SELF, int nTrapDetected=TRUE);
|
|
|
|
// Get the name of oCreature's deity.
|
|
// * Returns "" if oCreature is invalid (or if the deity name is blank for
|
|
// oCreature).
|
|
string GetDeity(object oCreature);
|
|
|
|
// Get the name of oCreature's sub race.
|
|
// * Returns "" if oCreature is invalid (or if sub race is blank for oCreature).
|
|
string GetSubRace(object oTarget);
|
|
|
|
// Get oTarget's base fortitude saving throw value (this will only work for
|
|
// creatures, doors, and placeables).
|
|
// * Returns 0 if oTarget is invalid.
|
|
int GetFortitudeSavingThrow(object oTarget);
|
|
|
|
// Get oTarget's base will saving throw value (this will only work for creatures,
|
|
// doors, and placeables).
|
|
// * Returns 0 if oTarget is invalid.
|
|
int GetWillSavingThrow(object oTarget);
|
|
|
|
// Get oTarget's base reflex saving throw value (this will only work for
|
|
// creatures, doors, and placeables).
|
|
// * Returns 0 if oTarget is invalid.
|
|
int GetReflexSavingThrow(object oTarget);
|
|
|
|
// Get oCreature's challenge rating.
|
|
// * Returns 0.0 if oCreature is invalid.
|
|
float GetChallengeRating(object oCreature);
|
|
|
|
// Get oCreature's age.
|
|
// * Returns 0 if oCreature is invalid.
|
|
int GetAge(object oCreature);
|
|
|
|
// Get oCreature's movement rate.
|
|
// * Returns 0 if oCreature is invalid.
|
|
int GetMovementRate(object oCreature);
|
|
|
|
// Get oCreature's animal companion creature type
|
|
// (ANIMAL_COMPANION_CREATURE_TYPE_*).
|
|
// * Returns ANIMAL_COMPANION_CREATURE_TYPE_NONE if oCreature is invalid or does
|
|
// not currently have an animal companion.
|
|
int GetAnimalCompanionCreatureType(object oCreature);
|
|
|
|
// Get oCreature's familiar creature type (FAMILIAR_CREATURE_TYPE_*).
|
|
// * Returns FAMILIAR_CREATURE_TYPE_NONE if oCreature is invalid or does not
|
|
// currently have a familiar.
|
|
int GetFamiliarCreatureType(object oCreature);
|
|
|
|
// Get oCreature's animal companion's name.
|
|
// * Returns "" if oCreature is invalid, does not currently
|
|
// have an animal companion or if the animal companion's name is blank.
|
|
string GetAnimalCompanionName(object oTarget);
|
|
|
|
// Get oCreature's familiar's name.
|
|
// * Returns "" if oCreature is invalid, does not currently
|
|
// have a familiar or if the familiar's name is blank.
|
|
string GetFamiliarName(object oCreature);
|
|
|
|
// The action subject will fake casting a spell at oTarget; the conjure and cast
|
|
// animations and visuals will occur, nothing else.
|
|
// - nSpell
|
|
// - oTarget
|
|
// - nProjectilePathType: PROJECTILE_PATH_TYPE_*
|
|
void ActionCastFakeSpellAtObject(int nSpell, object oTarget, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT);
|
|
|
|
// The action subject will fake casting a spell at lLocation; the conjure and
|
|
// cast animations and visuals will occur, nothing else.
|
|
// - nSpell
|
|
// - lTarget
|
|
// - nProjectilePathType: PROJECTILE_PATH_TYPE_*
|
|
void ActionCastFakeSpellAtLocation(int nSpell, location lTarget, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT);
|
|
|
|
// Removes oAssociate from the service of oMaster, returning them to their
|
|
// original faction.
|
|
void RemoveSummonedAssociate(object oMaster, object oAssociate=OBJECT_SELF);
|
|
|
|
// Set the camera mode for oPlayer.
|
|
// - oPlayer
|
|
// - nCameraMode: CAMERA_MODE_*
|
|
// * If oPlayer is not player-controlled or nCameraMode is invalid, nothing
|
|
// happens.
|
|
void SetCameraMode(object oPlayer, int nCameraMode);
|
|
|
|
// * Returns TRUE if oCreature is resting.
|
|
int GetIsResting(object oCreature=OBJECT_SELF);
|
|
|
|
// Get the last PC that has rested in the module.
|
|
object GetLastPCRested();
|
|
|
|
// Set the weather for oTarget.
|
|
// - oTarget: if this is GetModule(), all outdoor areas will be modified by the
|
|
// weather constant. If it is an area, oTarget will play the weather only if
|
|
// it is an outdoor area.
|
|
// - nWeather: WEATHER_*
|
|
// -> WEATHER_USER_AREA_SETTINGS will set the area back to random weather.
|
|
// -> WEATHER_CLEAR, WEATHER_RAIN, WEATHER_SNOW will make the weather go to
|
|
// the appropriate precipitation *without stopping*.
|
|
void SetWeather(object oTarget, int nWeather);
|
|
|
|
// Determine the type (REST_EVENTTYPE_REST_*) of the last rest event (as
|
|
// returned from the OnPCRested module event).
|
|
int GetLastRestEventType();
|
|
|
|
// Shut down the currently loaded module and start a new one (moving all
|
|
// currently-connected players to the starting point.
|
|
void StartNewModule(string sModuleName);
|
|
|
|
// Create a Swarm effect.
|
|
// - nLooping: If this is TRUE, for the duration of the effect when one creature
|
|
// created by this effect dies, the next one in the list will be created. If
|
|
// the last creature in the list dies, we loop back to the beginning and
|
|
// sCreatureTemplate1 will be created, and so on...
|
|
// - sCreatureTemplate1
|
|
// - sCreatureTemplate2
|
|
// - sCreatureTemplate3
|
|
// - sCreatureTemplate4
|
|
effect EffectSwarm(int nLooping, string sCreatureTemplate1, string sCreatureTemplate2="", string sCreatureTemplate3="", string sCreatureTemplate4="");
|
|
|
|
// * Returns TRUE if oItem is a ranged weapon.
|
|
int GetWeaponRanged(object oItem);
|
|
|
|
// Only if we are in a single player game, AutoSave the game.
|
|
void DoSinglePlayerAutoSave();
|
|
|
|
// Get the game difficulty (GAME_DIFFICULTY_*).
|
|
int GetGameDifficulty();
|
|
|
|
// Set the main light color on the tile at lTileLocation.
|
|
// - lTileLocation: the vector part of this is the tile grid (x,y) coordinate of
|
|
// the tile.
|
|
// - nMainLight1Color: TILE_MAIN_LIGHT_COLOR_*
|
|
// - nMainLight2Color: TILE_MAIN_LIGHT_COLOR_*
|
|
void SetTileMainLightColor(location lTileLocation, int nMainLight1Color, int nMainLight2Color);
|
|
|
|
// Set the source light color on the tile at lTileLocation.
|
|
// - lTileLocation: the vector part of this is the tile grid (x,y) coordinate of
|
|
// the tile.
|
|
// - nSourceLight1Color: TILE_SOURCE_LIGHT_COLOR_*
|
|
// - nSourceLight2Color: TILE_SOURCE_LIGHT_COLOR_*
|
|
void SetTileSourceLightColor(location lTileLocation, int nSourceLight1Color, int nSourceLight2Color);
|
|
|
|
// All clients in oArea will recompute the static lighting.
|
|
// This can be used to update the lighting after changing any tile lights or if
|
|
// placeables with lights have been added/deleted.
|
|
void RecomputeStaticLighting(object oArea);
|
|
|
|
// Get the color (TILE_MAIN_LIGHT_COLOR_*) for the main light 1 of the tile at
|
|
// lTile.
|
|
// - lTile: the vector part of this is the tile grid (x,y) coordinate of the tile.
|
|
int GetTileMainLight1Color(location lTile);
|
|
|
|
// Get the color (TILE_MAIN_LIGHT_COLOR_*) for the main light 2 of the tile at
|
|
// lTile.
|
|
// - lTile: the vector part of this is the tile grid (x,y) coordinate of the
|
|
// tile.
|
|
int GetTileMainLight2Color(location lTile);
|
|
|
|
// Get the color (TILE_SOURCE_LIGHT_COLOR_*) for the source light 1 of the tile
|
|
// at lTile.
|
|
// - lTile: the vector part of this is the tile grid (x,y) coordinate of the
|
|
// tile.
|
|
int GetTileSourceLight1Color(location lTile);
|
|
|
|
// Get the color (TILE_SOURCE_LIGHT_COLOR_*) for the source light 2 of the tile
|
|
// at lTile.
|
|
// - lTile: the vector part of this is the tile grid (x,y) coordinate of the
|
|
// tile.
|
|
int GetTileSourceLight2Color(location lTile);
|
|
|
|
// Make the corresponding panel button on the player's client start or stop
|
|
// flashing.
|
|
// - oPlayer
|
|
// - nButton: PANEL_BUTTON_*
|
|
// - nEnableFlash: if this is TRUE nButton will start flashing. It if is FALSE,
|
|
// nButton will stop flashing.
|
|
void SetPanelButtonFlash(object oPlayer, int nButton, int nEnableFlash);
|
|
|
|
// Get the current action (ACTION_*) that oObject is executing.
|
|
int GetCurrentAction(object oObject=OBJECT_SELF);
|
|
|
|
// Set how nStandardFaction feels about oCreature.
|
|
// - nStandardFaction: STANDARD_FACTION_*
|
|
// - nNewReputation: 0-100 (inclusive)
|
|
// - oCreature
|
|
void SetStandardFactionReputation(int nStandardFaction, int nNewReputation, object oCreature=OBJECT_SELF);
|
|
|
|
// Find out how nStandardFaction feels about oCreature.
|
|
// - nStandardFaction: STANDARD_FACTION_*
|
|
// - oCreature
|
|
int GetStandardFactionReputation(int nStandardFaction, object oCreature=OBJECT_SELF);
|
|
|
|
// Display floaty text above the specified creature.
|
|
// The text will also appear in the chat buffer of each player that receives the
|
|
// floaty text.
|
|
// - nStrRefToDisplay: String ref (therefore text is translated)
|
|
// - oCreatureToFloatAbove
|
|
// - bBroadcastToFaction: If this is TRUE then only creatures in the same faction
|
|
// as oCreatureToFloatAbove
|
|
// will see the floaty text, and only if they are within range (30 metres).
|
|
void FloatingTextStrRefOnCreature(int nStrRefToDisplay, object oCreatureToFloatAbove, int bBroadcastToFaction=TRUE);
|
|
|
|
// Display floaty text above the specified creature.
|
|
// The text will also appear in the chat buffer of each player that receives the
|
|
// floaty text.
|
|
// - sStringToDisplay: String
|
|
// - oCreatureToFloatAbove
|
|
// - bBroadcastToFaction: If this is TRUE then only creatures in the same faction
|
|
// as oCreatureToFloatAbove
|
|
// will see the floaty text, and only if they are within range (30 metres).
|
|
void FloatingTextStringOnCreature(string sStringToDisplay, object oCreatureToFloatAbove, int bBroadcastToFaction=TRUE);
|
|
|
|
// - oTrapObject: a placeable, door or trigger
|
|
// * Returns TRUE if oTrapObject is disarmable.
|
|
int GetTrapDisarmable(object oTrapObject);
|
|
|
|
// - oTrapObject: a placeable, door or trigger
|
|
// * Returns TRUE if oTrapObject is detectable.
|
|
int GetTrapDetectable(object oTrapObject);
|
|
|
|
// - oTrapObject: a placeable, door or trigger
|
|
// - oCreature
|
|
// * Returns TRUE if oCreature has detected oTrapObject
|
|
int GetTrapDetectedBy(object oTrapObject, object oCreature);
|
|
|
|
// - oTrapObject: a placeable, door or trigger
|
|
// * Returns TRUE if oTrapObject has been flagged as visible to all creatures.
|
|
int GetTrapFlagged(object oTrapObject);
|
|
|
|
// Get the trap base type (TRAP_BASE_TYPE_*) of oTrapObject.
|
|
// - oTrapObject: a placeable, door or trigger
|
|
int GetTrapBaseType(object oTrapObject);
|
|
|
|
// - oTrapObject: a placeable, door or trigger
|
|
// * Returns TRUE if oTrapObject is one-shot (i.e. it does not reset itself
|
|
// after firing.
|
|
int GetTrapOneShot(object oTrapObject);
|
|
|
|
// Get the creator of oTrapObject, the creature that set the trap.
|
|
// - oTrapObject: a placeable, door or trigger
|
|
// * Returns OBJECT_INVALID if oTrapObject was created in the toolset.
|
|
object GetTrapCreator(object oTrapObject);
|
|
|
|
// Get the tag of the key that will disarm oTrapObject.
|
|
// - oTrapObject: a placeable, door or trigger
|
|
string GetTrapKeyTag(object oTrapObject);
|
|
|
|
// Get the DC for disarming oTrapObject.
|
|
// - oTrapObject: a placeable, door or trigger
|
|
int GetTrapDisarmDC(object oTrapObject);
|
|
|
|
// Get the DC for detecting oTrapObject.
|
|
// - oTrapObject: a placeable, door or trigger
|
|
int GetTrapDetectDC(object oTrapObject);
|
|
|
|
// * Returns TRUE if a specific key is required to open the lock on oObject.
|
|
int GetLockKeyRequired(object oObject);
|
|
|
|
// Get the tag of the key that will open the lock on oObject.
|
|
string GetLockKeyTag(object oObject);
|
|
|
|
// * Returns TRUE if the lock on oObject is lockable.
|
|
int GetLockLockable(object oObject);
|
|
|
|
// Get the DC for unlocking oObject.
|
|
int GetLockUnlockDC(object oObject);
|
|
|
|
// Get the DC for locking oObject.
|
|
int GetLockLockDC(object oObject);
|
|
|
|
// Get the last PC that levelled up.
|
|
object GetPCLevellingUp();
|
|
|
|
// - nFeat: FEAT_*
|
|
// - oObject
|
|
// * Returns TRUE if oObject has effects on it originating from nFeat.
|
|
int GetHasFeatEffect(int nFeat, object oObject=OBJECT_SELF);
|
|
|
|
// Set the status of the illumination for oPlaceable.
|
|
// - oPlaceable
|
|
// - bIlluminate: if this is TRUE, oPlaceable's illumination will be turned on.
|
|
// If this is FALSE, oPlaceable's illumination will be turned off.
|
|
// Note: You must call RecomputeStaticLighting() after calling this function in
|
|
// order for the changes to occur visually for the players.
|
|
// SetPlaceableIllumination() buffers the illumination changes, which are then
|
|
// sent out to the players once RecomputeStaticLighting() is called. As such,
|
|
// it is best to call SetPlaceableIllumination() for all the placeables you wish
|
|
// to set the illumination on, and then call RecomputeStaticLighting() once after
|
|
// all the placeable illumination has been set.
|
|
// * If oPlaceable is not a placeable object, or oPlaceable is a placeable that
|
|
// doesn't have a light, nothing will happen.
|
|
void SetPlaceableIllumination(object oPlaceable=OBJECT_SELF, int bIlluminate=TRUE);
|
|
|
|
// * Returns TRUE if the illumination for oPlaceable is on
|
|
int GetPlaceableIllumination(object oPlaceable=OBJECT_SELF);
|
|
|
|
// - oPlaceable
|
|
// - nPlaceableAction: PLACEABLE_ACTION_*
|
|
// * Returns TRUE if nPlacebleAction is valid for oPlaceable.
|
|
int GetIsPlaceableObjectActionPossible(object oPlaceable, int nPlaceableAction);
|
|
|
|
// The caller performs nPlaceableAction on oPlaceable.
|
|
// - oPlaceable
|
|
// - nPlaceableAction: PLACEABLE_ACTION_*
|
|
void DoPlaceableObjectAction(object oPlaceable, int nPlaceableAction);
|
|
|
|
// Get the first PC in the player list.
|
|
// This resets the position in the player list for GetNextPC().
|
|
object GetFirstPC();
|
|
|
|
// Get the next PC in the player list.
|
|
// This picks up where the last GetFirstPC() or GetNextPC() left off.
|
|
object GetNextPC();
|
|
|
|
// Set oDetector to have detected oTrap.
|
|
int SetTrapDetectedBy(object oTrap, object oDetector);
|
|
|
|
// Note: Only placeables, doors and triggers can be trapped.
|
|
// * Returns TRUE if oObject is trapped.
|
|
int GetIsTrapped(object oObject);
|
|
|
|
// Create a Turn Resistance Decrease effect.
|
|
// - nHitDice: a positive number representing the number of hit dice for the
|
|
/// decrease
|
|
effect EffectTurnResistanceDecrease(int nHitDice);
|
|
|
|
// Create a Turn Resistance Increase effect.
|
|
// - nHitDice: a positive number representing the number of hit dice for the
|
|
// increase
|
|
effect EffectTurnResistanceIncrease(int nHitDice);
|
|
|
|
// Spawn in the Death GUI.
|
|
// The default (as defined by BioWare) can be spawned in by PopUpGUIPanel, but
|
|
// if you want to turn off the "Respawn" or "Wait for Help" buttons, this is the
|
|
// function to use.
|
|
// - oPC
|
|
// - bRespawnButtonEnabled: if this is TRUE, the "Respawn" button will be enabled
|
|
// on the Death GUI.
|
|
// - bWaitForHelpButtonEnabled: if this is TRUE, the "Wait For Help" button will
|
|
// be enabled on the Death GUI.
|
|
// - nHelpStringReference
|
|
// - sHelpString
|
|
void PopUpDeathGUIPanel(object oPC, int bRespawnButtonEnabled=TRUE, int bWaitForHelpButtonEnabled=TRUE, int nHelpStringReference=0, string sHelpString="");
|
|
|
|
// Disable oTrap.
|
|
// - oTrap: a placeable, door or trigger.
|
|
void SetTrapDisabled(object oTrap);
|
|
|
|
// Get the last object that was sent as a GetLastAttacker(), GetLastDamager(),
|
|
// GetLastSpellCaster() (for a hostile spell), or GetLastDisturbed() (when a
|
|
// creature is pickpocketed).
|
|
// Note: Return values may only ever be:
|
|
// 1) A Creature
|
|
// 2) Plot Characters will never have this value set
|
|
// 3) Area of Effect Objects will return the AOE creator if they are registered
|
|
// as this value, otherwise they will return INVALID_OBJECT_ID
|
|
// 4) Traps will not return the creature that set the trap.
|
|
// 5) This value will never be overwritten by another non-creature object.
|
|
// 6) This value will never be a dead/destroyed creature
|
|
object GetLastHostileActor(object oVictim=OBJECT_SELF);
|
|
|
|
// Force all the characters of the players who are currently in the game to
|
|
// be exported to their respective directories i.e. LocalVault/ServerVault/ etc.
|
|
void ExportAllCharacters();
|
|
|
|
// Get the Day Track for oArea.
|
|
int MusicBackgroundGetDayTrack(object oArea);
|
|
|
|
// Get the Night Track for oArea.
|
|
int MusicBackgroundGetNightTrack(object oArea);
|
|
|
|
// Write sLogEntry as a timestamped entry into the log file
|
|
void WriteTimestampedLogEntry(string sLogEntry);
|
|
|
|
// Get the module's name in the language of the server that's running it.
|
|
// * If there is no entry for the language of the server, it will return an
|
|
// empty string
|
|
string GetModuleName();
|
|
|
|
// Get the leader of the faction of which oMemberOfFaction is a member.
|
|
// * Returns OBJECT_INVALID if oMemberOfFaction is not a valid creature.
|
|
object GetFactionLeader(object oMemberOfFaction);
|
|
|
|
// Sends szMessage to all the Dungeon Masters currently on the server.
|
|
void SendMessageToAllDMs(string szMessage);
|
|
|
|
// End the currently running game, play sEndMovie then return all players to the
|
|
// game's main menu.
|
|
void EndGame(string sEndMovie);
|
|
|
|
// Remove oPlayer from the server.
|
|
void BootPC(object oPlayer);
|
|
|
|
// Counterspell oCounterSpellTarget.
|
|
void ActionCounterSpell(object oCounterSpellTarget);
|
|
|
|
// Set the ambient day volume for oArea to nVolume.
|
|
// - oArea
|
|
// - nVolume: 0 - 100
|
|
void AmbientSoundSetDayVolume(object oArea, int nVolume);
|
|
|
|
// Set the ambient night volume for oArea to nVolume.
|
|
// - oArea
|
|
// - nVolume: 0 - 100
|
|
void AmbientSoundSetNightVolume(object oArea, int nVolume);
|
|
|
|
// Get the Battle Track for oArea.
|
|
int MusicBackgroundGetBattleTrack(object oArea);
|
|
|
|
// Determine whether oObject has an inventory.
|
|
// * Returns TRUE for creatures and stores, and checks to see if an item or placeable object is a container.
|
|
// * Returns FALSE for all other object types.
|
|
int GetHasInventory(object oObject);
|
|
|
|
// Get the duration (in seconds) of the sound attached to nStrRef
|
|
// * Returns 0.0f if no duration is stored or if no sound is attached
|
|
float GetStrRefSoundDuration(int nStrRef);
|
|
|
|
// Add oPC to oPartyLeader's party. This will only work on two PCs.
|
|
// - oPC: player to add to a party
|
|
// - oPartyLeader: player already in the party
|
|
void AddToParty(object oPC, object oPartyLeader);
|
|
|
|
// Remove oPC from their current party. This will only work on a PC.
|
|
// - oPC: removes this player from whatever party they're currently in.
|
|
void RemoveFromParty(object oPC);
|
|
|
|
// Returns the stealth mode of the specified creature.
|
|
// - oCreature
|
|
// * Returns a constant STEALTH_MODE_*
|
|
int GetStealthMode(object oCreature);
|
|
|
|
// Returns the detection mode of the specified creature.
|
|
// - oCreature
|
|
// * Returns a constant DETECT_MODE_*
|
|
int GetDetectMode(object oCreature);
|
|
|
|
// Reserved for future use.
|
|
int Reserved1(object o);
|
|
|
|
// Reserved for future use.
|
|
int Reserved2(object o);
|
|
|
|
// Reserved for future use.
|
|
void Reserved3();
|
|
|
|
// Reserved for future use.
|
|
int Reserved4();
|
|
|
|
// Decrement the remaining uses per day for this creature by one.
|
|
// - oCreature: creature to modify
|
|
// - nFeat: constant FEAT_*
|
|
void DecrementRemainingFeatUses(object oCreature, int nFeat);
|
|
|
|
// Decrement the remaining uses per day for this creature by one.
|
|
// - oCreature: creature to modify
|
|
// - nSpell: constant SPELL_*
|
|
void DecrementRemainingSpellUses(object oCreature, int nSpell);
|
|
|
|
// returns the template used to create this object (if appropriate)
|
|
// * returns an empty string when no template found
|
|
string GetResRef(object oObject);
|
|
|
|
// Reserved for future use
|
|
effect Reserved5();
|
|
|
|
// Reserved for future use
|
|
object Reserved6(object o, object oTargetInventory=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
effect Reserved7();
|
|
|
|
// Return true if item can be dropped
|
|
// - oItem: item to query
|
|
int GetDroppableFlag(object oItem);
|
|
|
|
// Returns true if placeable object can be used
|
|
int GetUseableFlag(object oObject=OBJECT_SELF);
|
|
|
|
// Returns true if item is stolen
|
|
// - oItem: item to query
|
|
int GetStolenFlag(object oItem);
|
|
|
|
// Reserved for future use
|
|
void Reserved8(string sString1, string sString2, float fFloat, object oObject=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
void Reserved9(string sString1, string sString2, int nInt, object oObject=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
void Reserved10(string sString1, string sString2, vector vVector, object oObject=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
void Reserved11(string sString1, string sString2, location locLocation, object oObject=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
void Reserved12(string sString1, string sString2, string sString, object oObject=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
void Reserved13(string sString);
|
|
|
|
// Reserved for future use
|
|
float Reserved14(string sString1, string sString2, object oObject=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
int Reserved15(string sString1, string sString2, object oObject=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
vector Reserved16(string sString1, string sString2, object oObject=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
location Reserved17(string sString1, string sString2, object oObject=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
string Reserved18(string sString1, string sString2, object oObject=OBJECT_INVALID);
|
|
|
|
// Duplicates the object specified by oSource.
|
|
// ONLY creatures and items can be specified.
|
|
// If an owner is specified and the object is an item, it will be put into their inventory
|
|
// If the object is a creature, they will be created at the location.
|
|
// If a new tag is specified, it will be assigned to the new object.
|
|
object CopyObject(object oSource, location locLocation, object oOwner = OBJECT_INVALID, string sNewTag = "");
|
|
|
|
// Reserved for future use
|
|
void Reserved19(string sString1, string sString2, object oObject=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
int Reserved20(string sString1, string sString2, object oObject1, object oObject2=OBJECT_INVALID);
|
|
|
|
// Reserved for future use
|
|
object Reserved21(string sString1, string sString2, location locLocation, object oObject1 = OBJECT_INVALID, object oObject2=OBJECT_INVALID);
|
|
|
|
// Returns an effect that is guaranteed to dominate a creature
|
|
// Like EffectDominated but cannot be resisted
|
|
effect EffectCutsceneDominated();
|