rendered paste bodystruct MANGOS_DLL_DECL npc_dashel_stonefistAI : public ScriptedAI{ npc_dashel_stonefistAI(Creature *c) : ScriptedAI(c) {EnterEvadeMode();} void EnterEvadeMode() { m_creature->RemoveAllAuras(); m_creature->DeleteThreatList(); m_creature->CombatStop(); m_creature->setFaction(11); DoGoHome(); m_creature->setEmoteState(7); } void DamageTaken(Unit *done_by, uint32 & damage) { if ((m_creature->GetHealth() - damage)*100 / m_creature->GetMaxHealth() < 15) { //Take 0 damage damage = 0; if (done_by->GetTypeId() == TYPEID_PLAYER) { ((Player*)done_by)->AttackStop(); ((Player*)done_by)->CompleteQuest(1447); } m_creature->CombatStop(); EnterEvadeMode(); } AttackedBy(done_by); } void AttackStart(Unit *who) { if (!who) return; if (who->isTargetableForAttack() && who!= m_creature) { DoStartMeleeAttack(who); } } void MoveInLineOfSight(Unit *who) { if (!who || m_creature->getVictim()) return; if (who->isTargetableForAttack() && who->isInAccessablePlaceFor(m_creature) && m_creature->IsHostileTo(who)) { float attackRadius = m_creature->GetAttackDistance(who); if (m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->GetDistanceZ(who) <= CREATURE_Z_ATTACK_RANGE && m_creature->IsWithinLOSInMap(who)) { if(who->HasStealthAura()) who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); //Begin melee attack if we are within range DoStartMeleeAttack(who); } } } void UpdateAI(const uint32 diff) { //Return since we have no target if (!m_creature->SelectHostilTarget() || !m_creature->getVictim()) return; if( m_creature->IsWithinDistInMap(m_creature->getVictim(), ATTACK_DISTANCE)) { //Make sure our attack is ready and we arn't currently casting if( m_creature->isAttackReady()) { m_creature->AttackerStateUpdate(m_creature->getVictim()); m_creature->resetAttackTimer(); } } }};bool QuestAccept_npc_dashel_stonefist(Player *player, Creature *_Creature, Quest const *_Quest){ if(_Quest->GetQuestId() == 1447) { _Creature->setFaction(168); ((npc_dashel_stonefistAI*)_Creature->AI())->AttackStart(player); } return true;}CreatureAI* GetAI_npc_dashel_stonefist(Creature *_creature){ return new npc_dashel_stonefistAI(_creature);}void AddSC_npc_dashel_stonefist(){ Script *newscript; newscript = new Script; newscript->Name = "npc_dashel_stonefist"; newscript->GetAI = GetAI_npc_dashel_stonefist; newscript->pQuestAccept = &QuestAccept_npc_dashel_stonefist; m_scripts[nrscripts++] = newscript;}