本文整理汇总了C++中AddCapturePoint函数的典型用法代码示例。如果您正苦于以下问题:C++ AddCapturePoint函数的具体用法?C++ AddCapturePoint怎么用?C++ AddCapturePoint使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了AddCapturePoint函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: RegisterZone
bool OutdoorPvPEP::SetupOutdoorPvP()
{
for (uint8 i = 0; i < EPBuffZonesNum; ++i)
RegisterZone(EPBuffZones[i]);
AddCapturePoint(new OPvPCapturePointEP_EWT(this));
AddCapturePoint(new OPvPCapturePointEP_PWT(this));
AddCapturePoint(new OPvPCapturePointEP_CGT(this));
AddCapturePoint(new OPvPCapturePointEP_NPT(this));
return true;
}
开发者ID:Alluring,项目名称:TrinityCore,代码行数:11,代码来源:OutdoorPvPEP.cpp
示例2: RegisterZone
bool OutdoorPvPHP::SetupOutdoorPvP() {
m_AllianceTowersControlled = 0;
m_HordeTowersControlled = 0;
// add the zones affected by the pvp buff
for (int i = 0; i < OutdoorPvPHPBuffZonesNum; ++i)
RegisterZone(OutdoorPvPHPBuffZones[i]);
AddCapturePoint(new OPvPCapturePointHP(this, HP_TOWER_BROKEN_HILL));
AddCapturePoint(new OPvPCapturePointHP(this, HP_TOWER_OVERLOOK));
AddCapturePoint(new OPvPCapturePointHP(this, HP_TOWER_STADIUM));
return true;
}
开发者ID:FrenchCORE,项目名称:OLD_FrenchCORE,代码行数:15,代码来源:OutdoorPvPHP.cpp
示例3: RegisterZone
bool OutdoorPvPAzshara::SetupOutdoorPvP()
{
m_AllianceTowersControlled = 0;
m_HordeTowersControlled = 0;
// add the zones affected by the pvp buff
for (int i = 0; i < OutdoorPvPAzsharaBuffZonesNum; ++i)
RegisterZone(OutdoorPvPAzsharaBuffZones[i]);
AddCapturePoint(new OPvPCapturePointAzshara(this, Azshara_TOWER_ALLIANCE));
AddCapturePoint(new OPvPCapturePointAzshara(this, Azshara_TOWER_HORDE));
AddCapturePoint(new OPvPCapturePointAzshara(this, Azshara_TOWER_NEUTRAL));
return true;
}
开发者ID:MrZechY,项目名称:Project-Justice,代码行数:16,代码来源:OutdoorPvPAzshara.cpp
示例4: OutdoorPvPObjective
OutdoorPvPObjectiveNA::OutdoorPvPObjectiveNA(OutdoorPvP *pvp) :
OutdoorPvPObjective(pvp), m_capturable(true), m_GuardsAlive(0), m_ControllingFaction(0),
m_HalaaState(HALAA_N), m_WyvernStateSouth(0), m_WyvernStateNorth(0), m_WyvernStateWest(0),
m_WyvernStateEast(0), m_RespawnTimer(NA_RESPAWN_TIME), m_GuardCheckTimer(NA_GUARD_CHECK_TIME)
{
AddCapturePoint(182210,530,-1572.57,7945.3,-22.475,2.05949,0,0,0.857167,0.515038);
}
开发者ID:mangos-gameaction,项目名称:mangos,代码行数:7,代码来源:OutdoorPvPNA.cpp
示例5: OutdoorPvPObjective
OutdoorPvPObjectiveHP::OutdoorPvPObjectiveHP(OutdoorPvP *pvp,OutdoorPvPHPTowerType type)
: OutdoorPvPObjective(pvp), m_TowerType(type)
{
AddCapturePoint(HPCapturePoints[type].entry,
HPCapturePoints[type].map,
HPCapturePoints[type].x,
HPCapturePoints[type].y,
HPCapturePoints[type].z,
HPCapturePoints[type].o,
HPCapturePoints[type].rot0,
HPCapturePoints[type].rot1,
HPCapturePoints[type].rot2,
HPCapturePoints[type].rot3);
AddObject(type,
HPTowerFlags[type].entry,
HPTowerFlags[type].map,
HPTowerFlags[type].x,
HPTowerFlags[type].y,
HPTowerFlags[type].z,
HPTowerFlags[type].o,
HPTowerFlags[type].rot0,
HPTowerFlags[type].rot1,
HPTowerFlags[type].rot2,
HPTowerFlags[type].rot3);
}
开发者ID:mangos-gameaction,项目名称:mangos,代码行数:25,代码来源:OutdoorPvPHP.cpp
示例6: RegisterZone
bool OutdoorPvPEP::SetupOutdoorPvP()
{
m_AllianceTowersControlled = 0;
m_HordeTowersControlled = 0;
// add the zones affected by the pvp buff
for (uint8 i = 0; i < OutdoorPvPEPBuffZonesNum; ++i)
RegisterZone(OutdoorPvPEPBuffZones[i]);
AddCapturePoint(new OPvPCapturePointEP(this,EP_TOWER_CROWNGUARD));
AddCapturePoint(new OPvPCapturePointEP(this,EP_TOWER_EASTWALL));
AddCapturePoint(new OPvPCapturePointEP(this,EP_TOWER_NORTHPASS));
AddCapturePoint(new OPvPCapturePointEP(this,EP_TOWER_PLAGUEWOOD));
return true;
}
开发者ID:japtenks,项目名称:blizzlikecore,代码行数:16,代码来源:OutdoorPvPEP.cpp
示例7: RegisterZone
bool OutdoorPvPZM::SetupOutdoorPvP()
{
m_AllianceTowersControlled = 0;
m_HordeTowersControlled = 0;
// add the zones affected by the pvp buff
for (uint8 i = 0; i < OutdoorPvPZMBuffZonesNum; ++i)
RegisterZone(OutdoorPvPZMBuffZones[i]);
AddCapturePoint(new OPvPCapturePointZM_Beacon(this, ZM_BEACON_WEST));
AddCapturePoint(new OPvPCapturePointZM_Beacon(this, ZM_BEACON_EAST));
m_GraveYard = new OPvPCapturePointZM_GraveYard(this);
AddCapturePoint(m_GraveYard); // though the update function isn't used, the handleusego is!
return true;
}
开发者ID:XEQT,项目名称:SkyFireEMU,代码行数:16,代码来源:OutdoorPvPZM.cpp
示例8: RegisterZone
bool OutdoorPvPGH::SetupOutdoorPvP() {
RegisterZone(GH_OUTDOORPVP_ZONE);
m_obj = new OPvPCapturePointGH(this);
if (!m_obj)
return false;
AddCapturePoint(m_obj);
return true;
}
开发者ID:FrenchCORE,项目名称:Server,代码行数:8,代码来源:OutdoorPvPGH.cpp
示例9: RegisterZone
bool OutdoorPvPGH::SetupOutdoorPvP()
{
RegisterZone(GH_ZONE);
if (m_obj = new OPvPCapturePointGH(this))
{
AddCapturePoint(m_obj);
return true;
}
return false;
}
开发者ID:boom8866,项目名称:azerothcore-wotlk,代码行数:10,代码来源:OutdoorPvPGH.cpp
示例10: RegisterZone
bool OutdoorPvPNA::SetupOutdoorPvP()
{
// m_TypeId = OUTDOOR_PVP_NA; _MUST_ be set in ctor, because of spawns cleanup
// add the zones affected by the pvp buff
RegisterZone(NA_BUFF_ZONE);
// halaa
m_obj = new OPvPCapturePointNA(this);
AddCapturePoint(m_obj);
return true;
}
开发者ID:oMadMano,项目名称:MistyWorld_6xx,代码行数:12,代码来源:OutdoorPvPNA.cpp
示例11: RegisterZone
bool OutdoorPvPTF::SetupOutdoorPvP() {
m_AllianceTowersControlled = 0;
m_HordeTowersControlled = 0;
m_IsLocked = false;
m_LockTimer = TF_LOCK_TIME;
m_LockTimerUpdate = 0;
hours_left = 6;
second_digit = 0;
first_digit = 0;
// add the zones affected by the pvp buff
for (uint8 i = 0; i < OutdoorPvPTFBuffZonesNum; ++i)
RegisterZone(OutdoorPvPTFBuffZones[i]);
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_NW));
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_N));
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_NE));
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_SE));
AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_S));
return true;
}
开发者ID:jsj2008,项目名称:StarGate-Plus-EMU,代码行数:23,代码来源:OutdoorPvPTF.cpp
示例12: RegisterZone
bool OutdoorPvPHS::SetupOutdoorPvP()
{
m_PlayerCount = 0;
m_HordeCount = 0;
m_AllianceCount = 0;
m_HordeBuff = 0;
m_AllianceBuff = 0;
m_ChestTimer = HS_FFA_CHEST_TIMER;
m_ChestAnnounceTimer = HS_FFA_CHEST_ANNOUNCE_TIMER;
m_ChestDebugTimer = 60000;
m_ChestGUID = 0;
m_TenacityTimer = HS_TENACITY_TIME;
m_LastResurrectTime = 0;
m_DurnholdeOwner = 0;
m_DurnholdeLockout = 0;
m_TowerStateEast = 0;
m_TowerStateWest = 0;
m_TowerStateMain = 0;
RegisterZone(HS_ZONE);
AddCapturePoint(new OPvPCapturePointHS(this,HS_TOWER_LOWER));
AddCapturePoint(new OPvPCapturePointHS(this,HS_TOWER_LOWER_EAST));
AddCapturePoint(new OPvPCapturePointHS(this,HS_TOWER_MAIN));
sLog->outString("HillsbradMGR : Loaded.");
return true;
}
开发者ID:MrZomble,项目名称:TrinityCore,代码行数:36,代码来源:OutdoorPvPHS.cpp
示例13: switch
void BattlefieldWG::OnGameObjectCreate(GameObject* go)
{
bool isWorkshop = false;
uint8 workshopId = 0;
switch (go->GetEntry())
{
case GO_WINTERGRASP_FACTORY_BANNER_NE:
isWorkshop = true;
workshopId = BATTLEFIELD_WG_WORKSHOP_NE;
break;
case GO_WINTERGRASP_FACTORY_BANNER_NW:
isWorkshop = true;
workshopId = BATTLEFIELD_WG_WORKSHOP_NW;
break;
case GO_WINTERGRASP_FACTORY_BANNER_SE:
isWorkshop = true;
workshopId = BATTLEFIELD_WG_WORKSHOP_SE;
break;
case GO_WINTERGRASP_FACTORY_BANNER_SW:
isWorkshop = true;
workshopId = BATTLEFIELD_WG_WORKSHOP_SW;
break;
}
if (!isWorkshop)
return;
for (Workshop::const_iterator itr = WorkshopsList.begin(); itr != WorkshopsList.end(); ++itr)
{
if (WGWorkshop* workshop = (*itr))
{
if (workshop->workshopId == workshopId)
{
WintergraspCapturePoint* capturePoint = new WintergraspCapturePoint(this, GetAttackerTeam());
capturePoint->SetCapturePointData(go);
capturePoint->LinkToWorkshop(workshop);
AddCapturePoint(capturePoint);
break;
}
}
}
}
开发者ID:Szone,项目名称:TrinityCore,代码行数:45,代码来源:BattlefieldWG.cpp
示例14: OutdoorPvPObjective
// PWT
OutdoorPvPObjectiveEP_PWT::OutdoorPvPObjectiveEP_PWT(OutdoorPvP *pvp)
: OutdoorPvPObjective(pvp), m_TowerState(EP_TS_N), m_FlightMasterSpawned(0)
{
AddCapturePoint(EPCapturePoints[EP_PWT].entry,EPCapturePoints[EP_PWT].map,EPCapturePoints[EP_PWT].x,EPCapturePoints[EP_PWT].y,EPCapturePoints[EP_PWT].z,EPCapturePoints[EP_PWT].o,EPCapturePoints[EP_PWT].rot0,EPCapturePoints[EP_PWT].rot1,EPCapturePoints[EP_PWT].rot2,EPCapturePoints[EP_PWT].rot3);
AddObject(EP_PWT_FLAGS,EPTowerFlags[EP_PWT].entry,EPTowerFlags[EP_PWT].map,EPTowerFlags[EP_PWT].x,EPTowerFlags[EP_PWT].y,EPTowerFlags[EP_PWT].z,EPTowerFlags[EP_PWT].o,EPTowerFlags[EP_PWT].rot0,EPTowerFlags[EP_PWT].rot1,EPTowerFlags[EP_PWT].rot2,EPTowerFlags[EP_PWT].rot3);
}
开发者ID:Zekom,项目名称:NeoCore,代码行数:7,代码来源:OutdoorPvPEP.cpp
示例15: TeamId
//.........这里部分代码省略.........
// add capture point
uint32 capturePointEntry = 0;
//192028 192029
//192030 192031
//192032 192033
//190475 190487 not sure
//192626 192627
//194959 194960
switch(goData->id)
{
case 192028: capturePointEntry = 190475; break;
case 192029: capturePointEntry = 190487; break;
case 192030: capturePointEntry = 190475; break;
case 192031: capturePointEntry = 190487; break;
case 192032: capturePointEntry = 190475; break;
case 192033: capturePointEntry = 190487; break;
}
if(capturePointEntry)
{
uint32 engGuid = 0;
QueryResult *result = WorldDatabase.PQuery("SELECT `guid` FROM `creature`"
" WHERE `creature`.`map`=571"
" AND `creature`.`id` IN (%u, %u);", CRE_ENG_A, CRE_ENG_H);
if(!result)
{
sLog.outError("Cannot find siege workshop master in creature!");
continue;
}
float minDist = 100;
do
{
Field *fields = result->Fetch();
uint32 guid = fields[0].GetUInt32();
const CreatureData *creData = objmgr.GetCreatureData(guid);
if(!creData)
continue;
float dist = (abs(creData->posX - x) + abs(creData->posY - y));
if(minDist > dist)
{
minDist = dist;
engGuid = guid;
}
}while(result->NextRow());
delete result;
if(!engGuid)
{
sLog.outError("Cannot find nearby siege workshop master!");
continue;
}
SiegeWorkshop *workshop = new SiegeWorkshop(this, m_buildingStates[guid]);
if(!workshop->SetCapturePointData(capturePointEntry, goData->mapid, goData->posX, goData->posY, goData->posZ))
{
delete workshop;
sLog.outError("Cannot add capture point!");
continue;
}
const CreatureData *creData = objmgr.GetCreatureData(engGuid);
if(!creData)
continue;
workshop->m_engEntry = const_cast<uint32*>(&creData->id);
const_cast<CreatureData*>(creData)->displayid = 0;
workshop->m_workshopGuid = guid;
workshop->m_engGuid = engGuid;
//workshop->AddGO(0, guid, goData->id);
//workshop->AddCre(0, engGuid, creData->id);
//sLog.outDebug("Demolisher Engineerer lowguid %u is linked to workshop lowguid %u.", engGuid, guid);
AddCapturePoint(workshop);
m_buildingStates[guid]->type = BUILDING_WORKSHOP;
workshop->SetStateByBuildingState();
}
}while(result->NextRow());
delete result;
//for(AreaPOIList::iterator itr = areaPOIs.begin(); itr != areaPOIs.end(); ++itr)
// sLog.outError("not assigned %u %f %f", (*itr)->id, (*itr)->x, (*itr)->y);
//gameeventmgr.StartInternalEvent(GameEventWintergraspDefender[m_defender]);
//Titan Relic eventid = 19982
objmgr.AddGOData(192829, 571, 5440, 2840.8, 420.43, 0);
LoadTeamPair(m_goDisplayPair, GODisplayPair);
LoadTeamPair(m_creEntryPair, CreatureEntryPair);
m_wartime = false;
m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME) * MINUTE * IN_MILISECONDS;
RegisterZone(ZONE_WINTERGRASP);
return true;
}
开发者ID:pfchrono,项目名称:mangos-mods,代码行数:101,代码来源:Wintergrasp.cpp
示例16: battle
bool BattlefieldTB::SetupBattlefield()
{
m_TypeId = BATTLEFIELD_TB; //View enum BattlefieldTypes
m_BattleId = BATTLEFIELD_BATTLEID_TB;
m_ZoneId = 5095; // Tol Barad
_MapId = 732; // Map X
m_MaxPlayer = sWorld->getIntConfig(CONFIG_TOL_BARAD_PLR_MAX);
m_enable = sWorld->getBoolConfig(CONFIG_TOL_BARAD_ENABLE);
m_MinPlayer = sWorld->getIntConfig(CONFIG_TOL_BARAD_PLR_MIN);
m_MinLevel = sWorld->getIntConfig(CONFIG_TOL_BARAD_PLR_MIN_LVL);
m_BattleTime = sWorld->getIntConfig(CONFIG_TOL_BARAD_BATTLETIME)*60*1000; // Time of battle (in ms)
m_NoWarBattleTime = sWorld->getIntConfig(CONFIG_TOL_BARAD_NOBATTLETIME)*60*1000; // Time between to battle (in ms)
m_TimeForAcceptInvite = 20; // in second
m_StartGroupingTimer = 15*60*1000; // in ms
m_StartGrouping=false;
KickPositionA.Relocate(-363.897f, 1047.931f, 22, 0);
KickPositionA.m_mapId = _MapId;
KickPositionH.Relocate(-609.336f, 1392.194f, 21.5f, 0);
KickPositionH.m_mapId = _MapId;
RegisterZone(m_ZoneId);
m_Data32.resize(BATTLEFIELD_TB_DATA_MAX);
m_saveTimer = 60000;
// Init GraveYards
SetGraveyardNumber(BATTLEFIELD_TB_GY_MAX);
//Load from db
if(( sWorld->getWorldState(5387) == 0 ) && (sWorld->getWorldState(5384) == 0) && (sWorld->getWorldState(TBClockWorldState[0]) == 0 ))
{
sWorld->setWorldState(5387, false);
sWorld->setWorldState(5384, urand(0, 1));
sWorld->setWorldState(TBClockWorldState[0], m_NoWarBattleTime);
}
m_WarTime = sWorld->getWorldState(5387);
m_DefenderTeam = (TeamId)sWorld->getWorldState(5384);
m_Timer = sWorld->getWorldState(TBClockWorldState[0]);
if (m_WarTime)
{
m_WarTime = false;
m_Timer = 10 * 60 * 1000;
}
for (uint8 i=0; i<BATTLEFIELD_TB_GY_MAX; i++)
{
BfGraveYardTB* gy = new BfGraveYardTB(this);
if (TBGraveYard[i].startcontrol == TEAM_NEUTRAL)
{
// In no war time Gy is control by defender
gy->Init(45079, 45066, TBGraveYard[i].x, TBGraveYard[i].y, TBGraveYard[i].z, TBGraveYard[i].o, m_DefenderTeam, TBGraveYard[i].guid);
}
else
gy->Init(45079, 45066, TBGraveYard[i].x, TBGraveYard[i].y, TBGraveYard[i].z, TBGraveYard[i].o, TBGraveYard[i].startcontrol, TBGraveYard[i].guid);
gy->SetTextId(TBGraveYard[i].textid);
m_GraveYardList[i] = gy;
}
// Pop des gameobject et creature du TBWorkShop
for (uint8 i = 0; i<TB_MAX_WORKSHOP; i++)
{
BfTBWorkShopData* ws = new BfTBWorkShopData(this); // Create new object
// Init:setup variable
ws->Init(TBCapturePointDataBase[i].worldstate, TBCapturePointDataBase[i].type, TBCapturePointDataBase[i].nameid);
// Spawn associate gameobject on this point (Horde/Alliance flags)
for (int g = 0; g<TBCapturePointDataBase[i].nbgob; g++)
{
ws->AddGameObject(TBCapturePointDataBase[i].GameObjectData[g]);
}
// Create PvPCapturePoint
if (TBCapturePointDataBase[i].type < BATTLEFIELD_TB_FORT_MAX)
{
ws->ChangeControl(GetAttackerTeam(), true); // Update control of this point
m_Data32[BATTLEFIELD_TB_DATA_CAPTURED_FORT_ATT]++;
m_Data32[BATTLEFIELD_TB_DATA_CAPTURED_FORT_DEF]--;
// Create Object
BfCapturePointTB* TBWorkShop = new BfCapturePointTB(this, GetAttackerTeam());
// Spawn gameobject associate (see in OnGameObjectCreate, of OutdoorPvP for see association)
if (TBWorkShop->SetCapturePointData(TBCapturePointDataBase[i].CapturePoint.entryh, 732,
TBCapturePointDataBase[i].CapturePoint.x,
TBCapturePointDataBase[i].CapturePoint.y,
TBCapturePointDataBase[i].CapturePoint.z,
0))
{
TBWorkShop->LinkToWorkShop(ws); // Link our point to the capture point (for faction changement)
AddCapturePoint(TBWorkShop); // Add this capture point to list for update this (view in Update() of OutdoorPvP)
}
}
else
{
m_Data32[BATTLEFIELD_TB_DATA_CAPTURED_FORT_ATT]--;
m_Data32[BATTLEFIELD_TB_DATA_CAPTURED_FORT_DEF]++;
ws->ChangeControl(GetDefenderTeam(), true); // Update control of this point (Keep TBWorkShop= to deffender team)
}
WorkShopList.insert(ws);
}
// Spawning npc in keep
for (uint8 i = 0; i<TB_MAX_KEEP_NPC; i++)
{
//.........这里部分代码省略.........
开发者ID:Exodius,项目名称:ZapekFapeCore,代码行数:101,代码来源:BattlefieldTB.cpp
示例17: OPvPCapturePoint
// NPT
OPvPCapturePointEP_NPT::OPvPCapturePointEP_NPT(OutdoorPvP *pvp)
: OPvPCapturePoint(pvp), m_TowerState(EP_TS_N), m_SummonedGOSide(0)
{
AddCapturePoint(EPCapturePoints[EP_NPT].entry,EPCapturePoints[EP_NPT].map,EPCapturePoints[EP_NPT].x,EPCapturePoints[EP_NPT].y,EPCapturePoints[EP_NPT].z,EPCapturePoints[EP_NPT].o,EPCapturePoints[EP_NPT].rot0,EPCapturePoints[EP_NPT].rot1,EPCapturePoints[EP_NPT].rot2,EPCapturePoints[EP_NPT].rot3);
AddObject(EP_NPT_FLAGS,EPTowerFlags[EP_NPT].entry,EPTowerFlags[EP_NPT].map,EPTowerFlags[EP_NPT].x,EPTowerFlags[EP_NPT].y,EPTowerFlags[EP_NPT].z,EPTowerFlags[EP_NPT].o,EPTowerFlags[EP_NPT].rot0,EPTowerFlags[EP_NPT].rot1,EPTowerFlags[EP_NPT].rot2,EPTowerFlags[EP_NPT].rot3);
}
开发者ID:MilchBuby,项目名称:riboncore,代码行数:7,代码来源:OutdoorPvPEP.cpp
示例18: HideNpc
void BattlefieldTB::UpdateNPCsAndGameObjects()
{
for (ObjectGuid guid : BattleInactiveNPCs)
if (Creature* creature = GetCreature(guid))
HideNpc(creature);
for (ObjectGuid guid : BattleInactiveGOs)
if (GameObject* gameobject = GetGameObject(guid))
gameobject->SetRespawnTime(RESPAWN_ONE_DAY);
for (ObjectGuid guid : TemporaryNPCs)
if (Creature* creature = GetCreature(guid))
creature->RemoveFromWorld();
TemporaryNPCs.clear();
for (ObjectGuid guid : TemporaryGOs)
if (GameObject* gameobject = GetGameObject(guid))
gameobject->Delete();
TemporaryGOs.clear();
// Tol Barad gates - closed during warmup
if (GameObject* gates = GetGameObject(TBGatesGUID))
gates->SetGoState(GetState() == BATTLEFIELD_WARMUP ? GO_STATE_READY : GO_STATE_ACTIVE);
// Baradin Hold door - open when inactive
if (GameObject* door = GetGameObject(TBDoorGUID))
door->SetGoState(GetState() == BATTLEFIELD_INACTIVE ? GO_STATE_ACTIVE : GO_STATE_READY);
// Decide which cellblock and questgiver will be active.
m_iCellblockRandom = GetState() == BATTLEFIELD_INACTIVE ? urand(CELLBLOCK_THE_HOLE, CELLBLOCK_CURSED_DEPTHS) : uint8(CELLBLOCK_NONE);
// To The Hole gate
if (GameObject* door = GetGameObject(m_gateToTheHoleGUID))
door->SetGoState(m_iCellblockRandom == CELLBLOCK_THE_HOLE ? GO_STATE_ACTIVE : GO_STATE_READY);
// D-Block gate
if (GameObject* door = GetGameObject(m_gateDBlockGUID))
door->SetGoState(m_iCellblockRandom == CELLBLOCK_D_BLOCK ? GO_STATE_ACTIVE : GO_STATE_READY);
// Cursed Depths gate
if (GameObject* door = GetGameObject(m_gateCursedDepthsGUID))
door->SetGoState(m_iCellblockRandom == CELLBLOCK_CURSED_DEPTHS ? GO_STATE_ACTIVE : GO_STATE_READY);
if (GetState() == BATTLEFIELD_INACTIVE)
{
// Delete capture points
for (BfCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
itr->second->DelCapturePoint();
m_capturePoints.clear();
// Create capture points
for (uint8 i = 0; i < TB_BASE_COUNT; i++)
{
TolBaradCapturePoint* capturePoint = new TolBaradCapturePoint(this, GetDefenderTeam());
//Spawn flag pole
if (GameObject* go = SpawnGameObject(TBCapturePoints[i].entryFlagPole[GetDefenderTeam()], TBCapturePoints[i].pos, QuaternionData()))
{
go->SetGoArtKit(GetDefenderTeam() == TEAM_ALLIANCE ? TB_GO_ARTKIT_FLAG_ALLIANCE : TB_GO_ARTKIT_FLAG_HORDE);
capturePoint->SetCapturePointData(go);
}
AddCapturePoint(capturePoint);
}
for (ObjectGuid guid : BattleInactiveNPCs)
if (Creature* creature = GetCreature(guid))
ShowNpc(creature, true);
for (ObjectGuid guid : BattleInactiveGOs)
if (GameObject* gameobject = GetGameObject(guid))
gameobject->SetRespawnTime(RESPAWN_IMMEDIATELY);
for (uint8 i = 0; i < TB_QUEST_INFANTRY_MAX; i++)
{
uint32 entry = TB_QUEST_INFANTRY[GetDefenderTeam()][urand(0,3)];
if (Creature* creature = SpawnCreature(entry, TBQuestInfantrySpawnData[i]))
TemporaryNPCs.insert(creature->GetGUID());
}
for (uint8 i = 0; i < TB_GUARDS_MAX; i++)
if (Creature* creature = SpawnCreature(GetDefenderTeam() == TEAM_ALLIANCE ? NPC_BARADIN_GUARD : NPC_HELLSCREAMS_SENTRY, GuardNPCSpawns[i]))
TemporaryNPCs.insert(creature->GetGUID());
for (uint8 i = 0; i < TB_FACTION_NPC_MAX; i++)
if (Creature* creature = SpawnCreature(GetDefenderTeam() == TEAM_ALLIANCE ? FactionNPCSpawns[i].entryAlliance : FactionNPCSpawns[i].entryHorde, FactionNPCSpawns[i].pos))
TemporaryNPCs.insert(creature->GetGUID());
if (Creature* creature = SpawnCreature(RandomQuestgivers[GetDefenderTeam()][m_iCellblockRandom], RandomQuestgiverPos))
TemporaryNPCs.insert(creature->GetGUID());
// Spawn portals
for (uint8 i = 0; i < TB_PORTAL_MAX; i++)
if (GameObject* go = SpawnGameObject(TBPortalEntry[GetDefenderTeam()], TBPortals[i], QuaternionData()))
TemporaryGOs.insert(go->GetGUID());
// Update towers
for (ObjectGuid guid : Towers)
if (GameObject* go = GetGameObject(guid))
go->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING);
//.........这里部分代码省略.........
开发者ID:Chaplain,项目名称:TrinityCore,代码行数:101,代码来源:BattlefieldTB.cpp
示例19: RegisterZone
bool BattlefieldTB::SetupBattlefield()
{
m_TypeId = BATTLEFIELD_TB;
m_BattleId = BATTLEFIELD_BATTLEID_TB;
m_ZoneId = BATTLEFIELD_TB_ZONEID;
m_MapId = BATTLEFIELD_TB_MAPID;
m_MaxPlayer = sWorld->getIntConfig(CONFIG_TOL_BARAD_PLR_MAX);
m_IsEnabled = sWorld->getBoolConfig(CONFIG_TOL_BARAD_ENABLE);
m_MinPlayer = sWorld->getIntConfig(CONFIG_TOL_BARAD_PLR_MIN);
m_MinLevel = sWorld->getIntConfig(CONFIG_TOL_BARAD_PLR_MIN_LVL);
m_BattleTime = sWorld->getIntConfig(CONFIG_TOL_BARAD_BATTLETIME) * MINUTE * IN_MILLISECONDS;
m_NoWarBattleTime = sWorld->getIntConfig(CONFIG_TOL_BARAD_NOBATTLETIME) * MINUTE * IN_MILLISECONDS;
m_RestartAfterCrash = sWorld->getIntConfig(CONFIG_TOL_BARAD_RESTART_AFTER_CRASH) * MINUTE * IN_MILLISECONDS;
m_TimeForAcceptInvite = 20;
m_StartGroupingTimer = 15 * MINUTE * IN_MILLISECONDS;
m_StartGrouping = false;
KickPosition.Relocate(-630.460f, 1184.504f, 95.766f, 0);
KickPosition.m_mapId = m_MapId;
RegisterZone(m_ZoneId);
m_Data32.resize(BATTLEFIELD_TB_DATA_MAX);
m_Data32[BATTLEFIELD_TB_DATA_CAPTURED] = 0;
m_saveTimer = 60000;
SetGraveyardNumber(BATTLEFIELD_TB_GY_MAX);
if ((sWorld->getWorldState(WS_TB_NEXT_BATTLE_TIMER_ENABLED) == 0) && (sWorld->getWorldState(WS_TB_HORDE_DEFENCE) == 0) && (sWorld->getWorldState(ClockBTWorldState[0]) == 0))
{
sWorld->setWorldState(WS_TB_NEXT_BATTLE_TIMER_ENABLED, uint64(false));
sWorld->setWorldState(WS_TB_HORDE_DEFENCE, uint64(urand(0, 1)));
sWorld->setWorldState(ClockBTWorldState[0], uint64(m_NoWarBattleTime));
}
if (sWorld->getWorldState(WS_TB_UNK) == 0)
sWorld->setWorldState(WS_TB_UNK, urand(1, 3));
if (sWorld->getWorldState(WS_TB_UNK_2) == 0)
sWorld->setWorldState(WS_TB_UNK_2, time(NULL) + 86400);
m_isActive = bool(sWorld->getWorldState(WS_TB_NEXT_BATTLE_TIMER_ENABLED));
m_DefenderTeam = (TeamId)sWorld->getWorldState(WS_TB_HORDE_DEFENCE);
m_Timer = sWorld->getWorldState(ClockBTWorldState[0]);
if (m_isActive)
{
m_isActive = false;
m_Timer = m_RestartAfterCrash;
}
for (uint8 i = 0; i < BATTLEFIELD_TB_GY_MAX; i++)
{
BfGraveyardTB* graveyard = new BfGraveyardTB(this);
graveyard->Initialize(TBGraveYard[i].entryh, TBGraveYard[i].entrya, TBGraveYard[i].x, TBGraveYard[i].y, TBGraveYard[i].z, TBGraveYard[i].o, m_DefenderTeam, TBGraveYard[i].gyid);
m_GraveyardList[i] = graveyard;
}
for (uint8 i = 0; i < TB_MAX_WORKSHOP; i++)
{
BfTBWorkShopData* workshop = new BfTBWorkShopData(this);
workshop->Init(TBWorkShopDataBase[i].worldstate, TBWorkShopDataBase[i].type, TBWorkShopDataBase[i].nameid);
workshop->ChangeControl(GetDefenderTeam(),true);
BfCapturePointTB* point = new BfCapturePointTB(this, GetDefenderTeam());
point->SetCapturePointData(GetDefenderTeam() == TEAM_ALLIANCE ? TBWorkShopDataBase[i].CapturePoint.entrya : TBWorkShopDataBase[i].CapturePoint.entryh, BATTLEFIELD_TB_MAPID,
TBWorkShopDataBase[i].CapturePoint.x, TBWorkShopDataBase[i].CapturePoint.y, TBWorkShopDataBase[i].CapturePoint.z, 0);
point->LinkToWorkShop(workshop);
AddCapturePoint(point);
CapturePoints.insert(point);
WorkShopList.insert(workshop);
}
for (uint8 i = 0; i < TB_MAX_DESTROY_MACHINE_NPC; i++)
{
if (Creature* creature = SpawnCreature(TBDestroyMachineNPC[i].entrya, TBDestroyMachineNPC[i].x, TBDestroyMachineNPC[i].y, TBDestroyMachineNPC[i].z, TBDestroyMachineNPC[i].o, GetAttackerTeam()))
{
HideNpc(creature);
Vehicles.insert(creature->GetGUID());
}
}
for (uint8 i = 0; i < TB_MAX_OBJ; i++)
{
GameObject* go = SpawnGameObject(TBGameObjectBuillding[i].entry, BATTLEFIELD_TB_MAPID, TBGameObjectBuillding[i].x, TBGameObjectBuillding[i].y, TBGameObjectBuillding[i].z, TBGameObjectBuillding[i].o);
BfTBGameObjectBuilding* b = new BfTBGameObjectBuilding(this);
b->Init(go,TBGameObjectBuillding[i].type,TBGameObjectBuillding[i].WorldState,TBGameObjectBuillding[i].nameid);
b->m_State = BATTLEFIELD_TB_OBJECTSTATE_ALLIANCE_INTACT - (GetDefenderTeam() * 3);
BuildingsInZone.insert(b);
}
//.........这里部分代码省略.........
开发者ID:Lbniese,项目名称:WoWCircle434,代码行数:101,代码来源:BattlefieldTB.cpp
示例20: InitStalker
bool BattlefieldTB::SetupBattlefield()
{
m_TypeId = BATTLEFIELD_TB; // See enum BattlefieldTypes
m_BattleId = BATTLEFIELD_BATTLEID_TB;
m_ZoneId = BATTLEFIELD_TB_ZONEID;
m_MapId = BATTLEFIELD_TB_MAPID;
m_Map = sMapMgr->CreateBaseMap(m_MapId);
InitStalker(NPC_DEBUG_ANNOUNCER, TolBaradDebugAnnouncerPos);
m_MaxPlayer = sWorld->getIntConfig(CONFIG_TOLBARAD_PLR_MAX);
m_IsEnabled = sWorld->getBoolConfig(CONFIG_TOLBARAD_ENABLE);
m_MinPlayer = sWorld->getIntConfig(CONFIG_TOLBARAD_PLR_MIN);
m_MinLevel = sWorld->getIntConfig(CONFIG_TOLBARAD_PLR_MIN_LVL);
m_BattleTime = sWorld->getIntConfig(CONFIG_TOLBARAD_BATTLETIME) * MINUTE * IN_MILLISECONDS;
m_BonusTime = sWorld->getIntConfig(CONFIG_TOLBARAD_BONUSTIME) * MINUTE * IN_MILLISECONDS;
m_NoWarBattleTime = sWorld->getIntConfig(CONFIG_TOLBARAD_NOBATTLETIME) * MINUTE * IN_MILLISECONDS;
m_RestartAfterCrash = sWorld->getIntConfig(CONFIG_TOLBARAD_RESTART_AFTER_CRASH) * MINUTE * IN_MILLISECONDS;
m_TimeForAcceptInvite = 20;
m_StartGroupingTimer = 15 * MINUTE * IN_MILLISECONDS;
m_StartGrouping = false;
m_isActive = false;
KickPosition.Relocate(-605.5f, 1181.31f, 95.96f, 6.177155f);
KickPosition.m_mapId = m_MapId;
RegisterZone(m_ZoneId);
m_Data32.resize(BATTLEFIELD_TB_DATA_MAX);
m_saveTimer = 5 * MINUTE * IN_MILLISECONDS;
updatedNPCAndObjects = true;
m_updateObjectsTimer = 0;
// Was there a battle going on or time isn't set yet? Then use m_RestartAfterCrash
if (sWorld->getWorldState(TB_WS_STATE_BATTLE) == 1 || sWorld->getWorldState(TB_WS_TIME_NEXT_BATTLE) == 0)
sWorld->setWorldState(TB_WS_TIME_NEXT_BATTLE, m_RestartAfterCrash);
// Set timer
m_Timer = sWorld->getWorldState(TB_WS_TIME_NEXT_BATTLE);
// Defending team isn't set yet? Choose randomly.
if (sWorld->getWorldState(TB_WS_FACTION_CONTROLLING) == 0)
sWorld->setWorldState(TB_WS_FACTION_CONTROLLING, uint32(urand(1, 2)));
// Set defender team
SetDefenderTeam(TeamId(sWorld->getWorldState(TB_WS_FACTION_CONTROLLING) - 1));
// Just to save world states
SendInitWorldStatesToAll();
// Create capture points
for (uint8 i = 0; i < TB_BASE_COUNT; i++)
{
TolBaradCapturePoint* capturePoint = new TolBaradCapturePoint(this, GetDefenderTeam());
//Spawn flag pole
if (GameObject* go = SpawnGameObject(TBCapturePoints[i].entryFlagPole[GetDefenderTeam()], TBCapturePoints[i].pos, QuaternionData()))
{
go->SetGoArtKit(GetDefenderTeam() == TEAM_ALLIANCE ? TB_GO_ARTKIT_FLAG_ALLIANCE : TB_GO_ARTKIT_FLAG_HORDE);
capturePoint->SetCapturePointData(go);
}
AddCapturePoint(capturePoint);
}
// Spawn towers
for (uint8 i = 0; i < TB_TOWERS_COUNT; i++)
if (GameObject* go = SpawnGameObject(TBTowers[i].entry, TBTowers[i].pos, QuaternionData()))
Towers.insert(go->GetGUID());
// Init Graveyards
SetGraveyardNumber(BATTLEFIELD_TB_GRAVEYARD_MAX);
// Graveyards
for (uint8 i = 0; i < BATTLEFIELD_TB_GRAVEYARD_MAX; i++)
{
BfGraveyard* graveyard = new BfGraveyard(this);
// When between games, the graveyard is controlled by the defending team
graveyard->Initialize(GetDefenderTeam(), TBGraveyards[i].gyid);
// Spawn spirits
for (uint8 team = 0; team < 2; team++)
if (Creature* creature = SpawnCreature(TBGraveyards[i].spiritEntry[team], TBGraveyards[i].pos))
graveyard->SetSpirit(creature, TeamId(team));
m_GraveyardList[i] = graveyard;
}
// Time warning vars
warnedFiveMinutes = false;
warnedTwoMinutes = false;
warnedOneMinute = false;
UpdateNPCsAndGameObjects();
return true;
}
开发者ID:Chaplain,项目名称:TrinityCore,代码行数:100,代码来源:BattlefieldTB.cpp
注:本文中的AddCapturePoint函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论