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

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

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

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

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

示例1: RemovePlayer

void BattlegroundTP::RemovePlayer(Player *plr, uint64 guid){    // sometimes flag aura not removed :(    if (IsAllianceFlagPickedup() && m_FlagKeepers[BG_TEAM_ALLIANCE] == guid)    {        if (!plr)        {            sLog->outError("BattlegroundTP: Removing offline player who has the FLAG!!");            this->SetAllianceFlagPicker(0);            this->RespawnFlag(ALLIANCE, false);        }        else            this->EventPlayerDroppedFlag(plr);    }    if (IsHordeFlagPickedup() && m_FlagKeepers[BG_TEAM_HORDE] == guid)    {        if (!plr)        {            sLog->outError("BattlegroundTP: Removing offline player who has the FLAG!!");            this->SetHordeFlagPicker(0);            this->RespawnFlag(HORDE, false);        }        else            this->EventPlayerDroppedFlag(plr);    }}
开发者ID:Ekmek,项目名称:Antiker,代码行数:26,


示例2: ClearAllianceFlagPicker

void BattleGroundWS::RemovePlayer(Player *plr, ObjectGuid guid){    // sometimes flag aura not removed :(    if (IsAllianceFlagPickedup() && m_FlagKeepers[BG_TEAM_ALLIANCE] == guid)    {        if (!plr)        {            sLog.outError("BattleGroundWS: Removing offline player who has the FLAG!!");            ClearAllianceFlagPicker();            RespawnFlag(ALLIANCE, false);        }        else            EventPlayerDroppedFlag(plr);    }    if (IsHordeFlagPickedup() && m_FlagKeepers[BG_TEAM_HORDE] == guid)    {        if (!plr)        {            sLog.outError("BattleGroundWS: Removing offline player who has the FLAG!!");            ClearHordeFlagPicker();            RespawnFlag(HORDE, false);        }        else            EventPlayerDroppedFlag(plr);    }}
开发者ID:DaemonCantor,项目名称:mangos,代码行数:26,


示例3: TC_LOG_ERROR

void BattlegroundTP::RemovePlayer(Player* player, uint64 guid, uint32 /*team*/){    // sometimes flag aura not removed :(    if (IsAllianceFlagPickedup() && m_FlagKeepers[TEAM_ALLIANCE] == guid)    {        if (!player)        {            TC_LOG_ERROR("bg.battleground", "BattlegroundTP: Removing offline player who has the FLAG!!");            SetAllianceFlagPicker(0);            RespawnFlag(ALLIANCE, false);        }        else            EventPlayerDroppedFlag(player);    }    if (IsHordeFlagPickedup() && m_FlagKeepers[TEAM_HORDE] == guid)    {        if (!player)        {            TC_LOG_ERROR("bg.battleground", "BattlegroundTP: Removing offline player who has the FLAG!!");            SetHordeFlagPicker(0);            RespawnFlag(HORDE, false);        }        else            EventPlayerDroppedFlag(player);    }}
开发者ID:BOREMANSe,项目名称:SkyFire_5xx,代码行数:26,


示例4: SetAllianceFlagPicker

void BattleGroundWS::RemovePlayer(Player *plr, uint64 guid){    // sometimes flag aura not removed :(    if (IsAllianceFlagPickedup() && m_FlagKeepers[BG_TEAM_ALLIANCE] == guid)    {        if (!plr)        {            sLog.outLog(LOG_DEFAULT, "ERROR: BattleGroundWS: Removing offline player who has the FLAG!!");            SetAllianceFlagPicker(0);            RespawnFlag(ALLIANCE, false);        }        else            EventPlayerDroppedFlag(plr);    }    if (IsHordeFlagPickedup() && m_FlagKeepers[BG_TEAM_HORDE] == guid)    {        if (!plr)        {            sLog.outLog(LOG_DEFAULT, "ERROR: BattleGroundWS: Removing offline player who has the FLAG!!");            SetHordeFlagPicker(0);            RespawnFlag(HORDE, false);        }        else            EventPlayerDroppedFlag(plr);    }}
开发者ID:Xadras,项目名称:looking4group-core,代码行数:26,


示例5: SetHordeFlagPicker

void BattlegroundTP::EventPlayerDroppedFlag(Player *Source){    if (GetStatus() != STATUS_IN_PROGRESS)    {        // if not running, do not cast things at the dropper player (prevent spawning the "dropped" flag), neither send unnecessary messages        // just take off the aura        if (Source->GetTeam() == ALLIANCE)        {            if (!this->IsHordeFlagPickedup())                return;            if (GetHordeFlagPickerGUID() == Source->GetGUID())            {                SetHordeFlagPicker(0);                Source->RemoveAurasDueToSpell(BG_TP_SPELL_HORDE_FLAG);            }        }        else        {            if (!this->IsAllianceFlagPickedup())                return;            if (GetAllianceFlagPickerGUID() == Source->GetGUID())            {                SetAllianceFlagPicker(0);                Source->RemoveAurasDueToSpell(BG_TP_SPELL_ALLIANCE_FLAG);            }        }        return;    }    bool set = false;    if (Source->GetTeam() == ALLIANCE)    {        if (!IsHordeFlagPickedup())            return;        if (GetHordeFlagPickerGUID() == Source->GetGUID())        {            SetHordeFlagPicker(0);            Source->RemoveAurasDueToSpell(BG_TP_SPELL_HORDE_FLAG);            if (m_FlagDebuffState == 1)              Source->RemoveAurasDueToSpell(TP_SPELL_FOCUSED_ASSAULT);            if (m_FlagDebuffState == 2)              Source->RemoveAurasDueToSpell(TP_SPELL_BRUTAL_ASSAULT);            m_FlagState[BG_TEAM_HORDE] = BG_TP_FLAG_STATE_ON_GROUND;            Source->CastSpell(Source, BG_TP_SPELL_HORDE_FLAG_DROPPED, true);            set = true;        }    }    else    {        if (!IsAllianceFlagPickedup())            return;        if (GetAllianceFlagPickerGUID() == Source->GetGUID())        {            SetAllianceFlagPicker(0);            Source->RemoveAurasDueToSpell(BG_TP_SPELL_ALLIANCE_FLAG);            if (m_FlagDebuffState == 1)              Source->RemoveAurasDueToSpell(TP_SPELL_FOCUSED_ASSAULT);            if (m_FlagDebuffState == 2)              Source->RemoveAurasDueToSpell(TP_SPELL_BRUTAL_ASSAULT);            m_FlagState[BG_TEAM_ALLIANCE] = BG_TP_FLAG_STATE_ON_GROUND;            Source->CastSpell(Source, BG_TP_SPELL_ALLIANCE_FLAG_DROPPED, true);            set = true;        }    }    if (set)    {        Source->CastSpell(Source, SPELL_RECENTLY_DROPPED_FLAG, true);        UpdateFlagState(Source->GetTeam(), 1);        if (Source->GetTeam() == ALLIANCE)        {            SendMessageToAll(LANG_BG_TP_DROPPED_HF, CHAT_MSG_BG_SYSTEM_HORDE, Source);            UpdateWorldState(BG_TP_FLAG_UNK_HORDE, uint32(-1));        }        else        {            SendMessageToAll(LANG_BG_TP_DROPPED_AF, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);            UpdateWorldState(BG_TP_FLAG_UNK_ALLIANCE, uint32(-1));        }        m_FlagsDropTimer[GetTeamIndexByTeamId(Source->GetTeam()) ? 0 : 1] = BG_TP_FLAG_DROP_TIME;    }}
开发者ID:Ekmek,项目名称:Antiker,代码行数:85,


示例6: ClearHordeFlagPicker

void BattleGroundWS::EventPlayerDroppedFlag(Player *Source){    if (GetStatus() != STATUS_IN_PROGRESS)    {        // if not running, do not cast things at the dropper player (prevent spawning the "dropped" flag), neither send unnecessary messages        // just take off the aura        if (Source->GetTeam() == ALLIANCE)        {            if (!IsHordeFlagPickedup())                return;            if (GetHordeFlagPickerGuid() == Source->GetObjectGuid())            {                ClearHordeFlagPicker();                Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);            }        }        else        {            if (!IsAllianceFlagPickedup())                return;            if (GetAllianceFlagPickerGuid() == Source->GetObjectGuid())            {                ClearAllianceFlagPicker();                Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);            }        }        return;    }    bool set = false;    if (Source->GetTeam() == ALLIANCE)    {        if (!IsHordeFlagPickedup())            return;        if (GetHordeFlagPickerGuid() == Source->GetObjectGuid())        {            ClearHordeFlagPicker();            Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);            m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_GROUND;            Source->CastSpell(Source, BG_WS_SPELL_WARSONG_FLAG_DROPPED, true);            set = true;        }    }    else    {        if (!IsAllianceFlagPickedup())            return;        if (GetAllianceFlagPickerGuid() == Source->GetObjectGuid())        {            ClearAllianceFlagPicker();            Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);            m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_GROUND;            Source->CastSpell(Source, BG_WS_SPELL_SILVERWING_FLAG_DROPPED, true);            set = true;        }    }    if (set)    {        Source->CastSpell(Source, SPELL_RECENTLY_DROPPED_FLAG, true);        UpdateFlagState(Source->GetTeam(), 1);        if (Source->GetTeam() == ALLIANCE)        {            SendMessageToAll(LANG_BG_WS_DROPPED_HF, CHAT_MSG_BG_SYSTEM_HORDE, Source);            UpdateWorldState(BG_WS_FLAG_UNK_HORDE, uint32(-1));        }        else        {            SendMessageToAll(LANG_BG_WS_DROPPED_AF, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);            UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, uint32(-1));        }        m_FlagsDropTimer[GetOtherTeamIndex(GetTeamIndexByTeamId(Source->GetTeam()))] = BG_WS_FLAG_DROP_TIME;    }}
开发者ID:DaemonCantor,项目名称:mangos,代码行数:77,


示例7: EventPlayerCapturedFlag

void BattleGroundWS::EventPlayerCapturedFlag(Player *Source){    if (GetStatus() != STATUS_IN_PROGRESS)        return;    m_LastCapturedFlagTeam = Source->GetTeam();    Team winner = TEAM_NONE;    Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);    if (Source->GetTeam() == ALLIANCE)    {        if (!IsHordeFlagPickedup())            return;        ClearHordeFlagPicker();                             // must be before aura remove to prevent 2 events (drop+capture) at the same time                                                            // horde flag in base (but not respawned yet)        m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_WAIT_RESPAWN;                                                            // Drop Horde Flag from Player        Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);        if (GetTeamScore(ALLIANCE) < BG_WS_MAX_TEAM_SCORE)            AddPoint(ALLIANCE, 1);        PlaySoundToAll(BG_WS_SOUND_FLAG_CAPTURED_ALLIANCE);        RewardReputationToTeam(890, m_ReputationCapture, ALLIANCE);    }    else    {        if (!IsAllianceFlagPickedup())            return;        ClearAllianceFlagPicker();                          // must be before aura remove to prevent 2 events (drop+capture) at the same time                                                            // alliance flag in base (but not respawned yet)        m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_WAIT_RESPAWN;                                                            // Drop Alliance Flag from Player        Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);        if (GetTeamScore(HORDE) < BG_WS_MAX_TEAM_SCORE)            AddPoint(HORDE, 1);        PlaySoundToAll(BG_WS_SOUND_FLAG_CAPTURED_HORDE);        RewardReputationToTeam(889, m_ReputationCapture, HORDE);    }    //for flag capture is reward 2 honorable kills    RewardHonorToTeam(GetBonusHonorFromKill(2), Source->GetTeam());    // despawn flags    SpawnEvent(WS_EVENT_FLAG_A, 0, false);    SpawnEvent(WS_EVENT_FLAG_H, 0, false);    if (Source->GetTeam() == ALLIANCE)        SendMessageToAll(LANG_BG_WS_CAPTURED_HF, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);    else        SendMessageToAll(LANG_BG_WS_CAPTURED_AF, CHAT_MSG_BG_SYSTEM_HORDE, Source);    UpdateFlagState(Source->GetTeam(), 1);                  // flag state none    UpdateTeamScore(Source->GetTeam());    // only flag capture should be updated    UpdatePlayerScore(Source, SCORE_FLAG_CAPTURES, 1);      // +1 flag captures    if (GetTeamScore(ALLIANCE) == BG_WS_MAX_TEAM_SCORE)        winner = ALLIANCE;    if (GetTeamScore(HORDE) == BG_WS_MAX_TEAM_SCORE)        winner = HORDE;    if (winner)    {        UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, 0);        UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 0);        UpdateWorldState(BG_WS_FLAG_STATE_ALLIANCE, 1);        UpdateWorldState(BG_WS_FLAG_STATE_HORDE, 1);        EndBattleGround(winner);    }    else    {        m_FlagsTimer[GetOtherTeamIndex(GetTeamIndexByTeamId(Source->GetTeam()))] = BG_WS_FLAG_RESPAWN_TIME;    }}
开发者ID:DaemonCantor,项目名称:mangos,代码行数:75,


示例8: SetHordeFlagPicker

void BattlegroundWS::EventPlayerDroppedFlag(Player* player){    if (GetStatus() != STATUS_IN_PROGRESS)    {        // if not running, do not cast things at the dropper player (prevent spawning the "dropped" flag), neither send unnecessary messages        // just take off the aura        if (player->GetTeam() == ALLIANCE)        {            if (!IsHordeFlagPickedup())                return;            if (GetFlagPickerGUID(TEAM_HORDE) == player->GetGUID())            {                SetHordeFlagPicker(0);                player->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);            }        }        else        {            if (!IsAllianceFlagPickedup())                return;            if (GetFlagPickerGUID(TEAM_ALLIANCE) == player->GetGUID())            {                SetAllianceFlagPicker(0);                player->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);            }        }        return;    }    bool set = false;    if (player->GetTeam() == ALLIANCE)    {        if (!IsHordeFlagPickedup())            return;        if (GetFlagPickerGUID(TEAM_HORDE) == player->GetGUID())        {            SetHordeFlagPicker(0);            player->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);            if (_flagDebuffState == 1)              player->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);            else if (_flagDebuffState == 2)              player->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);            _flagState[TEAM_HORDE] = BG_WS_FLAG_STATE_ON_GROUND;            player->CastSpell(player, BG_WS_SPELL_WARSONG_FLAG_DROPPED, true);            set = true;        }    }    else    {        if (!IsAllianceFlagPickedup())            return;        if (GetFlagPickerGUID(TEAM_ALLIANCE) == player->GetGUID())        {            SetAllianceFlagPicker(0);            player->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);            if (_flagDebuffState == 1)              player->RemoveAurasDueToSpell(WS_SPELL_FOCUSED_ASSAULT);            else if (_flagDebuffState == 2)              player->RemoveAurasDueToSpell(WS_SPELL_BRUTAL_ASSAULT);            _flagState[TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_GROUND;            player->CastSpell(player, BG_WS_SPELL_SILVERWING_FLAG_DROPPED, true);            set = true;        }    }    if (set)    {        player->CastSpell(player, SPELL_RECENTLY_DROPPED_FLAG, true);        UpdateFlagState(player->GetTeam(), 1);        if (player->GetTeam() == ALLIANCE)        {            SendMessageToAll(LANG_BG_WS_DROPPED_HF, CHAT_MSG_BG_SYSTEM_HORDE, player);            UpdateWorldState(BG_WS_FLAG_UNK_HORDE, uint32(-1));        }        else        {            SendMessageToAll(LANG_BG_WS_DROPPED_AF, CHAT_MSG_BG_SYSTEM_ALLIANCE, player);            UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, uint32(-1));        }        _flagsDropTimer[GetTeamIndexByTeamId(player->GetTeam()) ? 0 : 1] = BG_WS_FLAG_DROP_TIME;    }}
开发者ID:SymbolixDEV,项目名称:123,代码行数:87,


示例9: EventPlayerCapturedFlag

void BattleGroundWS::EventPlayerCapturedFlag(Player *Source){    if (GetStatus() != STATUS_IN_PROGRESS)        return;    m_LastCapturedFlagTeam = Source->GetTeam();    uint32 winner = 0;    Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);    if (Source->HasAura(BG_WS_SPELL_FOCUSED_ASSAULT))        Source->RemoveAurasDueToSpell(BG_WS_SPELL_FOCUSED_ASSAULT);    if (Source->HasAura(BG_WS_SPELL_BRUTAL_ASSAULT))        Source->RemoveAurasDueToSpell(BG_WS_SPELL_BRUTAL_ASSAULT);    if (Source->GetTeam() == ALLIANCE)    {        if (!IsHordeFlagPickedup())            return;        SetHordeFlagPicker(0);                              // must be before aura remove to prevent 2 events (drop+capture) at the same time                                                            // horde flag in base (but not respawned yet)        m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_WAIT_RESPAWN;                                                            // Drop Horde Flag from Player        Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);        if (GetTeamScore(ALLIANCE) < BG_WS_MAX_TEAM_SCORE)            AddPoint(ALLIANCE, 1);        PlaySoundToAll(BG_WS_SOUND_FLAG_CAPTURED_ALLIANCE);        RewardReputationToTeam(BATTLEGROUND_WS, m_ReputationCapture, ALLIANCE);    }    else    {        if (!IsAllianceFlagPickedup())            return;        SetAllianceFlagPicker(0);                           // must be before aura remove to prevent 2 events (drop+capture) at the same time                                                            // alliance flag in base (but not respawned yet)        m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_WAIT_RESPAWN;                                                            // Drop Alliance Flag from Player        Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);        if (GetTeamScore(HORDE) < BG_WS_MAX_TEAM_SCORE)            AddPoint(HORDE, 1);        PlaySoundToAll(BG_WS_SOUND_FLAG_CAPTURED_HORDE);        RewardReputationToTeam(BATTLEGROUND_WS, m_ReputationCapture, HORDE);    }    //for flag capture is reward 2 honorable kills    RewardHonorToTeam(GetBonusHonorFromKill(sWorld.getConfig(CONFIG_UINT32_BONUS_HONOR_FLAG_WSG)), Source->GetTeam());    RewardXpToTeam(0, 0.6f, Source->GetTeam());    //flag carrier gets another 2 honorable kills    Source->RewardHonor(NULL, 0, GetBonusHonorFromKill(sWorld.getConfig(CONFIG_UINT32_BONUS_HONOR_FLAG_WSG)));    // despawn flags    SpawnEvent(WS_EVENT_FLAG_A, 0, false);    SpawnEvent(WS_EVENT_FLAG_H, 0, false);    if (Source->GetTeam() == ALLIANCE)        SendMessageToAll(LANG_BG_WS_CAPTURED_HF, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);    else        SendMessageToAll(LANG_BG_WS_CAPTURED_AF, CHAT_MSG_BG_SYSTEM_HORDE, Source);    UpdateFlagState(Source->GetTeam(), 1);                  // flag state none    UpdateTeamScore(Source->GetTeam());    // only flag capture should be updated    UpdatePlayerScore(Source, SCORE_FLAG_CAPTURES, 1);      // +1 flag captures    Source->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE,1);    if (GetTeamScore(ALLIANCE) == BG_WS_MAX_TEAM_SCORE)        winner = ALLIANCE;    if (GetTeamScore(HORDE) == BG_WS_MAX_TEAM_SCORE)        winner = HORDE;    if (winner)    {        UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, 0);        UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 0);        UpdateWorldState(BG_WS_FLAG_STATE_ALLIANCE, 1);        UpdateWorldState(BG_WS_FLAG_STATE_HORDE, 1);        EndBattleGround(winner);    }    else    {        m_FlagsTimer[GetTeamIndexByTeamId(Source->GetTeam()) ? 0 : 1] = BG_WS_FLAG_RESPAWN_TIME;    }}
开发者ID:Archives,项目名称:try,代码行数:84,


示例10: SetHordeFlagPicker

void BattleGroundWS::EventPlayerDroppedFlag(Player *Source){    if (GetStatus() != STATUS_IN_PROGRESS)    {        // if not running, do not cast things at the dropper player (prevent spawning the "dropped" flag), neither send unnecessary messages        // just take off the aura        if (Source->GetTeam() == ALLIANCE)        {            if (!this->IsHordeFlagPickedup())                return;            if (GetHordeFlagPickerGUID() == Source->GetGUID())            {                SetHordeFlagPicker(0);                Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);            }        }        else        {            if (!this->IsAllianceFlagPickedup())                return;            if (GetAllianceFlagPickerGUID() == Source->GetGUID())            {                SetAllianceFlagPicker(0);                Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);            }        }        return;    }    const char *message = "";    uint8 type = 0;    bool set = false;    if (Source->GetTeam() == ALLIANCE)    {        if (!IsHordeFlagPickedup())            return;        if (GetHordeFlagPickerGUID() == Source->GetGUID())        {            SetHordeFlagPicker(0);            Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);            m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_ON_GROUND;            message = GetMangosString(LANG_BG_WS_DROPPED_HF);            type = CHAT_MSG_BG_SYSTEM_HORDE;            Source->CastSpell(Source, BG_WS_SPELL_WARSONG_FLAG_DROPPED, true);            set = true;        }    }    else    {        if (!IsAllianceFlagPickedup())            return;        if (GetAllianceFlagPickerGUID() == Source->GetGUID())        {            SetAllianceFlagPicker(0);            Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);            m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_ON_GROUND;            message = GetMangosString(LANG_BG_WS_DROPPED_AF);            type = CHAT_MSG_BG_SYSTEM_ALLIANCE;            Source->CastSpell(Source, BG_WS_SPELL_SILVERWING_FLAG_DROPPED, true);            set = true;        }    }    if (set)    {        UpdateFlagState(Source->GetTeam(), 1);        WorldPacket data;        ChatHandler::FillMessageData(&data, Source->GetSession(), type, LANG_UNIVERSAL, NULL, Source->GetGUID(), message, NULL);        SendPacketToAll(&data);        if (Source->GetTeam() == ALLIANCE)            UpdateWorldState(BG_WS_FLAG_UNK_HORDE, uint32(-1));        else            UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, uint32(-1));        m_FlagsDropTimer[GetTeamIndexByTeamId(Source->GetTeam()) ? 0 : 1] = BG_WS_FLAG_DROP_TIME;    }}
开发者ID:magomags,项目名称:mangoszero,代码行数:80,


示例11: EventPlayerCapturedFlag

void BattleGroundWS::EventPlayerCapturedFlag(Player *Source){    if (GetStatus() != STATUS_IN_PROGRESS)        return;    uint8 type = 0;    uint32 winner = 0;    const char *message = "";    Source->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT);    if (Source->GetTeam() == ALLIANCE)    {        if (!IsHordeFlagPickedup())            return;        SetHordeFlagPicker(0);                              // must be before aura remove to prevent 2 events (drop+capture) at the same time                                                            // horde flag in base (but not respawned yet)        m_FlagState[BG_TEAM_HORDE] = BG_WS_FLAG_STATE_WAIT_RESPAWN;                                                            // Drop Horde Flag from Player        Source->RemoveAurasDueToSpell(BG_WS_SPELL_WARSONG_FLAG);        message = GetMangosString(LANG_BG_WS_CAPTURED_HF);        type = CHAT_MSG_BG_SYSTEM_ALLIANCE;        if (GetTeamScore(ALLIANCE) < BG_WS_MAX_TEAM_SCORE)            AddPoint(ALLIANCE, 1);        PlaySoundToAll(BG_WS_SOUND_FLAG_CAPTURED_ALLIANCE);        RewardReputationToTeam(890, m_ReputationCapture, ALLIANCE);    }    else    {        if (!IsAllianceFlagPickedup())            return;        SetAllianceFlagPicker(0);                           // must be before aura remove to prevent 2 events (drop+capture) at the same time                                                            // alliance flag in base (but not respawned yet)        m_FlagState[BG_TEAM_ALLIANCE] = BG_WS_FLAG_STATE_WAIT_RESPAWN;                                                            // Drop Alliance Flag from Player        Source->RemoveAurasDueToSpell(BG_WS_SPELL_SILVERWING_FLAG);        message = GetMangosString(LANG_BG_WS_CAPTURED_AF);        type = CHAT_MSG_BG_SYSTEM_HORDE;        if (GetTeamScore(HORDE) < BG_WS_MAX_TEAM_SCORE)            AddPoint(HORDE, 1);        PlaySoundToAll(BG_WS_SOUND_FLAG_CAPTURED_HORDE);        RewardReputationToTeam(889, m_ReputationCapture, HORDE);    }    //for flag capture is reward distributed according level range    RewardHonorToTeamDepOnLvl(BG_WSG_FlagCapturedHonor, Source->GetTeam());    // despawn flags    SpawnEvent(WS_EVENT_FLAG_A, 0, false);    SpawnEvent(WS_EVENT_FLAG_H, 0, false);    WorldPacket data;    ChatHandler::FillMessageData(&data, Source->GetSession(), type, LANG_UNIVERSAL, NULL, Source->GetGUID(), message, NULL);    SendPacketToAll(&data);    UpdateFlagState(Source->GetTeam(), 1);                  // flag state none    UpdateTeamScore(Source->GetTeam());    // only flag capture should be updated    UpdatePlayerScore(Source, SCORE_FLAG_CAPTURES, 1);      // +1 flag captures    if (GetTeamScore(ALLIANCE) == BG_WS_MAX_TEAM_SCORE)        winner = ALLIANCE;    if (GetTeamScore(HORDE) == BG_WS_MAX_TEAM_SCORE)        winner = HORDE;    if (winner)    {        UpdateWorldState(BG_WS_FLAG_UNK_ALLIANCE, 0);        UpdateWorldState(BG_WS_FLAG_UNK_HORDE, 0);        UpdateWorldState(BG_WS_FLAG_STATE_ALLIANCE, 1);        UpdateWorldState(BG_WS_FLAG_STATE_HORDE, 1);        EndBattleGround(winner);    }    else    {        m_FlagsTimer[GetTeamIndexByTeamId(Source->GetTeam()) ? 0 : 1] = BG_WS_FLAG_RESPAWN_TIME;    }}
开发者ID:magomags,项目名称:mangoszero,代码行数:78,



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


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