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

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

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

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

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

示例1: TC_LOG_ERROR

bool BattlegroundIC::SetupBattleground(){    for (uint8 i = 0; i < MAX_NORMAL_GAMEOBJECTS_SPAWNS; ++i)    {        if (!AddObject(BG_IC_ObjSpawnlocs[i].type, BG_IC_ObjSpawnlocs[i].entry,            BG_IC_ObjSpawnlocs[i].x, BG_IC_ObjSpawnlocs[i].y,            BG_IC_ObjSpawnlocs[i].z, BG_IC_ObjSpawnlocs[i].o,            0, 0, 0, 0, RESPAWN_ONE_DAY))        {            TC_LOG_ERROR(LOG_FILTER_BATTLEGROUND, "Isle of Conquest: There was an error spawning gameobject %u", BG_IC_ObjSpawnlocs[i].entry);            return false;        }    }    for (uint8 i = 2; i < MAX_NORMAL_NPCS_SPAWNS; ++i)    {        if (!AddCreature(BG_IC_NpcSpawnlocs[i].entry, BG_IC_NpcSpawnlocs[i].type, BG_IC_NpcSpawnlocs[i].team,            BG_IC_NpcSpawnlocs[i].x, BG_IC_NpcSpawnlocs[i].y,            BG_IC_NpcSpawnlocs[i].z, BG_IC_NpcSpawnlocs[i].o,            RESPAWN_ONE_DAY))        {            TC_LOG_ERROR(LOG_FILTER_BATTLEGROUND, "Isle of Conquest: There was an error spawning creature %u", BG_IC_NpcSpawnlocs[i].entry);            return false;        }    }    if (!AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+5, BG_IC_SpiritGuidePos[5][0], BG_IC_SpiritGuidePos[5][1], BG_IC_SpiritGuidePos[5][2], BG_IC_SpiritGuidePos[5][3], ALLIANCE)        || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+6, BG_IC_SpiritGuidePos[6][0], BG_IC_SpiritGuidePos[6][1], BG_IC_SpiritGuidePos[6][2], BG_IC_SpiritGuidePos[6][3], HORDE)        || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+3, BG_IC_SpiritGuidePos[7][0], BG_IC_SpiritGuidePos[7][1], BG_IC_SpiritGuidePos[7][2], BG_IC_SpiritGuidePos[7][3], ALLIANCE)        || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+4, BG_IC_SpiritGuidePos[8][0], BG_IC_SpiritGuidePos[8][1], BG_IC_SpiritGuidePos[8][2], BG_IC_SpiritGuidePos[8][3], HORDE))    {        TC_LOG_ERROR(LOG_FILTER_BATTLEGROUND, "Isle of Conquest: Failed to spawn initial spirit guide!");        return false;    }    gunshipHorde = CreateTransport(GO_HORDE_GUNSHIP, TRANSPORT_PERIOD_TIME);    gunshipAlliance = CreateTransport(GO_ALLIANCE_GUNSHIP, TRANSPORT_PERIOD_TIME);    if (!gunshipAlliance || !gunshipHorde)    {        TC_LOG_ERROR(LOG_FILTER_BATTLEGROUND, "Isle of Conquest: There was an error creating gunships!");        return false;    }    //Send transport init packet to all player in map    for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)    {        if (Player* player = ObjectAccessor::FindPlayer(itr->first))            SendTransportInit(player);    }    // setting correct factions for Keep Cannons    for (uint8 i = BG_IC_NPC_KEEP_CANNON_1; i < BG_IC_NPC_KEEP_CANNON_12; ++i)        GetBGCreature(i)->setFaction(BG_IC_Factions[0]);    for (uint8 i = BG_IC_NPC_KEEP_CANNON_13; i < BG_IC_NPC_KEEP_CANNON_25; ++i)        GetBGCreature(i)->setFaction(BG_IC_Factions[1]);    // correcting spawn time for keeps bombs    for (uint8 i = BG_IC_GO_HUGE_SEAFORIUM_BOMBS_A_1; i < BG_IC_GO_HUGE_SEAFORIUM_BOMBS_H_4; ++i)        GetBGObject(i)->SetRespawnTime(10);    return true;}
开发者ID:Carbinfibre,项目名称:Script-Land,代码行数:63,


示例2: switch

