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

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

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

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

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

示例1: _NodeOccupied

void BattleGroundAB::_NodeOccupied(uint8 node, Team team){    if (!AddSpiritGuide(node, BG_AB_SpiritGuidePos[node][0], BG_AB_SpiritGuidePos[node][1], BG_AB_SpiritGuidePos[node][2], BG_AB_SpiritGuidePos[node][3], team))        sLog.outError("Failed to spawn spirit guide! point: %u, team: %u,", node, team);    uint8 capturedNodes = 0;    for (uint8 i = 0; i < BG_AB_NODES_MAX; ++i)    {        if (m_Nodes[node] == GetTeamIndexByTeamId(team) + BG_AB_NODE_TYPE_OCCUPIED && !m_NodeTimers[i])            ++capturedNodes;    }    if (capturedNodes >= 5)        CastSpellOnTeam(SPELL_AB_QUEST_REWARD_5_BASES, team);    if (capturedNodes >= 4)        CastSpellOnTeam(SPELL_AB_QUEST_REWARD_4_BASES, team);}
开发者ID:gitter-badger,项目名称:OregonCore,代码行数:16,


示例2: _NodeOccupied

void BattleGroundAB::_NodeOccupied(uint8 node,Team team){   if (!AddSpiritGuide(node, BG_AB_SpiritGuidePos[node][0], BG_AB_SpiritGuidePos[node][1], BG_AB_SpiritGuidePos[node][2], BG_AB_SpiritGuidePos[node][3], team))        sLog.outLog(LOG_DEFAULT, "ERROR: Failed to spawn spirit guide! point: %u, team: %u,", node, team);//   SpawnBGCreature(node,RESPAWN_IMMEDIATELY);    uint8 capturedNodes = 0;    for (uint8 i = 0; i < BG_AB_DYNAMIC_NODES_COUNT; ++i)    {        if (m_Nodes[node] == GetTeamIndexByTeamId(team) + BG_AB_NODE_TYPE_OCCUPIED && !m_NodeTimers[i])            ++capturedNodes;    }    if (capturedNodes >= 5)        CastSpellOnTeam(SPELL_AB_QUEST_REWARD_5_BASES, team);    if (capturedNodes >= 4)        CastSpellOnTeam(SPELL_AB_QUEST_REWARD_4_BASES, team);}
开发者ID:Xadras,项目名称:looking4group-core,代码行数:17,


示例3: RemoveSpiritGuide

void IsleOfConquest::SpawnGraveyard( uint32 id, uint32 team ){    if( id >= IOC_NUM_GRAVEYARDS )        return;    IOCGraveyard &gy = graveyards[ id ];    if( gy.owner == team )        return;    gy.owner = team;    if( gy.spiritguide != NULL ){        RemoveSpiritGuide( gy.spiritguide );        gy.spiritguide->Despawn( 0, 0 );    }    gy.spiritguide = SpawnSpiritGuide( SpiritGuideLocations[ id ], team );    AddSpiritGuide( gy.spiritguide );}
开发者ID:Declipe,项目名称:AscEmu,代码行数:18,


示例4: ApplyPhaseMask

void BattlegroundAB::NodeOccupied(uint8 node){	ApplyPhaseMask();	AddSpiritGuide(node, BG_AB_SpiritGuidePos[node][0], BG_AB_SpiritGuidePos[node][1], BG_AB_SpiritGuidePos[node][2], BG_AB_SpiritGuidePos[node][3], _capturePointInfo[node]._ownerTeamId);	++_controlledPoints[_capturePointInfo[node]._ownerTeamId];    if (_controlledPoints[_capturePointInfo[node]._ownerTeamId] >= 5)        CastSpellOnTeam(SPELL_AB_QUEST_REWARD_5_BASES, _capturePointInfo[node]._ownerTeamId);    if (_controlledPoints[_capturePointInfo[node]._ownerTeamId] >= 4)        CastSpellOnTeam(SPELL_AB_QUEST_REWARD_4_BASES, _capturePointInfo[node]._ownerTeamId);	Creature* trigger = GetBgMap()->GetCreature(BgCreatures[BG_AB_ALL_NODES_COUNT + node]);    if (!trigger)        trigger = AddCreature(WORLD_TRIGGER, BG_AB_ALL_NODES_COUNT + node, BG_AB_NodePositions[node][0], BG_AB_NodePositions[node][1], BG_AB_NodePositions[node][2], BG_AB_NodePositions[node][3]);    if (trigger)    {        trigger->setFaction(_capturePointInfo[node]._ownerTeamId == TEAM_ALLIANCE ? 84 : 83);        trigger->CastSpell(trigger, SPELL_HONORABLE_DEFENDER_25Y, false);    }}
开发者ID:AlexHjelm,项目名称:sunwell,代码行数:21,


示例5: DelCreature

void BattleGroundSA::CaptureGraveyard(BG_SA_Graveyards i){    DelCreature(BG_SA_MAXNPC + i);    GraveyardStatus[i] = (GraveyardStatus[i] == TEAM_ALLIANCE? TEAM_HORDE : TEAM_ALLIANCE);    WorldSafeLocsEntry const *sg = NULL;    sg = sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[i]);    AddSpiritGuide(i + BG_SA_MAXNPC, sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], (GraveyardStatus[i] == TEAM_ALLIANCE?  ALLIANCE : HORDE));    uint32 npc = 0;    switch(i)    {    case BG_SA_LEFT_CAPTURABLE_GY:        SpawnBGObject(BG_SA_LEFT_FLAG,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]);        UpdateWorldState(BG_SA_LEFT_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE? 1:0));        UpdateWorldState(BG_SA_LEFT_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE? 0:1));        break;    case BG_SA_RIGHT_CAPTURABLE_GY:        SpawnBGObject(BG_SA_RIGHT_FLAG, 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]);        UpdateWorldState(BG_SA_RIGHT_GY_ALLIANCE, (GraveyardStatus[i] == TEAM_ALLIANCE? 1:0));        UpdateWorldState(BG_SA_RIGHT_GY_HORDE, (GraveyardStatus[i] == TEAM_ALLIANCE? 0:1));        break;    case BG_SA_CENTRAL_CAPTURABLE_GY:        SpawnBGObject(BG_SA_CENTRAL_FLAG, 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));        break;    default:        ASSERT(0);        break;    };}
开发者ID:Rhyuk,项目名称:Dev,代码行数:39,


