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

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

51自学网 2021-06-01 20:11:11
  C++
这篇教程C++ ClearCharmInfoFlags函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ClearCharmInfoFlags函数的典型用法代码示例。如果您正苦于以下问题:C++ ClearCharmInfoFlags函数的具体用法?C++ ClearCharmInfoFlags怎么用?C++ ClearCharmInfoFlags使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了ClearCharmInfoFlags函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: ClearCharmInfoFlags

void PetAI::DoAttack(Unit* target, bool chase){    // Handles attack with or without chase and also resets flags    // for next update / creature kill    if (me->Attack(target, true))    {        if (Unit* owner = me->GetOwner())            owner->SetInCombatWith(target);        // Play sound to let the player know the pet is attacking something it picked on its own        if (me->HasReactState(REACT_AGGRESSIVE) && !me->GetCharmInfo()->IsCommandAttack())            me->SendPetAIReaction(me->GetGUID());        if (chase)        {           ClearCharmInfoFlags();           me->GetMotionMaster()->Clear();           me->GetMotionMaster()->MoveChase(target);        }        else // (Stay && ((Aggressive || Defensive) && In Melee Range)))        {            ClearCharmInfoFlags();            me->GetCharmInfo()->SetIsAtStay(true);            me->GetMotionMaster()->Clear();            me->GetMotionMaster()->MoveIdle();        }    }}
开发者ID:Ne3x,项目名称:TrinityCore,代码行数:30,


示例2: switch

void PetAI::MovementInform(uint32 moveType, uint32 data){    // Receives notification when pet reaches stay or follow owner    switch (moveType)    {        case POINT_MOTION_TYPE:        {            // Pet is returning to where stay was clicked. data should be            // pet's GUIDLow since we set that as the waypoint ID            if (data == me->GetGUIDLow() && me->GetCharmInfo()->IsReturning())            {                ClearCharmInfoFlags();                me->GetCharmInfo()->SetIsAtStay(true);                me->GetMotionMaster()->Clear();                me->GetMotionMaster()->MoveIdle();            }            break;        }        case FOLLOW_MOTION_TYPE:        {            // If data is owner's GUIDLow then we've reached follow point,            // otherwise we're probably chasing a creature            if (me->GetCharmerOrOwner() && me->GetCharmInfo() && data == me->GetCharmerOrOwner()->GetGUIDLow() && me->GetCharmInfo()->IsReturning())            {                ClearCharmInfoFlags();                me->GetCharmInfo()->SetIsFollowing(true);            }            break;        }        default:            break;    }}
开发者ID:Ne3x,项目名称:TrinityCore,代码行数:33,


示例3: ClearCharmInfoFlags

void PetAI::DoAttack(Unit* target, bool chase){    // Handles attack with or without chase and also resets flags    // for next update / creature kill    if (me->Attack(target, true))    {        // Play sound to let the player know the pet is attacking something it picked on its own        if (me->HasReactState(REACT_AGGRESSIVE) && !me->GetCharmInfo()->IsCommandAttack())            me->SendPetAIReaction(me->GetGUID());        if (chase)        {            bool oldCmdAttack = me->GetCharmInfo()->IsCommandAttack(); // This needs to be reset after other flags are cleared            ClearCharmInfoFlags();            me->GetCharmInfo()->SetIsCommandAttack(oldCmdAttack); // For passive pets commanded to attack so they will use spells            me->GetMotionMaster()->Clear();            me->GetMotionMaster()->MoveChase(target);        }        else // (Stay && ((Aggressive || Defensive) && In Melee Range)))        {            ClearCharmInfoFlags();            me->GetCharmInfo()->SetIsAtStay(true);            me->GetMotionMaster()->Clear();            me->GetMotionMaster()->MoveIdle();        }    }}
开发者ID:GlassFace,项目名称:XC_CORE,代码行数:28,


示例4: switch

/// Receives notification when pet reaches stay or follow ownervoid PetAI::MovementInform(uint32 moveType, uint32 data){    if (!me->GetCharmInfo())        return;    switch (moveType)    {        case POINT_MOTION_TYPE:        {            // Pet is returning to where stay was clicked. data should be            // pet's GUIDLow since we set that as the waypoint ID            if (data == me->GetGUIDLow() && me->GetCharmInfo()->IsReturning())            {                ClearCharmInfoFlags();                me->GetCharmInfo()->SetIsAtStay(true);                me->GetMotionMaster()->Clear();                me->GetMotionMaster()->MoveIdle();            }            break;        }        case FOLLOW_MOTION_TYPE:        {            // If data is owner's GUIDLow then we've reached follow point            if (me->GetCharmerOrOwner() && data == me->GetCharmerOrOwner()->GetGUIDLow() && me->GetCharmInfo()->IsReturning())            {                ClearCharmInfoFlags();                me->GetCharmInfo()->SetIsFollowing(true);                me->AddUnitState(UNIT_STATE_FOLLOW);            }            break;        }        default:            break;    }}
开发者ID:Adeer,项目名称:OregonCore,代码行数:36,


示例5: ClearCharmInfoFlags

void PetAI::HandleReturnMovement(){    // Handles moving the pet back to stay or owner    // Prevent activating movement when under control of spells    // such as "Eyes of the Beast"    if (me->isCharmed())        return;    if (me->GetCharmInfo()->HasCommandState(COMMAND_STAY))    {        if (!me->GetCharmInfo()->IsAtStay() && !me->GetCharmInfo()->IsReturning())        {            float x, y, z;            me->GetCharmInfo()->GetStayPosition(x, y, z);            ClearCharmInfoFlags();            me->GetCharmInfo()->SetIsReturning(true);            me->GetMotionMaster()->Clear();            me->GetMotionMaster()->MovePoint(me->GetGUIDLow(), x, y, z);        }    }    else // COMMAND_FOLLOW    {        if (!me->GetCharmInfo()->IsFollowing() && !me->GetCharmInfo()->IsReturning())        {            ClearCharmInfoFlags();            me->GetCharmInfo()->SetIsReturning(true);            me->GetMotionMaster()->Clear();            me->GetMotionMaster()->MoveFollow(me->GetCharmerOrOwner(), PET_FOLLOW_DIST, me->GetFollowAngle());        }    }}
开发者ID:Adeer,项目名称:OregonCore,代码行数:34,


示例6: ClearCharmInfoFlags

void PetAI::DoAttack(Unit* target, bool chase){    // Handles attack with or without chase and also resets flags    // for next update / creature kill    if (me->Attack(target, true))    {        me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates we're actively going after a target - that's what we're doing, so set it        // Play sound to let the player know the pet is attacking something it picked on its own        if (me->HasReactState(REACT_AGGRESSIVE) && !me->GetCharmInfo()->IsCommandAttack())            me->SendPetAIReaction(me->GetGUID());        if (chase)        {            bool oldCmdAttack = me->GetCharmInfo()->IsCommandAttack(); // This needs to be reset after other flags are cleared            ClearCharmInfoFlags();            me->GetCharmInfo()->SetIsCommandAttack(oldCmdAttack); // For passive pets commanded to attack so they will use spells            if (me->HasUnitState(UNIT_STATE_FOLLOW))                me->GetMotionMaster()->Remove(FOLLOW_MOTION_TYPE);            me->GetMotionMaster()->MoveChase(target, me->GetPetChaseDistance(), float(M_PI));        }        else // (Stay && ((Aggressive || Defensive) && In Melee Range)))        {            ClearCharmInfoFlags();            me->GetCharmInfo()->SetIsAtStay(true);            if (me->HasUnitState(UNIT_STATE_FOLLOW))                me->GetMotionMaster()->Remove(FOLLOW_MOTION_TYPE);            me->GetMotionMaster()->MoveIdle();        }    }}
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:35,


示例7: ClearCharmInfoFlags

void PetAI::HandleReturnMovement(){    // Handles moving the pet back to stay or owner    // Prevent activating movement when under control of spells    // such as "Eyes of the Beast"    if (me->isPossessed())        return;    if (me->GetCharmInfo()->HasCommandState(COMMAND_STAY))    {        if (!me->GetCharmInfo()->IsAtStay() && !me->GetCharmInfo()->IsReturning())        {            if (me->GetCharmInfo()->HasStayPosition())            {                // Return to previous position where stay was clicked                if (me->GetMotionMaster()->GetMotionSlotType(MOTION_SLOT_CONTROLLED) == NULL_MOTION_TYPE)                {                    float x, y, z;                    me->GetCharmInfo()->GetStayPosition(x, y, z);                    ClearCharmInfoFlags();                    me->GetCharmInfo()->SetIsReturning(true);                    me->GetMotionMaster()->Clear();                    me->GetMotionMaster()->MovePoint(me->GetUInt32Value(OBJECT_FIELD_GUID), x, y, z);                }            }        }    }    else // COMMAND_FOLLOW    {        if (!me->GetCharmInfo()->IsFollowing() && !me->GetCharmInfo()->IsReturning())        {            if (me->GetMotionMaster()->GetMotionSlotType(MOTION_SLOT_CONTROLLED) == NULL_MOTION_TYPE)            {                ClearCharmInfoFlags();                me->GetCharmInfo()->SetIsReturning(true);                me->GetMotionMaster()->Clear();                me->GetMotionMaster()->MoveFollow(me->GetCharmerOrOwner(), PET_FOLLOW_DIST, me->GetFollowAngle());            }        }    }    me->GetCharmInfo()->SetForcedSpell(0);    me->GetCharmInfo()->SetForcedTargetGUID(0);    // xinef: remember that npcs summoned by npcs can also be pets    me->DeleteThreatList();    me->ClearInPetCombat();}
开发者ID:rynnokung,项目名称:azerothcore-wotlk,代码行数:49,


示例8: ClearCharmInfoFlags

void PetAI::_stopAttack(){    if (!m_creature->isAlive())    {        m_creature->GetMotionMaster()->Clear();        m_creature->GetMotionMaster()->MoveIdle();        m_creature->CombatStop();        m_creature->getHostileRefManager().deleteReferences();        return;    }    m_creature->AttackStop();    m_creature->InterruptNonMeleeSpells(false);    //m_creature->SendMeleeAttackStop(); // Should stop pet's attack button from flashing    m_creature->GetCharmInfo()->SetIsCommandAttack(false);    ClearCharmInfoFlags();    HandleReturnMovement();}
开发者ID:Maduse,项目名称:server,代码行数:18,


示例9: TC_LOG_DEBUG

void PetAI::_stopAttack(){    if (!me->IsAlive())    {        TC_LOG_DEBUG("misc", "Creature stoped attacking cuz his dead [%s]", me->GetGUID().ToString().c_str());        me->GetMotionMaster()->Clear();        me->GetMotionMaster()->MoveIdle();        me->CombatStop();        me->getHostileRefManager().deleteReferences();        return;    }    me->AttackStop();    me->InterruptNonMeleeSpells(false);    me->SendMeleeAttackStop(); // Should stop pet's attack button from flashing    me->GetCharmInfo()->SetIsCommandAttack(false);    ClearCharmInfoFlags();    HandleReturnMovement();}
开发者ID:beyourself,项目名称:DeathCore_6.x,代码行数:19,



注:本文中的ClearCharmInfoFlags函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


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