Public feed
#602226
#include "StdAfx.h"#include "Setup.h"#define STORMPIKE_BATTLEMASTER 14284#define VANNDAR_STORMPIKE 11948#define BOLVAR_FORDRAGON 1748#define OVERLORD_RUNTHAK 14392struct Coords{ float x; float y; float z; float o;};class StormpikeGuardAI : public CreatureAIScript{public: ADD_CREATURE_FACTORY_FUNCTION(StormpikeGuardAI); StormpikeGuardAI(Creature* pCreature) : CreatureAIScript(pCreature) { enraged = false; } void OnCombatStart(Unit* mTarget) { switch(sRand.randInt(20)) { case 1: _unit->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_COMMON, "For King Bronzebeard!"); break; case 2: _unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_COMMON, "Die, foul Horde!"); } } void AIUpdate() { if(_unit->GetHealthPct() <= 20 && !enraged) { _unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_COMMON, "Assist me!"); Unit * target = _unit->GetAIInterface()->GetNextTarget(); _unit->CastSpell(target, 8599, false); enraged = !enraged; } }protected: bool enraged;};class BolvarFordragonAI : public CreatureAIScript{public: ADD_CREATURE_FACTORY_FUNCTION(BolvarFordragonAI); BolvarFordragonAI(Creature* pCreature) : CreatureAIScript(pCreature) { _unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_COMMON, "Stonehearth is ours once more!"); StorageContainerIterator<GraveyardTeleport> * itr; GraveyardTeleport *pGrave = itr->Get(); while(!itr->AtEnd()) { GraveyardTeleport *pGrave = itr->Get(); if(pGrave->ID == 387) pGrave->contested = false; if(!itr->Inc()) break; } } void OnCombatStart(Unit* mTarget) { switch(sRand.randInt(20)) { case 1: _unit->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_COMMON, "Light, serve me!"); break; case 2: _unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_COMMON, "This land belongs to the Alliance!"); } } void OnDied(Unit * mKiller) { _unit->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_COMMON, "I... have failed."); StorageContainerIterator<GraveyardTeleport> * itr; GraveyardTeleport *pGrave = itr->Get(); while(!itr->AtEnd()) { GraveyardTeleport *pGrave = itr->Get(); if(pGrave->ID == 387) pGrave->contested = true; if(!itr->Inc()) break; } }};class OverlordRunthakAI : public CreatureAIScript{public: ADD_CREATURE_FACTORY_FUNCTION(OverlordRunthakAI); OverlordRunthakAI(Creature* pCreature) : CreatureAIScript(pCreature) { _unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_COMMON, "I serve the Horde!"); StorageContainerIterator<GraveyardTeleport> * itr; GraveyardTeleport *pGrave = itr->Get(); while(!itr->AtEnd()) { GraveyardTeleport *pGrave = itr->Get(); if(pGrave->ID == 389) pGrave->contested = false; if(!itr->Inc()) break; } } void OnCombatStart(Unit* mTarget) { switch(sRand.randInt(20)) { case 1: _unit->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_COMMON, "I'll crush your bones!"); break; case 2: _unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_COMMON, "The enemies of Thrall are the enemies of the Horde!"); } } void OnDied(Unit * mKiller) { _unit->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_COMMON, "Grah..."); StorageContainerIterator<GraveyardTeleport> * itr; GraveyardTeleport *pGrave = itr->Get(); while(!itr->AtEnd()) { GraveyardTeleport *pGrave = itr->Get(); if(pGrave->ID == 389) pGrave->contested = true; if(!itr->Inc()) break; } }};void SetupBattleground(ScriptMgr * mgr){ mgr->register_creature_script(STORMPIKE_BATTLEMASTER, &StormpikeGuardAI::Create); mgr->register_creature_script(BOLVAR_FORDRAGON, &BolvarFordragonAI::Create); mgr->register_creature_script(OVERLORD_RUNTHAK, &OverlordRunthakAI::Create);}