这篇教程C++ GetPlayerForEscort函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetPlayerForEscort函数的典型用法代码示例。如果您正苦于以下问题:C++ GetPlayerForEscort函数的具体用法?C++ GetPlayerForEscort怎么用?C++ GetPlayerForEscort使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetPlayerForEscort函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: JustDied void JustDied(Unit* /*pKiller*/) { Player* pPlayer = GetPlayerForEscort(); if (pPlayer) pPlayer->FailQuest(QUEST_RETURN_TO_VAHLARRIEL); return; }
开发者ID:FrenchCORE,项目名称:Server,代码行数:6,
示例2: JustDied void JustDied(Unit* /*killer*/) { if (Player* player = GetPlayerForEscort()) player->FailQuest(QUEST_TRAIL_OF_FIRE); }
开发者ID:Bulbucan,项目名称:TrinityCore,代码行数:5,
示例3: JustDied void JustDied(Unit* /*killer*/) { if (Player* player = GetPlayerForEscort()) player->FailQuest(QUEST_MARK_V_IS_ALIVE); }
开发者ID:BooYoods,项目名称:TrinityCore,代码行数:5,
示例4: WaypointReached void WaypointReached(uint32 i) { Player* pPlayer = GetPlayerForEscort(); if (!pPlayer) return; switch (i) { case 9: if (Creature *Mrfloppy = GetClosestCreatureWithEntry(me, NPC_MRFLOPPY, 100.0f)) MrfloppyGUID = Mrfloppy->GetGUID(); break; case 10: if (Unit::GetCreature(*me, MrfloppyGUID)) { DoScriptText(SAY_WORGHAGGRO1, me); me->SummonCreature(NPC_HUNGRY_WORG,me->GetPositionX()+5,me->GetPositionY()+2,me->GetPositionZ()+1,3.229f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,120000); } break; case 11: if (Creature *Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID)) Mrfloppy->GetMotionMaster()->MoveFollow(me, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); break; case 17: if (Creature *Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID)) Mrfloppy->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()); DoScriptText(SAY_WORGRAGGRO3, me); if (Creature *RWORG = me->SummonCreature(NPC_RAVENOUS_WORG,me->GetPositionX()+10,me->GetPositionY()+8,me->GetPositionZ()+2,3.229f,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,120000)) { RWORG->setFaction(35); RWORGGUID = RWORG->GetGUID(); } break; case 18: if (Creature *Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID)) { if (Creature *RWORG = Unit::GetCreature(*me, RWORGGUID)) RWORG->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ()); DoCast(Mrfloppy,SPELL_MRFLOPPY); } break; case 19: if (Creature *Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID)) { if (Mrfloppy->HasAura(SPELL_MRFLOPPY, 0)) { if (Creature *RWORG = Unit::GetCreature(*me, RWORGGUID)) Mrfloppy->EnterVehicle(RWORG); } } break; case 20: if (Creature *RWORG = Unit::GetCreature(*me, RWORGGUID)) RWORG->HandleEmoteCommand(34); break; case 21: if (Creature *Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID)) { if (Creature *RWORG = Unit::GetCreature(*me, RWORGGUID)) { RWORG->Kill(Mrfloppy); Mrfloppy->ExitVehicle(); RWORG->setFaction(14); RWORG->GetMotionMaster()->MovePoint(0, RWORG->GetPositionX()+10,RWORG->GetPositionY()+80,RWORG->GetPositionZ()); DoScriptText(SAY_VICTORY2, me); } } break; case 22: if (Creature *Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID)) { if (Mrfloppy->isDead()) { if (Creature *RWORG = Unit::GetCreature(*me, RWORGGUID)) RWORG->DisappearAndDie(); me->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ()); Mrfloppy->setDeathState(ALIVE); Mrfloppy->GetMotionMaster()->MoveFollow(me, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); DoScriptText(SAY_VICTORY3, me); } } break; case 24: if (pPlayer) { Completed = true; pPlayer->GroupEventHappens(QUEST_PERILOUS_ADVENTURE, me); DoScriptText(SAY_QUEST_COMPLETE, me, pPlayer); } me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING); break; case 25: DoScriptText(SAY_VICTORY4, me); break; case 27: me->DisappearAndDie(); if (Creature *Mrfloppy = Unit::GetCreature(*me, MrfloppyGUID)) Mrfloppy->DisappearAndDie(); break; } }
开发者ID:ag3nt-amestris,项目名称:TrinityCore,代码行数:100,
示例5: WaypointReached void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { Player* player = GetPlayerForEscort(); if (!player) return; switch (waypointId) { case WP_START: SetEscortPaused(true); me->SetFacingToObject(player); Talk(SAY_LEGOSO_1); _moveTimer = 2.5 * IN_MILLISECONDS; _phase = PHASE_CONTINUE; break; case WP_EXPLOSIVES_FIRST_POINT: SetEscortPaused(true); Talk(SAY_LEGOSO_2); _moveTimer = 8 * IN_MILLISECONDS; _phase = PHASE_WP_22; break; case WP_EXPLOSIVES_FIRST_PLANT: me->SetFacingTo(1.46f); break; case WP_EXPLOSIVES_FIRST_DETONATE: SetEscortPaused(true); me->SetFacingTo(1.05f); _moveTimer = 1 * IN_MILLISECONDS; _phase = PHASE_PLANT_FIRST_TIMER_1; break; case WP_DEBUG_1: SetEscortPaused(true); _moveTimer = 0.5 * IN_MILLISECONDS; _phase = PHASE_WP_26; break; case WP_SIRONAS_HILL: { SetEscortPaused(true); //Find Sironas and make it respawn if needed Creature* sironas = nullptr; Trinity::AllCreaturesOfEntryInRange check(me, NPC_SIRONAS, SIZE_OF_GRIDS); Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, sironas, check); Cell::VisitAllObjects(me, searcher, SIZE_OF_GRIDS); if (sironas) { if (!sironas->IsAlive()) sironas->Respawn(true); sironas->AI()->DoAction(ACTION_SIRONAS_CHANNEL_START); me->SetFacingToObject(sironas); } _moveTimer = 1 * IN_MILLISECONDS; _phase = PHASE_FEEL_SIRONAS_1; break; } case WP_EXPLOSIVES_SECOND_BATTLEROAR: SetEscortPaused(true); _moveTimer = 0.2 * IN_MILLISECONDS; _phase = PHASE_MEET_SIRONAS_ROAR; break; case WP_EXPLOSIVES_SECOND_PLANT: SetEscortPaused(true); _moveTimer = 0.5 * IN_MILLISECONDS; _phase = PHASE_PLANT_SECOND_KNEEL; break; case WP_EXPLOSIVES_SECOND_DETONATE: SetEscortPaused(true); me->SetFacingTo(5.7f); _moveTimer = 2 * IN_MILLISECONDS; _phase = PHASE_PLANT_SECOND_TIMER_1; break; default: break; } }
开发者ID:lasyan3,项目名称:TrinityCore,代码行数:77,
示例6: JustDied void JustDied(Unit* /*killer*/) { Player* player = GetPlayerForEscort(); if (player) player->FailQuest(QUEST_TOMB_LIGHTBRINGER); }
开发者ID:A-Shox,项目名称:TrinityCore,代码行数:6,
示例7: JustDied void JustDied(Unit* /*killer*/) { if (Player* player = GetPlayerForEscort()) player->FailQuest(QUEST_CHASING_AME); }
开发者ID:A-Shox,项目名称:TrinityCore,代码行数:5,
示例8: UpdateEscortAI void UpdateEscortAI(const uint32 uiDiff) { if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) { if (!HasEscortState(STATE_ESCORT_ESCORTING)) return; if (HasEscortState(STATE_ESCORT_PAUSED)) { if (m_uiExplodeTimer < uiDiff) { if (m_bFirstBarrel) { switch(m_uiExplodePhase) { case 0: DoCastSpellIfCan(m_creature, SPELL_DETONATE_EXPLOSIVES_1); if (Player* pPlayer = GetPlayerForEscort()) DoScriptText(SAY_HELICE_EXPLODE_1, m_creature, pPlayer); m_uiExplodeTimer = 2500; ++m_uiExplodePhase; break; case 1: if (Player* pPlayer = GetPlayerForEscort()) DoScriptText(SAY_HELICE_MOVE_ON, m_creature, pPlayer); m_uiExplodeTimer = 2500; ++m_uiExplodePhase; break; case 2: SetEscortPaused(false); m_uiExplodePhase = 0; m_uiExplodeTimer = 5000; m_bFirstBarrel = false; break; } } else { switch(m_uiExplodePhase) { case 0: DoCastSpellIfCan(m_creature, SPELL_DETONATE_EXPLOSIVES_2); if (Player* pPlayer = GetPlayerForEscort()) DoScriptText(SAY_HELICE_EXPLODE_2, m_creature, pPlayer); m_uiExplodeTimer = 2500; ++m_uiExplodePhase; break; case 1: SetEscortPaused(false); m_uiExplodePhase = 0; m_uiExplodeTimer = 5000; m_bFirstBarrel = true; break; } } } else m_uiExplodeTimer -= uiDiff; } return; } DoMeleeAttackIfReady(); }
开发者ID:Shutok,项目名称:StrawberryCore-501Beta,代码行数:70,
示例9: JustDied void JustDied(Unit* /*killer*/) { if (Player* player = GetPlayerForEscort()) CAST_PLR(player)->FailQuest(QUEST_WILLIX_THE_IMPORTER); }
开发者ID:AlmasServer,项目名称:TrinityCore,代码行数:5,
示例10: JustSummoned void JustSummoned(Creature* pSummoned) override { // Note: may not work on guardian pets if (Player* pPlayer = GetPlayerForEscort()) pSummoned->AI()->AttackStart(pPlayer); }
开发者ID:520lly,项目名称:mangos-classic,代码行数:6,
示例11: WaypointReached void WaypointReached(uint32 i) { Player *pPlayer = GetPlayerForEscort(); if (!pPlayer) return; switch (i) { case 0: DoScriptText(WHISPER_CUSTODIAN_1, me, pPlayer); break; case 1: DoScriptText(WHISPER_CUSTODIAN_2, me, pPlayer); break; case 2: DoScriptText(WHISPER_CUSTODIAN_3, me, pPlayer); break; case 3: DoScriptText(WHISPER_CUSTODIAN_4, me, pPlayer); break; case 5: DoScriptText(WHISPER_CUSTODIAN_5, me, pPlayer); break; case 6: DoScriptText(WHISPER_CUSTODIAN_6, me, pPlayer); break; case 7: DoScriptText(WHISPER_CUSTODIAN_7, me, pPlayer); break; case 8: DoScriptText(WHISPER_CUSTODIAN_8, me, pPlayer); break; case 9: DoScriptText(WHISPER_CUSTODIAN_9, me, pPlayer); break; case 10: DoScriptText(WHISPER_CUSTODIAN_4, me, pPlayer); break; case 13: DoScriptText(WHISPER_CUSTODIAN_10, me, pPlayer); break; case 14: DoScriptText(WHISPER_CUSTODIAN_4, me, pPlayer); break; case 16: DoScriptText(WHISPER_CUSTODIAN_11, me, pPlayer); break; case 17: DoScriptText(WHISPER_CUSTODIAN_12, me, pPlayer); break; case 18: DoScriptText(WHISPER_CUSTODIAN_4, me, pPlayer); break; case 22: DoScriptText(WHISPER_CUSTODIAN_13, me, pPlayer); break; case 23: DoScriptText(WHISPER_CUSTODIAN_4, me, pPlayer); break; case 24: DoScriptText(WHISPER_CUSTODIAN_14, me, pPlayer); DoCast(pPlayer, 34883); // below here is temporary workaround, to be removed when spell works properly pPlayer->AreaExploredOrEventHappens(10277); break; } }
开发者ID:814077430,项目名称:ArkCORE,代码行数:65,
示例12: JustDidDialogueStep void JustDidDialogueStep(int32 entry) { switch (entry) { case NPC_RANSHALLA: // Start the altar channeling DoChannelTorchSpell(true); break; case SAY_RANSHALLA_ALTAR_6: SetEscortPaused(false); break; case SAY_PRIESTESS_ALTAR_8: // make the gem respawn if (GameObject* gem = GetClosestGameObjectWithEntry(me, GO_ELUNE_GEM, 10.0f)) { if (gem->isSpawned()) break; gem->SetRespawnTime(90); gem->Refresh(); } break; case SAY_PRIESTESS_ALTAR_9: // move near the escort npc if (Creature* priestess = me->GetMap()->GetCreature(_firstPriestessGUID)) priestess->GetMotionMaster()->MovePoint(0, wingThicketLocations[6].m_positionX, wingThicketLocations[6].m_positionY, wingThicketLocations[6].m_positionZ); break; case SAY_PRIESTESS_ALTAR_13: // summon the Guardian of Elune if (Creature* guard = me->SummonCreature(NPC_GUARDIAN_ELUNE, wingThicketLocations[2].m_positionX, wingThicketLocations[2].m_positionY, wingThicketLocations[2].m_positionZ, wingThicketLocations[2].m_orientation, TEMPSUMMON_CORPSE_DESPAWN, 0)) { guard->GetMotionMaster()->MovePoint(0, wingThicketLocations[5].m_positionX, wingThicketLocations[5].m_positionY, wingThicketLocations[5].m_positionZ); _guardEluneGUID = guard->GetGUID(); } // summon the Voice of Elune if (GameObject* altar = me->GetMap()->GetGameObject(_altarGUID)) { if (Creature* voice = me->SummonCreature(NPC_VOICE_ELUNE, altar->GetPositionX(), altar->GetPositionY(), altar->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000)) _voiceEluneGUID = voice->GetGUID(); } break; case SAY_VOICE_ALTAR_15: // move near the escort npc and continue dialogue if (Creature* priestess = me->GetMap()->GetCreature(_secondPriestessGUID)) { priestess->AI()->Talk(SAY_PRIESTESS_ALTAR_14); priestess->GetMotionMaster()->MovePoint(0, wingThicketLocations[7].m_positionX, wingThicketLocations[7].m_positionY, wingThicketLocations[7].m_positionZ); } break; case SAY_PRIESTESS_ALTAR_19: // make the voice of elune leave if (Creature* guard = me->GetMap()->GetCreature(_guardEluneGUID)) { guard->GetMotionMaster()->MovePoint(0, wingThicketLocations[2].m_positionX, wingThicketLocations[2].m_positionY, wingThicketLocations[2].m_positionZ); guard->DespawnOrUnsummon(4000); } break; case SAY_PRIESTESS_ALTAR_20: // make the first priestess leave if (Creature* priestess = me->GetMap()->GetCreature(_firstPriestessGUID)) { priestess->GetMotionMaster()->MovePoint(0, wingThicketLocations[0].m_positionX, wingThicketLocations[0].m_positionY, wingThicketLocations[0].m_positionZ); priestess->DespawnOrUnsummon(4000); } break; case SAY_PRIESTESS_ALTAR_21: // make the second priestess leave if (Creature* priestess = me->GetMap()->GetCreature(_secondPriestessGUID)) { priestess->GetMotionMaster()->MovePoint(0, wingThicketLocations[1].m_positionX, wingThicketLocations[1].m_positionY, wingThicketLocations[1].m_positionZ); priestess->DespawnOrUnsummon(4000); } break; case DATA_EVENT_END: // Turn towards the player if (Player* player = GetPlayerForEscort()) { me->SetFacingToObject(player); Talk(SAY_RANSHALLA_END_1, player->GetGUID()); } break; case SAY_RANSHALLA_END_2: // Turn towards the altar and kneel - quest complete if (GameObject* altar = me->GetMap()->GetGameObject(_altarGUID)) { me->SetFacingToObject(altar); altar->ResetDoorOrButton(); } me->SetStandState(UNIT_STAND_STATE_KNEEL); if (Player* player = GetPlayerForEscort()) { player->GroupEventHappens(QUEST_GUARDIANS_ALTAR, me); Talk(SAY_RANSHALLA_END_2, player->GetGUID()); } me->DespawnOrUnsummon(4000); break; } }
开发者ID:Angmon,项目名称:TrinityCore,代码行数:98,
示例13: WaypointReached void WaypointReached(uint32 i) { Player* pPlayer = GetPlayerForEscort(); if (!pPlayer) return; Creature* Godfrey = me->FindNearestCreature(NPC_GODFREY, 50, true); if (!Godfrey) return; switch (i) { case 1: DoScriptText(SAY_WP_1, me, Godfrey); me->SetUInt64Value(UNIT_FIELD_TARGET, Godfrey->GetGUID()); me->HandleEmoteCommand(5); me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); break; case 2: Godfrey->HandleEmoteCommand(434); DoScriptText(SAY_WP_2, me, Godfrey); me->HandleEmoteCommand(15); break; case 3: DoScriptText(SAY_WP_3, me, Godfrey); me->HandleEmoteCommand(1); break; case 4: DoScriptText(SAY_WP_4, Godfrey); break; case 5: DoScriptText(SAY_WP_5, Godfrey); break; case 6: DoScriptText(SAY_WP_6, Godfrey); break; case 7: DoScriptText(SAY_WP_7, me, Godfrey); me->HandleEmoteCommand(1); break; case 8: DoScriptText(SAY_WP_8, me, Godfrey); me->HandleEmoteCommand(16); break; case 9: DoScriptText(SAY_WP_9, me, Godfrey); me->HandleEmoteCommand(5); break; case 10: DoScriptText(SAY_WP_10, me, Godfrey); DoCast(Godfrey, SPELL_HOLY_FIRE); break; case 11: Godfrey->HandleEmoteCommand(434); DoScriptText(SAY_WP_11, Godfrey); break; case 12: DoScriptText(SAY_WP_12, me, Godfrey); DoCast(Godfrey, SPELL_HOLY_FIRE); break; case 13: DoScriptText(SAY_WP_13, me, Godfrey); DoCast(Godfrey, SPELL_HOLY_FIRE); break; case 14: Godfrey->HandleEmoteCommand(434); DoScriptText(SAY_WP_14, Godfrey); break; case 15: DoScriptText(SAY_WP_15, me, Godfrey); DoCast(Godfrey, SPELL_HOLY_FIRE); break; case 16: DoScriptText(SAY_WP_16, me, Godfrey); break; case 17: DoScriptText(SAY_WP_17, me, Godfrey); break; case 18: DoScriptText(SAY_WP_18, Godfrey); break; case 19: DoScriptText(SAY_WP_19, me, Godfrey); break; case 20: DoScriptText(SAY_WP_20, Godfrey); break; case 21: DoScriptText(SAY_WP_21, Godfrey); break; case 22: DoScriptText(SAY_WP_22, me, Godfrey); break; case 23: DoScriptText(SAY_WP_23, Godfrey); break; case 24: DoScriptText(SAY_WP_24, Godfrey); break; case 25: DoScriptText(SAY_WP_25, me, Godfrey);//.........这里部分代码省略.........
开发者ID:Drethek,项目名称:Darkpeninsula-Cata-Old,代码行数:101,
示例14: UpdateEscortAI void UpdateEscortAI(const uint32 uiDiff) override { if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) { if (HasEscortState(STATE_ESCORT_PAUSED)) { if (m_uiEventTimer < uiDiff) { m_uiEventTimer = 7000; switch (m_uiEventCount) { case 0: DoScriptText(SAY_LE_ALMOST, m_creature); break; case 1: DoScriptText(SAY_LE_DRUM, m_creature); break; case 2: if (Creature* pResearcher = GetAvailableResearcher(0)) DoScriptText(SAY_LE_DRUM_REPLY, pResearcher); break; case 3: DoScriptText(SAY_LE_DISCOVERY, m_creature); break; case 4: if (Creature* pResearcher = GetAvailableResearcher(0)) DoScriptText(SAY_LE_DISCOVERY_REPLY, pResearcher); break; case 5: DoScriptText(SAY_LE_NO_LEAVE, m_creature); break; case 6: if (Creature* pResearcher = GetAvailableResearcher(1)) DoScriptText(SAY_LE_NO_LEAVE_REPLY1, pResearcher); break; case 7: if (Creature* pResearcher = GetAvailableResearcher(2)) DoScriptText(SAY_LE_NO_LEAVE_REPLY2, pResearcher); break; case 8: if (Creature* pResearcher = GetAvailableResearcher(3)) DoScriptText(SAY_LE_NO_LEAVE_REPLY3, pResearcher); break; case 9: if (Creature* pResearcher = GetAvailableResearcher(4)) DoScriptText(SAY_LE_NO_LEAVE_REPLY4, pResearcher); break; case 10: DoScriptText(SAY_LE_SHUT, m_creature); break; case 11: if (Creature* pResearcher = GetAvailableResearcher(0)) DoScriptText(SAY_LE_REPLY_HEAR, pResearcher); break; case 12: DoScriptText(SAY_LE_IN_YOUR_FACE, m_creature); m_creature->SummonCreature(NPC_BONE_SIFTER, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_OOC_DESPAWN, 30000); break; case 13: DoScriptText(EMOTE_LE_PICK_UP, m_creature); if (Player* pPlayer = GetPlayerForEscort()) { DoScriptText(SAY_LE_THANKS, m_creature, pPlayer); pPlayer->GroupEventHappens(QUEST_DIGGING_BONES, m_creature); } SetEscortPaused(false); break; } ++m_uiEventCount; } else m_uiEventTimer -= uiDiff; } return; } DoMeleeAttackIfReady(); }
开发者ID:AwkwardDev,项目名称:mangos-d3,代码行数:83,
示例15: UpdateAI void UpdateAI(uint32 diff) override { _events.Update(diff); if (UpdateVictim()) { while (uint32 eventId = _events.ExecuteEvent()) { switch (eventId) { case EVENT_FROST_SHOCK: DoCastVictim(SPELL_FROST_SHOCK); _events.DelayEvents(1 * IN_MILLISECONDS); _events.ScheduleEvent(EVENT_FROST_SHOCK, 10s, 15s); break; case EVENT_SEARING_TOTEM: DoCast(me, SPELL_SEARING_TOTEM); _events.DelayEvents(1 * IN_MILLISECONDS); _events.ScheduleEvent(EVENT_SEARING_TOTEM, urand(110, 130) * IN_MILLISECONDS); break; case EVENT_STRENGTH_OF_EARTH_TOTEM: DoCast(me, SPELL_STRENGTH_OF_EARTH_TOTEM); _events.DelayEvents(1 * IN_MILLISECONDS); _events.ScheduleEvent(EVENT_STRENGTH_OF_EARTH_TOTEM, urand(110, 130) * IN_MILLISECONDS); break; case EVENT_HEALING_SURGE: { Unit* target = nullptr; if (me->GetHealthPct() < 85) target = me; else if (Player* player = GetPlayerForEscort()) if (player->GetHealthPct() < 85) target = player; if (target) { DoCast(target, SPELL_HEALING_SURGE); _events.ScheduleEvent(EVENT_HEALING_SURGE, 10s); } else _events.ScheduleEvent(EVENT_HEALING_SURGE, 2s); break; } default: break; } } DoMeleeAttackIfReady(); } if (HasEscortState(STATE_ESCORT_NONE)) return; EscortAI::UpdateAI(diff); if (_phase) { if (_moveTimer <= diff) { switch (_phase) { case PHASE_WP_26: //debug skip path to point 26, buggy path calculation me->GetMotionMaster()->MovePoint(WP_DEBUG_2, -2021.77f, -10648.8f, 129.903f, false); _moveTimer = 2 * IN_MILLISECONDS; _phase = PHASE_CONTINUE; break; case PHASE_CONTINUE: // continue escort SetEscortPaused(false); _moveTimer = 0 * IN_MILLISECONDS; _phase = PHASE_NONE; break; case PHASE_WP_22: //debug skip path to point 22, buggy path calculation me->GetMotionMaster()->MovePoint(WP_EXPLOSIVES_FIRST_PLANT, -1958.026f, -10660.465f, 111.547f, false); Talk(SAY_LEGOSO_3); _moveTimer = 2 * IN_MILLISECONDS; _phase = PHASE_PLANT_FIRST_KNEEL; break; case PHASE_PLANT_FIRST_KNEEL: // plant first explosives stage 1 kneel me->SetStandState(UNIT_STAND_STATE_KNEEL); _moveTimer = 10 * IN_MILLISECONDS; _phase = PHASE_PLANT_FIRST_STAND; break; case PHASE_PLANT_FIRST_STAND: // plant first explosives stage 1 stand me->SetStandState(UNIT_STAND_STATE_STAND); _moveTimer = 0.5* IN_MILLISECONDS; _phase = PHASE_PLANT_FIRST_WORK; break; case PHASE_PLANT_FIRST_WORK: // plant first explosives stage 2 work Talk(SAY_LEGOSO_4); _moveTimer = 17.5 * IN_MILLISECONDS; _phase = PHASE_PLANT_FIRST_FINISH; break; case PHASE_PLANT_FIRST_FINISH: // plant first explosives finish _explosivesGuids.clear(); for (uint8 i = 0; i != MAX_EXPLOSIVES; ++i) { if (GameObject* explosive = me->SummonGameObject(GO_DRAENEI_EXPLOSIVES_1, ExplosivesPos[0][i], QuaternionData(), 0)) _explosivesGuids.push_back(explosive->GetGUID()); } me->HandleEmoteCommand(EMOTE_ONESHOT_NONE); // reset anim state//.........这里部分代码省略.........
开发者ID:lasyan3,项目名称:TrinityCore,代码行数:101,
示例16: UpdateEscortAI//.........这里部分代码省略......... if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) temp->AI()->Talk(SAY_EVENT_END_09_KADD); JumpToNextStep(18500); break; case 37: Talk(SAY_EVENT_END_10); JumpToNextStep(5500); break; case 38: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) temp->AI()->Talk(SAY_EVENT_END_11_KADD); JumpToNextStep(20500); break; case 39: Talk(SAY_EVENT_END_12); JumpToNextStep(2500); break; case 40: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) temp->AI()->Talk(SAY_EVENT_END_13_KADD); JumpToNextStep(19500); break; case 41: Talk(SAY_EVENT_END_14); JumpToNextStep(10500); break; case 42: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) temp->AI()->Talk(SAY_EVENT_END_15_MARN); JumpToNextStep(6500); break; case 43: Talk(SAY_EVENT_END_16); JumpToNextStep(6500); break; case 44: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) temp->AI()->Talk(SAY_EVENT_END_17_MARN); JumpToNextStep(25500); break; case 45: Talk(SAY_EVENT_END_18); JumpToNextStep(23500); break; case 46: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) temp->AI()->Talk(SAY_EVENT_END_19_MARN); JumpToNextStep(3500); break; case 47: Talk(SAY_EVENT_END_20); JumpToNextStep(8500); break; case 48: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) temp->AI()->Talk(SAY_EVENT_END_21_ABED); JumpToNextStep(5500); break; case 49: { if (instance) { instance->HandleGameObject(instance->GetData64(DATA_GO_KADDRAK), false); instance->HandleGameObject(instance->GetData64(DATA_GO_MARNAK), false); instance->HandleGameObject(instance->GetData64(DATA_GO_ABEDNEUM), false); instance->HandleGameObject(instance->GetData64(DATA_GO_SKY_FLOOR), false); } Player* player = GetPlayerForEscort(); if (player) player->GroupEventHappens(QUEST_HALLS_OF_STONE, me); me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); JumpToNextStep(180000); break; } case 50: SetEscortPaused(false); break; } } else uiPhaseTimer -= uiDiff; if (!bIsLowHP && HealthBelowPct(30)) { Talk(SAY_LOW_HEALTH); bIsLowHP = true; } else if (bIsLowHP && !HealthBelowPct(30)) bIsLowHP = false; if (!UpdateVictim()) return; DoMeleeAttackIfReady(); }
开发者ID:Asandru,项目名称:Script-Land,代码行数:101,
示例17: WaypointReached void WaypointReached(uint32 waypointId) { Player* player = GetPlayerForEscort(); if (!player) return; switch (waypointId) { case 0: Talk(SAY1, player->GetGUID()); break; case 4: Talk(WHISP1, player->GetGUID()); break; case 6: Talk(WHISP2, player->GetGUID()); break; case 7: Talk(WHISP3, player->GetGUID()); break; case 8: Talk(WHISP4, player->GetGUID()); break; case 17: Talk(WHISP5, player->GetGUID()); break; case 18: Talk(WHISP6, player->GetGUID()); break; case 19: Talk(WHISP7, player->GetGUID()); break; case 33: Talk(WHISP8, player->GetGUID()); break; case 34: Talk(WHISP9, player->GetGUID()); break; case 35: Talk(WHISP10, player->GetGUID()); break; case 36: Talk(WHISP11, player->GetGUID()); break; case 43: Talk(WHISP12, player->GetGUID()); break; case 44: Talk(WHISP13, player->GetGUID()); break; case 49: Talk(WHISP14, player->GetGUID()); break; case 50: Talk(WHISP15, player->GetGUID()); break; case 51: Talk(WHISP16, player->GetGUID()); break; case 52: Talk(WHISP17, player->GetGUID()); break; case 53: Talk(WHISP18, player->GetGUID()); break; case 54: Talk(WHISP19, player->GetGUID()); break; case 55: Talk(WHISP20, player->GetGUID()); break; case 56: Talk(WHISP21, player->GetGUID()); player->GroupEventHappens(10211, me); break; } }
开发者ID:Fose,项目名称:TrinityCore,代码行数:77,
示例18: JustDied void JustDied(Unit* pKiller) { if (Player* pPlayer = GetPlayerForEscort()) pPlayer->FailQuest(QUEST_MISSING_IN_ACTION); }
开发者ID:Bootz,项目名称:diamondcore,代码行数:5,
示例19: WaypointReached void WaypointReached(uint32 i) { Player* player = GetPlayerForEscort(); if (!player) return; switch (i) { case 0:// DoScriptText(SAY_REM_START, me, player); break; case 5:// DoScriptText(SAY_REM_RAMP1_1, me, player); break; case 6: DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break; case 9:// DoScriptText(SAY_REM_RAMP1_2, me, player); break; case 14:// DoScriptText(SAY_REM_BOOK, me, player); break; case 15:// DoScriptText(SAY_REM_TENT1_1, me, player); break; case 16: DoSpawnCreature(NPC_GRAVEL_SCOUT, -10.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); DoSpawnCreature(NPC_GRAVEL_BONE, -10.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break; case 17:// DoScriptText(SAY_REM_TENT1_2, me, player); break; case 26:// DoScriptText(SAY_REM_MOSS, me, player); break; case 27:// DoScriptText(EMOTE_REM_MOSS, me, player); break; case 28:// DoScriptText(SAY_REM_MOSS_PROGRESS, me, player); break; case 29: DoSpawnCreature(NPC_GRAVEL_SCOUT, -15.0f, 3.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); DoSpawnCreature(NPC_GRAVEL_BONE, -15.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); DoSpawnCreature(NPC_GRAVEL_GEO, -15.0f, 7.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break; case 31:// DoScriptText(SAY_REM_PROGRESS, me, player); break; case 41:// DoScriptText(SAY_REM_REMEMBER, me, player); break; case 42:// DoScriptText(EMOTE_REM_END, me, player); player->GroupEventHappens(QUEST_ABSENT_MINDED_PT2, me); break; } }
开发者ID:P-Kito,项目名称:InfinityCore,代码行数:61,
示例20: UpdateEscortAI//.........这里部分代码省略......... m_uiPhaseTimer = 7500; break; case 37: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_END_09_KADD); m_uiPhaseTimer = 18500; break; case 38: DoScriptText(SAY_EVENT_END_10, m_creature); m_uiPhaseTimer = 5500; break; case 39: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_END_11_KADD); m_uiPhaseTimer = 20500; break; case 40: DoScriptText(SAY_EVENT_END_12, m_creature); m_uiPhaseTimer = 2500; break; case 41: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_END_13_KADD); m_uiPhaseTimer = 19500; break; case 42: DoScriptText(SAY_EVENT_END_14, m_creature); m_uiPhaseTimer = 10500; break; case 43: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_END_15_MARN); m_uiPhaseTimer = 6500; break; case 44: DoScriptText(SAY_EVENT_END_16, m_creature); m_uiPhaseTimer = 6500; break; case 45: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_END_17_MARN); m_uiPhaseTimer = 25500; break; case 46: DoScriptText(SAY_EVENT_END_18, m_creature); m_uiPhaseTimer = 23500; break; case 47: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_END_19_MARN); m_uiPhaseTimer = 3500; break; case 48: DoScriptText(SAY_EVENT_END_20, m_creature); m_uiPhaseTimer = 8500; break; case 49: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_END_21_ABED); m_uiPhaseTimer = 5500; break; case 50: { if (m_pInstance) { m_pInstance->DoUseDoorOrButton(GO_TRIBUNAL_FLOOR); m_pInstance->SetData(TYPE_TRIBUNAL, DONE); } Player* pPlayer = GetPlayerForEscort(); if (pPlayer) pPlayer->GroupEventHappens(QUEST_HALLS_OF_STONE, m_creature); m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); m_uiPhaseTimer = 180000; break; } case 51: SetEscortPaused(false); break; } ++m_uiStep; } else if (m_uiPhaseTimer) m_uiPhaseTimer -= uiDiff; if (!m_bIsLowHP && m_creature->GetHealthPercent() < 30) { DoScriptText(SAY_LOW_HEALTH, m_creature); m_bIsLowHP = true; } else if (m_bIsLowHP && m_creature->GetHealthPercent() > 30) m_bIsLowHP = false; // No Combat abilities needed here if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; }
开发者ID:mynew4,项目名称:RustEmu-Core,代码行数:101,
示例21: WaypointReached void WaypointReached(uint32 waypointId) override { if (Player* player = GetPlayerForEscort()) { switch (waypointId) { case 0: Talk(WHISPER_CUSTODIAN_1, player); break; case 1: Talk(WHISPER_CUSTODIAN_2, player); break; case 2: Talk(WHISPER_CUSTODIAN_3, player); break; case 3: Talk(WHISPER_CUSTODIAN_4, player); break; case 5: Talk(WHISPER_CUSTODIAN_5, player); break; case 6: Talk(WHISPER_CUSTODIAN_6, player); break; case 7: Talk(WHISPER_CUSTODIAN_7, player); break; case 8: Talk(WHISPER_CUSTODIAN_8, player); break; case 9: Talk(WHISPER_CUSTODIAN_9, player); break; case 10: Talk(WHISPER_CUSTODIAN_4, player); break; case 13: Talk(WHISPER_CUSTODIAN_10, player); break; case 14: Talk(WHISPER_CUSTODIAN_4, player); break; case 16: Talk(WHISPER_CUSTODIAN_11, player); break; case 17: Talk(WHISPER_CUSTODIAN_12, player); break; case 18: Talk(WHISPER_CUSTODIAN_4, player); break; case 22: Talk(WHISPER_CUSTODIAN_13, player); break; case 23: Talk(WHISPER_CUSTODIAN_4, player); break; case 24: Talk(WHISPER_CUSTODIAN_14, player); DoCast(player, SPELL_QID_10277); // below here is temporary workaround, to be removed when spell works properly player->AreaExploredOrEventHappens(QUEST_CAVERNS_OF_TIME); break; } } }
开发者ID:DSlayerMan,项目名称:DraenorCore,代码行数:66,
示例22: JustSummoned void JustSummoned(Creature* summoned) { if (Player* player = GetPlayerForEscort()) summoned->AI()->AttackStart(player); }
开发者ID:Matt-One,项目名称:azerothcore-wotlk,代码行数:5,
示例23: WaypointReached//.........这里部分代码省略......... 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); instance->SetData(TYPE_THRALL_PART2, DONE); SetRun(); break; case 64: SetRun(false); break; case 68: me->SummonCreature(NPC_BARN_PROTECTOR, 2500.22f, 692.60f, 55.50f, 2.84f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); me->SummonCreature(NPC_BARN_LOOKOUT, 2500.13f, 696.55f, 55.51f, 3.38f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); me->SummonCreature(NPC_BARN_GUARDSMAN, 2500.55f, 693.64f, 55.50f, 3.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); me->SummonCreature(NPC_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(NPC_CHURCH_PROTECTOR, 2627.33f, 646.82f, 56.03f, 4.28f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000); me->SummonCreature(NPC_CHURCH_LOOKOUT, 2624.14f, 648.03f, 56.03f, 4.50f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000); me->SummonCreature(NPC_CHURCH_GUARDSMAN, 2625.32f, 649.60f, 56.03f, 4.38f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000); me->SummonCreature(NPC_CHURCH_GUARDSMAN, 2627.22f, 649.00f, 56.03f, 4.34f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000); break; case 84: Talk(SAY_TH_CHURCH_END); SetRun(); break; case 91: me->SetWalk(true); SetRun(false); break; case 93: me->SummonCreature(NPC_INN_PROTECTOR, 2652.71f, 660.31f, 61.93f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); me->SummonCreature(NPC_INN_LOOKOUT, 2648.96f, 662.59f, 61.93f, 0.79f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); me->SummonCreature(NPC_INN_GUARDSMAN, 2657.36f, 662.34f, 61.93f, 2.68f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); me->SummonCreature(NPC_INN_GUARDSMAN, 2656.39f, 659.77f, 61.93f, 2.61f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); break; case 94: if (uint64 TarethaGUID = instance->GetData64(DATA_TARETHA)) { if (Creature* Taretha = Creature::GetCreature(*me, TarethaGUID)) Taretha->AI()->Talk(SAY_TA_ESCAPED, me); } break; case 95: Talk(SAY_TH_MEET_TARETHA); instance->SetData(TYPE_THRALL_PART3, DONE); SetEscortPaused(true); break; case 96: Talk(SAY_TH_EPOCH_WONDER); break; case 97: Talk(SAY_TH_EPOCH_KILL_TARETHA); SetRun(); break; case 98: //trigger epoch Yell("Thrall! Come outside and face your fate! ....") //from here, thrall should not never be allowed to move to point 106 which he currently does. break; case 106: { //trigger taretha to run down outside if (Creature* Taretha = instance->instance->GetCreature(instance->GetData64(DATA_TARETHA))) { if (Player* player = GetPlayerForEscort()) CAST_AI(npc_escortAI, (Taretha->AI()))->Start(false, true, player->GetGUID()); } //kill credit Creature for quest Map* map = me->GetMap(); Map::PlayerList const& players = map->GetPlayers(); if (!players.isEmpty() && map->IsDungeon()) { for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) { if (Player* player = itr->GetSource()) player->KilledMonsterCredit(20156, 0); } } //alot will happen here, thrall and taretha talk, erozion appear at spot to explain me->SummonCreature(EROZION_ENTRY, 2646.47f, 680.416f, 55.38f, 4.16f, TEMPSUMMON_TIMED_DESPAWN, 120000); } break; case 108: //last waypoint, just set Thrall invisible, respawn is turned off me->SetVisible(false); break; } }
开发者ID:DrYaling,项目名称:eluna-trinitycore,代码行数:101,
示例24: Aggro void Aggro(Unit*) { if (HasEscortState(STATE_ESCORT_ESCORTING)) me->Say(SAY_AGGRO1, LANG_UNIVERSAL, GetPlayerForEscort()->GetGUID()); else me->Say(SAY_AGGRO2, LANG_UNIVERSAL, 0); }
开发者ID:Aminxhm,项目名称:OregonCore,代码行数:6,
示例25: JustDied void JustDied(Unit* /*pKiller*/) { Player* pPlayer = GetPlayerForEscort(); if (pPlayer) pPlayer->FailQuest(QUEST_MARK_V_IS_ALIVE); }
开发者ID:AwkwardDev,项目名称:StrawberryCore,代码行数:6,
示例26: UpdateEscortAI void UpdateEscortAI(const uint32 uiDiff) { if (m_uiRandomTalkCooldown) { if (m_uiRandomTalkCooldown <= uiDiff) m_uiRandomTalkCooldown = 0; else m_uiRandomTalkCooldown -= uiDiff; } if (HasEscortState(STATE_ESCORT_PAUSED)) { if (m_uiTalkTimer <= uiDiff) { ++m_uiTalkCount; m_uiTalkTimer = 7500; Player* pPlayer = GetPlayerForEscort(); if (!pPlayer) return; switch(m_uiPointId) { case 5: //to lower city { switch(m_uiTalkCount) { case 1: DoScriptText(SAY_KHAD_SERV_1, m_creature, pPlayer); break; case 2: DoScriptText(SAY_KHAD_SERV_2, m_creature, pPlayer); break; case 3: DoScriptText(SAY_KHAD_SERV_3, m_creature, pPlayer); break; case 4: DoScriptText(SAY_KHAD_SERV_4, m_creature, pPlayer); SetEscortPaused(false); break; } break; } case 24: //in lower city { switch(m_uiTalkCount) { case 5: if (Creature* pShanir = GetClosestCreatureWithEntry(m_creature, NPC_SHANIR, 15.0f)) DoScriptText(SAY_KHAD_INJURED, pShanir, pPlayer); DoScriptText(SAY_KHAD_SERV_5, m_creature, pPlayer); break; case 6: DoScriptText(SAY_KHAD_SERV_6, m_creature, pPlayer); break; case 7: DoScriptText(SAY_KHAD_SERV_7, m_creature, pPlayer); SetEscortPaused(false); break; } break; } case 50: //outside { switch(m_uiTalkCount) { case 8: DoScriptText(SAY_KHAD_SERV_8, m_creature, pPlayer); break; case 9: DoScriptText(SAY_KHAD_SERV_9, m_creature, pPlayer); break; case 10: DoScriptText(SAY_KHAD_SERV_10, m_creature, pPlayer); break; case 11: DoScriptText(SAY_KHAD_SERV_11, m_creature, pPlayer); SetEscortPaused(false); break; } break; } case 63: //scryer { switch(m_uiTalkCount) { case 12: DoScriptText(SAY_KHAD_SERV_12, m_creature, pPlayer); break; case 13: DoScriptText(SAY_KHAD_SERV_13, m_creature, pPlayer); SetEscortPaused(false); break; } break; } case 74: //aldor {//.........这里部分代码省略.........
开发者ID:Shutok,项目名称:StrawberryCore-501Beta,代码行数:101,
注:本文中的GetPlayerForEscort函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GetPlayerGUID函数代码示例 C++ GetPlayerFlags函数代码示例 |