void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture){    if (nodePoint->nodeType != NODE_TYPE_REFINERY && nodePoint->nodeType != NODE_TYPE_QUARRY)    {        if (!AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+nodePoint->nodeType-2,            BG_IC_SpiritGuidePos[nodePoint->nodeType][0], BG_IC_SpiritGuidePos[nodePoint->nodeType][1],            BG_IC_SpiritGuidePos[nodePoint->nodeType][2], BG_IC_SpiritGuidePos[nodePoint->nodeType][3],            (nodePoint->faction == TEAM_ALLIANCE ? ALLIANCE : HORDE)))            sLog->outError("Isle of Conquest: Failed to spawn spirit guide! point: %u, team: %u, ", nodePoint->nodeType, nodePoint->faction);    }    switch(nodePoint->gameobject_type)    {    case BG_IC_GO_HANGAR_BANNER:        // all the players on the stopped transport should be teleported out        if (!gunshipAlliance || !gunshipHorde)            break;        for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; u++)        {            uint8 type = BG_IC_GO_HANGAR_TELEPORTER_1+u;            AddObject(type, (nodePoint->faction == TEAM_ALLIANCE ? GO_ALLIANCE_GUNSHIP_PORTAL : GO_HORDE_GUNSHIP_PORTAL),                BG_IC_HangarTeleporters[u].GetPositionX(), BG_IC_HangarTeleporters[u].GetPositionY(),                BG_IC_HangarTeleporters[u].GetPositionZ(), BG_IC_HangarTeleporters[u].GetOrientation(),                0, 0, 0, 0, RESPAWN_ONE_DAY);        }        //sLog->outError("BG_IC_GO_HANGAR_BANNER CAPTURED Faction: %u", nodePoint->faction);        (nodePoint->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->BuildStartMovePacket(GetBgMap());        (nodePoint->faction == TEAM_ALLIANCE ? gunshipHorde : gunshipAlliance)->BuildStopMovePacket(GetBgMap());        // we should spawn teleporters        break;    case BG_IC_GO_QUARRY_BANNER:        RemoveAuraOnTeam(SPELL_QUARRY, (nodePoint->faction == TEAM_ALLIANCE ? HORDE : ALLIANCE));        CastSpellOnTeam(SPELL_QUARRY, (nodePoint->faction == TEAM_ALLIANCE ? ALLIANCE : HORDE));        break;    case BG_IC_GO_REFINERY_BANNER:        RemoveAuraOnTeam(SPELL_OIL_REFINERY, (nodePoint->faction == TEAM_ALLIANCE ? HORDE : ALLIANCE));        CastSpellOnTeam(SPELL_OIL_REFINERY, (nodePoint->faction == TEAM_ALLIANCE ? ALLIANCE : HORDE));        break;    case BG_IC_GO_DOCKS_BANNER:        if (recapture)            break;        if (docksTimer < DOCKS_UPDATE_TIME)            docksTimer = DOCKS_UPDATE_TIME;        // we must del opposing faction vehicles when the node is captured (unused ones)        for (uint8 i = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_H : BG_IC_NPC_GLAIVE_THROWER_1_A); i < (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_2_H : BG_IC_NPC_GLAIVE_THROWER_2_A); i++)        {            if (Creature* glaiveThrower = GetBGCreature(i))            {                if (Vehicle* vehicleGlaive = glaiveThrower->GetVehicleKit())                {                    if (!vehicleGlaive->GetPassenger(0))                        DelCreature(i);                }            }        }        for (uint8 i = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_H : BG_IC_NPC_CATAPULT_1_A); i < (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_4_H  : BG_IC_NPC_CATAPULT_4_A); i++)        {            if (Creature* catapult = GetBGCreature(i))            {                if (Vehicle* vehicleGlaive = catapult->GetVehicleKit())                {                    if (!vehicleGlaive->GetPassenger(0))                        DelCreature(i);                }            }        }        // spawning glaive throwers        for (uint8 i = 0; i < MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION; i++)        {            uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_A : BG_IC_NPC_GLAIVE_THROWER_1_H)+i;            if (GetBGCreature(type) && GetBGCreature(type)->isAlive())                continue;            if (AddCreature(nodePoint->faction == TEAM_ALLIANCE ? NPC_GLAIVE_THROWER_A : NPC_GLAIVE_THROWER_H, type, nodePoint->faction,                BG_IC_DocksVehiclesGlaives[i].GetPositionX(), BG_IC_DocksVehiclesGlaives[i].GetPositionY(),                BG_IC_DocksVehiclesGlaives[i].GetPositionZ(), BG_IC_DocksVehiclesGlaives[i].GetOrientation(),                RESPAWN_ONE_DAY))                GetBGCreature(type)->setFaction(BG_IC_Factions[(nodePoint->faction == TEAM_ALLIANCE ? 0 : 1)]);        }        // spawning catapults        for (uint8 i = 0; i < MAX_CATAPULTS_SPAWNS_PER_FACTION; i++)        {            uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_A : BG_IC_NPC_CATAPULT_1_H)+i;            if (GetBGCreature(type) && GetBGCreature(type)->isAlive())                continue;            if (AddCreature(NPC_CATAPULT, type, nodePoint->faction,                BG_IC_DocksVehiclesCatapults[i].GetPositionX(), BG_IC_DocksVehiclesCatapults[i].GetPositionY(),                BG_IC_DocksVehiclesCatapults[i].GetPositionZ(), BG_IC_DocksVehiclesCatapults[i].GetOrientation(),//.........这里部分代码省略.........
开发者ID:AwkwardDev,项目名称:CataOld,代码行数:101,


示例3: GetBGObject

void BattlegroundIC::PostUpdateImpl(uint32 diff){    if (GetStatus() != STATUS_IN_PROGRESS)        return;    if (!doorsClosed)    {        if (closeFortressDoorsTimer <= diff)        {            GetBGObject(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01)->RemoveFromWorld();            GetBGObject(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01)->RemoveFromWorld();            GetBGObject(BG_IC_GO_ALLIANCE_GATE_3)->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); // Alliance door            GetBGObject(BG_IC_GO_HORDE_GATE_1)->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); // Horde door            doorsClosed = true;        } else closeFortressDoorsTimer -= diff;    }    for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; ++i)    {        if (nodePoint[i].nodeType == NODE_TYPE_DOCKS)        {            if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||                nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)            {                if (docksTimer <= diff)                {                    // we need to confirm this, i am not sure if this every 3 minutes                    for (uint8 u = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_A : BG_IC_NPC_CATAPULT_1_H); u < (nodePoint[i].faction  == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_4_A : BG_IC_NPC_CATAPULT_4_H); ++u)                    {                        if (Creature* catapult = GetBGCreature(u))                        {                            if (!catapult->IsAlive())                                catapult->Respawn(true);                        }                    }                    // we need to confirm this is blizzlike, not sure if it is every 3 minutes                    for (uint8 u = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_A : BG_IC_NPC_GLAIVE_THROWER_1_H); u < (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_2_A : BG_IC_NPC_GLAIVE_THROWER_2_H); ++u)                    {                        if (Creature* glaiveThrower = GetBGCreature(u))                        {                            if (!glaiveThrower->IsAlive())                                glaiveThrower->Respawn(true);                        }                    }                    docksTimer = DOCKS_UPDATE_TIME;                } else docksTimer -= diff;            }        }        if (nodePoint[i].nodeType == NODE_TYPE_WORKSHOP)        {            if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||                nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)            {                if (siegeEngineWorkshopTimer <= diff)                {                    uint8 siegeType = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_SIEGE_ENGINE_A : BG_IC_NPC_SIEGE_ENGINE_H);                    if (Creature* siege = GetBGCreature(siegeType)) // this always should be true                    {                        if (siege->IsAlive())                        {                            if (siege->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_UNK_14|UNIT_FLAG_IMMUNE_TO_PC))                                // following sniffs the vehicle always has UNIT_FLAG_UNK_14                                siege->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_IMMUNE_TO_PC);                            else                                siege->SetHealth(siege->GetMaxHealth());                        }                        else                            siege->Respawn(true);                    }                    // we need to confirm if it is every 3 minutes                    for (uint8 u = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_A : BG_IC_NPC_DEMOLISHER_1_H); u < (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_4_A : BG_IC_NPC_DEMOLISHER_4_H); ++u)                    {                        if (Creature* demolisher = GetBGCreature(u))                        {                            if (!demolisher->IsAlive())                                demolisher->Respawn(true);                        }                    }                    siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME;                } else siegeEngineWorkshopTimer -= diff;            }        }        // the point is waiting for a change on its banner        if (nodePoint[i].needChange)        {            if (nodePoint[i].timer <= diff)            {                uint32 nextBanner = GetNextBanner(&nodePoint[i], nodePoint[i].faction, true);                nodePoint[i].last_entry = nodePoint[i].gameobject_entry;                nodePoint[i].gameobject_entry = nextBanner;//.........这里部分代码省略.........
开发者ID:Carbinfibre,项目名称:Script-Land,代码行数:101,


示例4: TC_LOG_ERROR

void BattlegroundIC::HandleCapturedNodes(ICNodePoint* node, bool recapture){    if (node->nodeType != NODE_TYPE_REFINERY && node->nodeType != NODE_TYPE_QUARRY)    {        if (!AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+node->nodeType-2, BG_IC_SpiritGuidePos[node->nodeType], node->faction))            TC_LOG_ERROR("bg.battleground", "Isle of Conquest: Failed to spawn spirit guide! point: %u, team: %u, ", node->nodeType, node->faction);    }    switch (node->gameobject_type)    {        case BG_IC_GO_HANGAR_BANNER:            {                if (!gunshipAlliance || !gunshipHorde)                    break;                std::list<Creature*> cannons;                if (node->faction == TEAM_ALLIANCE)                    gunshipAlliance->GetCreatureListWithEntryInGrid(cannons, NPC_ALLIANCE_GUNSHIP_CANNON, 150.0f);                else                    gunshipHorde->GetCreatureListWithEntryInGrid(cannons, NPC_HORDE_GUNSHIP_CANNON, 150.0f);                for (Creature* cannon : cannons)                    cannon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; ++u)                {                    uint8 type = BG_IC_GO_HANGAR_TELEPORTER_1 + u;                    if (!AddObject(type, (node->faction == TEAM_ALLIANCE ? GO_ALLIANCE_GUNSHIP_PORTAL : GO_HORDE_GUNSHIP_PORTAL), BG_IC_HangarTeleporters[u], 0, 0, 0, 0, RESPAWN_ONE_DAY))                        TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a gunship portal. Type: %u", BG_IC_GO_HANGAR_TELEPORTER_1 + u);                }                for (uint8 u = 0; u < MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS; ++u)                {                    uint8 type = BG_IC_GO_HANGAR_TELEPORTER_EFFECT_1 + u;                    if (!AddObject(type, (node->faction == TEAM_ALLIANCE ? GO_ALLIANCE_GUNSHIP_PORTAL_EFFECTS : GO_HORDE_GUNSHIP_PORTAL_EFFECTS), BG_IC_HangarTeleporterEffects[u], 0, 0, 0, 0, RESPAWN_ONE_DAY, GO_STATE_ACTIVE))                        TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a gunship portal effects. Type: %u", BG_IC_GO_HANGAR_TELEPORTER_1 + u);                }                for (uint8 u = 0; u < MAX_TRIGGER_SPAWNS_PER_FACTION; ++u)                {                    if (!AddCreature(NPC_WORLD_TRIGGER_NOT_FLOATING, BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING, BG_IC_HangarTrigger[node->faction], node->faction, RESPAWN_ONE_DAY, node->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde))                        TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a world trigger. Type: %u", BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING);                }                for (uint8 u = 0; u < MAX_CAPTAIN_SPAWNS_PER_FACTION; ++u)                {                    uint8 type = BG_IC_NPC_GUNSHIP_CAPTAIN_1 + u;                    if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_1)                        if (AddCreature(node->faction == TEAM_ALLIANCE ? NPC_ALLIANCE_GUNSHIP_CAPTAIN : NPC_HORDE_GUNSHIP_CAPTAIN, type, BG_IC_HangarCaptains[node->faction == TEAM_ALLIANCE ? 2 : 0], node->faction, RESPAWN_ONE_DAY))                            GetBGCreature(BG_IC_NPC_GUNSHIP_CAPTAIN_1)->GetAI()->DoAction(ACTION_GUNSHIP_READY);                    if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_2)                        if (!AddCreature(node->faction == TEAM_ALLIANCE ? NPC_ALLIANCE_GUNSHIP_CAPTAIN : NPC_HORDE_GUNSHIP_CAPTAIN, type, BG_IC_HangarCaptains[node->faction == TEAM_ALLIANCE ? 3 : 1], node->faction, RESPAWN_ONE_DAY, node->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde))                            TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error spawning a world trigger. Type: %u", BG_IC_NPC_GUNSHIP_CAPTAIN_2);                }                (node->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->EnableMovement(true);                break;            }        case BG_IC_GO_QUARRY_BANNER:            RemoveAuraOnTeam(SPELL_QUARRY, (node->faction == TEAM_ALLIANCE ? HORDE : ALLIANCE));            CastSpellOnTeam(SPELL_QUARRY, (node->faction == TEAM_ALLIANCE ? ALLIANCE : HORDE));            break;        case BG_IC_GO_REFINERY_BANNER:            RemoveAuraOnTeam(SPELL_OIL_REFINERY, (node->faction == TEAM_ALLIANCE ? HORDE : ALLIANCE));            CastSpellOnTeam(SPELL_OIL_REFINERY, (node->faction == TEAM_ALLIANCE ? ALLIANCE : HORDE));            break;        case BG_IC_GO_DOCKS_BANNER:            if (recapture)                break;            if (docksTimer < DOCKS_UPDATE_TIME)                docksTimer = DOCKS_UPDATE_TIME;            // we must del opposing faction vehicles when the node is captured (unused ones)            for (uint8 i = (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_H : BG_IC_NPC_GLAIVE_THROWER_1_A); i < (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_2_H : BG_IC_NPC_GLAIVE_THROWER_2_A); ++i)            {                if (Creature* glaiveThrower = GetBGCreature(i, false))                {                    if (Vehicle* vehicleGlaive = glaiveThrower->GetVehicleKit())                    {                        if (!vehicleGlaive->GetPassenger(0))                            DelCreature(i);                    }                }            }            for (uint8 i = (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_H : BG_IC_NPC_CATAPULT_1_A); i < (node->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_4_H  : BG_IC_NPC_CATAPULT_4_A); ++i)            {                if (Creature* catapult = GetBGCreature(i, false))                {                    if (Vehicle* vehicleGlaive = catapult->GetVehicleKit())                    {                        if (!vehicleGlaive->GetPassenger(0))                            DelCreature(i);                    }                }            }//.........这里部分代码省略.........
开发者ID:Diyvol,项目名称:TrinityCore,代码行数:101,


示例5: SpawnBGObject

void BattlegroundEY::EventTeamCapturedPoint(Player* Source, uint32 Point){    if (GetStatus() != STATUS_IN_PROGRESS)        return;    uint32 Team = Source->GetTeam();    SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType, RESPAWN_ONE_DAY);    SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType + 1, RESPAWN_ONE_DAY);    SpawnBGObject(m_CapturingPointTypes[Point].DespawnNeutralObjectType + 2, RESPAWN_ONE_DAY);    if (Team == ALLIANCE)    {        m_TeamPointsCount[BG_TEAM_ALLIANCE]++;        SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance, RESPAWN_IMMEDIATELY);        SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 1, RESPAWN_IMMEDIATELY);        SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeAlliance + 2, RESPAWN_IMMEDIATELY);    }    else    {        m_TeamPointsCount[BG_TEAM_HORDE]++;        SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde, RESPAWN_IMMEDIATELY);        SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 1, RESPAWN_IMMEDIATELY);        SpawnBGObject(m_CapturingPointTypes[Point].SpawnObjectTypeHorde + 2, RESPAWN_IMMEDIATELY);    }    //buff isn't respawned    m_PointOwnedByTeam[Point] = Team;    m_PointState[Point] = EY_POINT_UNDER_CONTROL;    if (Team == ALLIANCE)        SendMessageToAll(m_CapturingPointTypes[Point].MessageIdAlliance, CHAT_MSG_BG_SYSTEM_ALLIANCE, Source);    else        SendMessageToAll(m_CapturingPointTypes[Point].MessageIdHorde, CHAT_MSG_BG_SYSTEM_HORDE, Source);    if (BgCreatures[Point])        DelCreature(Point);    WorldSafeLocsEntry const* sg = NULL;    sg = sWorldSafeLocsStore.LookupEntry(m_CapturingPointTypes[Point].GraveYardId);    if (!sg || !AddSpiritGuide(Point, sg->x, sg->y, sg->z, 3.124139f, Team))        sLog->outError(LOG_FILTER_BATTLEGROUND, "BatteGroundEY: Failed to spawn spirit guide! point: %u, team: %u, graveyard_id: %u",            Point, Team, m_CapturingPointTypes[Point].GraveYardId);//    SpawnBGCreature(Point, RESPAWN_IMMEDIATELY);    UpdatePointsIcons(Team, Point);    UpdatePointsCount(Team);    if (Point >= EY_POINTS_MAX)        return;    Creature* trigger = GetBGCreature(Point + 6);//0-5 spirit guides    if (!trigger)       trigger = AddCreature(WORLD_TRIGGER, Point+6, Team, BG_EY_TriggerPositions[Point][0], BG_EY_TriggerPositions[Point][1], BG_EY_TriggerPositions[Point][2], BG_EY_TriggerPositions[Point][3]);    //add bonus honor aura trigger creature when node is accupied    //cast bonus aura (+50% honor in 25yards)    //aura should only apply to players who have accupied the node, set correct faction for trigger    if (trigger)    {        trigger->setFaction(Team == ALLIANCE ? 84 : 83);        trigger->CastSpell(trigger, SPELL_HONORABLE_DEFENDER_25Y, false);    }}
开发者ID:AwkwardDev,项目名称:MistCore,代码行数:66,


