Public feed #602226

Untitled

public cpp v1 · immutable
Raw Edit
·published 2007-07-03 23:26 UTC
rendered paste body
#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);}