mirror of
https://github.com/araxiaonline/AscEmu.git
synced 2026-06-13 03:02:22 -04:00
57
sql/world/updates/20230710-01_hardcoded_ai_scripts.sql
Normal file
57
sql/world/updates/20230710-01_hardcoded_ai_scripts.sql
Normal file
@@ -0,0 +1,57 @@
|
||||
-- Magisters Terrace (585)
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '5', '1', '0', '35', '27609', '0', '0', '5', '5000', '5000', '0', '100', '0', '0', 'Priestess Delrissa - Dispel Magic');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '5', '1', '0', '40', '17843', '0', '0', '5', '7000', '7000', '0', '100', '0', '0', 'Priestess Delrissa - Flash Heal');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '5', '1', '0', '45', '15654', '0', '0', '6', '18000', '18000', '0', '100', '0', '0', 'Priestess Delrissa - Shadow Word: Pain');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '5', '1', '0', '32', '44291', '0', '0', '5', '15000', '15000', '0', '100', '0', '0', 'Priestess Delrissa - Power Word: Shield');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '5', '1', '0', '30', '44174', '0', '0', '5', '18000', '18000', '0', '100', '0', '0', 'Priestess Delrissa - Renew');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24683', '4', '0', '5', '1', '0', '60', '46028', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Sunblade Mage Guard - Glaive Throw');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24683', '4', '0', '5', '1', '0', '20', '44475', '0', '0', '6', '35000', '35000', '0', '100', '0', '0', 'Sunblade Mage Guard - Magic Dampening Field');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24685', '4', '0', '5', '1', '0', '65', '46035', '0', '0', '2', '4000', '4000', '0', '100', '0', '0', 'Sunblade Magister - Frostbolt');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24685', '4', '0', '5', '1', '0', '12', '46036', '0', '0', '0', '40000', '40000', '0', '100', '0', '0', 'Sunblade Magister - Arcane Nova');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24696', '4', '0', '5', '1', '0', '60', '46150', '0', '0', '2', '12000', '12000', '0', '100', '0', '0', 'Coilskar Witch - Forked Lightning');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24696', '4', '0', '5', '1', '0', '15', '44639', '0', '0', '6', '16000', '16000', '0', '100', '0', '0', 'Coilskar Witch - Frost Arrow');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24696', '4', '0', '5', '1', '0', '6', '46151', '0', '0', '0', '40000', '40000', '0', '100', '0', '0', 'Coilskar Witch - Mana Shield');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24696', '4', '0', '5', '1', '0', '75', '35946', '0', '0', '6', '4000', '4000', '0', '100', '0', '0', 'Coilskar Witch - Shoot');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24697', '4', '0', '5', '1', '0', '60', '44640', '0', '0', '2', '8000', '8000', '0', '100', '0', '0', 'Sister of Torment - Lash of Pain');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24697', '4', '0', '5', '1', '0', '20', '44547', '0', '0', '6', '16000', '16000', '0', '100', '0', '0', 'Sister of Torment - Deadly Embrace');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '14558', '4', '0', '5', '1', '0', '75', '44267', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Ellrys Duskhallow - Immolate');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '14558', '4', '0', '5', '1', '0', '75', '12471', '0', '0', '6', '5000', '5000', '0', '100', '0', '0', 'Ellrys Duskhallow - Shadowbolt');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '14558', '4', '0', '5', '1', '0', '75', '14875', '0', '0', '6', '4000', '4000', '0', '100', '0', '0', 'Ellrys Duskhallow - Curse of Agony');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24557', '4', '0', '5', '1', '0', '88', '27615', '0', '0', '2', '25000', '25000', '0', '100', '0', '0', 'Kagani Nightstrike - Kidney Shot');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24557', '4', '0', '5', '1', '0', '20', '12540', '0', '0', '2', '18000', '18000', '0', '100', '0', '0', 'Kagani Nightstrike - Gouge');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24557', '4', '0', '5', '1', '0', '8', '46189', '0', '0', '2', '45000', '45000', '0', '100', '0', '0', 'Kagani Nightstrike - Eviscerate');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24815', '4', '0', '5', '1', '0', '100', '44577', '0', '0', '2', '3000', '3000', '0', '100', '0', '0', 'Sunblade Imp - Firebolt');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '1', '2', '0', '100', '0', '0', '0', '0', '0', '0', '0', '100', '3022', '0', 'Priestess Delrissa - Say Annihilate them');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '3', '2', '0', '100', '0', '0', '0', '0', '0', '0', '0', '100', '3032', '0', 'Priestess Delrissa - Say Not what I had... planned');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24560', '4', '0', '2', '2', '0', '100', '0', '0', '0', '0', '0', '0', '0', '100', '3031', '0', 'Priestess Delrissa - Say Its been a kick, really');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '14558', '4', '0', '5', '1', '0', '75', '38595', '0', '0', '6', '9000', '9000', '0', '100', '0', '0', 'Ellrys Duskhallow - Fear');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24554', '4', '0', '5', '1', '0', '25', '11428', '0', '0', '2', '5000', '5000', '0', '100', '0', '0', 'Eramas Brightblaze - Knockdown');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24554', '4', '0', '5', '1', '0', '40', '46182', '0', '0', '1', '2000', '2000', '0', '100', '0', '0', 'Eramas Brightblaze - Snap Kick');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24561', '4', '0', '5', '1', '0', '30', '13323', '0', '0', '6', '16000', '16000', '0', '100', '0', '0', 'Yazzai - Polymorph');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24561', '4', '0', '5', '1', '0', '20', '27619', '0', '0', '0', '300000', '300000', '0', '100', '0', '0', 'Yazzai - Ice Block');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24561', '4', '0', '5', '1', '0', '25', '44178', '0', '0', '6', '20000', '20000', '0', '100', '0', '0', 'Yazzai - Blizzard');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24561', '4', '0', '5', '1', '0', '10', '38384', '0', '0', '0', '19000', '19000', '0', '100', '0', '0', 'Yazzai - Cone of Cold');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24561', '4', '0', '5', '1', '0', '80', '15530', '0', '0', '6', '14000', '14000', '0', '100', '0', '0', 'Yazzai - Frostbolt');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '25', '27577', '0', '0', '6', '8000', '8000', '0', '100', '0', '0', 'Warlord Salaris - Intercept');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '100', '27581', '0', '0', '2', '60000', '60000', '0', '100', '0', '0', 'Warlord Salaris - Disarm');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '22', '23600', '0', '0', '0', '17000', '17000', '0', '100', '0', '0', 'Warlord Salaris - Piercing Howl');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '30', '19134', '0', '0', '6', '9000', '9000', '0', '100', '0', '0', 'Warlord Salaris - Fightening Shout');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '10', '27584', '0', '0', '2', '20000', '20000', '0', '100', '0', '0', 'Warlord Salaris - Hamstering');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24559', '4', '0', '5', '1', '0', '100', '44268', '0', '0', '2', '6000', '6000', '0', '100', '0', '0', 'Warlord Salaris - Mortal Strike');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24555', '4', '0', '5', '1', '0', '90', '44271', '0', '0', '6', '6000', '6000', '0', '100', '0', '0', 'Garaxxas - Aimed Shot');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24555', '4', '0', '5', '1', '0', '90', '15620', '0', '0', '6', '5000', '5000', '0', '100', '0', '0', 'Garaxxas - Shot');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24555', '4', '0', '5', '1', '0', '40', '27634', '0', '0', '6', '8000', '8000', '0', '100', '0', '0', 'Garaxxas - Concussive Shot');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24555', '4', '0', '5', '1', '0', '25', '44285', '0', '0', '6', '12000', '12000', '0', '100', '0', '0', 'Garaxxas - Multi Shot');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24555', '4', '0', '5', '1', '0', '30', '44286', '0', '0', '2', '9000', '9000', '0', '100', '0', '0', 'Garaxxas - Wing Clip');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24553', '4', '0', '5', '1', '0', '40', '21401', '0', '0', '6', '8000', '8000', '0', '100', '0', '0', 'Apoko - Frist Shock');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24553', '4', '0', '5', '1', '0', '50', '44256', '0', '0', '5', '10000', '10000', '0', '100', '0', '0', 'Apoko - Lesser Healing Wave');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24553', '4', '0', '5', '1', '0', '20', '27626', '0', '0', '6', '40000', '40000', '0', '100', '0', '0', 'Apoko - Purge');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24556', '4', '0', '5', '1', '0', '90', '44272', '0', '0', '2', '15000', '15000', '0', '100', '0', '0', 'Zelfan - Goblin Dragon Gun');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24556', '4', '0', '5', '1', '0', '90', '44276', '0', '0', '0', '80000', '80000', '0', '100', '0', '0', 'Zelfan - Explosive Sheep');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24556', '4', '0', '5', '1', '0', '99', '44137', '0', '0', '6', '60000', '60000', '0', '100', '0', '0', 'Zelfan - Rocket Launch');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24684', '4', '0', '5', '1', '0', '20', '44482', '0', '0', '2', '30000', '30000', '0', '100', '0', '0', 'Sunblade Bloodknight - Judgement of Wrath');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24684', '4', '0', '5', '1', '0', '99', '46030', '0', '0', '0', '30000', '30000', '0', '100', '0', '0', 'Sunblade Bloodknight - Seal of Wrath');
|
||||
INSERT INTO `creature_ai_scripts` VALUES ('8606', '12340', '24684', '4', '0', '5', '1', '0', '10', '46029', '0', '0', '0', '30000', '30000', '0', '100', '0', '0', 'Sunblade Bloodknight - Holy Light');
|
||||
|
||||
|
||||
INSERT INTO `world_db_version` VALUES ('133', '20230710-01_hardcoded_ai_scripts');
|
||||
@@ -195,26 +195,8 @@ public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new Priestess_DelrissaAI(c); }
|
||||
explicit Priestess_DelrissaAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
auto dispelMagic = addAISpell(PRIESTESS_DELRISSA_DISPEL_MAGIC, 35.0f, TARGET_RANDOM_FRIEND, 0, 5);
|
||||
dispelMagic->setMinMaxDistance(0.0f, 30.0f);
|
||||
|
||||
auto flashHeal = addAISpell(PRIESTESS_DELRISSA_FLASH_HEAL, 40.0f, TARGET_RANDOM_FRIEND, 2, 7);
|
||||
flashHeal->setMinMaxDistance(0.0f, 40.0f);
|
||||
|
||||
auto shadowwordPain = addAISpell(PRIESTESS_DELRISSA_SHADOWWORD_PAIN, 45.0f, TARGET_RANDOM_SINGLE, 0, 18);
|
||||
shadowwordPain->setMinMaxDistance(0.0f, 30.0f);
|
||||
|
||||
auto powerwordShield = addAISpell(PRIESTESS_DELRISSA_POWERWORD_SHIELD, 32.0f, TARGET_RANDOM_FRIEND, 0, 15);
|
||||
powerwordShield->setMinMaxDistance(0.0f, 40.0f);
|
||||
|
||||
auto renew = addAISpell(PRIESTESS_DELRISSA_RENEW, 30.0f, TARGET_RANDOM_FRIEND, 0, 18);
|
||||
renew->setMinMaxDistance(0.0f, 40.0f);
|
||||
|
||||
mClearHateList = _addTimer(15000);
|
||||
mKilledPlayers = 0;
|
||||
|
||||
addEmoteForEvent(Event_OnCombatStart, 3022); // Annihilate them.
|
||||
addEmoteForEvent(Event_OnDied, 3032); // Not what I had... planned.
|
||||
}
|
||||
|
||||
void OnTargetDied(Unit* pTarget) override
|
||||
@@ -232,13 +214,10 @@ public:
|
||||
sendDBChatMessage(3029); // Not really much of a "group" anymore, is it?
|
||||
else if (mKilledPlayers == 4)
|
||||
sendDBChatMessage(3030); // One is such a lonely number.
|
||||
else if (mKilledPlayers == 5)
|
||||
sendDBChatMessage(3031); // It's been a kick, really.
|
||||
}
|
||||
|
||||
void OnCombatStop(Unit* /*pTarget*/) override
|
||||
{
|
||||
sendDBChatMessage(3031); // It's been a kick, really.
|
||||
mKilledPlayers = 0;
|
||||
}
|
||||
|
||||
@@ -256,227 +235,6 @@ protected:
|
||||
int32_t mClearHateList;
|
||||
};
|
||||
|
||||
class KaganiNightstrikeAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new KaganiNightstrikeAI(c); }
|
||||
explicit KaganiNightstrikeAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
auto kidneyShot = addAISpell(KAGANI_KIDNEY_SHOT, 80.0f, TARGET_ATTACKING, 0, 25);
|
||||
kidneyShot->setMinMaxDistance(0.0f, 30.0f);
|
||||
|
||||
auto gouge = addAISpell(KAGANI_GOUGE, 20.0f, TARGET_ATTACKING, 0, 18);
|
||||
gouge->setMinMaxDistance(0.0f, 30.0f);
|
||||
|
||||
auto eviscerate = addAISpell(KAGANI_EVISCERATE, 8.0f, TARGET_ATTACKING, 0, 45);
|
||||
eviscerate->setMinMaxDistance(0.0f, 30.0f);
|
||||
}
|
||||
};
|
||||
|
||||
class EllrysDuskhallowAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new EllrysDuskhallowAI(c); }
|
||||
explicit EllrysDuskhallowAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
addAISpell(ELLRYS_IMMOLATE, 75.0f, TARGET_ATTACKING, 2, 15);
|
||||
|
||||
auto shadowBolt = addAISpell(ELLRYS_SHADOWBOLT, 75.0f, TARGET_RANDOM_SINGLE, 3, 5);
|
||||
shadowBolt->setMinMaxDistance(0.0f, 40.0f);
|
||||
|
||||
auto curseOfAgony = addAISpell(ELLRYS_CURSE_OF_AGONY, 75.0f, TARGET_RANDOM_SINGLE, 0, 4);
|
||||
curseOfAgony->setMinMaxDistance(0.0f, 30.0f);
|
||||
|
||||
auto fear = addAISpell(ELLRYS_FEAR, 75.0f, TARGET_RANDOM_SINGLE, 2, 9);
|
||||
fear->setMinMaxDistance(0.0f, 20.0f);
|
||||
}
|
||||
};
|
||||
|
||||
class EramasBrightblazeAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new EramasBrightblazeAI(c); }
|
||||
explicit EramasBrightblazeAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
addAISpell(ERAMAS_KNOCKDOWN, 25.0f, TARGET_ATTACKING, 0, 5);
|
||||
addAISpell(ERAMAS_SNAP_KICK, 40.0f, TARGET_VARIOUS, 0, 2);
|
||||
}
|
||||
};
|
||||
|
||||
class YazzaiAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new YazzaiAI(c); }
|
||||
explicit YazzaiAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
auto polymorph = addAISpell(YAZZAI_POLYMORPH, 30.0f, TARGET_RANDOM_SINGLE, 2, 16);
|
||||
polymorph->setMinMaxDistance(8.0f, 30.0f);
|
||||
|
||||
addAISpell(YAZZAI_ICE_BLOCK, 20.0f, TARGET_SELF, 0, 300);
|
||||
auto blizzard = addAISpell(YAZZAI_BLIZZARD, 25.0f, TARGET_RANDOM_SINGLE, 0, 20);
|
||||
blizzard->setMinMaxDistance(8.0f, 30.0f);
|
||||
|
||||
addAISpell(YAZZAI_CONE_OF_COLD, 10.0f, TARGET_SELF, 0, 19);
|
||||
auto frostBolt = addAISpell(YAZZAI_FROSTBOLT, 80.0f, TARGET_RANDOM_SINGLE, 3, 14);
|
||||
frostBolt->setMinMaxDistance(8.0f, 40.0f);
|
||||
}
|
||||
};
|
||||
|
||||
class WarlordSalarisAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new WarlordSalarisAI(c); }
|
||||
explicit WarlordSalarisAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
auto intercept = addAISpell(SALARIS_INTERCEPT, 25.0f, TARGET_RANDOM_SINGLE, 0, 8);
|
||||
intercept->setMinMaxDistance(8.0f, 25.0f);
|
||||
|
||||
addAISpell(SALARIS_DISARM, 100.0f, TARGET_ATTACKING, 0, 60);
|
||||
|
||||
addAISpell(SALARIS_PIERCING_HOWL, 22.0f, TARGET_SELF, 0, 17);
|
||||
|
||||
auto shout = addAISpell(SALARIS_FRIGHTENING_SHOUT, 30.0f, TARGET_RANDOM_SINGLE, 0, 9);
|
||||
shout->setMinMaxDistance(0.0f, 10.0f);
|
||||
|
||||
addAISpell(SALARIS_HAMSTRING, 10.0f, TARGET_ATTACKING, 0, 20);
|
||||
addAISpell(SALARIS_MORTAL_STRIKE, 100.0f, TARGET_ATTACKING, 0, 6);
|
||||
}
|
||||
};
|
||||
|
||||
class GaraxxasAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new GaraxxasAI(c); }
|
||||
explicit GaraxxasAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
auto aimedShot = addAISpell(GARAXXAS_AIMED_SHOT, 90.0f, TARGET_RANDOM_SINGLE, 3, 6);
|
||||
aimedShot->setMinMaxDistance(5.0f, 35.0f);
|
||||
|
||||
auto shoot = addAISpell(GARAXXAS_SHOOT, 90.0f, TARGET_RANDOM_SINGLE, 3, 5);
|
||||
shoot->setMinMaxDistance(5.0f, 30.0f);
|
||||
|
||||
auto concussivShot = addAISpell(GARAXXAS_CONCUSSIV_SHOT, 40.0f, TARGET_RANDOM_SINGLE, 0, 8);
|
||||
concussivShot->setMinMaxDistance(5.0f, 35.0f);
|
||||
|
||||
auto multiShot = addAISpell(GARAXXAS_MULTI_SHOT, 25.0f, TARGET_RANDOM_SINGLE, 0, 12);
|
||||
multiShot->setMinMaxDistance(5.0f, 30.0f);
|
||||
|
||||
addAISpell(GARAXXAS_WING_CLIP, 30.0f, TARGET_ATTACKING, 0, 9);
|
||||
}
|
||||
};
|
||||
|
||||
class ApokoAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new ApokoAI(c); }
|
||||
explicit ApokoAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
auto frostShock = addAISpell(APOKO_FROST_SHOCK, 40.0f, TARGET_RANDOM_SINGLE, 0, 8);
|
||||
frostShock->setMinMaxDistance(0.0f, 20.0f);
|
||||
|
||||
auto healingWave = addAISpell(APOKO_LESSER_HEALING_WAVE, 50.0f, TARGET_RANDOM_FRIEND, 2, 10);
|
||||
healingWave->setMinMaxDistance(0.0f, 40.0f);
|
||||
|
||||
auto purge = addAISpell(APOKO_PURGE, 20.0f, TARGET_RANDOM_SINGLE, 0, 40);
|
||||
purge->setMinMaxDistance(0.0f, 30.0f);
|
||||
}
|
||||
};
|
||||
|
||||
class ZelfanAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new ZelfanAI(c); }
|
||||
explicit ZelfanAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
addAISpell(ZELFAN_GOBLIN_DRAGON_GUN, 90.0f, TARGET_ATTACKING, 0, 15);
|
||||
addAISpell(ZELFAN_HIGH_EXPLOSIV_SHEEP, 90.0f, TARGET_SELF, 2, 80);
|
||||
|
||||
auto rocketLaunch = addAISpell(ZELFAN_ROCKET_LAUNCH, 99.0f, TARGET_RANDOM_SINGLE, 4, 60);
|
||||
rocketLaunch->setMinMaxDistance(0.0f, 45.0f);
|
||||
}
|
||||
};
|
||||
|
||||
// Trash mobs
|
||||
|
||||
class CoilskarWitchAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new CoilskarWitchAI(c); }
|
||||
explicit CoilskarWitchAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
addAISpell(COILSKAR_WITCH_FORKED_LIGHTNING, 60.0f, TARGET_ATTACKING, 2, 12);
|
||||
|
||||
auto frostArrow = addAISpell(COILSKAR_WITCH_FROST_ARROW, 15.0f, TARGET_RANDOM_SINGLE, 0, 16);
|
||||
frostArrow->setMinMaxDistance(0.0f, 40.0f);
|
||||
|
||||
addAISpell(COILSKAR_WITCH_MANA_SHIELD, 6.0f, TARGET_SELF, 0, 40);
|
||||
|
||||
auto witchShoot = addAISpell(COILSKAR_WITCH_SHOOT, 75.0f, TARGET_RANDOM_SINGLE, 2, 4);
|
||||
witchShoot->setMinMaxDistance(5.0f, 30.0f);
|
||||
}
|
||||
};
|
||||
|
||||
class SisterOfTormentAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new SisterOfTormentAI(c); }
|
||||
explicit SisterOfTormentAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
addAISpell(SISTER_OF_TORMENT_LASH_OF_PAIN, 60.0f, TARGET_ATTACKING, 0, 8);
|
||||
|
||||
auto deadlyEmbracy = addAISpell(SISTER_OF_TORMENT_DEADLY_EMBRACE, 20.0f, TARGET_RANDOM_SINGLE, 2, 16);
|
||||
deadlyEmbracy->setMinMaxDistance(0.0f, 20.0f);
|
||||
}
|
||||
};
|
||||
|
||||
class SunbladeBloodKnightAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new SunbladeBloodKnightAI(c); }
|
||||
explicit SunbladeBloodKnightAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
addAISpell(BLOOD_KNIGHT_JUDGEMENT_OF_WRATH, 20.0f, TARGET_ATTACKING, 0, 30);
|
||||
addAISpell(BLOOD_KNIGHT_SEAL_OF_WRATH, 99.0f, TARGET_SELF, 0, 30);
|
||||
|
||||
auto holyLight = addAISpell(BLOOD_KNIGHT_HOLY_LIGHT, 10.0f, TARGET_SELF, 2, 30);
|
||||
holyLight->setMinMaxDistance(0.0f, 40.0f);
|
||||
}
|
||||
};
|
||||
|
||||
class SunbladeImpAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new SunbladeImpAI(c); }
|
||||
explicit SunbladeImpAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
addAISpell(IMP_FIREBOLT, 100.0f, TARGET_ATTACKING, 2, 3);
|
||||
}
|
||||
};
|
||||
|
||||
class SunbladeMageGuardAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new SunbladeMageGuardAI(c); }
|
||||
explicit SunbladeMageGuardAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
addAISpell(MAGE_GUARD_GLAVE_THROW, 60.0f, TARGET_ATTACKING, 0, 25);
|
||||
|
||||
auto magicDampening = addAISpell(MAGE_GUARD_MAGIC_DAMPENING_FIELD, 20.0f, TARGET_RANDOM_SINGLE, 1, 35);
|
||||
magicDampening->setMinMaxDistance(0.0f, 20.0f);
|
||||
}
|
||||
};
|
||||
|
||||
class SunbladeMagisterAI : public CreatureAIScript
|
||||
{
|
||||
public:
|
||||
static CreatureAIScript* Create(Creature* c) { return new SunbladeMagisterAI(c); }
|
||||
explicit SunbladeMagisterAI(Creature* pCreature) : CreatureAIScript(pCreature)
|
||||
{
|
||||
addAISpell(MAGISTER_FROSTBOLT, 65.0f, TARGET_ATTACKING, 2, 4);
|
||||
addAISpell(MAGISTER_ARCANE_NOVA, 12.0f, TARGET_SELF, 2, 40);
|
||||
}
|
||||
};
|
||||
|
||||
void SetupMagistersTerrace(ScriptMgr* mgr)
|
||||
{
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -488,23 +246,4 @@ void SetupMagistersTerrace(ScriptMgr* mgr)
|
||||
mgr->register_creature_script(BOSS_SELIN_FIREHEART, &SelinFireheartAI::Create);
|
||||
mgr->register_creature_script(BOSS_VEXALLUS, &VexallusAI::Create);
|
||||
mgr->register_creature_script(BOSS_PRIEST_DELRISSA, &Priestess_DelrissaAI::Create);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Priestess Delrissa Encounter Creature AI
|
||||
mgr->register_creature_script(CN_KAGANI_NIGHTSTRIKE, &KaganiNightstrikeAI::Create);
|
||||
mgr->register_creature_script(CN_ELLRYS_DUSKHALLOW, &EllrysDuskhallowAI::Create);
|
||||
mgr->register_creature_script(CN_ERAMAS_BRIGHTBLAZE, &EramasBrightblazeAI::Create);
|
||||
mgr->register_creature_script(CN_YAZZAI, &YazzaiAI::Create);
|
||||
mgr->register_creature_script(CN_WARLORD_SALARIS, &WarlordSalarisAI::Create);
|
||||
mgr->register_creature_script(CN_GARAXXAS, &GaraxxasAI::Create);
|
||||
mgr->register_creature_script(CN_APOKO, &ApokoAI::Create);
|
||||
mgr->register_creature_script(CN_ZELFAN, &ZelfanAI::Create);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Trash Mobs
|
||||
mgr->register_creature_script(CN_COILSKAR_WITCH, &CoilskarWitchAI::Create);
|
||||
mgr->register_creature_script(CN_SISTER_OF_TORMENT, &SisterOfTormentAI::Create);
|
||||
mgr->register_creature_script(CN_SB_IMP, &SunbladeImpAI::Create);
|
||||
mgr->register_creature_script(CN_SB_MAGE_GUARD, &SunbladeMageGuardAI::Create);
|
||||
mgr->register_creature_script(CN_SB_MAGISTER, &SunbladeMagisterAI::Create);
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
// DB version
|
||||
static const char* REQUIRED_CHAR_DB_VERSION = "20230710-00_characters_taxi";
|
||||
static const char* REQUIRED_WORLD_DB_VERSION = "20230710-00_taxi_level_data";
|
||||
static const char* REQUIRED_WORLD_DB_VERSION = "20230710-01_hardcoded_ai_scripts";
|
||||
|
||||
volatile bool Master::m_stopEvent = false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user