您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GetLeaderForFollower函数代码示例

51自学网 2021-06-01 21:10:02
  C++
这篇教程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: JustDied

void 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: AddFollowState

void 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_log

void 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_DEBUG

void 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: UpdateAI

void 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函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。