示例6: DelCreature

void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player* Source){    if (GraveyardStatus[i] == Attackers)        return;    DelCreature(BG_SA_MAXNPC + i);    GraveyardStatus[i] = Source->GetTeamId();    WorldSafeLocsEntry const* sg = sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[i]);    if (!sg)    {        TC_LOG_ERROR("bg.battleground", "BattlegroundSA::CaptureGraveyard: non-existant GY entry: %u", BG_SA_GYEntries[i]);        return;    }    AddSpiritGuide(i + BG_SA_MAXNPC, sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], GraveyardStatus[i]);    uint32 npc = 0;    uint32 flag = 0;    switch (i)    {        case BG_SA_LEFT_CAPTURABLE_GY:            flag = BG_SA_LEFT_FLAG;            DelObject(flag);            AddObject(flag, (BG_SA_ObjEntries[flag] - (Source->GetTeamId() == TEAM_ALLIANCE ? 0 : 1)),                BG_SA_ObjSpawnlocs[flag], 0, 0, 0, 0, RESPAWN_ONE_DAY);            npc = BG_SA_NPC_RIGSPARK;            if (Creature* rigspark = AddCreature(BG_SA_NpcEntries[npc], npc, BG_SA_NpcSpawnlocs[npc], Attackers))                rigspark->AI()->Talk(TEXT_SPARKLIGHT_RIGSPARK_SPAWN);            for (uint8 j = BG_SA_DEMOLISHER_7; j <= BG_SA_DEMOLISHER_8; j++)            {                AddCreature(BG_SA_NpcEntries[j], j, BG_SA_NpcSpawnlocs[j], (Attackers == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE), 600);                if (Creature* dem = GetBGCreature(j))                    dem->setFaction(BG_SA_Factions[Attackers]);            }            UpdateWorldState(BG_SA_LEFT_GY_ALLIANCE, GraveyardStatus[i] == TEAM_ALLIANCE);            UpdateWorldState(BG_SA_LEFT_GY_HORDE, GraveyardStatus[i] == TEAM_HORDE);            if (Creature* c = Source->FindNearestCreature(NPC_WORLD_TRIGGER, 500.0f))                SendChatMessage(c, Source->GetTeamId() == TEAM_ALLIANCE ? TEXT_WEST_GRAVEYARD_CAPTURED_A : TEXT_WEST_GRAVEYARD_CAPTURED_H, Source);            break;        case BG_SA_RIGHT_CAPTURABLE_GY:            flag = BG_SA_RIGHT_FLAG;            DelObject(flag);            AddObject(flag, (BG_SA_ObjEntries[flag] - (Source->GetTeamId() == TEAM_ALLIANCE ? 0 : 1)),                BG_SA_ObjSpawnlocs[flag], 0, 0, 0, 0, RESPAWN_ONE_DAY);            npc = BG_SA_NPC_SPARKLIGHT;            if (Creature* sparklight = AddCreature(BG_SA_NpcEntries[npc], npc, BG_SA_NpcSpawnlocs[npc], Attackers))                sparklight->AI()->Talk(TEXT_SPARKLIGHT_RIGSPARK_SPAWN);            for (uint8 j = BG_SA_DEMOLISHER_5; j <= BG_SA_DEMOLISHER_6; j++)            {                AddCreature(BG_SA_NpcEntries[j], j, BG_SA_NpcSpawnlocs[j], Attackers == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE, 600);                if (Creature* dem = GetBGCreature(j))                    dem->setFaction(BG_SA_Factions[Attackers]);            }            UpdateWorldState(BG_SA_RIGHT_GY_ALLIANCE, GraveyardStatus[i] == TEAM_ALLIANCE);            UpdateWorldState(BG_SA_RIGHT_GY_HORDE, GraveyardStatus[i] == TEAM_HORDE);            if (Creature* c = Source->FindNearestCreature(NPC_WORLD_TRIGGER, 500.0f))                SendChatMessage(c, Source->GetTeamId() == TEAM_ALLIANCE ? TEXT_EAST_GRAVEYARD_CAPTURED_A : TEXT_EAST_GRAVEYARD_CAPTURED_H, Source);            break;        case BG_SA_CENTRAL_CAPTURABLE_GY:            flag = BG_SA_CENTRAL_FLAG;            DelObject(flag);            AddObject(flag, (BG_SA_ObjEntries[flag] - (Source->GetTeamId() == TEAM_ALLIANCE ? 0 : 1)),              BG_SA_ObjSpawnlocs[flag], 0, 0, 0, 0, RESPAWN_ONE_DAY);            UpdateWorldState(BG_SA_CENTER_GY_ALLIANCE, GraveyardStatus[i] == TEAM_ALLIANCE);            UpdateWorldState(BG_SA_CENTER_GY_HORDE, GraveyardStatus[i] == TEAM_HORDE);            if (Creature* c = Source->FindNearestCreature(NPC_WORLD_TRIGGER, 500.0f))                SendChatMessage(c, Source->GetTeamId() == TEAM_ALLIANCE ? TEXT_SOUTH_GRAVEYARD_CAPTURED_A : TEXT_SOUTH_GRAVEYARD_CAPTURED_H, Source);            break;        default:            ASSERT(false);            break;    };}
开发者ID:Allysia1,项目名称:TrinityCore,代码行数:88,


