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

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

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

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

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

示例1: CastSpellOnTeam

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_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);    if (node >= BG_AB_DYNAMIC_NODES_COUNT)//only dynamic nodes, no start points        return;    Creature* trigger = GetBGCreature(node+7);//0-6 spirit guides    if (!trigger)       trigger = AddCreature(WORLD_TRIGGER, node+7, team, BG_AB_NodePositions[node][0], BG_AB_NodePositions[node][1], BG_AB_NodePositions[node][2], BG_AB_NodePositions[node][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:TDMarko,项目名称:SkyFireEMU_rebase,代码行数:31,


示例2: CastSpellOnTeam

/*! Handles end of battleground rewards (marks etc) *  /param winningTeam Team that won the battleground *  /returns True if CBattleground class should finish applying rewards, false if we handled it fully */bool ArathiBasin::HandleFinishBattlegroundRewardCalculation(PlayerTeam winningTeam){    CastSpellOnTeam(winningTeam, 43484);    CastSpellOnTeam(winningTeam, 69153);    CastSpellOnTeam(winningTeam, 69499);    CastSpellOnTeam(winningTeam, 69500);    return true;}
开发者ID:Nupper,项目名称:AscEmu,代码行数:11,


示例3: CastSpellOnTeam

/*! Handles end of battleground rewards (marks etc)*  /param winningTeam Team that won the battleground*  /returns True if CBattleground class should finish applying rewards, false if we handled it fully */bool WarsongGulch::HandleFinishBattlegroundRewardCalculation(PlayerTeam winningTeam){    CastSpellOnTeam(winningTeam, 69158);    CastSpellOnTeam(winningTeam, 69496);    CastSpellOnTeam(winningTeam, 69497);    CastSpellOnTeam(winningTeam, 69498);    return true;}
开发者ID:master312,项目名称:AscEmu,代码行数:11,


示例4: UpdatePvPData

