home *** CD-ROM | disk | FTP | other *** search
/ PC Zone 125 / DPPCZ0203B.7z / DPPCZ0203B.ISO / Demos / Neverwinter / data1.cab / override / nwscript.nss < prev    next >
Text File  |  2002-09-10  |  212KB  |  4,953 lines

  1. ////////////////////////////////////////////////////////
  2. //
  3. //  NWScript
  4. //
  5. //  The list of actions and pre-defined constants.
  6. //
  7. //  (c) BioWare Corp, 1999
  8. //
  9. ////////////////////////////////////////////////////////
  10.  
  11. #define ENGINE_NUM_STRUCTURES   4
  12. #define ENGINE_STRUCTURE_0      effect
  13. #define ENGINE_STRUCTURE_1      event
  14. #define ENGINE_STRUCTURE_2      location
  15. #define ENGINE_STRUCTURE_3      talent
  16.  
  17. // Constants
  18.  
  19. int       NUM_INVENTORY_SLOTS        = 18;
  20.  
  21. int    TRUE                     = 1;
  22. int    FALSE                    = 0;
  23.  
  24. float  DIRECTION_EAST           = 0.0;
  25. float  DIRECTION_NORTH          = 90.0;
  26. float  DIRECTION_WEST           = 180.0;
  27. float  DIRECTION_SOUTH          = 270.0;
  28. float  PI                       = 3.141592;
  29.  
  30. int    ATTITUDE_NEUTRAL         = 0;
  31. int    ATTITUDE_AGGRESSIVE      = 1;
  32. int    ATTITUDE_DEFENSIVE       = 2;
  33. int    ATTITUDE_SPECIAL         = 3;
  34.  
  35. int    TALKVOLUME_TALK          = 0;
  36. int    TALKVOLUME_WHISPER       = 1;
  37. int    TALKVOLUME_SHOUT         = 2;
  38. int    TALKVOLUME_SILENT_TALK   = 3;
  39. int    TALKVOLUME_SILENT_SHOUT  = 4;
  40.  
  41. int    INVENTORY_SLOT_HEAD        = 0;
  42. int    INVENTORY_SLOT_CHEST        = 1;
  43. int    INVENTORY_SLOT_BOOTS        = 2;
  44. int    INVENTORY_SLOT_ARMS        = 3;
  45. int    INVENTORY_SLOT_RIGHTHAND    = 4;
  46. int    INVENTORY_SLOT_LEFTHAND    = 5;
  47. int    INVENTORY_SLOT_CLOAK        = 6;
  48. int    INVENTORY_SLOT_LEFTRING    = 7;
  49. int    INVENTORY_SLOT_RIGHTRING    = 8;
  50. int    INVENTORY_SLOT_NECK      = 9;
  51. int    INVENTORY_SLOT_BELT      = 10;
  52. int    INVENTORY_SLOT_ARROWS    = 11;
  53. int    INVENTORY_SLOT_BULLETS   = 12;
  54. int    INVENTORY_SLOT_BOLTS     = 13;
  55. int    INVENTORY_SLOT_CWEAPON_L = 14;
  56. int    INVENTORY_SLOT_CWEAPON_R = 15;
  57. int    INVENTORY_SLOT_CWEAPON_B = 16;
  58. int    INVENTORY_SLOT_CARMOUR   = 17;
  59.  
  60. //Effect type constants
  61. int    DURATION_TYPE_INSTANT    = 0;
  62. int    DURATION_TYPE_TEMPORARY  = 1;
  63. int    DURATION_TYPE_PERMANENT  = 2;
  64.  
  65. int       SUBTYPE_MAGICAL          = 8;
  66. int       SUBTYPE_SUPERNATURAL     = 16;
  67. int       SUBTYPE_EXTRAORDINARY    = 24;
  68.  
  69. int    ABILITY_STRENGTH         = 0; // should be the same as in nwseffectlist.cpp
  70. int    ABILITY_DEXTERITY        = 1;
  71. int    ABILITY_CONSTITUTION     = 2;
  72. int    ABILITY_INTELLIGENCE     = 3;
  73. int    ABILITY_WISDOM           = 4;
  74. int    ABILITY_CHARISMA         = 5;
  75.  
  76. int    SHAPE_SPELLCYLINDER      = 0;
  77. int    SHAPE_CONE               = 1;
  78. int    SHAPE_CUBE               = 2;
  79. int    SHAPE_SPELLCONE          = 3;
  80. int    SHAPE_SPHERE             = 4;
  81.  
  82. int    METAMAGIC_NONE           = 0;
  83. int    METAMAGIC_EMPOWER        = 1;
  84. int    METAMAGIC_EXTEND         = 2;
  85. int    METAMAGIC_MAXIMIZE       = 4;
  86. int    METAMAGIC_QUICKEN        = 8;
  87. int    METAMAGIC_SILENT         = 16;
  88. int    METAMAGIC_STILL          = 32;
  89. int    METAMAGIC_ANY            = 255;
  90.  
  91. int    OBJECT_TYPE_CREATURE         = 1;
  92. int    OBJECT_TYPE_ITEM             = 2;
  93. int    OBJECT_TYPE_TRIGGER          = 4;
  94. int    OBJECT_TYPE_DOOR             = 8;
  95. int    OBJECT_TYPE_AREA_OF_EFFECT   = 16;
  96. int    OBJECT_TYPE_WAYPOINT         = 32;
  97. int    OBJECT_TYPE_PLACEABLE        = 64;
  98. int    OBJECT_TYPE_STORE            = 128;
  99. int    OBJECT_TYPE_ALL              = 32767;
  100.  
  101. int    OBJECT_TYPE_INVALID          = 32767;
  102.  
  103. int    GENDER_MALE    = 0;
  104. int    GENDER_FEMALE  = 1;
  105. int    GENDER_BOTH    = 2;
  106. int    GENDER_OTHER   = 3;
  107. int    GENDER_NONE    = 4;
  108.  
  109. int    DAMAGE_TYPE_BLUDGEONING  = 1;
  110. int    DAMAGE_TYPE_PIERCING     = 2;
  111. int    DAMAGE_TYPE_SLASHING     = 4;
  112. int    DAMAGE_TYPE_MAGICAL      = 8;
  113. int    DAMAGE_TYPE_ACID         = 16;
  114. int    DAMAGE_TYPE_COLD         = 32;
  115. int    DAMAGE_TYPE_DIVINE       = 64;
  116. int    DAMAGE_TYPE_ELECTRICAL   = 128;
  117. int    DAMAGE_TYPE_FIRE         = 256;
  118. int    DAMAGE_TYPE_NEGATIVE     = 512;
  119. int    DAMAGE_TYPE_POSITIVE     = 1024;
  120. int    DAMAGE_TYPE_SONIC        = 2048;
  121.  
  122. // Special versus flag just for AC effects
  123. int    AC_VS_DAMAGE_TYPE_ALL    = 4103;
  124.  
  125. int    DAMAGE_BONUS_1           = 1;
  126. int    DAMAGE_BONUS_2           = 2;
  127. int    DAMAGE_BONUS_3           = 3;
  128. int    DAMAGE_BONUS_4           = 4;
  129. int    DAMAGE_BONUS_5           = 5;
  130. int    DAMAGE_BONUS_1d4         = 6;
  131. int    DAMAGE_BONUS_1d6         = 7;
  132. int    DAMAGE_BONUS_1d8         = 8;
  133. int    DAMAGE_BONUS_1d10        = 9;
  134. int    DAMAGE_BONUS_2d6         = 10;
  135.  
  136. int    DAMAGE_POWER_NORMAL         = 0;
  137. int    DAMAGE_POWER_PLUS_ONE       = 1;
  138. int    DAMAGE_POWER_PLUS_TWO       = 2;
  139. int    DAMAGE_POWER_PLUS_THREE     = 3;
  140. int    DAMAGE_POWER_PLUS_FOUR      = 4;
  141. int    DAMAGE_POWER_PLUS_FIVE      = 5;
  142. int    DAMAGE_POWER_ENERGY         = 6;
  143.  
  144. int    ATTACK_BONUS_MISC                = 0;
  145. int    ATTACK_BONUS_ONHAND              = 1;
  146. int    ATTACK_BONUS_OFFHAND             = 2;
  147.  
  148. int    AC_DODGE_BONUS                   = 0;
  149. int    AC_NATURAL_BONUS                 = 1;
  150. int    AC_ARMOUR_ENCHANTMENT_BONUS      = 2;
  151. int    AC_SHIELD_ENCHANTMENT_BONUS      = 3;
  152. int    AC_DEFLECTION_BONUS              = 4;
  153.  
  154. int    DOOR_ACTION_OPEN                 = 0;
  155. int    DOOR_ACTION_UNLOCK               = 1;
  156. int    DOOR_ACTION_BASH                 = 2;
  157. int    DOOR_ACTION_IGNORE               = 3;
  158. int    DOOR_ACTION_KNOCK                = 4;
  159.  
  160. int    PLACEABLE_ACTION_USE                  = 0;
  161. int    PLACEABLE_ACTION_UNLOCK               = 1;
  162. int    PLACEABLE_ACTION_BASH                 = 2;
  163. int    PLACEABLE_ACTION_KNOCK                = 4;
  164.  
  165.  
  166. int    RACIAL_TYPE_DWARF                = 0;
  167. int    RACIAL_TYPE_ELF                  = 1;
  168. int    RACIAL_TYPE_GNOME                = 2;
  169. int    RACIAL_TYPE_HALFLING             = 3;
  170. int    RACIAL_TYPE_HALFELF              = 4;
  171. int    RACIAL_TYPE_HALFORC              = 5;
  172. int    RACIAL_TYPE_HUMAN                = 6;
  173. int    RACIAL_TYPE_ABERRATION           = 7;
  174. int    RACIAL_TYPE_ANIMAL               = 8;
  175. int    RACIAL_TYPE_BEAST                = 9;
  176. int    RACIAL_TYPE_CONSTRUCT            = 10;
  177. int    RACIAL_TYPE_DRAGON               = 11;
  178. int    RACIAL_TYPE_HUMANOID_GOBLINOID   = 12;
  179. int    RACIAL_TYPE_HUMANOID_MONSTROUS   = 13;
  180. int    RACIAL_TYPE_HUMANOID_ORC         = 14;
  181. int    RACIAL_TYPE_HUMANOID_REPTILIAN   = 15;
  182. int    RACIAL_TYPE_ELEMENTAL            = 16;
  183. int    RACIAL_TYPE_FEY                  = 17;
  184. int    RACIAL_TYPE_GIANT                = 18;
  185. int    RACIAL_TYPE_MAGICAL_BEAST        = 19;
  186. int    RACIAL_TYPE_OUTSIDER             = 20;
  187. int    RACIAL_TYPE_SHAPECHANGER         = 23;
  188. int    RACIAL_TYPE_UNDEAD               = 24;
  189. int    RACIAL_TYPE_VERMIN               = 25;
  190. int    RACIAL_TYPE_ALL                  = 28;
  191. int    RACIAL_TYPE_INVALID              = 29;
  192.  
  193. int    ALIGNMENT_ALL                    = 0;
  194. int    ALIGNMENT_NEUTRAL                = 1;
  195. int    ALIGNMENT_LAWFUL                 = 2;
  196. int    ALIGNMENT_CHAOTIC                = 3;
  197. int    ALIGNMENT_GOOD                   = 4;
  198. int    ALIGNMENT_EVIL                   = 5;
  199.  
  200. int SAVING_THROW_ALL                    = 0;
  201. int SAVING_THROW_FORT                   = 1;
  202. int SAVING_THROW_REFLEX                 = 2;
  203. int SAVING_THROW_WILL                   = 3;
  204.  
  205. int SAVING_THROW_TYPE_ALL               = 0;
  206. int SAVING_THROW_TYPE_NONE              = 0;
  207. int SAVING_THROW_TYPE_MIND_SPELLS       = 1;
  208. int SAVING_THROW_TYPE_POISON            = 2;
  209. int SAVING_THROW_TYPE_DISEASE           = 3;
  210. int SAVING_THROW_TYPE_FEAR              = 4;
  211. int SAVING_THROW_TYPE_SONIC             = 5;
  212. int SAVING_THROW_TYPE_ACID              = 6;
  213. int SAVING_THROW_TYPE_FIRE              = 7;
  214. int SAVING_THROW_TYPE_ELECTRICITY       = 8;
  215. int SAVING_THROW_TYPE_POSITIVE          = 9;
  216. int SAVING_THROW_TYPE_NEGATIVE          = 10;
  217. int SAVING_THROW_TYPE_DEATH             = 11;
  218. int SAVING_THROW_TYPE_COLD              = 12;
  219. int SAVING_THROW_TYPE_DIVINE            = 13;
  220. int SAVING_THROW_TYPE_TRAP              = 14;
  221. int SAVING_THROW_TYPE_SPELL             = 15;
  222. int SAVING_THROW_TYPE_GOOD              = 16;
  223. int SAVING_THROW_TYPE_EVIL              = 17;
  224. int SAVING_THROW_TYPE_LAW               = 18;
  225. int SAVING_THROW_TYPE_CHAOS             = 19;
  226.  
  227. int IMMUNITY_TYPE_NONE              = 0;
  228. int IMMUNITY_TYPE_MIND_SPELLS       = 1;
  229. int IMMUNITY_TYPE_POISON            = 2;
  230. int IMMUNITY_TYPE_DISEASE           = 3;
  231. int IMMUNITY_TYPE_FEAR              = 4;
  232. int IMMUNITY_TYPE_TRAP              = 5;
  233. int IMMUNITY_TYPE_PARALYSIS         = 6;
  234. int IMMUNITY_TYPE_BLINDNESS         = 7;
  235. int IMMUNITY_TYPE_DEAFNESS          = 8;
  236. int IMMUNITY_TYPE_SLOW              = 9;
  237. int IMMUNITY_TYPE_ENTANGLE          = 10;
  238. int IMMUNITY_TYPE_SILENCE           = 11;
  239. int IMMUNITY_TYPE_STUN              = 12;
  240. int IMMUNITY_TYPE_SLEEP             = 13;
  241. int IMMUNITY_TYPE_CHARM             = 14;
  242. int IMMUNITY_TYPE_DOMINATE          = 15;
  243. int IMMUNITY_TYPE_CONFUSED          = 16;
  244. int IMMUNITY_TYPE_CURSED            = 17;
  245. int IMMUNITY_TYPE_DAZED             = 18;
  246. int IMMUNITY_TYPE_ABILITY_DECREASE  = 19;
  247. int IMMUNITY_TYPE_ATTACK_DECREASE   = 20;
  248. int IMMUNITY_TYPE_DAMAGE_DECREASE   = 21;
  249. int IMMUNITY_TYPE_DAMAGE_IMMUNITY_DECREASE = 22;
  250. int IMMUNITY_TYPE_AC_DECREASE       = 23;
  251. int IMMUNITY_TYPE_MOVEMENT_SPEED_DECREASE = 24;
  252. int IMMUNITY_TYPE_SAVING_THROW_DECREASE = 25;
  253. int IMMUNITY_TYPE_SPELL_RESISTANCE_DECREASE = 26;
  254. int IMMUNITY_TYPE_SKILL_DECREASE    = 27;
  255. int IMMUNITY_TYPE_KNOCKDOWN         = 28;
  256. int IMMUNITY_TYPE_NEGATIVE_LEVEL    = 29;
  257. int IMMUNITY_TYPE_SNEAK_ATTACK      = 30;
  258. int IMMUNITY_TYPE_CRITICAL_HIT      = 31;
  259. int IMMUNITY_TYPE_DEATH             = 32;
  260.  
  261. int AREA_TRANSITION_RANDOM        = 0;
  262. int AREA_TRANSITION_USER_DEFINED  = 1;
  263. int AREA_TRANSITION_CITY_01       = 2; 
  264. int AREA_TRANSITION_CITY_02       = 3; 
  265. int AREA_TRANSITION_CITY_03       = 4; 
  266. int AREA_TRANSITION_CITY_04       = 5; 
  267. int AREA_TRANSITION_CITY_05       = 6; 
  268. int AREA_TRANSITION_CRYPT_01      = 7;
  269. int AREA_TRANSITION_CRYPT_02      = 8;
  270. int AREA_TRANSITION_CRYPT_03      = 9;
  271. int AREA_TRANSITION_CRYPT_04      = 10;
  272. int AREA_TRANSITION_CRYPT_05      = 11;
  273. int AREA_TRANSITION_DUNGEON_01    = 12;
  274. int AREA_TRANSITION_DUNGEON_02    = 13;
  275. int AREA_TRANSITION_DUNGEON_03    = 14;
  276. int AREA_TRANSITION_DUNGEON_04    = 15;
  277. int AREA_TRANSITION_DUNGEON_05    = 16;
  278. int AREA_TRANSITION_DUNGEON_06    = 17;
  279. int AREA_TRANSITION_DUNGEON_07    = 18;
  280. int AREA_TRANSITION_DUNGEON_08    = 19;
  281. int AREA_TRANSITION_MINES_01      = 20;
  282. int AREA_TRANSITION_MINES_02      = 21;
  283. int AREA_TRANSITION_MINES_03      = 22;
  284. int AREA_TRANSITION_MINES_04      = 23;
  285. int AREA_TRANSITION_MINES_05      = 24;
  286. int AREA_TRANSITION_MINES_06      = 25;
  287. int AREA_TRANSITION_MINES_07      = 26;
  288. int AREA_TRANSITION_MINES_08      = 27;
  289. int AREA_TRANSITION_MINES_09      = 28;
  290. int AREA_TRANSITION_SEWER_01      = 29;
  291. int AREA_TRANSITION_SEWER_02      = 30;
  292. int AREA_TRANSITION_SEWER_03      = 31;
  293. int AREA_TRANSITION_SEWER_04      = 32;
  294. int AREA_TRANSITION_SEWER_05      = 33;
  295. int AREA_TRANSITION_CASTLE_01     = 34;
  296. int AREA_TRANSITION_CASTLE_02     = 35;
  297. int AREA_TRANSITION_CASTLE_03     = 36;
  298. int AREA_TRANSITION_CASTLE_04     = 37;
  299. int AREA_TRANSITION_CASTLE_05     = 38;
  300. int AREA_TRANSITION_CASTLE_06     = 39;
  301. int AREA_TRANSITION_CASTLE_07     = 40;
  302. int AREA_TRANSITION_CASTLE_08     = 41;
  303. int AREA_TRANSITION_INTERIOR_01   = 42;
  304. int AREA_TRANSITION_INTERIOR_02   = 43;
  305. int AREA_TRANSITION_INTERIOR_03   = 44;
  306. int AREA_TRANSITION_INTERIOR_04   = 45;
  307. int AREA_TRANSITION_INTERIOR_05   = 46;
  308. int AREA_TRANSITION_INTERIOR_06   = 47;
  309. int AREA_TRANSITION_INTERIOR_07   = 48;
  310. int AREA_TRANSITION_INTERIOR_08   = 49;
  311. int AREA_TRANSITION_INTERIOR_09   = 50;
  312. int AREA_TRANSITION_INTERIOR_10   = 51;
  313. int AREA_TRANSITION_INTERIOR_11   = 52;
  314. int AREA_TRANSITION_INTERIOR_12   = 53;
  315. int AREA_TRANSITION_INTERIOR_13   = 54;
  316. int AREA_TRANSITION_INTERIOR_14   = 55;
  317. int AREA_TRANSITION_INTERIOR_15   = 56;
  318. int AREA_TRANSITION_INTERIOR_16   = 57;
  319. int AREA_TRANSITION_FOREST_01     = 58;
  320. int AREA_TRANSITION_FOREST_02     = 59;
  321. int AREA_TRANSITION_FOREST_03     = 60;
  322. int AREA_TRANSITION_FOREST_04     = 61;
  323. int AREA_TRANSITION_FOREST_05     = 62;
  324. int AREA_TRANSITION_RURAL_01      = 63;
  325. int AREA_TRANSITION_RURAL_02      = 64;
  326. int AREA_TRANSITION_RURAL_03      = 65;
  327. int AREA_TRANSITION_RURAL_04      = 66;
  328. int AREA_TRANSITION_RURAL_05      = 67;
  329.  
  330. // Legacy area-transition constants.  Do not delete these.
  331. int AREA_TRANSITION_CITY          = 2;
  332. int AREA_TRANSITION_CRYPT         = 7;
  333. int AREA_TRANSITION_FOREST        = 58;
  334. int AREA_TRANSITION_RURAL         = 63;
  335.  
  336. int BODY_NODE_HAND                  = 0;
  337. int BODY_NODE_CHEST                   = 1;
  338.  
  339. float RADIUS_SIZE_SMALL           = 1.67f;
  340. float RADIUS_SIZE_MEDIUM          = 3.33f;
  341. float RADIUS_SIZE_LARGE           = 5.0f;
  342. float RADIUS_SIZE_HUGE            = 6.67f;
  343. float RADIUS_SIZE_GARGANTUAN      = 8.33f;
  344. float RADIUS_SIZE_COLOSSAL        = 10.0f;
  345.  
  346. // these are magic numbers.  they should correspond to the values layed out in ExecuteCommandGetEffectType
  347. int EFFECT_TYPE_INVALIDEFFECT               = 0;
  348. int EFFECT_TYPE_DAMAGE_RESISTANCE           = 1;
  349. //int EFFECT_TYPE_ABILITY_BONUS               = 2;
  350. int EFFECT_TYPE_REGENERATE                  = 3;
  351. //int EFFECT_TYPE_SAVING_THROW_BONUS          = 4;
  352. //int EFFECT_TYPE_MODIFY_AC                   = 5;
  353. //int EFFECT_TYPE_ATTACK_BONUS                = 6;
  354. int EFFECT_TYPE_DAMAGE_REDUCTION            = 7;
  355. //int EFFECT_TYPE_DAMAGE_BONUS                = 8;
  356. int EFFECT_TYPE_TEMPORARY_HITPOINTS         = 9;
  357. //int EFFECT_TYPE_DAMAGE_IMMUNITY             = 10;
  358. int EFFECT_TYPE_ENTANGLE                    = 11;
  359. int EFFECT_TYPE_INVULNERABLE                = 12;
  360. int EFFECT_TYPE_DEAF                        = 13;
  361. int EFFECT_TYPE_RESURRECTION                = 14;
  362. int EFFECT_TYPE_IMMUNITY                    = 15;
  363. //int EFFECT_TYPE_BLIND                       = 16;
  364. int EFFECT_TYPE_ENEMY_ATTACK_BONUS          = 17;
  365. int EFFECT_TYPE_ARCANE_SPELL_FAILURE        = 18;
  366. //int EFFECT_TYPE_MOVEMENT_SPEED              = 19;
  367. int EFFECT_TYPE_AREA_OF_EFFECT              = 20;
  368. int EFFECT_TYPE_BEAM                        = 21;
  369. //int EFFECT_TYPE_SPELL_RESISTANCE            = 22;
  370. int EFFECT_TYPE_CHARMED                     = 23;
  371. int EFFECT_TYPE_CONFUSED                    = 24;
  372. int EFFECT_TYPE_FRIGHTENED                  = 25;
  373. int EFFECT_TYPE_DOMINATED                   = 26;
  374. int EFFECT_TYPE_PARALYZE                    = 27;
  375. int EFFECT_TYPE_DAZED                       = 28;
  376. int EFFECT_TYPE_STUNNED                     = 29;
  377. int EFFECT_TYPE_SLEEP                       = 30;
  378. int EFFECT_TYPE_POISON                      = 31;
  379. int EFFECT_TYPE_DISEASE                     = 32;
  380. int EFFECT_TYPE_CURSE                       = 33;
  381. int EFFECT_TYPE_SILENCE                     = 34;
  382. int EFFECT_TYPE_TURNED                      = 35;
  383. int EFFECT_TYPE_HASTE                       = 36;
  384. int EFFECT_TYPE_SLOW                        = 37;
  385. int EFFECT_TYPE_ABILITY_INCREASE            = 38;
  386. int EFFECT_TYPE_ABILITY_DECREASE            = 39;
  387. int EFFECT_TYPE_ATTACK_INCREASE             = 40;
  388. int EFFECT_TYPE_ATTACK_DECREASE             = 41;
  389. int EFFECT_TYPE_DAMAGE_INCREASE             = 42;
  390. int EFFECT_TYPE_DAMAGE_DECREASE             = 43;
  391. int EFFECT_TYPE_DAMAGE_IMMUNITY_INCREASE    = 44;
  392. int EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE    = 45;
  393. int EFFECT_TYPE_AC_INCREASE                 = 46;
  394. int EFFECT_TYPE_AC_DECREASE                 = 47;
  395. int EFFECT_TYPE_MOVEMENT_SPEED_INCREASE     = 48;
  396. int EFFECT_TYPE_MOVEMENT_SPEED_DECREASE     = 49;
  397. int EFFECT_TYPE_SAVING_THROW_INCREASE       = 50;
  398. int EFFECT_TYPE_SAVING_THROW_DECREASE       = 51;
  399. int EFFECT_TYPE_SPELL_RESISTANCE_INCREASE   = 52;
  400. int EFFECT_TYPE_SPELL_RESISTANCE_DECREASE   = 53;
  401. int EFFECT_TYPE_SKILL_INCREASE              = 54;
  402. int EFFECT_TYPE_SKILL_DECREASE              = 55;
  403. int EFFECT_TYPE_INVISIBILITY                = 56;
  404. int EFFECT_TYPE_IMPROVEDINVISIBILITY        = 57;
  405. int EFFECT_TYPE_DARKNESS                    = 58;
  406. int EFFECT_TYPE_DISPELMAGICALL              = 59;
  407. int EFFECT_TYPE_ELEMENTALSHIELD             = 60;
  408. int EFFECT_TYPE_NEGATIVELEVEL               = 61;
  409. int EFFECT_TYPE_POLYMORPH                   = 62;
  410. int EFFECT_TYPE_SANCTUARY                   = 63;
  411. int EFFECT_TYPE_TRUESEEING                  = 64;
  412. int EFFECT_TYPE_SEEINVISIBLE                = 65;
  413. int EFFECT_TYPE_TIMESTOP                    = 66;
  414. int EFFECT_TYPE_BLINDNESS                   = 67;
  415. int EFFECT_TYPE_SPELLLEVELABSORPTION        = 68;
  416. int EFFECT_TYPE_DISPELMAGICBEST             = 69;
  417. int EFFECT_TYPE_ULTRAVISION                 = 70;
  418. int EFFECT_TYPE_MISS_CHANCE                 = 71;
  419. int EFFECT_TYPE_CONCEALMENT                 = 72;
  420. int EFFECT_TYPE_SPELL_IMMUNITY              = 73;
  421.  
  422. int ITEM_PROPERTY_ABILITY_BONUS                            = 0 ;
  423. int ITEM_PROPERTY_AC_BONUS                                 = 1 ;
  424. int ITEM_PROPERTY_AC_BONUS_VS_ALIGNMENT_GROUP              = 2 ;
  425. int ITEM_PROPERTY_AC_BONUS_VS_DAMAGE_TYPE                  = 3 ;
  426. int ITEM_PROPERTY_AC_BONUS_VS_RACIAL_GROUP                 = 4 ;
  427. int ITEM_PROPERTY_AC_BONUS_VS_SPECIFIC_ALIGNMENT           = 5 ;
  428. int ITEM_PROPERTY_ENHANCEMENT_BONUS                        = 6 ;
  429. int ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_ALIGNMENT_GROUP     = 7 ;
  430. int ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP        = 8 ;
  431. int ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_SPECIFIC_ALIGNEMENT = 9 ;
  432. int ITEM_PROPERTY_DECREASED_ENHANCEMENT_MODIFIER           = 10 ;
  433. int ITEM_PROPERTY_BASE_ITEM_WEIGHT_REDUCTION               = 11 ;
  434. int ITEM_PROPERTY_BONUS_FEAT                               = 12 ;
  435. int ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N              = 13 ;
  436. int ITEM_PROPERTY_BOOMERANG                                = 14 ;
  437. int ITEM_PROPERTY_CAST_SPELL                               = 15 ;
  438. int ITEM_PROPERTY_DAMAGE_BONUS                             = 16 ;
  439. int ITEM_PROPERTY_DAMAGE_BONUS_VS_ALIGNMENT_GROUP          = 17 ;
  440. int ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP             = 18 ;
  441. int ITEM_PROPERTY_DAMAGE_BONUS_VS_SPECIFIC_ALIGNMENT       = 19 ;
  442. int ITEM_PROPERTY_IMMUNITY_DAMAGE_TYPE                     = 20 ;
  443. int ITEM_PROPERTY_DECREASED_DAMAGE                         = 21 ;
  444. int ITEM_PROPERTY_DAMAGE_REDUCTION                         = 22 ;
  445. int ITEM_PROPERTY_DAMAGE_RESISTANCE                        = 23 ;
  446. int ITEM_PROPERTY_DAMAGE_VULNERABILITY                     = 24 ;
  447. int ITEM_PROPERTY_DANCING                                  = 25 ;
  448. int ITEM_PROPERTY_DARKVISION                               = 26 ;
  449. int ITEM_PROPERTY_DECREASED_ABILITY_SCORE                  = 27 ;
  450. int ITEM_PROPERTY_DECREASED_AC                             = 28 ;
  451. int ITEM_PROPERTY_DECREASED_SKILL_MODIFIER                 = 29 ;
  452. int ITEM_PROPERTY_DOUBLE_STACK                             = 30 ;
  453. int ITEM_PROPERTY_ENHANCED_CONTAINER_BONUS_SLOTS           = 31 ;
  454. int ITEM_PROPERTY_ENHANCED_CONTAINER_REDUCED_WEIGHT        = 32 ;
  455. int ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE                  = 33 ;
  456. int ITEM_PROPERTY_EXTRA_RANGED_DAMAGE_TYPE                 = 34 ;
  457. int ITEM_PROPERTY_HASTE                                    = 35 ;
  458. int ITEM_PROPERTY_HOLY_AVENGER                             = 36 ;
  459. int ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS                   = 37 ;
  460. int ITEM_PROPERTY_IMPROVED_EVASION                         = 38 ;
  461. int ITEM_PROPERTY_SPELL_RESISTANCE                         = 39 ;
  462. int ITEM_PROPERTY_SAVING_THROW_BONUS                       = 40 ;
  463. int ITEM_PROPERTY_SAVING_THROW_BONUS_SPECIFIC              = 41 ;
  464. int ITEM_PROPERTY_KEEN                                     = 43 ;
  465. int ITEM_PROPERTY_LIGHT                                    = 44 ;
  466. int ITEM_PROPERTY_MIGHTY                                   = 45 ;
  467. int ITEM_PROPERTY_MIND_BLANK                               = 46 ;
  468. int ITEM_PROPERTY_NO_DAMAGE                                = 47 ;
  469. int ITEM_PROPERTY_ON_HIT_PROPERTIES                        = 48 ;
  470. int ITEM_PROPERTY_DECREASED_SAVING_THROWS                  = 49 ;
  471. int ITEM_PROPERTY_DECREASED_SAVING_THROWS_SPECIFIC         = 50 ;
  472. int ITEM_PROPERTY_REGENERATION                             = 51 ;
  473. int ITEM_PROPERTY_SKILL_BONUS                              = 52 ;
  474. int ITEM_PROPERTY_IMMUNITY_SPECIFIC_SPELL                  = 53 ;
  475. int ITEM_PROPERTY_IMMUNITY_SPELL_SCHOOL                    = 54 ;
  476. int ITEM_PROPERTY_THIEVES_TOOLS                            = 55 ;
  477. int ITEM_PROPERTY_ATTACK_BONUS                             = 56 ;
  478. int ITEM_PROPERTY_ATTACK_BONUS_VS_ALIGNMENT_GROUP          = 57 ;
  479. int ITEM_PROPERTY_ATTACK_BONUS_VS_RACIAL_GROUP             = 58 ;
  480. int ITEM_PROPERTY_ATTACK_BONUS_VS_SPECIFIC_ALIGNMENT       = 59 ;
  481. int ITEM_PROPERTY_DECREASED_ATTACK_MODIFIER                = 60 ;
  482. int ITEM_PROPERTY_UNLIMITED_AMMUNITION                     = 61 ;
  483. int ITEM_PROPERTY_USE_LIMITATION_ALIGNMENT_GROUP           = 62 ;
  484. int ITEM_PROPERTY_USE_LIMITATION_CLASS                     = 63 ;
  485. int ITEM_PROPERTY_USE_LIMITATION_RACIAL_TYPE               = 64 ;
  486. int ITEM_PROPERTY_USE_LIMITATION_SPECIFIC_ALIGNMENT        = 65 ;
  487. int ITEM_PROPERTY_USE_LIMITATION_TILESET                   = 66 ;
  488. int ITEM_PROPERTY_REGENERATION_VAMPIRIC                    = 67 ;
  489. int ITEM_PROPERTY_VORPAL                                   = 68 ;
  490. int ITEM_PROPERTY_WOUNDING                                 = 69 ;
  491. int ITEM_PROPERTY_TRAP                                     = 70 ;
  492. int ITEM_PROPERTY_TRUE_SEEING                              = 71 ;
  493. int ITEM_PROPERTY_ON_MONSTER_HIT                           = 72 ;
  494. int ITEM_PROPERTY_TURN_RESISTANCE                          = 73 ;
  495. int ITEM_PROPERTY_MASSIVE_CRITICALS                        = 74 ;
  496. int ITEM_PROPERTY_FREEDOM_OF_MOVEMENT                      = 75 ;
  497. int ITEM_PROPERTY_POISON                                   = 76 ;
  498. int ITEM_PROPERTY_MONSTER_DAMAGE                           = 77 ;
  499. int ITEM_PROPERTY_IMMUNITY_SPELLS_BY_LEVEL                 = 78 ;
  500.  
  501. int BASE_ITEM_SHORTSWORD            = 0;
  502. int BASE_ITEM_LONGSWORD             = 1;
  503. int BASE_ITEM_BATTLEAXE             = 2;
  504. int BASE_ITEM_BASTARDSWORD          = 3;
  505. int BASE_ITEM_LIGHTFLAIL            = 4;
  506. int BASE_ITEM_WARHAMMER             = 5;
  507. int BASE_ITEM_HEAVYCROSSBOW         = 6;
  508. int BASE_ITEM_LIGHTCROSSBOW         = 7;
  509. int BASE_ITEM_LONGBOW               = 8;
  510. int BASE_ITEM_LIGHTMACE             = 9;
  511. int BASE_ITEM_HALBERD               = 10;
  512. int BASE_ITEM_SHORTBOW              = 11;
  513. int BASE_ITEM_TWOBLADEDSWORD        = 12;
  514. int BASE_ITEM_GREATSWORD            = 13;
  515. int BASE_ITEM_SMALLSHIELD           = 14;
  516. int BASE_ITEM_TORCH                 = 15;
  517. int BASE_ITEM_ARMOR                 = 16;
  518. int BASE_ITEM_HELMET                = 17;
  519. int BASE_ITEM_GREATAXE              = 18;
  520. int BASE_ITEM_AMULET                = 19;
  521. int BASE_ITEM_ARROW                 = 20;
  522. int BASE_ITEM_BELT                  = 21;
  523. int BASE_ITEM_DAGGER                = 22;
  524. int BASE_ITEM_MISCSMALL             = 24;
  525. int BASE_ITEM_BOLT                  = 25;
  526. int BASE_ITEM_BOOTS                 = 26;
  527. int BASE_ITEM_BULLET                = 27;
  528. int BASE_ITEM_CLUB                  = 28;
  529. int BASE_ITEM_MISCMEDIUM            = 29;
  530. int BASE_ITEM_DART                  = 31;
  531. int BASE_ITEM_DIREMACE              = 32;
  532. int BASE_ITEM_DOUBLEAXE             = 33;
  533. int BASE_ITEM_MISCLARGE             = 34;
  534. int BASE_ITEM_HEAVYFLAIL            = 35;
  535. int BASE_ITEM_GLOVES                = 36;
  536. int BASE_ITEM_LIGHTHAMMER           = 37;
  537. int BASE_ITEM_HANDAXE               = 38;
  538. int BASE_ITEM_HEALERSKIT            = 39;
  539. int BASE_ITEM_KAMA                  = 40;
  540. int BASE_ITEM_KATANA                = 41;
  541. int BASE_ITEM_KUKRI                 = 42;
  542. int BASE_ITEM_MISCTALL              = 43;
  543. int BASE_ITEM_MAGICROD              = 44;
  544. int BASE_ITEM_MAGICSTAFF            = 45;
  545. int BASE_ITEM_MAGICWAND             = 46;
  546. int BASE_ITEM_MORNINGSTAR           = 47;
  547.  
  548. int BASE_ITEM_POTIONS               = 49;
  549. int BASE_ITEM_QUARTERSTAFF          = 50;
  550. int BASE_ITEM_RAPIER                = 51;
  551. int BASE_ITEM_RING                  = 52;
  552. int BASE_ITEM_SCIMITAR              = 53;
  553. int BASE_ITEM_SCROLL                = 54;
  554. int BASE_ITEM_SCYTHE                = 55;
  555. int BASE_ITEM_LARGESHIELD           = 56;
  556. int BASE_ITEM_TOWERSHIELD           = 57;
  557. int BASE_ITEM_SHORTSPEAR            = 58;
  558. int BASE_ITEM_SHURIKEN              = 59;
  559. int BASE_ITEM_SICKLE                = 60;
  560. int BASE_ITEM_SLING                 = 61;
  561. int BASE_ITEM_THIEVESTOOLS          = 62;
  562. int BASE_ITEM_THROWINGAXE           = 63;
  563. int BASE_ITEM_TRAPKIT               = 64;
  564. int BASE_ITEM_KEY                   = 65;
  565. int BASE_ITEM_LARGEBOX              = 66;
  566. int BASE_ITEM_MISCWIDE              = 68;
  567. int BASE_ITEM_CSLASHWEAPON          = 69;
  568. int BASE_ITEM_CPIERCWEAPON          = 70;
  569. int BASE_ITEM_CBLUDGWEAPON          = 71;
  570. int BASE_ITEM_CSLSHPRCWEAP          = 72;
  571. int BASE_ITEM_CREATUREITEM          = 73;
  572. int BASE_ITEM_BOOK                  = 74;
  573. int BASE_ITEM_SPELLSCROLL           = 75;
  574. int BASE_ITEM_GOLD                  = 76;
  575. int BASE_ITEM_GEM                   = 77;
  576. int BASE_ITEM_BRACER                = 78;
  577. int BASE_ITEM_MISCTHIN              = 79;
  578. int BASE_ITEM_CLOAK                 = 80;
  579.  
  580. int BASE_ITEM_INVALID               = 256;
  581.  
  582. int VFX_NONE                        = -1;
  583. int VFX_DUR_BLUR                    = 0;
  584. int VFX_DUR_DARKNESS                = 1;
  585. int VFX_DUR_ENTANGLE                = 2;
  586. int VFX_DUR_FREEDOM_OF_MOVEMENT     = 3;
  587. int VFX_DUR_GLOBE_INVULNERABILITY   = 4;
  588. int VFX_DUR_BLACKOUT                = 5;
  589. int VFX_DUR_INVISIBILITY            = 6;
  590. int VFX_DUR_MIND_AFFECTING_NEGATIVE = 7;
  591. int VFX_DUR_MIND_AFFECTING_POSITIVE = 8;
  592. int VFX_DUR_GHOSTLY_VISAGE          = 9;
  593. int VFX_DUR_ETHEREAL_VISAGE         = 10;
  594. int VFX_DUR_PROT_BARKSKIN           = 11;
  595. int VFX_DUR_PROT_GREATER_STONESKIN  = 12;
  596. int VFX_DUR_PROT_PREMONITION        = 13;
  597. int VFX_DUR_PROT_SHADOW_ARMOR       = 14;
  598. int VFX_DUR_PROT_STONESKIN          = 15;
  599. int VFX_DUR_SANCTUARY               = 16;
  600. int VFX_DUR_WEB                     = 17;
  601. int VFX_FNF_BLINDDEAF               = 18;
  602. int VFX_FNF_DISPEL                  = 19;
  603. int VFX_FNF_DISPEL_DISJUNCTION      = 20;
  604. int VFX_FNF_DISPEL_GREATER          = 21 ;
  605. int VFX_FNF_FIREBALL                = 22 ;
  606. int VFX_FNF_FIRESTORM               = 23 ;
  607. int VFX_FNF_IMPLOSION               = 24 ;
  608. //int VFX_FNF_MASS_HASTE = 25 ;
  609. int VFX_FNF_MASS_HEAL               = 26 ;
  610. int VFX_FNF_MASS_MIND_AFFECTING     = 27 ;
  611. int VFX_FNF_METEOR_SWARM            = 28 ;
  612. int VFX_FNF_NATURES_BALANCE         = 29 ;
  613. int VFX_FNF_PWKILL                  = 30 ;
  614. int VFX_FNF_PWSTUN                  = 31 ;
  615. int VFX_FNF_SUMMON_GATE             = 32 ;
  616. int VFX_FNF_SUMMON_MONSTER_1        = 33 ;
  617. int VFX_FNF_SUMMON_MONSTER_2        = 34 ;
  618. int VFX_FNF_SUMMON_MONSTER_3        = 35 ;
  619. int VFX_FNF_SUMMON_UNDEAD           = 36 ;
  620. int VFX_FNF_SUNBEAM                 = 37 ;
  621. int VFX_FNF_TIME_STOP               = 38 ;
  622. int VFX_FNF_WAIL_O_BANSHEES         = 39 ;
  623. int VFX_FNF_WEIRD                   = 40 ;
  624. int VFX_FNF_WORD                    = 41 ;
  625. int VFX_IMP_AC_BONUS                = 42 ;
  626. int VFX_IMP_ACID_L                  = 43 ;
  627. int VFX_IMP_ACID_S                  = 44 ;
  628. //int VFX_IMP_ALTER_WEAPON = 45 ;
  629. int VFX_IMP_BLIND_DEAF_M            = 46 ;
  630. int VFX_IMP_BREACH                  = 47 ;
  631. int VFX_IMP_CONFUSION_S             = 48 ;
  632. int VFX_IMP_DAZED_S                 = 49 ;
  633. int VFX_IMP_DEATH                   = 50 ;
  634. int VFX_IMP_DISEASE_S               = 51 ;
  635. int VFX_IMP_DISPEL                  = 52 ;
  636. int VFX_IMP_DISPEL_DISJUNCTION      = 53 ;
  637. int VFX_IMP_DIVINE_STRIKE_FIRE      = 54 ;
  638. int VFX_IMP_DIVINE_STRIKE_HOLY      = 55 ;
  639. int VFX_IMP_DOMINATE_S              = 56 ;
  640. int VFX_IMP_DOOM                    = 57 ;
  641. int VFX_IMP_FEAR_S                  = 58 ;
  642. //int VFX_IMP_FLAME_L = 59 ;
  643. int VFX_IMP_FLAME_M                 = 60 ;
  644. int VFX_IMP_FLAME_S                 = 61 ;
  645. int VFX_IMP_FROST_L                 = 62 ;
  646. int VFX_IMP_FROST_S                 = 63 ;
  647. int VFX_IMP_GREASE                  = 64 ;
  648. int VFX_IMP_HASTE                   = 65 ;
  649. int VFX_IMP_HEALING_G               = 66 ;
  650. int VFX_IMP_HEALING_L               = 67 ;
  651. int VFX_IMP_HEALING_M               = 68 ;
  652. int VFX_IMP_HEALING_S               = 69 ;
  653. int VFX_IMP_HEALING_X               = 70 ;
  654. int VFX_IMP_HOLY_AID                = 71 ;
  655. int VFX_IMP_KNOCK                   = 72 ;
  656. int VFX_BEAM_LIGHTNING              = 73 ;
  657. int VFX_IMP_LIGHTNING_M             = 74 ;
  658. int VFX_IMP_LIGHTNING_S             = 75 ;
  659. int VFX_IMP_MAGBLUE                 = 76 ;
  660. //int VFX_IMP_MAGBLUE2 = 77 ;
  661. //int VFX_IMP_MAGBLUE3 = 78 ;
  662. //int VFX_IMP_MAGBLUE4 = 79 ;
  663. //int VFX_IMP_MAGBLUE5 = 80 ;
  664. int VFX_IMP_NEGATIVE_ENERGY         = 81 ;
  665. int VFX_DUR_PARALYZE_HOLD           = 82 ;
  666. int VFX_IMP_POISON_L                = 83 ;
  667. int VFX_IMP_POISON_S                = 84 ;
  668. int VFX_IMP_POLYMORPH               = 85 ;
  669. int VFX_IMP_PULSE_COLD              = 86 ;
  670. int VFX_IMP_PULSE_FIRE              = 87 ;
  671. int VFX_IMP_PULSE_HOLY              = 88 ;
  672. int VFX_IMP_PULSE_NEGATIVE          = 89 ;
  673. int VFX_IMP_RAISE_DEAD              = 90 ;
  674. int VFX_IMP_REDUCE_ABILITY_SCORE    = 91 ;
  675. int VFX_IMP_REMOVE_CONDITION        = 92 ;
  676. int VFX_IMP_SILENCE                 = 93 ;
  677. int VFX_IMP_SLEEP                   = 94 ;
  678. int VFX_IMP_SLOW                    = 95 ;
  679. int VFX_IMP_SONIC                   = 96 ;
  680. int VFX_IMP_STUN                    = 97 ;
  681. int VFX_IMP_SUNSTRIKE               = 98 ;
  682. int VFX_IMP_UNSUMMON                = 99 ;
  683. int VFX_COM_SPECIAL_BLUE_RED        = 100 ;
  684. int VFX_COM_SPECIAL_PINK_ORANGE     = 101 ;
  685. int VFX_COM_SPECIAL_RED_WHITE       = 102 ;
  686. int VFX_COM_SPECIAL_RED_ORANGE      = 103 ;
  687. int VFX_COM_SPECIAL_WHITE_BLUE      = 104 ;
  688. int VFX_COM_SPECIAL_WHITE_ORANGE    = 105 ;
  689. int VFX_COM_BLOOD_REG_WIMP          = 106 ;
  690. int VFX_COM_BLOOD_LRG_WIMP          = 107 ;
  691. int VFX_COM_BLOOD_CRT_WIMP          = 108 ;
  692. int VFX_COM_BLOOD_REG_RED           = 109 ;
  693. int VFX_COM_BLOOD_REG_GREEN         = 110 ;
  694. int VFX_COM_BLOOD_REG_YELLOW        = 111 ;
  695. int VFX_COM_BLOOD_LRG_RED           = 112 ;
  696. int VFX_COM_BLOOD_LRG_GREEN         = 113 ;
  697. int VFX_COM_BLOOD_LRG_YELLOW        = 114 ;
  698. int VFX_COM_BLOOD_CRT_RED           = 115 ;
  699. int VFX_COM_BLOOD_CRT_GREEN         = 116 ;
  700. int VFX_COM_BLOOD_CRT_YELLOW        = 117 ;
  701. int VFX_COM_SPARKS_PARRY            = 118 ;
  702. //int VFX_COM_GIB = 119 ;
  703. int VFX_COM_UNLOAD_MODEL            = 120 ;
  704. int VFX_COM_CHUNK_RED_SMALL         = 121 ;
  705. int VFX_COM_CHUNK_RED_MEDIUM        = 122 ;
  706. int VFX_COM_CHUNK_GREEN_SMALL       = 123 ;
  707. int VFX_COM_CHUNK_GREEN_MEDIUM      = 124 ;
  708. int VFX_COM_CHUNK_YELLOW_SMALL      = 125 ;
  709. int VFX_COM_CHUNK_YELLOW_MEDIUM     = 126 ;
  710. //int VFX_ITM_ACID = 127 ;
  711. //int VFX_ITM_FIRE = 128 ;
  712. //int VFX_ITM_FROST = 129 ;
  713. //int VFX_ITM_ILLUMINATED_BLUE = 130 ;
  714. //int VFX_ITM_ILLUMINATED_PURPLE = 131 ;
  715. //int VFX_ITM_ILLUMINATED_RED = 132 ;
  716. //int VFX_ITM_LIGHTNING = 133 ;
  717. //int VFX_ITM_PULSING_BLUE = 134 ;
  718. //int VFX_ITM_PULSING_PURPLE = 135 ;
  719. //int VFX_ITM_PULSING_RED = 136 ;
  720. //int VFX_ITM_SMOKING = 137 ;
  721. int VFX_DUR_SPELLTURNING            = 138;
  722. int VFX_IMP_IMPROVE_ABILITY_SCORE   = 139;
  723. int VFX_IMP_CHARM                   = 140;
  724. int VFX_IMP_MAGICAL_VISION          = 141;
  725. //int VFX_IMP_LAW_HELP = 142;
  726. //int VFX_IMP_CHAOS_HELP = 143;
  727. int VFX_IMP_EVIL_HELP               = 144;
  728. int VFX_IMP_GOOD_HELP               = 145;
  729. int VFX_IMP_DEATH_WARD              = 146;
  730. int VFX_DUR_ELEMENTAL_SHIELD        = 147;
  731. int VFX_DUR_LIGHT                   = 148;
  732. int VFX_IMP_MAGIC_PROTECTION        = 149;
  733. int VFX_IMP_SUPER_HEROISM           = 150;
  734. int VFX_FNF_STORM                   = 151;
  735. int VFX_IMP_ELEMENTAL_PROTECTION    = 152;
  736. int VFX_DUR_LIGHT_BLUE_5            = 153;
  737. int VFX_DUR_LIGHT_BLUE_10           = 154;
  738. int VFX_DUR_LIGHT_BLUE_15           = 155;
  739. int VFX_DUR_LIGHT_BLUE_20           = 156;
  740. int VFX_DUR_LIGHT_YELLOW_5          = 157;
  741. int VFX_DUR_LIGHT_YELLOW_10         = 158;
  742. int VFX_DUR_LIGHT_YELLOW_15         = 159;
  743. int VFX_DUR_LIGHT_YELLOW_20         = 160;
  744. int VFX_DUR_LIGHT_PURPLE_5          = 161;
  745. int VFX_DUR_LIGHT_PURPLE_10         = 162;
  746. int VFX_DUR_LIGHT_PURPLE_15         = 163;
  747. int VFX_DUR_LIGHT_PURPLE_20         = 164;
  748. int VFX_DUR_LIGHT_RED_5             = 165;
  749. int VFX_DUR_LIGHT_RED_10            = 166;
  750. int VFX_DUR_LIGHT_RED_15            = 167;
  751. int VFX_DUR_LIGHT_RED_20            = 168;
  752. int VFX_DUR_LIGHT_ORANGE_5          = 169;
  753. int VFX_DUR_LIGHT_ORANGE_10         = 170;
  754. int VFX_DUR_LIGHT_ORANGE_15         = 171;
  755. int VFX_DUR_LIGHT_ORANGE_20         = 172;
  756. int VFX_DUR_LIGHT_WHITE_5           = 173;
  757. int VFX_DUR_LIGHT_WHITE_10          = 174;
  758. int VFX_DUR_LIGHT_WHITE_15          = 175;
  759. int VFX_DUR_LIGHT_WHITE_20          = 176;
  760. int VFX_DUR_LIGHT_GREY_5            = 177;
  761. int VFX_DUR_LIGHT_GREY_10           = 178;
  762. int VFX_DUR_LIGHT_GREY_15           = 179;
  763. int VFX_DUR_LIGHT_GREY_20           = 180;
  764. int VFX_IMP_MIRV                    = 181;
  765. int VFX_DUR_DARKVISION              = 182;
  766. int VFX_FNF_SOUND_BURST             = 183;
  767. int VFX_FNF_STRIKE_HOLY             = 184;
  768. int VFX_FNF_LOS_EVIL_10             = 185;
  769. int VFX_FNF_LOS_EVIL_20             = 186;
  770. int VFX_FNF_LOS_EVIL_30             = 187;
  771. int VFX_FNF_LOS_HOLY_10             = 188;
  772. int VFX_FNF_LOS_HOLY_20             = 189;
  773. int VFX_FNF_LOS_HOLY_30             = 190;
  774. int VFX_FNF_LOS_NORMAL_10           = 191;
  775. int VFX_FNF_LOS_NORMAL_20           = 192;
  776. int VFX_FNF_LOS_NORMAL_30           = 193;
  777. int VFX_IMP_HEAD_ACID               = 194;
  778. int VFX_IMP_HEAD_FIRE               = 195;
  779. int VFX_IMP_HEAD_SONIC              = 196;
  780. int VFX_IMP_HEAD_ELECTRICITY        = 197;
  781. int VFX_IMP_HEAD_COLD               = 198;
  782. int VFX_IMP_HEAD_HOLY               = 199;
  783. int VFX_IMP_HEAD_NATURE             = 200;
  784. int VFX_IMP_HEAD_HEAL               = 201;
  785. int VFX_IMP_HEAD_MIND               = 202;
  786. int VFX_IMP_HEAD_EVIL               = 203;
  787. int VFX_IMP_HEAD_ODD                = 204;
  788. int VFX_DUR_CESSATE_NEUTRAL         = 205;
  789. int VFX_DUR_CESSATE_POSITIVE        = 206;
  790. int VFX_DUR_CESSATE_NEGATIVE        = 207;
  791. int VFX_DUR_MIND_AFFECTING_DISABLED = 208;
  792. int VFX_DUR_MIND_AFFECTING_DOMINATED= 209;
  793. int VFX_BEAM_FIRE                   = 210;
  794. int VFX_BEAM_COLD                   = 211;
  795. int VFX_BEAM_HOLY                   = 212;
  796. int VFX_BEAM_MIND                   = 213;
  797. int VFX_BEAM_EVIL                   = 214;
  798. int VFX_BEAM_ODD                    = 215;
  799. int VFX_BEAM_FIRE_LASH              = 216;
  800. int VFX_IMP_DEATH_L                 = 217;
  801. int VFX_DUR_MIND_AFFECTING_FEAR     = 218;
  802. int VFX_FNF_SUMMON_CELESTIAL        = 219;
  803. int VFX_DUR_GLOBE_MINOR             = 220;
  804. int VFX_IMP_RESTORATION_LESSER      = 221;
  805. int VFX_IMP_RESTORATION             = 222;
  806. int VFX_IMP_RESTORATION_GREATER     = 223;
  807. int VFX_DUR_PROTECTION_ELEMENTS     = 224;
  808. int VFX_DUR_PROTECTION_GOOD_MINOR   = 225;
  809. int VFX_DUR_PROTECTION_GOOD_MAJOR   = 226;
  810. int VFX_DUR_PROTECTION_EVIL_MINOR   = 227;
  811. int VFX_DUR_PROTECTION_EVIL_MAJOR   = 228;
  812. int VFX_DUR_MAGICAL_SIGHT           = 229;
  813. int VFX_DUR_WEB_MASS                = 230;
  814. int VFX_FNF_ICESTORM                = 231;
  815. int VFX_DUR_PARALYZED               = 232;
  816. int VFX_IMP_MIRV_FLAME              = 233;
  817. int VFX_IMP_DESTRUCTION             = 234;
  818. int VFX_COM_CHUNK_RED_LARGE         = 235;
  819. int VFX_COM_CHUNK_BONE_MEDIUM       = 236;
  820. int VFX_COM_BLOOD_SPARK_SMALL       = 237;
  821. int VFX_COM_BLOOD_SPARK_MEDIUM      = 238;
  822. int VFX_COM_BLOOD_SPARK_LARGE       = 239;
  823. int VFX_DUR_GHOSTLY_PULSE           = 240;
  824. int VFX_FNF_HORRID_WILTING          = 241;
  825. int VFX_DUR_BLINDVISION             = 242;
  826. int VFX_DUR_LOWLIGHTVISION          = 243;
  827. int VFX_DUR_ULTRAVISION             = 244;
  828. int VFX_DUR_MIRV_ACID               = 245;
  829. int VFX_IMP_HARM                    = 246;
  830. int VFX_DUR_BLIND                   = 247;
  831. int VFX_DUR_ANTI_LIGHT_10           = 248;
  832. int VFX_DUR_MAGIC_RESISTANCE        = 249;
  833. int VFX_IMP_MAGIC_RESISTANCE_USE    = 250;
  834. int VFX_IMP_GLOBE_USE                  = 251;
  835. int VFX_IMP_WILL_SAVING_THROW_USE      = 252;
  836. int VFX_IMP_SPIKE_TRAP                 = 253;
  837. int VFX_IMP_SPELL_MANTLE_USE           = 254;
  838. int VFX_IMP_FORTITUDE_SAVING_THROW_USE = 255;
  839. int VFX_IMP_REFLEX_SAVE_THROW_USE      = 256;
  840. int VFX_FNF_GAS_EXPLOSION_ACID         = 257;
  841. int VFX_FNF_GAS_EXPLOSION_EVIL         = 258;
  842. int VFX_FNF_GAS_EXPLOSION_NATURE       = 259;
  843. int VFX_FNF_GAS_EXPLOSION_FIRE         = 260;
  844. int VFX_FNF_GAS_EXPLOSION_GREASE       = 261;
  845. int VFX_FNF_GAS_EXPLOSION_MIND         = 262;
  846. int VFX_FNF_SMOKE_PUFF                 = 263;
  847. int VFX_IMP_PULSE_WATER                = 264;
  848. int VFX_IMP_PULSE_WIND                 = 265;
  849. int VFX_IMP_PULSE_NATURE               = 266;
  850. int VFX_DUR_AURA_COLD                  = 267;
  851. int VFX_DUR_AURA_FIRE                  = 268;
  852. int VFX_DUR_AURA_POISON                = 269;
  853. int VFX_DUR_AURA_DISEASE               = 270;
  854. int VFX_DUR_AURA_ODD                   = 271;
  855. int VFX_DUR_AURA_SILENCE               = 272;
  856. int VFX_IMP_AURA_HOLY                  = 273;
  857. int VFX_IMP_AURA_UNEARTHLY             = 274;
  858. int VFX_IMP_AURA_FEAR                  = 275;
  859. int VFX_IMP_AURA_NEGATIVE_ENERGY       = 276;
  860. int VFX_DUR_BARD_SONG                  = 277;
  861. int VFX_FNF_HOWL_MIND                  = 278;
  862. int VFX_FNF_HOWL_ODD                   = 279;
  863. int VFX_COM_HIT_FIRE                   = 280;
  864. int VFX_COM_HIT_FROST                  = 281;
  865. int VFX_COM_HIT_ELECTRICAL             = 282;
  866. int VFX_COM_HIT_ACID                   = 283;
  867. int VFX_COM_HIT_SONIC                  = 284;
  868. int VFX_FNF_HOWL_WAR_CRY               = 285;
  869. int VFX_FNF_SCREEN_SHAKE               = 286;
  870. int VFX_FNF_SCREEN_BUMP                = 287;
  871. int VFX_COM_HIT_NEGATIVE               = 288;
  872. int VFX_COM_HIT_DIVINE                 = 289;
  873. int VFX_FNF_HOWL_WAR_CRY_FEMALE        = 290;
  874. int VFX_DUR_AURA_DRAGON_FEAR           = 291;
  875. int VFX_DUR_FLAG_RED                   = 303;
  876. int VFX_DUR_FLAG_BLUE                  = 304;
  877. int VFX_DUR_FLAG_GOLD                  = 305;
  878. int VFX_DUR_FLAG_PURPLE                = 306;
  879.  
  880. int AOE_PER_FOGACID                = 0;
  881. int AOE_PER_FOGFIRE                = 1;
  882. int AOE_PER_FOGSTINK               = 2;
  883. int AOE_PER_FOGKILL                = 3;
  884. int AOE_PER_FOGMIND                = 4;
  885. int AOE_PER_WALLFIRE               = 5;
  886. int AOE_PER_WALLWIND               = 6;
  887. int AOE_PER_WALLBLADE              = 7;
  888. int AOE_PER_WEB                    = 8;
  889. int AOE_PER_ENTANGLE               = 9;
  890. //int AOE_PER_CHAOS = 10;
  891. int AOE_PER_DARKNESS               = 11;
  892. int AOE_MOB_CIRCEVIL               = 12;
  893. int AOE_MOB_CIRCGOOD               = 13;
  894. int AOE_MOB_CIRCLAW                = 14;
  895. int AOE_MOB_CIRCCHAOS              = 15;
  896. int AOE_MOB_FEAR                   = 16;
  897. int AOE_MOB_BLINDING               = 17;
  898. int AOE_MOB_UNEARTHLY              = 18;
  899. int AOE_MOB_MENACE                 = 19;
  900. int AOE_MOB_UNNATURAL              = 20;
  901. int AOE_MOB_STUN                   = 21;
  902. int AOE_MOB_PROTECTION             = 22;
  903. int AOE_MOB_FIRE                   = 23;
  904. int AOE_MOB_FROST                  = 24;
  905. int AOE_MOB_ELECTRICAL             = 25;
  906. int AOE_PER_FOGGHOUL               = 26;
  907. int AOE_MOB_TYRANT_FOG             = 27;
  908. int AOE_PER_STORM                  = 28;
  909. int AOE_PER_INVIS_SPHERE           = 29;
  910. int AOE_MOB_SILENCE                = 30;
  911. int AOE_PER_DELAY_BLAST_FIREBALL   = 31;
  912. int AOE_PER_GREASE                 = 32;
  913. int AOE_PER_CREEPING_DOOM          = 33;
  914. int AOE_PER_EVARDS_BLACK_TENTACLES = 34;
  915. int AOE_MOB_INVISIBILITY_PURGE     = 35;
  916. int AOE_MOB_DRAGON_FEAR            = 36;
  917.  
  918. int SPELL_ALL_SPELLS                        = -1;  // used for spell immunity.
  919. int SPELL_ACID_FOG                          = 0;
  920. int SPELL_AID                               = 1;
  921. int SPELL_ANIMATE_DEAD                      = 2;
  922. int SPELL_BARKSKIN                          = 3;
  923. int SPELL_BESTOW_CURSE                      = 4;
  924. int SPELL_BLADE_BARRIER                     = 5;
  925. int SPELL_BLESS                             = 6;
  926. int SPELL_BLESS_WEAPON                      = 7;
  927. int SPELL_BLINDNESS_AND_DEAFNESS            = 8;
  928. int SPELL_BULLS_STRENGTH                    = 9;
  929. int SPELL_BURNING_HANDS                     = 10;
  930. int SPELL_CALL_LIGHTNING                    = 11;
  931. //int SPELL_CALM_EMOTIONS = 12;
  932. int SPELL_CATS_GRACE                        = 13;
  933. int SPELL_CHAIN_LIGHTNING                   = 14;
  934. int SPELL_CHARM_MONSTER                     = 15;
  935. int SPELL_CHARM_PERSON                      = 16;
  936. int SPELL_CHARM_PERSON_OR_ANIMAL            = 17;
  937. int SPELL_CIRCLE_OF_DEATH                   = 18;
  938. int SPELL_CIRCLE_OF_DOOM                    = 19;
  939. int SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE    = 20;
  940. int SPELL_CLARITY                           = 21;
  941. int SPELL_CLOAK_OF_CHAOS                    = 22;
  942. int SPELL_CLOUDKILL                         = 23;
  943. int SPELL_COLOR_SPRAY                       = 24;
  944. int SPELL_CONE_OF_COLD                      = 25;
  945. int SPELL_CONFUSION                         = 26;
  946. int SPELL_CONTAGION                         = 27;
  947. int SPELL_CONTROL_UNDEAD                    = 28;
  948. int SPELL_CREATE_GREATER_UNDEAD             = 29;
  949. int SPELL_CREATE_UNDEAD                     = 30;
  950. int SPELL_CURE_CRITICAL_WOUNDS              = 31;
  951. int SPELL_CURE_LIGHT_WOUNDS                 = 32;
  952. int SPELL_CURE_MINOR_WOUNDS                 = 33;
  953. int SPELL_CURE_MODERATE_WOUNDS              = 34;
  954. int SPELL_CURE_SERIOUS_WOUNDS               = 35;
  955. int SPELL_DARKNESS                          = 36;
  956. int SPELL_DAZE                              = 37;
  957. int SPELL_DEATH_WARD                        = 38;
  958. int SPELL_DELAYED_BLAST_FIREBALL            = 39;
  959. int SPELL_DISMISSAL                         = 40;
  960. int SPELL_DISPEL_MAGIC                      = 41;
  961. int SPELL_DIVINE_POWER                      = 42;
  962. int SPELL_DOMINATE_ANIMAL                   = 43;
  963. int SPELL_DOMINATE_MONSTER                  = 44;
  964. int SPELL_DOMINATE_PERSON                   = 45;
  965. int SPELL_DOOM                              = 46;
  966. int SPELL_ELEMENTAL_SHIELD                  = 47;
  967. int SPELL_ELEMENTAL_SWARM                   = 48;
  968. int SPELL_ENDURANCE                         = 49;
  969. int SPELL_ENDURE_ELEMENTS                   = 50;
  970. int SPELL_ENERGY_DRAIN                      = 51;
  971. int SPELL_ENERVATION                        = 52;
  972. int SPELL_ENTANGLE                          = 53;
  973. int SPELL_FEAR                              = 54;
  974. int SPELL_FEEBLEMIND                        = 55;
  975. int SPELL_FINGER_OF_DEATH                   = 56;
  976. int SPELL_FIRE_STORM                        = 57;
  977. int SPELL_FIREBALL                          = 58;
  978. int SPELL_FLAME_ARROW                       = 59;
  979. int SPELL_FLAME_LASH                        = 60;
  980. int SPELL_FLAME_STRIKE                      = 61;
  981. int SPELL_FREEDOM_OF_MOVEMENT               = 62;
  982. int SPELL_GATE                              = 63;
  983. int SPELL_GHOUL_TOUCH                       = 64;
  984. int SPELL_GLOBE_OF_INVULNERABILITY          = 65;
  985. int SPELL_GREASE                            = 66;
  986. int SPELL_GREATER_DISPELLING                = 67;
  987. int SPELL_GREATER_MAGIC_WEAPON              = 68;
  988. int SPELL_GREATER_PLANAR_BINDING            = 69;
  989. int SPELL_GREATER_RESTORATION               = 70;
  990. //int SPELL_GREATER_SHADOW_CONJURATION = 71;
  991. int SPELL_GREATER_SPELL_BREACH              = 72;
  992. int SPELL_GREATER_SPELL_MANTLE              = 73;
  993. int SPELL_GREATER_STONESKIN                 = 74;
  994. // int SPELL_GUST_OF_WIND = 75;
  995. int SPELL_HAMMER_OF_THE_GODS                = 76;
  996. int SPELL_HARM                              = 77;
  997. int SPELL_HASTE                             = 78;
  998. int SPELL_HEAL                              = 79;
  999. int SPELL_HEALING_CIRCLE                    = 80;
  1000. int SPELL_HOLD_ANIMAL                       = 81;
  1001. int SPELL_HOLD_MONSTER                      = 82;
  1002. int SPELL_HOLD_PERSON                       = 83;
  1003. int SPELL_HOLY_AURA                         = 84;
  1004. int SPELL_HOLY_SWORD                        = 85;
  1005. int SPELL_IDENTIFY                          = 86;
  1006. int SPELL_IMPLOSION                         = 87;
  1007. int SPELL_IMPROVED_INVISIBILITY             = 88;
  1008. int SPELL_INCENDIARY_CLOUD                  = 89;
  1009. int SPELL_INVISIBILITY                      = 90;
  1010. int SPELL_INVISIBILITY_PURGE                = 91;
  1011. int SPELL_INVISIBILITY_SPHERE               = 92;
  1012. int SPELL_KNOCK                             = 93;
  1013. int SPELL_LESSER_DISPEL                     = 94;
  1014. int SPELL_LESSER_MIND_BLANK                 = 95;
  1015. int SPELL_LESSER_PLANAR_BINDING             = 96;
  1016. int SPELL_LESSER_RESTORATION                = 97;
  1017. int SPELL_LESSER_SPELL_BREACH               = 98;
  1018. int SPELL_LESSER_SPELL_MANTLE               = 99;
  1019. int SPELL_LIGHT                             = 100;
  1020. int SPELL_LIGHTNING_BOLT                    = 101;
  1021. int SPELL_MAGE_ARMOR                        = 102;
  1022. int SPELL_MAGIC_CIRCLE_AGAINST_CHAOS        = 103;
  1023. int SPELL_MAGIC_CIRCLE_AGAINST_EVIL         = 104;
  1024. int SPELL_MAGIC_CIRCLE_AGAINST_GOOD         = 105;
  1025. int SPELL_MAGIC_CIRCLE_AGAINST_LAW          = 106;
  1026. int SPELL_MAGIC_MISSILE                     = 107;
  1027. int SPELL_MAGIC_VESTMENT                    = 108;
  1028. int SPELL_MAGIC_WEAPON                      = 109;
  1029. int SPELL_MASS_BLINDNESS_AND_DEAFNESS       = 110;
  1030. int SPELL_MASS_CHARM                        = 111;
  1031. // int SPELL_MASS_DOMINATION = 112;
  1032. int SPELL_MASS_HASTE                        = 113;
  1033. int SPELL_MASS_HEAL                         = 114;
  1034. int SPELL_MELFS_ACID_ARROW                  = 115;
  1035. int SPELL_METEOR_SWARM                      = 116;
  1036. int SPELL_MIND_BLANK                        = 117;
  1037. int SPELL_MIND_FOG                          = 118;
  1038. int SPELL_MINOR_GLOBE_OF_INVULNERABILITY    = 119;
  1039. int SPELL_GHOSTLY_VISAGE                    = 120;
  1040. int SPELL_ETHEREAL_VISAGE                   = 121;
  1041. int SPELL_MORDENKAINENS_DISJUNCTION         = 122;
  1042. int SPELL_MORDENKAINENS_SWORD               = 123;
  1043. int SPELL_NATURES_BALANCE                   = 124;
  1044. int SPELL_NEGATIVE_ENERGY_PROTECTION        = 125;
  1045. int SPELL_NEUTRALIZE_POISON                 = 126;
  1046. int SPELL_PHANTASMAL_KILLER                 = 127;
  1047. int SPELL_PLANAR_BINDING                    = 128;
  1048. int SPELL_POISON                            = 129;
  1049. int SPELL_POLYMORPH_SELF                    = 130;
  1050. int SPELL_POWER_WORD_KILL                   = 131;
  1051. int SPELL_POWER_WORD_STUN                   = 132;
  1052. int SPELL_PRAYER                            = 133;
  1053. int SPELL_PREMONITION                       = 134;
  1054. int SPELL_PRISMATIC_SPRAY                   = 135;
  1055. int SPELL_PROTECTION__FROM_CHAOS            = 136;
  1056. int SPELL_PROTECTION_FROM_ELEMENTS          = 137;
  1057. int SPELL_PROTECTION_FROM_EVIL              = 138;
  1058. int SPELL_PROTECTION_FROM_GOOD              = 139;
  1059. int SPELL_PROTECTION_FROM_LAW               = 140;
  1060. int SPELL_PROTECTION_FROM_SPELLS            = 141;
  1061. int SPELL_RAISE_DEAD                        = 142;
  1062. int SPELL_RAY_OF_ENFEEBLEMENT               = 143;
  1063. int SPELL_RAY_OF_FROST                      = 144;
  1064. int SPELL_REMOVE_BLINDNESS_AND_DEAFNESS     = 145;
  1065. int SPELL_REMOVE_CURSE                      = 146;
  1066. int SPELL_REMOVE_DISEASE                    = 147;
  1067. int SPELL_REMOVE_FEAR                       = 148;
  1068. int SPELL_REMOVE_PARALYSIS                  = 149;
  1069. int SPELL_RESIST_ELEMENTS                   = 150;
  1070. int SPELL_RESISTANCE                        = 151;
  1071. int SPELL_RESTORATION                       = 152;
  1072. int SPELL_RESURRECTION                      = 153;
  1073. int SPELL_SANCTUARY                         = 154;
  1074. int SPELL_SCARE                             = 155;
  1075. int SPELL_SEARING_LIGHT                     = 156;
  1076. int SPELL_SEE_INVISIBILITY                  = 157;
  1077. //int SPELL_SHADES = 158;
  1078. //int SPELL_SHADOW_CONJURATION = 159;
  1079. int SPELL_SHADOW_SHIELD                     = 160;
  1080. int SPELL_SHAPECHANGE                       = 161;
  1081. int SPELL_SHIELD_OF_LAW                     = 162;
  1082. int SPELL_SILENCE                           = 163;
  1083. int SPELL_SLAY_LIVING                       = 164;
  1084. int SPELL_SLEEP                             = 165;
  1085. int SPELL_SLOW                              = 166;
  1086. int SPELL_SOUND_BURST                       = 167;
  1087. int SPELL_SPELL_RESISTANCE                  = 168;
  1088. int SPELL_SPELL_MANTLE                      = 169;
  1089. int SPELL_SPHERE_OF_CHAOS                   = 170;
  1090. int SPELL_STINKING_CLOUD                    = 171;
  1091. int SPELL_STONESKIN                         = 172;
  1092. int SPELL_STORM_OF_VENGEANCE                = 173;
  1093. int SPELL_SUMMON_CREATURE_I                 = 174;
  1094. int SPELL_SUMMON_CREATURE_II                = 175;
  1095. int SPELL_SUMMON_CREATURE_III               = 176;
  1096. int SPELL_SUMMON_CREATURE_IV                = 177;
  1097. int SPELL_SUMMON_CREATURE_IX                = 178;
  1098. int SPELL_SUMMON_CREATURE_V                 = 179;
  1099. int SPELL_SUMMON_CREATURE_VI                = 180;
  1100. int SPELL_SUMMON_CREATURE_VII               = 181;
  1101. int SPELL_SUMMON_CREATURE_VIII              = 182;
  1102. int SPELL_SUNBEAM                           = 183;
  1103. int SPELL_TENSERS_TRANSFORMATION            = 184;
  1104. int SPELL_TIME_STOP                         = 185;
  1105. int SPELL_TRUE_SEEING                       = 186;
  1106. int SPELL_UNHOLY_AURA                       = 187;
  1107. int SPELL_VAMPIRIC_TOUCH                    = 188;
  1108. int SPELL_VIRTUE                            = 189;
  1109. int SPELL_WAIL_OF_THE_BANSHEE               = 190;
  1110. int SPELL_WALL_OF_FIRE                      = 191;
  1111. int SPELL_WEB                               = 192;
  1112. int SPELL_WEIRD                             = 193;
  1113. int SPELL_WORD_OF_FAITH                     = 194;
  1114. int SPELLABILITY_AURA_BLINDING              = 195;
  1115. int SPELLABILITY_AURA_COLD                  = 196;
  1116. int SPELLABILITY_AURA_ELECTRICITY           = 197;
  1117. int SPELLABILITY_AURA_FEAR                  = 198;
  1118. int SPELLABILITY_AURA_FIRE                  = 199;
  1119. int SPELLABILITY_AURA_MENACE                = 200;
  1120. int SPELLABILITY_AURA_PROTECTION            = 201;
  1121. int SPELLABILITY_AURA_STUN                  = 202;
  1122. int SPELLABILITY_AURA_UNEARTHLY_VISAGE      = 203;
  1123. int SPELLABILITY_AURA_UNNATURAL             = 204;
  1124. int SPELLABILITY_BOLT_ABILITY_DRAIN_CHARISMA = 205;
  1125. int SPELLABILITY_BOLT_ABILITY_DRAIN_CONSTITUTION = 206;
  1126. int SPELLABILITY_BOLT_ABILITY_DRAIN_DEXTERITY = 207;
  1127. int SPELLABILITY_BOLT_ABILITY_DRAIN_INTELLIGENCE = 208;
  1128. int SPELLABILITY_BOLT_ABILITY_DRAIN_STRENGTH = 209;
  1129. int SPELLABILITY_BOLT_ABILITY_DRAIN_WISDOM  = 210;
  1130. int SPELLABILITY_BOLT_ACID                  = 211;
  1131. int SPELLABILITY_BOLT_CHARM                 = 212;
  1132. int SPELLABILITY_BOLT_COLD                  = 213;
  1133. int SPELLABILITY_BOLT_CONFUSE               = 214;
  1134. int SPELLABILITY_BOLT_DAZE                  = 215;
  1135. int SPELLABILITY_BOLT_DEATH                 = 216;
  1136. int SPELLABILITY_BOLT_DISEASE               = 217;
  1137. int SPELLABILITY_BOLT_DOMINATE              = 218;
  1138. int SPELLABILITY_BOLT_FIRE                  = 219;
  1139. int SPELLABILITY_BOLT_KNOCKDOWN             = 220;
  1140. int SPELLABILITY_BOLT_LEVEL_DRAIN           = 221;
  1141. int SPELLABILITY_BOLT_LIGHTNING             = 222;
  1142. int SPELLABILITY_BOLT_PARALYZE              = 223;
  1143. int SPELLABILITY_BOLT_POISON                = 224;
  1144. int SPELLABILITY_BOLT_SHARDS                = 225;
  1145. int SPELLABILITY_BOLT_SLOW                  = 226;
  1146. int SPELLABILITY_BOLT_STUN                  = 227;
  1147. int SPELLABILITY_BOLT_WEB                   = 228;
  1148. int SPELLABILITY_CONE_ACID                  = 229;
  1149. int SPELLABILITY_CONE_COLD                  = 230;
  1150. int SPELLABILITY_CONE_DISEASE               = 231;
  1151. int SPELLABILITY_CONE_FIRE                  = 232;
  1152. int SPELLABILITY_CONE_LIGHTNING             = 233;
  1153. int SPELLABILITY_CONE_POISON                = 234;
  1154. int SPELLABILITY_CONE_SONIC                 = 235;
  1155. int SPELLABILITY_DRAGON_BREATH_ACID         = 236;
  1156. int SPELLABILITY_DRAGON_BREATH_COLD         = 237;
  1157. int SPELLABILITY_DRAGON_BREATH_FEAR         = 238;
  1158. int SPELLABILITY_DRAGON_BREATH_FIRE         = 239;
  1159. int SPELLABILITY_DRAGON_BREATH_GAS          = 240;
  1160. int SPELLABILITY_DRAGON_BREATH_LIGHTNING    = 241;
  1161. int SPELLABILITY_DRAGON_BREATH_PARALYZE     = 242;
  1162. int SPELLABILITY_DRAGON_BREATH_SLEEP        = 243;
  1163. int SPELLABILITY_DRAGON_BREATH_SLOW         = 244;
  1164. int SPELLABILITY_DRAGON_BREATH_WEAKEN       = 245;
  1165. int SPELLABILITY_DRAGON_WING_BUFFET         = 246;
  1166. int SPELLABILITY_FEROCITY_1                 = 247;
  1167. int SPELLABILITY_FEROCITY_2                 = 248;
  1168. int SPELLABILITY_FEROCITY_3                 = 249;
  1169. int SPELLABILITY_GAZE_CHARM                 = 250;
  1170. int SPELLABILITY_GAZE_CONFUSION             = 251;
  1171. int SPELLABILITY_GAZE_DAZE                  = 252;
  1172. int SPELLABILITY_GAZE_DEATH                 = 253;
  1173. int SPELLABILITY_GAZE_DESTROY_CHAOS         = 254;
  1174. int SPELLABILITY_GAZE_DESTROY_EVIL          = 255;
  1175. int SPELLABILITY_GAZE_DESTROY_GOOD          = 256;
  1176. int SPELLABILITY_GAZE_DESTROY_LAW           = 257;
  1177. int SPELLABILITY_GAZE_DOMINATE              = 258;
  1178. int SPELLABILITY_GAZE_DOOM                  = 259;
  1179. int SPELLABILITY_GAZE_FEAR                  = 260;
  1180. int SPELLABILITY_GAZE_PARALYSIS             = 261;
  1181. int SPELLABILITY_GAZE_STUNNED               = 262;
  1182. int SPELLABILITY_GOLEM_BREATH_GAS           = 263;
  1183. int SPELLABILITY_HELL_HOUND_FIREBREATH      = 264;
  1184. int SPELLABILITY_HOWL_CONFUSE               = 265;
  1185. int SPELLABILITY_HOWL_DAZE                  = 266;
  1186. int SPELLABILITY_HOWL_DEATH                 = 267;
  1187. int SPELLABILITY_HOWL_DOOM                  = 268;
  1188. int SPELLABILITY_HOWL_FEAR                  = 269;
  1189. int SPELLABILITY_HOWL_PARALYSIS             = 270;
  1190. int SPELLABILITY_HOWL_SONIC                 = 271;
  1191. int SPELLABILITY_HOWL_STUN                  = 272;
  1192. int SPELLABILITY_INTENSITY_1                = 273;
  1193. int SPELLABILITY_INTENSITY_2                = 274;
  1194. int SPELLABILITY_INTENSITY_3                = 275;
  1195. int SPELLABILITY_KRENSHAR_SCARE             = 276;
  1196. int SPELLABILITY_LESSER_BODY_ADJUSTMENT     = 277;
  1197. int SPELLABILITY_MEPHIT_SALT_BREATH         = 278;
  1198. int SPELLABILITY_MEPHIT_STEAM_BREATH        = 279;
  1199. int SPELLABILITY_MUMMY_BOLSTER_UNDEAD       = 280;
  1200. int SPELLABILITY_PULSE_DROWN                = 281;
  1201. int SPELLABILITY_PULSE_SPORES               = 282;
  1202. int SPELLABILITY_PULSE_WHIRLWIND            = 283;
  1203. int SPELLABILITY_PULSE_FIRE                 = 284;
  1204. int SPELLABILITY_PULSE_LIGHTNING            = 285;
  1205. int SPELLABILITY_PULSE_COLD                 = 286;
  1206. int SPELLABILITY_PULSE_NEGATIVE             = 287;
  1207. int SPELLABILITY_PULSE_HOLY                 = 288;
  1208. int SPELLABILITY_PULSE_DEATH                = 289;
  1209. int SPELLABILITY_PULSE_LEVEL_DRAIN          = 290;
  1210. int SPELLABILITY_PULSE_ABILITY_DRAIN_INTELLIGENCE = 291;
  1211. int SPELLABILITY_PULSE_ABILITY_DRAIN_CHARISMA = 292;
  1212. int SPELLABILITY_PULSE_ABILITY_DRAIN_CONSTITUTION = 293;
  1213. int SPELLABILITY_PULSE_ABILITY_DRAIN_DEXTERITY = 294;
  1214. int SPELLABILITY_PULSE_ABILITY_DRAIN_STRENGTH = 295;
  1215. int SPELLABILITY_PULSE_ABILITY_DRAIN_WISDOM = 296;
  1216. int SPELLABILITY_PULSE_POISON               = 297;
  1217. int SPELLABILITY_PULSE_DISEASE              = 298;
  1218. int SPELLABILITY_RAGE_3                     = 299;
  1219. int SPELLABILITY_RAGE_4                     = 300;
  1220. int SPELLABILITY_RAGE_5                     = 301;
  1221. int SPELLABILITY_SMOKE_CLAW                 = 302;
  1222. int SPELLABILITY_SUMMON_SLAAD               = 303;
  1223. int SPELLABILITY_SUMMON_TANARRI             = 304;
  1224. int SPELLABILITY_TRUMPET_BLAST              = 305;
  1225. int SPELLABILITY_TYRANT_FOG_MIST            = 306;
  1226. int SPELLABILITY_BARBARIAN_RAGE             = 307;
  1227. int SPELLABILITY_TURN_UNDEAD                = 308;
  1228. int SPELLABILITY_WHOLENESS_OF_BODY          = 309;
  1229. int SPELLABILITY_QUIVERING_PALM             = 310;
  1230. int SPELLABILITY_EMPTY_BODY                 = 311;
  1231. int SPELLABILITY_DETECT_EVIL                = 312;
  1232. int SPELLABILITY_LAY_ON_HANDS               = 313;
  1233. int SPELLABILITY_AURA_OF_COURAGE            = 314;
  1234. int SPELLABILITY_SMITE_EVIL                 = 315;
  1235. int SPELLABILITY_REMOVE_DISEASE             = 316;
  1236. int SPELLABILITY_SUMMON_ANIMAL_COMPANION    = 317;
  1237. int SPELLABILITY_SUMMON_FAMILIAR            = 318;
  1238. int SPELLABILITY_ELEMENTAL_SHAPE            = 319;
  1239. int SPELLABILITY_WILD_SHAPE                 = 320;
  1240. //int SPELL_PROTECTION_FROM_ALIGNMENT = 321;
  1241. //int SPELL_MAGIC_CIRCLE_AGAINST_ALIGNMENT = 322;
  1242. //int SPELL_AURA_VERSUS_ALIGNMENT = 323;
  1243. int SPELL_SHADES_SUMMON_SHADOW              = 324;
  1244. //int SPELL_PROTECTION_FROM_ELEMENTS_COLD = 325;
  1245. //int SPELL_PROTECTION_FROM_ELEMENTS_FIRE = 326;
  1246. //int SPELL_PROTECTION_FROM_ELEMENTS_ACID = 327;
  1247. //int SPELL_PROTECTION_FROM_ELEMENTS_SONIC = 328;
  1248. //int SPELL_PROTECTION_FROM_ELEMENTS_ELECTRICITY = 329;
  1249. //int SPELL_ENDURE_ELEMENTS_COLD = 330;
  1250. //int SPELL_ENDURE_ELEMENTS_FIRE = 331;
  1251. //int SPELL_ENDURE_ELEMENTS_ACID = 332;
  1252. //int SPELL_ENDURE_ELEMENTS_SONIC = 333;
  1253. //int SPELL_ENDURE_ELEMENTS_ELECTRICITY = 334;
  1254. //int SPELL_RESIST_ELEMENTS_COLD = 335;
  1255. //int SPELL_RESIST_ELEMENTS_FIRE = 336;
  1256. //int SPELL_RESIST_ELEMENTS_ACID = 337;
  1257. //int SPELL_RESIST_ELEMENTS_SONIC = 338;
  1258. //int SPELL_RESIST_ELEMENTS_ELECTRICITY = 339;
  1259. int SPELL_SHADES_CONE_OF_COLD               = 340;
  1260. int SPELL_SHADES_FIREBALL                   = 341;
  1261. int SPELL_SHADES_STONESKIN                  = 342;
  1262. int SPELL_SHADES_WALL_OF_FIRE               = 343;
  1263. int SPELL_SHADOW_CONJURATION_SUMMON_SHADOW  = 344;
  1264. int SPELL_SHADOW_CONJURATION_DARKNESS       = 345;
  1265. int SPELL_SHADOW_CONJURATION_INIVSIBILITY   = 346;
  1266. int SPELL_SHADOW_CONJURATION_MAGE_ARMOR     = 347;
  1267. int SPELL_SHADOW_CONJURATION_MAGIC_MISSILE  = 348;
  1268. int SPELL_GREATER_SHADOW_CONJURATION_SUMMON_SHADOW = 349;
  1269. int SPELL_GREATER_SHADOW_CONJURATION_ACID_ARROW = 350;
  1270. int SPELL_GREATER_SHADOW_CONJURATION_MIRROR_IMAGE = 351;
  1271. int SPELL_GREATER_SHADOW_CONJURATION_WEB    = 352;
  1272. int SPELL_GREATER_SHADOW_CONJURATION_MINOR_GLOBE = 353;
  1273. int SPELL_EAGLE_SPLEDOR                     = 354;
  1274. int SPELL_OWLS_WISDOM                       = 355;
  1275. int SPELL_FOXS_CUNNING                      = 356;
  1276. int SPELL_GREATER_EAGLE_SPLENDOR            = 357;
  1277. int SPELL_GREATER_OWLS_WISDOM               = 358;
  1278. int SPELL_GREATER_FOXS_CUNNING              = 359;
  1279. int SPELL_GREATER_BULLS_STRENGTH            = 360;
  1280. int SPELL_GREATER_CATS_GRACE                = 361;
  1281. int SPELL_GREATER_ENDURANCE                 = 362;
  1282. int SPELL_AWAKEN                            = 363;
  1283. int SPELL_CREEPING_DOOM                     = 364;
  1284. int SPELL_DARKVISION                        = 365;
  1285. int SPELL_DESTRUCTION                       = 366;
  1286. int SPELL_HORRID_WILTING                    = 367;
  1287. int SPELL_ICE_STORM                         = 368;
  1288. int SPELL_ENERGY_BUFFER                     = 369;
  1289. int SPELL_NEGATIVE_ENERGY_BURST             = 370;
  1290. int SPELL_NEGATIVE_ENERGY_RAY               = 371;
  1291. int SPELL_AURA_OF_VITALITY                  = 372;
  1292. int SPELL_WAR_CRY                           = 373;
  1293. int SPELL_REGENERATE                        = 374;
  1294. int SPELL_EVARDS_BLACK_TENTACLES            = 375;
  1295. int SPELL_LEGEND_LORE                       = 376;
  1296. int SPELL_FIND_TRAPS                        = 377;
  1297. int SPELLABILITY_SUMMON_MEPHIT              = 378;
  1298. int SPELLABILITY_SUMMON_CELESTIAL           = 379;
  1299. int SPELLABILITY_BATTLE_MASTERY             = 380;
  1300. int SPELLABILITY_DIVINE_STRENGTH            = 381;
  1301. int SPELLABILITY_DIVINE_PROTECTION          = 382;
  1302. int SPELLABILITY_NEGATIVE_PLANE_AVATAR      = 383;
  1303. int SPELLABILITY_DIVINE_TRICKERY            = 384;
  1304. int SPELLABILITY_ROGUES_CUNNING             = 385;
  1305. int SPELLABILITY_ACTIVATE_ITEM              = 386;
  1306. int SPELLABILITY_DRAGON_FEAR                = 412;
  1307.  
  1308. // these constants must match those in poison.2da
  1309. int POISON_NIGHTSHADE                    = 0;
  1310. int POISON_SMALL_CENTIPEDE_POISON        = 1;
  1311. int POISON_BLADE_BANE                    = 2;
  1312. int POISON_GREENBLOOD_OIL                = 3;
  1313. int POISON_BLOODROOT                     = 4;
  1314. int POISON_PURPLE_WORM_POISON            = 5;
  1315. int POISON_LARGE_SCORPION_VENOM          = 6;
  1316. int POISON_WYVERN_POISON                 = 7;
  1317. int POISON_BLUE_WHINNIS                  = 8;
  1318. int POISON_GIANT_WASP_POISON             = 9;
  1319. int POISON_SHADOW_ESSENCE                = 10;
  1320. int POISON_BLACK_ADDER_VENOM             = 11;
  1321. int POISON_DEATHBLADE                    = 12;
  1322. int POISON_MALYSS_ROOT_PASTE             = 13;
  1323. int POISON_NITHARIT                      = 14;
  1324. int POISON_DRAGON_BILE                   = 15;
  1325. int POISON_SASSONE_LEAF_RESIDUE          = 16;
  1326. int POISON_TERINAV_ROOT                  = 17;
  1327. int POISON_CARRION_CRAWLER_BRAIN_JUICE   = 18;
  1328. int POISON_BLACK_LOTUS_EXTRACT           = 19;
  1329. int POISON_OIL_OF_TAGGIT                 = 20;
  1330. int POISON_ID_MOSS                       = 21;
  1331. int POISON_STRIPED_TOADSTOOL             = 22;
  1332. int POISON_ARSENIC                       = 23;
  1333. int POISON_LICH_DUST                     = 24;
  1334. int POISON_DARK_REAVER_POWDER            = 25;
  1335. int POISON_UNGOL_DUST                    = 26;
  1336. int POISON_BURNT_OTHUR_FUMES             = 27;
  1337. int POISON_CHAOS_MIST                    = 28;
  1338. int POISON_BEBILITH_VENOM                = 29;
  1339. int POISON_QUASIT_VENOM                  = 30;
  1340. int POISON_PIT_FIEND_ICHOR               = 31;
  1341. int POISON_ETTERCAP_VENOM                = 32;
  1342. int POISON_ARANEA_VENOM                  = 33;
  1343. int POISON_TINY_SPIDER_VENOM             = 34;
  1344. int POISON_SMALL_SPIDER_VENOM            = 35;
  1345. int POISON_MEDIUM_SPIDER_VENOM           = 36;
  1346. int POISON_LARGE_SPIDER_VENOM            = 37;
  1347. int POISON_HUGE_SPIDER_VENOM             = 38;
  1348. int POISON_GARGANTUAN_SPIDER_VENOM       = 39;
  1349. int POISON_COLOSSAL_SPIDER_VENOM         = 40;
  1350. int POISON_PHASE_SPIDER_VENOM            = 41;
  1351. int POISON_WRAITH_SPIDER_VENOM           = 42;
  1352. int POISON_IRON_GOLEM                    = 43;
  1353.  
  1354. // these constants match those in disease.2da
  1355. int DISEASE_BLINDING_SICKNESS            = 0;
  1356. int DISEASE_CACKLE_FEVER                 = 1;
  1357. int DISEASE_DEVIL_CHILLS                 = 2;
  1358. int DISEASE_DEMON_FEVER                  = 3;
  1359. int DISEASE_FILTH_FEVER                  = 4;
  1360. int DISEASE_MINDFIRE                     = 5;
  1361. int DISEASE_MUMMY_ROT                    = 6;
  1362. int DISEASE_RED_ACHE                     = 7;
  1363. int DISEASE_SHAKES                       = 8;
  1364. int DISEASE_SLIMY_DOOM                   = 9;
  1365. int DISEASE_RED_SLAAD_EGGS               = 10;
  1366. int DISEASE_GHOUL_ROT                    = 11;
  1367. int DISEASE_ZOMBIE_CREEP                 = 12;
  1368. int DISEASE_DREAD_BLISTERS               = 13;
  1369. int DISEASE_BURROW_MAGGOTS               = 14;
  1370. int DISEASE_SOLDIER_SHAKES               = 15;
  1371. int DISEASE_VERMIN_MADNESS               = 16;
  1372.  
  1373. // the thing after CREATURE_TYPE_ should refer to the
  1374. // actual "subtype" in the lists given above.
  1375. int CREATURE_TYPE_RACIAL_TYPE     = 0;
  1376. int CREATURE_TYPE_PLAYER_CHAR     = 1;
  1377. int CREATURE_TYPE_CLASS           = 2;
  1378. int CREATURE_TYPE_REPUTATION      = 3;
  1379. int CREATURE_TYPE_IS_ALIVE        = 4;
  1380. int CREATURE_TYPE_HAS_SPELL_EFFECT = 5;
  1381. int CREATURE_TYPE_DOES_NOT_HAVE_SPELL_EFFECT = 6;
  1382. int CREATURE_TYPE_PERCEPTION                = 7;
  1383. //int CREATURE_TYPE_ALIGNMENT       = 2;
  1384.  
  1385. int REPUTATION_TYPE_FRIEND        = 0;
  1386. int REPUTATION_TYPE_ENEMY         = 1;
  1387. int REPUTATION_TYPE_NEUTRAL       = 2;
  1388.  
  1389. int PERCEPTION_SEEN_AND_HEARD           = 0;
  1390. int PERCEPTION_NOT_SEEN_AND_NOT_HEARD   = 1;
  1391. int PERCEPTION_HEARD_AND_NOT_SEEN       = 2;
  1392. int PERCEPTION_SEEN_AND_NOT_HEARD       = 3;
  1393. int PERCEPTION_NOT_HEARD                = 4;
  1394. int PERCEPTION_HEARD                    = 5;
  1395. int PERCEPTION_NOT_SEEN                 = 6;
  1396. int PERCEPTION_SEEN                     = 7;
  1397.  
  1398. int PLAYER_CHAR_NOT_PC            = FALSE;
  1399. int PLAYER_CHAR_IS_PC             = TRUE;
  1400.  
  1401. int CLASS_TYPE_BARBARIAN = 0;
  1402. int CLASS_TYPE_BARD      = 1;
  1403. int CLASS_TYPE_CLERIC    = 2;
  1404. int CLASS_TYPE_DRUID     = 3;
  1405. int CLASS_TYPE_FIGHTER   = 4;
  1406. int CLASS_TYPE_MONK      = 5;
  1407. int CLASS_TYPE_PALADIN   = 6;
  1408. int CLASS_TYPE_RANGER    = 7;
  1409. int CLASS_TYPE_ROGUE     = 8;
  1410. int CLASS_TYPE_SORCERER  = 9;
  1411. int CLASS_TYPE_WIZARD    = 10;
  1412. int CLASS_TYPE_ABERRATION = 11;
  1413. int CLASS_TYPE_ANIMAL    = 12;
  1414. int CLASS_TYPE_CONSTRUCT = 13;
  1415. int CLASS_TYPE_HUMANOID  = 14;
  1416. int CLASS_TYPE_MONSTROUS = 15;
  1417. int CLASS_TYPE_ELEMENTAL = 16;
  1418. int CLASS_TYPE_FEY       = 17;
  1419. int CLASS_TYPE_DRAGON    = 18;
  1420. int CLASS_TYPE_UNDEAD    = 19;
  1421. int CLASS_TYPE_COMMONER  = 20;
  1422. int CLASS_TYPE_BEAST     = 21;
  1423. int CLASS_TYPE_GIANT     = 22;
  1424. int CLASS_TYPE_MAGICAL_BEAST = 23;
  1425. int CLASS_TYPE_OUTSIDER  = 24;
  1426. int CLASS_TYPE_SHAPECHANGER = 25;
  1427. int CLASS_TYPE_VERMIN    = 26;
  1428.  
  1429. int CLASS_TYPE_INVALID   = 255;
  1430.  
  1431. // These are for GetFirstInPersistentObject() and GetNextInPersistentObject()
  1432. int PERSISTENT_ZONE_ACTIVE = 0;
  1433. int PERSISTENT_ZONE_FOLLOW = 1;
  1434.  
  1435. int STANDARD_FACTION_HOSTILE  = 0;
  1436. int STANDARD_FACTION_COMMONER = 1;
  1437. int STANDARD_FACTION_MERCHANT = 2;
  1438. int STANDARD_FACTION_DEFENDER = 3;
  1439.  
  1440. // Skill defines
  1441. int SKILL_ANIMAL_EMPATHY   = 0;
  1442. int SKILL_CONCENTRATION    = 1;
  1443. int SKILL_DISABLE_TRAP     = 2;
  1444. int SKILL_DISCIPLINE       = 3;
  1445. int SKILL_HEAL             = 4;
  1446. int SKILL_HIDE             = 5;
  1447. int SKILL_LISTEN           = 6;
  1448. int SKILL_LORE             = 7;
  1449. int SKILL_MOVE_SILENTLY    = 8;
  1450. int SKILL_OPEN_LOCK        = 9;
  1451. int SKILL_PARRY            = 10;
  1452. int SKILL_PERFORM          = 11;
  1453. int SKILL_PERSUADE         = 12;
  1454. int SKILL_PICK_POCKET      = 13;
  1455. int SKILL_SEARCH           = 14;
  1456. int SKILL_SET_TRAP         = 15;
  1457. int SKILL_SPELLCRAFT       = 16;
  1458. int SKILL_SPOT             = 17;
  1459. int SKILL_TAUNT            = 18;
  1460. int SKILL_USE_MAGIC_DEVICE = 19;
  1461. int SKILL_ALL_SKILLS       = 255;
  1462.  
  1463. int SUBSKILL_FLAGTRAP      = 100;
  1464. int SUBSKILL_RECOVERTRAP   = 101;
  1465. int SUBSKILL_EXAMINETRAP   = 102;
  1466.  
  1467. int FEAT_ALERTNESS                      = 0;
  1468. int FEAT_AMBIDEXTERITY                  = 1;
  1469. int FEAT_ARMOR_PROFICIENCY_HEAVY        = 2;
  1470. int FEAT_ARMOR_PROFICIENCY_LIGHT        = 3;
  1471. int FEAT_ARMOR_PROFICIENCY_MEDIUM       = 4;
  1472. int FEAT_CALLED_SHOT                    = 5;
  1473. int FEAT_CLEAVE                         = 6;
  1474. int FEAT_COMBAT_CASTING                 = 7;
  1475. int FEAT_DEFLECT_ARROWS                 = 8;
  1476. int FEAT_DISARM                         = 9;
  1477. int FEAT_DODGE                          = 10;
  1478. int FEAT_EMPOWER_SPELL                  = 11;
  1479. int FEAT_EXTEND_SPELL                   = 12;
  1480. int FEAT_EXTRA_TURNING                  = 13;
  1481. int FEAT_GREAT_FORTITUDE                = 14;
  1482. int FEAT_IMPROVED_CRITICAL_CLUB         = 15;
  1483. int FEAT_IMPROVED_DISARM                = 16;
  1484. int FEAT_IMPROVED_KNOCKDOWN             = 17;
  1485. int FEAT_IMPROVED_PARRY                 = 18;
  1486. int FEAT_IMPROVED_POWER_ATTACK          = 19;
  1487. int FEAT_IMPROVED_TWO_WEAPON_FIGHTING   = 20;
  1488. int FEAT_IMPROVED_UNARMED_STRIKE        = 21;
  1489. int FEAT_IRON_WILL                      = 22;
  1490. int FEAT_KNOCKDOWN                      = 23;
  1491. int FEAT_LIGHTNING_REFLEXES             = 24;
  1492. int FEAT_MAXIMIZE_SPELL                 = 25;
  1493. int FEAT_MOBILITY                       = 26;
  1494. int FEAT_POINT_BLANK_SHOT               = 27;
  1495. int FEAT_POWER_ATTACK                   = 28;
  1496. int FEAT_QUICKEN_SPELL                  = 29;
  1497. int FEAT_RAPID_SHOT                     = 30;
  1498. int FEAT_SAP                            = 31;
  1499. int FEAT_SHIELD_PROFICIENCY             = 32;
  1500. int FEAT_SILENCE_SPELL                  = 33;
  1501. int FEAT_SKILL_FOCUS_ANIMAL_EMPATHY     = 34;
  1502. int FEAT_SPELL_FOCUS_ABJURATION         = 35;
  1503. int FEAT_SPELL_PENETRATION              = 36;
  1504. int FEAT_STILL_SPELL                    = 37;
  1505. int FEAT_STUNNING_FIST                  = 39;
  1506. int FEAT_TOUGHNESS                      = 40;
  1507. int FEAT_TWO_WEAPON_FIGHTING            = 41;
  1508. int FEAT_WEAPON_FINESSE                 = 42;
  1509. int FEAT_WEAPON_FOCUS_CLUB              = 43;
  1510. int FEAT_WEAPON_PROFICIENCY_EXOTIC      = 44;
  1511. int FEAT_WEAPON_PROFICIENCY_MARTIAL     = 45;
  1512. int FEAT_WEAPON_PROFICIENCY_SIMPLE      = 46;
  1513. int FEAT_WEAPON_SPECIALIZATION_CLUB     = 47;
  1514. int FEAT_WEAPON_PROFICIENCY_DRUID       = 48;
  1515. int FEAT_WEAPON_PROFICIENCY_MONK        = 49;
  1516. int FEAT_WEAPON_PROFICIENCY_ROGUE       = 50;
  1517. int FEAT_WEAPON_PROFICIENCY_WIZARD      = 51;
  1518. int FEAT_IMPROVED_CRITICAL_DAGGER       = 52;
  1519. int FEAT_IMPROVED_CRITICAL_DART         = 53;
  1520. int FEAT_IMPROVED_CRITICAL_HEAVY_CROSSBOW = 54;
  1521. int FEAT_IMPROVED_CRITICAL_LIGHT_CROSSBOW = 55;
  1522. int FEAT_IMPROVED_CRITICAL_LIGHT_MACE   = 56;
  1523. int FEAT_IMPROVED_CRITICAL_MORNING_STAR = 57;
  1524. int FEAT_IMPROVED_CRITICAL_STAFF        = 58;
  1525. int FEAT_IMPROVED_CRITICAL_SPEAR        = 59;
  1526. int FEAT_IMPROVED_CRITICAL_SICKLE       = 60;
  1527. int FEAT_IMPROVED_CRITICAL_SLING        = 61;
  1528. int FEAT_IMPROVED_CRITICAL_UNARMED_STRIKE = 62;
  1529. int FEAT_IMPROVED_CRITICAL_LONGBOW      = 63;
  1530. int FEAT_IMPROVED_CRITICAL_SHORTBOW     = 64;
  1531. int FEAT_IMPROVED_CRITICAL_SHORT_SWORD  = 65;
  1532. int FEAT_IMPROVED_CRITICAL_RAPIER       = 66;
  1533. int FEAT_IMPROVED_CRITICAL_SCIMITAR     = 67;
  1534. int FEAT_IMPROVED_CRITICAL_LONG_SWORD   = 68;
  1535. int FEAT_IMPROVED_CRITICAL_GREAT_SWORD  = 69;
  1536. int FEAT_IMPROVED_CRITICAL_HAND_AXE     = 70;
  1537. int FEAT_IMPROVED_CRITICAL_THROWING_AXE = 71;
  1538. int FEAT_IMPROVED_CRITICAL_BATTLE_AXE   = 72;
  1539. int FEAT_IMPROVED_CRITICAL_GREAT_AXE    = 73;
  1540. int FEAT_IMPROVED_CRITICAL_HALBERD      = 74;
  1541. int FEAT_IMPROVED_CRITICAL_LIGHT_HAMMER = 75;
  1542. int FEAT_IMPROVED_CRITICAL_LIGHT_FLAIL  = 76;
  1543. int FEAT_IMPROVED_CRITICAL_WAR_HAMMER   = 77;
  1544. int FEAT_IMPROVED_CRITICAL_HEAVY_FLAIL  = 78;
  1545. int FEAT_IMPROVED_CRITICAL_KAMA         = 79;
  1546. int FEAT_IMPROVED_CRITICAL_KUKRI        = 80;
  1547. //int FEAT_IMPROVED_CRITICAL_NUNCHAKU = 81;
  1548. int FEAT_IMPROVED_CRITICAL_SHURIKEN     = 82;
  1549. int FEAT_IMPROVED_CRITICAL_SCYTHE       = 83;
  1550. int FEAT_IMPROVED_CRITICAL_KATANA       = 84;
  1551. int FEAT_IMPROVED_CRITICAL_BASTARD_SWORD = 85;
  1552. int FEAT_IMPROVED_CRITICAL_DIRE_MACE    = 87;
  1553. int FEAT_IMPROVED_CRITICAL_DOUBLE_AXE   = 88;
  1554. int FEAT_IMPROVED_CRITICAL_TWO_BLADED_SWORD = 89;
  1555. int FEAT_WEAPON_FOCUS_DAGGER            = 90;
  1556. int FEAT_WEAPON_FOCUS_DART              = 91;
  1557. int FEAT_WEAPON_FOCUS_HEAVY_CROSSBOW    = 92;
  1558. int FEAT_WEAPON_FOCUS_LIGHT_CROSSBOW    = 93;
  1559. int FEAT_WEAPON_FOCUS_LIGHT_MACE        = 94;
  1560. int FEAT_WEAPON_FOCUS_MORNING_STAR      = 95;
  1561. int FEAT_WEAPON_FOCUS_STAFF             = 96;
  1562. int FEAT_WEAPON_FOCUS_SPEAR             = 97;
  1563. int FEAT_WEAPON_FOCUS_SICKLE            = 98;
  1564. int FEAT_WEAPON_FOCUS_SLING             = 99;
  1565. int FEAT_WEAPON_FOCUS_UNARMED_STRIKE    = 100;
  1566. int FEAT_WEAPON_FOCUS_LONGBOW           = 101;
  1567. int FEAT_WEAPON_FOCUS_SHORTBOW          = 102;
  1568. int FEAT_WEAPON_FOCUS_SHORT_SWORD       = 103;
  1569. int FEAT_WEAPON_FOCUS_RAPIER            = 104;
  1570. int FEAT_WEAPON_FOCUS_SCIMITAR          = 105;
  1571. int FEAT_WEAPON_FOCUS_LONG_SWORD        = 106;
  1572. int FEAT_WEAPON_FOCUS_GREAT_SWORD       = 107;
  1573. int FEAT_WEAPON_FOCUS_HAND_AXE          = 108;
  1574. int FEAT_WEAPON_FOCUS_THROWING_AXE      = 109;
  1575. int FEAT_WEAPON_FOCUS_BATTLE_AXE        = 110;
  1576. int FEAT_WEAPON_FOCUS_GREAT_AXE         = 111;
  1577. int FEAT_WEAPON_FOCUS_HALBERD           = 112;
  1578. int FEAT_WEAPON_FOCUS_LIGHT_HAMMER      = 113;
  1579. int FEAT_WEAPON_FOCUS_LIGHT_FLAIL       = 114;
  1580. int FEAT_WEAPON_FOCUS_WAR_HAMMER        = 115;
  1581. int FEAT_WEAPON_FOCUS_HEAVY_FLAIL       = 116;
  1582. int FEAT_WEAPON_FOCUS_KAMA              = 117;
  1583. int FEAT_WEAPON_FOCUS_KUKRI             = 118;
  1584. //int FEAT_WEAPON_FOCUS_NUNCHAKU = 119;
  1585. int FEAT_WEAPON_FOCUS_SHURIKEN          = 120;
  1586. int FEAT_WEAPON_FOCUS_SCYTHE            = 121;
  1587. int FEAT_WEAPON_FOCUS_KATANA            = 122;
  1588. int FEAT_WEAPON_FOCUS_BASTARD_SWORD     = 123;
  1589. int FEAT_WEAPON_FOCUS_DIRE_MACE         = 125;
  1590. int FEAT_WEAPON_FOCUS_DOUBLE_AXE        = 126;
  1591. int FEAT_WEAPON_FOCUS_TWO_BLADED_SWORD  = 127;
  1592. int FEAT_WEAPON_SPECIALIZATION_DAGGER   = 128;
  1593. int FEAT_WEAPON_SPECIALIZATION_DART     = 129;
  1594. int FEAT_WEAPON_SPECIALIZATION_HEAVY_CROSSBOW = 130;
  1595. int FEAT_WEAPON_SPECIALIZATION_LIGHT_CROSSBOW = 131;
  1596. int FEAT_WEAPON_SPECIALIZATION_LIGHT_MACE = 132;
  1597. int FEAT_WEAPON_SPECIALIZATION_MORNING_STAR = 133;
  1598. int FEAT_WEAPON_SPECIALIZATION_STAFF    = 134;
  1599. int FEAT_WEAPON_SPECIALIZATION_SPEAR    = 135;
  1600. int FEAT_WEAPON_SPECIALIZATION_SICKLE   = 136;
  1601. int FEAT_WEAPON_SPECIALIZATION_SLING    = 137;
  1602. int FEAT_WEAPON_SPECIALIZATION_UNARMED_STRIKE = 138;
  1603. int FEAT_WEAPON_SPECIALIZATION_LONGBOW  = 139;
  1604. int FEAT_WEAPON_SPECIALIZATION_SHORTBOW = 140;
  1605. int FEAT_WEAPON_SPECIALIZATION_SHORT_SWORD = 141;
  1606. int FEAT_WEAPON_SPECIALIZATION_RAPIER   = 142;
  1607. int FEAT_WEAPON_SPECIALIZATION_SCIMITAR = 143;
  1608. int FEAT_WEAPON_SPECIALIZATION_LONG_SWORD = 144;
  1609. int FEAT_WEAPON_SPECIALIZATION_GREAT_SWORD = 145;
  1610. int FEAT_WEAPON_SPECIALIZATION_HAND_AXE = 146;
  1611. int FEAT_WEAPON_SPECIALIZATION_THROWING_AXE = 147;
  1612. int FEAT_WEAPON_SPECIALIZATION_BATTLE_AXE = 148;
  1613. int FEAT_WEAPON_SPECIALIZATION_GREAT_AXE = 149;
  1614. int FEAT_WEAPON_SPECIALIZATION_HALBERD  = 150;
  1615. int FEAT_WEAPON_SPECIALIZATION_LIGHT_HAMMER = 151;
  1616. int FEAT_WEAPON_SPECIALIZATION_LIGHT_FLAIL = 152;
  1617. int FEAT_WEAPON_SPECIALIZATION_WAR_HAMMER = 153;
  1618. int FEAT_WEAPON_SPECIALIZATION_HEAVY_FLAIL = 154;
  1619. int FEAT_WEAPON_SPECIALIZATION_KAMA     = 155;
  1620. int FEAT_WEAPON_SPECIALIZATION_KUKRI    = 156;
  1621. //int FEAT_WEAPON_SPECIALIZATION_NUNCHAKU = 157;
  1622. int FEAT_WEAPON_SPECIALIZATION_SHURIKEN = 158;
  1623. int FEAT_WEAPON_SPECIALIZATION_SCYTHE   = 159;
  1624. int FEAT_WEAPON_SPECIALIZATION_KATANA   = 160;
  1625. int FEAT_WEAPON_SPECIALIZATION_BASTARD_SWORD = 161;
  1626. int FEAT_WEAPON_SPECIALIZATION_DIRE_MACE = 163;
  1627. int FEAT_WEAPON_SPECIALIZATION_DOUBLE_AXE = 164;
  1628. int FEAT_WEAPON_SPECIALIZATION_TWO_BLADED_SWORD = 165;
  1629. int FEAT_SPELL_FOCUS_CONJURATION        = 166;
  1630. int FEAT_SPELL_FOCUS_DIVINATION         = 167;
  1631. int FEAT_SPELL_FOCUS_ENCHANTMENT        = 168;
  1632. int FEAT_SPELL_FOCUS_EVOCATION          = 169;
  1633. int FEAT_SPELL_FOCUS_ILLUSION           = 170;
  1634. int FEAT_SPELL_FOCUS_NECROMANCY         = 171;
  1635. int FEAT_SPELL_FOCUS_TRANSMUTATION      = 172;
  1636. int FEAT_SKILL_FOCUS_CONCENTRATION      = 173;
  1637. int FEAT_SKILL_FOCUS_DISABLE_TRAP       = 174;
  1638. int FEAT_SKILL_FOCUS_DISCIPLINE         = 175;
  1639. int FEAT_SKILL_FOCUS_HEAL               = 177;
  1640. int FEAT_SKILL_FOCUS_HIDE               = 178;
  1641. int FEAT_SKILL_FOCUS_LISTEN             = 179;
  1642. int FEAT_SKILL_FOCUS_LORE               = 180;
  1643. int FEAT_SKILL_FOCUS_MOVE_SILENTLY      = 181;
  1644. int FEAT_SKILL_FOCUS_OPEN_LOCK          = 182;
  1645. int FEAT_SKILL_FOCUS_PARRY              = 183;
  1646. int FEAT_SKILL_FOCUS_PERFORM            = 184;
  1647. int FEAT_SKILL_FOCUS_PERSUADE           = 185;
  1648. int FEAT_SKILL_FOCUS_PICK_POCKET        = 186;
  1649. int FEAT_SKILL_FOCUS_SEARCH             = 187;
  1650. int FEAT_SKILL_FOCUS_SET_TRAP           = 188;
  1651. int FEAT_SKILL_FOCUS_SPELLCRAFT         = 189;
  1652. int FEAT_SKILL_FOCUS_SPOT               = 190;
  1653. int FEAT_SKILL_FOCUS_TAUNT              = 192;
  1654. int FEAT_SKILL_FOCUS_USE_MAGIC_DEVICE   = 193;
  1655. int FEAT_BARBARIAN_ENDURANCE            = 194;
  1656. int FEAT_UNCANNY_DODGE_1                = 195;
  1657. int FEAT_DAMAGE_REDUCTION               = 196;
  1658. int FEAT_BARDIC_KNOWLEDGE               = 197;
  1659. int FEAT_NATURE_SENSE                   = 198;
  1660. int FEAT_ANIMAL_COMPANION               = 199;
  1661. int FEAT_WOODLAND_STRIDE                = 200;
  1662. int FEAT_TRACKLESS_STEP                 = 201;
  1663. int FEAT_RESIST_NATURES_LURE            = 202;
  1664. int FEAT_VENOM_IMMUNITY                 = 203;
  1665. int FEAT_FLURRY_OF_BLOWS                = 204;
  1666. int FEAT_EVASION                        = 206;
  1667. int FEAT_MONK_ENDURANCE                 = 207;
  1668. int FEAT_STILL_MIND                     = 208;
  1669. int FEAT_PURITY_OF_BODY                 = 209;
  1670. int FEAT_WHOLENESS_OF_BODY              = 211;
  1671. int FEAT_IMPROVED_EVASION               = 212;
  1672. int FEAT_KI_STRIKE                      = 213;
  1673. int FEAT_DIAMOND_BODY                   = 214;
  1674. int FEAT_DIAMOND_SOUL                   = 215;
  1675. int FEAT_PERFECT_SELF                   = 216;
  1676. int FEAT_DIVINE_GRACE                   = 217;
  1677. int FEAT_DIVINE_HEALTH                  = 219;
  1678. int FEAT_SNEAK_ATTACK                   = 221;
  1679. int FEAT_CRIPPLING_STRIKE               = 222;
  1680. int FEAT_DEFENSIVE_ROLL                 = 223;
  1681. int FEAT_OPPORTUNIST                    = 224;
  1682. int FEAT_SKILL_MASTERY                  = 225;
  1683. int FEAT_UNCANNY_REFLEX                 = 226;
  1684. int FEAT_STONECUNNING                   = 227;
  1685. int FEAT_DARKVISION                     = 228;
  1686. int FEAT_HARDINESS_VERSUS_POISONS       = 229;
  1687. int FEAT_HARDINESS_VERSUS_SPELLS        = 230;
  1688. int FEAT_BATTLE_TRAINING_VERSUS_ORCS    = 231;
  1689. int FEAT_BATTLE_TRAINING_VERSUS_GOBLINS = 232;
  1690. int FEAT_BATTLE_TRAINING_VERSUS_GIANTS  = 233;
  1691. int FEAT_SKILL_AFFINITY_LORE            = 234;
  1692. int FEAT_IMMUNITY_TO_SLEEP              = 235;
  1693. int FEAT_HARDINESS_VERSUS_ENCHANTMENTS  = 236;
  1694. int FEAT_SKILL_AFFINITY_LISTEN          = 237;
  1695. int FEAT_SKILL_AFFINITY_SEARCH          = 238;
  1696. int FEAT_SKILL_AFFINITY_SPOT            = 239;
  1697. int FEAT_KEEN_SENSE                     = 240;
  1698. int FEAT_HARDINESS_VERSUS_ILLUSIONS     = 241;
  1699. int FEAT_BATTLE_TRAINING_VERSUS_REPTILIANS = 242;
  1700. int FEAT_SKILL_AFFINITY_CONCENTRATION   = 243;
  1701. int FEAT_PARTIAL_SKILL_AFFINITY_LISTEN  = 244;
  1702. int FEAT_PARTIAL_SKILL_AFFINITY_SEARCH  = 245;
  1703. int FEAT_PARTIAL_SKILL_AFFINITY_SPOT    = 246;
  1704. int FEAT_SKILL_AFFINITY_MOVE_SILENTLY   = 247;
  1705. int FEAT_LUCKY                          = 248;
  1706. int FEAT_FEARLESS                       = 249;
  1707. int FEAT_GOOD_AIM                       = 250;
  1708. int FEAT_UNCANNY_DODGE_2                = 251;
  1709. int FEAT_UNCANNY_DODGE_3                = 252;
  1710. int FEAT_UNCANNY_DODGE_4                = 253;
  1711. int FEAT_UNCANNY_DODGE_5                = 254;
  1712. int FEAT_UNCANNY_DODGE_6                = 255;
  1713. int FEAT_WEAPON_PROFICIENCY_ELF         = 256;
  1714. int FEAT_BARD_SONGS                     = 257;
  1715. int FEAT_QUICK_TO_MASTER                = 258;
  1716. int FEAT_SLIPPERY_MIND                  = 259;
  1717. int FEAT_MONK_AC_BONUS                  = 260;
  1718. int FEAT_FAVORED_ENEMY_DWARF            = 261;
  1719. int FEAT_FAVORED_ENEMY_ELF              = 262;
  1720. int FEAT_FAVORED_ENEMY_GNOME            = 263;
  1721. int FEAT_FAVORED_ENEMY_HALFLING         = 264;
  1722. int FEAT_FAVORED_ENEMY_HALFELF          = 265;
  1723. int FEAT_FAVORED_ENEMY_HALFORC          = 266;
  1724. int FEAT_FAVORED_ENEMY_HUMAN            = 267;
  1725. int FEAT_FAVORED_ENEMY_ABERRATION       = 268;
  1726. int FEAT_FAVORED_ENEMY_ANIMAL           = 269;
  1727. int FEAT_FAVORED_ENEMY_BEAST            = 270;
  1728. int FEAT_FAVORED_ENEMY_CONSTRUCT        = 271;
  1729. int FEAT_FAVORED_ENEMY_DRAGON           = 272;
  1730. int FEAT_FAVORED_ENEMY_GOBLINOID        = 273;
  1731. int FEAT_FAVORED_ENEMY_MONSTROUS        = 274;
  1732. int FEAT_FAVORED_ENEMY_ORC              = 275;
  1733. int FEAT_FAVORED_ENEMY_REPTILIAN        = 276;
  1734. int FEAT_FAVORED_ENEMY_ELEMENTAL        = 277;
  1735. int FEAT_FAVORED_ENEMY_FEY              = 278;
  1736. int FEAT_FAVORED_ENEMY_GIANT            = 279;
  1737. int FEAT_FAVORED_ENEMY_MAGICAL_BEAST    = 280;
  1738. int FEAT_FAVORED_ENEMY_OUTSIDER         = 281;
  1739. int FEAT_FAVORED_ENEMY_SHAPECHANGER     = 284;
  1740. int FEAT_FAVORED_ENEMY_UNDEAD           = 285;
  1741. int FEAT_FAVORED_ENEMY_VERMIN           = 286;
  1742. int FEAT_WEAPON_PROFICIENCY_CREATURE    = 289;
  1743. int FEAT_WEAPON_SPECIALIZATION_CREATURE = 290;
  1744. int FEAT_WEAPON_FOCUS_CREATURE          = 291;
  1745. int FEAT_IMPROVED_CRITICAL_CREATURE     = 292;
  1746. int FEAT_BARBARIAN_RAGE                 = 293;
  1747. int FEAT_TURN_UNDEAD                    = 294;
  1748. int FEAT_QUIVERING_PALM                 = 296;
  1749. int FEAT_EMPTY_BODY                     = 297;
  1750. //int FEAT_DETECT_EVIL = 298;
  1751. int FEAT_LAY_ON_HANDS                   = 299;
  1752. int FEAT_AURA_OF_COURAGE                = 300;
  1753. int FEAT_SMITE_EVIL                     = 301;
  1754. int FEAT_REMOVE_DISEASE                 = 302;
  1755. int FEAT_SUMMON_FAMILIAR                = 303;
  1756. int FEAT_ELEMENTAL_SHAPE                = 304;
  1757. int FEAT_WILD_SHAPE                     = 305;
  1758. int FEAT_WAR_DOMAIN_POWER               = 306;
  1759. int FEAT_STRENGTH_DOMAIN_POWER          = 307;
  1760. int FEAT_PROTECTION_DOMAIN_POWER        = 308;
  1761. int FEAT_LUCK_DOMAIN_POWER              = 309;
  1762. int FEAT_DEATH_DOMAIN_POWER             = 310;
  1763. int FEAT_AIR_DOMAIN_POWER               = 311;
  1764. int FEAT_ANIMAL_DOMAIN_POWER            = 312;
  1765. int FEAT_DESTRUCTION_DOMAIN_POWER       = 313;
  1766. int FEAT_EARTH_DOMAIN_POWER             = 314;
  1767. int FEAT_EVIL_DOMAIN_POWER              = 315;
  1768. int FEAT_FIRE_DOMAIN_POWER              = 316;
  1769. int FEAT_GOOD_DOMAIN_POWER              = 317;
  1770. int FEAT_HEALING_DOMAIN_POWER           = 318;
  1771. int FEAT_KNOWLEDGE_DOMAIN_POWER         = 319;
  1772. int FEAT_MAGIC_DOMAIN_POWER             = 320;
  1773. int FEAT_PLANT_DOMAIN_POWER             = 321;
  1774. int FEAT_SUN_DOMAIN_POWER               = 322;
  1775. int FEAT_TRAVEL_DOMAIN_POWER            = 323;
  1776. int FEAT_TRICKERY_DOMAIN_POWER          = 324;
  1777. int FEAT_WATER_DOMAIN_POWER             = 325;
  1778. int FEAT_LOWLIGHTVISION                 = 354;
  1779.  
  1780. // Special Attack Defines
  1781. int SPECIAL_ATTACK_INVALID              =   0;
  1782. int SPECIAL_ATTACK_CALLED_SHOT_LEG      =   1;
  1783. int SPECIAL_ATTACK_CALLED_SHOT_ARM      =   2;
  1784. int SPECIAL_ATTACK_SAP                  =   3;
  1785. int SPECIAL_ATTACK_DISARM               =   4;
  1786. int SPECIAL_ATTACK_IMPROVED_DISARM      =   5;
  1787. int SPECIAL_ATTACK_KNOCKDOWN            =   6;
  1788. int SPECIAL_ATTACK_IMPROVED_KNOCKDOWN   =   7;
  1789. int SPECIAL_ATTACK_STUNNING_FIST        =   8;
  1790. int SPECIAL_ATTACK_FLURRY_OF_BLOWS      =   9;
  1791. int SPECIAL_ATTACK_RAPID_SHOT           =   10;
  1792.  
  1793. // Combat Mode Defines
  1794. int COMBAT_MODE_INVALID                 = 0;
  1795. int COMBAT_MODE_PARRY                   = 1;
  1796. int COMBAT_MODE_POWER_ATTACK            = 2;
  1797. int COMBAT_MODE_IMPROVED_POWER_ATTACK   = 3;
  1798. int COMBAT_MODE_FLURRY_OF_BLOWS         = 4;
  1799. int COMBAT_MODE_RAPID_SHOT              = 5;
  1800.  
  1801. // These represent the row in the difficulty 2da, rather than
  1802. // a difficulty value.
  1803. int ENCOUNTER_DIFFICULTY_VERY_EASY  = 0;
  1804. int ENCOUNTER_DIFFICULTY_EASY       = 1;
  1805. int ENCOUNTER_DIFFICULTY_NORMAL     = 2;
  1806. int ENCOUNTER_DIFFICULTY_HARD       = 3;
  1807. int ENCOUNTER_DIFFICULTY_IMPOSSIBLE = 4;
  1808.  
  1809. // Looping animation constants.
  1810. int ANIMATION_LOOPING_PAUSE                    = 0;
  1811. int ANIMATION_LOOPING_PAUSE2                   = 1;
  1812. int ANIMATION_LOOPING_LISTEN                   = 2;
  1813. int ANIMATION_LOOPING_MEDITATE                 = 3;
  1814. int ANIMATION_LOOPING_WORSHIP                  = 4;
  1815. int ANIMATION_LOOPING_LOOK_FAR                 = 5;
  1816. int ANIMATION_LOOPING_SIT_CHAIR                = 6;
  1817. int ANIMATION_LOOPING_SIT_CROSS                = 7;
  1818. int ANIMATION_LOOPING_TALK_NORMAL              = 8;
  1819. int ANIMATION_LOOPING_TALK_PLEADING            = 9;
  1820. int ANIMATION_LOOPING_TALK_FORCEFUL            = 10;
  1821. int ANIMATION_LOOPING_TALK_LAUGHING            = 11;
  1822. int ANIMATION_LOOPING_GET_LOW                  = 12;
  1823. int ANIMATION_LOOPING_GET_MID                  = 13;
  1824. int ANIMATION_LOOPING_PAUSE_TIRED              = 14;
  1825. int ANIMATION_LOOPING_PAUSE_DRUNK              = 15;
  1826.  
  1827. // Fire and forget animation constants.
  1828. int ANIMATION_FIREFORGET_HEAD_TURN_LEFT        = 100;
  1829. int ANIMATION_FIREFORGET_HEAD_TURN_RIGHT       = 101;
  1830. int ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD    = 102;
  1831. int ANIMATION_FIREFORGET_PAUSE_BORED           = 103;
  1832. int ANIMATION_FIREFORGET_SALUTE                = 104;
  1833. int ANIMATION_FIREFORGET_BOW                   = 105;
  1834. int ANIMATION_FIREFORGET_STEAL                 = 106;
  1835. int ANIMATION_FIREFORGET_GREETING              = 107;
  1836. int ANIMATION_FIREFORGET_TAUNT                 = 108;
  1837. int ANIMATION_FIREFORGET_VICTORY1              = 109;
  1838. int ANIMATION_FIREFORGET_VICTORY2              = 110;
  1839. int ANIMATION_FIREFORGET_VICTORY3              = 111;
  1840. int ANIMATION_FIREFORGET_READ                  = 112;
  1841. int ANIMATION_FIREFORGET_DRINK                 = 113;
  1842.  
  1843. // Placeable animation constants
  1844. int ANIMATION_PLACEABLE_ACTIVATE               = 200;
  1845. int ANIMATION_PLACEABLE_DEACTIVATE             = 201;
  1846. int ANIMATION_PLACEABLE_OPEN                   = 202;
  1847. int ANIMATION_PLACEABLE_CLOSE                  = 203;
  1848.  
  1849. int TALENT_TYPE_SPELL      = 0;
  1850. int TALENT_TYPE_FEAT       = 1;
  1851. int TALENT_TYPE_SKILL      = 2;
  1852.  
  1853. // These must match the values in nwscreature.h and nwccreaturemenu.cpp
  1854. // Cannot use the value -1 because that is used to start a conversation
  1855. int ASSOCIATE_COMMAND_STANDGROUND             = -2;
  1856. int ASSOCIATE_COMMAND_ATTACKNEAREST           = -3;
  1857. int ASSOCIATE_COMMAND_HEALMASTER              = -4;
  1858. int ASSOCIATE_COMMAND_FOLLOWMASTER            = -5;
  1859. int ASSOCIATE_COMMAND_MASTERFAILEDLOCKPICK    = -6;
  1860. int ASSOCIATE_COMMAND_GUARDMASTER             = -7;
  1861. int ASSOCIATE_COMMAND_UNSUMMONFAMILIAR        = -8;
  1862. int ASSOCIATE_COMMAND_UNSUMMONANIMALCOMPANION = -9;
  1863. int ASSOCIATE_COMMAND_UNSUMMONSUMMONED        = -10;
  1864. int ASSOCIATE_COMMAND_MASTERUNDERATTACK       = -11;
  1865. int ASSOCIATE_COMMAND_RELEASEDOMINATION       = -12;
  1866. int ASSOCIATE_COMMAND_UNPOSSESSFAMILIAR       = -13;
  1867. int ASSOCIATE_COMMAND_MASTERSAWTRAP           = -14;
  1868. int ASSOCIATE_COMMAND_MASTERATTACKEDOTHER     = -15;
  1869. int ASSOCIATE_COMMAND_MASTERGOINGTOBEATTACKED = -16;
  1870. int ASSOCIATE_COMMAND_LEAVEPARTY              = -17;
  1871.  
  1872. // These match the values in nwscreature.h
  1873. int ASSOCIATE_TYPE_HENCHMAN         = 1;
  1874. int ASSOCIATE_TYPE_ANIMALCOMPANION  = 2;
  1875. int ASSOCIATE_TYPE_FAMILIAR         = 3;
  1876. int ASSOCIATE_TYPE_SUMMONED         = 4;
  1877. int ASSOCIATE_TYPE_DOMINATED        = 5;
  1878.  
  1879. // These must match the list in nwscreaturestats.cpp
  1880. int TALENT_CATEGORY_HARMFUL_AREAEFFECT_DISCRIMINANT   = 1;
  1881. int TALENT_CATEGORY_HARMFUL_RANGED                    = 2;
  1882. int TALENT_CATEGORY_HARMFUL_TOUCH                     = 3;
  1883. int TALENT_CATEGORY_BENEFICIAL_HEALING_AREAEFFECT     = 4;
  1884. int TALENT_CATEGORY_BENEFICIAL_HEALING_TOUCH          = 5;
  1885. int TALENT_CATEGORY_BENEFICIAL_CONDITIONAL_AREAEFFECT = 6;
  1886. int TALENT_CATEGORY_BENEFICIAL_CONDITIONAL_SINGLE     = 7;
  1887. int TALENT_CATEGORY_BENEFICIAL_ENHANCEMENT_AREAEFFECT = 8;
  1888. int TALENT_CATEGORY_BENEFICIAL_ENHANCEMENT_SINGLE     = 9;
  1889. int TALENT_CATEGORY_BENEFICIAL_ENHANCEMENT_SELF       = 10;
  1890. int TALENT_CATEGORY_HARMFUL_AREAEFFECT_INDISCRIMINANT = 11;
  1891. int TALENT_CATEGORY_BENEFICIAL_PROTECTION_SELF        = 12;
  1892. int TALENT_CATEGORY_BENEFICIAL_PROTECTION_SINGLE      = 13;
  1893. int TALENT_CATEGORY_BENEFICIAL_PROTECTION_AREAEFFECT  = 14;
  1894. int TALENT_CATEGORY_BENEFICIAL_OBTAIN_ALLIES          = 15;
  1895. int TALENT_CATEGORY_PERSISTENT_AREA_OF_EFFECT         = 16;
  1896. int TALENT_CATEGORY_BENEFICIAL_HEALING_POTION         = 17;
  1897. int TALENT_CATEGORY_BENEFICIAL_CONDITIONAL_POTION     = 18;
  1898. int TALENT_CATEGORY_DRAGONS_BREATH                    = 19;
  1899. int TALENT_CATEGORY_BENEFICIAL_PROTECTION_POTION      = 20;
  1900. int TALENT_CATEGORY_BENEFICIAL_ENHANCEMENT_POTION     = 21;
  1901. int TALENT_CATEGORY_HARMFUL_MELEE                     = 22;
  1902.  
  1903. int INVENTORY_DISTURB_TYPE_ADDED    = 0;
  1904. int INVENTORY_DISTURB_TYPE_REMOVED  = 1;
  1905. int INVENTORY_DISTURB_TYPE_STOLEN   = 2;
  1906.  
  1907. int GUI_PANEL_PLAYER_DEATH = 0;
  1908.  
  1909. int    VOICE_CHAT_ATTACK           =    0;
  1910. int    VOICE_CHAT_BATTLECRY1       =    1;
  1911. int    VOICE_CHAT_BATTLECRY2       =    2;
  1912. int    VOICE_CHAT_BATTLECRY3       =    3;
  1913. int    VOICE_CHAT_HEALME           =    4;
  1914. int    VOICE_CHAT_HELP             =    5;
  1915. int    VOICE_CHAT_ENEMIES          =    6;
  1916. int    VOICE_CHAT_FLEE             =    7;
  1917. int    VOICE_CHAT_TAUNT            =    8;
  1918. int    VOICE_CHAT_GUARDME          =    9;
  1919. int    VOICE_CHAT_HOLD             =    10;
  1920. int    VOICE_CHAT_GATTACK1         =    11;
  1921. int    VOICE_CHAT_GATTACK2         =    12;
  1922. int    VOICE_CHAT_GATTACK3         =    13;
  1923. int    VOICE_CHAT_PAIN1            =    14;
  1924. int    VOICE_CHAT_PAIN2            =    15;
  1925. int    VOICE_CHAT_PAIN3            =    16;
  1926. int    VOICE_CHAT_NEARDEATH        =    17;
  1927. int    VOICE_CHAT_DEATH            =    18;
  1928. int    VOICE_CHAT_POISONED         =    19;
  1929. int    VOICE_CHAT_SPELLFAILED      =    20;
  1930. int    VOICE_CHAT_WEAPONSUCKS      =    21;
  1931. int    VOICE_CHAT_FOLLOWME         =    22;
  1932. int    VOICE_CHAT_LOOKHERE         =    23;
  1933. int    VOICE_CHAT_GROUP            =    24;
  1934. int    VOICE_CHAT_MOVEOVER         =    25;
  1935. int    VOICE_CHAT_PICKLOCK         =    26;
  1936. int    VOICE_CHAT_SEARCH           =    27;
  1937. int    VOICE_CHAT_HIDE             =    28;
  1938. int    VOICE_CHAT_CANDO            =    29;
  1939. int    VOICE_CHAT_CANTDO           =    30;
  1940. int    VOICE_CHAT_TASKCOMPLETE     =    31;
  1941. int    VOICE_CHAT_ENCUMBERED       =    32;
  1942. int    VOICE_CHAT_SELECTED         =    33;
  1943. int    VOICE_CHAT_HELLO            =    34;
  1944. int    VOICE_CHAT_YES              =    35;
  1945. int    VOICE_CHAT_NO               =    36;
  1946. int    VOICE_CHAT_STOP             =    37;
  1947. int    VOICE_CHAT_REST             =    38;
  1948. int    VOICE_CHAT_BORED            =    39;
  1949. int    VOICE_CHAT_GOODBYE          =    40;
  1950. int    VOICE_CHAT_THANKS           =    41;
  1951. int    VOICE_CHAT_LAUGH            =    42;
  1952. int    VOICE_CHAT_CUSS             =    43;
  1953. int    VOICE_CHAT_CHEER            =    44;
  1954. int    VOICE_CHAT_TALKTOME         =    45;
  1955. int    VOICE_CHAT_GOODIDEA         =    46;
  1956. int    VOICE_CHAT_BADIDEA          =    47;
  1957. int    VOICE_CHAT_THREATEN         =    48;
  1958.  
  1959. int POLYMORPH_TYPE_WEREWOLF              = 0;
  1960. int POLYMORPH_TYPE_WERERAT               = 1;
  1961. int POLYMORPH_TYPE_WERECAT               = 2;
  1962. int POLYMORPH_TYPE_GIANT_SPIDER          = 3;
  1963. int POLYMORPH_TYPE_TROLL                 = 4;
  1964. int POLYMORPH_TYPE_UMBER_HULK            = 5;
  1965. int POLYMORPH_TYPE_PIXIE                 = 6;
  1966. int POLYMORPH_TYPE_ZOMBIE                = 7;
  1967. int POLYMORPH_TYPE_RED_DRAGON            = 8;
  1968. int POLYMORPH_TYPE_FIRE_GIANT            = 9;
  1969. int POLYMORPH_TYPE_BALOR                 = 10;
  1970. int POLYMORPH_TYPE_DEATH_SLAAD           = 11;
  1971. int POLYMORPH_TYPE_IRON_GOLEM            = 12;
  1972. int POLYMORPH_TYPE_HUGE_FIRE_ELEMENTAL   = 13;
  1973. int POLYMORPH_TYPE_HUGE_WATER_ELEMENTAL  = 14;
  1974. int POLYMORPH_TYPE_HUGE_EARTH_ELEMENTAL  = 15;
  1975. int POLYMORPH_TYPE_HUGE_AIR_ELEMENTAL    = 16;
  1976. int POLYMORPH_TYPE_ELDER_FIRE_ELEMENTAL  = 17;
  1977. int POLYMORPH_TYPE_ELDER_WATER_ELEMENTAL = 18;
  1978. int POLYMORPH_TYPE_ELDER_EARTH_ELEMENTAL = 19;
  1979. int POLYMORPH_TYPE_ELDER_AIR_ELEMENTAL   = 20;
  1980. int POLYMORPH_TYPE_BROWN_BEAR            = 21;
  1981. int POLYMORPH_TYPE_PANTHER               = 22;
  1982. int POLYMORPH_TYPE_WOLF                  = 23;
  1983. int POLYMORPH_TYPE_BOAR                  = 24;
  1984. int POLYMORPH_TYPE_BADGER                = 25;
  1985. int POLYMORPH_TYPE_PENGUIN               = 26;
  1986. int POLYMORPH_TYPE_COW                   = 27;
  1987. int POLYMORPH_TYPE_DOOM_KNIGHT           = 28;
  1988. int POLYMORPH_TYPE_YUANTI                = 29;
  1989. int POLYMORPH_TYPE_IMP                   = 30;
  1990. int POLYMORPH_TYPE_QUASIT                = 31;
  1991. int POLYMORPH_TYPE_SUCCUBUS              = 32;
  1992. int POLYMORPH_TYPE_DIRE_BROWN_BEAR       = 33;
  1993. int POLYMORPH_TYPE_DIRE_PANTHER          = 34;
  1994. int POLYMORPH_TYPE_DIRE_WOLF             = 35;
  1995. int POLYMORPH_TYPE_DIRE_BOAR             = 36;
  1996. int POLYMORPH_TYPE_DIRE_BADGER           = 37;
  1997.  
  1998. int INVISIBILITY_TYPE_NORMAL   = 1;
  1999. int INVISIBILITY_TYPE_DARKNESS = 2;
  2000. int INVISIBILITY_TYPE_IMPROVED = 4;
  2001.  
  2002. int CREATURE_SIZE_INVALID = 0;
  2003. int CREATURE_SIZE_TINY =    1;
  2004. int CREATURE_SIZE_SMALL =   2;
  2005. int CREATURE_SIZE_MEDIUM =  3;
  2006. int CREATURE_SIZE_LARGE =   4;
  2007. int CREATURE_SIZE_HUGE =    5;
  2008.  
  2009. int SPELL_SCHOOL_GENERAL        = 0;
  2010. int SPELL_SCHOOL_ABJURATION     = 1;
  2011. int SPELL_SCHOOL_CONJURATION    = 2;
  2012. int SPELL_SCHOOL_DIVINATION     = 3;
  2013. int SPELL_SCHOOL_ENCHANTMENT    = 4;
  2014. int SPELL_SCHOOL_EVOCATION      = 5;
  2015. int SPELL_SCHOOL_ILLUSION       = 6;
  2016. int SPELL_SCHOOL_NECROMANCY     = 7;
  2017. int SPELL_SCHOOL_TRANSMUTATION  = 8;
  2018.  
  2019. int ANIMAL_COMPANION_CREATURE_TYPE_BADGER   = 0;
  2020. int ANIMAL_COMPANION_CREATURE_TYPE_WOLF     = 1;
  2021. int ANIMAL_COMPANION_CREATURE_TYPE_BEAR     = 2;
  2022. int ANIMAL_COMPANION_CREATURE_TYPE_BOAR     = 3;
  2023. int ANIMAL_COMPANION_CREATURE_TYPE_HAWK     = 4;
  2024. int ANIMAL_COMPANION_CREATURE_TYPE_PANTHER  = 5;
  2025. int ANIMAL_COMPANION_CREATURE_TYPE_SPIDER   = 6;
  2026. int ANIMAL_COMPANION_CREATURE_TYPE_DIREWOLF = 7;
  2027. int ANIMAL_COMPANION_CREATURE_TYPE_NONE     = 255;
  2028.  
  2029. int FAMILIAR_CREATURE_TYPE_BAT        = 0;
  2030. int FAMILIAR_CREATURE_TYPE_CRAGCAT    = 1;
  2031. int FAMILIAR_CREATURE_TYPE_HELLHOUND  = 2;
  2032. int FAMILIAR_CREATURE_TYPE_IMP        = 3;
  2033. int FAMILIAR_CREATURE_TYPE_FIREMEPHIT = 4;
  2034. int FAMILIAR_CREATURE_TYPE_ICEMEPHIT  = 5;
  2035. int FAMILIAR_CREATURE_TYPE_PIXIE      = 6;
  2036. int FAMILIAR_CREATURE_TYPE_RAVEN      = 7;
  2037. int FAMILIAR_CREATURE_TYPE_NONE       = 255;
  2038.  
  2039. int CAMERA_MODE_CHASE_CAMERA          = 0;
  2040. int CAMERA_MODE_TOP_DOWN              = 1;
  2041. int CAMERA_MODE_STIFF_CHASE_CAMERA    = 2;
  2042.  
  2043. int WEATHER_CLEAR = 0;
  2044. int WEATHER_RAIN  = 1;
  2045. int WEATHER_SNOW  = 2;
  2046. int WEATHER_USE_AREA_SETTINGS = -1;
  2047.  
  2048. int REST_EVENTTYPE_REST_INVALID     = 0;
  2049. int REST_EVENTTYPE_REST_STARTED     = 1;
  2050. int REST_EVENTTYPE_REST_FINISHED    = 2;
  2051. int REST_EVENTTYPE_REST_CANCELLED   = 3;
  2052.  
  2053. int PROJECTILE_PATH_TYPE_DEFAULT        = 0;
  2054. int PROJECTILE_PATH_TYPE_HOMING         = 1;
  2055. int PROJECTILE_PATH_TYPE_BALLISTIC      = 2;
  2056. int PROJECTILE_PATH_TYPE_HIGH_BALLISTIC = 3;
  2057. int PROJECTILE_PATH_TYPE_ACCELERATING   = 4;
  2058.  
  2059. int GAME_DIFFICULTY_VERY_EASY   = 0;
  2060. int GAME_DIFFICULTY_EASY        = 1;
  2061. int GAME_DIFFICULTY_NORMAL      = 2;
  2062. int GAME_DIFFICULTY_CORE_RULES  = 3;
  2063. int GAME_DIFFICULTY_DIFFICULT   = 4;
  2064.  
  2065. int TILE_MAIN_LIGHT_COLOR_BLACK             = 0;
  2066. int TILE_MAIN_LIGHT_COLOR_DIM_WHITE         = 1;
  2067. int TILE_MAIN_LIGHT_COLOR_WHITE             = 2;
  2068. int TILE_MAIN_LIGHT_COLOR_BRIGHT_WHITE      = 3;
  2069. int TILE_MAIN_LIGHT_COLOR_PALE_DARK_YELLOW  = 4;
  2070. int TILE_MAIN_LIGHT_COLOR_DARK_YELLOW       = 5;
  2071. int TILE_MAIN_LIGHT_COLOR_PALE_YELLOW       = 6;
  2072. int TILE_MAIN_LIGHT_COLOR_YELLOW            = 7;
  2073. int TILE_MAIN_LIGHT_COLOR_PALE_DARK_GREEN   = 8;
  2074. int TILE_MAIN_LIGHT_COLOR_DARK_GREEN        = 9;
  2075. int TILE_MAIN_LIGHT_COLOR_PALE_GREEN        = 10;
  2076. int TILE_MAIN_LIGHT_COLOR_GREEN             = 11;
  2077. int TILE_MAIN_LIGHT_COLOR_PALE_DARK_AQUA    = 12;
  2078. int TILE_MAIN_LIGHT_COLOR_DARK_AQUA         = 13;
  2079. int TILE_MAIN_LIGHT_COLOR_PALE_AQUA         = 14;
  2080. int TILE_MAIN_LIGHT_COLOR_AQUA              = 15;
  2081. int TILE_MAIN_LIGHT_COLOR_PALE_DARK_BLUE    = 16;
  2082. int TILE_MAIN_LIGHT_COLOR_DARK_BLUE         = 17;
  2083. int TILE_MAIN_LIGHT_COLOR_PALE_BLUE         = 18;
  2084. int TILE_MAIN_LIGHT_COLOR_BLUE              = 19;
  2085. int TILE_MAIN_LIGHT_COLOR_PALE_DARK_PURPLE  = 20;
  2086. int TILE_MAIN_LIGHT_COLOR_DARK_PURPLE       = 21;
  2087. int TILE_MAIN_LIGHT_COLOR_PALE_PURPLE       = 22;
  2088. int TILE_MAIN_LIGHT_COLOR_PURPLE            = 23;
  2089. int TILE_MAIN_LIGHT_COLOR_PALE_DARK_RED     = 24;
  2090. int TILE_MAIN_LIGHT_COLOR_DARK_RED          = 25;
  2091. int TILE_MAIN_LIGHT_COLOR_PALE_RED          = 26;
  2092. int TILE_MAIN_LIGHT_COLOR_RED               = 27;
  2093. int TILE_MAIN_LIGHT_COLOR_PALE_DARK_ORANGE  = 28;
  2094. int TILE_MAIN_LIGHT_COLOR_DARK_ORANGE       = 29;
  2095. int TILE_MAIN_LIGHT_COLOR_PALE_ORANGE       = 30;
  2096. int TILE_MAIN_LIGHT_COLOR_ORANGE            = 31;
  2097.  
  2098. int TILE_SOURCE_LIGHT_COLOR_BLACK             = 0;
  2099. int TILE_SOURCE_LIGHT_COLOR_WHITE             = 1;
  2100. int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_YELLOW  = 2;
  2101. int TILE_SOURCE_LIGHT_COLOR_PALE_YELLOW       = 3;
  2102. int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_GREEN   = 4;
  2103. int TILE_SOURCE_LIGHT_COLOR_PALE_GREEN        = 5;
  2104. int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_AQUA    = 6;
  2105. int TILE_SOURCE_LIGHT_COLOR_PALE_AQUA         = 7;
  2106. int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_BLUE    = 8;
  2107. int TILE_SOURCE_LIGHT_COLOR_PALE_BLUE         = 9;
  2108. int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_PURPLE  = 10;
  2109. int TILE_SOURCE_LIGHT_COLOR_PALE_PURPLE       = 11;
  2110. int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_RED     = 12;
  2111. int TILE_SOURCE_LIGHT_COLOR_PALE_RED          = 13;
  2112. int TILE_SOURCE_LIGHT_COLOR_PALE_DARK_ORANGE  = 14;
  2113. int TILE_SOURCE_LIGHT_COLOR_PALE_ORANGE       = 15;
  2114.  
  2115. int PANEL_BUTTON_MAP                  = 0;
  2116. int PANEL_BUTTON_INVENTORY            = 1;
  2117. int PANEL_BUTTON_JOURNAL              = 2;
  2118. int PANEL_BUTTON_CHARACTER            = 3;
  2119. int PANEL_BUTTON_OPTIONS              = 4;
  2120. int PANEL_BUTTON_SPELLS               = 5;
  2121. int PANEL_BUTTON_REST                 = 6;
  2122. int PANEL_BUTTON_PLAYER_VERSUS_PLAYER = 7;
  2123.  
  2124. int ACTION_MOVETOPOINT        = 0;
  2125. int ACTION_PICKUPITEM         = 1;
  2126. int ACTION_DROPITEM           = 2;
  2127. int ACTION_ATTACKOBJECT       = 3;
  2128. int ACTION_CASTSPELL          = 4;
  2129. int ACTION_OPENDOOR           = 5;
  2130. int ACTION_CLOSEDOOR          = 6;
  2131. int ACTION_DIALOGOBJECT       = 7;
  2132. int ACTION_DISABLETRAP        = 8;
  2133. int ACTION_RECOVERTRAP        = 9;
  2134. int ACTION_FLAGTRAP           = 10;
  2135. int ACTION_EXAMINETRAP        = 11;
  2136. int ACTION_SETTRAP            = 12;
  2137. int ACTION_OPENLOCK           = 13;
  2138. int ACTION_LOCK               = 14;
  2139. int ACTION_USEOBJECT          = 15;
  2140. int ACTION_ANIMALEMPATHY      = 16;
  2141. int ACTION_REST               = 17;
  2142. int ACTION_TAUNT              = 18;
  2143. int ACTION_ITEMCASTSPELL      = 19;
  2144. int ACTION_COUNTERSPELL       = 31;
  2145. int ACTION_HEAL               = 33;
  2146. int ACTION_PICKPOCKET         = 34;
  2147. int ACTION_FOLLOW             = 35;
  2148. int ACTION_WAIT               = 36;
  2149. int ACTION_SIT                = 37;
  2150.  
  2151. int ACTION_INVALID              = 65535;
  2152.  
  2153. int TRAP_BASE_TYPE_MINOR_SPIKE          = 0;
  2154. int TRAP_BASE_TYPE_AVERAGE_SPIKE        = 1;
  2155. int TRAP_BASE_TYPE_STRONG_SPIKE         = 2;
  2156. int TRAP_BASE_TYPE_DEADLY_SPIKE         = 3;
  2157. int TRAP_BASE_TYPE_MINOR_HOLY           = 4;
  2158. int TRAP_BASE_TYPE_AVERAGE_HOLY         = 5;
  2159. int TRAP_BASE_TYPE_STRONG_HOLY          = 6;
  2160. int TRAP_BASE_TYPE_DEADLY_HOLY          = 7;
  2161. int TRAP_BASE_TYPE_MINOR_TANGLE         = 8;
  2162. int TRAP_BASE_TYPE_AVERAGE_TANGLE       = 9;
  2163. int TRAP_BASE_TYPE_STRONG_TANGLE        = 10;
  2164. int TRAP_BASE_TYPE_DEADLY_TANGLE        = 11;
  2165. int TRAP_BASE_TYPE_MINOR_ACID           = 12;
  2166. int TRAP_BASE_TYPE_AVERAGE_ACID         = 13;
  2167. int TRAP_BASE_TYPE_STRONG_ACID          = 14;
  2168. int TRAP_BASE_TYPE_DEADLY_ACID          = 15;
  2169. int TRAP_BASE_TYPE_MINOR_FIRE           = 16;
  2170. int TRAP_BASE_TYPE_AVERAGE_FIRE         = 17;
  2171. int TRAP_BASE_TYPE_STRONG_FIRE          = 18;
  2172. int TRAP_BASE_TYPE_DEADLY_FIRE          = 19;
  2173. int TRAP_BASE_TYPE_MINOR_ELECTRICAL     = 20;
  2174. int TRAP_BASE_TYPE_AVERAGE_ELECTRICAL   = 21;
  2175. int TRAP_BASE_TYPE_STRONG_ELECTRICAL    = 22;
  2176. int TRAP_BASE_TYPE_DEADLY_ELECTRICAL    = 23;
  2177. int TRAP_BASE_TYPE_MINOR_GAS            = 24;
  2178. int TRAP_BASE_TYPE_AVERAGE_GAS          = 25;
  2179. int TRAP_BASE_TYPE_STRONG_GAS           = 26;
  2180. int TRAP_BASE_TYPE_DEADLY_GAS           = 27;
  2181. int TRAP_BASE_TYPE_MINOR_FROST          = 28;
  2182. int TRAP_BASE_TYPE_AVERAGE_FROST        = 29;
  2183. int TRAP_BASE_TYPE_STRONG_FROST         = 30;
  2184. int TRAP_BASE_TYPE_DEADLY_FROST         = 31;
  2185. int TRAP_BASE_TYPE_MINOR_NEGATIVE       = 32;
  2186. int TRAP_BASE_TYPE_AVERAGE_NEGATIVE     = 33;
  2187. int TRAP_BASE_TYPE_STRONG_NEGATIVE      = 34;
  2188. int TRAP_BASE_TYPE_DEADLY_NEGATIVE      = 35;
  2189. int TRAP_BASE_TYPE_MINOR_SONIC          = 36;
  2190. int TRAP_BASE_TYPE_AVERAGE_SONIC        = 37;
  2191. int TRAP_BASE_TYPE_STRONG_SONIC         = 38;
  2192. int TRAP_BASE_TYPE_DEADLY_SONIC         = 39;
  2193. int TRAP_BASE_TYPE_MINOR_ACID_SPLASH    = 40;
  2194. int TRAP_BASE_TYPE_AVERAGE_ACID_SPLASH  = 41;
  2195. int TRAP_BASE_TYPE_STRONG_ACID_SPLASH   = 42;
  2196. int TRAP_BASE_TYPE_DEADLY_ACID_SPLASH   = 43;
  2197.  
  2198. int STEALTH_MODE_DISABLED    = 0;
  2199. int STEALTH_MODE_ACTIVATED    = 1;
  2200. int DETECT_MODE_PASSIVE        = 0;
  2201. int DETECT_MODE_ACTIVE        = 1;
  2202.  
  2203. string sLanguage = "nwscript";
  2204.  
  2205. // Get an integer between 0 and nMaxInteger-1.
  2206. // Return value on error: 0
  2207. int Random(int nMaxInteger);
  2208.  
  2209. // Output sString to the log file.
  2210. void PrintString(string sString);
  2211.  
  2212. // Output a formatted float to the log file.
  2213. // - nWidth should be a value from 0 to 18 inclusive.
  2214. // - nDecimals should be a value from 0 to 9 inclusive.
  2215. void PrintFloat(float fFloat, int nWidth=18, int nDecimals=9);
  2216.  
  2217. // Convert fFloat into a string.
  2218. // - nWidth should be a value from 0 to 18 inclusive.
  2219. // - nDecimals should be a value from 0 to 9 inclusive.
  2220. string FloatToString(float fFloat, int nWidth=18, int nDecimals=9);
  2221.  
  2222. // Output nInteger to the log file.
  2223. void PrintInteger(int nInteger);
  2224.  
  2225. // Output oObject's ID to the log file.
  2226. void PrintObject(object oObject);
  2227.  
  2228. // Assign aActionToAssign to oActionSubject.
  2229. // * No return value, but if an error occurs, the log file will contain
  2230. //   "AssignCommand failed."
  2231. //   (If the object doesn't exist, nothing happens.)
  2232. void AssignCommand(object oActionSubject,action aActionToAssign);
  2233.  
  2234. // Delay aActionToDelay by fSeconds.
  2235. // * No return value, but if an error occurs, the log file will contain
  2236. //   "DelayCommand failed.".
  2237. void DelayCommand(float fSeconds, action aActionToDelay);
  2238.  
  2239. // Make oTarget run sScript and then return execution to the calling script.
  2240. // If sScript does not specify a compiled script, nothing happens.
  2241. void ExecuteScript(string sScript, object oTarget);
  2242.  
  2243. // Clear all the actions of the caller. (This will only work on Creatures)
  2244. // * No return value, but if an error occurs, the log file will contain
  2245. //   "ClearAllActions failed.".
  2246. void ClearAllActions();
  2247.  
  2248. // Cause the caller to face fDirection.
  2249. // - fDirection is expressed as anticlockwise degrees from Due East.
  2250. //   DIRECTION_EAST, DIRECTION_NORTH, DIRECTION_WEST and DIRECTION_SOUTH are
  2251. //   predefined. (0.0f=East, 90.0f=North, 180.0f=West, 270.0f=South)
  2252. void SetFacing(float fDirection);
  2253.  
  2254. // Set the calendar to the specified date.
  2255. // - nYear should be from 0 to 32000 inclusive
  2256. // - nMonth should be from 1 to 12 inclusive
  2257. // - nDay should be from 1 to 28 inclusive
  2258. // 1) Time can only be advanced forwards; attempting to set the time backwards
  2259. //    will result in no change to the calendar.
  2260. // 2) If values larger than the month or day are specified, they will be wrapped
  2261. //    around and the overflow will be used to advance the next field.
  2262. //    e.g. Specifying a year of 1350, month of 33 and day of 10 will result in
  2263. //    the calender being set to a year of 1352, a month of 9 and a day of 10.
  2264. void SetCalendar(int nYear,int nMonth, int nDay);
  2265.  
  2266. // Set the time to the time specified.
  2267. // - nHour should be from 0 to 23 inclusive
  2268. // - nMinute should be from 0 to 59 inclusive
  2269. // - nSecond should be from 0 to 59 inclusive
  2270. // - nMillisecond should be from 0 to 999 inclusive
  2271. // 1) Time can only be advanced forwards; attempting to set the time backwards
  2272. //    will result in the day advancing and then the time being set to that
  2273. //    specified, e.g. if the current hour is 15 and then the hour is set to 3,
  2274. //    the day will be advanced by 1 and the hour will be set to 3.
  2275. // 2) If values larger than the max hour, minute, second or millisecond are
  2276. //    specified, they will be wrapped around and the overflow will be used to
  2277. //    advance the next field, e.g. specifying 62 hours, 250 minutes, 10 seconds
  2278. //    and 10 milliseconds will result in the calendar day being advanced by 2
  2279. //    and the time being set to 18 hours, 10 minutes, 10 milliseconds.
  2280. void SetTime(int nHour,int nMinute,int nSecond,int nMillisecond);
  2281.  
  2282. // Get the current calendar year.
  2283. int GetCalendarYear();
  2284.  
  2285. // Get the current calendar month.
  2286. int GetCalendarMonth();
  2287.  
  2288. // Get the current calendar day.
  2289. int GetCalendarDay();
  2290.  
  2291. // Get the current hour.
  2292. int GetTimeHour();
  2293.  
  2294. // Get the current minute
  2295. int GetTimeMinute();
  2296.  
  2297. // Get the current second
  2298. int GetTimeSecond();
  2299.  
  2300. // Get the current millisecond
  2301. int GetTimeMillisecond();
  2302.  
  2303. // The action subject will generate a random location near its current location
  2304. // and pathfind to it.  All commands will remove a RandomWalk() from the action
  2305. // queue if there is one in place.
  2306. // * No return value, but if an error occurs the log file will contain
  2307. //   "ActionRandomWalk failed."
  2308. void ActionRandomWalk();
  2309.  
  2310. // The action subject will move to lDestination.
  2311. // - lDestination: The object will move to this location.  If the location is
  2312. //   invalid or a path cannot be found to it, the command does nothing.
  2313. // - bRun: If this is TRUE, the action subject will run rather than walk
  2314. // * No return value, but if an error occurs the log file will contain
  2315. //   "MoveToPoint failed."
  2316. void ActionMoveToLocation(location lDestination, int bRun=FALSE);
  2317.  
  2318. // Cause the action subject to move to a certain distance from oMoveTo.
  2319. // If there is no path to oMoveTo, this command will do nothing.
  2320. // - oMoveTo: This is the object we wish the action subject to move to
  2321. // - bRun: If this is TRUE, the action subject will run rather than walk
  2322. // - fRange: This is the desired distance between the action subject and oMoveTo
  2323. // * No return value, but if an error occurs the log file will contain
  2324. //   "ActionMoveToObject failed."
  2325. void ActionMoveToObject(object oMoveTo, int bRun=FALSE, float fRange=1.0f);
  2326.  
  2327. // Cause the action subject to move to a certain distance away from oFleeFrom.
  2328. // - oFleeFrom: This is the object we wish the action subject to move away from.
  2329. //   If oFleeFrom is not in the same area as the action subject, nothing will
  2330. //   happen.
  2331. // - bRun: If this is TRUE, the action subject will run rather than walk
  2332. // - fMoveAwayRange: This is the distance we wish the action subject to put
  2333. //   between themselves and oFleeFrom
  2334. // * No return value, but if an error occurs the log file will contain
  2335. //   "ActionMoveAwayFromObject failed."
  2336. void ActionMoveAwayFromObject(object oFleeFrom, int bRun=FALSE, float fMoveAwayRange=40.0f);
  2337.  
  2338. // Get the area that oTarget is currently in
  2339. // * Return value on error: OBJECT_INVALID
  2340. object GetArea(object oTarget);
  2341.  
  2342. // The value returned by this function depends on the object type of the caller:
  2343. // 1) If the caller is a door or placeable it returns the object that last
  2344. //    triggered it.
  2345. // 2) If the caller is a trigger, area of effect, module, area or encounter it
  2346. //    returns the object that last entered it.
  2347. // * Return value on error: OBJECT_INVALID
  2348. object GetEnteringObject();
  2349.  
  2350. // Get the object that last left the caller.  This function works on triggers,
  2351. // areas of effect, modules, areas and encounters.
  2352. // * Return value on error: OBJECT_INVALID
  2353. object GetExitingObject();
  2354.  
  2355. // Get the position of oTarget
  2356. // * Return value on error: vector (0.0f, 0.0f, 0.0f)
  2357. vector GetPosition(object oTarget);
  2358.  
  2359. // Get the direction in which oTarget is facing, expressed as a float between
  2360. // 0.0f and 360.0f
  2361. // * Return value on error: -1.0f
  2362. float GetFacing(object oTarget);
  2363.  
  2364. // Get the possessor of oItem
  2365. // * Return value on error: OBJECT_INVALID
  2366. object GetItemPossessor(object oItem);
  2367.  
  2368. // Get the object possessed by oCreature with the tag sItemTag
  2369. // * Return value on error: OBJECT_INVALID
  2370. object GetItemPossessedBy(object oCreature, string sItemTag);
  2371.  
  2372. // Create an item with the template sItemTemplate in oTarget's inventory.
  2373. // - nStackSize: This is the stack size of the item to be created
  2374. // * Return value: The object that has been created.  On error, this returns
  2375. //   OBJECT_INVALID.
  2376. object CreateItemOnObject(string sItemTemplate, object oTarget=OBJECT_SELF, int nStackSize=1);
  2377.  
  2378. // Equip oItem into nInventorySlot.
  2379. // - nInventorySlot: INVENTORY_SLOT_*
  2380. // * No return value, but if an error occurs the log file will contain
  2381. //   "ActionEquipItem failed."
  2382. void ActionEquipItem(object oItem, int nInventorySlot);
  2383.  
  2384. // Unequip oItem from whatever slot it is currently in.
  2385. void ActionUnequipItem(object oItem);
  2386.  
  2387. // Pick up oItem from the ground.
  2388. // * No return value, but if an error occurs the log file will contain
  2389. //   "ActionPickUpItem failed."
  2390. void ActionPickUpItem(object oItem);
  2391.  
  2392. // Put down oItem on the ground.
  2393. // * No return value, but if an error occurs the log file will contain
  2394. //   "ActionPutDownItem failed."
  2395. void ActionPutDownItem(object oItem);
  2396.  
  2397. // Get the last attacker of oAttackee.  This should only be used ONLY in the
  2398. // OnAttacked events for creatures, placeables and doors.
  2399. // * Return value on error: OBJECT_INVALID
  2400. object GetLastAttacker(object oAttackee=OBJECT_SELF);
  2401.  
  2402. // Attack oAttackee.
  2403. // - bPassive: If this is TRUE, attack is in passive mode.
  2404. void ActionAttack(object oAttackee, int bPassive=FALSE);
  2405.  
  2406. // Get the creature nearest to oTarget, subject to all the criteria specified.
  2407. // - nFirstCriteriaType: CREATURE_TYPE_*
  2408. // - nFirstCriteriaValue:
  2409. //   -> CLASS_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_CLASS
  2410. //   -> SPELL_* if nFirstCriteriaType was CREATURE_TYPE_DOES_NOT_HAVE_SPELL_EFFECT
  2411. //      or CREATURE_TYPE_HAS_SPELL_EFFECT
  2412. //   -> TRUE or FALSE if nFirstCriteriaType was CREATURE_TYPE_IS_ALIVE
  2413. //   -> PERCEPTION_* if nFirstCriteriaType was CREATURE_TYPE_PERCEPTION
  2414. //   -> PLAYER_CHAR_IS_PC or PLAYER_CHAR_NOT_PC if nFirstCriteriaType was
  2415. //      CREATURE_TYPE_PLAYER_CHAR
  2416. //   -> RACIAL_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_RACIAL_TYPE
  2417. //   -> REPUTATION_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_REPUTATION
  2418. //   For example, to get the nearest PC, use:
  2419. //   (CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC)
  2420. // - oTarget: We're trying to find the creature of the specified type that is
  2421. //   nearest to oTarget
  2422. // - nNth: We don't have to find the first nearest: we can find the Nth nearest...
  2423. // - nSecondCriteriaType: This is used in the same way as nFirstCriteriaType to
  2424. //   further specify the type of creature that we are looking for.
  2425. // - nSecondCriteriaValue: This is used in the same way as nFirstCriteriaValue
  2426. //   to further specify the type of creature that we are looking for.
  2427. // - nThirdCriteriaType: This is used in the same way as nFirstCriteriaType to
  2428. //   further specify the type of creature that we are looking for.
  2429. // - nThirdCriteriaValue: This is used in the same way as nFirstCriteriaValue to
  2430. //   further specify the type of creature that we are looking for.
  2431. // * Return value on error: OBJECT_INVALID
  2432. 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 );
  2433.  
  2434. // Add a speak action to the action subject.
  2435. // - sStringToSpeak: String to be spoken
  2436. // - nTalkVolume: TALKVOLUME_*
  2437. void ActionSpeakString(string sStringToSpeak, int nTalkVolume=TALKVOLUME_TALK);
  2438.  
  2439. // Cause the action subject to play an animation
  2440. // - nAnimation: ANIMATION_*
  2441. // - fSpeed: Speed of the animation
  2442. // - fDurationSeconds: Duration of the animation (this is not used for Fire and
  2443. //   Forget animations)
  2444. void ActionPlayAnimation(int nAnimation, float fSpeed=1.0, float fDurationSeconds=0.0);
  2445.  
  2446. // Get the distance from the caller to oObject in metres.
  2447. // * Return value on error: -1.0f
  2448. float GetDistanceToObject(object oObject);
  2449.  
  2450. // * Returns TRUE if oObject is a valid object.
  2451. int GetIsObjectValid(object oObject);
  2452.  
  2453. // Cause the action subject to open oDoor
  2454. void ActionOpenDoor(object oDoor);
  2455.  
  2456. // Cause the action subject to close oDoor
  2457. void ActionCloseDoor(object oDoor);
  2458.  
  2459. // Change the direction in which the camera is facing
  2460. // - fDirection is expressed as anticlockwise degrees from Due East.
  2461. //   (0.0f=East, 90.0f=North, 180.0f=West, 270.0f=South)
  2462. // This can be used to change the way the camera is facing after the player
  2463. // emerges from an area transition.
  2464. void SetCameraFacing(float fDirection);
  2465.  
  2466. // Play sSoundName
  2467. // - sSoundName: TBD - SS
  2468. void PlaySound(string sSoundName);
  2469.  
  2470. // Get the object at which the caller last cast a spell
  2471. // * Return value on error: OBJECT_INVALID
  2472. object GetSpellTargetObject();
  2473.  
  2474. // This action casts a spell at oTarget.
  2475. // - nSpell: SPELL_*
  2476. // - oTarget: Target for the spell
  2477. // - nMetamagic: METAMAGIC_*
  2478. // - bCheat: If this is TRUE, then the executor of the action doesn't have to be
  2479. //   able to cast the spell.
  2480. // - nDomainLevel: TBD - SS
  2481. // - nProjectilePathType: PROJECTILE_PATH_TYPE_*
  2482. // - bInstantSpell: If this is TRUE, the spell is cast immediately. This allows
  2483. //   the end-user to simulate a high-level magic-user having lots of advance
  2484. //   warning of impending trouble
  2485. 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);
  2486.  
  2487. // Get the current hitpoints of oObject
  2488. // * Return value on error: 0
  2489. int GetCurrentHitPoints(object oObject=OBJECT_SELF);
  2490.  
  2491. // Get the maximum hitpoints of oObject
  2492. // * Return value on error: 0
  2493. int GetMaxHitPoints(object oObject=OBJECT_SELF);
  2494.  
  2495. // Get oObject's local integer variable sVarName
  2496. // * Return value on error: 0
  2497. int GetLocalInt(object oObject, string sVarName);
  2498.  
  2499. // Get oObject's local float variable sVarName
  2500. // * Return value on error: 0.0f
  2501. float GetLocalFloat(object oObject, string sVarName);
  2502.  
  2503. // Get oObject's local string variable sVarName
  2504. // * Return value on error: ""
  2505. string GetLocalString(object oObject, string sVarName);
  2506.  
  2507. // Get oObject's local object variable sVarName
  2508. // * Return value on error: OBJECT_INVALID
  2509. object GetLocalObject(object oObject, string sVarName);
  2510.  
  2511. // Set oObject's local integer variable sVarName to nValue
  2512. void SetLocalInt(object oObject, string sVarName, int nValue);
  2513.  
  2514. // Set oObject's local float variable sVarName to nValue
  2515. void SetLocalFloat(object oObject, string sVarName, float fValue);
  2516.  
  2517. // Set oObject's local string variable sVarName to nValue
  2518. void SetLocalString(object oObject, string sVarName, string sValue);
  2519.  
  2520. // Set oObject's local object variable sVarName to nValue
  2521. void SetLocalObject(object oObject, string sVarName, object oValue);
  2522.  
  2523. // Get the length of sString
  2524. // * Return value on error: -1
  2525. int GetStringLength(string sString);
  2526.  
  2527. // Convert sString into upper case
  2528. // * Return value on error: ""
  2529. string GetStringUpperCase(string sString);
  2530.  
  2531. // Convert sString into lower case
  2532. // * Return value on error: ""
  2533. string GetStringLowerCase(string sString);
  2534.  
  2535. // Get nCount characters from the right end of sString
  2536. // * Return value on error: ""
  2537. string GetStringRight(string sString, int nCount);
  2538.  
  2539. // Get nCounter characters from the left end of sString
  2540. // * Return value on error: ""
  2541. string GetStringLeft(string sString, int nCount);
  2542.  
  2543. // Insert sString into sDestination at nPosition
  2544. // * Return value on error: ""
  2545. string InsertString(string sDestination, string sString, int nPosition);
  2546.  
  2547. // Get nCount characters from sString, starting at nStart
  2548. // * Return value on error: ""
  2549. string GetSubString(string sString, int nStart, int nCount);
  2550.  
  2551. // Find the position of sSubstring inside sString
  2552. int FindSubString(string sString, string sSubString);
  2553. // * Return value on error: -1
  2554.  
  2555. // math operations
  2556.  
  2557. // Maths operation: absolute value of fValue
  2558. float fabs(float fValue);
  2559.  
  2560. // Maths operation: cosine of fValue
  2561. float cos(float fValue);
  2562.  
  2563. // Maths operation: sine of fValue
  2564. float sin(float fValue);
  2565.  
  2566. // Maths operation: tan of fValue
  2567. float tan(float fValue);
  2568.  
  2569. // Maths operation: arccosine of fValue
  2570. // * Returns zero if fValue > 1 or fValue < -1
  2571. float acos(float fValue);
  2572.  
  2573. // Maths operation: arcsine of fValue
  2574. // * Returns zero if fValue >1 or fValue < -1
  2575. float asin(float fValue);
  2576.  
  2577. // Maths operation: arctan of fValue
  2578. float atan(float fValue);
  2579.  
  2580. // Maths operation: log of fValue
  2581. // * Returns zero if fValue <= zero
  2582. float log(float fValue);
  2583.  
  2584. // Maths operation: fValue is raised to the power of fExponent
  2585. // * Returns zero if fValue ==0 and fExponent <0
  2586. float pow(float fValue, float fExponent);
  2587.  
  2588. // Maths operation: square root of fValue
  2589. // * Returns zero if fValue <0
  2590. float sqrt(float fValue);
  2591.  
  2592. // Maths operation: integer absolute value of nValue
  2593. // * Return value on error: 0
  2594. int abs(int nValue);
  2595.  
  2596. // Create a Heal effect. This should be applied as an instantaneous effect.
  2597. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nDamageToHeal < 0.
  2598. effect EffectHeal(int nDamageToHeal);
  2599.  
  2600. // Create a Damage effect
  2601. // - nDamageAmount: amount of damage to be dealt. This should be applied as an
  2602. //   instantaneous effect.
  2603. // - nDamageType: DAMAGE_TYPE_*
  2604. // - nDamagePower: DAMAGE_POWER_*
  2605. effect EffectDamage(int nDamageAmount, int nDamageType=DAMAGE_TYPE_MAGICAL, int nDamagePower=DAMAGE_POWER_NORMAL);
  2606.  
  2607. // Create an Ability Increase effect
  2608. // - bAbilityToIncrease: ABILITY_*
  2609. effect EffectAbilityIncrease(int nAbilityToIncrease, int nModifyBy);
  2610.  
  2611. // Create a Damage Resistance effect that removes the first nAmount points of
  2612. // damage of type nDamageType, up to nLimit (or infinite if nLimit is 0)
  2613. // - nDamageType: DAMAGE_TYPE_*
  2614. // - nAmount
  2615. // - nLimit
  2616. effect EffectDamageResistance(int nDamageType, int nAmount, int nLimit=0);
  2617.  
  2618. // Create a Resurrection effect. This should be applied as an instantaneous effect.
  2619. effect EffectResurrection();
  2620.  
  2621. // Create a Summon Creature effect.  The creature is created and placed into the
  2622. // caller's party/faction.
  2623. // - sCreatureResref: Identifies the creature to be summoned
  2624. // - nVisualEffectId: VFX_*
  2625. // - fDelaySeconds: There can be delay between the visual effect being played, and the
  2626. //   creature being added to the area
  2627. effect EffectSummonCreature(string sCreatureResref, int nVisualEffectId=VFX_NONE, float fDelaySeconds=0.0f);
  2628.  
  2629. // Get the Caster Level of oCreature.
  2630. // * Return value on error: 0;
  2631. int GetCasterLevel(object oCreature);
  2632.  
  2633. // Get the first in-game effect on oCreature.
  2634. effect GetFirstEffect(object oCreature);
  2635.  
  2636. // Get the next in-game effect on oCreature.
  2637. effect GetNextEffect(object oCreature);
  2638.  
  2639. // Remove eEffect from oCreature.
  2640. // * No return value
  2641. void RemoveEffect(object oCreature, effect eEffect);
  2642.  
  2643. // * Returns TRUE if eEffect is a valid effect.
  2644. int GetIsEffectValid(effect eEffect);
  2645.  
  2646. // Get the duration type (DURATION_TYPE_*) of eEffect.
  2647. // * Return value if eEffect is not valid: -1
  2648. int GetEffectDurationType(effect eEffect);
  2649.  
  2650. // Get the subtype (SUBTYPE_*) of eEffect.
  2651. // * Return value on error: 0
  2652. int GetEffectSubType(effect eEffect);
  2653.  
  2654. // Get the object that created eEffect.
  2655. // * Returns OBJECT_INVALID if eEffect is not a valid effect.
  2656. object GetEffectCreator(effect eEffect);
  2657.  
  2658. // Convert nInteger into a string.
  2659. // * Return value on error: ""
  2660. string IntToString(int nInteger);
  2661.  
  2662. // Get the first object in oArea.
  2663. // If no valid area is specified, it will use the caller's area.
  2664. // * Return value on error: OBJECT_INVALID
  2665. object GetFirstObjectInArea(object oArea=OBJECT_INVALID);
  2666.  
  2667. // Get the next object in oArea.
  2668. // If no valid area is specified, it will use the caller's area.
  2669. // * Return value on error: OBJECT_INVALID
  2670. object GetNextObjectInArea(object oArea=OBJECT_INVALID);
  2671.  
  2672. // Get the total from rolling (nNumDice x d2 dice).
  2673. // - nNumDice: If this is less than 1, the value 1 will be used.
  2674. int d2(int nNumDice=1);
  2675.  
  2676. // Get the total from rolling (nNumDice x d3 dice).
  2677. // - nNumDice: If this is less than 1, the value 1 will be used.
  2678. int d3(int nNumDice=1);
  2679.  
  2680. // Get the total from rolling (nNumDice x d4 dice).
  2681. // - nNumDice: If this is less than 1, the value 1 will be used.
  2682. int d4(int nNumDice=1);
  2683.  
  2684. // Get the total from rolling (nNumDice x d6 dice).
  2685. // - nNumDice: If this is less than 1, the value 1 will be used.
  2686. int d6(int nNumDice=1);
  2687.  
  2688. // Get the total from rolling (nNumDice x d8 dice).
  2689. // - nNumDice: If this is less than 1, the value 1 will be used.
  2690. int d8(int nNumDice=1);
  2691.  
  2692. // Get the total from rolling (nNumDice x d10 dice).
  2693. // - nNumDice: If this is less than 1, the value 1 will be used.
  2694. int d10(int nNumDice=1);
  2695.  
  2696. // Get the total from rolling (nNumDice x d12 dice).
  2697. // - nNumDice: If this is less than 1, the value 1 will be used.
  2698. int d12(int nNumDice=1);
  2699.  
  2700. // Get the total from rolling (nNumDice x d20 dice).
  2701. // - nNumDice: If this is less than 1, the value 1 will be used.
  2702. int d20(int nNumDice=1);
  2703.  
  2704. // Get the total from rolling (nNumDice x d100 dice).
  2705. // - nNumDice: If this is less than 1, the value 1 will be used.
  2706. int d100(int nNumDice=1);
  2707.  
  2708. // Get the magnitude of vVector; this can be used to determine the
  2709. // distance between two points.
  2710. // * Return value on error: 0.0f
  2711. float VectorMagnitude(vector vVector);
  2712.  
  2713. // Get the metamagic type (METAMAGIC_*) of the last spell cast by the caller
  2714. // * Return value if the caster is not a valid object: -1
  2715. int GetMetaMagicFeat();
  2716.  
  2717. // Get the object type (OBJECT_TYPE_*) of oTarget
  2718. // * Return value if oTarget is not a valid object: -1
  2719. int GetObjectType(object oTarget);
  2720.  
  2721. // Get the racial type (RACIAL_TYPE_*) of oCreature
  2722. // * Return value if oCreature is not a valid creature: RACIAL_TYPE_INVALID
  2723. int GetRacialType(object oCreature);
  2724.  
  2725. // Do a Fortitude Save check for the given DC
  2726. // - oCreature
  2727. // - nDC: Difficulty check
  2728. // - nSaveType: SAVING_THROW_TYPE_*
  2729. // - oSaveVersus
  2730. // Returns: 0 if the saving throw roll failed
  2731. // Returns: 1 if the saving throw roll succeeded
  2732. // Returns: 2 if the target was immune to the save type specified
  2733. int FortitudeSave(object oCreature, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus=OBJECT_SELF);
  2734.  
  2735. // Does a Reflex Save check for the given DC
  2736. // - oCreature
  2737. // - nDC: Difficulty check
  2738. // - nSaveType: SAVING_THROW_TYPE_*
  2739. // - oSaveVersus
  2740. // Returns: 0 if the saving throw roll failed
  2741. // Returns: 1 if the saving throw roll succeeded
  2742. // Returns: 2 if the target was immune to the save type specified
  2743. int ReflexSave(object oCreature, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus=OBJECT_SELF);
  2744.  
  2745. // Does a Will Save check for the given DC
  2746. // - oCreature
  2747. // - nDC: Difficulty check
  2748. // - nSaveType: SAVING_THROW_TYPE_*
  2749. // - oSaveVersus
  2750. // Returns: 0 if the saving throw roll failed
  2751. // Returns: 1 if the saving throw roll succeeded
  2752. // Returns: 2 if the target was immune to the save type specified
  2753. int WillSave(object oCreature, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus=OBJECT_SELF);
  2754.  
  2755. // Get the DC to save against for a spell (10 + spell level + relevant ability
  2756. // bonus).  This can be called by a creature or by an Area of Effect object.
  2757. int GetSpellSaveDC();
  2758.  
  2759. // Set the subtype of eEffect to Magical and return eEffect.
  2760. // (Effects default to magical if the subtype is not set)
  2761. effect MagicalEffect(effect eEffect);
  2762.  
  2763. // Set the subtype of eEffect to Supernatural and return eEffect.
  2764. // (Effects default to magical if the subtype is not set)
  2765. effect SupernaturalEffect(effect eEffect);
  2766.  
  2767. // Set the subtype of eEffect to Extraordinary and return eEffect.
  2768. // (Effects default to magical if the subtype is not set)
  2769. effect ExtraordinaryEffect(effect eEffect);
  2770.  
  2771. // Create an AC Increase effect
  2772. // - nValue: size of AC increase
  2773. // - nModifyType: AC_*_BONUS
  2774. // - nDamageType: DAMAGE_TYPE_*
  2775. //   * Default value for nDamageType should only ever be used in this function prototype.
  2776. effect EffectACIncrease(int nValue, int nModifyType=AC_DODGE_BONUS, int nDamageType=AC_VS_DAMAGE_TYPE_ALL);
  2777.  
  2778. // If oObject is a creature, this will return that creature's armour class
  2779. // If oObject is an item, door or placeable, this will return zero.
  2780. // - nForFutureUse: this parameter is not currently used
  2781. // * Return value if oObject is not a creature, item, door or placeable: -1
  2782. int GetAC(object oObject, int nForFutureUse=0);
  2783.  
  2784. // Create an AC Decrease effect
  2785. // - nSave: SAVING_THROW_* (not SAVING_THROW_TYPE_*)
  2786. // - nValue: size of AC decrease
  2787. // - nSaveType: SAVING_THROW_TYPE_*
  2788. effect EffectSavingThrowIncrease(int nSave, int nValue, int nSaveType=SAVING_THROW_TYPE_ALL);
  2789.  
  2790. // Create an Attack Increase effect
  2791. // - nBonus: size of attack bonus
  2792. // - nModifierType: ATTACK_BONUS_*
  2793. effect EffectAttackIncrease(int nBonus, int nModifierType=ATTACK_BONUS_MISC);
  2794.  
  2795. // Create a Damage Reduction effect
  2796. // - nAmount: amount of damage reduction
  2797. // - nDamagePower: DAMAGE_POWER_*
  2798. // - nLimit: How much damage the effect can absorb before disappearing.
  2799. //   Set to zero for infinite
  2800. effect EffectDamageReduction(int nAmount, int nDamagePower, int nLimit=0);
  2801.  
  2802. // Create a Damage Increase effect
  2803. // - nBonus: DAMAGE_BONUS_*
  2804. // - nDamageType: DAMAGE_TYPE_*
  2805. effect EffectDamageIncrease(int nBonus, int nDamageType=DAMAGE_TYPE_MAGICAL);
  2806.  
  2807. // Convert nRounds into a number of seconds
  2808. // A round is always 6.0 seconds
  2809. float RoundsToSeconds(int nRounds);
  2810.  
  2811. // Convert nHours into a number of seconds
  2812. // The result will depend on how many minutes there are per hour (game-time)
  2813. float HoursToSeconds(int nHours);
  2814.  
  2815. // Convert nTurns into a number of seconds
  2816. // A turn is always 60.0 seconds
  2817. float TurnsToSeconds(int nTurns);
  2818.  
  2819. // Get an integer between 0 and 100 (inclusive) to represent oCreature's
  2820. // Law/Chaos alignment
  2821. // (100=law, 0=chaos)
  2822. // * Return value if oCreature is not a valid creature: -1
  2823. int GetLawChaosValue(object oCreature);
  2824.  
  2825. // Get an integer between 0 and 100 (inclusive) to represent oCreature's
  2826. // Good/Evil alignment
  2827. // (100=good, 0=evil)
  2828. // * Return value if oCreature is not a valid creature: -1
  2829. int GetGoodEvilValue(object oCreature);
  2830.  
  2831. // Return an ALIGNMENT_* constant to represent oCreature's law/chaos alignment
  2832. // * Return value if oCreature is not a valid creature: -1
  2833. int GetAlignmentLawChaos(object oCreature);
  2834.  
  2835. // Return an ALIGNMENT_* constant to represent oCreature's good/evil alignment
  2836. // * Return value if oCreature is not a valid creature: -1
  2837. int GetAlignmentGoodEvil(object oCreature);
  2838.  
  2839. // Get the first object in nShape
  2840. // - nShape: SHAPE_*
  2841. // - fSize:
  2842. //   -> If nShape == SHAPE_SPHERE, this is the radius of the sphere
  2843. //   -> If nShape == SHAPE_SPELLCYLINDER, this is the radius of the cylinder
  2844. //   -> If nShape == SHAPE_CONE, this is the widest radius of the cone
  2845. //   -> If nShape == SHAPE_CUBE, this is half the length of one of the sides of
  2846. //      the cube
  2847. // - lTarget: This is the centre of the effect, usually GetSpellTargetPosition(),
  2848. //   or the end of a cylinder or cone.
  2849. // - bLineOfSight: This controls whether to do a line-of-sight check on the
  2850. //   object returned.
  2851. //   (This can be used to ensure that spell effects do not go through walls.)
  2852. // - nObjectFilter: This allows you to filter out undesired object types, using
  2853. //   bitwise "or".
  2854. //   For example, to return only creatures and doors, the value for this
  2855. //   parameter would be OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR
  2856. // - vOrigin: This is only used for cylinders and cones, and specifies the
  2857. //   origin of the effect(normally the spell-caster's position).
  2858. // Return value on error: OBJECT_INVALID
  2859. object GetFirstObjectInShape(int nShape, float fSize, location lTarget, int bLineOfSight=FALSE, int nObjectFilter=OBJECT_TYPE_CREATURE, vector vOrigin=[0.0,0.0,0.0]);
  2860.  
  2861. // Get the next object in nShape
  2862. // - nShape: SHAPE_*
  2863. // - fSize:
  2864. //   -> If nShape == SHAPE_SPHERE, this is the radius of the sphere
  2865. //   -> If nShape == SHAPE_SPELLCYLINDER, this is the radius of the cylinder
  2866. //   -> If nShape == SHAPE_CONE, this is the widest radius of the cone
  2867. //   -> If nShape == SHAPE_CUBE, this is half the length of one of the sides of
  2868. //      the cube
  2869. // - lTarget: This is the centre of the effect, usually GetSpellTargetPosition(),
  2870. //   or the end of a cylinder or cone.
  2871. // - bLineOfSight: This controls whether to do a line-of-sight check on the
  2872. //   object returned. (This can be used to ensure that spell effects do not go
  2873. //   through walls.)
  2874. // - nObjectFilter: This allows you to filter out undesired object types, using
  2875. //   bitwise "or". For example, to return only creatures and doors, the value for
  2876. //   this parameter would be OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR
  2877. // - vOrigin: This is only used for cylinders and cones, and specifies the origin
  2878. //   of the effect (normally the spell-caster's position).
  2879. // Return value on error: OBJECT_INVALID
  2880. object GetNextObjectInShape(int nShape, float fSize, location lTarget, int bLineOfSight=FALSE, int nObjectFilter=OBJECT_TYPE_CREATURE, vector vOrigin=[0.0,0.0,0.0]);
  2881.  
  2882. // Create an Entangle effect
  2883. // When applied, this effect will restrict the creature's movement and apply a
  2884. // (-2) to all attacks and a -4 to AC.
  2885. effect EffectEntangle();
  2886.  
  2887. // Cause oObject to run evToRun
  2888. void SignalEvent(object oObject, event evToRun);
  2889.  
  2890. // Create an event of the type nUserDefinedEventNumber
  2891. event EventUserDefined(int nUserDefinedEventNumber);
  2892.  
  2893. // Create a Death effect
  2894. // - nSpectacularDeath: if this is TRUE, the creature to which this effect is
  2895. //   applied will die in an extraordinary fashion
  2896. // - nDisplayFeedback
  2897. effect EffectDeath(int nSpectacularDeath=FALSE, int nDisplayFeedback=TRUE);
  2898.  
  2899. // Create a Knockdown effect
  2900. // This effect knocks creatures off their feet, they will sit until the effect
  2901. // is removed. This should be applied as a temporary effect with a 3 second
  2902. // duration minimum (1 second to fall, 1 second sitting, 1 second to get up).
  2903. effect EffectKnockdown();
  2904.  
  2905. // Give oItem to oGiveTo
  2906. // If oItem is not a valid item, or oGiveTo is not a valid object, nothing will
  2907. // happen.
  2908. void ActionGiveItem(object oItem, object oGiveTo);
  2909.  
  2910. // Take oItem from oTakeFrom
  2911. // If oItem is not a valid item, or oTakeFrom is not a valid object, nothing
  2912. // will happen.
  2913. void ActionTakeItem(object oItem, object oTakeFrom);
  2914.  
  2915. // Normalize vVector
  2916. vector VectorNormalize(vector vVector);
  2917.  
  2918. // Create a Curse effect.
  2919. // - nStrMod: strength modifier
  2920. // - nDexMod: dexterity modifier
  2921. // - nConMod: constitution modifier
  2922. // - nIntMod: intelligence modifier
  2923. // - nWisMod: wisdom modifier
  2924. // - nChaMod: charisma modifier
  2925. effect EffectCurse(int nStrMod=1, int nDexMod=1, int nConMod=1, int nIntMod=1, int nWisMod=1, int nChaMod=1);
  2926.  
  2927. // Get the ability score of type nAbility for a creature (otherwise 0)
  2928. // - oCreature: the creature whose ability score we wish to find out
  2929. // - nAbilityType: ABILITY_*
  2930. // Return value on error: 0
  2931. int GetAbilityScore(object oCreature, int nAbilityType);
  2932.  
  2933. // * Returns TRUE if oCreature is a dead NPC, dead PC or a dying PC.
  2934. int GetIsDead(object oCreature);
  2935.  
  2936. // Output vVector to the logfile.
  2937. // - vVector
  2938. // - bPrepend: if this is TRUE, the message will be prefixed with "PRINTVECTOR:"
  2939. void PrintVector(vector vVector, int bPrepend);
  2940.  
  2941. // Create a vector with the specified values for x, y and z
  2942. vector Vector(float x=0.0f, float y=0.0f, float z=0.0f);
  2943.  
  2944. // Cause the caller to face vTarget
  2945. void SetFacingPoint(vector vTarget);
  2946.  
  2947. // Convert fAngle to a vector
  2948. vector AngleToVector(float fAngle);
  2949.  
  2950. // Convert vVector to an angle
  2951. float VectorToAngle(vector vVector);
  2952.  
  2953. // The caller will perform a Melee Touch Attack on oTarget
  2954. // This is not an action, and it assumes the caller is already within range of
  2955. // oTarget
  2956. // * Returns 0 on a miss, 1 on a hit and 2 on a critical hit
  2957. int TouchAttackMelee(object oTarget, int bDisplayFeedback=TRUE);
  2958.  
  2959. // The caller will perform a Ranged Touch Attack on oTarget
  2960. // * Returns 0 on a miss, 1 on a hit and 2 on a critical hit
  2961. int TouchAttackRanged(object oTarget, int bDisplayFeedback=TRUE);
  2962.  
  2963. // Create a Paralyze effect
  2964. effect EffectParalyze();
  2965.  
  2966. // Create a Spell Immunity effect.
  2967. // There is a known bug with this function. There *must* be a parameter specified
  2968. // when this is called (even if the desired parameter is SPELL_ALL_SPELLS),
  2969. // otherwise an effect of type EFFECT_TYPE_INVALIDEFFECT will be returned.
  2970. // - nImmunityToSpell: SPELL_*
  2971. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nImmunityToSpell is
  2972. //   invalid.
  2973. effect EffectSpellImmunity(int nImmunityToSpell=SPELL_ALL_SPELLS);
  2974.  
  2975. // Create a Deaf effect
  2976. effect EffectDeaf();
  2977.  
  2978. // Get the distance in metres between oObjectA and oObjectB.
  2979. // * Return value if either object is invalid: 0.0f
  2980. float GetDistanceBetween(object oObjectA, object oObjectB);
  2981.  
  2982. // Set oObject's local location variable sVarname to lValue
  2983. void SetLocalLocation(object oObject, string sVarName, location lValue);
  2984.  
  2985. // Get oObject's local location variable sVarname
  2986. location GetLocalLocation(object oObject, string sVarName);
  2987.  
  2988. // Create a Sleep effect
  2989. effect EffectSleep();
  2990.  
  2991. // Get the object which is in oCreature's specified inventory slot
  2992. // - nInventorySlot: INVENTORY_SLOT_*
  2993. // - oCreature
  2994. // * Returns OBJECT_INVALID if oCreature is not a valid creature or there is no
  2995. //   item in nInventorySlot.
  2996. object GetItemInSlot(int nInventorySlot, object oCreature=OBJECT_SELF);
  2997.  
  2998. // Create a Charm effect
  2999. effect EffectCharmed();
  3000.  
  3001. // Create a Confuse effect
  3002. effect EffectConfused();
  3003.  
  3004. // Create a Frighten effect
  3005. effect EffectFrightened();
  3006.  
  3007. // Create a Dominate effect
  3008. effect EffectDominated();
  3009.  
  3010. // Create a Daze effect
  3011. effect EffectDazed();
  3012.  
  3013. // Create a Stun effect
  3014. effect EffectStunned();
  3015.  
  3016. // Set whether oTarget's action stack can be modified
  3017. void SetCommandable(int bCommandable, object oTarget=OBJECT_SELF);
  3018.  
  3019. // Determine whether oTarget's action stack can be modified.
  3020. int GetCommandable(object oTarget=OBJECT_SELF);
  3021.  
  3022. // Create a Regenerate effect.
  3023. // - nAmount: amount of damage to be regenerated per time interval
  3024. // - fIntervalSeconds: length of interval in seconds
  3025. effect EffectRegenerate(int nAmount, float fIntervalSeconds);
  3026.  
  3027. // Create a Movement Speed Increase effect.
  3028. // - nPercentChange: percentage change in movement speed
  3029. effect EffectMovementSpeedIncrease(int nPercentChange);
  3030.  
  3031. // Get the number of hitdice for oCreature.
  3032. // * Return value if oCreature is not a valid creature: 0
  3033. int GetHitDice(object oCreature);
  3034.  
  3035. // The action subject will follow oFollow until a ClearAllActions() is called.
  3036. // - oFollow: this is the object to be followed
  3037. // - fFollowDistance: follow distance in metres
  3038. // * No return value
  3039. void ActionForceFollowObject(object oFollow, float fFollowDistance=0.0f);
  3040.  
  3041. // Get the Tag of oObject
  3042. // * Return value if oObject is not a valid object: ""
  3043. string GetTag(object oObject);
  3044.  
  3045. // Do a Spell Resistance check between oCaster and oTarget, returning TRUE if
  3046. // the spell was resisted.
  3047. // * Return value if oCaster or oTarget is an invalid object: FALSE
  3048. int ResistSpell(object oCaster, object oTarget);
  3049.  
  3050. // Get the effect type (EFFECT_TYPE_*) of eEffect.
  3051. // * Return value if eEffect is invalid: EFFECT_INVALIDEFFECT
  3052. int GetEffectType(effect eEffect);
  3053.  
  3054. // Create an Area Of Effect effect in the area of the creature it is applied to.
  3055. // If the scripts are not specified, default ones will be used.
  3056. effect EffectAreaOfEffect(int nAreaEffectId, string sOnEnterScript="", string sHeartbeatScript="", string sOnExitScript="");
  3057.  
  3058. // * Returns TRUE if the Faction Ids of the two objects are the same
  3059. int GetFactionEqual(object oFirstObject, object oSecondObject=OBJECT_SELF);
  3060.  
  3061. // Make oObjectToChangeFaction join the faction of oMemberOfFactionToJoin.
  3062. // NB. ** This will only work for two NPCs **
  3063. void ChangeFaction(object oObjectToChangeFaction, object oMemberOfFactionToJoin);
  3064.  
  3065. // * Returns TRUE if oObject is listening for something
  3066. int GetIsListening(object oObject);
  3067.  
  3068. // Set whether oObject is listening.
  3069. void SetListening(object oObject, int bValue);
  3070.  
  3071. // Set the string for oObject to listen for.
  3072. // Note: this does not set oObject to be listening.
  3073. void SetListenPattern(object oObject, string sPattern, int nNumber=0);
  3074.  
  3075. // * Returns TRUE if sStringToTest matches sPattern.
  3076. int TestStringAgainstPattern(string sPattern, string sStringToTest);
  3077.  
  3078. // Get the appropriate matched string (this should only be used in
  3079. // OnConversation scripts).
  3080. // * Returns the appropriate matched string, otherwise returns ""
  3081. string GetMatchedSubstring(int nString);
  3082.  
  3083. // Get the number of string parameters available.
  3084. // * Returns -1 if no string matched (this could be because of a dialogue event)
  3085. int GetMatchedSubstringsCount();
  3086.  
  3087. // * Create a Visual Effect that can be applied to an object.
  3088. // - nVisualEffectId
  3089. // - nMissEffect: if this is TRUE, a random vector near or past the target will
  3090. //   be generated, on which to play the effect
  3091. effect EffectVisualEffect(int nVisualEffectId, int nMissEffect=FALSE);
  3092.  
  3093. // Get the weakest member of oFactionMember's faction.
  3094. // * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
  3095. object GetFactionWeakestMember(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
  3096.  
  3097. // Get the strongest member of oFactionMember's faction.
  3098. // * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
  3099. object GetFactionStrongestMember(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
  3100.  
  3101. // Get the member of oFactionMember's faction that has taken the most hit points
  3102. // of damage.
  3103. // * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
  3104. object GetFactionMostDamagedMember(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
  3105.  
  3106. // Get the member of oFactionMember's faction that has taken the fewest hit
  3107. // points of damage.
  3108. // * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
  3109. object GetFactionLeastDamagedMember(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
  3110.  
  3111. // Get the amount of gold held by oFactionMember's faction.
  3112. // * Returns -1 if oFactionMember's faction is invalid.
  3113. int GetFactionGold(object oFactionMember);
  3114.  
  3115. // Get an integer between 0 and 100 (inclusive) that represents how
  3116. // oSourceFactionMember's faction feels about oTarget.
  3117. // * Return value on error: -1
  3118. int GetFactionAverageReputation(object oSourceFactionMember, object oTarget);
  3119.  
  3120. // Get an integer between 0 and 100 (inclusive) that represents the average
  3121. // good/evil alignment of oFactionMember's faction.
  3122. // * Return value on error: -1
  3123. int GetFactionAverageGoodEvilAlignment(object oFactionMember);
  3124.  
  3125. // Get an integer between 0 and 100 (inclusive) that represents the average
  3126. // law/chaos alignment of oFactionMember's faction.
  3127. // * Return value on error: -1
  3128. int GetFactionAverageLawChaosAlignment(object oFactionMember);
  3129.  
  3130. // Get the average level of the members of the faction.
  3131. // * Return value on error: -1
  3132. int GetFactionAverageLevel(object oFactionMember);
  3133.  
  3134. // Get the average XP of the members of the faction.
  3135. // * Return value on error: -1
  3136. int GetFactionAverageXP(object oFactionMember);
  3137.  
  3138. // Get the most frequent class in the faction - this can be compared with the
  3139. // constants CLASS_TYPE_*.
  3140. // * Return value on error: -1
  3141. int GetFactionMostFrequentClass(object oFactionMember);
  3142.  
  3143. // Get the object faction member with the lowest armour class.
  3144. // * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
  3145. object GetFactionWorstAC(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
  3146.  
  3147. // Get the object faction member with the highest armour class.
  3148. // * Returns OBJECT_INVALID if oFactionMember's faction is invalid.
  3149. object GetFactionBestAC(object oFactionMember=OBJECT_SELF, int bMustBeVisible=TRUE);
  3150.  
  3151. // Sit in oChair.
  3152. // Note: not all creatures will be able to sit.
  3153. void ActionSit(object oChair);
  3154.  
  3155. // In an onConversation script this gets the number of the string pattern
  3156. // matched (the one that triggered the script).
  3157. // * Returns -1 if no string matched
  3158. int GetListenPatternNumber();
  3159.  
  3160. // Jump to an object ID, or as near to it as possible.
  3161. void ActionJumpToObject(object oToJumpTo, int bWalkStraightLineToPoint=TRUE);
  3162.  
  3163. // Get the first waypoint with the specified tag.
  3164. // * Returns OBJECT_INVALID if the waypoint cannot be found.
  3165. object GetWaypointByTag(string sWaypointTag);
  3166.  
  3167. // Get the destination (a waypoint or a door) for a trigger or a door.
  3168. // * Returns OBJECT_INVALID if oTransition is not a valid trigger or door.
  3169. object GetTransitionTarget(object oTransition);
  3170.  
  3171. // Link the two supplied effects, returning eChildEffect as a child of
  3172. // eParentEffect.
  3173. // Note: When applying linked effects if the target is immune to all valid
  3174. // effects all other effects will be removed as well. This means that if you
  3175. // apply a visual effect and a silence effect (in a link) and the target is
  3176. // immune to the silence effect that the visual effect will get removed as well.
  3177. // Visual Effects are not considered "valid" effects for the purposes of
  3178. // determining if an effect will be removed or not and as such should never be
  3179. // packaged *only* with other visual effects in a link.
  3180. effect EffectLinkEffects(effect eChildEffect, effect eParentEffect );
  3181.  
  3182. // Get the nNth object with the specified tag.
  3183. // - sTag
  3184. // - nNth: the nth object with this tag may be requested
  3185. // * Returns OBJECT_INVALID if the object cannot be found.
  3186. object GetObjectByTag(string sTag, int nNth=0);
  3187.  
  3188. // Adjust the alignment of oSubject.
  3189. // - oSubject
  3190. // - nAlignment:
  3191. //   -> ALIGNMENT_LAW/ALIGNMENT_CHAOS/ALIGNMENT_GOOD/ALIGNMENT_EVIL: oSubject's
  3192. //      alignment will be shifted in the direction specified
  3193. //   -> ALIGNMENT_ALL: nShift will be added to oSubject's law/chaos and
  3194. //      good/evil alignment values
  3195. //   -> ALIGNMENT_NEUTRAL: nShift is applied to oSubject's law/chaos and
  3196. //      good/evil alignment values in the direction which is towards neutrality.
  3197. //     e.g. If oSubject has a law/chaos value of 10 (i.e. chaotic) and a
  3198. //          good/evil value of 80 (i.e. good) then if nShift is 15, the
  3199. //          law/chaos value will become (10+15)=25 and the good/evil value will
  3200. //          become (80-25)=55
  3201. //     Furthermore, the shift will at most take the alignment value to 50 and
  3202. //     not beyond.
  3203. //     e.g. If oSubject has a law/chaos value of 40 and a good/evil value of 70,
  3204. //          then if nShift is 15, the law/chaos value will become 50 and the
  3205. //          good/evil value will become 55
  3206. // - nShift: this is the desired shift in alignment
  3207. // * No return value
  3208. void AdjustAlignment(object oSubject, int nAlignment, int nShift);
  3209.  
  3210. // Do nothing for fSeconds seconds.
  3211. void ActionWait(float fSeconds);
  3212.  
  3213. // Set the transition bitmap of a player; this should only be called in area
  3214. // transition scripts. This action should be run by the person "clicking" the
  3215. // area transition via AssignCommand.
  3216. // - nPredefinedAreaTransition:
  3217. //   -> To use a predefined area transition bitmap, use one of AREA_TRANSITION_*
  3218. //   -> To use a custom, user-defined area transition bitmap, use
  3219. //      AREA_TRANSITION_USER_DEFINED and specify the filename in the second
  3220. //      parameter
  3221. // - sCustomAreaTransitionBMP: this is the filename of a custom, user-defined
  3222. //   area transition bitmap
  3223. void SetAreaTransitionBMP(int nPredefinedAreaTransition, string sCustomAreaTransitionBMP="");
  3224.  
  3225. // Starts a conversation with oObjectToConverseWith - this will cause their
  3226. // OnDialog event to fire.
  3227. // - oObjectToConverseWith
  3228. // - sDialogResRef: If this is blank, the creature's own dialogue file will be used
  3229. // - bPrivateConversation
  3230. void ActionStartConversation(object oObjectToConverseWith, string sDialogResRef="", int bPrivateConversation=FALSE);
  3231.  
  3232. // Pause the current conversation.
  3233. void ActionPauseConversation();
  3234.  
  3235. // Resume a conversation after it has been paused.
  3236. void ActionResumeConversation();
  3237.  
  3238. // Create a Beam effect.
  3239. // - nBeamVisualEffect: VFX_BEAM_*
  3240. // - oEffector: the beam is emitted from this creature
  3241. // - nBodyPart: BODY_NODE_*
  3242. // - bMissEffect: If this is TRUE, the beam will fire to a random vector near or
  3243. //   past the target
  3244. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nBeamVisualEffect is
  3245. //   not valid.
  3246. effect EffectBeam(int nBeamVisualEffect, object oEffector, int nBodyPart, int bMissEffect=FALSE);
  3247.  
  3248. // Get an integer between 0 and 100 (inclusive) that represents how oSource
  3249. // feels about oTarget.
  3250. // -> 0-10 means oSource is hostile to oTarget
  3251. // -> 11-89 means oSource is neutral to oTarget
  3252. // -> 90-100 means oSource is friendly to oTarget
  3253. // * Returns -1 if oSource or oTarget does not identify a valid object
  3254. int GetReputation(object oSource, object oTarget);
  3255.  
  3256. // Adjust how oSourceFactionMember's faction feels about oTarget by the
  3257. // specified amount.
  3258. // Note: This adjusts Faction Reputation, how the entire faction that
  3259. // oSourceFactionMember is in, feels about oTarget.
  3260. // * No return value
  3261. void AdjustReputation(object oTarget, object oSourceFactionMember, int nAdjustment);
  3262.  
  3263. // Get the creature that is currently sitting on the specified object.
  3264. // - oChair
  3265. // * Returns OBJECT_INVALID if oChair is not a valid placeable.
  3266. object GetSittingCreature(object oChair);
  3267.  
  3268. // Get the creature that is going to attack oTarget.
  3269. // Note: This value is cleared out at the end of every combat round and should
  3270. // not be used in any case except when getting a "going to be attacked" shout
  3271. // from the master creature (and this creature is a henchman)
  3272. // * Returns OBJECT_INVALID if oTarget is not a valid creature.
  3273. object GetGoingToBeAttackedBy(object oTarget);
  3274.  
  3275. // Create a Spell Resistance Increase effect.
  3276. // - nValue: size of spell resistance increase
  3277. effect EffectSpellResistanceIncrease(int nValue);
  3278.  
  3279. // Get the location of oObject.
  3280. location GetLocation(object oObject);
  3281.  
  3282. // The subject will jump to lLocation instantly (even between areas).
  3283. // If lLocation is invalid, nothing will happen.
  3284. void ActionJumpToLocation(location lLocation);
  3285.  
  3286. // Create a location.
  3287. location Location(object oArea, vector vPosition, float fOrientation);
  3288.  
  3289. // Apply eEffect at lLocation.
  3290. void ApplyEffectAtLocation(int nDurationType, effect eEffect, location lLocation, float fDuration=0.0f);
  3291.  
  3292. // * Returns TRUE if oCreature is a Player Controlled character.
  3293. int GetIsPC(object oCreature);
  3294.  
  3295. // Convert fFeet into a number of meters.
  3296. float FeetToMeters(float fFeet);
  3297.  
  3298. // Convert fYards into a number of meters.
  3299. float YardsToMeters(float fYards);
  3300.  
  3301. // Apply eEffect to oTarget.
  3302. void ApplyEffectToObject(int nDurationType, effect eEffect, object oTarget, float fDuration=0.0f);
  3303.  
  3304. // The caller will immediately speak sStringToSpeak (this is different from
  3305. // ActionSpeakString)
  3306. // - sStringToSpeak
  3307. // - nTalkVolume: TALKVOLUME_*
  3308. void SpeakString(string sStringToSpeak, int nTalkVolume=TALKVOLUME_TALK);
  3309.  
  3310. // Get the location of the caller's last spell target.
  3311. location GetSpellTargetLocation();
  3312.  
  3313. // Get the position vector from lLocation.
  3314. vector GetPositionFromLocation(location lLocation);
  3315.  
  3316. // Get the area's object ID from lLocation.
  3317. object GetAreaFromLocation(location lLocation);
  3318.  
  3319. // Get the orientation value from lLocation.
  3320. float GetFacingFromLocation(location lLocation);
  3321.  
  3322. // Get the creature nearest to lLocation, subject to all the criteria specified.
  3323. // - nFirstCriteriaType: CREATURE_TYPE_*
  3324. // - nFirstCriteriaValue:
  3325. //   -> CLASS_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_CLASS
  3326. //   -> SPELL_* if nFirstCriteriaType was CREATURE_TYPE_DOES_NOT_HAVE_SPELL_EFFECT
  3327. //      or CREATURE_TYPE_HAS_SPELL_EFFECT
  3328. //   -> TRUE or FALSE if nFirstCriteriaType was CREATURE_TYPE_IS_ALIVE
  3329. //   -> PERCEPTION_* if nFirstCriteriaType was CREATURE_TYPE_PERCEPTION
  3330. //   -> PLAYER_CHAR_IS_PC or PLAYER_CHAR_NOT_PC if nFirstCriteriaType was
  3331. //      CREATURE_TYPE_PLAYER_CHAR
  3332. //   -> RACIAL_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_RACIAL_TYPE
  3333. //   -> REPUTATION_TYPE_* if nFirstCriteriaType was CREATURE_TYPE_REPUTATION
  3334. //   For example, to get the nearest PC, use
  3335. //   (CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC)
  3336. // - lLocation: We're trying to find the creature of the specified type that is
  3337. //   nearest to lLocation
  3338. // - nNth: We don't have to find the first nearest: we can find the Nth nearest....
  3339. // - nSecondCriteriaType: This is used in the same way as nFirstCriteriaType to
  3340. //   further specify the type of creature that we are looking for.
  3341. // - nSecondCriteriaValue: This is used in the same way as nFirstCriteriaValue
  3342. //   to further specify the type of creature that we are looking for.
  3343. // - nThirdCriteriaType: This is used in the same way as nFirstCriteriaType to
  3344. //   further specify the type of creature that we are looking for.
  3345. // - nThirdCriteriaValue: This is used in the same way as nFirstCriteriaValue to
  3346. //   further specify the type of creature that we are looking for.
  3347. // * Return value on error: OBJECT_INVALID
  3348. object GetNearestCreatureToLocation(int nFirstCriteriaType, int nFirstCriteriaValue,  location lLocation, int nNth=1, int nSecondCriteriaType=-1, int nSecondCriteriaValue=-1, int nThirdCriteriaType=-1,  int nThirdCriteriaValue=-1 );
  3349.  
  3350. // Get the Nth object nearest to oTarget that is of the specified type.
  3351. // - nObjectType: OBJECT_TYPE_*
  3352. // - oTarget
  3353. // - nNth
  3354. // * Return value on error: OBJECT_INVALID
  3355. object GetNearestObject(int nObjectType=OBJECT_TYPE_ALL, object oTarget=OBJECT_SELF, int nNth=1);
  3356.  
  3357. // Get the nNth object nearest to lLocation that is of the specified type.
  3358. // - nObjectType: OBJECT_TYPE_*
  3359. // - lLocation
  3360. // - nNth
  3361. // * Return value on error: OBJECT_INVALID
  3362. object GetNearestObjectToLocation(int nObjectType, location lLocation, int nNth=1);
  3363.  
  3364. // Get the nth Object nearest to oTarget that has sTag as its tag.
  3365. // * Return value on error: OBJECT_INVALID
  3366. object GetNearestObjectByTag(string sTag, object oTarget=OBJECT_SELF, int nNth=1);
  3367.  
  3368. // Convert nInteger into a floating point number.
  3369. float IntToFloat(int nInteger);
  3370.  
  3371. // Convert fFloat into the nearest integer.
  3372. int FloatToInt(float fFloat);
  3373.  
  3374. // Convert sNumber into an integer.
  3375. int StringToInt(string sNumber);
  3376.  
  3377. // Convert sNumber into a floating point number.
  3378. float StringToFloat(string sNumber);
  3379.  
  3380. // Cast spell nSpell at lTargetLocation.
  3381. // - nSpell: SPELL_*
  3382. // - lTargetLocation
  3383. // - nMetaMagic: METAMAGIC_*
  3384. // - bCheat: If this is TRUE, then the executor of the action doesn't have to be
  3385. //   able to cast the spell.
  3386. // - nProjectilePathType: PROJECTILE_PATH_TYPE_*
  3387. // - bInstantSpell: If this is TRUE, the spell is cast immediately; this allows
  3388. //   the end-user to simulate
  3389. //   a high-level magic user having lots of advance warning of impending trouble.
  3390. void   ActionCastSpellAtLocation(int nSpell, location lTargetLocation, int nMetaMagic=METAMAGIC_ANY, int bCheat=FALSE, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT, int bInstantSpell=FALSE);
  3391.  
  3392. // * Returns TRUE if oSource considers oTarget as an enemy.
  3393. int GetIsEnemy(object oTarget, object oSource=OBJECT_SELF);
  3394.  
  3395. // * Returns TRUE if oSource considers oTarget as a friend.
  3396. int GetIsFriend(object oTarget, object oSource=OBJECT_SELF);
  3397.  
  3398. // * Returns TRUE if oSource considers oTarget as neutral.
  3399. int GetIsNeutral(object oTarget, object oSource=OBJECT_SELF);
  3400.  
  3401. // Get the PC that is involved in the conversation.
  3402. // * Returns OBJECT_INVALID on error.
  3403. object GetPCSpeaker();
  3404.  
  3405. // Get a string from the talk table using nStrRef.
  3406. string GetStringByStrRef(int nStrRef);
  3407.  
  3408. // Causes the creature to speak a translated string.
  3409. // - nStrRef: Reference of the string in the talk table
  3410. // - nTalkVolume: TALKVOLUME_*
  3411. void ActionSpeakStringByStrRef(int nStrRef, int nTalkVolume=TALKVOLUME_TALK);
  3412.  
  3413. // Destroy oObject (irrevocably).
  3414. // This will not work on modules and areas.
  3415. void DestroyObject(object oDestroy, float fDelay=0.0f);
  3416.  
  3417. // Get the module.
  3418. // * Return value on error: OBJECT_INVALID
  3419. object GetModule();
  3420.  
  3421. // Create an object of the specified type at lLocation.
  3422. // - nObjectType: OBJECT_TYPE_ITEM, OBJECT_TYPE_CREATURE, OBJECT_TYPE_PLACEABLE,
  3423. //   OBJECT_TYPE_STORE
  3424. // - sTemplate
  3425. // - lLocation
  3426. // - bUseAppearAnimation
  3427. object CreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE);
  3428.  
  3429. // Create an event which triggers the "SpellCastAt" script
  3430. event EventSpellCastAt(object oCaster, int nSpell, int bHarmful=TRUE);
  3431.  
  3432. // This is for use in a "Spell Cast" script, it gets who cast the spell.
  3433. // The spell could have been cast by a creature, placeable or door.
  3434. // * Returns OBJECT_INVALID if the caller is not a creature, placeable or door.
  3435. object GetLastSpellCaster();
  3436.  
  3437. // This is for use in a "Spell Cast" script, it gets the ID of the spell that
  3438. // was cast.
  3439. int GetLastSpell();
  3440.  
  3441. // This is for use in a user-defined script, it gets the event number.
  3442. int GetUserDefinedEventNumber();
  3443.  
  3444. // This is for use in a Spell script, it gets the ID of the spell that is being
  3445. // cast (SPELL_*).
  3446. int GetSpellId();
  3447.  
  3448. // Generate a random name.
  3449. string RandomName();
  3450.  
  3451. // Create a Poison effect.
  3452. // - nPoisonType: POISON_*
  3453. effect EffectPoison(int nPoisonType);
  3454.  
  3455. // Create a Disease effect.
  3456. // - nDiseaseType: DISEASE_*
  3457. effect EffectDisease(int nDiseaseType);
  3458.  
  3459. // Create a Silence effect.
  3460. effect EffectSilence();
  3461.  
  3462. // Get the name of oObject.
  3463. string GetName(object oObject);
  3464.  
  3465. // Use this in a conversation script to get the person with whom you are conversing.
  3466. // * Returns OBJECT_INVALID if the caller is not a valid creature.
  3467. object GetLastSpeaker();
  3468.  
  3469. // Use this in an OnDialog script to start up the dialog tree.
  3470. // - sResRef: if this is not specified, the default dialog file will be used
  3471. // - oObjectToDialog: if this is not specified the person that triggered the
  3472. //   event will be used
  3473. int BeginConversation(string sResRef="", object oObjectToDialog=OBJECT_INVALID);
  3474.  
  3475. // Use this in an OnPerception script to get the object that was perceived.
  3476. // * Returns OBJECT_INVALID if the caller is not a valid creature.
  3477. object GetLastPerceived();
  3478.  
  3479. // Use this in an OnPerception script to determine whether the object that was
  3480. // perceived was heard.
  3481. int GetLastPerceptionHeard();
  3482.  
  3483. // Use this in an OnPerception script to determine whether the object that was
  3484. // perceived has become inaudible.
  3485. int GetLastPerceptionInaudible();
  3486.  
  3487. // Use this in an OnPerception script to determine whether the object that was
  3488. // perceived was seen.
  3489. int GetLastPerceptionSeen();
  3490.  
  3491. // Use this in an OnClosed script to get the object that closed the door or placeable.
  3492. // * Returns OBJECT_INVALID if the caller is not a valid door or placeable.
  3493. object GetLastClosedBy();
  3494.  
  3495. // Use this in an OnPerception script to determine whether the object that was
  3496. // perceived has vanished.
  3497. int GetLastPerceptionVanished();
  3498.  
  3499. // Get the first object within oPersistentObject.
  3500. // - oPersistentObject
  3501. // - nResidentObjectType: OBJECT_TYPE_*
  3502. // - nPersistentZone: PERSISTENT_ZONE_ACTIVE. [This could also take the value
  3503. //   PERSISTENT_ZONE_FOLLOW, but this is no longer used.]
  3504. // * Returns OBJECT_INVALID if no object is found.
  3505. object GetFirstInPersistentObject(object oPersistentObject=OBJECT_SELF, int nResidentObjectType=OBJECT_TYPE_CREATURE, int nPersistentZone=PERSISTENT_ZONE_ACTIVE);
  3506.  
  3507. // Get the next object within oPersistentObject.
  3508. // - oPersistentObject
  3509. // - nResidentObjectType: OBJECT_TYPE_*
  3510. // - nPersistentZone: PERSISTENT_ZONE_ACTIVE. [This could also take the value
  3511. //   PERSISTENT_ZONE_FOLLOW, but this is no longer used.]
  3512. // * Returns OBJECT_INVALID if no object is found.
  3513. object GetNextInPersistentObject(object oPersistentObject=OBJECT_SELF, int nResidentObjectType=OBJECT_TYPE_CREATURE, int nPersistentZone=PERSISTENT_ZONE_ACTIVE);
  3514.  
  3515. // This returns the creator of oAreaOfEffectObject.
  3516. // * Returns OBJECT_INVALID if oAreaOfEffectObject is not a valid Area of Effect object.
  3517. object GetAreaOfEffectCreator(object oAreaOfEffectObject=OBJECT_SELF);
  3518.  
  3519. // Delete oObject's local integer variable sVarName
  3520. void DeleteLocalInt(object oObject, string sVarName);
  3521.  
  3522. // Delete oObject's local float variable sVarName
  3523. void DeleteLocalFloat(object oObject, string sVarName);
  3524.  
  3525. // Delete oObject's local string variable sVarName
  3526. void DeleteLocalString(object oObject, string sVarName);
  3527.  
  3528. // Delete oObject's local object variable sVarName
  3529. void DeleteLocalObject(object oObject, string sVarName);
  3530.  
  3531. // Delete oObject's local location variable sVarName
  3532. void DeleteLocalLocation(object oObject, string sVarName);
  3533.  
  3534. // Create a Haste effect.
  3535. effect EffectHaste();
  3536.  
  3537. // Create a Slow effect.
  3538. effect EffectSlow();
  3539.  
  3540. // Convert oObject into a hexadecimal string.
  3541. string ObjectToString(object oObject);
  3542.  
  3543. // Create an Immunity effect.
  3544. // - nImmunityType: IMMUNITY_TYPE_*
  3545. effect EffectImmunity(int nImmunityType);
  3546.  
  3547. // - oCreature
  3548. // - nImmunityType: IMMUNITY_TYPE_*
  3549. // - oVersus: if this is specified, then we also check for the race and
  3550. //   alignment of oVersus
  3551. // * Returns TRUE if oCreature has immunity of type nImmunity versus oVersus.
  3552. int GetIsImmune(object oCreature, int nImmunityType, object oVersus=OBJECT_INVALID);
  3553.  
  3554. // Creates a Damage Immunity Increase effect.
  3555. // - nDamageType: DAMAGE_TYPE_*
  3556. // - nPercentImmunity
  3557. effect EffectDamageImmunityIncrease(int nDamageType, int nPercentImmunity);
  3558.  
  3559. // Determine whether oEncounter is active.
  3560. int  GetEncounterActive(object oEncounter=OBJECT_SELF);
  3561.  
  3562. // Set oEncounter's active state to nNewValue.
  3563. // - nNewValue: TRUE/FALSE
  3564. // - oEncounter
  3565. void SetEncounterActive(int nNewValue, object oEncounter=OBJECT_SELF);
  3566.  
  3567. // Get the maximum number of times that oEncounter will spawn.
  3568. int GetEncounterSpawnsMax(object oEncounter=OBJECT_SELF);
  3569.  
  3570. // Set the maximum number of times that oEncounter can spawn
  3571. void SetEncounterSpawnsMax(int nNewValue, object oEncounter=OBJECT_SELF);
  3572.  
  3573. // Get the number of times that oEncounter has spawned so far
  3574. int  GetEncounterSpawnsCurrent(object oEncounter=OBJECT_SELF);
  3575.  
  3576. // Set the number of times that oEncounter has spawned so far
  3577. void SetEncounterSpawnsCurrent(int nNewValue, object oEncounter=OBJECT_SELF);
  3578.  
  3579. // Use this in an OnItemAcquired script to get the item that was acquired.
  3580. // * Returns OBJECT_INVALID if the module is not valid.
  3581. object GetModuleItemAcquired();
  3582.  
  3583. // Use this in an OnItemAcquired script to get the creatre that previously
  3584. // possessed the item.
  3585. // * Returns OBJECT_INVALID if the item was picked up from the ground.
  3586. object GetModuleItemAcquiredFrom();
  3587.  
  3588. // Set the value for a custom token.
  3589. void SetCustomToken(int nCustomTokenNumber, string sTokenValue);
  3590.  
  3591. // Determine whether oCreature has nFeat, and nFeat is useable.
  3592. // - nFeat: FEAT_*
  3593. // - oCreature
  3594. int GetHasFeat(int nFeat, object oCreature=OBJECT_SELF);
  3595.  
  3596. // Determine whether oCreature has nSkill, and nSkill is useable.
  3597. // - nSkill: SKILL_*
  3598. // - oCreature
  3599. int GetHasSkill(int nSkill, object oCreature=OBJECT_SELF);
  3600.  
  3601. // Use nFeat on oTarget.
  3602. // - nFeat: FEAT_*
  3603. // - oTarget
  3604. void ActionUseFeat(int nFeat, object oTarget);
  3605.  
  3606. // Runs the action "UseSkill" on the current creature
  3607. // Use nSkill on oTarget.
  3608. // - nSkill: SKILL_*
  3609. // - oTarget
  3610. // - nSubSkill: SUBSKILL_*
  3611. // - oItemUsed: Item to use in conjunction with the skill
  3612. void ActionUseSkill(int nSkill, object oTarget, int nSubSkill=0, object oItemUsed=OBJECT_INVALID );
  3613.  
  3614. // Determine whether oSource sees oTarget.
  3615. int GetObjectSeen(object oTarget, object oSource=OBJECT_SELF);
  3616.  
  3617. // Determine whether oSource hears oTarget.
  3618. int GetObjectHeard(object oTarget, object oSource=OBJECT_SELF);
  3619.  
  3620. // Use this in an OnPlayerDeath module script to get the last player that died.
  3621. object GetLastPlayerDied();
  3622.  
  3623. // Use this in an OnItemLost script to get the item that was lost/dropped.
  3624. // * Returns OBJECT_INVALID if the module is not valid.
  3625. object GetModuleItemLost();
  3626.  
  3627. // Use this in an OnItemLost script to get the creature that lost the item.
  3628. // * Returns OBJECT_INVALID if the module is not valid.
  3629. object GetModuleItemLostBy();
  3630.  
  3631. // Do aActionToDo.
  3632. void ActionDoCommand(action aActionToDo);
  3633.  
  3634. // Conversation event.
  3635. event EventConversation();
  3636.  
  3637. // Set the difficulty level of oEncounter.
  3638. // - nEncounterDifficulty: ENCOUNTER_DIFFICULTY_*
  3639. // - oEncounter
  3640. void SetEncounterDifficulty(int nEncounterDifficulty, object oEncounter=OBJECT_SELF);
  3641.  
  3642. // Get the difficulty level of oEncounter.
  3643. int GetEncounterDifficulty(object oEncounter=OBJECT_SELF);
  3644.  
  3645. // Get the distance between lLocationA and lLocationB.
  3646. float GetDistanceBetweenLocations(location lLocationA, location lLocationB);
  3647.  
  3648. // Use this in spell scripts to get nDamage adjusted by oTarget's reflex and
  3649. // evasion saves.
  3650. // - nDamage
  3651. // - oTarget
  3652. // - nDC: Difficulty check
  3653. // - nSaveType: SAVING_THROW_TYPE_*
  3654. // - oSaveVersus
  3655. int GetReflexAdjustedDamage(int nDamage, object oTarget, int nDC, int nSaveType=SAVING_THROW_TYPE_NONE, object oSaveVersus=OBJECT_SELF);
  3656.  
  3657. // Play nAnimation immediately.
  3658. // - nAnimation: ANIMATION_*
  3659. // - fSpeed
  3660. // - fSeconds
  3661. void PlayAnimation(int nAnimation, float fSpeed=1.0, float fSeconds=0.0);
  3662.  
  3663. // Create a Spell Talent.
  3664. // - nSpell: SPELL_*
  3665. talent TalentSpell(int nSpell);
  3666.  
  3667. // Create a Feat Talent.
  3668. // - nFeat: FEAT_*
  3669. talent TalentFeat(int nFeat);
  3670.  
  3671. // Create a Skill Talent.
  3672. // - nSkill: SKILL_*
  3673. talent TalentSkill(int nSkill);
  3674.  
  3675. // Determine if oObject has effects originating from nSpell.
  3676. // - nSpell: SPELL_*
  3677. // - oObject
  3678. int GetHasSpellEffect(int nSpell, object oObject=OBJECT_SELF);
  3679.  
  3680. // Get the spell (SPELL_*) that applied eSpellEffect.
  3681. // * Returns -1 if eSpellEffect was applied outside a spell script.
  3682. int GetEffectSpellId(effect eSpellEffect);
  3683.  
  3684. // Determine whether oCreature has tTalent.
  3685. int GetCreatureHasTalent(talent tTalent, object oCreature=OBJECT_SELF);
  3686.  
  3687. // Get a random talent of oCreature, within nCategory.
  3688. // - nCategory: TALENT_CATEGORY_*
  3689. // - oCreature
  3690. talent GetCreatureTalentRandom(int nCategory, object oCreature=OBJECT_SELF);
  3691.  
  3692. // Get the best talent (i.e. closest to nCRMax without going over) of oCreature,
  3693. // within nCategory.
  3694. // - nCategory: TALENT_CATEGORY_*
  3695. // - nCRMax: Challenge Rating of the talent
  3696. // - oCreature
  3697. talent GetCreatureTalentBest(int nCategory, int nCRMax, object oCreature=OBJECT_SELF);
  3698.  
  3699. // Use tChosenTalent on oTarget.
  3700. void ActionUseTalentOnObject(talent tChosenTalent, object oTarget);
  3701.  
  3702. // Use tChosenTalent at lTargetLocation.
  3703. void ActionUseTalentAtLocation(talent tChosenTalent, location lTargetLocation);
  3704.  
  3705. // Get the gold piece value of oItem.
  3706. // * Returns 0 if oItem is not a valid item.
  3707. int GetGoldPieceValue(object oItem);
  3708.  
  3709. // * Returns TRUE if oCreature is of a playable racial type.
  3710. int GetIsPlayableRacialType(object oCreature);
  3711.  
  3712. // Jump to lDestination.  The action is added to the TOP of the action queue.
  3713. void JumpToLocation(location lDestination);
  3714.  
  3715. // Create a Temporary Hitpoints effect.
  3716. // - nHitPoints: a positive integer
  3717. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nHitPoints < 0.
  3718. effect EffectTemporaryHitpoints(int nHitPoints);
  3719.  
  3720. // Get the number of ranks that oTarget has in nSkill.
  3721. // - nSkill: SKILL_*
  3722. // - oTarget
  3723. // * Returns -1 if oTarget doesn't have nSkill.
  3724. // * Returns 0 if nSkill is untrained.
  3725. int GetSkillRank(int nSkill, object oTarget=OBJECT_SELF);
  3726.  
  3727. // Get the attack target of oCreature.
  3728. // This only works when oCreature is in combat.
  3729. object GetAttackTarget(object oCreature=OBJECT_SELF);
  3730.  
  3731. // Get the attack type (SPECIAL_ATTACK_*) of oCreature's last attack.
  3732. // This only works when oCreature is in combat.
  3733. int GetLastAttackType(object oCreature=OBJECT_SELF);
  3734.  
  3735. // Get the attack mode (COMBAT_MODE_*) of oCreature's last attack.
  3736. // This only works when oCreature is in combat.
  3737. int GetLastAttackMode(object oCreature=OBJECT_SELF);
  3738.  
  3739. // Get the master of oAssociate.
  3740. object GetMaster(object oAssociate=OBJECT_SELF);
  3741.  
  3742. // * Returns TRUE if oCreature is in combat.
  3743. int GetIsInCombat(object oCreature=OBJECT_SELF);
  3744.  
  3745. // Get the last command (ASSOCIATE_COMMAND_*) issued to oAssociate.
  3746. int GetLastAssociateCommand(object oAssociate=OBJECT_SELF);
  3747.  
  3748. // Give nGP gold to oCreature.
  3749. void GiveGoldToCreature(object oCreature, int nGP);
  3750.  
  3751. // Set the destroyable status of the caller.
  3752. // - bDestroyable: If this is FALSE, the caller does not fade out on death, but
  3753. //   sticks around as a corpse.
  3754. // - bRaiseable: If this is TRUE, the caller can be raised via resurrection.
  3755. // - bSelectableWhenDead: If this is TRUE, the caller is selectable after death.
  3756. void SetIsDestroyable(int bDestroyable, int bRaiseable=TRUE, int bSelectableWhenDead=FALSE);
  3757.  
  3758. // Set the locked state of oTarget, which can be a door or a placeable object.
  3759. void SetLocked(object oTarget, int bLocked);
  3760.  
  3761. // Get the locked state of oTarget, which can be a door or a placeable object.
  3762. int GetLocked(object oTarget);
  3763.  
  3764. // Use this in a trigger's OnClick event script to get the object that last
  3765. // clicked on it.
  3766. // This is identical to GetEnteringObject.
  3767. object GetClickingObject();
  3768.  
  3769. // Initialise oTarget to listen for the standard Associates commands.
  3770. void SetAssociateListenPatterns(object oTarget=OBJECT_SELF);
  3771.  
  3772. // Get the last weapon that oCreature used in an attack.
  3773. // * Returns OBJECT_INVALID if oCreature did not attack, or has no weapon equipped.
  3774. object GetLastWeaponUsed(object oCreature);
  3775.  
  3776. // Use oPlaceable.
  3777. void ActionInteractObject(object oPlaceable);
  3778.  
  3779. // Get the last object that used the placeable object that is calling this function.
  3780. // * Returns OBJECT_INVALID if it is called by something other than a placeable or
  3781. //   a door.
  3782. object GetLastUsedBy();
  3783.  
  3784. // Returns the ability modifier for the specified ability
  3785. // Get oCreature's ability modifier for nAbility.
  3786. // - nAbility: ABILITY_*
  3787. // - oCreature
  3788. int GetAbilityModifier(int nAbility, object oCreature=OBJECT_SELF);
  3789.  
  3790. // Determined whether oItem has been identified.
  3791. int GetIdentified(object oItem);
  3792.  
  3793. // Set whether oItem has been identified.
  3794. void SetIdentified(object oItem, int bIdentified);
  3795.  
  3796. // Summon an Animal Companion
  3797. void SummonAnimalCompanion(object oMaster=OBJECT_SELF);
  3798.  
  3799. // Summon a Familiar
  3800. void SummonFamiliar(object oMaster=OBJECT_SELF);
  3801.  
  3802. // Get the last blocking door encountered by the caller of this function.
  3803. // * Returns OBJECT_INVALID if the caller is not a valid creature.
  3804. object GetBlockingDoor();
  3805.  
  3806. // - oTargetDoor
  3807. // - nDoorAction: DOOR_ACTION_*
  3808. // * Returns TRUE if nDoorAction can be performed on oTargetDoor.
  3809. int GetIsDoorActionPossible(object oTargetDoor, int nDoorAction);
  3810.  
  3811. // Perform nDoorAction on oTargetDoor.
  3812. void DoDoorAction(object oTargetDoor, int nDoorAction);
  3813.  
  3814. // Get the first item in oTarget's inventory (start to cycle through oTarget's
  3815. // inventory).
  3816. // * Returns OBJECT_INVALID if the caller is not a creature, item, placeable or store,
  3817. //   or if no item is found.
  3818. object GetFirstItemInInventory(object oTarget=OBJECT_SELF);
  3819.  
  3820. // Get the next item in oTarget's inventory (continue to cycle through oTarget's
  3821. // inventory).
  3822. // * Returns OBJECT_INVALID if the caller is not a creature, item, placeable or store,
  3823. //   or if no item is found.
  3824. object GetNextItemInInventory(object oTarget=OBJECT_SELF);
  3825.  
  3826. // A creature can have up to three classes.  This function determines the
  3827. // creature's class (CLASS_TYPE_*) based on nClassPosition.
  3828. // - nClassPosition: 1, 2 or 3
  3829. // - oCreature
  3830. // * Returns CLASS_TYPE_INVALID if the oCreature does not have a class in
  3831. //   nClassPosition (i.e. a single-class creature will only have a value in
  3832. //   nClassLocation=1) or if oCreature is not a valid creature.
  3833. int GetClassByPosition(int nClassPosition, object oCreature=OBJECT_SELF);
  3834.  
  3835. // A creature can have up to three classes.  This function determines the
  3836. // creature's class level based on nClass Position.
  3837. // - nClassPosition: 1, 2 or 3
  3838. // - oCreature
  3839. // * Returns 0 if oCreature does not have a class in nClassPosition
  3840. //   (i.e. a single-class creature will only have a value in nClassLocation=1)
  3841. //   or if oCreature is not a valid creature.
  3842. int GetLevelByPosition(int nClassPosition, object oCreature=OBJECT_SELF);
  3843.  
  3844. // Determine the levels that oCreature holds in nClassType.
  3845. // - nClassType: CLASS_TYPE_*
  3846. // - oCreature
  3847. int GetLevelByClass(int nClassType, object oCreature=OBJECT_SELF);
  3848.  
  3849. // Get the amount of damage of type nDamageType that has been dealt to the caller.
  3850. // - nDamageType: DAMAGE_TYPE_*
  3851. int GetDamageDealtByType(int nDamageType);
  3852.  
  3853. // Get the total amount of damage that has been dealt to the caller.
  3854. int GetTotalDamageDealt();
  3855.  
  3856. // Get the last object that damaged the caller.
  3857. // * Returns OBJECT_INVALID if the caller is not a valid object.
  3858. object GetLastDamager();
  3859.  
  3860. // Get the last object that disarmed the trap on the caller.
  3861. // * Returns OBJECT_INVALID if the caller is not a valid placeable, trigger or
  3862. //   door.
  3863. object GetLastDisarmed();
  3864.  
  3865. // Get the last object that disturbed the inventory of the caller.
  3866. // * Returns OBJECT_INVALID if the caller is not a valid creature or placeable.
  3867. object GetLastDisturbed();
  3868.  
  3869. // Get the last object that locked the caller.
  3870. // * Returns OBJECT_INVALID if the caller is not a valid door or placeable.
  3871. object GetLastLocked();
  3872.  
  3873. // Get the last object that unlocked the caller.
  3874. // * Returns OBJECT_INVALID if the caller is not a valid door or placeable.
  3875. object GetLastUnlocked();
  3876.  
  3877. // Create a Skill Increase effect.
  3878. // - nSkill: SKILL_*
  3879. // - nValue
  3880. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nSkill is invalid.
  3881. effect EffectSkillIncrease(int nSkill, int nValue);
  3882.  
  3883. // Get the type of disturbance (INVENTORY_DISTURB_*) that caused the caller's
  3884. // OnInventoryDisturbed script to fire.  This will only work for creatures and
  3885. // placeables.
  3886. int GetInventoryDisturbType();
  3887.  
  3888. // get the item that caused the caller's OnInventoryDisturbed script to fire.
  3889. // * Returns OBJECT_INVALID if the caller is not a valid object.
  3890. object GetInventoryDisturbItem();
  3891.  
  3892. // Get the henchman belonging to oMaster.
  3893. // * Return OBJECT_INVALID if oMaster does not have a henchman.
  3894. object GetHenchman(object oMaster=OBJECT_SELF);
  3895.  
  3896. // Set eEffect to be versus a specific alignment.
  3897. // - eEffect
  3898. // - nLawChaos: ALIGNMENT_LAWFUL/ALIGNMENT_CHAOTIC/ALIGNMENT_ALL
  3899. // - nGoodEvil: ALIGNMENT_GOOD/ALIGNMENT_EVIL/ALIGNMENT_ALL
  3900. effect VersusAlignmentEffect(effect eEffect, int nLawChaos=ALIGNMENT_ALL, int nGoodEvil=ALIGNMENT_ALL);
  3901.  
  3902. // Set eEffect to be versus nRacialType.
  3903. // - eEffect
  3904. // - nRacialType: RACIAL_TYPE_*
  3905. effect VersusRacialTypeEffect(effect eEffect, int nRacialType);
  3906.  
  3907. // Set eEffect to be versus traps.
  3908. effect VersusTrapEffect(effect eEffect);
  3909.  
  3910. // Get the gender of oCreature.
  3911. int GetGender(object oCreature);
  3912.  
  3913. // * Returns TRUE if tTalent is valid.
  3914. int GetIsTalentValid(talent tTalent);
  3915.  
  3916. // Causes the action subject to move away from lMoveAwayFrom.
  3917. void ActionMoveAwayFromLocation(location lMoveAwayFrom, int bRun=FALSE, float fMoveAwayRange=40.0f);
  3918.  
  3919. // Get the target that the caller attempted to attack - this should be used in
  3920. // conjunction with GetAttackTarget(). This value is set every time an attack is
  3921. // made, and is reset at the end of combat.
  3922. // * Returns OBJECT_INVALID if the caller is not a valid creature.
  3923. object GetAttemptedAttackTarget();
  3924.  
  3925. // Get the type (TALENT_TYPE_*) of tTalent.
  3926. int GetTypeFromTalent(talent tTalent);
  3927.  
  3928. // Get the ID of tTalent.  This could be a SPELL_*, FEAT_* or SKILL_*.
  3929. int GetIdFromTalent(talent tTalent);
  3930.  
  3931. // Get the associate of type nAssociateType belonging to oMaster.
  3932. // - nAssociateType: ASSOCIATE_TYPE_*
  3933. // - nMaster
  3934. // * Returns OBJECT_INVALID if no such associate exists.
  3935. object GetAssociate(int nAssociateType, object oMaster=OBJECT_SELF);
  3936.  
  3937. // Add oHenchman as a henchman to oMaster
  3938. void AddHenchman(object oMaster, object oHenchman=OBJECT_SELF);
  3939.  
  3940. // Remove oHenchman from the service of oMaster, returning them to their original faction.
  3941. void RemoveHenchman(object oMaster, object oHenchman=OBJECT_SELF);
  3942.  
  3943. // Add a journal quest entry to oCreature.
  3944. // - szPlotID: the plot identifier used in the toolset's Journal Editor
  3945. // - nState: the state of the plot as seen in the toolset's Journal Editor
  3946. // - oCreature
  3947. // - bAllPartyMembers: If this is TRUE, the entry will show up in the journal of
  3948. //   everyone in the party
  3949. // - bAllPlayers: If this is TRUE, the entry will show up in the journal of
  3950. //   everyone in the world
  3951. // - bAllowOverrideHigher: If this is TRUE, you can set the state to a lower
  3952. //   number than the one it is currently on
  3953. void AddJournalQuestEntry(string szPlotID, int nState, object oCreature, int bAllPartyMembers=TRUE, int bAllPlayers=FALSE, int bAllowOverrideHigher=FALSE);
  3954.  
  3955. // Remove a journal quest entry from oCreature.
  3956. // - szPlotID: the plot identifier used in the toolset's Journal Editor
  3957. // - oCreature
  3958. // - bAllPartyMembers: If this is TRUE, the entry will be removed from the
  3959. //   journal of everyone in the party
  3960. // - bAllPlayers: If this is TRUE, the entry will be removed from the journal of
  3961. //   everyone in the world
  3962. void RemoveJournalQuestEntry(string szPlotID, object oCreature, int bAllPartyMembers=TRUE, int bAllPlayers=FALSE);
  3963.  
  3964. // Get the public part of the CD Key that oPlayer used when logging in.
  3965. string GetPCPublicCDKey(object oPlayer);
  3966.  
  3967. // Get the IP address from which oPlayer has connected.
  3968. string GetPCIPAddress(object oPlayer);
  3969.  
  3970. // Get the name of oPlayer.
  3971. string GetPCPlayerName(object oPlayer);
  3972.  
  3973. // Sets oPlayer and oTarget to like each other.
  3974. void SetPCLike(object oPlayer, object oTarget);
  3975.  
  3976. // Sets oPlayer and oTarget to dislike each other.
  3977. void SetPCDislike(object oPlayer, object oTarget);
  3978.  
  3979. // Send a server message (szMessage) to the oPlayer.
  3980. void SendMessageToPC(object oPlayer, string szMessage);
  3981.  
  3982. // Get the target at which the caller attempted to cast a spell.
  3983. // This value is set every time a spell is cast and is reset at the end of
  3984. // combat.
  3985. // * Returns OBJECT_INVALID if the caller is not a valid creature.
  3986. object GetAttemptedSpellTarget();
  3987.  
  3988. // Get the last creature that opened the caller.
  3989. // * Returns OBJECT_INVALID if the caller is not a valid door or placeable.
  3990. object GetLastOpenedBy();
  3991.  
  3992. // Determine whether oCreature has nSpell memorised.
  3993. // - nSpell: SPELL_*
  3994. // - oCreature
  3995. int GetHasSpell(int nSpell, object oCreature=OBJECT_SELF);
  3996.  
  3997. // Open oStore for oPC.
  3998. void OpenStore(object oStore, object oPC, int nBonusMarkUp=0, int nBonusMarkDown=0);
  3999.  
  4000. // Create a Turned effect.
  4001. effect EffectTurned();
  4002.  
  4003. // Get the first member of oMemberOfFaction's faction (start to cycle through
  4004. // oMemberOfFaction's faction).
  4005. // * Returns OBJECT_INVALID if oMemberOfFaction's faction is invalid.
  4006. object GetFirstFactionMember(object oMemberOfFaction, int bPCOnly=TRUE);
  4007.  
  4008. // Get the next member of oMemberOfFaction's faction (continue to cycle through
  4009. // oMemberOfFaction's faction).
  4010. // * Returns OBJECT_INVALID if oMemberOfFaction's faction is invalid.
  4011. object GetNextFactionMember(object oMemberOfFaction, int bPCOnly=TRUE);
  4012.  
  4013. // Force the action subject to move to lDestination.
  4014. void ActionForceMoveToLocation(location lDestination, int bRun=FALSE, float fTimeout=30.0f);
  4015.  
  4016. // Force the action subject to move to oMoveTo.
  4017. void ActionForceMoveToObject(object oMoveTo, int bRun=FALSE, float fRange=1.0f, float fTimeout=30.0f);
  4018.  
  4019. // Get the experience assigned in the journal editor for szPlotID.
  4020. int GetJournalQuestExperience(string szPlotID);
  4021.  
  4022. // Jump to oToJumpTo (the action is added to the top of the action queue).
  4023. void JumpToObject(object oToJumpTo, int nWalkStraightLineToPoint=1);
  4024.  
  4025. // Set whether oMapPin is enabled.
  4026. // - oMapPin
  4027. // - nEnabled: 0=Off, 1=On
  4028. void SetMapPinEnabled(object oMapPin, int nEnabled);
  4029.  
  4030. // Create a Hit Point Change When Dying effect.
  4031. // - fHitPointChangePerRound: this can be positive or negative, but not zero.
  4032. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if fHitPointChangePerRound is 0.
  4033. effect EffectHitPointChangeWhenDying(float fHitPointChangePerRound);
  4034.  
  4035. // Spawn a GUI panel for the client that controls oPC.
  4036. // - oPC
  4037. // - nGUIPanel: GUI_PANEL_*
  4038. // * Nothing happens if oPC is not a player character or if an invalid value is
  4039. //   used for nGUIPanel.
  4040. void PopUpGUIPanel(object oPC, int nGUIPanel);
  4041.  
  4042. // Clear all personal feelings that oSource has about oTarget.
  4043. void ClearPersonalReputation(object oTarget, object oSource=OBJECT_SELF);
  4044.  
  4045. // oSource will temporarily be friends towards oTarget.
  4046. // bDecays determines whether the personal reputation value decays over time
  4047. // fDurationInSeconds is the length of time that the temporary friendship lasts
  4048.  
  4049. // Make oSource into a temporary friend of oTarget using personal reputation.
  4050. // - oTarget
  4051. // - oSource
  4052. // - bDecays: If this is TRUE, the friendship decays over fDurationInSeconds;
  4053. //   otherwise it is indefinite.
  4054. // - fDurationInSeconds: This is only used if bDecays is TRUE, it is how long
  4055. //   the friendship lasts.
  4056. // Note: If bDecays is TRUE, the personal reputation amount decreases in size
  4057. // over fDurationInSeconds. Friendship will only be in effect as long as
  4058. // (faction reputation + total personal reputation) >= REPUTATION_TYPE_FRIEND.
  4059. void SetIsTemporaryFriend(object oTarget, object oSource=OBJECT_SELF, int bDecays=FALSE, float fDurationInSeconds=180.0f);
  4060.  
  4061. // Make oSource into a temporary enemy of oTarget using personal reputation.
  4062. // - oTarget
  4063. // - oSource
  4064. // - bDecays: If this is TRUE, the enmity decays over fDurationInSeconds;
  4065. //   otherwise it is indefinite.
  4066. // - fDurationInSeconds: This is only used if bDecays is TRUE, it is how long
  4067. //   the enmity lasts.
  4068. // Note: If bDecays is TRUE, the personal reputation amount decreases in size
  4069. // over fDurationInSeconds. Enmity will only be in effect as long as
  4070. // (faction reputation + total personal reputation) <= REPUTATION_TYPE_ENEMY.
  4071. void SetIsTemporaryEnemy(object oTarget, object oSource=OBJECT_SELF, int bDecays=FALSE, float fDurationInSeconds=180.0f);
  4072.  
  4073. // Make oSource temporarily neutral to oTarget using personal reputation.
  4074. // - oTarget
  4075. // - oSource
  4076. // - bDecays: If this is TRUE, the neutrality decays over fDurationInSeconds;
  4077. //   otherwise it is indefinite.
  4078. // - fDurationInSeconds: This is only used if bDecays is TRUE, it is how long
  4079. //   the neutrality lasts.
  4080. // Note: If bDecays is TRUE, the personal reputation amount decreases in size
  4081. // over fDurationInSeconds. Neutrality will only be in effect as long as
  4082. // (faction reputation + total personal reputation) > REPUTATION_TYPE_ENEMY and
  4083. // (faction reputation + total personal reputation) < REPUTATION_TYPE_FRIEND.
  4084. void SetIsTemporaryNeutral(object oTarget, object oSource=OBJECT_SELF, int bDecays=FALSE, float fDurationInSeconds=180.0f);
  4085.  
  4086. // Gives nXpAmount to oCreature.
  4087. void GiveXPToCreature(object oCreature, int nXpAmount);
  4088.  
  4089. // Sets oCreature's experience to nXpAmount.
  4090. void SetXP(object oCreature, int nXpAmount);
  4091.  
  4092. // Get oCreature's experience.
  4093. int GetXP(object oCreature);
  4094.  
  4095. // Convert nInteger to hex, returning the hex value as a string.
  4096. // * Return value has the format "0x????????" where each ? will be a hex digit
  4097. //   (8 digits in total).
  4098. string IntToHexString(int nInteger);
  4099.  
  4100. // Get the base item type (BASE_ITEM_*) of oItem.
  4101. // * Returns BASE_ITEM_INVALID if oItem is an invalid item.
  4102. int GetBaseItemType(object oItem);
  4103.  
  4104. // Determines whether oItem has nProperty.
  4105. // - oItem
  4106. // - nProperty: ITEM_PROPERTY_*
  4107. // * Returns FALSE if oItem is not a valid item, or if oItem does not have
  4108. //   nProperty.
  4109. int GetItemHasItemProperty(object oItem, int nProperty);
  4110.  
  4111. // The creature will equip the melee weapon in its possession that can do the
  4112. // most damage. If no valid melee weapon is found, it will equip the most
  4113. // damaging range weapon. This function should only ever be called in the
  4114. // EndOfCombatRound scripts, because otherwise it would have to stop the combat
  4115. // round to run simulation.
  4116. // - oVersus: You can try to get the most damaging weapon against oVersus
  4117. // - bOffHand
  4118. void ActionEquipMostDamagingMelee(object oVersus=OBJECT_INVALID, int bOffHand=FALSE);
  4119.  
  4120. // The creature will equip the range weapon in its possession that can do the
  4121. // most damage.
  4122. // If no valid range weapon can be found, it will equip the most damaging melee
  4123. // weapon.
  4124. // - oVersus: You can try to get the most damaging weapon against oVersus
  4125. void ActionEquipMostDamagingRanged(object oVersus=OBJECT_INVALID);
  4126.  
  4127. // Get the Armour Class of oItem.
  4128. // * Return 0 if the oItem is not a valid item, or if oItem has no armour value.
  4129. int GetItemACValue(object oItem);
  4130.  
  4131. // The creature will rest.
  4132. void ActionRest();
  4133.  
  4134. // Expose the entire map of oArea to oPlayer.
  4135. void ExploreAreaForPlayer(object oArea, object oPlayer);
  4136.  
  4137. // The creature will equip the armour in its possession that has the highest
  4138. // armour class.
  4139. void ActionEquipMostEffectiveArmor();
  4140.  
  4141. // * Returns TRUE if it is currently day.
  4142. int GetIsDay();
  4143.  
  4144. // * Returns TRUE if it is currently night.
  4145. int GetIsNight();
  4146.  
  4147. // * Returns TRUE if it is currently dawn.
  4148. int GetIsDawn();
  4149.  
  4150. // * Returns TRUE if it is currently dusk.
  4151. int GetIsDusk();
  4152.  
  4153. // * Returns TRUE if oCreature was spawned from an encounter.
  4154. int GetIsEncounterCreature(object oCreature=OBJECT_SELF);
  4155.  
  4156. // Use this in an OnPlayerDying module script to get the last player who is dying.
  4157. object GetLastPlayerDying();
  4158.  
  4159. // Get the starting location of the module.
  4160. location GetStartingLocation();
  4161.  
  4162. // Make oCreatureToChange join one of the standard factions.
  4163. // ** This will only work on an NPC **
  4164. // - nStandardFaction: STANDARD_FACTION_*
  4165. void ChangeToStandardFaction(object oCreatureToChange, int nStandardFaction);
  4166.  
  4167. // Play oSound.
  4168. void SoundObjectPlay(object oSound);
  4169.  
  4170. // Stop playing oSound.
  4171. void SoundObjectStop(object oSound);
  4172.  
  4173. // Set the volume of oSound.
  4174. // - oSound
  4175. // - nVolume: 0-127
  4176. void SoundObjectSetVolume(object oSound, int nVolume);
  4177.  
  4178. // Set the position of oSound.
  4179. void SoundObjectSetPosition(object oSound, vector vPosition);
  4180.  
  4181.  
  4182. // Immediately speak a conversation one-liner.
  4183. // - sDialogResRef
  4184. // - oTokenTarget: This must be specified if there are creature-specific tokens
  4185. //   in the string.
  4186. void SpeakOneLinerConversation(string sDialogResRef="", object oTokenTarget=OBJECT_TYPE_INVALID);
  4187.  
  4188. // Get the amount of gold possessed by oTarget.
  4189. int GetGold(object oTarget=OBJECT_SELF);
  4190.  
  4191. // Use this in an OnRespawnButtonPressed module script to get the object id of
  4192. // the player who last pressed the respawn button.
  4193. object GetLastRespawnButtonPresser();
  4194.  
  4195. // * Returns TRUE if oCreature is controlled by the Dungeon Master.
  4196. int GetIsDM(object oCreature);
  4197.  
  4198. // Play a voice chat.
  4199. // - nVoiceChatID: VOICE_CHAT_*
  4200. // - oTarget
  4201. void PlayVoiceChat(int nVoiceChatID, object oTarget=OBJECT_SELF);
  4202.  
  4203. // * Returns TRUE if the weapon equipped is capable of damaging oVersus.
  4204. int GetIsWeaponEffective(object oVersus=OBJECT_INVALID, int bOffHand=FALSE);
  4205.  
  4206. // Use this in a SpellCast script to determine whether the spell was considered
  4207. // harmful.
  4208. // * Returns TRUE if the last spell cast was harmful.
  4209. int GetLastSpellHarmful();
  4210.  
  4211. // Activate oItem.
  4212. event EventActivateItem(object oItem, location lTarget, object oTarget=OBJECT_INVALID);
  4213.  
  4214. // Play the background music for oArea.
  4215. void MusicBackgroundPlay(object oArea);
  4216.  
  4217. // Stop the background music for oArea.
  4218. void MusicBackgroundStop(object oArea);
  4219.  
  4220. // Set the delay for the background music for oArea.
  4221. // - oArea
  4222. // - nDelay: delay in milliseconds
  4223. void MusicBackgroundSetDelay(object oArea, int nDelay);
  4224.  
  4225. // Change the background day track for oArea to nTrack.
  4226. // - oArea
  4227. // - nTrack
  4228. void MusicBackgroundChangeDay(object oArea, int nTrack);
  4229.  
  4230. // Change the background night track for oArea to nTrack.
  4231. // - oArea
  4232. // - nTrack
  4233. void MusicBackgroundChangeNight(object oArea, int nTrack);
  4234.  
  4235. // Play the battle music for oArea.
  4236. void MusicBattlePlay(object oArea);
  4237.  
  4238. // Stop the battle music for oArea.
  4239. void MusicBattleStop(object oArea);
  4240.  
  4241. // Change the battle track for oArea.
  4242. // - oArea
  4243. // - nTrack
  4244. void MusicBattleChange(object oArea, int nTrack);
  4245.  
  4246. // Play the ambient sound for oArea.
  4247. void AmbientSoundPlay(object oArea);
  4248.  
  4249. // Stop the ambient sound for oArea.
  4250. void AmbientSoundStop(object oArea);
  4251.  
  4252. // Change the ambient day track for oArea to nTrack.
  4253. // - oArea
  4254. // - nTrack
  4255. void AmbientSoundChangeDay(object oArea, int nTrack);
  4256.  
  4257. // Change the ambient night track for oArea to nTrack.
  4258. // - oArea
  4259. // - nTrack
  4260. void AmbientSoundChangeNight(object oArea, int nTrack);
  4261.  
  4262. // Get the object that killed the caller.
  4263. object GetLastKiller();
  4264.  
  4265. // Use this in a spell script to get the item used to cast the spell.
  4266. object GetSpellCastItem();
  4267.  
  4268. // Use this in an OnItemActivated module script to get the item that was activated.
  4269. object GetItemActivated();
  4270.  
  4271. // Use this in an OnItemActivated module script to get the creature that
  4272. // activated the item.
  4273. object GetItemActivator();
  4274.  
  4275. // Use this in an OnItemActivated module script to get the location of the item's
  4276. // target.
  4277. location GetItemActivatedTargetLocation();
  4278.  
  4279. // Use this in an OnItemActivated module script to get the item's target.
  4280. object GetItemActivatedTarget();
  4281.  
  4282. // * Returns TRUE if oObject (which is a placeable or a door) is currently open.
  4283. int GetIsOpen(object oObject);
  4284.  
  4285. // Take nAmount of gold from oCreatureToTakeFrom.
  4286. // - nAmount
  4287. // - oCreatureToTakeFrom: If this is not a valid creature, nothing will happen.
  4288. // - bDestroy: If this is TRUE, the caller will not get the gold.  Instead, the
  4289. //   gold will be destroyed and will vanish from the game.
  4290. void TakeGoldFromCreature(int nAmount, object oCreatureToTakeFrom, int bDestroy=FALSE);
  4291.  
  4292. // Determine whether oObject is in conversation.
  4293. int IsInConversation(object oObject);
  4294.  
  4295. // Create an Ability Decrease effect.
  4296. // - nAbility: ABILITY_*
  4297. // - nModifyBy: This is the amount by which to decrement the ability
  4298. effect EffectAbilityDecrease(int nAbility, int nModifyBy);
  4299.  
  4300. // Create an Attack Decrease effect.
  4301. // - nPenalty
  4302. // - nModifierType: ATTACK_BONUS_*
  4303. effect EffectAttackDecrease(int nPenalty, int nModifierType=ATTACK_BONUS_MISC);
  4304.  
  4305. // Create a Damage Decrease effect.
  4306. // - nPenalty
  4307. // - nDamageType: DAMAGE_TYPE_*
  4308. effect EffectDamageDecrease(int nPenalty, int nDamageType=DAMAGE_TYPE_MAGICAL);
  4309.  
  4310. // Create a Damage Immunity Decrease effect.
  4311. // - nDamageType: DAMAGE_TYPE_*
  4312. // - nPercentImmunity
  4313. effect EffectDamageImmunityDecrease(int nDamageType, int nPercentImmunity);
  4314.  
  4315. // Create an AC Decrease effect.
  4316. // - nValue
  4317. // - nModifyType: AC_*
  4318. // - nDamageType: DAMAGE_TYPE_*
  4319. //   * Default value for nDamageType should only ever be used in this function prototype.
  4320. effect EffectACDecrease(int nValue, int nModifyType=AC_DODGE_BONUS, int nDamageType=AC_VS_DAMAGE_TYPE_ALL);
  4321.  
  4322. // Create a Movement Speed Decrease effect.
  4323. // - nPercentChange
  4324. effect EffectMovementSpeedDecrease(int nPercentChange);
  4325.  
  4326. // Create a Saving Throw Decrease effect.
  4327. // - nSave
  4328. // - nValue
  4329. // - nSaveType: SAVING_THROW_TYPE_*
  4330. effect EffectSavingThrowDecrease(int nSave, int nValue, int nSaveType=SAVING_THROW_TYPE_ALL);
  4331.  
  4332. // Create a Skill Decrease effect.
  4333. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nSkill is invalid.
  4334. effect EffectSkillDecrease(int nSkill, int nValue);
  4335.  
  4336. // Create a Spell Resistance Decrease effect.
  4337. effect EffectSpellResistanceDecrease(int nValue);
  4338.  
  4339. // Determine whether oTarget is a plot object.
  4340. int GetPlotFlag(object oTarget=OBJECT_SELF);
  4341.  
  4342. // Set oTarget's plot object status.
  4343. void SetPlotFlag(object oTarget, int nPlotFlag);
  4344.  
  4345. // Create an Invisibility effect.
  4346. // - nInvisibilityType: INVISIBILITY_TYPE_*
  4347. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nInvisibilityType
  4348. //   is invalid.
  4349. effect EffectInvisibility(int nInvisibilityType);
  4350.  
  4351. // Create a Concealment effect.
  4352. // - nPercentage: 1-100 inclusive
  4353. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nPercentage < 1 or
  4354. //   nPercentage > 100.
  4355. effect EffectConcealment(int nPercentage);
  4356.  
  4357. // Create a Darkness effect.
  4358. effect EffectDarkness();
  4359.  
  4360. // Create a Dispel Magic All effect.
  4361. effect EffectDispelMagicAll(int nCasterLevel);
  4362.  
  4363. // Create an Ultravision effect.
  4364. effect EffectUltravision();
  4365.  
  4366. // Create a Negative Level effect.
  4367. // - nNumLevels: the number of negative levels to apply.
  4368. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nNumLevels > 100.
  4369. effect EffectNegativeLevel(int nNumLevels);
  4370.  
  4371. // Create a Polymorph effect.
  4372. effect EffectPolymorph(int nPolymorphSelection);
  4373.  
  4374. // Create a Sanctuary effect.
  4375. // - nDifficultyClass: must be a non-zero, positive number
  4376. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nDifficultyClass <= 0.
  4377. effect EffectSanctuary(int nDifficultyClass);
  4378.  
  4379. // Create a True Seeing effect.
  4380. effect EffectTrueSeeing();
  4381.  
  4382. // Create a See Invisible effect.
  4383. effect EffectSeeInvisible();
  4384.  
  4385. // Create a Time Stop effect.
  4386. effect EffectTimeStop();
  4387.  
  4388. // Create a Blindness effect.
  4389. effect EffectBlindness();
  4390.  
  4391. // Determine whether oSource has a friendly reaction towards oTarget, depending
  4392. // on the reputation, PVP setting and (if both oSource and oTarget are PCs),
  4393. // oSource's Like/Dislike setting for oTarget.
  4394. // Note: If you just want to know how two objects feel about each other in terms
  4395. // of faction and personal reputation, use GetIsFriend() instead.
  4396. // * Returns TRUE if oSource has a friendly reaction towards oTarget
  4397. int GetIsReactionTypeFriendly(object oTarget, object oSource=OBJECT_SELF);
  4398.  
  4399. // Determine whether oSource has a neutral reaction towards oTarget, depending
  4400. // on the reputation, PVP setting and (if both oSource and oTarget are PCs),
  4401. // oSource's Like/Dislike setting for oTarget.
  4402. // Note: If you just want to know how two objects feel about each other in terms
  4403. // of faction and personal reputation, use GetIsNeutral() instead.
  4404. // * Returns TRUE if oSource has a neutral reaction towards oTarget
  4405. int GetIsReactionTypeNeutral(object oTarget, object oSource=OBJECT_SELF);
  4406.  
  4407. // Determine whether oSource has a Hostile reaction towards oTarget, depending
  4408. // on the reputation, PVP setting and (if both oSource and oTarget are PCs),
  4409. // oSource's Like/Dislike setting for oTarget.
  4410. // Note: If you just want to know how two objects feel about each other in terms
  4411. // of faction and personal reputation, use GetIsEnemy() instead.
  4412. // * Returns TRUE if oSource has a hostile reaction towards oTarget
  4413. int GetIsReactionTypeHostile(object oTarget, object oSource=OBJECT_SELF);
  4414.  
  4415. // Create a Spell Level Absorption effect.
  4416. // - nMaxSpellLevelAbsorbed: maximum spell level that will be absorbed by the
  4417. //   effect
  4418. // - nTotalSpellLevelsAbsorbed: maximum number of spell levels that will be
  4419. //   absorbed by the effect
  4420. // - nSpellSchool: SPELL_SCHOOL_*
  4421. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if:
  4422. //   nMaxSpellLevelAbsorbed is not between -1 and 9 inclusive, or nSpellSchool
  4423. //   is invalid.
  4424. effect EffectSpellLevelAbsorption(int nMaxSpellLevelAbsorbed, int nTotalSpellLevelsAbsorbed=0, int nSpellSchool=SPELL_SCHOOL_GENERAL );
  4425.  
  4426. // Create a Dispel Magic Best effect.
  4427. effect EffectDispelMagicBest(int nCasterLevel);
  4428.  
  4429. // Try to send oTarget to a new server defined by sIPaddress.
  4430. // - oTarget
  4431. // - sIPaddress: this can be numerical "192.168.0.84" or alphanumeric
  4432. //   "www.bioware.com". It can also contain a port "192.168.0.84:5121" or
  4433. //   "www.bioware.com:5121"; if the port is not specified, it will default to
  4434. //   5121.
  4435. // - sPassword: login password for the destination server
  4436. // - sWaypointTag: if this is set, after portalling the character will be moved
  4437. //   to this waypoint if it exists
  4438. // - bSeamless: if this is set, the client wil not be prompted with the
  4439. //   information window telling them about the server, and they will not be
  4440. //   allowed to save a copy of their character if they are using a local vault
  4441. //   character.
  4442. void ActivatePortal(object oTarget, string sIPaddress="", string sPassword="", string sWaypointTag="", int bSeemless=FALSE);
  4443.  
  4444. // Get the number of stacked items that oItem comprises.
  4445. int GetNumStackedItems(object oItem);
  4446.  
  4447. // Use this on an NPC to cause all creatures within a 10-metre radius to stop
  4448. // what they are doing and sets the NPC's enemies within this range to be
  4449. // neutral towards the NPC for roughly 3 minutes. If this command is run on a PC
  4450. // or an object that is not a creature, nothing will happen.
  4451. void SurrenderToEnemies();
  4452.  
  4453. // Create a Miss Chance effect.
  4454. // - nPercentage: 1-100 inclusive
  4455. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nPercentage < 1 or
  4456. //   nPercentage > 100.
  4457. effect EffectMissChance(int nPercentage);
  4458.  
  4459. // Get the number of Hitdice worth of Turn Resistance that oUndead may have.
  4460. // This will only work on undead creatures.
  4461. int GetTurnResistanceHD(object oUndead=OBJECT_SELF);
  4462.  
  4463. // Get the size (CREATURE_SIZE_*) of oCreature.
  4464. int GetCreatureSize(object oCreature);
  4465.  
  4466. // Create a Disappear/Appear effect.
  4467. // The object will "fly away" for the duration of the effect and will reappear
  4468. // at lLocation.
  4469. effect EffectDisappearAppear(location lLocation);
  4470.  
  4471. // Create a Disappear effect to make the object "fly away" and then destroy
  4472. // itself.
  4473. effect EffectDisappear();
  4474.  
  4475. // Create an Appear effect to make the object "fly in".
  4476. effect EffectAppear();
  4477.  
  4478. // The action subject will unlock oTarget, which can be a door or a placeable
  4479. // object.
  4480. void ActionUnlockObject(object oTarget);
  4481.  
  4482. // The action subject will lock oTarget, which can be a door or a placeable
  4483. // object.
  4484. void ActionLockObject(object oTarget);
  4485.  
  4486. // Create a Modify Attacks effect to add attacks.
  4487. // - nAttacks: maximum is 5, even with the effect stacked
  4488. // * Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nAttacks > 5.
  4489. effect EffectModifyAttacks(int nAttacks);
  4490.  
  4491. // Get the last trap detected by oTarget.
  4492. // * Return value on error: OBJECT_INVALID
  4493. object GetLastTrapDetected(object oTarget=OBJECT_SELF);
  4494.  
  4495. // Create a Damage Shield effect which does (nDamageAmount + nRandomAmount)
  4496. // damage to any melee attacker on a successful attack of damage type nDamageType.
  4497. // - nDamageAmount: an integer value
  4498. // - nRandomAmount: DAMAGE_BONUS_*
  4499. // - nDamageType: DAMAGE_TYPE_*
  4500. effect EffectDamageShield(int nDamageAmount, int nRandomAmount, int nDamageType);
  4501.  
  4502. // Get the trap nearest to oTarget.
  4503. // Note : "trap objects" are actually any trigger, placeable or door that is
  4504. // trapped in oTarget's area.
  4505. // - oTarget
  4506. // - nTrapDetected: if this is TRUE, the trap returned has to have been detected
  4507. //   by oTarget.
  4508. object GetNearestTrapToObject(object oTarget=OBJECT_SELF, int nTrapDetected=TRUE);
  4509.  
  4510. // Get the name of oCreature's deity.
  4511. // * Returns "" if oCreature is invalid (or if the deity name is blank for
  4512. //   oCreature).
  4513. string GetDeity(object oCreature);
  4514.  
  4515. // Get the name of oCreature's sub race.
  4516. // * Returns "" if oCreature is invalid (or if sub race is blank for oCreature).
  4517. string GetSubRace(object oTarget);
  4518.  
  4519. // Get oTarget's base fortitude saving throw value (this will only work for
  4520. // creatures, doors, and placeables).
  4521. // * Returns 0 if oTarget is invalid.
  4522. int GetFortitudeSavingThrow(object oTarget);
  4523.  
  4524. // Get oTarget's base will saving throw value (this will only work for creatures,
  4525. // doors, and placeables).
  4526. // * Returns 0 if oTarget is invalid.
  4527. int GetWillSavingThrow(object oTarget);
  4528.  
  4529. // Get oTarget's base reflex saving throw value (this will only work for
  4530. // creatures, doors, and placeables).
  4531. // * Returns 0 if oTarget is invalid.
  4532. int GetReflexSavingThrow(object oTarget);
  4533.  
  4534. // Get oCreature's challenge rating.
  4535. // * Returns 0.0 if oCreature is invalid.
  4536. float GetChallengeRating(object oCreature);
  4537.  
  4538. // Get oCreature's age.
  4539. // * Returns 0 if oCreature is invalid.
  4540. int GetAge(object oCreature);
  4541.  
  4542. // Get oCreature's movement rate.
  4543. // * Returns 0 if oCreature is invalid.
  4544. int GetMovementRate(object oCreature);
  4545.  
  4546. // Get oCreature's animal companion creature type
  4547. // (ANIMAL_COMPANION_CREATURE_TYPE_*).
  4548. // * Returns ANIMAL_COMPANION_CREATURE_TYPE_NONE if oCreature is invalid or does
  4549. //   not currently have an animal companion.
  4550. int GetAnimalCompanionCreatureType(object oCreature);
  4551.  
  4552. // Get oCreature's familiar creature type (FAMILIAR_CREATURE_TYPE_*).
  4553. // * Returns FAMILIAR_CREATURE_TYPE_NONE if oCreature is invalid or does not
  4554. //   currently have a familiar.
  4555. int GetFamiliarCreatureType(object oCreature);
  4556.  
  4557. // Get oCreature's animal companion's name.
  4558. // * Returns "" if oCreature is invalid, does not currently
  4559. // have an animal companion or if the animal companion's name is blank.
  4560. string GetAnimalCompanionName(object oTarget);
  4561.  
  4562. // Get oCreature's familiar's name.
  4563. // * Returns "" if oCreature is invalid, does not currently
  4564. // have a familiar or if the familiar's name is blank.
  4565. string GetFamiliarName(object oCreature);
  4566.  
  4567. // The action subject will fake casting a spell at oTarget; the conjure and cast
  4568. // animations and visuals will occur, nothing else.
  4569. // - nSpell
  4570. // - oTarget
  4571. // - nProjectilePathType: PROJECTILE_PATH_TYPE_*
  4572. void ActionCastFakeSpellAtObject(int nSpell, object oTarget, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT);
  4573.  
  4574. // The action subject will fake casting a spell at lLocation; the conjure and
  4575. // cast animations and visuals will occur, nothing else.
  4576. // - nSpell
  4577. // - lTarget
  4578. // - nProjectilePathType: PROJECTILE_PATH_TYPE_*
  4579. void ActionCastFakeSpellAtLocation(int nSpell, location lTarget, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT);
  4580.  
  4581. // Removes oAssociate from the service of oMaster, returning them to their
  4582. // original faction.
  4583. void RemoveSummonedAssociate(object oMaster, object oAssociate=OBJECT_SELF);
  4584.  
  4585. // Set the camera mode for oPlayer.
  4586. // - oPlayer
  4587. // - nCameraMode: CAMERA_MODE_*
  4588. // * If oPlayer is not player-controlled or nCameraMode is invalid, nothing
  4589. //   happens.
  4590. void SetCameraMode(object oPlayer, int nCameraMode);
  4591.  
  4592. // * Returns TRUE if oCreature is resting.
  4593. int GetIsResting(object oCreature=OBJECT_SELF);
  4594.  
  4595. // Get the last PC that has rested in the module.
  4596. object GetLastPCRested();
  4597.  
  4598. // Set the weather for oTarget.
  4599. // - oTarget: if this is GetModule(), all outdoor areas will be modified by the
  4600. //   weather constant. If it is an area, oTarget will play the weather only if
  4601. //   it is an outdoor area.
  4602. // - nWeather: WEATHER_*
  4603. //   -> WEATHER_USER_AREA_SETTINGS will set the area back to random weather.
  4604. //   -> WEATHER_CLEAR, WEATHER_RAIN, WEATHER_SNOW will make the weather go to
  4605. //      the appropriate precipitation *without stopping*.
  4606. void SetWeather(object oTarget, int nWeather);
  4607.  
  4608. // Determine the type (REST_EVENTTYPE_REST_*) of the last rest event (as
  4609. // returned from the OnPCRested module event).
  4610. int GetLastRestEventType();
  4611.  
  4612. // Shut down the currently loaded module and start a new one (moving all
  4613. // currently-connected players to the starting point.
  4614. void StartNewModule(string sModuleName);
  4615.  
  4616. // Create a Swarm effect.
  4617. // - nLooping: If this is TRUE, for the duration of the effect when one creature
  4618. //   created by this effect dies, the next one in the list will be created.  If
  4619. //   the last creature in the list dies, we loop back to the beginning and
  4620. //   sCreatureTemplate1 will be created, and so on...
  4621. // - sCreatureTemplate1
  4622. // - sCreatureTemplate2
  4623. // - sCreatureTemplate3
  4624. // - sCreatureTemplate4
  4625. effect EffectSwarm(int nLooping, string sCreatureTemplate1, string sCreatureTemplate2="", string sCreatureTemplate3="", string sCreatureTemplate4="");
  4626.  
  4627. // * Returns TRUE if oItem is a ranged weapon.
  4628. int GetWeaponRanged(object oItem);
  4629.  
  4630. // Only if we are in a single player game, AutoSave the game.
  4631. void DoSinglePlayerAutoSave();
  4632.  
  4633. // Get the game difficulty (GAME_DIFFICULTY_*).
  4634. int GetGameDifficulty();
  4635.  
  4636. // Set the main light color on the tile at lTileLocation.
  4637. // - lTileLocation: the vector part of this is the tile grid (x,y) coordinate of
  4638. //   the tile.
  4639. // - nMainLight1Color: TILE_MAIN_LIGHT_COLOR_*
  4640. // - nMainLight2Color: TILE_MAIN_LIGHT_COLOR_*
  4641. void SetTileMainLightColor(location lTileLocation, int nMainLight1Color, int nMainLight2Color);
  4642.  
  4643. // Set the source light color on the tile at lTileLocation.
  4644. // - lTileLocation: the vector part of this is the tile grid (x,y) coordinate of
  4645. //   the tile.
  4646. // - nSourceLight1Color: TILE_SOURCE_LIGHT_COLOR_*
  4647. // - nSourceLight2Color: TILE_SOURCE_LIGHT_COLOR_*
  4648. void SetTileSourceLightColor(location lTileLocation, int nSourceLight1Color, int nSourceLight2Color);
  4649.  
  4650. // All clients in oArea will recompute the static lighting.
  4651. // This can be used to update the lighting after changing any tile lights or if
  4652. // placeables with lights have been added/deleted.
  4653. void RecomputeStaticLighting(object oArea);
  4654.  
  4655. // Get the color (TILE_MAIN_LIGHT_COLOR_*) for the main light 1 of the tile at
  4656. // lTile.
  4657. // - lTile: the vector part of this is the tile grid (x,y) coordinate of the tile.
  4658. int GetTileMainLight1Color(location lTile);
  4659.  
  4660. // Get the color (TILE_MAIN_LIGHT_COLOR_*) for the main light 2 of the tile at
  4661. // lTile.
  4662. // - lTile: the vector part of this is the tile grid (x,y) coordinate of the
  4663. //   tile.
  4664. int GetTileMainLight2Color(location lTile);
  4665.  
  4666. // Get the color (TILE_SOURCE_LIGHT_COLOR_*) for the source light 1 of the tile
  4667. // at lTile.
  4668. // - lTile: the vector part of this is the tile grid (x,y) coordinate of the
  4669. //   tile.
  4670. int GetTileSourceLight1Color(location lTile);
  4671.  
  4672. // Get the color (TILE_SOURCE_LIGHT_COLOR_*) for the source light 2 of the tile
  4673. // at lTile.
  4674. // - lTile: the vector part of this is the tile grid (x,y) coordinate of the
  4675. //   tile.
  4676. int GetTileSourceLight2Color(location lTile);
  4677.  
  4678. // Make the corresponding panel button on the player's client start or stop
  4679. // flashing.
  4680. // - oPlayer
  4681. // - nButton: PANEL_BUTTON_*
  4682. // - nEnableFlash: if this is TRUE nButton will start flashing.  It if is FALSE,
  4683. //   nButton will stop flashing.
  4684. void SetPanelButtonFlash(object oPlayer, int nButton, int nEnableFlash);
  4685.  
  4686. // Get the current action (ACTION_*) that oObject is executing.
  4687. int GetCurrentAction(object oObject=OBJECT_SELF);
  4688.  
  4689. // Set how nStandardFaction feels about oCreature.
  4690. // - nStandardFaction: STANDARD_FACTION_*
  4691. // - nNewReputation: 0-100 (inclusive)
  4692. // - oCreature
  4693. void SetStandardFactionReputation(int nStandardFaction, int nNewReputation, object oCreature=OBJECT_SELF);
  4694.  
  4695. // Find out how nStandardFaction feels about oCreature.
  4696. // - nStandardFaction: STANDARD_FACTION_*
  4697. // - oCreature
  4698. int GetStandardFactionReputation(int nStandardFaction, object oCreature=OBJECT_SELF);
  4699.  
  4700. // Display floaty text above the specified creature.
  4701. // The text will also appear in the chat buffer of each player that receives the
  4702. // floaty text.
  4703. // - nStrRefToDisplay: String ref (therefore text is translated)
  4704. // - oCreatureToFloatAbove
  4705. // - bBroadcastToFaction: If this is TRUE then only creatures in the same faction
  4706. //   as oCreatureToFloatAbove
  4707. //   will see the floaty text, and only if they are within range (30 metres).
  4708. void FloatingTextStrRefOnCreature(int nStrRefToDisplay, object oCreatureToFloatAbove, int bBroadcastToFaction=TRUE);
  4709.  
  4710. // Display floaty text above the specified creature.
  4711. // The text will also appear in the chat buffer of each player that receives the
  4712. // floaty text.
  4713. // - sStringToDisplay: String
  4714. // - oCreatureToFloatAbove
  4715. // - bBroadcastToFaction: If this is TRUE then only creatures in the same faction
  4716. //   as oCreatureToFloatAbove
  4717. //   will see the floaty text, and only if they are within range (30 metres).
  4718. void FloatingTextStringOnCreature(string sStringToDisplay, object oCreatureToFloatAbove, int bBroadcastToFaction=TRUE);
  4719.  
  4720. // - oTrapObject: a placeable, door or trigger
  4721. // * Returns TRUE if oTrapObject is disarmable.
  4722. int GetTrapDisarmable(object oTrapObject);
  4723.  
  4724. // - oTrapObject: a placeable, door or trigger
  4725. // * Returns TRUE if oTrapObject is detectable.
  4726. int GetTrapDetectable(object oTrapObject);
  4727.  
  4728. // - oTrapObject: a placeable, door or trigger
  4729. // - oCreature
  4730. // * Returns TRUE if oCreature has detected oTrapObject
  4731. int GetTrapDetectedBy(object oTrapObject, object oCreature);
  4732.  
  4733. // - oTrapObject: a placeable, door or trigger
  4734. // * Returns TRUE if oTrapObject has been flagged as visible to all creatures.
  4735. int GetTrapFlagged(object oTrapObject);
  4736.  
  4737. // Get the trap base type (TRAP_BASE_TYPE_*) of oTrapObject.
  4738. // - oTrapObject: a placeable, door or trigger
  4739. int GetTrapBaseType(object oTrapObject);
  4740.  
  4741. // - oTrapObject: a placeable, door or trigger
  4742. // * Returns TRUE if oTrapObject is one-shot (i.e. it does not reset itself
  4743. //   after firing.
  4744. int GetTrapOneShot(object oTrapObject);
  4745.  
  4746. // Get the creator of oTrapObject, the creature that set the trap.
  4747. // - oTrapObject: a placeable, door or trigger
  4748. // * Returns OBJECT_INVALID if oTrapObject was created in the toolset.
  4749. object GetTrapCreator(object oTrapObject);
  4750.  
  4751. // Get the tag of the key that will disarm oTrapObject.
  4752. // - oTrapObject: a placeable, door or trigger
  4753. string GetTrapKeyTag(object oTrapObject);
  4754.  
  4755. // Get the DC for disarming oTrapObject.
  4756. // - oTrapObject: a placeable, door or trigger
  4757. int GetTrapDisarmDC(object oTrapObject);
  4758.  
  4759. // Get the DC for detecting oTrapObject.
  4760. // - oTrapObject: a placeable, door or trigger
  4761. int GetTrapDetectDC(object oTrapObject);
  4762.  
  4763. // * Returns TRUE if a specific key is required to open the lock on oObject.
  4764. int GetLockKeyRequired(object oObject);
  4765.  
  4766. // Get the tag of the key that will open the lock on oObject.
  4767. string GetLockKeyTag(object oObject);
  4768.  
  4769. // * Returns TRUE if the lock on oObject is lockable.
  4770. int GetLockLockable(object oObject);
  4771.  
  4772. // Get the DC for unlocking oObject.
  4773. int GetLockUnlockDC(object oObject);
  4774.  
  4775. // Get the DC for locking oObject.
  4776. int GetLockLockDC(object oObject);
  4777.  
  4778. // Get the last PC that levelled up.
  4779. object GetPCLevellingUp();
  4780.  
  4781. // - nFeat: FEAT_*
  4782. // - oObject
  4783. // * Returns TRUE if oObject has effects on it originating from nFeat.
  4784. int GetHasFeatEffect(int nFeat, object oObject=OBJECT_SELF);
  4785.  
  4786. // Set the status of the illumination for oPlaceable.
  4787. // - oPlaceable
  4788. // - bIlluminate: if this is TRUE, oPlaceable's illumination will be turned on.
  4789. //   If this is FALSE, oPlaceable's illumination will be turned off.
  4790. // Note: You must call RecomputeStaticLighting() after calling this function in
  4791. // order for the changes to occur visually for the players.
  4792. // SetPlaceableIllumination() buffers the illumination changes, which are then
  4793. // sent out to the players once RecomputeStaticLighting() is called.  As such,
  4794. // it is best to call SetPlaceableIllumination() for all the placeables you wish
  4795. // to set the illumination on, and then call RecomputeStaticLighting() once after
  4796. // all the placeable illumination has been set.
  4797. // * If oPlaceable is not a placeable object, or oPlaceable is a placeable that
  4798. //   doesn't have a light, nothing will happen.
  4799. void SetPlaceableIllumination(object oPlaceable=OBJECT_SELF, int bIlluminate=TRUE);
  4800.  
  4801. // * Returns TRUE if the illumination for oPlaceable is on
  4802. int GetPlaceableIllumination(object oPlaceable=OBJECT_SELF);
  4803.  
  4804. // - oPlaceable
  4805. // - nPlaceableAction: PLACEABLE_ACTION_*
  4806. // * Returns TRUE if nPlacebleAction is valid for oPlaceable.
  4807. int GetIsPlaceableObjectActionPossible(object oPlaceable, int nPlaceableAction);
  4808.  
  4809. // The caller performs nPlaceableAction on oPlaceable.
  4810. // - oPlaceable
  4811. // - nPlaceableAction: PLACEABLE_ACTION_*
  4812. void DoPlaceableObjectAction(object oPlaceable, int nPlaceableAction);
  4813.  
  4814. // Get the first PC in the player list.
  4815. // This resets the position in the player list for GetNextPC().
  4816. object GetFirstPC();
  4817.  
  4818. // Get the next PC in the player list.
  4819. // This picks up where the last GetFirstPC() or GetNextPC() left off.
  4820. object GetNextPC();
  4821.  
  4822. // Set oDetector to have detected oTrap.
  4823. int SetTrapDetectedBy(object oTrap, object oDetector);
  4824.  
  4825. // Note: Only placeables, doors and triggers can be trapped.
  4826. // * Returns TRUE if oObject is trapped.
  4827. int GetIsTrapped(object oObject);
  4828.  
  4829. // Create a Turn Resistance Decrease effect.
  4830. // - nHitDice: a positive number representing the number of hit dice for the
  4831. ///  decrease
  4832. effect EffectTurnResistanceDecrease(int nHitDice);
  4833.  
  4834. // Create a Turn Resistance Increase effect.
  4835. // - nHitDice: a positive number representing the number of hit dice for the
  4836. //   increase
  4837. effect EffectTurnResistanceIncrease(int nHitDice);
  4838.  
  4839. // Spawn in the Death GUI.
  4840. // The default (as defined by BioWare) can be spawned in by PopUpGUIPanel, but
  4841. // if you want to turn off the "Respawn" or "Wait for Help" buttons, this is the
  4842. // function to use.
  4843. // - oPC
  4844. // - bRespawnButtonEnabled: if this is TRUE, the "Respawn" button will be enabled
  4845. //   on the Death GUI.
  4846. // - bWaitForHelpButtonEnabled: if this is TRUE, the "Wait For Help" button will
  4847. //   be enabled on the Death GUI.
  4848. // - nHelpStringReference
  4849. // - sHelpString
  4850. void PopUpDeathGUIPanel(object oPC, int bRespawnButtonEnabled=TRUE, int bWaitForHelpButtonEnabled=TRUE, int nHelpStringReference=0, string sHelpString="");
  4851.  
  4852. // Disable oTrap.
  4853. // - oTrap: a placeable, door or trigger.
  4854. void SetTrapDisabled(object oTrap);
  4855.  
  4856. // Get the last object that was sent as a GetLastAttacker(), GetLastDamager(),
  4857. // GetLastSpellCaster() (for a hostile spell), or GetLastDisturbed() (when a
  4858. // creature is pickpocketed).
  4859. // Note: Return values may only ever be:
  4860. // 1) A Creature
  4861. // 2) Plot Characters will never have this value set
  4862. // 3) Area of Effect Objects will return the AOE creator if they are registered
  4863. //    as this value, otherwise they will return INVALID_OBJECT_ID
  4864. // 4) Traps will not return the creature that set the trap.
  4865. // 5) This value will never be overwritten by another non-creature object.
  4866. // 6) This value will never be a dead/destroyed creature
  4867. object GetLastHostileActor(object oVictim=OBJECT_SELF);
  4868.  
  4869. // Force all the characters of the players who are currently in the game to
  4870. // be exported to their respective directories i.e. LocalVault/ServerVault/ etc.
  4871. void ExportAllCharacters();
  4872.  
  4873. // Get the Day Track for oArea.
  4874. int MusicBackgroundGetDayTrack(object oArea);
  4875.  
  4876. // Get the Night Track for oArea.
  4877. int MusicBackgroundGetNightTrack(object oArea);
  4878.  
  4879. // Write sLogEntry as a timestamped entry into the log file
  4880. void WriteTimestampedLogEntry(string sLogEntry);
  4881.  
  4882. // Get the module's name in the language of the server that's running it.
  4883. // * If there is no entry for the language of the server, it will return an
  4884. //   empty string
  4885. string GetModuleName();
  4886.  
  4887. // Get the leader of the faction of which oMemberOfFaction is a member.
  4888. // * Returns OBJECT_INVALID if oMemberOfFaction is not a valid creature.
  4889. object GetFactionLeader(object oMemberOfFaction);
  4890.  
  4891. // Sends szMessage to all the Dungeon Masters currently on the server.
  4892. void SendMessageToAllDMs(string szMessage);
  4893.  
  4894. // End the currently running game, play sEndMovie then return all players to the
  4895. // game's main menu.
  4896. void EndGame(string sEndMovie);
  4897.  
  4898. // Remove oPlayer from the server.
  4899. void BootPC(object oPlayer);
  4900.  
  4901. // Counterspell oCounterSpellTarget.
  4902. void ActionCounterSpell(object oCounterSpellTarget);
  4903.  
  4904. // Set the ambient day volume for oArea to nVolume.
  4905. // - oArea
  4906. // - nVolume: 0 - 100
  4907. void AmbientSoundSetDayVolume(object oArea, int nVolume);
  4908.  
  4909. // Set the ambient night volume for oArea to nVolume.
  4910. // - oArea
  4911. // - nVolume: 0 - 100
  4912. void AmbientSoundSetNightVolume(object oArea, int nVolume);
  4913.  
  4914. // Get the Battle Track for oArea.
  4915. int MusicBackgroundGetBattleTrack(object oArea);
  4916.  
  4917. // Determine whether oObject has an inventory.
  4918. // * Returns TRUE for creatures and stores, and checks to see if an item or placeable object is a container.
  4919. // * Returns FALSE for all other object types.
  4920. int GetHasInventory(object oObject);
  4921.  
  4922. // Get the duration (in seconds) of the sound attached to nStrRef
  4923. // * Returns 0.0f if no duration is stored or if no sound is attached
  4924. float GetStrRefSoundDuration(int nStrRef);
  4925.  
  4926. // Add oPC to oPartyLeader's party.  This will only work on two PCs.
  4927. // - oPC: player to add to a party
  4928. // - oPartyLeader: player already in the party
  4929. void AddToParty(object oPC, object oPartyLeader);
  4930.  
  4931. // Remove oPC from their current party. This will only work on a PC.
  4932. // - oPC: removes this player from whatever party they're currently in.
  4933. void RemoveFromParty(object oPC);
  4934.  
  4935. // Returns the stealth mode of the specified creature.
  4936. // - oCreature
  4937. // * Returns a constant STEALTH_MODE_*
  4938. int GetStealthMode(object oCreature);
  4939.  
  4940. // Returns the detection mode of the specified creature.
  4941. // - oCreature
  4942. // * Returns a constant DETECT_MODE_*
  4943. int GetDetectMode(object oCreature);
  4944.  
  4945. // Reserved for future use.
  4946. int Reserved1(object o);
  4947.  
  4948. // Reserved for future use.
  4949. int Reserved2(object o);
  4950.  
  4951. // Reserved for future use.
  4952. void Reserved3();
  4953.