示例7: SendMessageToAll

void BattlegroundSA::TitanRelicActivated(Player* clicker){    if (!clicker)        return;    if (GateStatus[BG_SA_ANCIENT_GATE] == BG_SA_GATE_DESTROYED &&        GateStatus[BG_SA_YELLOW_GATE] == BG_SA_GATE_DESTROYED &&        (GateStatus[BG_SA_PURPLE_GATE] == BG_SA_GATE_DESTROYED || GateStatus[BG_SA_RED_GATE] == BG_SA_GATE_DESTROYED) &&        (GateStatus[BG_SA_GREEN_GATE] == BG_SA_GATE_DESTROYED || GateStatus[BG_SA_BLUE_GATE] == BG_SA_GATE_DESTROYED))    {        if (clicker->GetTeamId() == Attackers)        {            if (clicker->GetTeamId() == TEAM_ALLIANCE)                SendMessageToAll(LANG_BG_SA_ALLIANCE_CAPTURED_RELIC, CHAT_MSG_BG_SYSTEM_NEUTRAL);            else                SendMessageToAll(LANG_BG_SA_HORDE_CAPTURED_RELIC, CHAT_MSG_BG_SYSTEM_NEUTRAL);            if (Status == BG_SA_ROUND_ONE)            {                RoundScores[0].winner = Attackers;                RoundScores[0].time = TotalTime;                // Achievement Storm the Beach (1310)                for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)                {                    if (Player* player = ObjectAccessor::FindPlayer(itr->first))                        if (player->GetTeamId() == Attackers)                            player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, 65246);                }                Attackers = (Attackers == TEAM_ALLIANCE) ? TEAM_HORDE : TEAM_ALLIANCE;                Status = BG_SA_SECOND_WARMUP;                TotalTime = 0;                ToggleTimer();                if (Creature* c = GetBGCreature(BG_SA_NPC_KANRETHAD))                    SendChatMessage(c, TEXT_ROUND_1_FINISHED);                UpdateWaitTimer = 5000;                SignaledRoundTwo = false;                SignaledRoundTwoHalfMin = false;                InitSecondRound = true;                ResetObjs();                GetBgMap()->UpdateAreaDependentAuras();                CastSpellOnTeam(SPELL_END_OF_ROUND, ALLIANCE);                CastSpellOnTeam(SPELL_END_OF_ROUND, HORDE);            }            else if (Status == BG_SA_ROUND_TWO)            {                RoundScores[1].winner = Attackers;                RoundScores[1].time = TotalTime;                ToggleTimer();                // Achievement Storm the Beach (1310)                for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)                {                    if (Player* player = ObjectAccessor::FindPlayer(itr->first))                        if (player->GetTeamId() == Attackers && RoundScores[1].winner == Attackers)                            player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, 65246);                }                if (RoundScores[0].time == RoundScores[1].time)                    EndBattleground(0);                else if (RoundScores[0].time < RoundScores[1].time)                    EndBattleground(RoundScores[0].winner == TEAM_ALLIANCE ? ALLIANCE : HORDE);                else                    EndBattleground(RoundScores[1].winner == TEAM_ALLIANCE ? ALLIANCE : HORDE);            }        }    }}
开发者ID:Allysia1,项目名称:TrinityCore,代码行数:69,


示例8: DelCreature

void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player* Source){    if (GraveyardStatus[i] == Attackers)        return;    DelCreature(BG_SA_MAXNPC + i);    GraveyardStatus[i] = Source->GetTeamId();    WorldSafeLocsEntry const* sg = sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[i]);    if (!sg)    {        TC_LOG_ERROR("bg.battleground", "BattlegroundSA::CaptureGraveyard: non-existant GY entry: %u", BG_SA_GYEntries[i]);        return;    }    AddSpiritGuide(i + BG_SA_MAXNPC, sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], (GraveyardStatus[i] == TEAM_ALLIANCE?  ALLIANCE : HORDE));    uint32 npc = 0;    uint32 flag = 0;    switch (i)    {        case BG_SA_LEFT_CAPTURABLE_GY:            flag = BG_SA_LEFT_FLAG;            DelObject(flag);            AddObject(flag, (BG_SA_ObjEntries[flag] - (Source->GetTeamId() == TEAM_ALLIANCE ? 0 : 1)),            BG_SA_ObjSpawnlocs[flag][0], BG_SA_ObjSpawnlocs[flag][1],            BG_SA_ObjSpawnlocs[flag][2], BG_SA_ObjSpawnlocs[flag][3], 0, 0, 0, 0, RESPAWN_ONE_DAY);            npc = BG_SA_NPC_RIGSPARK;            AddCreature(BG_SA_NpcEntries[npc], npc, Attackers,              BG_SA_NpcSpawnlocs[npc][0], BG_SA_NpcSpawnlocs[npc][1],              BG_SA_NpcSpawnlocs[npc][2], BG_SA_NpcSpawnlocs[npc][3]);            for (uint8 j = BG_SA_DEMOLISHER_7; j <= BG_SA_DEMOLISHER_8; j++)            {                AddCreature(BG_SA_NpcEntries[j], j, (Attackers == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE),                    BG_SA_NpcSpawnlocs[j][0], BG_SA_NpcSpawnlocs[j][1],                    BG_SA_NpcSpawnlocs[j][2], BG_SA_NpcSpawnlocs[j][3], 600);                if (Creature* dem = GetBGCreature(j))                    dem->setFaction(BG_SA_Factions[Attackers]);            }            UpdateWorldState(BG_SA_LEFT_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 1 : 0));            UpdateWorldState(BG_SA_LEFT_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 0 : 1));            if (Source->GetTeamId() == TEAM_ALLIANCE)                SendWarningToAll(LANG_BG_SA_A_GY_WEST);            else                SendWarningToAll(LANG_BG_SA_H_GY_WEST);            break;        case BG_SA_RIGHT_CAPTURABLE_GY:            flag = BG_SA_RIGHT_FLAG;            DelObject(flag);            AddObject(flag, (BG_SA_ObjEntries[flag] - (Source->GetTeamId() == TEAM_ALLIANCE ? 0 : 1)),              BG_SA_ObjSpawnlocs[flag][0], BG_SA_ObjSpawnlocs[flag][1],              BG_SA_ObjSpawnlocs[flag][2], BG_SA_ObjSpawnlocs[flag][3], 0, 0, 0, 0, RESPAWN_ONE_DAY);            npc = BG_SA_NPC_SPARKLIGHT;            AddCreature(BG_SA_NpcEntries[npc], npc, Attackers,              BG_SA_NpcSpawnlocs[npc][0], BG_SA_NpcSpawnlocs[npc][1],              BG_SA_NpcSpawnlocs[npc][2], BG_SA_NpcSpawnlocs[npc][3]);            for (uint8 j = BG_SA_DEMOLISHER_5; j <= BG_SA_DEMOLISHER_6; j++)            {                AddCreature(BG_SA_NpcEntries[j], j, (Attackers == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE),                    BG_SA_NpcSpawnlocs[j][0], BG_SA_NpcSpawnlocs[j][1],                    BG_SA_NpcSpawnlocs[j][2], BG_SA_NpcSpawnlocs[j][3], 600);                if (Creature* dem = GetBGCreature(j))                    dem->setFaction(BG_SA_Factions[Attackers]);            }            UpdateWorldState(BG_SA_RIGHT_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 1 : 0));            UpdateWorldState(BG_SA_RIGHT_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 0 : 1));            if (Source->GetTeamId() == TEAM_ALLIANCE)                SendWarningToAll(LANG_BG_SA_A_GY_EAST);            else                SendWarningToAll(LANG_BG_SA_H_GY_EAST);            break;        case BG_SA_CENTRAL_CAPTURABLE_GY:            flag = BG_SA_CENTRAL_FLAG;            DelObject(flag);            AddObject(flag, (BG_SA_ObjEntries[flag] - (Source->GetTeamId() == TEAM_ALLIANCE ? 0 : 1)),              BG_SA_ObjSpawnlocs[flag][0], BG_SA_ObjSpawnlocs[flag][1],              BG_SA_ObjSpawnlocs[flag][2], BG_SA_ObjSpawnlocs[flag][3], 0, 0, 0, 0, RESPAWN_ONE_DAY);            UpdateWorldState(BG_SA_CENTER_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 1 : 0));            UpdateWorldState(BG_SA_CENTER_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE ? 0 : 1));            if (Source->GetTeamId() == TEAM_ALLIANCE)                SendWarningToAll(LANG_BG_SA_A_GY_SOUTH);            else                SendWarningToAll(LANG_BG_SA_H_GY_SOUTH);            break;        default:            ASSERT(false);            break;    };}
开发者ID:Davuk,项目名称:SkyFire.548,代码行数:97,


