//////////////////////////////////////////////////////////////////////////////// // // Olander's AI // oai_inc_constant // by Don Anderson // dandersonru@msn.com // // Main AI Script // Original script by Fallen // //////////////////////////////////////////////////////////////////////////////// object oArea = GetArea(OBJECT_SELF); int MyHD = GetHitDice(OBJECT_SELF); //10% Speed decrease for Small Creatures and Dwarves const int SML_CREATURE_MOVEPEN = 10; //From Deva Bryson Winblood - RTS const int CAI_CHARM_NONE = 0; const int CAI_CHARM_PERSON = 1; const int CAI_CHARM_MONSTER = 2; const int CAI_CHARM_ANIMAL = 3; //Combat Classifications string OAI_FACTION = "OAI_FACTION"; string NEUTRAL = "NEUTRAL"; string HOSTILE = "HOSTILE"; string ALLY = "ALLY"; string AXIS = "AXIS"; string INDEPENDENT = "INDEPENDENT"; //Military Personnel Item Tag string RANKINSIGNIA = "RankInsignia"; //Guard Stuff (Originally By David Corrales) string WARNING1 = "Please put away your weapon."; string WARNING2 = "I said put away your weapon!"; string WARNING3 = "I will not tell you again! Put your WEAPON away!"; string ATTACK_MSG = "I see you DO NOT wish to comply!!! Attack!!"; string COMPLY_REPLY = "Good. Thank You."; float WARN_DISTANCE = 20.0;//Distance in which to spot player float ANGER_DUR = 120.0; //Length of time (sec) that will remain angry at the pc const int OAI_I_CAN_RAISE_DEAD = 100; const int OAI_I_CAN_CAST_MONSTER_ABILITIES = 101; const int OAI_I_CAN_POLYMORPH = 102; const int OAI_I_CAN_SUMMON = 103; const int OAI_I_HAVE_HEALING_POTIONS = 104; const int OAI_I_HAVE_BUFFING_POTIONS = 105; const int OAI_I_HAVE_HEALING_KITS = 106; const int OAI_I_HAVE_TRAP_KITS = 107; const int OAI_I_CAN_FIGHT_MELEE = 108; const int OAI_I_CAN_FIGHT_RANGED = 109; const int OAI_I_CAN_CAST_SPELLS = 110; const int OAI_I_CAN_RELIGIOUS_MELEE = 111; const int OAI_I_CAN_SMITE_MELEE = 112; const int OAI_I_CAN_SNEAK_MELEE = 113; const int OAI_I_CAN_DEX_MELEE = 114; const int OAI_I_CAN_WM_MELEE = 115; const int OAI_I_CAN_PM_MELEE = 116; const int OAI_I_CAN_RDD_MELEE = 117; const int OAI_I_CAN_SHIFTER_MELEE = 118; const int OAI_I_CAN_MONK_MELEE = 119; const int OAI_TRIGGER_HAS_BEEN_CAST = 200; const int OAI_FAST_BUFF_COMPLETE = 300; const int OAI_FAST_BUFF_ADVANCED = 301; const int OAI_FAST_BUFF_RANDOM = 302; const int OAI_FAST_BUFF_SUMMON = 303; const int OAI_CAST_AURAS_NOW = 304; const int OAI_ROLE_GROUP_LEADER = 305; const int OAI_ROLE_HEALER = 306; const int OAI_ROLE_BUFFER = 307; const int OAI_ROLE_DRAGON = 308; const int OAI_ROLE_STATUS_CASTER = 309; const int OAI_ROLE_ATTACK_CASTER = 310; const int OAI_ROLE_AOE_SPECIALIST = 311; const int OAI_BLINK_SELF = 312; const int OAI_BLINK_OTHERS = 313; const int OAI_RETURN_TO_SPAWNPOINT = 314; const int OAI_ROLE_BEHOLDER = 315; const int OAI_ROLE_GELATINOUSCUBE = 316; const int OAI_ROLE_TROLL = 317; const int OAI_ROLE_SPIDER = 318; const int OAI_ROLE_MINDFLAYER = 319; const int OAI_ROLE_SPEEDY = 320; const int OAI_ROLE_NUMBEROFATTACKS = 321; const int OAI_ROLE_GHOST = 322; const int OAI_ROLE_GUARD = 323; const int OAI_ROLE_STRIPPER = 324; const int OAI_COMBAT_FLAG_RANGED = 400; const int OAI_COMBAT_FLAG_DEFENSIVE = 401; const int OAI_COMBAT_FLAG_COWARDLY = 402; const int OAI_COMBAT_FLAG_AMBUSHER = 403; /******************************************************************************/ //:: ORIGINALLY FROM LEGACY AI V1.19 BY CENOTAPH //Missing visual effects. const int VFX_COM_GIB = 119; const int VFX_IMP_LEAF = 132; const int VFX_IMP_CLOUD = 133; const int VFX_DUR_LIGHT_GREEN_5 = 177; const int VFX_DUR_LIGHT_GREEN_10 = 178; const int VFX_DUR_LIGHT_GREEN_15 = 179; const int VFX_DUR_LIGHT_GREEN_20 = 180; const int VFX_DUR_GHOSTLY_PULSE_QUICK = 295; //Missing spell constants. const int SPELL_PROTECTION_FROM_ALIGNMENT = 321; const int SPELL_MAGIC_CIRCLE_AGAINST_ALIGNMENT = 322; const int SPELL_AURA_VERSUS_ALIGNMENT = 323; const int SPELL_GREATER_SHADOW_CONJURATION_GHOSTLY_VISAGE = 351; const int SPELL_ULTRAVISION = 365; const int SPELL_SUMMON_CELESTIAL = 379; const int SPELLABILITY_BARD_SONGS = 411; //const int SPELL_OWLS_INSIGHT = 438; const int SPELLABILITY_HARPER_SLEEP = 480; const int SPELLABILITY_HARPER_CATS_GRACE = 481; const int SPELLABILITY_HARPER_EAGLE_SPLENDOR = 482; const int SPELLABILITY_HARPER_INVISIBILITY = 483; const int SPELLABILITY_SUMMON_SHADOW_X2 = 564; const int SPELL_EVIL_BLIGHT = 566; const int SPELLABILITY_CURSE_SONG = 644; const int SPELLABILITY_WYRMLING_BREATH_COLD = 663; const int SPELLABILITY_WYRMLING_BREATH_ACID = 664; const int SPELLABILITY_WYRMLING_BREATH_FIRE = 665; const int SPELLABILITY_WYRMLING_BREATH_GAS = 666; const int SPELLABILITY_WYRMLING_BREATH_LIGHTNING = 667; const int SPELLABILITY_HARPY_CAPTIVATING_SONG = 686; const int SPELLABILITY_SHIFTER_MEDU_BASILISK_PETRI_GAZE = 687; const int SPELLABILITY_SHIFTER_DROW_DRIDER_DARKNESS = 688; const int SPELLABILITY_RED_DRAGON_DISCIPLE_BREATH = 690; const int SPELLABILITY_GREATER_WILDSHAPE_MINDFLAYER = 691; const int SPELLABILITY_SHIFTER_MINDFLAYER_MINDBLAST = 693; const int SPELLABILITY_GREATER_WILDSHAPE_DIRETIGER = 694; const int SPELLABILITY_SUMMON_BAATEZU = 701; const int SPELLABILITY_EYEBALL_COLD_RAY = 710; const int SPELLABILITY_EYEBALL_WOUND_RAY = 711; const int SPELLABILITY_EYEBALL_FIRE_RAY = 712; const int SPELLABILITY_MINDFLAYER_MINDBLAST_10 = 713; const int SPELLABILITY_BEHOLDER_ANTIMAGIC_CONE = 727; const int SPELLABILITY_BEHOLDER_SPECIAL_SPELL_AI = 736; const int SPELLABILITY_PSIONIC_INERTIAL_BARRIER = 741; const int SPELL_HELL_INFERNO = 762; const int SPELLABILITY_PSIONIC_MASS_CONCUSSION = 763; const int SPELLABILITY_SHADOW_TOUCH = 769; const int SPELLABILTIY_SLAAD_CHAOS_SPITTLE = 770; const int SPELLABILITY_HURL_ROCK = 775; const int SPELLABILITY_BEHOLDER_DEATH_RAY = 776; const int SPELLABILITY_BEHOLDER_KNOCKDOWN_RAY = 777; //Only beholder ray that can be blocked by an immunity. const int SPELLABILITY_BEHOLDER_PETRIFY_RAY = 778; const int SPELLABILITY_BEHOLDER_CHARM_RAY = 779; const int SPELLABILITY_BEHOLDER_SLOW_RAY = 780; const int SPELLABILITY_BEHOLDER_WOUND_RAY = 783; const int SPELLABILITY_BEHOLDER_FEAR_RAY = 784; const int SPELLABILITY_SHIFTER_DRAGON_BREATH_LIGHTNING = 796; const int SPELLABILITY_SHIFTER_DRAGON_BREATH_FIRE = 797; const int SPELLABILITY_SHIFTER_DRAGON_BREATH_GAS = 798; //Appears are "Invisibility" under "Monster Abilities" in the Toolset. const int SPELLABILITY_VAMPIRE_INVISIBILITY = 799; const int SPELLABILITY_VAMPIRE_DOMINATION_GAZE = 800; const int SPELLABILITY_AZER_FIRE_STREAM = 801; const int SPELLABILITY_SHIFTER_SPECTRE_ATTACK = 802; //Missing feat constants. const int FEAT_BLACKGUARD_CREATE_UNDEAD = 474; const int FEAT_BLACKGUARD_FIENDISH_SERVANT = 475; const int FEAT_EPIC_PLANAR_TURNING = 854; //:: ORIGINALLY FROM LEGACY AI V1.19 BY CENOTAPH /******************************************************************************/ /******************************************************************************/ //:: Floating Role Play Combat Text Messages //Glancing is Generic for All const string HEAD_GLANCE1 = "Blow glances off side of head."; const string HEAD_GLANCE2 = "Glancing blow to the top of head."; const string NECK_GLANCE1 = "Blow glances off shoulder barely touching the neck."; const string NECK_GLANCE2 = "Glancing blow to the Neck."; const string CHEST_GLANCE1 = "Blow glances off arm barely touching the chest."; const string CHEST_GLANCE2 = "Glancing blow to the chest."; const string WAIST_GLANCE1 = "Blow glances off hip."; const string WAIST_GLANCE2 = "Blow slighly hits waistline."; const string ARM_GLANCE1 = "Blow glances off arm."; const string ARM_GLANCE2 = "Blow ripples armor."; const string LEG_GLANCE1 = "Blow glances off thigh."; const string LEG_GLANCE2 = "Blow brushes off leg."; //Bludgeoning const string BHEAD_HEAVY1 = "Blast to the Head shatters bone into brain. SPLAT."; const string BHEAD_HEAVY2 = "Blow to jaw drives bone into the brain! Yikes."; const string BHEAD_HEAVY3 = "Head almost gets knocked off the neck! That'll make ya sick."; const string BNECK_HEAVY1 = "Throat crushed! Out of air."; const string BNECK_HEAVY2 = "Blast to the back of neck! Goner."; const string BNECK_HEAVY3 = "Head almost gets knocked off the neck! Ooo...not good."; const string BCHEST_HEAVY1 = "Blast to the chest sends rib cage through lungs! Vicious."; const string BCHEST_HEAVY2 = "Blow to side crushes chest cavity! Hmm...looks finished."; const string BCHEST_HEAVY3 = "Blast to Spine! Not gonna live."; const string BWAIST_HEAVY1 = "Hip crushed! Massive internal bleeding."; const string BWAIST_HEAVY2 = "Blast to groin! Uhh....not fair?"; const string BWAIST_HEAVY3 = "Lower Spine crushed! Nasty."; const string BARM_HEAVY1 = "Bicep crushed! Looks like Hamburger."; const string BARM_HEAVY2 = "Forearm crushed! Looks like that hurts."; const string BARM_HEAVY3 = "Hand crushed! Won't be using that again."; const string BLEG_HEAVY1 = "Bone shattered in Thigh! Gruesome."; const string BLEG_HEAVY2 = "Knee shattered! Bet that hurts."; const string BLEG_HEAVY3 = "Foot crushed! Yeewww."; //Piercing const string PHEAD_HEAVY1 = "Blade goes straight through head! Vicious."; const string PHEAD_HEAVY2 = "Blade shoots through eye! Interesting."; const string PHEAD_HEAVY3 = "No way to describe that head shot! Gruesome."; const string PNECK_HEAVY1 = "Neck severed! Blood everywhere."; const string PNECK_HEAVY2 = "Stab through side of neck! Goner."; const string PNECK_HEAVY3 = "Blade pierces Brain. Dead...period."; const string PCHEST_HEAVY1 = "Blade sinks deep into lungs! Not gonna make it."; const string PCHEST_HEAVY2 = "Heart strike! Dead."; const string PCHEST_HEAVY3 = "Misses Lungs but hits Spleen! Not gonna live."; const string PWAIST_HEAVY1 = "Intestines severed! Massive internal bleeding."; const string PWAIST_HEAVY2 = "Groin! Uh...what is that?"; const string PWAIST_HEAVY3 = "Lower Spine severed! A real heap."; const string PARM_HEAVY1 = "Bicep pierced through! Will not use that soon."; const string PARM_HEAVY2 = "Forearm pierced through! No good."; const string PARM_HEAVY3 = "Hand pierced through! Ugly."; const string PLEG_HEAVY1 = "Thigh pierced...muscle severed! Gruesome."; const string PLEG_HEAVY2 = "Tendons severed! Not good."; const string PLEG_HEAVY3 = "Foot punctured! A Real gusher."; //Slashing const string SHEAD_HEAVY1 = "Blade sinks deeply into brain. Death will soon follow."; const string SHEAD_HEAVY2 = "Top of head lopped off. Now that is nasty."; const string SHEAD_HEAVY3 = "Canyon opened across face. A real eye full."; const string SNECK_HEAVY1 = "Throat opened wide! Gusher."; const string SNECK_HEAVY2 = "Head separated from neck! Nice."; const string SNECK_HEAVY3 = "Half of neck sliced clean! Hmm...now what."; const string SCHEST_HEAVY1 = "Gorge opened across chest! Tough."; const string SCHEST_HEAVY2 = "Blade rips through liver! That hurts."; const string SCHEST_HEAVY3 = "Back muscles severed! Down and out."; const string SWAIST_HEAVY1 = "Disemboweled! Guts all over."; const string SWAIST_HEAVY2 = "Blade sinks deeply into groin! Ugggh."; const string SWAIST_HEAVY3 = "Blade sinks deeply into waist! Like a Seasoned Ham."; const string SARM_HEAVY1 = "Bicep sliced badly! Not good."; const string SARM_HEAVY2 = "Forearm sliced through! Oooo....Sorry."; const string SARM_HEAVY3 = "Hand sliced off! Hey Stumpy."; const string SLEG_HEAVY1 = "Thigh opened to the bone! Lots of Blood."; const string SLEG_HEAVY2 = "Tendons severed. Not gonna walk soon."; const string SLEG_HEAVY3 = "Lower leg severed. Uh....gonna die soon."; //void main (){}