void DamageTaken(Unit* pDoneBy, uint32 &damage) { if (damage < m_creature->GetHealth()) return; //damage will kill, this is pretty much the same as 1%HP left if (bEvent) { damage = 0; if (Player* pPlayer = m_creature->GetMap()->GetPlayer(m_uiPlayerGUID)) { DoScriptText(SAY_GIVEUP, m_creature, pPlayer); pPlayer->GroupEventHappens(QUEST_WHAT_BOOK, m_creature); } SetRuffies(m_uiCreepjackGUID,false,true); SetRuffies(m_uiMaloneGUID,false,true); EnterEvadeMode(); } }
void DamageTaken(Unit* /*pDoneBy*/, uint32& uiDamage) override { if (uiDamage < m_creature->GetHealth()) return; // damage will kill, this is pretty much the same as 1%HP left if (bEvent) { uiDamage = 0; if (Player* pPlayer = m_creature->GetMap()->GetPlayer(m_playerGuid)) { DoScriptText(SAY_GIVEUP, m_creature, pPlayer); pPlayer->GroupEventHappens(QUEST_WHAT_BOOK, m_creature); } SetRuffies(m_creepjackGuid, false, true); SetRuffies(m_maloneGuid, false, true); EnterEvadeMode(); } }
uint32 NextStep(uint32 uiStep) { Player* pPlayer = m_creature->GetMap()->GetPlayer(m_uiPlayerGUID); if (!pPlayer) { SetRuffies(m_uiCreepjackGUID,false,true); SetRuffies(m_uiMaloneGUID,false,true); EnterEvadeMode(); return 0; } switch(uiStep) { case 1: DoScriptText(SAY_START, m_creature, pPlayer); SetRuffies(m_uiCreepjackGUID,false,false); SetRuffies(m_uiMaloneGUID,false,false); return 3000; case 2: DoScriptText(SAY_COUNT, m_creature, pPlayer); return 5000; case 3: DoScriptText(SAY_COUNT_1, m_creature, pPlayer); return 3000; case 4: DoScriptText(SAY_COUNT_2, m_creature, pPlayer); return 3000; case 5: DoScriptText(SAY_ATTACK, m_creature, pPlayer); return 3000; case 6: if (!m_creature->isInCombat() && pPlayer->isAlive()) AttackStart(pPlayer); SetRuffies(m_uiCreepjackGUID,true,false); SetRuffies(m_uiMaloneGUID,true,false); bActiveAttack = true; return 2000; default: return 0; } }
uint32 NextStep(uint32 uiStep) { Unit* pUnit = Unit::GetUnit(*m_creature, m_uiPlayerGUID); if (!pUnit || pUnit->GetTypeId() != TYPEID_PLAYER) { SetRuffies(m_uiCreepjackGUID,false,true); SetRuffies(m_uiMaloneGUID,false,true); EnterEvadeMode(); return 0; } switch(uiStep) { case 1: DoScriptText(SAY_START, m_creature, pUnit); SetRuffies(m_uiCreepjackGUID,false,false); SetRuffies(m_uiMaloneGUID,false,false); return 3000; case 2: DoScriptText(SAY_COUNT, m_creature, pUnit); return 5000; case 3: DoScriptText(SAY_COUNT_1, m_creature, pUnit); return 3000; case 4: DoScriptText(SAY_COUNT_2, m_creature, pUnit); return 3000; case 5: DoScriptText(SAY_ATTACK, m_creature, pUnit); return 3000; case 6: if (!m_creature->isInCombat() && pUnit->isAlive()) AttackStart(pUnit); SetRuffies(m_uiCreepjackGUID,true,false); SetRuffies(m_uiMaloneGUID,true,false); bActiveAttack = true; return 2000; default: return 0; } }