示例9: GetBGObject

void BattlegroundIC::PostUpdateImpl(uint32 diff){    if (GetStatus() != STATUS_IN_PROGRESS)        return;    if (!doorsClosed)    {        if (closeFortressDoorsTimer <= diff)        {            GetBGObject(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR01)->RemoveFromWorld();            GetBGObject(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR01)->RemoveFromWorld();            GetBGObject(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR02)->RemoveFromWorld();            GetBGObject(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR02)->RemoveFromWorld();            GetBGObject(BG_IC_GO_DOODAD_ND_HUMAN_GATE_CLOSEDFX_DOOR03)->RemoveFromWorld();            GetBGObject(BG_IC_GO_DOODAD_ND_WINTERORC_WALL_GATEFX_DOOR03)->RemoveFromWorld();            GetBGObject(BG_IC_GO_ALLIANCE_GATE_1)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);            GetBGObject(BG_IC_GO_HORDE_GATE_1)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);            GetBGObject(BG_IC_GO_ALLIANCE_GATE_2)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);            GetBGObject(BG_IC_GO_HORDE_GATE_2)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);            GetBGObject(BG_IC_GO_ALLIANCE_GATE_3)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);            GetBGObject(BG_IC_GO_HORDE_GATE_3)->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);            doorsClosed = true;        } else closeFortressDoorsTimer -= diff;    }    for (uint8 i = NODE_TYPE_REFINERY; i < MAX_NODE_TYPES; ++i)    {        if (nodePoint[i].nodeType == NODE_TYPE_DOCKS)        {            if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||                nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)            {                if (nodePoint[i].timer <= diff)                {                    // we need to confirm this, i am not sure if this every 3 minutes                    for (uint8 j = 0; j < MAX_CATAPULTS_SPAWNS_PER_FACTION; ++j)                    {                        uint8 type = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_A : BG_IC_NPC_CATAPULT_1_H)+j;                        if (Creature* catapult = GetBGCreature(type))                            if (!catapult->IsAlive())                            {                                // Check if creature respawn time is properly saved                                RespawnMap::iterator itr = respawnMap.find(catapult->GetGUIDLow());                                if (itr == respawnMap.end() || time(NULL) < itr->second)                                    continue;                                catapult->Relocate(BG_IC_DocksVehiclesCatapults[j].GetPositionX(), BG_IC_DocksVehiclesCatapults[j].GetPositionY(), BG_IC_DocksVehiclesCatapults[j].GetPositionZ(), BG_IC_DocksVehiclesCatapults[j].GetOrientation());                                catapult->Respawn(true);                                respawnMap.erase(itr);                            }                    }                    // we need to confirm this is blizzlike, not sure if it is every 3 minutes                    for (uint8 j = 0; j < MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION; ++j)                    {                        uint8 type = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_A : BG_IC_NPC_GLAIVE_THROWER_1_H)+j;                        if (Creature* glaiveThrower = GetBGCreature(type))                            if (!glaiveThrower->IsAlive())                            {                                // Check if creature respawn time is properly saved                                RespawnMap::iterator itr = respawnMap.find(glaiveThrower->GetGUIDLow());                                if (itr == respawnMap.end() || time(NULL) < itr->second)                                    continue;                                glaiveThrower->Relocate(BG_IC_DocksVehiclesGlaives[j].GetPositionX(), BG_IC_DocksVehiclesGlaives[j].GetPositionY(), BG_IC_DocksVehiclesGlaives[j].GetPositionZ(), BG_IC_DocksVehiclesGlaives[j].GetOrientation());                                glaiveThrower->Respawn(true);                                respawnMap.erase(itr);                            }                    }                    docksTimer = DOCKS_UPDATE_TIME;                }                else                    nodePoint[i].timer -= diff;            }        }        if (nodePoint[i].nodeType == NODE_TYPE_WORKSHOP)        {            if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||                nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)            {                if (siegeEngineWorkshopTimer <= diff)                {                    uint8 siegeType = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_SIEGE_ENGINE_A : BG_IC_NPC_SIEGE_ENGINE_H);                    if (Creature* siege = GetBGCreature(siegeType)) // this always should be true                        if (!siege->IsAlive())                        {                            // Check if creature respawn time is properly saved                            RespawnMap::iterator itr = respawnMap.find(siege->GetGUIDLow());                            if (itr == respawnMap.end() || time(NULL) < itr->second)                                continue;                            siege->Relocate(BG_IC_WorkshopVehicles[4].GetPositionX(), BG_IC_WorkshopVehicles[4].GetPositionY(), BG_IC_WorkshopVehicles[4].GetPositionZ(), BG_IC_WorkshopVehicles[4].GetOrientation());                            siege->Respawn(true);                            respawnMap.erase(itr);                        }//.........这里部分代码省略.........
开发者ID:mynew4,项目名称:azerothcore-wotlk,代码行数:101,


示例10: switch

void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture){    if (nodePoint->nodeType != NODE_TYPE_REFINERY && nodePoint->nodeType != NODE_TYPE_QUARRY)    {        if (!AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+nodePoint->nodeType-2,            BG_IC_SpiritGuidePos[nodePoint->nodeType][0], BG_IC_SpiritGuidePos[nodePoint->nodeType][1],            BG_IC_SpiritGuidePos[nodePoint->nodeType][2], BG_IC_SpiritGuidePos[nodePoint->nodeType][3],            nodePoint->faction))            sLog->outError("Isle of Conquest: Failed to spawn spirit guide! point: %u, team: %u, ", nodePoint->nodeType, nodePoint->faction);    }    switch (nodePoint->gameobject_type)    {        case BG_IC_GO_HANGAR_BANNER:        {            if (!gunshipAlliance || !gunshipHorde)                break;            std::list<Creature*> cannons;            if (nodePoint->faction == TEAM_ALLIANCE)                gunshipAlliance->GetCreatureListWithEntryInGrid(cannons, NPC_ALLIANCE_GUNSHIP_CANNON, 150.0f);            else                gunshipHorde->GetCreatureListWithEntryInGrid(cannons, NPC_HORDE_GUNSHIP_CANNON, 150.0f);            for (std::list<Creature*>::const_iterator itr = cannons.begin(); itr != cannons.end(); ++itr)                (*itr)->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);            for (uint8 u = 0; u < MAX_HANGAR_TELEPORTERS_SPAWNS; ++u)            {                uint8 type = BG_IC_GO_HANGAR_TELEPORTER_1 + u;                if (!AddObject(type, (nodePoint->faction == TEAM_ALLIANCE ? GO_ALLIANCE_GUNSHIP_PORTAL : GO_HORDE_GUNSHIP_PORTAL), BG_IC_HangarTeleporters[u].GetPositionX(), BG_IC_HangarTeleporters[u].GetPositionY(), BG_IC_HangarTeleporters[u].GetPositionZ(), BG_IC_HangarTeleporters[u].GetOrientation(), 0, 0, 0, 0, RESPAWN_ONE_DAY))                    sLog->outError("Isle of Conquest: There was an error spawning a gunship portal. Type: %u", BG_IC_GO_HANGAR_TELEPORTER_1 + u);            }            for (uint8 u = 0; u < MAX_HANGAR_TELEPORTER_EFFECTS_SPAWNS; ++u)            {                uint8 type = BG_IC_GO_HANGAR_TELEPORTER_EFFECT_1 + u;                if (!AddObject(type, (nodePoint->faction == TEAM_ALLIANCE ? GO_ALLIANCE_GUNSHIP_PORTAL_EFFECTS : GO_HORDE_GUNSHIP_PORTAL_EFFECTS), BG_IC_HangarTeleporterEffects[u].GetPositionX(), BG_IC_HangarTeleporterEffects[u].GetPositionY(), BG_IC_HangarTeleporterEffects[u].GetPositionZ(), BG_IC_HangarTeleporterEffects[u].GetOrientation(), 0, 0, 0, 0, RESPAWN_ONE_DAY, GO_STATE_ACTIVE))                    sLog->outError("Isle of Conquest: There was an error spawning a gunship portal effects. Type: %u", BG_IC_GO_HANGAR_TELEPORTER_1 + u);            }            for (uint8 u = 0; u < MAX_TRIGGER_SPAWNS_PER_FACTION; ++u)            {                if (!AddCreature(NPC_WORLD_TRIGGER_NOT_FLOATING, BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING, BG_IC_HangarTrigger[nodePoint->faction].GetPositionX(), BG_IC_HangarTrigger[nodePoint->faction].GetPositionY(), BG_IC_HangarTrigger[nodePoint->faction].GetPositionZ(), BG_IC_HangarTrigger[nodePoint->faction].GetOrientation(), RESPAWN_ONE_DAY, nodePoint->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde))                    sLog->outError("Isle of Conquest: There was an error spawning a world trigger. Type: %u", BG_IC_NPC_WORLD_TRIGGER_NOT_FLOATING);            }            for (uint8 u = 0; u < MAX_CAPTAIN_SPAWNS_PER_FACTION; ++u)            {                uint8 type = BG_IC_NPC_GUNSHIP_CAPTAIN_1 + u;                if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_1)                    if (AddCreature(nodePoint->faction == TEAM_ALLIANCE ? NPC_ALLIANCE_GUNSHIP_CAPTAIN : NPC_HORDE_GUNSHIP_CAPTAIN, type, BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 2 : 0].GetPositionX(), BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 2 : 0].GetPositionY(), BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 2 : 0].GetPositionZ(), BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 2 : 0].GetOrientation(), RESPAWN_ONE_DAY))                        GetBGCreature(BG_IC_NPC_GUNSHIP_CAPTAIN_1)->GetAI()->DoAction(ACTION_GUNSHIP_READY);                if (type == BG_IC_NPC_GUNSHIP_CAPTAIN_2)                    if (!AddCreature(nodePoint->faction == TEAM_ALLIANCE ? NPC_ALLIANCE_GUNSHIP_CAPTAIN : NPC_HORDE_GUNSHIP_CAPTAIN, type, BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 3 : 1].GetPositionX(), BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 3 : 1].GetPositionY(), BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 3 : 1].GetPositionZ(), BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 3 : 1].GetOrientation(), RESPAWN_ONE_DAY, nodePoint->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde))                        sLog->outError("Isle of Conquest: There was an error spawning a world trigger. Type: %u", BG_IC_NPC_GUNSHIP_CAPTAIN_2);            }            (nodePoint->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->EnableMovement(true);            break;        }        case BG_IC_GO_QUARRY_BANNER:            RemoveAuraOnTeam(SPELL_QUARRY, GetOtherTeamId(nodePoint->faction));            CastSpellOnTeam(SPELL_QUARRY, nodePoint->faction);            break;        case BG_IC_GO_REFINERY_BANNER:            RemoveAuraOnTeam(SPELL_OIL_REFINERY, GetOtherTeamId(nodePoint->faction));            CastSpellOnTeam(SPELL_OIL_REFINERY, nodePoint->faction);            break;        case BG_IC_GO_DOCKS_BANNER:            if (recapture)                break;            if (docksTimer < DOCKS_UPDATE_TIME)                docksTimer = DOCKS_UPDATE_TIME;            // spawning glaive throwers            for (uint8 i = 0; i < MAX_GLAIVE_THROWERS_SPAWNS_PER_FACTION; ++i)            {                uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_A : BG_IC_NPC_GLAIVE_THROWER_1_H)+i;                if (GetBGCreature(type))                    continue;                if (AddCreature(nodePoint->faction == TEAM_ALLIANCE ? NPC_GLAIVE_THROWER_A : NPC_GLAIVE_THROWER_H, type,                        BG_IC_DocksVehiclesGlaives[i].GetPositionX(), BG_IC_DocksVehiclesGlaives[i].GetPositionY(),                        BG_IC_DocksVehiclesGlaives[i].GetPositionZ(), BG_IC_DocksVehiclesGlaives[i].GetOrientation(),                        RESPAWN_ONE_DAY))                        GetBGCreature(type)->setFaction(BG_IC_Factions[nodePoint->faction]);            }            // spawning catapults            for (uint8 i = 0; i < MAX_CATAPULTS_SPAWNS_PER_FACTION; ++i)            {                uint8 type = (nodePoint->faction == TEAM_ALLIANCE ? BG_IC_NPC_CATAPULT_1_A : BG_IC_NPC_CATAPULT_1_H)+i;                if (GetBGCreature(type))                    continue;//.........这里部分代码省略.........
开发者ID:mynew4,项目名称:azerothcore-wotlk,代码行数:101,



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


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