void PlayerbotDruidAI::LoadSpells() { PlayerbotAI *ai = GetAI(); if (!ai) return; #pragma region SpellId Fill // Balance Spells MOONFIRE = ai->getSpellIdExact("Moonfire"); //attacks WRATH = ai->getSpellIdExact("Wrath"); STARFIRE = ai->getSpellIdExact("Starfire"); STARFALL = ai->getSpellIdExact("Starfall"); FORCE_OF_NATURE = ai->getSpellIdExact("Force of Nature"); TYPHOON = ai->getSpellIdExact("Typhoon"); HURRICANE = ai->getSpellIdExact("Hurricane"); INSECT_SWARM = ai->getSpellIdExact("Insect Swarm"); CYCLONE = ai->getSpellIdExact("Cyclone"); ROOTS = ai->getSpellIdExact("Entangling Roots"); NATURES_GRASP = ai->getSpellIdExact("Nature's Grasp"); HIBERNATE = ai->getSpellIdExact("Hibernate"); FAERIE_FIRE = ai->getSpellIdExact("Faerie Fire"); // Bear Form Spells MAUL = ai->getSpellIdExact("Maul"); BASH = ai->getSpellIdExact("Bash"); LACERATE = ai->getSpellIdExact("Lacerate"); MANGLE_BEAR = ai->getSpellIdExact("Mangle (Bear)"); SWIPE_BEAR = ai->getSpellIdExact("Swipe (Bear)"); DEMORALIZING_ROAR = ai->getSpellIdExact("Demoralizing Roar"); GROWL = ai->getSpellIdExact("Growl"); CHALLENGING_ROAR = ai->getSpellIdExact("Challenging Roar"); ENRAGE = ai->getSpellIdExact("Enrage"); FERAL_CHARGE_BEAR = ai->getSpellIdExact("Feral Charge - Bear"); FRENZIED_REGENERATION = ai->getSpellIdExact("Frenzied Regeneration"); //Cat Attack type's RAKE = ai->getSpellIdExact("Rake"); //40 energy CLAW = ai->getSpellIdExact("Claw"); //45 MANGLE_CAT = ai->getSpellIdExact("Mangle (Cat)"); //45 SHRED = ai->getSpellIdExact("Shred"); RIP = ai->getSpellIdExact("Rip"); //30 FEROCIOUS_BITE = ai->getSpellIdExact("Ferocious Bite"); //35 SAVAGE_ROAR = ai->getSpellIdExact("Savage Roar"); MAIM = ai->getSpellIdExact("Maim"); //35 FERAL_CHARGE_CAT = ai->getSpellIdExact("Feral Charge - Cat"); COWER = ai->getSpellIdExact("Cower"); //20 TIGERS_FURY = ai->getSpellIdExact("Tiger's Fury"); // Feral General BERSERK = ai->getSpellIdExact("Berserk"); FAERIE_FIRE_FERAL = ai->getSpellIdExact("Faerie Fire (Feral)"); //debuffs //buffs MARK_OF_THE_WILD = ai->getSpellIdExact("Mark of the Wild"); //buffs GIFT_OF_THE_WILD = ai->getSpellIdExact("Gift of the Wild"); THORNS = ai->getSpellIdExact("Thorns"); SURVIVAL_INSTINCTS = ai->getSpellIdExact("Survival Instincts"); // Restoration Spells LIFEBLOOM = ai->getSpellIdExact("Lifebloom"); REJUVENATION = ai->getSpellIdExact("Rejuvenation"); //heals REGROWTH = ai->getSpellIdExact("Regrowth"); NOURISH = ai->getSpellIdExact("Nourish"); SWIFTMEND = ai->getSpellIdExact("Swiftmend"); HEALING_TOUCH = ai->getSpellIdExact("Healing Touch"); INNERVATE = ai->getSpellIdExact("Innervate"); WILD_GROWTH = ai->getSpellIdExact("Wild Growth"); TRANQUILITY = ai->getSpellIdExact("Tranquility"); NATURES_SWIFTNESS = ai->getSpellIdExact("Nature's Swiftness"); CURE_POISON = ai->getSpellIdExact("Abolish Poison"); if (!CURE_POISON) CURE_POISON = ai->getSpellIdExact("Cure Poison"); REBIRTH = ai->getSpellIdExact("Rebirth"); REVIVE = ai->getSpellIdExact("Revive"); BARKSKIN = ai->getSpellIdExact("Barkskin"); //Druid Forms BEAR_FORM = ai->getSpellIdExact("Dire Bear Form"); if (!BEAR_FORM) BEAR_FORM = ai->getSpellIdExact("Bear Form"); CAT_FORM = ai->getSpellIdExact("Cat Form"); MOONKIN_FORM = ai->getSpellIdExact("Moonkin Form"); TREE_OF_LIFE_FORM = ai->getSpellIdExact("Tree of Life"); //33891;//learning spell has higher id.. AQUATIC_FORM = ai->getSpellIdExact("Aquatic Form"); TRAVEL_FORM = ai->getSpellIdExact("Travel Form"); FLIGHT_FORM = ai->getSpellIdExact("Swift Flight Form"); if (!FLIGHT_FORM) FLIGHT_FORM = ai->getSpellIdExact("Flight Form"); TALENT_BALANCE = MOONKIN_FORM; TALENT_RESTO = SWIFTMEND; TALENT_FERAL = MANGLE_CAT; uint8 talentCounter = 0; if (TALENT_BALANCE) talentCounter++; if (TALENT_FERAL) talentCounter++; if (TALENT_RESTO) talentCounter++; if (talentCounter > 1) { TALENT_BALANCE = 0; TALENT_RESTO = 0; TALENT_FERAL = 0; } //Unreliable Talent detection. #pragma endregion }
void PlayerbotShamanAI::LoadSpells() { PlayerbotAI *ai = GetAI(); if (!ai) return; #pragma region SpellId Fill //totems HEALING_STREAM_TOTEM = ai->getSpellIdExact("Healing Stream Totem"); MANA_SPRING_TOTEM = ai->getSpellIdExact("Mana Spring Totem"); MANA_TIDE_TOTEM = ai->getSpellIdExact("Mana Tide Totem"); CLEANSING_TOTEM = ai->getSpellIdExact("Cleansing Totem"); FIRE_RESISTANCE_TOTEM = ai->getSpellIdExact("Fire Resistance Totem"); WINDFURY_TOTEM = ai->getSpellIdExact("Windfury Totem"); WRATH_OF_AIR_TOTEM = ai->getSpellIdExact("Wrath of Air Totem"); GROUNDING_TOTEM = ai->getSpellIdExact("Grounding Totem"); NATURE_RESISTANCE_TOTEM = ai->getSpellIdExact("Nature Resistance Totem"); STRENGTH_OF_EARTH_TOTEM = ai->getSpellIdExact("Strength of Earth Totem"); EARTHBIND_TOTEM = ai->getSpellIdExact("Earthbind Totem"); STONESKIN_TOTEM = ai->getSpellIdExact("Stoneskin Totem"); STONECLAW_TOTEM = ai->getSpellIdExact("Stoneclaw Totem"); TREMOR_TOTEM = ai->getSpellIdExact("Tremor Totem"); EARTH_ELEMENTAL_TOTEM = ai->getSpellIdExact("Earth Elemental Totem"); FLAMETONGUE_TOTEM = ai->getSpellIdExact("Flametongue Totem"); TOTEM_OF_WRATH = ai->getSpellIdExact("Totem of Wrath"); SEARING_TOTEM = ai->getSpellIdExact("Searing Totem"); MAGMA_TOTEM = ai->getSpellIdExact("Magma Totem"); FIRE_ELEMENTAL_TOTEM = ai->getSpellIdExact("Fire Elemental Totem"); FROST_RESISTANCE_TOTEM = ai->getSpellIdExact("Frost Resistance Totem"); TOTEMIC_RECALL = ai->getSpellIdExact("Totemic Recall"); CALL_OF_THE_ELEMENTS = ai->getSpellIdExact("Call of the Elements"); CALL_OF_THE_ANCESTORS = ai->getSpellIdExact("Call of the Ancestors"); CALL_OF_THE_SPIRITS = ai->getSpellIdExact("Call of the Spirits"); //restoration HEAL = ai->getSpellIdExact("Healing Wave"); LESSER_HEAL = ai->getSpellIdExact("Lesser Healing Wave"); CHAIN_HEAL = ai->getSpellIdExact("Chain Heal"); RIPTIDE = ai->getSpellIdExact("Riptide"); ANCESTRAL_SPIRIT = ai->getSpellIdExact("Ancestral Spirit"); CLEANSE_SPIRIT = ai->getSpellIdExact("Cleanse Spirit"); if (CLEANSE_SPIRIT) CLEANSE_SPIRIT = ai->getSpellIdExact("Cure Toxins"); //offensive spells LIGHTNING_BOLT = ai->getSpellIdExact("Lightning Bolt"); CHAIN_LIGHTNING = ai->getSpellIdExact("Chain Lightning"); FIRE_NOVA = ai->getSpellIdExact("Fire Nova"); THUNDERSTORM = ai->getSpellIdExact("Thunderstorm"); LAVA_BURST = ai->getSpellIdExact("Lava Burst"); EARTH_SHOCK = ai->getSpellIdExact("Earth Shock"); WIND_SHEAR = ai->getSpellIdExact("Wind Shear"); FLAME_SHOCK = ai->getSpellIdExact("Flame Shock"); FROST_SHOCK = ai->getSpellIdExact("Frost Shock"); PURGE = ai->getSpellIdExact("Purge"); HEX = ai->getSpellIdExact("Hex"); //buffs LIGHTNING_SHIELD = ai->getSpellIdExact("Lightning Shield"); WATER_SHIELD = ai->getSpellIdExact("Water Shield"); EARTH_SHIELD = ai->getSpellIdExact("Earth Shield"); HEROISM = ai->getSpellIdExact("Heroism"); if (HEROISM) HEROISM = ai->getSpellIdExact("Bloodlust"); ELEMENTAL_MASTERY = ai->getSpellIdExact("Elemental Mastery"); NATURES_SWIFTNESS = ai->getSpellIdExact("Nature's Swiftness"); WINDFURY_WEAPON = ai->getSpellIdExact("Windfury Weapon"); FLAMETONGUE_WEAPON = ai->getSpellIdExact("Flametongue Weapon"); FROSTBRAND_WEAPON = ai->getSpellIdExact("Frostbrand Weapon"); ROCKBITER_WEAPON = ai->getSpellIdExact("Rockbiter Weapon"); EARTHLIVING_WEAPON = ai->getSpellIdExact("Earthliving Weapon"); WATER_BREATHING = ai->getSpellIdExact("Water Breathing"); WATER_WALKING = ai->getSpellIdExact("Water Walking"); //melee LAVA_LASH = ai->getSpellIdExact("Lava Lash"); STORMSTRIKE = ai->getSpellIdExact("Stormstrike"); SHAMANISTIC_RAGE = ai->getSpellIdExact("Shamanistic Rage"); FERAL_SPIRIT = ai->getSpellIdExact("Feral Spirit"); GHOST_WOLF = ai->getSpellIdExact("Ghost Wolf"); EXHAUSTION = 57723; // heroism debuff SATED = 57724; // bloodlust debuff //MAELSTROM_WEAPON = 0; // We want the triggered aura, not the talent spell uint32 mwtrigger = ai->getSpellIdExact("Maelstrom Weapon",true); if (mwtrigger) { SpellEntry const *mwtSpell = GetSpellStore()->LookupEntry(mwtrigger); if (mwtSpell && mwtSpell->EffectTriggerSpell[0] > 0) MAELSTROM_WEAPON = mwtSpell->EffectTriggerSpell[0]; } TALENT_ELEMENTAL = ELEMENTAL_MASTERY; TALENT_ENHANCEMENT = STORMSTRIKE; TALENT_RESTO = EARTH_SHIELD; uint8 talentCounter = 0; if (TALENT_ELEMENTAL) talentCounter++; if (TALENT_ENHANCEMENT) talentCounter++; if (TALENT_RESTO) talentCounter++; //if (talentCounter > 1) { TALENT_ELEMENTAL = 0; TALENT_ENHANCEMENT = 0; TALENT_RESTO = 0; } //Unreliable Talent detection. #pragma endregion }
void PlayerbotRogueAI::LoadSpells() { PlayerbotAI *ai = GetAI(); if (!ai) return; #pragma region SpellId Fill //Damage spells BACKSTAB = ai->getSpellIdExact("Backstab"); SINISTER_STRIKE = ai->getSpellIdExact("Sinister Strike"); MUTILATE = ai->getSpellIdExact("Mutilate"); HEMORRHAGE = ai->getSpellIdExact("Hemorrhage"); GHOSTLY_STRIKE = ai->getSpellIdExact("Ghostly Strike"); RIPOSTE = ai->getSpellIdExact("Riposte"); SHIV = ai->getSpellIdExact("Shiv"); FAN_OF_KNIVES = ai->getSpellIdExact("Fan of Knives"); //Finishing Moves EVISCERATE = ai->getSpellIdExact("Eviscerate"); RUPTURE = ai->getSpellIdExact("Rupture"); KIDNEY_SHOT = ai->getSpellIdExact("Kidney Shot"); ENVENOM = ai->getSpellIdExact("Envenom"); SLICE_AND_DICE = ai->getSpellIdExact("Slice and Dice"); EXPOSE_ARMOR = ai->getSpellIdExact("Expose Armor"); DEADLY_THROW = ai->getSpellIdExact("Deadly Throw"); //Buffs STEALTH = ai->getSpellIdExact("Stealth"); VANISH = ai->getSpellIdExact("Vanish"); EVASION = ai->getSpellIdExact("Evasion"); CLOAK_OF_SHADOWS = ai->getSpellIdExact("Cloak of Shadows"); SPRINT = ai->getSpellIdExact("Sprint"); COLD_BLOOD = ai->getSpellIdExact("Cold Blood"); HUNGER_FOR_BLOOD = ai->getSpellIdExact("Hunger for Blood"); BLADE_FLURRY = ai->getSpellIdExact("Blade Flurry"); ADRENALINE_RUSH = ai->getSpellIdExact("Adrenaline Rush"); KILLING_SPREE = ai->getSpellIdExact("Killing Spree"); SHADOW_DANCE = ai->getSpellIdExact("Shadow Dance"); //Openers CHEAP_SHOT = ai->getSpellIdExact("Cheap Shot"); GARROTE = ai->getSpellIdExact("Garrote"); AMBUSH = ai->getSpellIdExact("Ambush"); //Others GOUGE = ai->getSpellIdExact("Gouge"); BLIND = ai->getSpellIdExact("Blind"); DISMANTLE = ai->getSpellIdExact("Dismantle"); SAP = ai->getSpellIdExact("Sap"); KICK = ai->getSpellIdExact("Kick"); PREPARATION = ai->getSpellIdExact("Preparation"); PREMEDITATION = ai->getSpellIdExact("Premeditation"); SHADOWSTEP = ai->getSpellIdExact("Shadowstep"); FEINT = ai->getSpellIdExact("Feint"); TRICKS_OF_THE_TRADE = ai->getSpellIdExact("Tricks of the Trade"); SHOOT = ai->getSpellIdExact("Shoot"); THROW = ai->getSpellIdExact("Throw"); TALENT_ASSASSINATION = MUTILATE; TALENT_COMBAT = ADRENALINE_RUSH; TALENT_SUBTELTY = PREMEDITATION; //uint8 talentCounter = 0; //if (TALENT_ASSASSINATION) talentCounter++; //if (TALENT_COMBAT) talentCounter++; //if (TALENT_SUBTELTY) talentCounter++; //if (talentCounter > 1) { TALENT_ASSASSINATION = 0; TALENT_COMBAT = 0; TALENT_SUBTELTY = 0; } //Unreliable Talent detection. #pragma endregion }
void PlayerbotMageAI::LoadSpells() { PlayerbotAI *ai = GetAI(); if (!ai) return; #pragma region SpellId Fill //arcane ARCANE_MISSILES = ai->getSpellIdExact("Arcane Missiles"); ARCANE_EXPLOSION = ai->getSpellIdExact("Arcane Explosion"); ARCANE_BLAST = ai->getSpellIdExact("Arcane Blast"); ARCANE_BARRAGE = ai->getSpellIdExact("Arcane Barrage"); //fire FIREBALL = ai->getSpellIdExact("Fireball"); FROSTFIRE_BOLT = ai->getSpellIdExact("Frostfire Bolt"); FIRE_BLAST = ai->getSpellIdExact("Fire Blast"); FLAMESTRIKE = ai->getSpellIdExact("Flamestrike"); BLAST_WAVE = ai->getSpellIdExact("Blastwave"); SCORCH = ai->getSpellIdExact("Scorch"); PYROBLAST = ai->getSpellIdExact("Pyroblast"); LIVING_BOMB = ai->getSpellIdExact("Living Bomb"); //cold FROSTBOLT = ai->getSpellIdExact("Frostbolt"); FROST_NOVA = ai->getSpellIdExact("Frost Nova"); ICE_LANCE = ai->getSpellIdExact("Ice Lance"); BLIZZARD = ai->getSpellIdExact("Blizzard"); CONE_OF_COLD = ai->getSpellIdExact("Cone of Cold"); WATER_ELEMENTAL = ai->getSpellIdExact("Summon Water Elemental"); // buffs FROST_ARMOR = ai->getSpellIdExact("Ice Armor"); if (!FROST_ARMOR) FROST_ARMOR = ai->getSpellIdExact("Frost Armor"); MAGE_ARMOR = ai->getSpellIdExact("Mage Armor"); MOLTEN_ARMOR = ai->getSpellIdExact("Molten Armor"); FIRE_WARD = ai->getSpellIdExact("Fire Ward"); FROST_WARD = ai->getSpellIdExact("Frost Ward"); MANA_SHIELD = ai->getSpellIdExact("Mana Shield"); ICE_BARRIER = ai->getSpellIdExact("Ice Barrier"); POM = ai->getSpellIdExact("Presence of Mind"); FOCUS_MAGIC = ai->getSpellIdExact("Focus Magic"); ARCANE_POWER = ai->getSpellIdExact("Arance Power"); COMBUSTION = ai->getSpellIdExact("Combustion"); ICY_VEINS = ai->getSpellIdExact("Icy Veins"); ARCANE_INTELLECT = ai->getSpellIdExact("Arcane Intellect"); ARCANE_BRILLIANCE = ai->getSpellIdExact("Arcane Brilliance"); DALARAN_INTELLECT = ai->getSpellIdExact("Dalaran Intellect"); DALARAN_BRILLIANCE = ai->getSpellIdExact("Dalaran Brilliance"); DAMPEN_MAGIC = ai->getSpellIdExact("Dampen Magic"); AMPLIFY_MAGIC = ai->getSpellIdExact("Amplify Magic"); //CC POLYMORPH = ai->getSpellIdExact("Polymorph"); DRAGONS_BREATH = ai->getSpellIdExact("Dragon's Breath"); DEEP_FREEZE = ai->getSpellIdExact("Deep Freeze"); //other CONJURE_REFRESHMENT = ai->getSpellIdExact("Conjure Refreshment"); CONJURE_WATER = ai->getSpellIdExact("Conjure Water"); CONJURE_FOOD = ai->getSpellIdExact("Conjure Food"); CONJURE_MANA_GEM = ai->getSpellIdExact("Conjure Mana Gem"); MIRROR_IMAGE = ai->getSpellIdExact("Mirror Image"); BLINK = ai->getSpellIdExact("Blink"); ICE_BLOCK = ai->getSpellIdExact("Ice Block"); INVISIBILITY = ai->getSpellIdExact("Invisibility"); EVOCATION = ai->getSpellIdExact("Evocation"); REMOVE_CURSE = ai->getSpellIdExact("Remove Curse"); COUNTER_SPELL = ai->getSpellIdExact("Counterspell"); SLOW = ai->getSpellIdExact("Slow"); //Special P_BRAIN_FREEZE = 57761; //Brain Freeze proc P_FIRESTARTER = 54741; //Firestarter proc P_HOT_STREAK = 48108; //Hot Sreak proc P_ARCANE_BLAST = 36032; //Arcane blast proc P_MISSILE_BARRAGE = 54490; //Missle Barrage proc P_FINGERS_OF_FROST = 44545; //Fingers of Frost proc IMP_SCORCH = 12873; //IMP SCORCH SHOOT = ai->getSpellIdExact("Shoot"); TALENT_ARCANE = ARCANE_BARRAGE; TALENT_FIRE = COMBUSTION; TALENT_FROST = ICE_BARRIER; uint8 talentCounter = 0; if (TALENT_ARCANE) talentCounter++; if (TALENT_FIRE) talentCounter++; if (TALENT_FROST) talentCounter++; //if (talentCounter > 1) { TALENT_ARCANE = 0; TALENT_FIRE = 0; TALENT_FROST = 0; } //Unreliable Talent detection. #pragma endregion }
void PlayerbotPaladinAI::LoadSpells() { PlayerbotAI *ai = GetAI(); if (!ai) return; #pragma region SpellId Fill //heals FLASH_OF_LIGHT = ai->getSpellIdExact("Flash of Light"); HOLY_LIGHT = ai->getSpellIdExact("Holy Light"); HOLY_SHOCK = ai->getSpellIdExact("Holy Shock"); CLEANSE = ai->getSpellIdExact("Cleanse"); if (!CLEANSE) CLEANSE = ai->getSpellIdExact("Purify"); LOH = ai->getSpellIdExact("Lay on Hands"); SACRED_SHIELD = ai->getSpellIdExact("Sacred Shield"); BEACON_OF_LIGHT = ai->getSpellIdExact("Beacon of Light"); DIVINE_FAVOR = ai->getSpellIdExact("Divine Favor"); REDEMPTION = ai->getSpellIdExact("Redemption"); //Damages JOL = ai->getSpellIdExact("Judgement of Light"); JOW = ai->getSpellIdExact("Judgement of Wisdom"); JOJ = ai->getSpellIdExact("Judgement of Justice"); HAMMER_OF_WRATH = ai->getSpellIdExact("Hammer of Wrath"); EXORCISM = ai->getSpellIdExact("Exorcism"); HOLY_WRATH = ai->getSpellIdExact("Holy Wrath"); CONSECRATION = ai->getSpellIdExact("Consecration"); AVENGERS_SHIELD = ai->getSpellIdExact("Avenger's Shield"); SHIELD_OF_RIGHTEOUSNESS = ai->getSpellIdExact("Shield of Righteousness"); HOTR = ai->getSpellIdExact("Hammer of the Righteous"); CRUSADER_STRIKE = ai->getSpellIdExact("Crusader Strike"); DIVINE_STORM = ai->getSpellIdExact("Divine Storm"); //CC HAMMER_OF_JUSTICE = ai->getSpellIdExact("Hammer of Justice"); REPENTANCE = ai->getSpellIdExact("Repentance"); //Self buffs SOL = ai->getSpellIdExact("Seal of Light"); SOW = ai->getSpellIdExact("Seal of Wisdom"); SOR = ai->getSpellIdExact("Seal of Righteousness"); SOC = ai->getSpellIdExact("Seal of Command"); SOV = ai->getSpellIdExact("Seal of Vengeance"); if (!SOV) SOV = ai->getSpellIdExact("Seal of Corruption"); DIVINE_PLEA = ai->getSpellIdExact("Divine Plea"); HOLY_SHIELD = ai->getSpellIdExact("Holy Shield"); RIGHTEOUS_FURY = ai->getSpellIdExact("Righteous Fury"); DIVINE_SHIELD = ai->getSpellIdExact("Divine Shield"); if (!DIVINE_SHIELD) DIVINE_SHIELD = ai->getSpellIdExact("Divine Protection"); AVENGING_WRATH = ai->getSpellIdExact("Avenging Wrath"); //AURAS DEVOTION_AURA = ai->getSpellIdExact("Devotion Aura"); RETRIBUTION_AURA = ai->getSpellIdExact("Retribution Aura"); CONCENTRATION_AURA = ai->getSpellIdExact("Concentration Aura"); FIRE_AURA = ai->getSpellIdExact("Fire Resistance Aura"); FROST_AURA = ai->getSpellIdExact("Frost Resistance Aura"); SHADOW_AURA = ai->getSpellIdExact("Shadow Resistance Aura"); CRUSADER_AURA = ai->getSpellIdExact("Crusader Aura"); //Blessings BOW = ai->getSpellIdExact("Blessing of Wisdom"); BOM = ai->getSpellIdExact("Blessing of Might"); BOS = ai->getSpellIdExact("Blessing of Sanctuary"); BOK = ai->getSpellIdExact("Blessing of Kings"); GBOW = ai->getSpellIdExact("Greater Blessing of Wisdom"); GBOM = ai->getSpellIdExact("Greater Blessing of Might"); GBOS = ai->getSpellIdExact("Greater Blessing of Sanctuary"); GBOK = ai->getSpellIdExact("Greater Blessing of Kings"); //Hands HOF = ai->getSpellIdExact("Hand of Freedom"); HOR = ai->getSpellIdExact("Hand of Reckoning"); HOS = ai->getSpellIdExact("Hand of Salvation"); HOP = ai->getSpellIdExact("Hand of Protection"); DIVINE_SACRIFICE = ai->getSpellIdExact("Divine Sacrifice"); //Taunt RIGHTEOUS_DEFENSE = ai->getSpellIdExact("Righteous Defense"); FORBEARANCE = 25771; AOW = 53488; TALENT_RETRI = CRUSADER_STRIKE; TALENT_PROT = HOLY_SHIELD; TALENT_HOLY = HOLY_SHOCK; uint8 talentCounter = 0; if (TALENT_RETRI) talentCounter++; if (TALENT_PROT) talentCounter++; if (TALENT_HOLY) talentCounter++; //if (talentCounter > 1) { TALENT_RETRI = 0; TALENT_PROT = 0; TALENT_HOLY = 0; } //Unreliable Talent detection. #pragma endregion }
void PlayerbotHunterAI::LoadSpells() { PlayerbotAI *ai = GetAI(); if (!ai) return; #pragma region SpellId Fill // PET CONTROL PET_SUMMON = ai->getSpellIdExact("Call Pet"); PET_DISMISS = ai->getSpellIdExact("Dismiss Pet"); PET_REVIVE = ai->getSpellIdExact("Revive Pet"); PET_MEND = ai->getSpellIdExact("Mend Pet"); PET_FEED = 1539; //ai->getSpellIdExact("Feed Pet"); KILL_COMMAND = ai->getSpellIdExact("Kill Command"); INTIMIDATION = ai->getSpellIdExact("Intimidation"); BESTIAL_WRATH = ai->getSpellIdExact("Bestial Wrath"); // PET SPELL (master does not have these spells anymore) GROWL = ai->getSpellIdExact("Growl"); COWER = ai->getSpellIdExact("Cower"); BAD_ATTITUDE = ai->getSpellIdExact("Bad Attitude"); SONIC_BLAST = ai->getSpellIdExact("Sonic Blast"); NETHER_SHOCK = ai->getSpellIdExact("Nether Shock"); DEMORALIZING_SCREECH = ai->getSpellIdExact("Demoralizing Screech"); // RANGED ATTACK AUTO_SHOT = ai->getSpellIdExact("Auto Shot"); ARCANE_SHOT = ai->getSpellIdExact("Arcane Shot"); EXPLOSIVE_SHOT = ai->getSpellIdExact("Explosive Shot"); STEADY_SHOT = ai->getSpellIdExact("Steady Shot"); AIMED_SHOT = ai->getSpellIdExact("Aimed Shot"); SCATTER_SHOT = ai->getSpellIdExact("Scatter Shot"); KILL_SHOT = ai->getSpellIdExact("Kill Shot"); CHIMERA_SHOT = ai->getSpellIdExact("Chimera Shot"); CONCUSSIVE_SHOT = ai->getSpellIdExact("Concussive Shot"); DISTRACTING_SHOT = ai->getSpellIdExact("Distracting Shot"); SILENCING_SHOT = ai->getSpellIdExact("Silencing Shot"); // STINGS SERPENT_STING = ai->getSpellIdExact("Serpent Sting"); SCORPID_STING = ai->getSpellIdExact("Scorpid Sting"); WYVERN_STING = ai->getSpellIdExact("Wyvern Sting"); VIPER_STING = ai->getSpellIdExact("Viper Sting"); // DEBUFF HUNTERS_MARK = ai->getSpellIdExact("Hunter's Mark"); SCARE_BEAST = ai->getSpellIdExact("Scare Beast"); //AOE VOLLEY = ai->getSpellIdExact("Volley"); MULTI_SHOT = ai->getSpellIdExact("Multi Shot"); //MELEE RAPTOR_STRIKE = ai->getSpellIdExact("Raptor Strike"); WING_CLIP = ai->getSpellIdExact("Wing Clip"); MONGOOSE_BITE = ai->getSpellIdExact("Mongoose Bite"); COUNTERATTACK = ai->getSpellIdExact("Counterattack"); //TRAP FREEZING_TRAP = ai->getSpellIdExact("Freezing Trap"); IMMOLATION_TRAP = ai->getSpellIdExact("Immolation Trap"); FROST_TRAP = ai->getSpellIdExact("Frost Trap"); EXPLOSIVE_TRAP = ai->getSpellIdExact("Explosive Trap"); SNAKE_TRAP = ai->getSpellIdExact("Snake Trap"); ARCANE_TRAP = ai->getSpellIdExact("Arcane Trap"); FREEZING_ARROW = ai->getSpellIdExact("Freezing Arrow"); BLACK_ARROW = ai->getSpellIdExact("Black Arrow"); //BUFF TRUESHOT_AURA = ai->getSpellIdExact("Trueshot Aura"); DETERRENCE = ai->getSpellIdExact("Deterrence"); FEIGN_DEATH = ai->getSpellIdExact("Feign Death"); DISENGAGE = ai->getSpellIdExact("Disengage"); RAPID_FIRE = ai->getSpellIdExact("Rapid Fire"); READINESS = ai->getSpellIdExact("Readiness"); MISDIRECTION = ai->getSpellIdExact("Misdirection"); //ASPECT ASPECT_OF_THE_HAWK = ai->getSpellIdExact("Aspect of the Dragonhawk"); ASPECT_OF_THE_MONKEY = ASPECT_OF_THE_HAWK; if (!ASPECT_OF_THE_HAWK) ASPECT_OF_THE_HAWK = ai->getSpellIdExact("Aspect of the Hawk"); if (!ASPECT_OF_THE_MONKEY) ASPECT_OF_THE_MONKEY = ai->getSpellIdExact("Aspect of the Monkey"); ASPECT_OF_THE_VIPER = ai->getSpellIdExact("Aspect of the Viper"); TALENT_MM = TRUESHOT_AURA; TALENT_BM = BESTIAL_WRATH; TALENT_SURVIVAL = WYVERN_STING; uint8 talentCounter = 0; if (TALENT_MM) talentCounter++; if (TALENT_BM) talentCounter++; if (TALENT_SURVIVAL) talentCounter++; if (talentCounter > 1) { TALENT_MM = 0; TALENT_BM = 0; TALENT_SURVIVAL = 0; } //Unreliable Talent detection. #pragma endregion }
void PlayerbotDeathKnightAI::LoadSpells(){ PlayerbotAI *ai = GetAI(); if (!ai) return; #pragma region SpellId Fill // Unholy PLAGUE_STRIKE = ai->getSpellIdExact("Plague Strike"); DEATH_STRIKE = ai->getSpellIdExact("Death Strike"); SCOURGE_STRIKE = ai->getSpellIdExact("Scourge Strike"); // Frost ICY_TOUCH = ai->getSpellIdExact("Icy Touch"); OBLITERATE = ai->getSpellIdExact("Obliterate"); // Blood BLOOD_STRIKE = ai->getSpellIdExact("Blood Strike"); HEART_STRIKE = ai->getSpellIdExact("Heart Strike"); RUNE_TAP = ai->getSpellIdExact("Rune Tap"); DARK_COMMAND = ai->getSpellIdExact("Dark Command"); // AOE HOWLING_BLAST = ai->getSpellIdExact("Howling Blast"); BLOOD_BOIL = ai->getSpellIdExact("Blood Boil"); PESTILENCE = ai->getSpellIdExact("Pestilence"); CORPSE_EXPLOSION = ai->getSpellIdExact("Corpse Explosion"); DEATH_AND_DECAY = ai->getSpellIdExact("Death and Decay"); // Rune attacks FROST_STRIKE = ai->getSpellIdExact("Frost Strike"); DEATH_COIL = ai->getSpellIdExact("Death Coil"); RUNE_STRIKE = ai->getSpellIdExact("Rune Strike"); // CC Interrupt DEATH_GRIP = ai->getSpellIdExact("Death Grip"); CHAINS_OF_ICE = ai->getSpellIdExact("Chains of Ice"); MIND_FREEZE = ai->getSpellIdExact("Mind Freeze"); HUNGERING_COLD = ai->getSpellIdExact("Hungering Cold"); STRANGULATE = ai->getSpellIdExact("Strangulate"); // Debuffs FROST_FEVER = 55095; //ai->getSpellIdExact("Frost Fever",true); BLOOD_PLAGUE = 55078; //ai->getSpellIdExact("Blood Plague",true); CRYPT_FEVER = ai->getSpellIdExact("Crypt Fever",true); EBON_PLAGUE = ai->getSpellIdExact("Ebon Plague",true); MARK_OF_BLOOD = ai->getSpellIdExact("Mark of Blood"); // Buffs HORN_OF_WINTER = ai->getSpellIdExact("Horn of Winter"); BONE_SHIELD = ai->getSpellIdExact("Bone Shield"); VAMPIRIC_BLOOD = ai->getSpellIdExact("Vampiric Blood"); HYSTERIA = ai->getSpellIdExact("Hysteria"); UNBREAKABLE_ARMOR = ai->getSpellIdExact("Unbreakable Armor"); ANTI_MAGIC_SHELL = ai->getSpellIdExact("Anti Magic Shell"); ANTI_MAGIC_ZONE = ai->getSpellIdExact("Anti Magic Zone"); ICEBOUND_FORTITUDE = ai->getSpellIdExact("Icebound Fortitude"); EMPOWER_WEAPON = ai->getSpellIdExact("Empower Rune Weapon"); LICHBORNE = ai->getSpellIdExact("Lichborne"); // Summons RAISE_DEAD = ai->getSpellIdExact("Raise Dead"); ARMY_OF_THE_DEAD = ai->getSpellIdExact("Army of the Dead"); SUMMON_GARGOYLE = ai->getSpellIdExact("Summon Gargoyle"); GHOUL_FRENZY = ai->getSpellIdExact("Ghoul Frenzy"); DEATH_PACT = ai->getSpellIdExact("Death Pact"); DANCING_WEAPON = ai->getSpellIdExact("Dancing Rune Weapon"); // Presences BLOOD_PRESENCE = ai->getSpellIdExact("Blood Presence"); FROST_PRESENCE = ai->getSpellIdExact("Frost Presence"); UNHOLY_PRESENCE = ai->getSpellIdExact("Unholy Presence"); // Talent TALENT_BLOOD = HEART_STRIKE; TALENT_FROST = FROST_STRIKE; TALENT_UNHOLY = SCOURGE_STRIKE; uint8 talentCounter = 0; if (TALENT_BLOOD) talentCounter++; if (TALENT_FROST) talentCounter++; if (TALENT_UNHOLY) talentCounter++; if (talentCounter > 1) { TALENT_BLOOD = 0; TALENT_FROST = 0; TALENT_UNHOLY = 0; } //Unreliable Talent detection. #pragma endregion }