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

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

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

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

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

示例1: DelObject

bool BattlegroundNA::PreUpdateImpl(uint32 diff){    if (doordelete)    {        if (doordelete <= diff)        {            for (uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_2; ++i)                DelObject(i);            doordelete = 0;        }        else            doordelete -= diff;    }    return true;}
开发者ID:Rastrian,项目名称:CataCore,代码行数:15,


示例2: DelObject

void OPvPCapturePointEP_NPT::SummonGO(uint32 team){    if (m_SummonedGOSide != team)    {        m_SummonedGOSide = team;        DelObject(EP_NPT_BUFF);        AddObject(EP_NPT_BUFF, EP_NPT_LordaeronShrine.entry, EP_NPT_LordaeronShrine.map, EP_NPT_LordaeronShrine.pos, EP_NPT_LordaeronShrine.rot);        Map* map = sMapMgr->FindMap(0, 0);        auto bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_Objects[EP_NPT_BUFF]);        for (auto itr = bounds.first; itr != bounds.second; ++itr)            if (GameObject* go = itr->second)                go->SetFaction(team == ALLIANCE ? FACTION_ALLIANCE_GENERIC : FACTION_HORDE_GENERIC);    }}
开发者ID:Refuge89,项目名称:TrinityCore,代码行数:15,


示例3: DelObject

void BattleGroundNA::Update(time_t diff){    BattleGround::Update(diff);    if (GetStatus() == STATUS_IN_PROGRESS)    {        m_TimeElapsedSinceBeggining += diff;        if (m_TimeElapsedSinceBeggining >= BG_NA_DOOR_DESPAWN_TIMER && !m_doorDespawned)        {            m_doorDespawned = true;            for (uint32 i = BG_NA_OBJECT_DOOR_1; i <= BG_NA_OBJECT_DOOR_2; i++)                DelObject(i);        }    }}
开发者ID:Blumfield,项目名称:TBCPvP,代码行数:16,


示例4: GetClosestGraveYard