bool EyeOfTheStorm::GivePoints(uint32 team, uint32 points){	//printf("EOTS: Give team %u %u points./n", team, points);	m_points[team] += points;	if((m_points[team] - m_lastHonorGainPoints[team]) >= resourcesToGainBH)	{		uint32 honorToAdd = m_honorPerKill;		m_mainLock.Acquire();		for(set<Player*>::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr)		{			(*itr)->m_bgScore.BonusHonor += honorToAdd;			HonorHandler::AddHonorPointsToPlayer((*itr), honorToAdd);		}		UpdatePvPData();		m_mainLock.Release();		m_lastHonorGainPoints[team] += resourcesToGainBH;	}	if(m_points[team] >= 1600)	{		m_points[team] = 1600;		m_ended = true;		m_winningteam = static_cast<uint8>(team);		m_nextPvPUpdateTime = 0;		sEventMgr.RemoveEvents(this);		sEventMgr.AddEvent(TO< CBattleground* >(this), &CBattleground::Close, EVENT_BATTLEGROUND_CLOSE, 120000, 1, EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT);		m_mainLock.Acquire();		AddHonorToTeam( m_winningteam, 3 * 185 );		CastSpellOnTeam( m_winningteam, 43477 );		CastSpellOnTeam( m_winningteam, 69156 );		if( m_winningteam == TEAM_ALLIANCE )			AddHonorToTeam( TEAM_HORDE, 1 * 185 );		else			AddHonorToTeam( TEAM_ALLIANCE, 1 * 185 );		m_mainLock.Release();		SetWorldState(WORLDSTATE_EOTS_ALLIANCE_VICTORYPOINTS + team, m_points[team]);		UpdatePvPData();		return true;	}	SetWorldState(WORLDSTATE_EOTS_ALLIANCE_VICTORYPOINTS + team, m_points[team]);	return false;}
开发者ID:lev1976g,项目名称:NoxicCore,代码行数:52,


示例5: CastSpellOnTeam

void BattleGroundAB::_NodeOccupied(uint8 node, Team 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:bread-and-butter,项目名称:server,代码行数:13,


示例6: CastSpellOnTeam

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:Anonymus123,项目名称:AtomicCore-2.4.3,代码行数:16,


示例7: CastSpellOnTeam

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,


示例8: 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,


示例9: AddHonorToTeam

void StrandOfTheAncient::Finish( uint32 winningteam ){    sEventMgr.RemoveEvents( this );	m_ended = true;	m_winningteam = winningteam;	uint32 losingteam;	if( winningteam == TEAM_ALLIANCE )		losingteam = TEAM_HORDE;	else		losingteam = TEAM_ALLIANCE;	AddHonorToTeam( winningteam, 3 * 185 );	AddHonorToTeam( losingteam, 1 * 185 );	CastSpellOnTeam( m_winningteam, 61213 );	UpdatePvPData();	sEventMgr.AddEvent( TO< CBattleground* >( this ), &CBattleground::Close, EVENT_BATTLEGROUND_CLOSE, 120 * 1000, 1,0 );}
开发者ID:Carbinfibre,项目名称:Script-Land,代码行数:19,


示例10: switch

void IsleOfConquest::EventRefineryCaptured(){    ControlPointTypes state = controlpoint[ IOC_CONTROL_POINT_REFINERY ].state;    uint32 newteam = 0;    uint32 oldteam = 0;        switch( state ){        case IOC_SPAWN_TYPE_ALLIANCE_CONTROLLED:            newteam = TEAM_ALLIANCE;            oldteam = TEAM_HORDE;            break;        case IOC_SPAWN_TYPE_HORDE_CONTROLLED:            newteam = TEAM_HORDE;            oldteam = TEAM_ALLIANCE;            break;    }    RemoveAuraFromTeam( oldteam, IOC_REFINERY_BONUS );    CastSpellOnTeam( newteam, IOC_REFINERY_BONUS );}
开发者ID:Declipe,项目名称:AscEmu,代码行数:19,


示例11: AddHonorToTeam

void IsleOfConquest::Finish( uint32 losingTeam ){        if( m_ended )            return;        m_ended = true;        sEventMgr.RemoveEvents(this);        sEventMgr.AddEvent(TO< CBattleground* >(this), &CBattleground::Close, EVENT_BATTLEGROUND_CLOSE, 120 * 1000, 1,0);        if( losingTeam == TEAM_ALLIANCE )            m_winningteam = TEAM_HORDE;        else            m_winningteam = TEAM_ALLIANCE;        AddHonorToTeam( m_winningteam, 3 * 185 );        AddHonorToTeam( losingTeam, 1 * 185 );        CastSpellOnTeam( m_winningteam, 67033 );        UpdatePvPData();}
开发者ID:Declipe,项目名称:AscEmu,代码行数:19,


示例12: TC_LOG_ERROR

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,


示例13: switch

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


示例14: SendMessageToAll

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


示例15: 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,


示例16: CastSpellOnTeam

/*! Handles end of battleground rewards (marks etc)*  /param winningTeam Team that won the battleground*  /returns True if CBattleground class should finish applying rewards, false if we handled it fully */bool StrandOfTheAncient::HandleFinishBattlegroundRewardCalculation(PlayerTeam winningTeam){    CastSpellOnTeam(winningTeam, 61213);    return true;}
开发者ID:lev1976g,项目名称:AscEmu,代码行数:8,


示例17: CastSpellOnTeam

/*! Handles end of battleground rewards (marks etc)*  /param winningTeam Team that won the battleground*  /returns True if CBattleground class should finish applying rewards, false if we handled it fully */bool IsleOfConquest::HandleFinishBattlegroundRewardCalculation(PlayerTeam winningTeam){    CastSpellOnTeam(winningTeam, 67033);    return true;}
开发者ID:Lbniese,项目名称:AscEmu,代码行数:8,


示例18: switch

void BattlegroundIC::HandleCapturedNodes(ICNodePoint* nodePoint, bool recapture){    if (nodePoint->nodeType != NODE_TYPE_REFINERY && nodePoint->nodeType != NODE_TYPE_QUARRY)    {        if (!AddSpiritGuide(BG_IC_NPC_SPIRIT_GUIDE_1+nodePoint->nodeType-2,            BG_IC_SpiritGuidePos[nodePoint->nodeType][0], BG_IC_SpiritGuidePos[nodePoint->nodeType][1],            BG_IC_SpiritGuidePos[nodePoint->nodeType][2], BG_IC_SpiritGuidePos[nodePoint->nodeType][3],            (nodePoint->faction == TEAM_ALLIANCE ? ALLIANCE : HORDE)))            sLog->outError(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,


示例19: UpdatePvPData

void ArathiBasin::EventUpdateResources(uint32 Team){	uint32 resource_fields[2] = { WORLDSTATE_AB_ALLIANCE_RESOURCES, WORLDSTATE_AB_HORDE_RESOURCES };	uint32 current_resources = m_resources[Team];	uint32 current_bases = m_capturedBases[Team];	if(current_bases > 5)		current_bases = 5;	// figure out how much resources we have to add to that team based on the number of captured bases.	current_resources += (PointBonusPerUpdate[current_bases]);	// did it change?	if(current_resources == m_resources[Team])		return;	// check for overflow	if(current_resources > RESOURCES_WINVAL)		current_resources = RESOURCES_WINVAL;	m_resources[Team] = current_resources;	if((current_resources - m_lastRepGainResources[Team]) >= resourcesToGainBR)	{		m_mainLock.Acquire();		for(set<Player*>::iterator itr = m_players[Team].begin(); itr != m_players[Team].end(); ++itr)		{			uint32 fact = (*itr)->IsTeamHorde() ? 510 : 509; //The Defilers : The League of Arathor			(*itr)->ModStanding(fact, 10);		}		m_mainLock.Release();		m_lastRepGainResources[Team] += resourcesToGainBR;	}	if((current_resources - m_lastHonorGainResources[Team]) >= resourcesToGainBH)	{		uint32 honorToAdd = m_honorPerKill;		m_mainLock.Acquire();		for(set<Player*>::iterator itr = m_players[Team].begin(); itr != m_players[Team].end(); ++itr)		{			(*itr)->m_bgScore.BonusHonor += honorToAdd;			HonorHandler::AddHonorPointsToPlayer((*itr), honorToAdd);		}		UpdatePvPData();		m_mainLock.Release();		m_lastHonorGainResources[Team] += resourcesToGainBH;	}	// update the world states	SetWorldState(resource_fields[Team], current_resources);	if(current_resources >= RESOURCES_WARNING_THRESHOLD && !m_nearingVictory[Team])	{		m_nearingVictory[Team] = true;		SendChatMessage(Team ? CHAT_MSG_BG_EVENT_HORDE : CHAT_MSG_BG_EVENT_ALLIANCE, (uint64)0, "The %s has gathered %u resources and is nearing victory!", Team ? "Horde" : "Alliance", current_resources);		uint32 sound = SOUND_ALLIANCE_BGALMOSTEND - Team;		PlaySoundToAll(sound);	}	// check for winning condition	if(current_resources == RESOURCES_WINVAL)	{		m_ended = true;		m_winningteam = static_cast<uint8>(Team);		m_nextPvPUpdateTime = 0;		sEventMgr.RemoveEvents(this);		sEventMgr.AddEvent(TO< CBattleground* >(this), &CBattleground::Close, EVENT_BATTLEGROUND_CLOSE, 120000, 1, EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT);		m_winningteam = Team;				AddHonorToTeam( m_winningteam, 3 * 185 );		// Winning spells for AB		CastSpellOnTeam( m_winningteam, 43484 );		CastSpellOnTeam( m_winningteam, 69153 );		CastSpellOnTeam( m_winningteam, 69499 );		CastSpellOnTeam( m_winningteam, 69500 );		if( m_winningteam == TEAM_ALLIANCE )			AddHonorToTeam( TEAM_HORDE, 1 * 185 );		else			AddHonorToTeam( TEAM_ALLIANCE, 1 * 185 );		UpdatePvPData();	}}
开发者ID:Carbinfibre,项目名称:Script-Land,代码行数:88,


示例20: switch

//.........这里部分代码省略.........    {        if(m_buffs[buffslot] != 0 && m_buffs[buffslot]->IsInWorld())        {            /* apply the buff */            SpellEntry* sp = dbcSpell.LookupEntry(m_buffs[buffslot]->GetInfo()->sound3);            Spell* s = sSpellFactoryMgr.NewSpell(plr, sp, true, 0);            SpellCastTargets targets(plr->GetGUID());            s->prepare(&targets);            /* despawn the gameobject (not delete!) */            m_buffs[buffslot]->Despawn(0, BUFF_RESPAWN_TIME);        }        return;    }    if(((id == 3646 && plr->IsTeamAlliance()) || (id == 3647 && plr->IsTeamHorde())) && (plr->m_bgHasFlag && m_flagHolders[plr->GetTeam()] == plr->GetLowGUID()))    {        if(m_flagHolders[plr->IsTeamHorde() ? TEAM_ALLIANCE : TEAM_HORDE] != 0 || m_dropFlags[plr->IsTeamHorde() ? TEAM_ALLIANCE : TEAM_HORDE]->IsInWorld())        {            /* can't cap while flag dropped */            return;        }        float distance = plr->IsTeamAlliance() ? plr->CalcDistance(1540.29f, 1481.34f, 352.64f) : plr->CalcDistance(915.367f, 1433.78f, 346.089f);        if(distance > 50.0f)        {            //50 yards from the spawn, gtfo hacker.            sCheatLog.writefromsession(plr->GetSession(), "Tried to capture the flag in WSG while being more then 50 yards away. (%f yards)", plr->CalcDistance(915.367f, 1433.78f, 346.089f));            plr->GetSession()->Disconnect();            return;        }        /* remove the bool from the player so the flag doesn't drop */        m_flagHolders[plr->GetTeam()] = 0;        plr->m_bgHasFlag = 0;        /* remove flag aura from player */        plr->RemoveAura(23333 + (plr->GetTeam() * 2));        /* capture flag points */        plr->m_bgScore.MiscData[BG_SCORE_WSG_FLAGS_CAPTURED]++;        PlaySoundToAll(plr->IsTeamHorde() ? SOUND_HORDE_SCORES : SOUND_ALLIANCE_SCORES);        if(plr->IsTeamHorde())            SendChatMessage(CHAT_MSG_BG_EVENT_HORDE, plr->GetGUID(), "%s captured the Alliance flag!", plr->GetName());        else            SendChatMessage(CHAT_MSG_BG_EVENT_ALLIANCE, plr->GetGUID(), "%s captured the Horde flag!", plr->GetName());        SetWorldState(plr->IsTeamHorde() ? WORLDSTATE_WSG_ALLIANCE_FLAG_DISPLAY : WORLDSTATE_WSG_HORDE_FLAG_DISPLAY, 1);        // Remove the Other Flag        if(m_homeFlags[plr->IsTeamHorde() ? TEAM_ALLIANCE : TEAM_HORDE]->IsInWorld())            m_homeFlags[plr->IsTeamHorde() ? TEAM_ALLIANCE : TEAM_HORDE]->RemoveFromWorld(false);        // Add the Event to respawn the Flags        sEventMgr.AddEvent(this, &WarsongGulch::EventReturnFlags, EVENT_BATTLEGROUND_WSG_AUTO_RETURN_FLAG, 20000, 1, EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT);        /* give each player on that team bonus honor and reputation*/        uint32 honorToAdd = 2 * m_honorPerKill;        uint32 repToAdd = m_isWeekend ? 45 : 35;        uint32 fact = plr->IsTeamHorde() ? 889 : 890; /*Warsong Outriders : Sliverwing Sentinels*/        for(set<Player*>::iterator itr = m_players[plr->GetTeam()].begin(); itr != m_players[plr->GetTeam()].end(); ++itr)        {            (*itr)->m_bgScore.BonusHonor += honorToAdd;            HonorHandler::AddHonorPointsToPlayer((*itr), honorToAdd);            plr->ModStanding(fact, repToAdd);        }        m_scores[plr->GetTeam()]++;        if(m_scores[plr->GetTeam()] == 3)        {            /* victory! */            m_ended = true;            m_winningteam = (uint8)plr->GetTeam();            m_nextPvPUpdateTime = 0;            sEventMgr.RemoveEvents(this, EVENT_BATTLEGROUND_CLOSE);            sEventMgr.AddEvent(TO< CBattleground* >(this), &CBattleground::Close, EVENT_BATTLEGROUND_CLOSE, 120000, 1, EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT);            AddHonorToTeam( m_winningteam, 3 * 185 );            CastSpellOnTeam( m_winningteam, 69158 );            CastSpellOnTeam( m_winningteam, 69496 );            CastSpellOnTeam( m_winningteam, 69497 );            CastSpellOnTeam( m_winningteam, 69498 );            if( m_winningteam == TEAM_ALLIANCE )                AddHonorToTeam( TEAM_HORDE, 1 * 185 );            else                AddHonorToTeam( TEAM_ALLIANCE, 1 * 185 );            m_mainLock.Release();        }        /* increment the score world state */        SetWorldState(plr->IsTeamHorde() ? WORLDSTATE_WSG_HORDE_SCORE : WORLDSTATE_WSG_ALLIANCE_SCORE, m_scores[plr->GetTeam()]);        UpdatePvPData();    }}
开发者ID:treetrees,项目名称:Edge-of-Chaos,代码行数:101,



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


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