示例6: HandleCapturedNodes

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], nodePoint->faction))            TC_LOG_ERROR("bg.battleground", "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 (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, (nodePoint->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, (nodePoint->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[nodePoint->faction], nodePoint->faction, RESPAWN_ONE_DAY, nodePoint->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(nodePoint->faction == TEAM_ALLIANCE ? NPC_ALLIANCE_GUNSHIP_CAPTAIN : NPC_HORDE_GUNSHIP_CAPTAIN, type, BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 2 : 0], nodePoint->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(nodePoint->faction == TEAM_ALLIANCE ? NPC_ALLIANCE_GUNSHIP_CAPTAIN : NPC_HORDE_GUNSHIP_CAPTAIN, type, BG_IC_HangarCaptains[nodePoint->faction == TEAM_ALLIANCE ? 3 : 1], nodePoint->faction, RESPAWN_ONE_DAY, nodePoint->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);                }                (nodePoint->faction == TEAM_ALLIANCE ? gunshipAlliance : gunshipHorde)->EnableMovement(true);                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, false))                {                    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, false))                {                    if (Vehicle* vehicleGlaive = catapult->GetVehicleKit())                    {                        if (!vehicleGlaive->GetPassenger(0))                            DelCreature(i);                    }                }            }//.........这里部分代码省略.........
开发者ID:Abrek,项目名称:My-WoDCore-6.x.x,代码行数:101,


示例7: TC_LOG_ERROR

bool BattlegroundTP::SetupBattleground(){    // flags X Y Z Orientation Rotation2 Rotation3    if (!AddObject(BG_TP_OBJECT_A_FLAG, BG_OBJECT_A_FLAG_TP_ENTRY, 2118.210f, 191.621f, 44.052f, 5.741259f, 0, 0, 0.9996573f, 0.02617699f, BG_TP_FLAG_RESPAWN_TIME/1000)        || !AddObject(BG_TP_OBJECT_H_FLAG, BG_OBJECT_H_FLAG_TP_ENTRY, 1578.380f, 344.037f, 2.419f, 3.055978f, 0, 0, 0.008726535f, 0.9999619f, BG_TP_FLAG_RESPAWN_TIME/1000)        // buffs        || !AddObject(BG_TP_OBJECT_SPEEDBUFF_1, BG_OBJECTID_SPEEDBUFF_ENTRY, 1545.402f, 304.028f, 0.5923f, -1.64061f, 0, 0, 0.7313537f, -0.6819983f, BUFF_RESPAWN_TIME)        || !AddObject(BG_TP_OBJECT_SPEEDBUFF_2, BG_OBJECTID_SPEEDBUFF_ENTRY, 2171.279f, 222.334f, 43.8001f, 2.663309f, 0, 0, 0.7313537f, 0.6819984f, BUFF_RESPAWN_TIME)        || !AddObject(BG_TP_OBJECT_REGENBUFF_1, BG_OBJECTID_REGENBUFF_ENTRY, 1753.957f, 242.092f, -14.1170f, 1.105848f, 0, 0, 0.1305263f, -0.9914448f, BUFF_RESPAWN_TIME)        || !AddObject(BG_TP_OBJECT_REGENBUFF_2, BG_OBJECTID_REGENBUFF_ENTRY, 1952.121f, 383.857f, -10.2870f, 4.192612f, 0, 0, 0.333807f, -0.9426414f, BUFF_RESPAWN_TIME)        || !AddObject(BG_TP_OBJECT_BERSERKBUFF_1, BG_OBJECTID_BERSERKERBUFF_ENTRY, 1934.369f, 226.064f, -17.0441f, 2.499154f, 0, 0, 0.5591929f, 0.8290376f, BUFF_RESPAWN_TIME)        || !AddObject(BG_TP_OBJECT_BERSERKBUFF_2, BG_OBJECTID_BERSERKERBUFF_ENTRY, 1725.240f, 446.431f, -7.8327f, 5.709677f, 0, 0, 0.9396926f, -0.3420201f, BUFF_RESPAWN_TIME)        // alliance gates        || !AddObject(BG_TP_OBJECT_DOOR_A_1, BG_OBJECT_DOOR_A_1_TP_ENTRY, 2115.399f, 150.175f, 43.526f, 2.544690f, 0, 0, 0, 0, RESPAWN_IMMEDIATELY)        || !AddObject(BG_TP_OBJECT_DOOR_A_2, BG_OBJECT_DOOR_A_2_TP_ENTRY, 2156.803f, 220.331f, 43.482f, 2.544690f, 0, 0, 0, 0, RESPAWN_IMMEDIATELY)        || !AddObject(BG_TP_OBJECT_DOOR_A_3, BG_OBJECT_DOOR_A_3_TP_ENTRY, 2127.512f, 223.711f, 43.640f, 2.544690f, 0, 0, 0, 0, RESPAWN_IMMEDIATELY)        || !AddObject(BG_TP_OBJECT_DOOR_A_4, BG_OBJECT_DOOR_A_4_TP_ENTRY, 2096.102f, 166.920f, 54.230f, 2.544690f, 0, 0, 0, 0, RESPAWN_IMMEDIATELY)        // horde gates        || !AddObject(BG_TP_OBJECT_DOOR_H_1, BG_OBJECT_DOOR_H_1_TP_ENTRY, 1556.595f, 314.502f, 1.2230f, 6.179126f, 0, 0, 0, 0, RESPAWN_IMMEDIATELY)        || !AddObject(BG_TP_OBJECT_DOOR_H_2, BG_OBJECT_DOOR_H_2_TP_ENTRY, 1587.093f, 319.853f, 1.5233f, 6.179126f, 0, 0, 0, 0, RESPAWN_IMMEDIATELY)        || !AddObject(BG_TP_OBJECT_DOOR_H_3, BG_OBJECT_DOOR_H_3_TP_ENTRY, 1591.463f, 365.732f, 13.494f, 6.179126f, 0, 0, 0, 0, RESPAWN_IMMEDIATELY)        || !AddObject(BG_TP_OBJECT_DOOR_H_4, BG_OBJECT_DOOR_H_4_TP_ENTRY, 1558.315f, 372.709f, 1.4840f, 6.179126f, 0, 0, 0, 0, RESPAWN_IMMEDIATELY)       )    {        TC_LOG_ERROR("sql.sql", "BatteGroundTP: Failed to spawn some objects Battleground not created!");        return false;    }    WorldSafeLocsEntry const *sg = sWorldSafeLocsStore.LookupEntry(TP_GRAVEYARD_MIDDLE_ALLIANCE);    if (!sg || !AddSpiritGuide(TP_SPIRIT_ALLIANCE, sg->x, sg->y, sg->z, 3.641396f, ALLIANCE))    {        TC_LOG_ERROR("sql.sql", "BatteGroundTP: Failed to spawn Alliance spirit guides! Battleground not created!");        return false;    }    sg = sWorldSafeLocsStore.LookupEntry(TP_GRAVEYARD_START_ALLIANCE);    if (!sg || !AddSpiritGuide(TP_SPIRIT_ALLIANCE, sg->x, sg->y, sg->z, 3.641396f, ALLIANCE))    {        TC_LOG_ERROR("sql.sql", "BatteGroundTP: Failed to spawn Alliance start spirit guides! Battleground not created!");        return false;    }    sg = sWorldSafeLocsStore.LookupEntry(TP_GRAVEYARD_MIDDLE_HORDE);    if (!sg || !AddSpiritGuide(TP_SPIRIT_HORDE, sg->x, sg->y, sg->z, 3.641396f, HORDE))    {        TC_LOG_ERROR("sql.sql", "BatteGroundTP: Failed to spawn Horde spirit guides! Battleground not created!");        return false;    }    sg = sWorldSafeLocsStore.LookupEntry(TP_GRAVEYARD_START_HORDE);    if (!sg || !AddSpiritGuide(TP_SPIRIT_ALLIANCE, sg->x, sg->y, sg->z, 3.641396f, HORDE))    {        TC_LOG_ERROR("sql.sql", "BatteGroundTP: Failed to spawn Horde start spirit guide! Battleground not created!");        return false;    }    TC_LOG_DEBUG("bg.battleground", "BatteGroundTP: BG objects and spirit guides spawned");    return true;}
开发者ID:BOREMANSe,项目名称:SkyFire_5xx,代码行数:64,


示例8: HandleCapturedNodes

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:AlexHjelm,项目名称:sunwell,代码行数:101,


示例9: 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("bg.battleground", "Isle of Conquest: There was an error spawning gameobject %u", BG_IC_ObjSpawnlocs[i].entry);            return false;        }    }    for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i)    {        if (!AddObject(BG_IC_Teleporters[i].type, BG_IC_Teleporters[i].entry, BG_IC_Teleporters[i].x, BG_IC_Teleporters[i].y, BG_IC_Teleporters[i].z, BG_IC_Teleporters[i].o, 0, 0, 0, 0, RESPAWN_ONE_DAY))        {            TC_LOG_ERROR("bg.battleground", "Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject %u", BG_IC_Teleporters[i].entry);            return false;        }    }    for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS; ++i)    {        if (!AddObject(BG_IC_TeleporterEffects[i].type, BG_IC_TeleporterEffects[i].entry, BG_IC_TeleporterEffects[i].x, BG_IC_TeleporterEffects[i].y, BG_IC_TeleporterEffects[i].z, BG_IC_TeleporterEffects[i].o, 0, 0, 0, 0, RESPAWN_ONE_DAY))        {            TC_LOG_ERROR("bg.battleground", "Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject %u", BG_IC_Teleporters[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].x, BG_IC_NpcSpawnlocs[i].y, BG_IC_NpcSpawnlocs[i].z, BG_IC_NpcSpawnlocs[i].o, BG_IC_NpcSpawnlocs[i].team, RESPAWN_ONE_DAY))        {            TC_LOG_ERROR("bg.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+3, BG_IC_SpiritGuidePos[5], TEAM_ALLIANCE)        || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+4, BG_IC_SpiritGuidePos[6], TEAM_HORDE)        || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+5, BG_IC_SpiritGuidePos[7], TEAM_ALLIANCE)        || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+6, BG_IC_SpiritGuidePos[8], TEAM_HORDE))    {        TC_LOG_ERROR("bg.battleground", "Isle of Conquest: Failed to spawn initial spirit guide!");        return false;    }    gunshipHorde = sTransportMgr->CreateTransport(GO_HORDE_GUNSHIP, UI64LIT(0), GetBgMap());    gunshipAlliance = sTransportMgr->CreateTransport(GO_ALLIANCE_GUNSHIP, UI64LIT(0), GetBgMap());    if (!gunshipAlliance || !gunshipHorde)    {        TC_LOG_ERROR("bg.battleground", "Isle of Conquest: There was an error creating gunships!");        return false;    }    gunshipHorde->EnableMovement(false);    gunshipAlliance->EnableMovement(false);    // 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:Abrek,项目名称:My-WoDCore-6.x.x,代码行数:71,


示例10: SetupBattleGround

bool BattleGroundEY::SetupBattleGround(){        // doors    if(    !AddObject(BG_EY_OBJECT_DOOR_A, BG_OBJECT_A_DOOR_EY_ENTRY, 2527.6f, 1596.91f, 1262.13f, -3.12414f, -0.173642f, -0.001515f, 0.98477f, -0.008594f, RESPAWN_IMMEDIATELY)        || !AddObject(BG_EY_OBJECT_DOOR_H, BG_OBJECT_H_DOOR_EY_ENTRY, 1803.21f, 1539.49f, 1261.09f, 3.14159f, 0.173648f, 0, 0.984808f, 0, RESPAWN_IMMEDIATELY)        // banners (alliance)        || !AddObject(BG_EY_OBJECT_A_BANNER_FEL_REALVER_CENTER, BG_OBJECT_A_BANNER_EY_ENTRY, 2057.46f, 1735.07f, 1187.91f, -0.925024f, 0, 0, 0.446198f, -0.894934f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_FEL_REALVER_LEFT, BG_OBJECT_A_BANNER_EY_ENTRY, 2032.25f, 1729.53f, 1190.33f, 1.8675f, 0, 0, 0.803857f, 0.594823f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_FEL_REALVER_RIGHT, BG_OBJECT_A_BANNER_EY_ENTRY, 2092.35f, 1775.46f, 1187.08f, -0.401426f, 0, 0, 0.199368f, -0.979925f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_BLOOD_ELF_CENTER, BG_OBJECT_A_BANNER_EY_ENTRY, 2047.19f, 1349.19f, 1189.0f, -1.62316f, 0, 0, 0.725374f, -0.688354f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_BLOOD_ELF_LEFT, BG_OBJECT_A_BANNER_EY_ENTRY, 2074.32f, 1385.78f, 1194.72f, 0.488692f, 0, 0, 0.241922f, 0.970296f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_BLOOD_ELF_RIGHT, BG_OBJECT_A_BANNER_EY_ENTRY, 2025.13f, 1386.12f, 1192.74f, 2.3911f, 0, 0, 0.930418f, 0.366501f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_CENTER, BG_OBJECT_A_BANNER_EY_ENTRY, 2276.8f, 1400.41f, 1196.33f, 2.44346f, 0, 0, 0.939693f, 0.34202f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_LEFT, BG_OBJECT_A_BANNER_EY_ENTRY, 2305.78f, 1404.56f, 1199.38f, 1.74533f, 0, 0, 0.766044f, 0.642788f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_RIGHT, BG_OBJECT_A_BANNER_EY_ENTRY, 2245.4f, 1366.41f, 1195.28f, 2.21657f, 0, 0, 0.894934f, 0.446198f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_MAGE_TOWER_CENTER, BG_OBJECT_A_BANNER_EY_ENTRY, 2270.84f, 1784.08f, 1186.76f, 2.42601f, 0, 0, 0.936672f, 0.350207f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_MAGE_TOWER_LEFT, BG_OBJECT_A_BANNER_EY_ENTRY, 2269.13f, 1737.7f, 1186.66f, 0.994838f, 0, 0, 0.477159f, 0.878817f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_A_BANNER_MAGE_TOWER_RIGHT, BG_OBJECT_A_BANNER_EY_ENTRY, 2300.86f, 1741.25f, 1187.7f, -0.785398f, 0, 0, 0.382683f, -0.92388f, RESPAWN_ONE_DAY)        // banners (horde)        || !AddObject(BG_EY_OBJECT_H_BANNER_FEL_REALVER_CENTER, BG_OBJECT_H_BANNER_EY_ENTRY, 2057.46f, 1735.07f, 1187.91f, -0.925024f, 0, 0, 0.446198f, -0.894934f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_FEL_REALVER_LEFT, BG_OBJECT_H_BANNER_EY_ENTRY, 2032.25f, 1729.53f, 1190.33f, 1.8675f, 0, 0, 0.803857f, 0.594823f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_FEL_REALVER_RIGHT, BG_OBJECT_H_BANNER_EY_ENTRY, 2092.35f, 1775.46f, 1187.08f, -0.401426f, 0, 0, 0.199368f, -0.979925f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_BLOOD_ELF_CENTER, BG_OBJECT_H_BANNER_EY_ENTRY, 2047.19f, 1349.19f, 1189.0f, -1.62316f, 0, 0, 0.725374f, -0.688354f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_BLOOD_ELF_LEFT, BG_OBJECT_H_BANNER_EY_ENTRY, 2074.32f, 1385.78f, 1194.72f, 0.488692f, 0, 0, 0.241922f, 0.970296f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_BLOOD_ELF_RIGHT, BG_OBJECT_H_BANNER_EY_ENTRY, 2025.13f, 1386.12f, 1192.74f, 2.3911f, 0, 0, 0.930418f, 0.366501f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_CENTER, BG_OBJECT_H_BANNER_EY_ENTRY, 2276.8f, 1400.41f, 1196.33f, 2.44346f, 0, 0, 0.939693f, 0.34202f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_LEFT, BG_OBJECT_H_BANNER_EY_ENTRY, 2305.78f, 1404.56f, 1199.38f, 1.74533f, 0, 0, 0.766044f, 0.642788f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_RIGHT, BG_OBJECT_H_BANNER_EY_ENTRY, 2245.4f, 1366.41f, 1195.28f, 2.21657f, 0, 0, 0.894934f, 0.446198f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_MAGE_TOWER_CENTER, BG_OBJECT_H_BANNER_EY_ENTRY, 2270.84f, 1784.08f, 1186.76f, 2.42601f, 0, 0, 0.936672f, 0.350207f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_MAGE_TOWER_LEFT, BG_OBJECT_H_BANNER_EY_ENTRY, 2269.13f, 1737.7f, 1186.66f, 0.994838f, 0, 0, 0.477159f, 0.878817f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_H_BANNER_MAGE_TOWER_RIGHT, BG_OBJECT_H_BANNER_EY_ENTRY, 2300.86f, 1741.25f, 1187.7f, -0.785398f, 0, 0, 0.382683f, -0.92388f, RESPAWN_ONE_DAY)        // banners (natural)        || !AddObject(BG_EY_OBJECT_N_BANNER_FEL_REALVER_CENTER, BG_OBJECT_N_BANNER_EY_ENTRY, 2057.46f, 1735.07f, 1187.91f, -0.925024f, 0, 0, 0.446198f, -0.894934f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_FEL_REALVER_LEFT, BG_OBJECT_N_BANNER_EY_ENTRY, 2032.25f, 1729.53f, 1190.33f, 1.8675f, 0, 0, 0.803857f, 0.594823f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_FEL_REALVER_RIGHT, BG_OBJECT_N_BANNER_EY_ENTRY, 2092.35f, 1775.46f, 1187.08f, -0.401426f, 0, 0, 0.199368f, -0.979925f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_BLOOD_ELF_CENTER, BG_OBJECT_N_BANNER_EY_ENTRY, 2047.19f, 1349.19f, 1189.0f, -1.62316f, 0, 0, 0.725374f, -0.688354f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_BLOOD_ELF_LEFT, BG_OBJECT_N_BANNER_EY_ENTRY, 2074.32f, 1385.78f, 1194.72f, 0.488692f, 0, 0, 0.241922f, 0.970296f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_BLOOD_ELF_RIGHT, BG_OBJECT_N_BANNER_EY_ENTRY, 2025.13f, 1386.12f, 1192.74f, 2.3911f, 0, 0, 0.930418f, 0.366501f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_CENTER, BG_OBJECT_N_BANNER_EY_ENTRY, 2276.8f, 1400.41f, 1196.33f, 2.44346f, 0, 0, 0.939693f, 0.34202f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_LEFT, BG_OBJECT_N_BANNER_EY_ENTRY, 2305.78f, 1404.56f, 1199.38f, 1.74533f, 0, 0, 0.766044f, 0.642788f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_RIGHT, BG_OBJECT_N_BANNER_EY_ENTRY, 2245.4f, 1366.41f, 1195.28f, 2.21657f, 0, 0, 0.894934f, 0.446198f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_MAGE_TOWER_CENTER, BG_OBJECT_N_BANNER_EY_ENTRY, 2270.84f, 1784.08f, 1186.76f, 2.42601f, 0, 0, 0.936672f, 0.350207f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_MAGE_TOWER_LEFT, BG_OBJECT_N_BANNER_EY_ENTRY, 2269.13f, 1737.7f, 1186.66f, 0.994838f, 0, 0, 0.477159f, 0.878817f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_N_BANNER_MAGE_TOWER_RIGHT, BG_OBJECT_N_BANNER_EY_ENTRY, 2300.86f, 1741.25f, 1187.7f, -0.785398f, 0, 0, 0.382683f, -0.92388f, RESPAWN_ONE_DAY)        // flags        || !AddObject(BG_EY_OBJECT_FLAG_NETHERSTORM, BG_OBJECT_FLAG2_EY_ENTRY, 2174.782227f, 1569.054688f, 1160.361938f, -1.448624f, 0, 0, 0.662620f, -0.748956f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_FLAG_FEL_REALVER, BG_OBJECT_FLAG1_EY_ENTRY, 2044.28f, 1729.68f, 1189.96f, -0.017453f, 0, 0, 0.008727f, -0.999962f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_FLAG_BLOOD_ELF, BG_OBJECT_FLAG1_EY_ENTRY, 2048.83f, 1393.65f, 1194.49f, 0.20944f, 0, 0, 0.104528f, 0.994522f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_FLAG_DRAENEI_RUINS, BG_OBJECT_FLAG1_EY_ENTRY, 2286.56f, 1402.36f, 1197.11f, 3.72381f, 0, 0, 0.957926f, -0.287016f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_FLAG_MAGE_TOWER, BG_OBJECT_FLAG1_EY_ENTRY, 2284.48f, 1731.23f, 1189.99f, 2.89725f, 0, 0, 0.992546f, 0.121869f, RESPAWN_ONE_DAY)        // tower cap        || !AddObject(BG_EY_OBJECT_TOWER_CAP_FEL_REALVER, BG_OBJECT_FR_TOWER_CAP_EY_ENTRY, 2024.600708f, 1742.819580f, 1195.157715f, 2.443461f, 0, 0, 0.939693f, 0.342020f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_TOWER_CAP_BLOOD_ELF, BG_OBJECT_BE_TOWER_CAP_EY_ENTRY, 2050.493164f, 1372.235962f, 1194.563477f, 1.710423f, 0, 0, 0.754710f, 0.656059f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_TOWER_CAP_DRAENEI_RUINS, BG_OBJECT_DR_TOWER_CAP_EY_ENTRY, 2301.010498f, 1386.931641f, 1197.183472f, 1.570796f, 0, 0, 0.707107f, 0.707107f, RESPAWN_ONE_DAY)        || !AddObject(BG_EY_OBJECT_TOWER_CAP_MAGE_TOWER, BG_OBJECT_HU_TOWER_CAP_EY_ENTRY, 2282.121582f, 1760.006958f, 1189.707153f, 1.919862f, 0, 0, 0.819152f, 0.573576f, RESPAWN_ONE_DAY)        )    {        sLog.outErrorDb("BatteGroundEY: Failed to spawn some object BattleGround not created!");        return false;    }    //buffs    for (int i = 0; i < EY_POINTS_MAX; ++i)    {        AreaTriggerEntry const* at = sAreaTriggerStore.LookupEntry(m_Points_Trigger[i]);        if( !at )        {            sLog.outError("BattleGroundEY: Unknown trigger: %u", m_Points_Trigger[i]);            continue;        }        if (   !AddObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REALVER + i * 3, Buff_Entries[0], at->x, at->y, at->z, 0.907571f, 0, 0, 0.438371f, 0.898794f, RESPAWN_ONE_DAY)            || !AddObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REALVER + i * 3 + 1, Buff_Entries[1], at->x, at->y, at->z, 0.907571f, 0, 0, 0.438371f, 0.898794f, RESPAWN_ONE_DAY)            || !AddObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REALVER + i * 3 + 2, Buff_Entries[2], at->x, at->y, at->z, 0.907571f, 0, 0, 0.438371f, 0.898794f, RESPAWN_ONE_DAY)            )            sLog.outError("BattleGroundEY: Cannot spawn buff");    }    WorldSafeLocsEntry const *sg = NULL;    sg = sWorldSafeLocsStore.LookupEntry(EY_GRAVEYARD_MAIN_ALLIANCE);    if( !sg || !AddSpiritGuide(EY_SPIRIT_MAIN_ALLIANCE, sg->x, sg->y, sg->z, 3.124139f, ALLIANCE) )    {        sLog.outErrorDb("BatteGroundEY: Failed to spawn spirit guide! BattleGround not created!");        return false;    }    sg = sWorldSafeLocsStore.LookupEntry(EY_GRAVEYARD_MAIN_HORDE);    if( !sg || !AddSpiritGuide(EY_SPIRIT_MAIN_HORDE, sg->x, sg->y, sg->z, 3.193953f, HORDE) )    {        sLog.outErrorDb("BatteGroundEY: Failed to spawn spirit guide! BattleGround not created!");        return false;    }    return true;}
开发者ID:Canno,项目名称:mangos,代码行数:94,


示例11: _NodeOccupied

void BattleGroundAB::_NodeOccupied(uint8 node,Team team){   if( !AddSpiritGuide(node, BG_AB_SpiritGuidePos[node][0], BG_AB_SpiritGuidePos[node][1], BG_AB_SpiritGuidePos[node][2], BG_AB_SpiritGuidePos[node][3], team) )        sLog.outError("Failed to spawn spirit guide! point: %u, team: %u,", node, team);}
开发者ID:Artea,项目名称:mangos-svn,代码行数:5,


示例12: SpawnGameObject

void ArathiBasin::OnCreate(){    // Alliance Gate    GameObject *gate = SpawnGameObject(180255, 529, 1284.597290f, 1281.166626f, -15.977916f, 0.706859f, 32, 114, 1.5799990f);    gate->SetFloatValue(GAMEOBJECT_ROTATION, 0.0129570f);    gate->SetFloatValue(GAMEOBJECT_ROTATION_01, -0.0602880f);    gate->SetFloatValue(GAMEOBJECT_ROTATION_02, 0.3449600f);    gate->SetFloatValue(GAMEOBJECT_ROTATION_03, 0.9365900f);    gate->PushToWorld(m_mapMgr);    m_gates.push_back(gate);    // horde gate    gate = SpawnGameObject(180256, 529, 708.0902710f, 708.4479370f, -17.3898964f, -2.3910990f, 32, 114, 1.5699990f);    gate->SetFloatValue(GAMEOBJECT_ROTATION, 0.0502910f);    gate->SetFloatValue(GAMEOBJECT_ROTATION_01, 0.0151270f);    gate->SetFloatValue(GAMEOBJECT_ROTATION_02, 0.9292169f);    gate->SetFloatValue(GAMEOBJECT_ROTATION_03, -0.3657840f);    gate->PushToWorld(m_mapMgr);    m_gates.push_back(gate);    // spawn (default) control points    SpawnControlPoint(AB_CONTROL_POINT_STABLE, AB_SPAWN_TYPE_NEUTRAL);    SpawnControlPoint(AB_CONTROL_POINT_BLACKSMITH, AB_SPAWN_TYPE_NEUTRAL);    SpawnControlPoint(AB_CONTROL_POINT_LUMBERMILL, AB_SPAWN_TYPE_NEUTRAL);    SpawnControlPoint(AB_CONTROL_POINT_MINE, AB_SPAWN_TYPE_NEUTRAL);    SpawnControlPoint(AB_CONTROL_POINT_FARM, AB_SPAWN_TYPE_NEUTRAL);    // spawn buffs    SpawnBuff(AB_BUFF_STABLES);    SpawnBuff(AB_BUFF_BLACKSMITH);    SpawnBuff(AB_BUFF_LUMBERMILL);    SpawnBuff(AB_BUFF_MINE);    SpawnBuff(AB_BUFF_FARM);    // spawn the h/a base spirit guides    AddSpiritGuide(SpawnSpiritGuide(NoBaseGYLocations[0][0], NoBaseGYLocations[0][1], NoBaseGYLocations[0][2], 0.0f, 0));    AddSpiritGuide(SpawnSpiritGuide(NoBaseGYLocations[1][0], NoBaseGYLocations[1][1], NoBaseGYLocations[1][2], 0.0f, 1));    // urrrgh worldstates    SetWorldState(0x8D8, 0x00);    SetWorldState(0x8D7, 0x00);    SetWorldState(0x8D6, 0x00);    SetWorldState(0x8D5, 0x00);    SetWorldState(0x8D4, 0x00);    SetWorldState(0x8D3, 0x00);    // AB world state's    // unknowns, need more research    SetWorldState(0x7A3, 1800); // unknown    SetWorldState(0x745, 0x02); // unknown    // Icon stuff for on the map    SetWorldState(AB_SHOW_BACKSMITH_ICON, 0x01);    SetWorldState(AB_SHOW_FARM_ICON, 0x01);    SetWorldState(AB_SHOW_LUMBERMILL_ICON, 0x01);    SetWorldState(AB_SHOW_GOLDMINE_ICON, 0x01);    SetWorldState(AB_SHOW_STABLE_ICON, 0x01);    // LumberMill    SetWorldState(AB_CAPTURING_LUMBERMILL_HORDE, 0x00);    SetWorldState(AB_CAPTURING_LUMBERMILL_ALLIANCE, 0x00);    SetWorldState(AB_CAPTURED_LUMBERMILL_HORDE, 0x00);    SetWorldState(AB_CAPTURED_LUMBERMILL_ALLIANCE, 0x00);    // GoldMine    SetWorldState(AB_CAPTURING_GOLDMINE_HORDE, 0x00);    SetWorldState(AB_CAPTURING_GOLDMINE_ALLIANCE, 0x00);    SetWorldState(AB_CAPTURED_GOLDMINE_HORDE, 0x00);    SetWorldState(AB_CAPTURED_GOLDMINE_ALLIANCE, 0x00);    // BlackSmith    SetWorldState(AB_CAPTURING_BLACKSMITH_HORDE, 0x00);    SetWorldState(AB_CAPTURING_BLACKSMITH_ALLIANCE, 0x00);    SetWorldState(AB_CAPTURED_BLACKSMITH_HORDE, 0x00);    SetWorldState(AB_CAPTURED_BLACKSMITH_ALLIANCE, 0x00);    SetWorldState(AB_MAX_SCORE, RESOURCES_WINVAL);    SetWorldState(AB_ALLIANCE_CAPTUREBASE, 0x00);    SetWorldState(AB_HORDE_CAPTUREBASE, 0x00);    SetWorldState(AB_HORDE_RESOURCES, 0x00);    SetWorldState(AB_ALLIANCE_RESOURCES, 0x00);    // Farm    SetWorldState(AB_CAPTURING_FARM_ALLIANCE, 0x00);    SetWorldState(AB_CAPTURING_FARM_HORDE, 0x00);    SetWorldState(AB_CAPTURED_FARM_HORDE, 0x00);    SetWorldState(AB_CAPTURED_FARM_ALLIANCE, 0x00);    // Stables    SetWorldState(AB_CAPTURING_STABLES_HORDE, 0x00);    SetWorldState(AB_CAPTURING_STABLES_ALLIANCE, 0x00);    SetWorldState(AB_CAPTURED_STABLES_HORDE, 0x00);    SetWorldState(AB_CAPTURED_STABLES_ALLIANCE, 0x00);}
开发者ID:AscEmu,项目名称:AscEmu_TBC,代码行数:94,


示例13: if

void EyeOfTheStorm::UpdateCPs(){	uint32 i;	set< Object* >::iterator itr, itrend;	Player* plr;	GameObject* go;	int32 delta = 0;	uint32 playercounts[2];	uint32 towers[2] = {0, 0};	EOTSCaptureDisplayList::iterator eitr, eitr2, eitrend;	EOTSCaptureDisplayList* disp;	for(i = 0; i < EOTS_TOWER_COUNT; ++i)	{		/* loop players in range, add any that aren't in the set to the set */		playercounts[0] = playercounts[1] = 0;		go = m_CPStatusGO[i];		disp = &m_CPDisplay[i];		itr = go->GetInRangePlayerSetBegin();		itrend = go->GetInRangePlayerSetEnd();		for(; itr != itrend; ++itr)		{			plr = TO< Player* >(*itr);			if(plr->isAlive() && !(plr->IsStealth()) && !(plr->m_invisible) && !(plr->SchoolImmunityList[0]) && plr->GetDistance2dSq(go) <= EOTS_CAPTURE_DISTANCE)			{				playercounts[plr->GetTeam()]++;				if(disp->find(plr) == disp->end())				{					disp->insert(plr);					plr->SendWorldStateUpdate(WORLDSTATE_EOTS_DISPLAYON, 1);				}			}		}		/* score diff calculation */		//printf("EOTS: Playercounts = %u %u/n", playercounts[0], playercounts[1]);		if(playercounts[0] != playercounts[1])		{			if(playercounts[0] > playercounts[1])				delta = playercounts[0];			else if(playercounts[1] > playercounts[0])				delta = -(int32)playercounts[1];			delta *= EOTS_CAPTURE_RATE;			m_CPStatus[i] += delta;			if(m_CPStatus[i] > 100)				m_CPStatus[i] = 100;			else if(m_CPStatus[i] < 0)				m_CPStatus[i] = 0;			// change the flag depending on cp status			if(m_CPStatus[i] <= 30)			{				if(m_CPBanner[i] && m_CPBanner[i]->GetEntry() != EOTS_BANNER_HORDE)				{					RespawnCPFlag(i, EOTS_BANNER_HORDE);					if(m_spiritGuides[i] != NULL)					{						RepopPlayersOfTeam(0, m_spiritGuides[i]);						m_spiritGuides[i]->Despawn(0, 0);						RemoveSpiritGuide(m_spiritGuides[i]);						m_spiritGuides[i] = NULL;					}					m_spiritGuides[i] = SpawnSpiritGuide(EOTSGraveyardLocations[i][0], EOTSGraveyardLocations[i][1], EOTSGraveyardLocations[i][2], 0, 1);					AddSpiritGuide(m_spiritGuides[i]);					SetWorldState(m_iconsStates[i][0], 0);					SetWorldState(m_iconsStates[i][1], 0);					SetWorldState(m_iconsStates[i][2], 1);					SendChatMessage(CHAT_MSG_BG_EVENT_HORDE, 0, "The Horde has taken the %s !", EOTSControlPointNames[i]);					PlaySoundToAll(SOUND_HORDE_CAPTURE);				}			}			else if(m_CPStatus[i] >= 70)			{				if(m_CPBanner[i] && m_CPBanner[i]->GetEntry() != EOTS_BANNER_ALLIANCE)				{					RespawnCPFlag(i, EOTS_BANNER_ALLIANCE);					if(m_spiritGuides[i] != NULL)					{						RepopPlayersOfTeam(1, m_spiritGuides[i]);						m_spiritGuides[i]->Despawn(0, 0);						RemoveSpiritGuide(m_spiritGuides[i]);						m_spiritGuides[i] = NULL;					}					m_spiritGuides[i] = SpawnSpiritGuide(EOTSGraveyardLocations[i][0], EOTSGraveyardLocations[i][1], EOTSGraveyardLocations[i][2], 0, 0);					AddSpiritGuide(m_spiritGuides[i]);					SetWorldState(m_iconsStates[i][0], 0);					SetWorldState(m_iconsStates[i][1], 1);					SetWorldState(m_iconsStates[i][2], 0);					SendChatMessage(CHAT_MSG_BG_EVENT_ALLIANCE, 0, "The Alliance has taken the %s", EOTSControlPointNames[i]);					PlaySoundToAll(SOUND_ALLIANCE_CAPTURE);				}			}			else//.........这里部分代码省略.........
开发者ID:lev1976g,项目名称:NoxicCore,代码行数:101,


示例14: SpawnGameObject

void ArathiBasin::OnCreate(){	// Alliance Gate	GameObjectPointer gate = SpawnGameObject(180255, 1284.597290f, 1281.166626f, -15.977916f, 0.76f, 32, 114, 1.5799990f);	gate->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);	gate->PushToWorld(m_mapMgr);	m_gates.push_back(gate);	// horde gate	gate = SpawnGameObject(180256, 708.0902710f, 708.4479370f, -17.3898964f, 3.92f, 32, 114, 1.5699990f);	gate->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);	gate->PushToWorld(m_mapMgr);	m_gates.push_back(gate);	// spawn (default) control points	SpawnControlPoint(AB_CONTROL_POINT_STABLE,		AB_SPAWN_TYPE_NEUTRAL);	SpawnControlPoint(AB_CONTROL_POINT_BLACKSMITH,	AB_SPAWN_TYPE_NEUTRAL);	SpawnControlPoint(AB_CONTROL_POINT_LUMBERMILL,	AB_SPAWN_TYPE_NEUTRAL);	SpawnControlPoint(AB_CONTROL_POINT_MINE,		AB_SPAWN_TYPE_NEUTRAL);	SpawnControlPoint(AB_CONTROL_POINT_FARM,		AB_SPAWN_TYPE_NEUTRAL);	// spawn buffs	SpawnBuff(AB_BUFF_STABLES);	SpawnBuff(AB_BUFF_BLACKSMITH);	SpawnBuff(AB_BUFF_LUMBERMILL);	SpawnBuff(AB_BUFF_MINE);	SpawnBuff(AB_BUFF_FARM);	// spawn the h/a base spirit guides	AddSpiritGuide(SpawnSpiritGuide(NoBaseGYLocations[0][0],NoBaseGYLocations[0][1],NoBaseGYLocations[0][2], 0.0f, 0));	AddSpiritGuide(SpawnSpiritGuide(NoBaseGYLocations[1][0],NoBaseGYLocations[1][1],NoBaseGYLocations[1][2], 0.0f, 1));	// w00t	WorldStateManager &sm = m_mapMgr->GetStateManager();	// urrrgh worldstates	sm.CreateWorldState(0x8D8, 0x00);	sm.CreateWorldState(0x8D7, 0x00);	sm.CreateWorldState(0x8D6, 0x00);	sm.CreateWorldState(0x8D5, 0x00);	sm.CreateWorldState(0x8D4, 0x00);	sm.CreateWorldState(0x8D3, 0x00);	// AB world state's	// unknowns, need more research	sm.CreateWorldState(0x7A3, 1800); // unknown	sm.CreateWorldState(0x745, 0x02); // unknown	// Icon stuff for on the map	sm.CreateWorldState(WORLDSTATE_AB_SHOW_BACKSMITH_ICON, 			 0x01);	sm.CreateWorldState(WORLDSTATE_AB_SHOW_FARM_ICON, 				  0x01);	sm.CreateWorldState(WORLDSTATE_AB_SHOW_LUMBERMILL_ICON, 			0x01);	sm.CreateWorldState(WORLDSTATE_AB_SHOW_GOLDMINE_ICON, 			 0x01);	sm.CreateWorldState(WORLDSTATE_AB_SHOW_STABLE_ICON, 			0x01);	// LumberMill	sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_LUMBERMILL_HORDE, 	   0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_LUMBERMILL_ALLIANCE, 	0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_LUMBERMILL_HORDE, 		0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_LUMBERMILL_ALLIANCE, 	 0x00);	// GoldMine	sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_GOLDMINE_HORDE, 		 0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_GOLDMINE_ALLIANCE, 	  0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_GOLDMINE_HORDE, 		  0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_GOLDMINE_ALLIANCE, 	   0x00);	// BlackSmith	sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_BLACKSMITH_HORDE, 	   0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_BLACKSMITH_ALLIANCE, 	0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_BLACKSMITH_HORDE, 		0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_BLACKSMITH_ALLIANCE, 	 0x00);	sm.CreateWorldState(WORLDSTATE_AB_MAX_SCORE, 						RESOURCES_WINVAL);	sm.CreateWorldState(WORLDSTATE_AB_ALLIANCE_CAPTUREBASE, 			 0x00);	sm.CreateWorldState(WORLDSTATE_AB_HORDE_CAPTUREBASE, 				0x00);	sm.CreateWorldState(WORLDSTATE_AB_HORDE_RESOURCES, 				  0x00);	sm.CreateWorldState(WORLDSTATE_AB_ALLIANCE_RESOURCES, 			   0x00);	// Farm	sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_FARM_ALLIANCE, 		 0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_FARM_HORDE, 			 0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_FARM_HORDE, 			  0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_FARM_ALLIANCE, 		   0x00);	// Stables	sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_STABLES_HORDE, 		  0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_STABLES_ALLIANCE, 	   0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_STABLES_HORDE, 		   0x00);	sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_STABLES_ALLIANCE, 		0x00);}
开发者ID:CadeLaRen,项目名称:Xeon-MMORPG-Emulator,代码行数:91,


示例15: DelObject

bool BattlegroundSA::ResetObjs(){    uint32 atF = BG_SA_Factions[attackers];    uint32 defF = BG_SA_Factions[attackers ? TEAM_ALLIANCE : TEAM_HORDE];    for (uint8 i = 0; i <BG_SA_MAXOBJ; i++)        DelObject(i);    for (uint8 i = 0; i < BG_SA_MAXNPC; i++)        DelCreature(i);    for (uint8 i = BG_SA_MAXNPC; i < BG_SA_MAXNPC + BG_SA_MAX_GY; i++)        DelCreature(i);    for (uint8 i = 0; i < 6; i++)        GateStatus[i] = BG_SA_GATE_OK;    for (uint8 i = 0; i < BG_SA_CENTRAL_FLAG; i++)    {        if (!AddObject(i,BG_SA_ObjEntries[i],            BG_SA_ObjSpawnlocs[i][0],BG_SA_ObjSpawnlocs[i][1],            BG_SA_ObjSpawnlocs[i][2],BG_SA_ObjSpawnlocs[i][3],            0,0,0,0,RESPAWN_ONE_DAY))        return false;    }    //Cannons and demolishers - NPCs are spawned    //By capturing GYs.    for (uint8 i = 0; i < BG_SA_NPC_SPARKLIGHT; i++)    {        if (!AddCreature(BG_SA_NpcEntries[i], i, (attackers == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE),              BG_SA_NpcSpawnlocs[i][0],BG_SA_NpcSpawnlocs[i][1],              BG_SA_NpcSpawnlocs[i][2],BG_SA_NpcSpawnlocs[i][3],600))        return false;    }    OverrideGunFaction();    DemolisherStartState(true);    for (uint8 i = 0; i <= BG_SA_TITAN_RELIC; i++)    {        SpawnBGObject(i, RESPAWN_IMMEDIATELY);        GetBGObject(i)->SetUInt32Value(GAMEOBJECT_FACTION, defF);    }    GetBGObject(BG_SA_TITAN_RELIC)->SetUInt32Value(GAMEOBJECT_FACTION, atF);    GetBGObject(BG_SA_TITAN_RELIC)->Refresh();    for (uint8 i = 0; i <= 5; i++)        GateStatus[i] = BG_SA_GATE_OK;    // MAD props for Kiper for discovering those values - 4 hours of his work.    GetBGObject(BG_SA_BOAT_ONE)->UpdateRotationFields(1.0f, 0.0002f);    GetBGObject(BG_SA_BOAT_TWO)->UpdateRotationFields(1.0f, 0.00001f);    SpawnBGObject(BG_SA_BOAT_ONE, RESPAWN_IMMEDIATELY);    SpawnBGObject(BG_SA_BOAT_TWO, RESPAWN_IMMEDIATELY);    TotalTime = 0;    ShipsStarted = false;    //Graveyards!    for (uint8 i = 0;i < BG_SA_MAX_GY; i++)    {        WorldSafeLocsEntry const *sg = NULL;        sg = sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[i]);        if (!sg)        {            sLog.outError("SOTA: Can't find GY entry %u",BG_SA_GYEntries[i]);            return false;        }        if (i == BG_SA_BEACH_GY)        {            GraveyardStatus[i] = attackers;            AddSpiritGuide(i + BG_SA_MAXNPC, sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], ((attackers == TEAM_HORDE)? HORDE : ALLIANCE));        }        else        {            GraveyardStatus[i] = ((attackers == TEAM_HORDE)? TEAM_ALLIANCE : TEAM_HORDE);            if (!AddSpiritGuide(i + BG_SA_MAXNPC, sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], ((attackers == TEAM_HORDE)? ALLIANCE : HORDE)))                sLog.outError("SOTA: couldn't spawn GY: %u",i);        }    }    //GY capture points    for (uint8 i = BG_SA_CENTRAL_FLAG; i < BG_SA_PORTAL_DEFFENDER_BLUE; i++)    {        AddObject(i, (BG_SA_ObjEntries[i] - (attackers == TEAM_ALLIANCE ? 1:0)),            BG_SA_ObjSpawnlocs[i][0], BG_SA_ObjSpawnlocs[i][1],            BG_SA_ObjSpawnlocs[i][2], BG_SA_ObjSpawnlocs[i][3],            0,0,0,0,RESPAWN_ONE_DAY);        GetBGObject(i)->SetUInt32Value(GAMEOBJECT_FACTION, atF);    }    for (uint8 i = BG_SA_PORTAL_DEFFENDER_BLUE; i < BG_SA_BOMB; i++)    {        AddObject(i, BG_SA_ObjEntries[i],            BG_SA_ObjSpawnlocs[i][0], BG_SA_ObjSpawnlocs[i][1],//.........这里部分代码省略.........
开发者ID:mmihail,项目名称:trinitycore10353,代码行数:101,


示例16: SpawnGameObject

void WarsongGulch::OnCreate(){	/* add the buffs to the world */	for(int i = 0; i < 6; ++i)	{		if(!m_buffs[i]->IsInWorld())			m_buffs[i]->PushToWorld(m_mapMgr);	}	// Alliance Gates	GameObject *gate = SpawnGameObject(179921, 489, 1471.554688f, 1458.778076f, 362.633240f, 0, 33, 114, 2.33271f);	gate->SetByte(GAMEOBJECT_BYTES_1, 3, 100);	gate->PushToWorld(m_mapMgr);	m_gates.push_back(gate);	gate = SpawnGameObject(179919, 489, 1492.477783f, 1457.912354f, 342.968933f, 0, 33, 114, 2.68149f);	gate->SetByte(GAMEOBJECT_BYTES_1, 3, 100);	gate->PushToWorld(m_mapMgr);	m_gates.push_back(gate);	gate = SpawnGameObject(179918, 489, 1503.335327f, 1493.465820f, 352.188843f, 0, 33, 114, 2.26f);	gate->SetByte(GAMEOBJECT_BYTES_1, 3, 100);	gate->PushToWorld(m_mapMgr);	m_gates.push_back(gate);	// Horde Gates	gate = SpawnGameObject(179916, 489, 949.1663208f, 1423.7717285f, 345.6241455f, -0.5756807f, 32, 114, 0.900901f);	gate->SetParentRotation(0, -0.0167336f);	gate->SetParentRotation(1, -0.004956f);	gate->SetParentRotation(2, -0.283972f);	gate->SetParentRotation(3, 0.9586736f);	gate->SetByte(GAMEOBJECT_BYTES_1, 3, 100);	gate->PushToWorld(m_mapMgr);	m_gates.push_back(gate);	gate = SpawnGameObject(179917, 489, 953.0507202f, 1459.8424072f, 340.6525573f, -1.9966197f, 32, 114, 0.854700f);   	gate->SetParentRotation(0, -0.1971825f);	gate->SetParentRotation(1, 0.1575096f);	gate->SetParentRotation(2, -0.8239487f);	gate->SetParentRotation(3, 0.5073640f);	gate->SetByte(GAMEOBJECT_BYTES_1, 3, 100);	gate->PushToWorld(m_mapMgr);	m_gates.push_back(gate);	/* set world states */	SetWorldState(0x8D8, 0);	SetWorldState(0x8D7, 0);	SetWorldState(0x8D6, 0);	SetWorldState(0x8D5, 0);	SetWorldState(0x8D4, 0);	SetWorldState(0x8D3, 0);	SetWorldState(0x60B, 0);	SetWorldState(0x60A, 0);	SetWorldState(0x609, 0);	SetWorldState(WSG_ALLIANCE_FLAG_CAPTURED, 1);	SetWorldState(WSG_HORDE_FLAG_CAPTURED, 1);	SetWorldState(WSG_MAX_SCORE, 3);	SetWorldState(WSG_CURRENT_ALLIANCE_SCORE, 0);	SetWorldState(WSG_CURRENT_HORDE_SCORE, 0);	/* spawn spirit guides */	AddSpiritGuide(SpawnSpiritGuide(1423.218872f, 1554.663574f, 342.833801f, 3.124139f, 0));	AddSpiritGuide(SpawnSpiritGuide(1032.644775f, 1388.316040f, 340.559937f, 0.043200f, 1));}
开发者ID:vata,项目名称:wowice,代码行数:64,


示例17: if

void BattlegroundIC::_NodeOccupied(uint8 node,Team team){    if (node >= BG_IC_DYNAMIC_NODES_COUNT)        return;    if(m_IC_NodeData[node].current==STATE_BANNER_ALLY)        team=ALLIANCE;    else if(m_IC_NodeData[node].current==STATE_BANNER_HORDE)        team=HORDE;    else //Changing to neutral    {        _NodeDeOccupied(node);        return;    }    if(node != BG_IC_NODE_QUARRY && node != BG_IC_NODE_REFINERY)        if (!AddSpiritGuide(node, BG_IC_SpiritGuidePos[node][0], BG_IC_SpiritGuidePos[node][1], BG_IC_SpiritGuidePos[node][2], BG_IC_SpiritGuidePos[node][3], team))            sLog.outError("Failed to spawn spirit guide! point: %u, team: %u,", node, team);    if (node == BG_IC_NODE_QUARRY)    {        uint32 otherTeam = GetOtherTeam(team);        for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)        {            if (itr->second.OfflineRemoveTime)                continue;            Player *plr = sObjectMgr.GetPlayer(itr->first);            if (!plr)            {                sLog.outError("Battleground:CastSpellOnTeam: Player (GUID: %u) not found!", GUID_LOPART(itr->first));                continue;            }            uint32 teamID = itr->second.Team;            if (!teamID)                teamID = plr->GetTeam();            if (teamID == otherTeam)                plr->RemoveAura(QUARRY);        }        CastSpellOnTeam(QUARRY, team);    }    if (node == BG_IC_NODE_REFINERY)    {        uint32 otherTeam = GetOtherTeam(team);        for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)        {            if (itr->second.OfflineRemoveTime)                continue;            Player *plr = sObjectMgr.GetPlayer(itr->first);            if (!plr)            {                sLog.outError("Battleground:CastSpellOnTeam: Player (GUID: %u) not found!", GUID_LOPART(itr->first));                continue;            }            uint32 teamID = itr->second.Team;            if (!teamID)                teamID = plr->GetTeam();            if (teamID == otherTeam)                plr->RemoveAura(OIL_REFINERY);        }        CastSpellOnTeam(OIL_REFINERY, team);    }    switch(node)    {    case BG_IC_NODE_WORKSHOP:        //Pop de 4 v?hicule (d?molisseur) devant        //Pop d'un engin de siege mais en r?paration (event 1 minute plus ou moins)        if(m_IC_NodeData[node].current==STATE_BANNER_ALLY)        {            SpawnNpcType(IC_TYPE_DEMOLISSER_A);            SpawnNpcType(IC_TYPE_SIEGE_A);        }        else        {            SpawnNpcType(IC_TYPE_DEMOLISSER_H);            SpawnNpcType(IC_TYPE_SIEGE_H);        }        break ;    case BG_IC_NODE_DOCK:        //Spawn associate vehicle        if(m_IC_NodeData[node].current==STATE_BANNER_ALLY)            SpawnNpcType(IC_TYPE_DOCKVEHICLE_A);        else            SpawnNpcType(IC_TYPE_DOCKVEHICLE_H);        break ;    case BG_IC_NODE_HANGAR:    	//Activate transport        if (m_GunshipA)            m_GunshipA->BuildStartMovePacket(GetBgMap());        if (m_GunshipH)                m_GunshipH->BuildStartMovePacket(GetBgMap());        for (int i = 0 ; i < MAX_BG_IC_OBJ; ++i)        {//.........这里部分代码省略.........
开发者ID:sensibob,项目名称:tempestcore,代码行数:101,


示例18: switch

//.........这里部分代码省略.........                // Spawn Aura                if(!AddObject(id+1,BG_IC_OBJECTID_AURA_TELEPORTER_A,x,y,z+0.000676f,o,0,0,0,0,RESPAWN_ONE_DAY))                    return false;                //Disable teleporter, must be active on battle start.                GetBGObject(id)->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);                GetBGObject(id+1)->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);                GetBGObject(id)->SetUInt32Value(GAMEOBJECT_FACTION, BG_IC_OBJ[i].faction);                break;            }			// if type is bomb: only one GameObject			case IC_TYPE_BOMB:            {                //Spawn object                if(!AddObject(id,BG_IC_OBJ[i].entry,x,y,z,o,0,0,0,0,RESPAWN_ONE_DAY))                    return false;                //Disable bomb, active on start                GetBGObject(id)->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);                //TODO: 10 sec respawn time ?                break;            }            //Decoration like bonfire			case IC_TYPE_DECORATION:            {                //Spawn GameObject                if(!AddObject(id,BG_IC_OBJ[i].entry,x,y,z,o,0,0,0,0,RESPAWN_ONE_DAY))                    return false;                break;            }            //The door associate to keep			case IC_TYPE_LAST_DOOR_H:	//Open when one of three door of Horde keep is destroy			case IC_TYPE_LAST_DOOR_A:	//Open when one of three door of Alliance keep is destroy			case IC_TYPE_TOWER_DOOR:	//Open on battleground start            {            	//Spawn GameObject                if(!AddObject(id,BG_IC_OBJ[i].entry,x,y,z,o,0,0,0,0,RESPAWN_ONE_DAY))                    return false;                //Close door                GetBGObject(id)->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);                break;            }        }        if(m_BgObjects[id] && GetBGObject(id))            GetBGObject(id)->setActive(true);    }    //GameObject are create but no spawn, now we must spawn (set visible)    for (int obj = 0 ; obj < BG_IC_MAX_OBJECT; obj++)        SpawnBGObject(obj, RESPAWN_IMMEDIATELY);    //Spawn all spirit guide in each GY    for(int i=BG_IC_ALLIANCE_KEEP;i<BG_IC_ALL_NODES_COUNT;i++)        if (!AddSpiritGuide(i, BG_IC_SpiritGuidePos[i][0], BG_IC_SpiritGuidePos[i][1], BG_IC_SpiritGuidePos[i][2], BG_IC_SpiritGuidePos[i][3], BG_IC_graveInitTeam[i]))        {            sLog.outError("Failed to spawn spirit guide! point: %u, team: %u,", i, BG_IC_graveInitTeam[i]);            return false;            }        //Npc spawning    for (int i = 0 ; i < MAX_BG_IC_NPC; ++i)    {        float x,y,z,o;        x=BG_IC_NPC[i].x;        y=BG_IC_NPC[i].y;        z=BG_IC_NPC[i].z;        o=BG_IC_NPC[i].o;        uint8 id=BG_IC_NPC[i].id;        switch(BG_IC_NPC[i].type)        {        case IC_TYPE_NONE:        case IC_TYPE_KEEP_GUN:            if(!AddCreature(BG_IC_NPC[i].entry,id,BG_IC_NPC[i].faction,x,y,z,o,BG_IC_NPC[i].respawn))                return false;            GetBGCreature(id)->setFaction(BG_IC_NPC[i].faction==FACTION_ALLIANCE?FACTION_NPC_ALLIANCE:FACTION_NPC_HORDE);            break;        }    }    //Spawning Gunship... in general system, there are spawn on server start and not on map loading... so for have    // one transport for each battleground it's difficult without manual spawn    m_GunshipA = MakeTransport(195121,120000,"IC - horde gunship");    m_GunshipH = MakeTransport(195276,120000,"IC - alliance gunship");    //Send transport init packet to all player in map    for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end();itr++)        {            if (Player* p = sObjectMgr.GetPlayer(itr->first))            {                SendTransportInit(p);            }        }    return true;}
开发者ID:sensibob,项目名称:tempestcore,代码行数:101,


示例19: 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:Ayik0,项目名称:DeathCore_5.4.8,代码行数:97,


示例20: HandleCapturedNodes

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(LOG_FILTER_BATTLEGROUND, "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(LOG_FILTER_BATTLEGROUND, "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:8Infinity8,项目名称:InfinityCore,代码行数:101,


示例21: SendTransportsRemove

//.........这里部分代码省略.........    }    OverrideGunFaction();    DemolisherStartState(true);    for (uint8 i = 0; i <= BG_SA_PORTAL_DEFFENDER_RED; i++)    {        SpawnBGObject(i, RESPAWN_IMMEDIATELY);        GetBGObject(i)->SetUInt32Value(GAMEOBJECT_FIELD_FACTION_TEMPLATE, defF);    }    GetBGObject(BG_SA_TITAN_RELIC)->SetUInt32Value(GAMEOBJECT_FIELD_FACTION_TEMPLATE, atF);    GetBGObject(BG_SA_TITAN_RELIC)->Refresh();    for (uint8 i = 0; i <= 5; i++)        GateStatus[i] = BG_SA_GATE_OK;    TotalTime = 0;    ShipsStarted = false;    gateDestroyed = false;    //Graveyards    for (uint8 i = 0; i < BG_SA_MAX_GY; i++)    {        WorldSafeLocsEntry const* sg = NULL;        sg = sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[i]);        if (!sg)            return false;        if (i == BG_SA_BEACH_GY)        {            GraveyardStatus[i] = Attackers;            AddSpiritGuide(i + BG_SA_MAXNPC, sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], ((Attackers == TEAM_HORDE)? HORDE : ALLIANCE));        }        else        {            GraveyardStatus[i] = ((Attackers == TEAM_HORDE)? TEAM_ALLIANCE : TEAM_HORDE);            AddSpiritGuide(i + BG_SA_MAXNPC, sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], ((Attackers == TEAM_HORDE)? ALLIANCE : HORDE));        }    }    //GY capture points    for (uint8 i = BG_SA_CENTRAL_FLAG; i <= BG_SA_LEFT_FLAG; i++)    {        AddObject(i, (BG_SA_ObjEntries[i] - (Attackers == TEAM_ALLIANCE ? 1 : 0)),            BG_SA_ObjSpawnlocs[i][0], BG_SA_ObjSpawnlocs[i][1],            BG_SA_ObjSpawnlocs[i][2], BG_SA_ObjSpawnlocs[i][3],            0, 0, 0, 0, RESPAWN_ONE_DAY);        GetBGObject(i)->SetUInt32Value(GAMEOBJECT_FIELD_FACTION_TEMPLATE, atF);    }    for (uint8 i = BG_SA_BOMB; i < BG_SA_MAXOBJ; i++)    {        AddObject(i, BG_SA_ObjEntries[BG_SA_BOMB],            BG_SA_ObjSpawnlocs[i][0], BG_SA_ObjSpawnlocs[i][1],            BG_SA_ObjSpawnlocs[i][2], BG_SA_ObjSpawnlocs[i][3],            0, 0, 0, 0, RESPAWN_ONE_DAY);        GetBGObject(i)->SetUInt32Value(GAMEOBJECT_FIELD_FACTION_TEMPLATE, atF);        if (i > 46)            GetBGObject(i)->SetFlag(GAMEOBJECT_FIELD_FLAGS, GO_FLAG_NOT_SELECTABLE);    }    //Player may enter BEFORE we set up BG - lets update his worldstates anyway...    UpdateWorldState(BG_SA_RIGHT_GY_HORDE, GraveyardStatus[BG_SA_RIGHT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);    UpdateWorldState(BG_SA_LEFT_GY_HORDE, GraveyardStatus[BG_SA_LEFT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
开发者ID:cooler-SAI,项目名称:PandaFire,代码行数:67,


示例22: AddCreature

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))        {            sLog->outError("Isle of Conquest: There was an error spawning gameobject %u", BG_IC_ObjSpawnlocs[i].entry);            return false;        }    }    for (uint8 i = 0; i < MAX_NORMAL_NPCS_SPAWNS; i++)    {        Creature *temp = 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);        if (!temp)        {            sLog->outError("Isle of Conquest: There was an error spawning creature %u", BG_IC_NpcSpawnlocs[i].entry);            return false;        }        if (temp->GetEntry() == NPC_OVERLORD_AGMAR || temp->GetEntry() == NPC_HIGH_COMMANDER_HALFORD_WYRMBANE)            temp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);    }    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))    {        sLog->outError("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)    {        sLog->outError("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 = sObjectMgr->GetPlayer(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:Akenyshka,项目名称:MythCore,代码行数:65,


示例23: 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 = NULL;    sg = sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[i]);    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]);            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]);            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(0);            break;    };}
开发者ID:mmihail,项目名称:trinitycore10353,代码行数:72,


示例24: DelCreature

void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player* Source){    if (GraveyardStatus[i] == Attackers)        return;    DelCreature(BG_SA_MAXNPC + i);    GraveyardStatus[i] = Source->GetBGTeamId();    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->GetBGTeamId() == 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->GetBGTeamId() == 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->GetBGTeamId() == 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->GetBGTeamId() == 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->GetBGTeamId() == 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->GetBGTeamId() == TEAM_ALLIANCE ? TEXT_SOUTH_GRAVEYARD_CAPTURED_A : TEXT_SOUTH_GRAVEYARD_CAPTURED_H, Source);            break;        default:            ASSERT(false);            break;    };}
开发者ID:redlaine,项目名称:TrinityCore,代码行数:88,


