这篇教程C++ GetLeaderForFollower函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetLeaderForFollower函数的典型用法代码示例。如果您正苦于以下问题:C++ GetLeaderForFollower函数的具体用法?C++ GetLeaderForFollower怎么用?C++ GetLeaderForFollower使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetLeaderForFollower函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: MoveInLineOfSight void MoveInLineOfSight(Unit* who) { FollowerAI::MoveInLineOfSight(who); if (!me->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE | STATE_FOLLOW_POSTEVENT) && who->GetEntry() == NPC_TORTA) { if (me->IsWithinDistInMap(who, INTERACTION_DISTANCE)) { if (Player* player = GetLeaderForFollower()) { if (player->GetQuestStatus(QUEST_TOOGA) == QUEST_STATUS_INCOMPLETE) player->GroupEventHappens(QUEST_TOOGA, me); } TortaGUID = who->GetGUID(); SetFollowComplete(true); } } }
开发者ID:Atreyos,项目名称:FaceCore,代码行数:19,
示例2: MoveInLineOfSight void MoveInLineOfSight(Unit* pWho) override { FollowerAI::MoveInLineOfSight(pWho); if (!m_creature->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && pWho->GetEntry() == NPC_SPRAGGLE) { if (m_creature->IsWithinDistInMap(pWho, INTERACTION_DISTANCE)) { if (Player* pPlayer = GetLeaderForFollower()) { if (pPlayer->GetQuestStatus(QUEST_A_LITTLE_HELP) == QUEST_STATUS_INCOMPLETE) pPlayer->GroupEventHappens(QUEST_A_LITTLE_HELP, m_creature); } pSpraggle = pWho; SetFollowComplete(true); } } }
开发者ID:520lly,项目名称:mangos-classic,代码行数:19,
示例3: MoveInLineOfSight void MoveInLineOfSight(Unit* who) { FollowerAI::MoveInLineOfSight(who); if (!me->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && who->GetEntry() == NPC_SPRAGGLE) { if (me->IsWithinDistInMap(who, INTERACTION_DISTANCE)) { if (Player* player = GetLeaderForFollower()) { if (player->GetQuestStatus(QUEST_A_LITTLE_HELP) == QUEST_STATUS_INCOMPLETE) player->GroupEventHappens(QUEST_A_LITTLE_HELP, me); } SpraggleGUID = who->GetGUID(); SetFollowComplete(true); } } }
开发者ID:A-Shox,项目名称:TrinityCore,代码行数:19,
示例4: MoveInLineOfSight void MoveInLineOfSight(Unit* pWho) override { FollowerAI::MoveInLineOfSight(pWho); if (!m_creature->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE | STATE_FOLLOW_POSTEVENT) && pWho->GetEntry() == NPC_TORTA) { if (m_creature->IsWithinDistInMap(pWho, INTERACTION_DISTANCE)) { if (Player* pPlayer = GetLeaderForFollower()) { if (pPlayer->GetQuestStatus(QUEST_TOOGA) == QUEST_STATUS_INCOMPLETE) pPlayer->GroupEventHappens(QUEST_TOOGA, m_creature); } pTorta = pWho; SetFollowComplete(true); } } }
开发者ID:natedahl32,项目名称:portalclassic,代码行数:19,
示例5: MoveInLineOfSight void MoveInLineOfSight(Unit* pWho) { FollowerAI::MoveInLineOfSight(pWho); if (!me->GetVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE | STATE_FOLLOW_POSTEVENT) && pWho->GetEntry() == NPC_ARYNIA) { if (me->IsWithinDistInMap(pWho, INTERACTION_DISTANCE)) { if (Player* pPlayer = GetLeaderForFollower()) { if (pPlayer->GetQuestStatus(QUEST_MIST) == QUEST_STATUS_INCOMPLETE) pPlayer->GroupEventHappens(QUEST_MIST, me); } AryniaGUID = pWho->GetGUID(); SetFollowComplete(true); } } }
开发者ID:Adeer,项目名称:OregonCore,代码行数:19,
示例6: MoveInLineOfSight void MoveInLineOfSight(Unit *pWho) { FollowerAI::MoveInLineOfSight(pWho); if (!me->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && pWho->GetEntry() == NPC_LILADRIS) { if (me->IsWithinDistInMap(pWho, INTERACTION_DISTANCE * 5)) { if (Player* pPlayer = GetLeaderForFollower()) { if (pPlayer->GetQuestStatus(QUEST_SLEEPER_AWAKENED) == QUEST_STATUS_INCOMPLETE) pPlayer->GroupEventHappens(QUEST_SLEEPER_AWAKENED, me); DoScriptText(SAY_KER_END, me); } SetFollowComplete(); } } }
开发者ID:814077430,项目名称:ArkCORE,代码行数:19,
示例7: MoveInLineOfSight void MoveInLineOfSight(Unit* who) { FollowerAI::MoveInLineOfSight(who); if (!me->getVictim() && !HasFollowState(STATE_FOLLOW_COMPLETE) && who->GetEntry() == NPC_YEVAA) { if (me->IsWithinDistInMap(who, INTERACTION_DISTANCE)) { if (Player* player = GetLeaderForFollower()) { if (player->GetQuestStatus(QUEST_TAKE_HIM_TO_THE_EARTHCALLER) == QUEST_STATUS_INCOMPLETE) player->KilledMonsterCredit(44207, 0); me->DespawnOrUnsummon(30000); } SetFollowComplete(true); } } }
开发者ID:FrenchCORE,项目名称:Server,代码行数:20,
示例8: MoveInLineOfSight void MoveInLineOfSight(Unit* pWho) override { FollowerAI::MoveInLineOfSight(pWho); if (!m_creature->HasAura(SPELL_SUBDUED) || m_creature->getVictim()) return; if (pWho->GetEntry() == NPC_COLDARRA_DRAKE_HUNT_INVISMAN && m_creature->IsWithinDistInMap(pWho, 20.0f)) { Player* pPlayer = GetLeaderForFollower(); if (!pPlayer || !pPlayer->HasAura(SPELL_DRAKE_HATCHLING_SUBDUED)) return; pWho->CastSpell(pPlayer, SPELL_STRIP_AURAS, true); // give kill credit, mark the follow as completed and start the final event pPlayer->KilledMonsterCredit(NPC_COLDARRA_DRAKE_HUNT_INVISMAN); pPlayer->CastSpell(m_creature, SPELL_DRAKE_TURN_IN, true); SetFollowComplete(true); } }
开发者ID:Chuck5ta,项目名称:ScriptDev3,代码行数:20,
示例9: UpdateFollowerAI void UpdateFollowerAI(const uint32 uiDiff) { FollowerAI::UpdateFollowerAI(uiDiff); // Do combat handling if (m_creature->isInCombat() || !HasFollowState(STATE_FOLLOW_INPROGRESS) || HasFollowState(STATE_FOLLOW_COMPLETE)) return; if (m_uiCheckEndposTimer < uiDiff) { m_uiCheckEndposTimer = 500; if (m_creature->IsWithinDist3d(aKernobeePositions[0][0], aKernobeePositions[0][1], aKernobeePositions[0][2], 2 * INTERACTION_DISTANCE)) { SetFollowComplete(true); if (Player* pPlayer = GetLeaderForFollower()) pPlayer->GroupEventHappens(QUEST_A_FINE_MESS, m_creature); m_creature->GetMotionMaster()->MovePoint(1, aKernobeePositions[1][0], aKernobeePositions[1][1], aKernobeePositions[1][2], false); m_creature->ForcedDespawn(2000); } } else m_uiCheckEndposTimer -= uiDiff; }
开发者ID:natedahl32,项目名称:portalclassic,代码行数:22,
示例10: MoveInLineOfSight void MoveInLineOfSight(Unit* pWho) override { FollowerAI::MoveInLineOfSight(pWho); if (!m_bIsComplete && pWho->GetEntry() == NPC_ROCKBITER && m_creature->IsWithinDistInMap(pWho, 20.0f)) { Player* pPlayer = GetLeaderForFollower(); if (!pPlayer) return; DoScriptText(SAY_EVENT_COMPLETE_1, m_creature); DoScriptText(SAY_EVENT_COMPLETE_2, pWho); // complete quest pPlayer->GroupEventHappens(QUEST_ID_WANDERING_SHAY, m_creature); SetFollowComplete(true); m_creature->ForcedDespawn(30000); m_bIsComplete = true; m_uiWanderTimer = 0; // move to Rockbiter float fX, fY, fZ; pWho->GetContactPoint(m_creature, fX, fY, fZ, INTERACTION_DISTANCE); m_creature->GetMotionMaster()->MovePoint(0, fX, fY, fZ); } else if (m_bIsRecalled && pWho->GetTypeId() == TYPEID_PLAYER && pWho->IsWithinDistInMap(pWho, INTERACTION_DISTANCE)) { m_uiWanderTimer = 60000; m_bIsRecalled = false; switch (urand(0, 2)) { case 0: DoScriptText(SAY_WANDER_DONE_1, m_creature); break; case 1: DoScriptText(SAY_WANDER_DONE_2, m_creature); break; case 2: DoScriptText(SAY_WANDER_DONE_3, m_creature); break; } } }
开发者ID:natedahl32,项目名称:portalclassic,代码行数:38,
示例11: JustDiedvoid FollowerAI::JustDied(Unit*){ if (!HasFollowState(STATE_FOLLOW_INPROGRESS) || !m_leaderGuid || !m_pQuestForFollow) return; //TODO: need a better check for quests with time limit. if (Player* pPlayer = GetLeaderForFollower()) { if (Group* pGroup = pPlayer->GetGroup()) { for(GroupReference* pRef = pGroup->GetFirstMember(); pRef != NULL; pRef = pRef->next()) { if (Player* pMember = pRef->getSource()) { if (pMember->GetQuestStatus(m_pQuestForFollow->GetQuestId()) == QUEST_STATUS_INCOMPLETE) pMember->FailQuest(m_pQuestForFollow->GetQuestId()); } } } else if (pPlayer->GetQuestStatus(m_pQuestForFollow->GetQuestId()) == QUEST_STATUS_INCOMPLETE) pPlayer->FailQuest(m_pQuestForFollow->GetQuestId()); }}
开发者ID:yyhhrr,项目名称:mangospriv,代码行数:23,
示例12: AddFollowStatevoid FollowerAI::SetFollowPaused(bool bPaused){ if (!HasFollowState(STATE_FOLLOW_INPROGRESS) || HasFollowState(STATE_FOLLOW_COMPLETE)) return; if (bPaused) { AddFollowState(STATE_FOLLOW_PAUSED); if (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == FOLLOW_MOTION_TYPE) { m_creature->StopMoving(); m_creature->GetMotionMaster()->Clear(); m_creature->GetMotionMaster()->MoveIdle(); } } else { RemoveFollowState(STATE_FOLLOW_PAUSED); if (Player* pLeader = GetLeaderForFollower()) m_creature->GetMotionMaster()->MoveFollow(pLeader, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); }}
开发者ID:sd0,项目名称:scriptdevzero,代码行数:24,
示例13: debug_logvoid FollowerAI::UpdateAI(const uint32 uiDiff){ if (HasFollowState(STATE_FOLLOW_INPROGRESS) && !m_creature->getVictim()) { if (m_uiUpdateFollowTimer < uiDiff) { if (HasFollowState(STATE_FOLLOW_COMPLETE) && !HasFollowState(STATE_FOLLOW_POSTEVENT)) { debug_log("SD2: FollowerAI is set completed, despawns."); m_creature->ForcedDespawn(); return; } bool bIsMaxRangeExceeded = true; if (Player* pPlayer = GetLeaderForFollower()) { if (HasFollowState(STATE_FOLLOW_RETURNING)) { debug_log("SD2: FollowerAI is returning to leader."); RemoveFollowState(STATE_FOLLOW_RETURNING); m_creature->GetMotionMaster()->MoveFollow(pPlayer, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); return; } if (Group* pGroup = pPlayer->GetGroup()) { for(GroupReference* pRef = pGroup->GetFirstMember(); pRef != NULL; pRef = pRef->next()) { Player* pMember = pRef->getSource(); if (pMember && m_creature->IsWithinDistInMap(pMember, MAX_PLAYER_DISTANCE)) { bIsMaxRangeExceeded = false; break; } } } else { if (m_creature->IsWithinDistInMap(pPlayer, MAX_PLAYER_DISTANCE)) bIsMaxRangeExceeded = false; } } if (bIsMaxRangeExceeded) { debug_log("SD2: FollowerAI failed because player/group was to far away or not found"); m_creature->ForcedDespawn(); return; } m_uiUpdateFollowTimer = 1000; } else m_uiUpdateFollowTimer -= uiDiff; } UpdateFollowerAI(uiDiff);}
开发者ID:sd0,项目名称:scriptdevzero,代码行数:61,
示例14: TC_LOG_DEBUGvoid FollowerAI::UpdateAI(uint32 uiDiff){ if (HasFollowState(STATE_FOLLOW_INPROGRESS) && !me->GetVictim()) { if (m_uiUpdateFollowTimer <= uiDiff) { if (HasFollowState(STATE_FOLLOW_COMPLETE) && !HasFollowState(STATE_FOLLOW_POSTEVENT)) { TC_LOG_DEBUG("scripts", "FollowerAI is set completed, despawns."); me->DespawnOrUnsummon(); return; } bool bIsMaxRangeExceeded = true; if (Player* player = GetLeaderForFollower()) { if (HasFollowState(STATE_FOLLOW_RETURNING)) { TC_LOG_DEBUG("scripts", "FollowerAI is returning to leader."); RemoveFollowState(STATE_FOLLOW_RETURNING); me->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); return; } if (Group* group = player->GetGroup()) { for (GroupReference* groupRef = group->GetFirstMember(); groupRef != NULL; groupRef = groupRef->next()) { Player* member = groupRef->GetSource(); if (member && me->IsWithinDistInMap(member, MAX_PLAYER_DISTANCE)) { bIsMaxRangeExceeded = false; break; } } } else { if (me->IsWithinDistInMap(player, MAX_PLAYER_DISTANCE)) bIsMaxRangeExceeded = false; } } if (bIsMaxRangeExceeded) { TC_LOG_DEBUG("scripts", "FollowerAI failed because player/group was to far away or not found"); me->DespawnOrUnsummon(); return; } m_uiUpdateFollowTimer = 1000; } else m_uiUpdateFollowTimer -= uiDiff; } UpdateFollowerAI(uiDiff);}
开发者ID:AriDEV,项目名称:SkyFire.548,代码行数:61,
示例15: UpdateAIvoid FollowerAI::UpdateAI(const uint32 uiDiff){ if (HasFollowState(STATE_FOLLOW_INPROGRESS) && !m_creature->getVictim()) { if (m_uiUpdateFollowTimer < uiDiff) { if (HasFollowState(STATE_FOLLOW_COMPLETE) && !HasFollowState(STATE_FOLLOW_POSTEVENT)) { sLog.outDebug("FollowerAI is set completed, despawns."); m_creature->DisappearAndDie(); return; } bool bIsMaxRangeExceeded = true; if (Player* pPlayer = GetLeaderForFollower()) { if (HasFollowState(STATE_FOLLOW_RETURNING)) { sLog.outDebug("FollowerAI is returning to leader."); RemoveFollowState(STATE_FOLLOW_RETURNING); m_creature->GetMotionMaster()->MoveFollow(pPlayer, m_uiFollowDistance, PET_FOLLOW_ANGLE); return; } if (Group* pGroup = pPlayer->GetGroup()) { for(GroupReference* pRef = pGroup->GetFirstMember(); pRef != nullptr; pRef = pRef->next()) { Player* pMember = pRef->getSource(); if (pMember && m_creature->IsWithinDistInMap(pMember, MAX_PLAYER_DISTANCE)) { bIsMaxRangeExceeded = false; break; } } } else { if (m_creature->IsWithinDistInMap(pPlayer, MAX_PLAYER_DISTANCE)) bIsMaxRangeExceeded = false; } // allow postEvent to happen even if quest credit is already handled /*if (HasFollowState(STATE_FOLLOW_COMPLETE | STATE_FOLLOW_POSTEVENT)) bIsMaxRangeExceeded = false;*/ } if (bIsMaxRangeExceeded) { sLog.outDebug("FollowerAI failed because player/group was to far away or not found"); SetFollowPaused(false); m_creature->DisappearAndDie(); return; } m_uiUpdateFollowTimer = 300; } else m_uiUpdateFollowTimer -= uiDiff; } UpdateFollowerAI(uiDiff);}
开发者ID:Maduse,项目名称:server,代码行数:66,
注:本文中的GetLeaderForFollower函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GetLengthSid函数代码示例 C++ GetLayout函数代码示例 |