void BattlegroundIC::_NodeDeOccupied(uint8 node){    if(!m_BgCreatures[node] || !GetBGCreature(node))        return;    std::vector<uint64> ghost_list = m_ReviveQueue[m_BgCreatures[node]];    if (!ghost_list.empty())    {        WorldSafeLocsEntry const *ClosestGrave = NULL;        for (std::vector<uint64>::const_iterator itr = ghost_list.begin(); itr != ghost_list.end(); ++itr)        {            Player* plr = sObjectMgr.GetPlayer(*itr);            if (!plr)                continue;            if (!ClosestGrave)                              // cache                ClosestGrave = GetClosestGraveYard(plr);            if (ClosestGrave)                plr->TeleportTo(GetMapId(), ClosestGrave->x, ClosestGrave->y, ClosestGrave->z, plr->GetOrientation());        }    }    //Remove spiritguide    DelCreature(node);    switch(node)    {    case BG_IC_NODE_WORKSHOP:        DeSpawnNpcType(IC_TYPE_DEMOLISSER_H);        DeSpawnNpcType(IC_TYPE_SIEGE_H);        DeSpawnNpcType(IC_TYPE_DEMOLISSER_A);        DeSpawnNpcType(IC_TYPE_SIEGE_A);        break ;    case BG_IC_NODE_DOCK:        //pop de catapulte et lanceur de glaive        DeSpawnNpcType(IC_TYPE_DOCKVEHICLE_A);        DeSpawnNpcType(IC_TYPE_DOCKVEHICLE_H);        break ;    case BG_IC_NODE_HANGAR:        for (int i = 0 ; i < MAX_BG_IC_OBJ; ++i)        {            if(BG_IC_OBJ[i].type == IC_TYPE_GUNSHIPTELEPORTER)                DelObject(BG_IC_OBJ[i].id);        }                break ;    }}
开发者ID:sensibob,项目名称:tempestcore,代码行数:47,


示例5: DelObject

void OPvPCapturePointEP_NPT::SummonGO(uint32 team) {	if (m_SummonedGOSide != team) {		m_SummonedGOSide = team;		DelObject(EP_NPT_BUFF);		AddObject(EP_NPT_BUFF, EP_NPT_LordaeronShrine.entry,				EP_NPT_LordaeronShrine.map, EP_NPT_LordaeronShrine.x,				EP_NPT_LordaeronShrine.y, EP_NPT_LordaeronShrine.z,				EP_NPT_LordaeronShrine.o, EP_NPT_LordaeronShrine.rot0,				EP_NPT_LordaeronShrine.rot1, EP_NPT_LordaeronShrine.rot2,				EP_NPT_LordaeronShrine.rot3);		GameObject * go = HashMapHolder<GameObject>::Find(				m_Objects[EP_NPT_BUFF]);		if (go)			go->SetUInt32Value(GAMEOBJECT_FACTION,					(team == ALLIANCE ? 84 : 83));	}}
开发者ID:Bootz,项目名称:DeepshjirRepack,代码行数:17,


示例6: getGateIdFromDamagedOrDestroyEventId

void BattlegroundSA::DestroyGate(Player* player, GameObject* go){    uint32 i = getGateIdFromDamagedOrDestroyEventId(go->GetGOInfo()->building.destroyedEvent);    if (!GateStatus[i])        return;    if (GameObject* g = GetBGObject(i))    {        if (g->GetGOValue()->Building.Health == 0)        {            GateStatus[i] = BG_SA_GATE_DESTROYED;            uint32 uws = getWorldStateFromGateId(i);            if (uws)                UpdateWorldState(uws, GateStatus[i]);            bool rewardHonor = true;            gateDestroyed = true;            switch (i)            {                case BG_SA_GREEN_GATE:                    if (GateStatus[BG_SA_BLUE_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    break;                case BG_SA_BLUE_GATE:                    if (GateStatus[BG_SA_GREEN_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    break;                case BG_SA_RED_GATE:                    if (GateStatus[BG_SA_PURPLE_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    break;                case BG_SA_PURPLE_GATE:                    if (GateStatus[BG_SA_RED_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    break;                default:                    break;            }            if (i < 5)                DelObject(i + 14);            UpdatePlayerScore(player, SCORE_DESTROYED_WALL, 1);            if (rewardHonor)                UpdatePlayerScore(player, SCORE_BONUS_HONOR, GetBonusHonorFromKill(1));        }    }}
开发者ID:Ayik0,项目名称:DeathCore_5.4.8,代码行数:46,


示例7: switch

void BattleGroundSA::DestroyGate(uint32 i, Player* pl){    if (!GateStatus[i])        return;    if (GameObject* g = GetBGObject(i))    {        if (g->GetGOValue()->building.health == 0)        {            GateStatus[i] = BG_SA_GATE_DESTROYED;            uint32 uws = 0;            switch(i)            {            case 0:                uws = BG_SA_GREEN_GATEWS;                break;            case 1:                uws = BG_SA_YELLOW_GATEWS;                break;            case 2:                uws = BG_SA_BLUE_GATEWS;                break;            case 3:                uws = BG_SA_RED_GATEWS;                break;            case 4:                uws = BG_SA_PURPLE_GATEWS;                break;            case 5:                uws = BG_SA_ANCIENT_GATEWS;                break;            default:                ASSERT(false);                break;            }            if (i < 5)                DelObject(i+9);            UpdateWorldState(uws, GateStatus[i]);            UpdatePlayerScore(pl,SCORE_DESTROYED_WALL, 1);        }    }}
开发者ID:Rhyuk,项目名称:Dev,代码行数:43,


示例8: GetGateIDFromDestroyEventID

void BattlegroundSA::DestroyGate(Player* pl, GameObject* /*go*/, uint32 destroyedEvent){    uint32 i = GetGateIDFromDestroyEventID(destroyedEvent);    if (!GateStatus[i])        return;    if (GameObject* g = GetBGObject(i))    {        if (g->GetGOValue()->building.health == 0)        {            GateStatus[i] = BG_SA_GATE_DESTROYED;            uint32 uws = GetWorldStateFromGateID(i);            if (uws)                UpdateWorldState(uws, GateStatus[i]);            bool rewardHonor = true;            switch(i)            {                case BG_SA_GREEN_GATE:                    if (GateStatus[BG_SA_BLUE_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    break;                case BG_SA_BLUE_GATE:                    if (GateStatus[BG_SA_GREEN_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    break;                case BG_SA_RED_GATE:                    if (GateStatus[BG_SA_PURPLE_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    break;                case BG_SA_PURPLE_GATE:                    if (GateStatus[BG_SA_RED_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    break;            }            if (i < 5)                DelObject(i+9);            UpdatePlayerScore(pl,SCORE_DESTROYED_WALL, 1);            if (rewardHonor)                UpdatePlayerScore(pl,SCORE_BONUS_HONOR,(GetBonusHonorFromKill(1)));        }    }}
开发者ID:mmihail,项目名称:trinitycore10353,代码行数:43,


示例9: notifyDeleted

voidWeakHandleable::removeHandle(){	bool bDeleteSelf = false;	{		SyncHandle;		m_iNumHandles--;		if (m_iNumHandles == 0)		{			notifyDeleted();			if (m_iNumHandles == 0)				bDeleteSelf = true;		}	}	if (bDeleteSelf)		DelObject(this);}
开发者ID:tomazos,项目名称:Folderscope,代码行数:20,


示例10: OnLButtonDblclk

LRESULT OnLButtonDblclk(HWND hWnd,WPARAM wParam,LPARAM lParam){    int TempSel;    TCHAR *pText;    TempSel=FindObject(LOWORD(lParam),HIWORD(lParam));    if (TempSel == -1) {        return 0;    }    if (arObj[TempSel]->Type == DT_TEXT) {        pText=arObj[TempSel]->Text;        if (DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_TEXT),hWnd,                           TextDlgProc,(LPARAM)&pText) == IDOK) {            if (lstrlen(pText) == 0) {                DelObject(TempSel);            } else {                arObj[arNum-1]->Text=pText;                arObj[arNum-1]->Len=lstrlen(pText)+1;            }            InvalidateRect(hWndMain,NULL,TRUE);        }    }    return 0;}
开发者ID:MaybeS,项目名称:when_i_was_a_kid,代码行数:24,


示例11: if

void OPvPCapturePointEP_NPT::ChangeState() {	// if changing from controlling alliance to horde or vice versa	if (m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State) {		sWorld->SendZoneText(				EP_GraveYardZone,				sObjectMgr->GetArkCoreStringForDBCLocale(						LANG_OPVP_EP_LOOSE_NPT_A));		((OutdoorPvPEP*) m_PvP)->EP_Controls[EP_NPT] = 0;	} else if (m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State) {		sWorld->SendZoneText(				EP_GraveYardZone,				sObjectMgr->GetArkCoreStringForDBCLocale(						LANG_OPVP_EP_LOOSE_NPT_H));		((OutdoorPvPEP*) m_PvP)->EP_Controls[EP_NPT] = 0;	}	uint32 artkit = 21;	switch (m_State) {	case OBJECTIVESTATE_ALLIANCE:		m_TowerState = EP_TS_A;		artkit = 2;		SummonGO(ALLIANCE);		((OutdoorPvPEP*) m_PvP)->EP_Controls[EP_NPT] = ALLIANCE;		if (m_OldState != m_State)			sWorld->SendZoneText(					EP_GraveYardZone,					sObjectMgr->GetArkCoreStringForDBCLocale(							LANG_OPVP_EP_CAPTURE_NPT_A));		break;	case OBJECTIVESTATE_HORDE:		m_TowerState = EP_TS_H;		artkit = 1;		SummonGO(HORDE);		((OutdoorPvPEP*) m_PvP)->EP_Controls[EP_NPT] = HORDE;		if (m_OldState != m_State)			sWorld->SendZoneText(					EP_GraveYardZone,					sObjectMgr->GetArkCoreStringForDBCLocale(							LANG_OPVP_EP_CAPTURE_NPT_H));		break;	case OBJECTIVESTATE_NEUTRAL:		m_TowerState = EP_TS_N;		m_SummonedGOSide = 0;		DelObject(EP_NPT_BUFF);		break;	case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:		m_TowerState = EP_TS_N_A;		break;	case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:		m_TowerState = EP_TS_N_A;		m_SummonedGOSide = 0;		DelObject(EP_NPT_BUFF);		break;	case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:		m_TowerState = EP_TS_N_H;		break;	case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:		m_TowerState = EP_TS_N_H;		m_SummonedGOSide = 0;		DelObject(EP_NPT_BUFF);		break;	}	GameObject* flag = HashMapHolder<GameObject>::Find(m_capturePointGUID);	GameObject* flag2 = HashMapHolder<GameObject>::Find(			m_Objects[EP_NPT_FLAGS]);	if (flag) {		flag->SetGoArtKit(artkit);	}	if (flag2) {		flag2->SetGoArtKit(artkit);	}	UpdateTowerState();	// complete quest objective	if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)		SendObjectiveComplete(EP_NPT_CM, 0);}
开发者ID:Bootz,项目名称:DeepshjirRepack,代码行数:80,


示例12: SendTransportsRemove

bool BattlegroundSA::ResetObjs(){    /*for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)        if (Player* player = ObjectAccessor::FindPlayer(itr->first))            SendTransportsRemove(player);*/    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_PORTAL_DEFFENDER_RED; 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;    }    /*for (uint8 i = BG_SA_BOAT_ONE; i <= BG_SA_BOAT_TWO; i++)    {        uint32 boatid = 0;        switch (i)        {            case BG_SA_BOAT_ONE:                boatid = Attackers ? BG_SA_BOAT_ONE_H : BG_SA_BOAT_ONE_A;                break;            case BG_SA_BOAT_TWO:                boatid = Attackers ? BG_SA_BOAT_TWO_H : BG_SA_BOAT_TWO_A;                break;            default:                break;        }        if (!AddObject(i, boatid, BG_SA_ObjSpawnlocs[i][0],          BG_SA_ObjSpawnlocs[i][1],          BG_SA_ObjSpawnlocs[i][2]+(Attackers ? -3.750f: 0),          BG_SA_ObjSpawnlocs[i][3], 0, 0, 0, 0, RESPAWN_ONE_DAY))            return false;    }*/    for (uint8 i = BG_SA_SIGIL_1; i <= BG_SA_LEFT_FLAGPOLE; 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;    }    // 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);    //Cannons and demolishers - NPCs are spawned    //By capturing GYs.    for (uint8 i = 0; i < BG_SA_DEMOLISHER_5; 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_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;//.........这里部分代码省略.........
开发者ID:cooler-SAI,项目名称:PandaFire,代码行数:101,


示例13: switch

void BattlegroundSA::ProcessEvent(WorldObject* obj, uint32 eventId, WorldObject* invoker /*= NULL*/){    if (GameObject* go = obj->ToGameObject())    {        switch (go->GetGoType())        {            case GAMEOBJECT_TYPE_GOOBER:                if (invoker)                    if (eventId == BG_SA_EVENT_TITAN_RELIC_ACTIVATED)                        TitanRelicActivated(invoker->ToPlayer());                break;            case GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING:            {                if (GateInfo const* gate = GetGate(obj->GetEntry()))                {                    uint8 gateId = gate->GateId;                    // damaged                    if (eventId == go->GetGOInfo()->building.damagedEvent)                    {                        GateStatus[gateId] = BG_SA_GATE_DAMAGED;                        if (Creature* c = obj->FindNearestCreature(NPC_WORLD_TRIGGER, 500.0f))                            SendChatMessage(c, gate->DamagedText, invoker);                        PlaySoundToAll(Attackers == TEAM_ALLIANCE ? SOUND_WALL_ATTACKED_ALLIANCE : SOUND_WALL_ATTACKED_HORDE);                    }                    // destroyed                    else if (eventId == go->GetGOInfo()->building.destroyedEvent)                    {                        GateStatus[gate->GateId] = BG_SA_GATE_DESTROYED;                        _gateDestroyed = true;                        if (gateId < 5)                            DelObject(gateId + 14);                        if (Creature* c = obj->FindNearestCreature(NPC_WORLD_TRIGGER, 500.0f))                            SendChatMessage(c, gate->DestroyedText, invoker);                        PlaySoundToAll(Attackers == TEAM_ALLIANCE ? SOUND_WALL_DESTROYED_ALLIANCE : SOUND_WALL_DESTROYED_HORDE);                        bool rewardHonor = true;                        switch (gateId)                        {                            case BG_SA_GREEN_GATE:                                if (GateStatus[BG_SA_BLUE_GATE] == BG_SA_GATE_DESTROYED)                                    rewardHonor = false;                                break;                            case BG_SA_BLUE_GATE:                                if (GateStatus[BG_SA_GREEN_GATE] == BG_SA_GATE_DESTROYED)                                    rewardHonor = false;                                break;                            case BG_SA_RED_GATE:                                if (GateStatus[BG_SA_PURPLE_GATE] == BG_SA_GATE_DESTROYED)                                    rewardHonor = false;                                break;                            case BG_SA_PURPLE_GATE:                                if (GateStatus[BG_SA_RED_GATE] == BG_SA_GATE_DESTROYED)                                    rewardHonor = false;                                break;                            default:                                break;                        }                        if (invoker)                        {                            if (Unit* unit = invoker->ToUnit())                            {                                if (Player* player = unit->GetCharmerOrOwnerPlayerOrPlayerItself())                                {                                    UpdatePlayerScore(player, SCORE_DESTROYED_WALL, 1);                                    if (rewardHonor)                                        UpdatePlayerScore(player, SCORE_BONUS_HONOR, GetBonusHonorFromKill(1));                                }                            }                        }                    }                    else                        break;                    UpdateWorldState(gate->WorldState, GateStatus[gateId]);                }                break;            }            default:                break;        }    }}
开发者ID:redlaine,项目名称:TrinityCore,代码行数:89,


示例14: GetNextBanner

void BattlegroundIC::EventPlayerClickedOnFlag(Player* player, GameObject* target_obj){    if (GetStatus() != STATUS_IN_PROGRESS)        return;    // All the node points are iterated to find the clicked one    for (uint8 i = 0; i < MAX_NODE_TYPES; ++i)    {        if (nodePoint[i].gameobject_entry == target_obj->GetEntry())        {            // THIS SHOULD NEEVEER HAPPEN            if (nodePoint[i].faction == player->GetTeamId())                return;            uint32 nextBanner = GetNextBanner(&nodePoint[i], player->GetTeamId(), false);            // we set the new settings of the nodePoint            nodePoint[i].faction = player->GetTeamId();            nodePoint[i].last_entry = nodePoint[i].gameobject_entry;            nodePoint[i].gameobject_entry = nextBanner;            // this is just needed if the next banner is grey            if (nodePoint[i].banners[BANNER_A_CONTESTED] == nextBanner ||                nodePoint[i].banners[BANNER_H_CONTESTED] == nextBanner)            {                nodePoint[i].timer = BANNER_STATE_CHANGE_TIME; // 1 minute for last change (real faction banner)                nodePoint[i].needChange = true;                RealocatePlayers(nodePoint[i].nodeType);                // if we are here means that the point has been lost, or it is the first capture                if (nodePoint[i].nodeType != NODE_TYPE_REFINERY && nodePoint[i].nodeType != NODE_TYPE_QUARRY)                    if (BgCreatures[BG_IC_NPC_SPIRIT_GUIDE_1+(nodePoint[i].nodeType)-2])                        DelCreature(BG_IC_NPC_SPIRIT_GUIDE_1+(nodePoint[i].nodeType)-2);                UpdatePlayerScore(player, SCORE_BASES_ASSAULTED, 1);                SendMessage2ToAll(LANG_BG_IC_TEAM_ASSAULTED_NODE_1, CHAT_MSG_BG_SYSTEM_NEUTRAL, player, nodePoint[i].string);                SendMessage2ToAll(LANG_BG_IC_TEAM_ASSAULTED_NODE_2, CHAT_MSG_BG_SYSTEM_NEUTRAL, player, nodePoint[i].string, (player->GetTeamId() == TEAM_ALLIANCE ? LANG_BG_IC_ALLIANCE : LANG_BG_IC_HORDE));                HandleContestedNodes(&nodePoint[i]);            } else if (nextBanner == nodePoint[i].banners[BANNER_A_CONTROLLED] ||                       nextBanner == nodePoint[i].banners[BANNER_H_CONTROLLED])                       // if we are going to spawn the definitve faction banner, we dont need the timer anymore            {                nodePoint[i].timer = BANNER_STATE_CHANGE_TIME;                nodePoint[i].needChange = false;                SendMessage2ToAll(LANG_BG_IC_TEAM_DEFENDED_NODE, CHAT_MSG_BG_SYSTEM_NEUTRAL, player, nodePoint[i].string);                HandleCapturedNodes(&nodePoint[i], true);                UpdatePlayerScore(player, SCORE_BASES_DEFENDED, 1);            }            GameObject* banner = GetBGObject(nodePoint[i].gameobject_type);            if (!banner) // this should never happen                return;            float cords[4] = {banner->GetPositionX(), banner->GetPositionY(), banner->GetPositionZ(), banner->GetOrientation() };            DelObject(nodePoint[i].gameobject_type);            AddObject(nodePoint[i].gameobject_type, nodePoint[i].gameobject_entry, cords[0], cords[1], cords[2], cords[3], 0, 0, 0, 0, RESPAWN_ONE_DAY);            GetBGObject(nodePoint[i].gameobject_type)->SetUInt32Value(GAMEOBJECT_FACTION, nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_Factions[1] : BG_IC_Factions[0]);            if (nodePoint[i].nodeType == NODE_TYPE_WORKSHOP)            {                DelObject(BG_IC_GO_SEAFORIUM_BOMBS_1);                DelObject(BG_IC_GO_SEAFORIUM_BOMBS_2);            }            UpdateNodeWorldState(&nodePoint[i]);            // we dont need iterating if we are here            // If the needChange bool was set true, we will handle the rest in the Update Map function.            return;        }    }}
开发者ID:8Infinity8,项目名称:InfinityCore,代码行数:77,


示例15: if

//.........这里部分代码省略.........            del = NA_DESTROYED_ROOST_S;            add = NA_ROOST_S;            add2 = NA_BOMB_WAGON_S;            if (m_ControllingFaction == HORDE)                m_WyvernStateSouth = WYVERN_ALLIANCE;            else                m_WyvernStateSouth = WYVERN_HORDE;            UpdateWyvernRoostWorldState(NA_ROOST_S);            break;        case NA_DESTROYED_ROOST_N:            del = NA_DESTROYED_ROOST_N;            add = NA_ROOST_N;            add2 = NA_BOMB_WAGON_N;            if (m_ControllingFaction == HORDE)                m_WyvernStateNorth = WYVERN_ALLIANCE;            else                m_WyvernStateNorth = WYVERN_HORDE;            UpdateWyvernRoostWorldState(NA_ROOST_N);            break;        case NA_DESTROYED_ROOST_W:            del = NA_DESTROYED_ROOST_W;            add = NA_ROOST_W;            add2 = NA_BOMB_WAGON_W;            if (m_ControllingFaction == HORDE)                m_WyvernStateWest = WYVERN_ALLIANCE;            else                m_WyvernStateWest = WYVERN_HORDE;            UpdateWyvernRoostWorldState(NA_ROOST_W);            break;        case NA_DESTROYED_ROOST_E:            del = NA_DESTROYED_ROOST_E;            add = NA_ROOST_E;            add2 = NA_BOMB_WAGON_E;            if (m_ControllingFaction == HORDE)                m_WyvernStateEast = WYVERN_ALLIANCE;            else                m_WyvernStateEast = WYVERN_HORDE;            UpdateWyvernRoostWorldState(NA_ROOST_E);            break;        case NA_BOMB_WAGON_S:            del = NA_BOMB_WAGON_S;            del2 = NA_ROOST_S;            add = NA_DESTROYED_ROOST_S;            if (m_ControllingFaction == HORDE)                m_WyvernStateSouth = WYVERN_NEU_ALLIANCE;            else                m_WyvernStateSouth = WYVERN_NEU_HORDE;            UpdateWyvernRoostWorldState(NA_ROOST_S);            break;        case NA_BOMB_WAGON_N:            del = NA_BOMB_WAGON_N;            del2 = NA_ROOST_N;            add = NA_DESTROYED_ROOST_N;            if (m_ControllingFaction == HORDE)                m_WyvernStateNorth = WYVERN_NEU_ALLIANCE;            else                m_WyvernStateNorth = WYVERN_NEU_HORDE;            UpdateWyvernRoostWorldState(NA_ROOST_N);            break;        case NA_BOMB_WAGON_W:            del = NA_BOMB_WAGON_W;            del2 = NA_ROOST_W;            add = NA_DESTROYED_ROOST_W;            if (m_ControllingFaction == HORDE)                m_WyvernStateWest = WYVERN_NEU_ALLIANCE;            else                m_WyvernStateWest = WYVERN_NEU_HORDE;            UpdateWyvernRoostWorldState(NA_ROOST_W);            break;        case NA_BOMB_WAGON_E:            del = NA_BOMB_WAGON_E;            del2 = NA_ROOST_E;            add = NA_DESTROYED_ROOST_E;            if (m_ControllingFaction == HORDE)                m_WyvernStateEast = WYVERN_NEU_ALLIANCE;            else                m_WyvernStateEast = WYVERN_NEU_HORDE;            UpdateWyvernRoostWorldState(NA_ROOST_E);            break;        default:            return -1;            break;        }        if (del>-1)            DelObject(del);        if (del2>-1)            DelObject(del2);        if (add>-1)            AddObject(add, gos[add].entry, gos[add].map, gos[add].x, gos[add].y, gos[add].z, gos[add].o, gos[add].rot0, gos[add].rot1, gos[add].rot2, gos[add].rot3);        if (add2>-1)            AddObject(add2, gos[add2].entry, gos[add2].map, gos[add2].x, gos[add2].y, gos[add2].z, gos[add2].o, gos[add2].rot0, gos[add2].rot1, gos[add2].rot2, gos[add2].rot3);        return retval;    }    return -1;}
开发者ID:AvariusProject,项目名称:AvariusCore,代码行数:101,


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


示例17: switch

void OPvPCapturePointEP_NPT::ChangeState(){    // if changing from controlling alliance to horde or vice versa    if (m_OldState == OBJECTIVESTATE_ALLIANCE || m_OldState == OBJECTIVESTATE_HORDE)        ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, 0);    uint32 artkit = 21;    switch (m_State)    {        case OBJECTIVESTATE_ALLIANCE:            m_TowerState = EP_TS_A;            artkit = 2;            SummonGO(ALLIANCE);            ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, ALLIANCE);            m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_NORTHPASS_TOWER_TAKEN_ALLIANCE);            break;        case OBJECTIVESTATE_HORDE:            m_TowerState = EP_TS_H;            artkit = 1;            SummonGO(HORDE);            ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, HORDE);            m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_NORTHPASS_TOWER_TAKEN_HORDE);            break;        case OBJECTIVESTATE_NEUTRAL:            m_TowerState = EP_TS_N;            m_SummonedGOSide = 0;            DelObject(EP_NPT_BUFF);            break;        case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:            m_TowerState = EP_TS_N_A;            break;        case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:            m_TowerState = EP_TS_N_A;            m_SummonedGOSide = 0;            DelObject(EP_NPT_BUFF);            break;        case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:            m_TowerState = EP_TS_N_H;            break;        case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:            m_TowerState = EP_TS_N_H;            m_SummonedGOSide = 0;            DelObject(EP_NPT_BUFF);            break;    }    GameObject* flag = HashMapHolder<GameObject>::Find(m_capturePointGUID);    GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_NPT_FLAGS]);    if (flag)    {        flag->SetGoArtKit(artkit);    }    if (flag2)    {        flag2->SetGoArtKit(artkit);    }    UpdateTowerState();    // complete quest objective    if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)        SendObjectiveComplete(EP_NPT_CM, ObjectGuid::Empty);}
开发者ID:madisodr,项目名称:legacy-core,代码行数:64,


示例18: GetBGObject

//.........这里部分代码省略.........					nodePoint[i].timer -= diff;            }        }        if (nodePoint[i].nodeType == NODE_TYPE_WORKSHOP)        {            if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||                nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)            {                if (siegeEngineWorkshopTimer <= diff)                {                    uint8 siegeType = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_SIEGE_ENGINE_A : BG_IC_NPC_SIEGE_ENGINE_H);                    if (Creature* siege = GetBGCreature(siegeType)) // this always should be true                        if (!siege->IsAlive())                        {							// Check if creature respawn time is properly saved							RespawnMap::iterator itr = respawnMap.find(siege->GetGUIDLow());							if (itr == respawnMap.end() || time(NULL) < itr->second)								continue;							siege->Relocate(BG_IC_WorkshopVehicles[4].GetPositionX(), BG_IC_WorkshopVehicles[4].GetPositionY(), BG_IC_WorkshopVehicles[4].GetPositionZ(), BG_IC_WorkshopVehicles[4].GetOrientation());                            siege->Respawn(true);							respawnMap.erase(itr);						}					// we need to confirm this, i am not sure if this every 3 minutes					for (uint8 u = 0; u < MAX_DEMOLISHERS_SPAWNS_PER_FACTION; ++u)					{												uint8 type = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_A : BG_IC_NPC_DEMOLISHER_1_H)+u;						if (Creature* demolisher = GetBGCreature(type))                            if (!demolisher->IsAlive())							{								// Check if creature respawn time is properly saved								RespawnMap::iterator itr = respawnMap.find(demolisher->GetGUIDLow());								if (itr == respawnMap.end() || time(NULL) < itr->second)									continue;								demolisher->Relocate(BG_IC_WorkshopVehicles[u].GetPositionX(), BG_IC_WorkshopVehicles[u].GetPositionY(), BG_IC_WorkshopVehicles[u].GetPositionZ(), BG_IC_WorkshopVehicles[u].GetOrientation());								demolisher->Respawn(true);								respawnMap.erase(itr);							}                    }                    siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME;                }				else					siegeEngineWorkshopTimer -= diff;            }        }        // the point is waiting for a change on its banner        if (nodePoint[i].needChange)        {            if (nodePoint[i].timer <= diff)            {                uint32 nextBanner = GetNextBanner(&nodePoint[i], nodePoint[i].faction, true);                nodePoint[i].last_entry = nodePoint[i].gameobject_entry;                nodePoint[i].gameobject_entry = nextBanner;                // nodePoint[i].faction = the faction should be the same one...                GameObject* banner = GetBGObject(nodePoint[i].gameobject_type);                if (!banner) // this should never happen                    return;                float cords[4] = {banner->GetPositionX(), banner->GetPositionY(), banner->GetPositionZ(), banner->GetOrientation() };                DelObject(nodePoint[i].gameobject_type);                AddObject(nodePoint[i].gameobject_type, nodePoint[i].gameobject_entry, cords[0], cords[1], cords[2], cords[3], 0, 0, 0, 0, RESPAWN_ONE_DAY);                GetBGObject(nodePoint[i].gameobject_type)->SetUInt32Value(GAMEOBJECT_FACTION, nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_Factions[1] : BG_IC_Factions[0]);                UpdateNodeWorldState(&nodePoint[i]);                HandleCapturedNodes(&nodePoint[i], false);                SendMessage2ToAll(LANG_BG_IC_TEAM_HAS_TAKEN_NODE, CHAT_MSG_BG_SYSTEM_NEUTRAL, NULL, (nodePoint[i].faction == TEAM_ALLIANCE ? LANG_BG_IC_ALLIANCE : LANG_BG_IC_HORDE), nodePoint[i].string);                nodePoint[i].needChange = false;                nodePoint[i].timer = BANNER_STATE_CHANGE_TIME;            } else nodePoint[i].timer -= diff;        }    }    if (resourceTimer <= diff)    {        for (uint8 i = 0; i < NODE_TYPE_DOCKS; ++i)        {            if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||                nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)            {                factionReinforcements[nodePoint[i].faction] += 1;                RewardHonorToTeam(RESOURCE_HONOR_AMOUNT, nodePoint[i].faction);                UpdateWorldState((nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_ALLIANCE_RENFORT : BG_IC_HORDE_RENFORT), factionReinforcements[nodePoint[i].faction]);            }        }        resourceTimer = IC_RESOURCE_TIME;    } else resourceTimer -= diff;}
开发者ID:AlexHjelm,项目名称:sunwell,代码行数:101,


示例19: switch

void OPvPCapturePointEP_NPT::ChangeState(){    // if changing from controlling alliance to horde or vice versa    if (m_OldState == OBJECTIVESTATE_ALLIANCE || m_OldState == OBJECTIVESTATE_HORDE)        ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, 0);    uint32 artkit = 21;    switch (m_State)    {        case OBJECTIVESTATE_ALLIANCE:            m_TowerState = EP_TS_A;            artkit = 2;            SummonGO(ALLIANCE);            ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, ALLIANCE);            m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_NORTHPASS_TOWER_TAKEN_ALLIANCE);            break;        case OBJECTIVESTATE_HORDE:            m_TowerState = EP_TS_H;            artkit = 1;            SummonGO(HORDE);            ((OutdoorPvPEP*)m_PvP)->SetControlledState(EP_NPT, HORDE);            m_PvP->SendDefenseMessage(EP_GraveYardZone, TEXT_NORTHPASS_TOWER_TAKEN_HORDE);            break;        case OBJECTIVESTATE_NEUTRAL:            m_TowerState = EP_TS_N;            m_SummonedGOSide = 0;            DelObject(EP_NPT_BUFF);            break;        case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:            m_TowerState = EP_TS_N_A;            break;        case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:            m_TowerState = EP_TS_N_A;            m_SummonedGOSide = 0;            DelObject(EP_NPT_BUFF);            break;        case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:            m_TowerState = EP_TS_N_H;            break;        case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:            m_TowerState = EP_TS_N_H;            m_SummonedGOSide = 0;            DelObject(EP_NPT_BUFF);            break;    }    Map* map = sMapMgr->FindMap(0, 0);    auto bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_capturePointSpawnId);    for (auto itr = bounds.first; itr != bounds.second; ++itr)        itr->second->SetGoArtKit(artkit);    bounds = map->GetGameObjectBySpawnIdStore().equal_range(m_Objects[EP_NPT_FLAGS]);    for (auto itr = bounds.first; itr != bounds.second; ++itr)        itr->second->SetGoArtKit(artkit);    UpdateTowerState();    // complete quest objective    if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)        SendObjectiveComplete(EP_NPT_CM, ObjectGuid::Empty);}
开发者ID:AvariusProject,项目名称:AvariusCore,代码行数:62,


示例20: GetBGObject

void BattleGroundIC::Update(uint32 diff){    BattleGround::Update(diff);    if (GetStatus() != STATUS_IN_PROGRESS)        return;    if (!doorsClosed)    {        if (closeFortressDoorsTimer <= diff)        {            // correct visual of closed gates is at "damaged" flag            for (int i = BG_IC_GO_T_ALLIANCE_GATE_1; i <= BG_IC_GO_T_HORDE_GATE_3; ++i)                GetBGObject(i)->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);            for (int i = BG_IC_GO_T_ALLIANCE_WEST; i <= BG_IC_GO_T_HORDE_FRONT; ++i)                DelObject(i);            doorsClosed = true;        } else closeFortressDoorsTimer -= diff;    }    for (int node = 0; node < BG_IC_NODES_MAX; ++node)    {        // 3 sec delay to spawn new banner instead previous despawned one        if (m_BannerTimers[node].timer)        {            if (m_BannerTimers[node].timer > diff)                m_BannerTimers[node].timer -= diff;            else            {                m_BannerTimers[node].timer = 0;                _CreateBanner(node, m_BannerTimers[node].type, m_BannerTimers[node].teamIndex, false);            }        }        // 1-minute to occupy a node from contested state        if (m_NodeTimers[node])        {            if (m_NodeTimers[node] > diff)                m_NodeTimers[node] -= diff;            else            {                m_NodeTimers[node] = 0;                // Change from contested to occupied !                uint8 teamIndex = m_Nodes[node]-1;                m_prevNodes[node] = m_Nodes[node];                m_Nodes[node] += 2;                // create new occupied banner                _CreateBanner(node, BG_IC_NODE_TYPE_OCCUPIED, teamIndex, true);                _SendNodeUpdate(node);                // Message to chatlog                if (teamIndex == TEAM_INDEX_ALLIANCE)                {                    SendMessage2ToAll(LANG_BG_IC_NODE_TAKEN,CHAT_MSG_BG_SYSTEM_ALLIANCE,NULL,LANG_BG_ALLY,_GetNodeNameId(node));                    PlaySoundToAll(BG_IC_SOUND_NODE_CAPTURED_ALLIANCE);                }                else                {                    SendMessage2ToAll(LANG_BG_IC_NODE_TAKEN,CHAT_MSG_BG_SYSTEM_HORDE,NULL,LANG_BG_HORDE,_GetNodeNameId(node));                    PlaySoundToAll(BG_IC_SOUND_NODE_CAPTURED_HORDE);                }                // gunship starting                if (node == BG_IC_NODE_HANGAR)                    (teamIndex == TEAM_INDEX_ALLIANCE ? gunshipAlliance : gunshipHorde)->BuildStartMovePacket(GetBgMap());            }        }    }    // add a point every 45 secs to quarry/refinery owner    for (uint8 node = BG_IC_NODE_QUARRY; node <= BG_IC_NODE_REFINERY; node++)    {        if (m_Nodes[node] >= BG_IC_NODE_TYPE_OCCUPIED)        {            if (m_resource_Timer[node] <= diff)            {                UpdateScore(TeamIndex(m_Nodes[node] - BG_IC_NODE_TYPE_OCCUPIED) , 1);                RewardHonorToTeam(GetBonusHonorFromKill(1), (m_Nodes[node] - BG_IC_NODE_TYPE_OCCUPIED == 0 ? ALLIANCE : HORDE));                m_resource_Timer[node] = BG_IC_RESOURCE_TICK_TIMER;            }            else                m_resource_Timer[node] -= diff;        }    }    HandleBuffs();}
开发者ID:BACKUPLIB,项目名称:Infinity_MaNGOS,代码行数:87,


示例21: SendTransportsRemove

bool BattlegroundSA::ResetObjs(){    for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)        if (Player* player = ObjectAccessor::FindPlayer(itr->first))            SendTransportsRemove(player);    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;    if (!AddCreature(BG_SA_NpcEntries[BG_SA_NPC_KANRETHAD], BG_SA_NPC_KANRETHAD, BG_SA_NpcSpawnlocs[BG_SA_NPC_KANRETHAD]))    {        TC_LOG_ERROR("bg.battleground", "SOTA: couldn't spawn Kanrethad, aborted. Entry: %u", BG_SA_NpcEntries[BG_SA_NPC_KANRETHAD]);        return false;    }    for (uint8 i = 0; i <= BG_SA_PORTAL_DEFFENDER_RED; i++)    {        if (!AddObject(i, BG_SA_ObjEntries[i], BG_SA_ObjSpawnlocs[i], 0, 0, 0, 0, RESPAWN_ONE_DAY))        {            TC_LOG_ERROR("bg.battleground", "SOTA: couldn't spawn BG_SA_PORTAL_DEFFENDER_RED, Entry: %u", BG_SA_ObjEntries[i]);            continue;        }    }    for (uint8 i = BG_SA_BOAT_ONE; i <= BG_SA_BOAT_TWO; i++)    {        uint32 boatid = 0;        switch (i)        {            case BG_SA_BOAT_ONE:                boatid = Attackers ? BG_SA_BOAT_ONE_H : BG_SA_BOAT_ONE_A;                break;            case BG_SA_BOAT_TWO:                boatid = Attackers ? BG_SA_BOAT_TWO_H : BG_SA_BOAT_TWO_A;                break;            default:                break;        }        if (!AddObject(i, boatid, BG_SA_ObjSpawnlocs[i].GetPositionX(),          BG_SA_ObjSpawnlocs[i].GetPositionY(),          BG_SA_ObjSpawnlocs[i].GetPositionZ() + (Attackers ? -3.750f: 0),          BG_SA_ObjSpawnlocs[i].GetOrientation(), 0, 0, 0, 0, RESPAWN_ONE_DAY))        {            TC_LOG_ERROR("bg.battleground", "SOTA: couldn't spawn one of the BG_SA_BOAT, Entry: %u", boatid);            continue;        }    }    for (uint8 i = BG_SA_SIGIL_1; i <= BG_SA_LEFT_FLAGPOLE; i++)    {        if (!AddObject(i, BG_SA_ObjEntries[i], BG_SA_ObjSpawnlocs[i], 0, 0, 0, 0, RESPAWN_ONE_DAY))        {            TC_LOG_ERROR("bg.battleground", "SOTA: couldn't spawn Sigil, Entry: %u", BG_SA_ObjEntries[i]);            continue;        }    }    // 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);    //Cannons and demolishers - NPCs are spawned    //By capturing GYs.    for (uint8 i = 0; i < BG_SA_DEMOLISHER_5; i++)    {        if (!AddCreature(BG_SA_NpcEntries[i], i, BG_SA_NpcSpawnlocs[i], Attackers == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE, 600))        {            TC_LOG_ERROR("bg.battleground", "SOTA: couldn't spawn Cannon or demolisher, Entry: %u, Attackers: %s", BG_SA_NpcEntries[i], Attackers == TEAM_ALLIANCE ? "Horde(1)" : "Alliance(0)");            continue;        }    }    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;//.........这里部分代码省略.........
开发者ID:redlaine,项目名称:TrinityCore,代码行数:101,


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


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


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


示例25: if

bool OutdoorPvPObjectiveEP_NPT::Update(uint32 diff){    if (OutdoorPvPObjective::Update(diff))    {        if (m_OldState != m_State || fabs(m_ShiftPhase) == m_ShiftMaxPhase)  // state won't change, only phase when maxed out!        {            // if changing from controlling alliance to horde or vice versa            if (m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )            {                sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetNeoStringForDBCLocale(LANG_OPVP_EP_LOOSE_NPT_A));                ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = 0;            }            else if (m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )            {                sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetNeoStringForDBCLocale(LANG_OPVP_EP_LOOSE_NPT_H));                ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = 0;            }            uint32 artkit = 21;            switch(m_State)            {            case OBJECTIVESTATE_ALLIANCE:                if (m_ShiftPhase == m_ShiftMaxPhase)                    m_TowerState = EP_TS_A;                else                    m_TowerState = EP_TS_A_P;                artkit = 2;                SummonGO(ALLIANCE);                ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = ALLIANCE;                if (m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetNeoStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_A));                break;            case OBJECTIVESTATE_HORDE:                if (m_ShiftPhase == -m_ShiftMaxPhase)                    m_TowerState = EP_TS_H;                else                    m_TowerState = EP_TS_H_P;                artkit = 1;                SummonGO(HORDE);                ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = HORDE;                if (m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetNeoStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_H));                break;            case OBJECTIVESTATE_NEUTRAL:                m_TowerState = EP_TS_N;                m_SummonedGOSide = 0;                DelObject(EP_NPT_BUFF);                break;            case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:            case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:                m_TowerState = EP_TS_N_A;                break;            case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:            case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:                m_TowerState = EP_TS_N_H;                break;            }            GameObject* flag = HashMapHolder<GameObject>::Find(m_CapturePoint);            GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_NPT_FLAGS]);            if (flag)            {                flag->SetGoArtKit(artkit);                flag->SendUpdateObjectToAllExcept(NULL);            }            if (flag2)            {                flag2->SetGoArtKit(artkit);                flag2->SendUpdateObjectToAllExcept(NULL);            }            UpdateTowerState();            // complete quest objective            if (m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)                SendObjectiveComplete(EP_NPT_CM, 0);        }        if (m_ShiftPhase != m_OldPhase)        {            // send this too, sometimes the slider disappears, dunno why :(            SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);            // send these updates to only the ones in this objective            uint32 phase = (uint32)ceil((m_ShiftPhase + m_ShiftMaxPhase) / (2 * m_ShiftMaxPhase ) * 100.0f);            SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);            // send this too, sometimes it resets :S            SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_NeutralValue);        }        return m_OldState != m_State;    }    return false;}
开发者ID:Zekom,项目名称:NeoCore,代码行数:91,


示例26: DelObject

void OPvPCapturePointEP::UnsummonShrine(){    DelObject(EP_NPT_SHRINE);    DelObject(EP_NPT_SHRINE_AURA);    EP_TOWER_EVENT_TEAM[EP_TOWER_NORTHPASS] = 0;}
开发者ID:japtenks,项目名称:blizzlikecore,代码行数:6,


示例27: GetBGObject

//.........这里部分代码省略.........                    for (uint8 u = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_1_A : BG_IC_NPC_GLAIVE_THROWER_1_H); u < (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_GLAIVE_THROWER_2_A : BG_IC_NPC_GLAIVE_THROWER_2_H); ++u)                    {                        if (Creature* glaiveThrower = GetBGCreature(u))                        {                            if (!glaiveThrower->isAlive())                                glaiveThrower->Respawn(true);                        }                    }                    docksTimer = DOCKS_UPDATE_TIME;                } else docksTimer -= diff;            }        }        if (nodePoint[i].nodeType == NODE_TYPE_WORKSHOP)        {            if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||                nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)            {                if (siegeEngineWorkshopTimer <= diff)                {                    uint8 siegeType = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_SIEGE_ENGINE_A : BG_IC_NPC_SIEGE_ENGINE_H);                    if (Creature* siege = GetBGCreature(siegeType)) // this always should be true                    {                        if (siege->isAlive())                        {                            if (siege->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_UNK_14|UNIT_FLAG_IMMUNE_TO_PC))                                // following sniffs the vehicle always has UNIT_FLAG_UNK_14                                siege->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE|UNIT_FLAG_IMMUNE_TO_PC);                            else                                siege->SetHealth(siege->GetMaxHealth());                        }                        else                            siege->Respawn(true);                    }                    // we need to confirm if it is every 3 minutes                    for (uint8 u = (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_1_A : BG_IC_NPC_DEMOLISHER_1_H); u < (nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_NPC_DEMOLISHER_4_A : BG_IC_NPC_DEMOLISHER_4_H); ++u)                    {                        if (Creature* demolisher = GetBGCreature(u))                        {                            if (!demolisher->isAlive())                                demolisher->Respawn(true);                        }                    }                    siegeEngineWorkshopTimer = WORKSHOP_UPDATE_TIME;                } else siegeEngineWorkshopTimer -= diff;            }        }        // the point is waiting for a change on its banner        if (nodePoint[i].needChange)        {            if (nodePoint[i].timer <= diff)            {                uint32 nextBanner = GetNextBanner(&nodePoint[i], nodePoint[i].faction, true);                nodePoint[i].last_entry = nodePoint[i].gameobject_entry;                nodePoint[i].gameobject_entry = nextBanner;                // nodePoint[i].faction = the faction should be the same one...                GameObject* banner = GetBGObject(nodePoint[i].gameobject_type);                if (!banner) // this should never happen                    return;                float cords[4] = {banner->GetPositionX(), banner->GetPositionY(), banner->GetPositionZ(), banner->GetOrientation() };                DelObject(nodePoint[i].gameobject_type);                AddObject(nodePoint[i].gameobject_type, nodePoint[i].gameobject_entry, cords[0], cords[1], cords[2], cords[3], 0, 0, 0, 0, RESPAWN_ONE_DAY);                GetBGObject(nodePoint[i].gameobject_type)->SetUInt32Value(GAMEOBJECT_FACTION, nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_Factions[1] : BG_IC_Factions[0]);                UpdateNodeWorldState(&nodePoint[i]);                HandleCapturedNodes(&nodePoint[i], false);                SendMessage2ToAll(LANG_BG_IC_TEAM_HAS_TAKEN_NODE, CHAT_MSG_BG_SYSTEM_NEUTRAL, NULL, (nodePoint[i].faction == TEAM_ALLIANCE ? LANG_BG_IC_ALLIANCE : LANG_BG_IC_HORDE), nodePoint[i].string);                nodePoint[i].needChange = false;                nodePoint[i].timer = BANNER_STATE_CHANGE_TIME;            } else nodePoint[i].timer -= diff;        }    }    if (resourceTimer <= diff)    {        for (uint8 i = 0; i < NODE_TYPE_DOCKS; ++i)        {            if (nodePoint[i].nodeState == NODE_STATE_CONTROLLED_A ||                nodePoint[i].nodeState == NODE_STATE_CONTROLLED_H)            {                factionReinforcements[nodePoint[i].faction] += 1;                RewardHonorToTeam(RESOURCE_HONOR_AMOUNT, nodePoint[i].faction == TEAM_ALLIANCE ? ALLIANCE : HORDE);                UpdateWorldState((nodePoint[i].faction == TEAM_ALLIANCE ? BG_IC_ALLIANCE_RENFORT : BG_IC_HORDE_RENFORT), factionReinforcements[nodePoint[i].faction]);            }        }        resourceTimer = IC_RESOURCE_TIME;    } else resourceTimer -= diff;}
开发者ID:8Infinity8,项目名称:InfinityCore,代码行数:101,


示例28: getGateIdFromDamagedOrDestroyEventId

void BattlegroundSA::DestroyGate(Player* player, GameObject* go){    uint32 i = getGateIdFromDamagedOrDestroyEventId(go->GetGOInfo()->building.destroyedEvent);    if (!GateStatus[i])        return;    if (GameObject* g = GetBGObject(i))    {        if (g->GetGOValue()->Building.Health == 0)        {            GateStatus[i] = BG_SA_GATE_DESTROYED;            uint32 uws = getWorldStateFromGateId(i);            if (uws)                UpdateWorldState(uws, GateStatus[i]);            bool rewardHonor = true;            gateDestroyed = true;            switch (i)            {                case BG_SA_GREEN_GATE:                    if (GateStatus[BG_SA_BLUE_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    for (uint8 bombIndex = 47; bombIndex < 59; bombIndex++)                    {                        if (GetBGObject(bombIndex))                            GetBGObject(bombIndex)->RemoveFlag(GAMEOBJECT_FIELD_FLAGS, GO_FLAG_NOT_SELECTABLE);                    }                    break;                case BG_SA_BLUE_GATE:                    if (GateStatus[BG_SA_GREEN_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    for (uint8 bombIndex = 59; bombIndex < 68; bombIndex++)                    {                        if (GetBGObject(bombIndex))                            GetBGObject(bombIndex)->RemoveFlag(GAMEOBJECT_FIELD_FLAGS, GO_FLAG_NOT_SELECTABLE);                    }                    break;                case BG_SA_RED_GATE:                    if (GateStatus[BG_SA_PURPLE_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    for (uint8 bombIndex = 68; bombIndex < 77; bombIndex++)                    {                        if (GetBGObject(bombIndex))                            GetBGObject(bombIndex)->RemoveFlag(GAMEOBJECT_FIELD_FLAGS, GO_FLAG_NOT_SELECTABLE);                    }                    break;                case BG_SA_PURPLE_GATE:                    if (GateStatus[BG_SA_RED_GATE] == BG_SA_GATE_DESTROYED)                        rewardHonor = false;                    for (uint8 bombIndex = 68; bombIndex < 77; bombIndex++)                    {                        if (GetBGObject(bombIndex))                            GetBGObject(bombIndex)->RemoveFlag(GAMEOBJECT_FIELD_FLAGS, GO_FLAG_NOT_SELECTABLE);                    }                    break;                case BG_SA_YELLOW_GATE:                    for (uint8 bombIndex = 77; bombIndex < 93; bombIndex++)                    {                        if (GetBGObject(bombIndex))                            GetBGObject(bombIndex)->RemoveFlag(GAMEOBJECT_FIELD_FLAGS, GO_FLAG_NOT_SELECTABLE);                    }                    break;                default:                    break;            }            if (i < 5)                DelObject(i + 14);            UpdatePlayerScore(player, SCORE_DESTROYED_WALL, 1);            if (rewardHonor)                UpdatePlayerScore(player, SCORE_BONUS_HONOR, GetBonusHonorFromKill(1));        }    }}
开发者ID:cooler-SAI,项目名称:PandaFire,代码行数:73,


示例29: if

void OPvPCapturePointEP_NPT::ChangeState(){    if(fabs(m_value) == m_maxValue)  // state won't change, only phase when maxed out!    {        // if changing from controlling alliance to horde or vice versa        if( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )        {            sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetCWStringForDBCLocale(LANG_OPVP_EP_LOOSE_NPT_A));            ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = 0;        }        else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )        {            sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetCWStringForDBCLocale(LANG_OPVP_EP_LOOSE_NPT_H));            ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = 0;        }        uint32 artkit = 21;        switch(m_State)        {        case OBJECTIVESTATE_ALLIANCE:            if(m_value == m_maxValue)                m_TowerState = EP_TS_A;            else                m_TowerState = EP_TS_A_P;            artkit = 2;            SummonGO(ALLIANCE);            ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = ALLIANCE;            if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetCWStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_A));            break;        case OBJECTIVESTATE_HORDE:            if(m_value == -m_maxValue)                m_TowerState = EP_TS_H;            else                m_TowerState = EP_TS_H_P;            artkit = 1;            SummonGO(HORDE);            ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = HORDE;            if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetCWStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_H));            break;        case OBJECTIVESTATE_NEUTRAL:            m_TowerState = EP_TS_N;            m_SummonedGOSide = 0;            DelObject(EP_NPT_BUFF);            break;        case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:        case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:            m_TowerState = EP_TS_N_A;            break;        case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:        case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:            m_TowerState = EP_TS_N_H;            break;        }        GameObject* flag = HashMapHolder<GameObject>::Find(m_capturePointGUID);        GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_NPT_FLAGS]);        if(flag)        {            flag->SetGoArtKit(artkit);            flag->SendUpdateObjectToAllExcept(NULL);        }        if(flag2)        {            flag2->SetGoArtKit(artkit);            flag2->SendUpdateObjectToAllExcept(NULL);        }        UpdateTowerState();        // complete quest objective        if(m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)            SendObjectiveComplete(EP_NPT_CM, 0);    }}
开发者ID:lus5d,项目名称:cwcore,代码行数:75,


示例30: DelObject

void BattlegroundIC::_DelBanner(uint8 node,uint8 type,uint8 teamIndex){    DelObject(m_IC_NodeData[node].object_flag);    DelObject(m_IC_NodeData[node].object_aura);}
开发者ID:sensibob,项目名称:tempestcore,代码行数:5,



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


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