示例25: SetupBattleground

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))        {            sLog->outError(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))        {            sLog->outError(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))    {        sLog->outError(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)    {        sLog->outError(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:8Infinity8,项目名称:InfinityCore,代码行数:63,


示例26: SendTransportsRemove

//.........这里部分代码省略.........    OverrideGunFaction();    DemolisherStartState(true);    for (uint8 i = 0; i <= BG_SA_PORTAL_DEFFENDER_RED; i++)    {        SpawnBGObject(i, RESPAWN_IMMEDIATELY);        GetBGObject(i)->SetFaction(defF);    }    GetBGObject(BG_SA_TITAN_RELIC)->SetFaction(atF);    GetBGObject(BG_SA_TITAN_RELIC)->Refresh();    for (uint8 i = 0; i <= 5; i++)        GateStatus[i] = BG_SA_GATE_OK;    TotalTime = 0;    ShipsStarted = false;    //Graveyards    for (uint8 i = 0; i < BG_SA_MAX_GY; i++)    {        WorldSafeLocsEntry const* sg = NULL;        sg = sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[i]);        if (!sg)        {            TC_LOG_ERROR("bg.battleground", "SOTA: Can't find GY entry %u", BG_SA_GYEntries[i]);            return false;        }        if (i == BG_SA_BEACH_GY)        {            GraveyardStatus[i] = Attackers;            AddSpiritGuide(i + BG_SA_MAXNPC, sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], Attackers);        }        else        {            GraveyardStatus[i] = ((Attackers == TEAM_HORDE)? TEAM_ALLIANCE : TEAM_HORDE);            if (!AddSpiritGuide(i + BG_SA_MAXNPC, sg->x, sg->y, sg->z, BG_SA_GYOrientation[i], Attackers == TEAM_HORDE ? TEAM_ALLIANCE : TEAM_HORDE))                TC_LOG_ERROR("bg.battleground", "SOTA: couldn't spawn GY: %u", i);        }    }    //GY capture points    for (uint8 i = BG_SA_CENTRAL_FLAG; i <= BG_SA_LEFT_FLAG; i++)    {        if (!AddObject(i, (BG_SA_ObjEntries[i] - (Attackers == TEAM_ALLIANCE ? 1 : 0)), BG_SA_ObjSpawnlocs[i], 0, 0, 0, 0, RESPAWN_ONE_DAY))        {            TC_LOG_ERROR("bg.battleground", "SOTA: couldn't spawn Central Flag Entry: %u", BG_SA_ObjEntries[i] - (Attackers == TEAM_ALLIANCE ? 1 : 0));            continue;        }        GetBGObject(i)->SetFaction(atF);    }    for (uint8 i = BG_SA_BOMB; i < BG_SA_MAXOBJ; i++)    {        if (!AddObject(i, BG_SA_ObjEntries[BG_SA_BOMB], BG_SA_ObjSpawnlocs[i], 0, 0, 0, 0, RESPAWN_ONE_DAY))        {            TC_LOG_ERROR("bg.battleground", "SOTA: couldn't spawn SA Bomb Entry: %u", BG_SA_ObjEntries[BG_SA_BOMB] + i);            continue;        }        GetBGObject(i)->SetFaction(atF);    }    //Player may enter BEFORE we set up BG - lets update his worldstates anyway...    UpdateWorldState(BG_SA_RIGHT_GY_HORDE, GraveyardStatus[BG_SA_RIGHT_CAPTURABLE_GY] == TEAM_HORDE ? 1 : 0);
开发者ID:redlaine,项目名称:TrinityCore,代码行数:67,


示例27: 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 (m_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("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:Gamerzon94,项目名称:wowrean-emu,代码行数:66,


示例28: RespawnCPFlag

void EyeOfTheStorm::UpdateCPs(){    uint32 plrcounts[2] = { 0, 0 };    // details:    //   loop through inrange players, for new ones, send the enable CP worldstate.    //   the value of the map is a timestamp of the last update, to avoid cpu time wasted    //   doing lookups of objects that have already been updated    unordered_set<Player*  >::iterator itr;    unordered_set<Player*  >::iterator itrend;    map<uint32,uint32>::iterator it2, it3;    uint32 timeptr = (uint32)UNIXTIME;    bool in_range;    bool is_valid;    Player* plr;    uint32 i;    for(i = 0; i < EOTS_TOWER_COUNT; i++)    {        itr = m_CPStatusGO[i]->GetInRangePlayerSetBegin();        itrend = m_CPStatusGO[i]->GetInRangePlayerSetEnd();        plrcounts[0] = plrcounts[1] = 0;        for(; itr != itrend; itr++)        {            if( !(*itr)->IsPvPFlagged() || (*itr)->InStealth() || (*itr)->m_invisible || (*itr)->SchoolImmunityList[0] || (*itr)->m_bgFlagIneligible )                is_valid = false;            else                is_valid = true;            in_range = ((*itr)->isAlive() && m_CPStatusGO[i]->GetDistanceSq((*itr)) <= EOTS_CAPTURE_DISTANCE) ? true : false;            it2 = m_CPStored[i].find((*itr)->GetLowGUID());            if( it2 == m_CPStored[i].end() )            {                // new player :)                if( in_range )                {                    (*itr)->SendWorldStateUpdate(WORLDSTATE_EOTS_PVP_CAPTURE_BAR_DISPLAY, 1);                    (*itr)->SendWorldStateUpdate(WORLDSTATE_EOTS_PVP_CAPTURE_BAR_VALUE, m_CPStatus[i]);                    m_CPStored[i].insert(make_pair((*itr)->GetLowGUID(), timeptr));                    if( is_valid )                        plrcounts[(*itr)->GetTeam()]++;                }            }            else            {                // oldie                if( !in_range )                {                    (*itr)->SendWorldStateUpdate(WORLDSTATE_EOTS_PVP_CAPTURE_BAR_DISPLAY, 0);                    m_CPStored[i].erase(it2);                }                else                {                    (*itr)->SendWorldStateUpdate(WORLDSTATE_EOTS_PVP_CAPTURE_BAR_VALUE, m_CPStatus[i]);                    it2->second = timeptr;                    if( is_valid )                        plrcounts[(*itr)->GetTeam()]++;                }            }        }        // handle stuff for the last tick        // change the flag depending on cp status        if( m_CPStatus[i] < 50 )        {            if( ( m_CPBanner[i] && m_CPBanner[i]->GetEntry() != EOTS_BANNER_HORDE ) ||              ( m_CPBanner2[i] && m_CPBanner2[i]->GetEntry() != EOTS_BANNER_HORDE ) ||              ( m_CPBanner3[i] && m_CPBanner3[i]->GetEntry() != EOTS_BANNER_HORDE ) )            {                RespawnCPFlag(i, EOTS_BANNER_HORDE);                if( m_spiritGuides[i] != NULL )                {                    RepopPlayersOfTeam( 0, m_spiritGuides[i] );                    m_spiritGuides[i]->Despawn( 0, 0 );                    RemoveSpiritGuide( m_spiritGuides[i] );                    m_spiritGuides[i] = NULLCREATURE;                }                m_spiritGuides[i] = SpawnSpiritGuide( EOTSGraveyardLocations[i][0], EOTSGraveyardLocations[i][1], EOTSGraveyardLocations[i][2], 0, 1 );                AddSpiritGuide( m_spiritGuides[i] );                SendChatMessage(CHAT_MSG_BG_SYSTEM_HORDE, 0, "The Horde have captured the %s.", EOTSCPNames[i]);                // set some world states                m_mapMgr->GetStateManager().UpdateWorldState(EOTSNeturalDisplayFields[i], 0);                m_mapMgr->GetStateManager().UpdateWorldState(EOTSHordeDisplayFields[i], 1);                m_mapMgr->GetStateManager().UpdateWorldState(EOTSAllianceDisplayFields[i], 0);                m_towerCount[1]++;                m_mapMgr->GetStateManager().UpdateWorldState( WORLDSTATE_EOTS_HORDE_BASES, m_towerCount[1] );            }        }        else if( m_CPStatus[i] > 50 )        {            if( ( m_CPBanner[i] && m_CPBanner[i]->GetEntry() != EOTS_BANNER_ALLIANCE ) ||              ( m_CPBanner2[i] && m_CPBanner2[i]->GetEntry() != EOTS_BANNER_ALLIANCE ) ||              ( m_CPBanner3[i] && m_CPBanner3[i]->GetEntry() != EOTS_BANNER_ALLIANCE ) )            {//.........这里部分代码省略.........
开发者ID:WowDevs,项目名称:Sandshroud,代码行数:101,


示例29: RemoveSpiritGuide

void ArathiBasin::CaptureControlPoint(uint32 Id, uint32 Team){	if(m_basesOwnedBy[Id] != -1)	{		// there is a very slim chance of this happening, 2 teams events could clash..		// just in case...		return;	}	// anti cheat, not really necessary because this is a server method but anyway	if(m_basesAssaultedBy[Id] != (int32)Team)		return;	m_basesOwnedBy[Id] = Team;	m_basesAssaultedBy[Id] = -1;	m_basesLastOwnedBy[Id] = -1;	// remove the other spirit guide (if it exists) // burlex: shouldn't' happen	if(m_spiritGuides[Id] != NULL)	{		RemoveSpiritGuide(m_spiritGuides[Id]);		m_spiritGuides[Id]->Despawn(0, 0);	}	// spawn the spirit guide for our faction	m_spiritGuides[Id] = SpawnSpiritGuide(GraveyardLocations[Id][0], GraveyardLocations[Id][1], GraveyardLocations[Id][2], 0.0f, Team);	AddSpiritGuide(m_spiritGuides[Id]);	// send the chat message/sounds out	PlaySoundToAll(Team ? SOUND_HORDE_CAPTURE : SOUND_ALLIANCE_CAPTURE);	SendChatMessage(Team ? CHAT_MSG_BG_EVENT_HORDE : CHAT_MSG_BG_EVENT_ALLIANCE, 0, "The %s has taken the %s!", Team ? "Horde" : "Alliance", ControlPointNames[Id]);	DefFlag[Id][0] = false;	DefFlag[Id][1] = false;	// update the overhead display on the clients (world states)	m_capturedBases[Team]++;	SetWorldState(Team ? WORLDSTATE_AB_HORDE_CAPTUREBASE : WORLDSTATE_AB_ALLIANCE_CAPTUREBASE, m_capturedBases[Team]);	if(m_capturedBases[Team] >= 4)	{		m_mainLock.Acquire();		for(set<Player*>::iterator itr = m_players[Team].begin(); itr != m_players[Team].end(); ++itr)		{			if(Team)			{				if(m_capturedBases[Team] >= 4 && (*itr)->GetQuestLogForEntry(8121))					(*itr)->GetQuestLogForEntry(8121)->SendQuestComplete();				if(m_capturedBases[Team] == 5 && (*itr)->GetQuestLogForEntry(8122))					(*itr)->GetQuestLogForEntry(8122)->SendQuestComplete();			}			else			{				if(m_capturedBases[Team] >= 4 && (*itr)->GetQuestLogForEntry(8114))					(*itr)->GetQuestLogForEntry(8114)->SendQuestComplete();				if(m_capturedBases[Team] == 5 && (*itr)->GetQuestLogForEntry(8115))					(*itr)->GetQuestLogForEntry(8115)->SendQuestComplete();			}		}		m_mainLock.Release();	}	// respawn the control point with the correct aura	SpawnControlPoint(Id, Team ? AB_SPAWN_TYPE_HORDE_CONTROLLED : AB_SPAWN_TYPE_ALLIANCE_CONTROLLED);	// update the map	SetWorldState(AssaultFields[Id][Team], 0);	SetWorldState(OwnedFields[Id][Team], 1);	// resource update event. :)	if(m_capturedBases[Team] == 1)	{		// first		sEventMgr.AddEvent(this, &ArathiBasin::EventUpdateResources, (uint32)Team, EVENT_AB_RESOURCES_UPDATE_TEAM_0 + Team, ResourceUpdateIntervals[1], 0,		                   EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT);	}	else	{		// not first		event_ModifyTime(EVENT_AB_RESOURCES_UPDATE_TEAM_0 + Team, ResourceUpdateIntervals[m_capturedBases[Team]]);	}}
开发者ID:Carbinfibre,项目名称:Script-Land,代码行数:81,


示例30: GetBGObject

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))        {            sLog->outError("Isle of Conquest: There was an error spawning gameobject %u", BG_IC_ObjSpawnlocs[i].entry);            return false;        }		// Horde / Alliance gates, set active		if (i < 6)			GetBGObject(BG_IC_ObjSpawnlocs[i].type)->setActive(true);    }    for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTERS_SPAWNS; ++i)    {        if (!AddObject(BG_IC_Teleporters[i].type, BG_IC_Teleporters[i].entry, BG_IC_Teleporters[i].x, BG_IC_Teleporters[i].y, BG_IC_Teleporters[i].z, BG_IC_Teleporters[i].o, 0, 0, 0, 0, RESPAWN_ONE_DAY))        {            sLog->outError("Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject %u", BG_IC_Teleporters[i].entry);            return false;        }    }    for (uint8 i = 0; i < MAX_FORTRESS_TELEPORTER_EFFECTS_SPAWNS; ++i)    {        if (!AddObject(BG_IC_TeleporterEffects[i].type, BG_IC_TeleporterEffects[i].entry, BG_IC_TeleporterEffects[i].x, BG_IC_TeleporterEffects[i].y, BG_IC_TeleporterEffects[i].z, BG_IC_TeleporterEffects[i].o, 0, 0, 0, 0, RESPAWN_ONE_DAY))        {            sLog->outError("Isle of Conquest | Starting Event Open Doors: There was an error spawning gameobject %u", BG_IC_Teleporters[i].entry);            return false;        }    }    for (uint8 i = 0; i < MAX_NORMAL_NPCS_SPAWNS; ++i)    {        if (!AddCreature(BG_IC_NpcSpawnlocs[i].entry, BG_IC_NpcSpawnlocs[i].type, BG_IC_NpcSpawnlocs[i].x, BG_IC_NpcSpawnlocs[i].y, BG_IC_NpcSpawnlocs[i].z, BG_IC_NpcSpawnlocs[i].o, RESPAWN_ONE_DAY))        {            sLog->outError("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+3, BG_IC_SpiritGuidePos[5][0], BG_IC_SpiritGuidePos[5][1], BG_IC_SpiritGuidePos[5][2], BG_IC_SpiritGuidePos[5][3], TEAM_ALLIANCE)        || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+4, BG_IC_SpiritGuidePos[6][0], BG_IC_SpiritGuidePos[6][1], BG_IC_SpiritGuidePos[6][2], BG_IC_SpiritGuidePos[6][3], TEAM_HORDE)        || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+5, BG_IC_SpiritGuidePos[7][0], BG_IC_SpiritGuidePos[7][1], BG_IC_SpiritGuidePos[7][2], BG_IC_SpiritGuidePos[7][3], TEAM_ALLIANCE)        || !AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+6, BG_IC_SpiritGuidePos[8][0], BG_IC_SpiritGuidePos[8][1], BG_IC_SpiritGuidePos[8][2], BG_IC_SpiritGuidePos[8][3], TEAM_HORDE))    {        sLog->outError("Isle of Conquest: Failed to spawn initial spirit guide!");        return false;    }    gunshipHorde = sTransportMgr->CreateTransport(GO_HORDE_GUNSHIP, 0, GetBgMap());    gunshipAlliance = sTransportMgr->CreateTransport(GO_ALLIANCE_GUNSHIP, 0, GetBgMap());    if (!gunshipAlliance || !gunshipHorde)    {        sLog->outError("Isle of Conquest: There was an error creating gunships!");        return false;    }    gunshipHorde->EnableMovement(false);    gunshipAlliance->EnableMovement(false);    // 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]);	// Flags	if (GameObject* go = GetBGObject(BG_IC_GO_ALLIANCE_BANNER))	{		go->SetUInt32Value(GAMEOBJECT_FACTION, BG_IC_Factions[1]);		go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);	}	if (GameObject* go = GetBGObject(BG_IC_GO_HORDE_BANNER))	{		go->SetUInt32Value(GAMEOBJECT_FACTION, BG_IC_Factions[0]);		go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);	}    // 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);	TurnBosses(false);    return true;}
开发者ID:AlexHjelm,项目名称:sunwell,代码行数:87,



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


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