本文整理汇总了C++中DoUnmount函数的典型用法代码示例。如果您正苦于以下问题:C++ DoUnmount函数的具体用法?C++ DoUnmount怎么用?C++ DoUnmount使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了DoUnmount函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Reset
void Reset()
{
LowHp = false;
if (HadMount)
DoMount();
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
DoUnmount();
HadMount = false;
SetEquipmentSlots(true);
m_creature->SetDisplayId(THRALL_MODEL_UNEQUIPPED);
}
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
switch(urand(0, 2))
{
case 0:
DoScriptText(SAY_TH_LEAVE_COMBAT1, m_creature);
break;
case 1:
DoScriptText(SAY_TH_LEAVE_COMBAT2, m_creature);
break;
case 2:
DoScriptText(SAY_TH_LEAVE_COMBAT3, m_creature);
break;
}
}
}
示例2: EnterCombat
void EnterCombat(Unit* /*who*/)
{
DoScriptText(RAND(SAY_TH_RANDOM_AGGRO1, SAY_TH_RANDOM_AGGRO2, SAY_TH_RANDOM_AGGRO3, SAY_TH_RANDOM_AGGRO4), me);
if (me->IsMounted())
{
DoUnmount();
HadMount = true;
}
}
示例3: EnterCombat
void EnterCombat(Unit* /*who*/)
{
Talk(SAY_TH_RANDOM_AGGRO);
if (me->IsMounted())
{
DoUnmount();
HadMount = true;
}
}
示例4: Reset
void Reset()
{
DoUnmount();
HadMount = false;
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+1, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY+1, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+2, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+3, 0);
me->SetDisplayId(THRALL_MODEL_UNEQUIPPED);
}
示例5: Reset
void Reset()
{
LowHp = false;
Event = false;
MountGUID = 0;
ArmorerGUID = 0;
ImageGUID = 0;
EpochGUID = 0;
TarethaGUID = pInstance->GetData64(DATA_TARETHA);
Steps = 0;
StepsTimer = 0;
EmoteTimer = 0;
Part = 0;
StrikeTimer = urand(3000, 7000);
ShieldBlockTimer = urand(6000, 11000);
if (HadMount)
DoMount();
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
DoUnmount();
HadMount = false;
}
else
DoScriptText(RAND(SAY_TH_LEAVE_COMBAT1, SAY_TH_LEAVE_COMBAT2, SAY_TH_LEAVE_COMBAT3), me);
if (pInstance && pInstance->GetData(TYPE_THRALL_PART1) == NOT_STARTED)
{
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+1, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY+1, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+2, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+3, 0);
me->SetUInt32Value(UNIT_FIELD_DISPLAYID, THRALL_MODEL_UNEQUIPPED);
}
else
{
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY, THRALL_WEAPON_MODEL);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, THRALL_WEAPON_INFO);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+1, 781);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY+1, THRALL_SHIELD_MODEL);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+2, THRALL_SHIELD_INFO);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+3, 1038);
me->SetUInt32Value(UNIT_FIELD_DISPLAYID, THRALL_MODEL_EQUIPPED);
}
}
示例6: Reset
void Reset()
{
m_bIsLowHp = false;
if (m_bHadMount)
DoMount();
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
DoUnmount();
m_bHadMount = false;
SetEquipmentSlots(true);
m_creature->SetDisplayId(MODEL_THRALL_UNEQUIPPED);
}
}
示例7: Aggro
void Aggro(Unit* pWho)
{
switch(urand(0, 3))
{
case 0: DoScriptText(SAY_TH_RANDOM_AGGRO1, m_creature); break;
case 1: DoScriptText(SAY_TH_RANDOM_AGGRO2, m_creature); break;
case 2: DoScriptText(SAY_TH_RANDOM_AGGRO3, m_creature); break;
case 3: DoScriptText(SAY_TH_RANDOM_AGGRO4, m_creature); break;
}
if (m_creature->IsMounted())
{
DoUnmount();
m_bHadMount = true;
}
}
示例8: EnterCombat
void EnterCombat(Unit* who)
{
switch (rand()%10)
{
case 1: DoScriptText(SAY_TH_RANDOM_AGGRO1, me); break;
case 2: DoScriptText(SAY_TH_RANDOM_AGGRO2, me); break;
case 3: DoScriptText(SAY_TH_RANDOM_AGGRO3, me); break;
case 4: DoScriptText(SAY_TH_RANDOM_AGGRO4, me); break;
default:
break;
}
if (me->IsMounted())
{
DoUnmount();
HadMount = true;
}
}
示例9: Reset
void Reset() {
LowHp = false;
if (HadMount)
DoMount();
if (!HasEscortState(STATE_ESCORT_ESCORTING)) {
DoUnmount();
HadMount = false;
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 0);
me->SetDisplayId(THRALL_MODEL_UNEQUIPPED);
}
if (HasEscortState(STATE_ESCORT_ESCORTING)) {
DoScriptText(
RAND(SAY_TH_LEAVE_COMBAT1, SAY_TH_LEAVE_COMBAT2,
SAY_TH_LEAVE_COMBAT3), me);
}
}
示例10: Reset
void Reset() override
{
Initialize();
if (HadMount)
DoMount();
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
DoUnmount();
HadMount = false;
me->SetVirtualItem(0, 0);
me->SetVirtualItem(1, 0);
me->SetDisplayId(THRALL_MODEL_UNEQUIPPED);
}
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
Talk(SAY_TH_LEAVE_COMBAT);
}
}
示例11: Reset
void Reset() override
{
LowHp = false;
if (HadMount)
DoMount();
if (!HasEscortState(STATE_ESCORT_ESCORTING))
{
DoUnmount();
HadMount = false;
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0);
me->SetDisplayId(THRALL_MODEL_UNEQUIPPED);
}
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
Talk(SAY_TH_LEAVE_COMBAT);
}
}
示例12: JustRespawned
void JustRespawned()
{
if (!m_pInstance)
return;
Reset();
if (m_pInstance->GetData(TYPE_THRALL_EVENT) == IN_PROGRESS)
{
SetEscortPaused(true);
m_bHadMount = false;
DoUnmount();
m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
// check current states before fail and set spesific for the part
if (m_pInstance->GetData(TYPE_THRALL_PART1) == IN_PROGRESS)
{
SetCurrentWaypoint(1); // basement
SetEquipmentSlots(true);
m_creature->SetDisplayId(MODEL_THRALL_UNEQUIPPED);
m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}
else if (m_pInstance->GetData(TYPE_THRALL_PART2) == IN_PROGRESS)
{
SetCurrentWaypoint(61); // barn
m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
}
else if (m_pInstance->GetData(TYPE_THRALL_PART3) == IN_PROGRESS || m_pInstance->GetData(TYPE_THRALL_PART4) == IN_PROGRESS)
SetCurrentWaypoint(96); // inn
// fail, and relocation handled in instance script
m_pInstance->SetData(TYPE_THRALL_EVENT, FAIL);
}
}
示例13: WaypointReached
void WaypointReached(uint32 i)
{
if (!pInstance)
return;
switch (i)
{
case 8:
SetRun(false);
me->SummonCreature(18764, 2181.87f, 112.46f, 89.45f, 0.26f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 9:
DoScriptText(SAY_TH_ARMORY, me);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, THRALL_WEAPON_MODEL);
//me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, THRALL_WEAPON_INFO);
//me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+1, 781);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, THRALL_SHIELD_MODEL);
//me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+2, THRALL_SHIELD_INFO);
//me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+3, 1038);
break;
case 10:
me->SetDisplayId(THRALL_MODEL_EQUIPPED);
break;
case 11:
SetRun();
break;
case 15:
me->SummonCreature(MOB_ENTRY_RIFLE, 2200.28f, 137.37f, 87.93f, 5.07f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_WARDEN, 2197.44f, 131.83f, 87.93f, 0.78f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2203.62f, 135.40f, 87.93f, 3.70f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2200.75f, 130.13f, 87.93f, 1.48f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 21:
me->SummonCreature(MOB_ENTRY_RIFLE, 2135.80f, 154.01f, 67.45f, 4.98f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_WARDEN, 2144.36f, 151.87f, 67.74f, 4.46f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2142.12f, 154.41f, 67.12f, 4.56f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2138.08f, 155.38f, 67.24f, 4.60f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 25:
me->SummonCreature(MOB_ENTRY_RIFLE, 2102.98f, 192.17f, 65.24f, 6.02f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_WARDEN, 2108.48f, 198.75f, 65.18f, 5.15f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2106.11f, 197.29f, 65.18f, 5.63f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2104.18f, 194.82f, 65.18f, 5.75f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 29:
DoScriptText(SAY_TH_SKARLOC_MEET, me);
me->SummonCreature(ENTRY_SCARLOC, 2036.48f, 271.22f, 63.43f, 5.27f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
//temporary, skarloc should rather be triggered to walk up to thrall
break;
case 30:
SetEscortPaused(true);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
SetRun(false);
break;
case 31:
DoScriptText(SAY_TH_MOUNTS_UP, me);
DoMount();
SetRun();
break;
case 37:
//possibly regular patrollers? If so, remove this and let database handle them
me->SummonCreature(MOB_ENTRY_WATCHMAN, 2124.26f, 522.16f, 56.87f, 3.99f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_WATCHMAN, 2121.69f, 525.37f, 57.11f, 4.01f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_SENTRY, 2124.65f, 524.55f, 56.63f, 3.98f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 59:
me->SummonCreature(SKARLOC_MOUNT, 2488.64f, 625.77f, 58.26f, 4.71f, TEMPSUMMON_TIMED_DESPAWN, 10000);
DoUnmount();
HadMount = false;
SetRun(false);
break;
case 60:
me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
//make horsie run off
SetEscortPaused(true);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
pInstance->SetData(TYPE_THRALL_PART2, DONE);
SetRun();
break;
case 64:
SetRun(false);
break;
case 68:
me->SummonCreature(MOB_ENTRY_BARN_PROTECTOR, 2500.22f, 692.60f, 55.50f, 2.84f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_BARN_LOOKOUT, 2500.13f, 696.55f, 55.51f, 3.38f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_BARN_GUARDSMAN, 2500.55f, 693.64f, 55.50f, 3.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_BARN_GUARDSMAN, 2500.94f, 695.81f, 55.50f, 3.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 71:
SetRun();
break;
case 81:
SetRun(false);
break;
case 83:
me->SummonCreature(MOB_ENTRY_CHURCH_PROTECTOR, 2627.33f, 646.82f, 56.03f, 4.28f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
me->SummonCreature(MOB_ENTRY_CHURCH_LOOKOUT, 2624.14f, 648.03f, 56.03f, 4.50f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
me->SummonCreature(MOB_ENTRY_CHURCH_GUARDSMAN, 2625.32f, 649.60f, 56.03f, 4.38f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
me->SummonCreature(MOB_ENTRY_CHURCH_GUARDSMAN, 2627.22f, 649.00f, 56.03f, 4.34f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
break;
//.........这里部分代码省略.........
示例14: WaypointReached
void WaypointReached(uint32 i)
{
switch (Part)
{
case 1:
switch (i)
{
case 0:
if (GameObject* door = FindGameObject(GO_PRISON_DOOR, INTERACTION_DISTANCE, me))
door->UseDoorOrButton(6);
break;
case 7:
if (Creature* Armorer = me->SummonCreature(NPC_ARMORER, 2180.95f, 119.19f, 89.456f, 5.692f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 35000))
DoScriptText(SAY_ARMORER_CALL_GUARDS, Armorer);
break;
case 8:
SetRun(false);
break;
case 9:
DoScriptText(SAY_TH_KILL_ARMORER, me);
DoCast(me, SPELL_KNOCKOUT_ARMORER);
if (Creature* Armorer = me->GetMap()->GetCreature(ArmorerGUID))
Armorer->setDeathState(JUST_DIED);
break;
case 10:
DoScriptText(SAY_TH_ARMORY, me);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
break;
case 11:
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY, THRALL_WEAPON_MODEL);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, THRALL_WEAPON_INFO);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+1, 781);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY+1, THRALL_SHIELD_MODEL);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+2, THRALL_SHIELD_INFO);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+3, 1038);
me->SetUInt32Value(UNIT_FIELD_DISPLAYID, THRALL_MODEL_EQUIPPED);
me->SetStandState(UNIT_STAND_STATE_STAND);
SetRun();
break;
case 12:
if (Player* player = GetPlayerForEscort())
me->SetFacingToObject(player);
DoScriptText(SAY_TH_ARMORY_2, me);
break;
case 17:
me->SummonCreature(NPC_MAGE, 2186.909f, 139.8108f, 88.21628f, 5.75f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_WARDEN, 2187.943f, 141.6124f, 88.21628f, 5.73f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_VETERAN, 2190.508f, 140.4597f, 88.21628f, 6.04f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_VETERAN, 2189.543f, 139.0996f, 88.23965f, 0.21f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 20:
me->SummonCreature(NPC_MAGE, 2149.463f, 104.9756f, 73.63239f, 1.71f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_SENTRY, 2147.642f, 105.0251f, 73.99422f, 1.52f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_VETERAN, 2149.212f, 107.2005f, 74.15676f, 1.71f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_WARDEN, 2147.328f, 106.7235f, 74.34447f, 1.69f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 23:
me->SummonCreature(NPC_MAGE, 2142.363f, 172.4260f, 66.30494f, 2.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_SENTRY, 2138.177f, 168.6046f, 66.30494f, 2.47f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_SENTRY, 2142.372f, 174.2907f, 66.30494f, 2.56f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_VETERAN, 2140.146f, 169.2364f, 66.30494f, 2.49f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 25:
me->SummonCreature(NPC_MAGE, 2107.938f, 192.0753f, 66.30494f, 2.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_MAGE, 2109.852f, 195.1403f, 66.30493f, 2.42f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_VETERAN, 2108.486f, 189.9346f, 66.30494f, 2.68f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(NPC_VETERAN, 2112.387f, 195.4947f, 66.30494f, 2.39f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 31:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_POINT);
EmoteTimer = 2000;
me->SetFacingTo(2.18f);
me->SummonCreature(NPC_SKARLOC, 2000.201f, 277.9190f, 66.4911f, 6.11f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000);
DoScriptText(SAY_TH_SKARLOC_MEET, me);
break;
case 33:
me->SetFacingTo(2.18f);
DoScriptText(SAY_THRALL_END_P1, me);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
break;
}
break;
case 2:
switch (i)
{
case 1:
DoScriptText(SAY_TH_MOUNTS_UP, me);
DoMount();
if (Creature* mount = me->GetCreature(me->GetMap()->GetCreatureGUID(NPC_SKARLOC_MOUNT)))
mount->ForcedDespawn();
SetRun();
break;
case 29:
me->SummonCreature(NPC_SKARLOC_MOUNT, 2488.64f, 625.77f, 58.26, 4.71f,TEMPSUMMON_TIMED_DESPAWN,10000);
DoUnmount();
HadMount = false;
SetRun(false);
break;
case 30:
if (Creature* mount = me->GetMap()->GetCreature(MountGUID))
//.........这里部分代码省略.........
示例15: WaypointReached
void WaypointReached(uint32 i)
{
if (!pInstance)
return;
switch (i)
{
case 0:
DoScriptText(SAY_TH_START_EVENT_PART1, me);
break;
case 9:
SetRun(false);
me->HandleEmoteCommand(EMOTE_ONESHOT_ATTACKUNARMED);
if (Creature* armorer = me->FindNearestCreature(ENTRY_ARMORER, 2.0f))
{
me->Kill(armorer, false);
me->Say("That's enough out of him.", 0, 0);
}
break;
case 10:
me->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
DoScriptText(SAY_TH_ARMORY, me);
break;
case 11:
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY, THRALL_WEAPON_MODEL);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, THRALL_WEAPON_INFO);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+1, 781);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY+1, THRALL_SHIELD_MODEL);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+2, THRALL_SHIELD_INFO);
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+3, 1038);
me->SetDisplayId(THRALL_MODEL_EQUIPPED);
me->Say("Let's go.", 0, 0);
break;
case 12:
SetRun();
break;
case 16:
me->SummonCreature(MOB_ENTRY_RIFLE, 2200.28f, 137.37f, 87.93f, 5.07f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_WARDEN, 2197.44f, 131.83f, 87.93f, 0.78f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2203.62f, 135.40f, 87.93f, 3.70f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2200.75f, 130.13f, 87.93f, 1.48f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 22:
me->SummonCreature(MOB_ENTRY_RIFLE, 2135.80f, 154.01f, 67.45f, 4.98f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_WARDEN, 2144.36f, 151.87f, 67.74f, 4.46f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2142.12f, 154.41f, 67.12f, 4.56f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2138.08f, 155.38f, 67.24f, 4.60f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 26:
me->SummonCreature(MOB_ENTRY_RIFLE, 2102.98f, 192.17f, 65.24f, 6.02f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_WARDEN, 2108.48f, 198.75f, 65.18f, 5.15f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2106.11f, 197.29f, 65.18f, 5.63f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
me->SummonCreature(MOB_ENTRY_VETERAN, 2104.18f, 194.82f, 65.18f, 5.75f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
break;
case 30:
DoScriptText(SAY_TH_SKARLOC_MEET, me);
if (Creature* Skarloc = me->SummonCreature(ENTRY_SCARLOC, 2036.48f, 271.22f, 63.43f, 5.27f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000))
Skarloc->GetMotionMaster()->MovePoint(0, 2067.84f, 224.376f, 64.8022f);
me->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
break;
case 31:
SetEscortPaused(true);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
SetRun(false);
break;
case 32:
DoScriptText(SAY_TH_MOUNTS_UP, me);
DoMount();
SetRun();
break;
case 60:
me->SummonCreature(SKARLOC_MOUNT, 2490.08f, 627.695f, 58.539f, 1.161f, TEMPSUMMON_TIMED_DESPAWN, 9000);
DoUnmount();
HadMount = false;
SetRun(false);
break;
case 61:
me->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
//make horsie run off
if (Creature* horse = me->FindNearestCreature(SKARLOC_MOUNT, 2.0f))
horse->GetMotionMaster()->MovePoint(0, 2498.437f, 576.647f, 55.8595f);
SetEscortPaused(true);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
pInstance->SetData(TYPE_THRALL_PART2, DONE);
SetRun();
break;
case 65:
SetRun(false);
break;
case 69:
me->SummonCreature(MOB_ENTRY_CHURCH_PROTECTOR, 2500.22f, 692.60f, 55.50f, 2.84f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000);
me->SummonCreature(MOB_ENTRY_CHURCH_LOOKOUT, 2500.13f, 696.55f, 55.51f, 3.38f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000);
me->SummonCreature(MOB_ENTRY_CHURCH_GUARDSMAN, 2500.55f, 693.64f, 55.50f, 3.14f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000);
me->SummonCreature(MOB_ENTRY_CHURCH_GUARDSMAN, 2500.94f, 695.81f, 55.50f, 3.14f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 30000);
break;
case 70:
me->Say("Taretha isn't here. Let's head into town.", 0, 0);
break;
case 72:
SetRun();
//.........这里部分代码省略.........