本文整理汇总了C++中GameObjectPointer::PushToWorld方法的典型用法代码示例。如果您正苦于以下问题:C++ GameObjectPointer::PushToWorld方法的具体用法?C++ GameObjectPointer::PushToWorld怎么用?C++ GameObjectPointer::PushToWorld使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameObjectPointer
的用法示例。
在下文中一共展示了GameObjectPointer::PushToWorld方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SpawnObjects
void SpawnObjects(shared_ptr<MapMgr> pmgr)
{
if(!pmgr || pmgr->GetMapId() != 530)
return;
const static sgodata godata[] =
{
{ 182173, -290.016f, 3702.42f, 56.6729f, 0.0349066f, 0, 0, 0.0174524f, 0.999848f, 1, 32, 0, 1 }, // stadium
{ 182174, -184.889f, 3476.93f, 38.205f, -0.0174535f, 0, 0, 0.00872664f, -0.999962f, 1, 32, 0, 1 }, // overlook
{ 182175, -471.462f, 3451.09f, 34.6432f, 0.174533f, 0, 0, 0.0871557f, 0.996195f, 1, 32, 0, 1 }, // brokenhill
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
const static sgodata godata_banner[] =
{
{ 183515, -289.61f, 3696.83f, 75.9447f, 3.12414f, 0, 0, 0.999962f, 0.00872656f, 1, 32, 1375, 1 }, // stadium
{ 182525, -187.887f, 3459.38f, 60.0403f, -3.12414f, 0, 0, 0.999962f, -0.00872653f, 1, 32, 1375, 1 }, // overlook
{ 183514, -467.078f, 3528.17f, 64.7121f, 3.14159f, 0, 0, 1, -4.37114E-8f, 1, 32, 1375, 1 }, // brokenhill
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
uint32 i;
const sgodata* p, *p2;
for(i = 0; i < 3; ++i)
{
p = &godata[i];
p2 = &godata_banner[i];
GameObjectPointer pGo = pmgr->GetInterface()->SpawnGameObject(p->entry, p->posx, p->posy, p->posz, p->facing, false, 0, 0);
if(pGo == NULL)
continue;
GameObjectPointer pGo2 = pmgr->GetInterface()->SpawnGameObject(p2->entry, p2->posx, p2->posy, p2->posz, p2->facing, false, 0, 0);
if(pGo2 == NULL)
continue;
pGo->SetByte(GAMEOBJECT_BYTES_1, GAMEOBJECT_BYTES_STATE, p->state);
pGo2->SetByte(GAMEOBJECT_BYTES_1, GAMEOBJECT_BYTES_STATE, p2->state);
pGo->SetUInt32Value(GAMEOBJECT_FLAGS, p->flags);
pGo2->SetUInt32Value(GAMEOBJECT_FLAGS, p2->flags);
pGo->SetUInt32Value(GAMEOBJECT_FACTION, p->faction);
pGo2->SetUInt32Value(GAMEOBJECT_FACTION, p2->faction);
for(uint32 j = 0; j < 4; ++j)
{
pGo->SetFloatValue(GAMEOBJECT_ROTATION + j, p->orientation[j]);
pGo2->SetFloatValue(GAMEOBJECT_ROTATION + j, p2->orientation[j]);
}
// now make his script
pGo->SetScript(new HellfirePeninsulaBannerAI(pGo));
((HellfirePeninsulaBannerAI*)pGo->GetScript())->pBanner = pGo2;
pGo->PushToWorld(pmgr);
pGo2->PushToWorld(pmgr);
pGo->GetScript()->OnSpawn();
printf("Spawned gameobject entry %u for world pvp on hellfire.\n", p->entry);
}
}
示例2: SpawnGameObject
GameObjectPointer MapScriptInterface::SpawnGameObject(uint32 Entry, float cX, float cY, float cZ, float cO, bool AddToWorld, uint32 Misc1, uint32 Misc2)
{
GameObjectPointer pGameObject = mapMgr->CreateGameObject(Entry);
if(pGameObject == NULL || !pGameObject->CreateFromProto(Entry, mapMgr->GetMapId(), cX, cY, cZ, cO, 0.0f, 0.0f, 0.0f, 0.0f))
return NULLGOB;
pGameObject->SetInstanceID(mapMgr->GetInstanceID());
pGameObject->SetPhase(1);
if(AddToWorld)
pGameObject->PushToWorld(mapMgr);
return pGameObject;
}
示例3: TFSpawnObjects
void TFSpawnObjects(shared_ptr<MapMgr> pmgr)
{
if(!pmgr || pmgr->GetMapId() != 530)
return;
const static sgodata godata[] =
{
{ 183104, -3081.65f, 5335.03f, 17.1853f, -2.14675f, 0, 0, 0.878817f, -0.477159f, 1, 32, 0, 1 },
{ 183411, -2939.9f, 4788.73f, 18.987f, 2.77507f, 0, 0, 0.983255f, 0.182236f, 1, 32, 0, 1 },
{ 183412, -3174.94f, 4440.97f, 16.2281f, 1.86750f, 0, 0, 0.803857f, 0.594823f, 1, 32, 0, 1 },
{ 183413, -3603.31f, 4529.15f, 20.9077f, 0.994838f, 0, 0, 0.477159f, 0.878817f, 1, 32, 0, 1 },
{ 183414, -3812.37f, 4899.3f, 17.7249f, 0.087266f, 0, 0, 0.043619f, 0.999048f, 1, 32, 0, 1 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
uint32 i;
const sgodata* p;
for(i = 0; i < 5; ++i)
{
p = &godata[i];
GameObjectPointer pGo = NULLGOB;
pGo = pmgr->GetInterface()->SpawnGameObject(p->entry, p->posx, p->posy, p->posz, p->facing, false, 0, 0);
if(!pGo)
continue;
pGo->SetByte(GAMEOBJECT_BYTES_1, GAMEOBJECT_BYTES_STATE, p->state);
pGo->SetUInt32Value(GAMEOBJECT_FLAGS, p->flags);
pGo->SetUInt32Value(GAMEOBJECT_FACTION, p->faction);
for(uint32 j = 0; j < 4; ++j)
{
pGo->SetFloatValue(GAMEOBJECT_ROTATION + j, p->orientation[j]);
}
// now make his script
pGo->SetScript(new TerokkarForestBannerAI(pGo));
pGo->PushToWorld(pmgr);
pGo->GetScript()->OnSpawn();
}
}
示例4: OnCreate
void ArathiBasin::OnCreate()
{
// Alliance Gate
GameObjectPointer gate = SpawnGameObject(180255, 1284.597290f, 1281.166626f, -15.977916f, 0.76f, 32, 114, 1.5799990f);
gate->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
gate->PushToWorld(m_mapMgr);
m_gates.push_back(gate);
// horde gate
gate = SpawnGameObject(180256, 708.0902710f, 708.4479370f, -17.3898964f, 3.92f, 32, 114, 1.5699990f);
gate->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
gate->PushToWorld(m_mapMgr);
m_gates.push_back(gate);
// spawn (default) control points
SpawnControlPoint(AB_CONTROL_POINT_STABLE, AB_SPAWN_TYPE_NEUTRAL);
SpawnControlPoint(AB_CONTROL_POINT_BLACKSMITH, AB_SPAWN_TYPE_NEUTRAL);
SpawnControlPoint(AB_CONTROL_POINT_LUMBERMILL, AB_SPAWN_TYPE_NEUTRAL);
SpawnControlPoint(AB_CONTROL_POINT_MINE, AB_SPAWN_TYPE_NEUTRAL);
SpawnControlPoint(AB_CONTROL_POINT_FARM, AB_SPAWN_TYPE_NEUTRAL);
// spawn buffs
SpawnBuff(AB_BUFF_STABLES);
SpawnBuff(AB_BUFF_BLACKSMITH);
SpawnBuff(AB_BUFF_LUMBERMILL);
SpawnBuff(AB_BUFF_MINE);
SpawnBuff(AB_BUFF_FARM);
// spawn the h/a base spirit guides
AddSpiritGuide(SpawnSpiritGuide(NoBaseGYLocations[0][0],NoBaseGYLocations[0][1],NoBaseGYLocations[0][2], 0.0f, 0));
AddSpiritGuide(SpawnSpiritGuide(NoBaseGYLocations[1][0],NoBaseGYLocations[1][1],NoBaseGYLocations[1][2], 0.0f, 1));
// w00t
WorldStateManager &sm = m_mapMgr->GetStateManager();
// urrrgh worldstates
sm.CreateWorldState(0x8D8, 0x00);
sm.CreateWorldState(0x8D7, 0x00);
sm.CreateWorldState(0x8D6, 0x00);
sm.CreateWorldState(0x8D5, 0x00);
sm.CreateWorldState(0x8D4, 0x00);
sm.CreateWorldState(0x8D3, 0x00);
// AB world state's
// unknowns, need more research
sm.CreateWorldState(0x7A3, 1800); // unknown
sm.CreateWorldState(0x745, 0x02); // unknown
// Icon stuff for on the map
sm.CreateWorldState(WORLDSTATE_AB_SHOW_BACKSMITH_ICON, 0x01);
sm.CreateWorldState(WORLDSTATE_AB_SHOW_FARM_ICON, 0x01);
sm.CreateWorldState(WORLDSTATE_AB_SHOW_LUMBERMILL_ICON, 0x01);
sm.CreateWorldState(WORLDSTATE_AB_SHOW_GOLDMINE_ICON, 0x01);
sm.CreateWorldState(WORLDSTATE_AB_SHOW_STABLE_ICON, 0x01);
// LumberMill
sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_LUMBERMILL_HORDE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_LUMBERMILL_ALLIANCE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_LUMBERMILL_HORDE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_LUMBERMILL_ALLIANCE, 0x00);
// GoldMine
sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_GOLDMINE_HORDE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_GOLDMINE_ALLIANCE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_GOLDMINE_HORDE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_GOLDMINE_ALLIANCE, 0x00);
// BlackSmith
sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_BLACKSMITH_HORDE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_BLACKSMITH_ALLIANCE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_BLACKSMITH_HORDE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_BLACKSMITH_ALLIANCE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_MAX_SCORE, RESOURCES_WINVAL);
sm.CreateWorldState(WORLDSTATE_AB_ALLIANCE_CAPTUREBASE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_HORDE_CAPTUREBASE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_HORDE_RESOURCES, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_ALLIANCE_RESOURCES, 0x00);
// Farm
sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_FARM_ALLIANCE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_FARM_HORDE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_FARM_HORDE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_FARM_ALLIANCE, 0x00);
// Stables
sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_STABLES_HORDE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURING_STABLES_ALLIANCE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_STABLES_HORDE, 0x00);
sm.CreateWorldState(WORLDSTATE_AB_CAPTURED_STABLES_ALLIANCE, 0x00);
}
示例5: OnCreate
void Arena::OnCreate()
{
GameObjectPointer obj;
WorldStateManager &sm = m_mapMgr->GetStateManager();
switch(m_mapMgr->GetMapId())
{
/* loraedeon */
case 572:
{
obj = SpawnGameObject(185917, 1278.647705f, 1730.556641f, 31.605574f, 1.68f, 32, 1375, 1.0f);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
m_gates.insert(obj);
obj = SpawnGameObject(185918, 1293.560791f, 1601.937988f, 31.605574f, 4.86f, 32, 1375, 1.0f);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
m_gates.insert(obj);
m_pcWorldStates[GREEN_TEAM] = WORLDSTATE_ARENA_LORDAERON_GREEN_PLAYER_COUNT;
m_pcWorldStates[GOLD_TEAM] = WORLDSTATE_ARENA_LORDAERON_GOLD_PLAYER_COUNT;
sm.CreateWorldState(WORLDSTATE_ARENA_LORDAERON_SCORE_SHOW, 1);
}break;
/* blades edge arena */
case 562:
{
obj = SpawnGameObject(183972, 6177.707520f, 227.348145f, 3.604374f, -2.260201f, 32, 1375, 1.0f);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
obj->PushToWorld(m_mapMgr);
obj = SpawnGameObject(183973, 6189.546387f, 241.709854f, 3.101481f, 0.881392f, 32, 1375, 1.0f);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
m_gates.insert(obj);
obj = SpawnGameObject(183970, 6299.115723f, 296.549438f, 3.308032f, 0.881392f, 32, 1375, 1.0f);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
obj->PushToWorld(m_mapMgr);
obj = SpawnGameObject(183971, 6287.276855f, 282.187714f, 3.810925f, -2.260201f, 32, 1375, 1.0f);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
m_gates.insert(obj);
m_pcWorldStates[GREEN_TEAM] = WORLDSTATE_ARENA_BLADESEDGE_GREEN_PLAYER_COUNT;
m_pcWorldStates[GOLD_TEAM] = WORLDSTATE_ARENA_BLADESEDGE_GOLD_PLAYER_COUNT;
sm.CreateWorldState(WORLDSTATE_ARENA_BLADESEDGE_SCORE_SHOW, 1);
}break;
/* nagrand arena */
case 559:
{
obj = SpawnGameObject(183979, 4090.064453f, 2858.437744f, 10.236313f, 0.492805f, 32, 1375, 1.0f);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
obj->PushToWorld(m_mapMgr);
obj = SpawnGameObject(183980, 4081.178955f, 2874.970459f, 12.391714f, 0.492805f, 32, 1375, 1.0f);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
m_gates.insert(obj);
obj = SpawnGameObject(183977, 4023.709473f, 2981.776611f, 10.701169f, -2.648788f, 32, 1375, 1.0f);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
obj->PushToWorld(m_mapMgr);
obj = SpawnGameObject(183978, 4031.854248f, 2966.833496f, 12.646200f, -2.648788f, 32, 1375, 1.0f);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
m_gates.insert(obj);
m_pcWorldStates[GREEN_TEAM] = WORLDSTATE_ARENA_NAGRAND_GREEN_PLAYER_COUNT;
m_pcWorldStates[GOLD_TEAM] = WORLDSTATE_ARENA_NAGRAND_GOLD_PLAYER_COUNT;
sm.CreateWorldState(WORLDSTATE_ARENA_NAGRAND_SCORE_SHOW, 1);
}break;
/* Dalaran Sewers */
case 617:
{
obj = SpawnGameObject(192643, 1256.33996582031f, 770.06201171875f, 20.5f, 0.0f, 32, 1375, 2.0f);
if(obj)
{
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
m_gates.insert(obj);
}
obj = SpawnGameObject(192642, 1327.2099609375f, 813.239990234375f, 20.5f, 0.0f, 32, 1375, 2.0f);
if(obj)
{
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_STATE, 1);
obj->SetByte(GAMEOBJECT_BYTES_1,GAMEOBJECT_BYTES_ANIMPROGRESS, 100);
m_gates.insert(obj);
}
// not rly blizzlike, should be spawn later, not on create, but who cares, will fix it later
//.........这里部分代码省略.........
示例6: HandleGOSpawn
bool ChatHandler::HandleGOSpawn(const char *args, WorldSession *m_session)
{
std::stringstream sstext;
char* pEntryID = strtok((char*)args, " ");
if (!pEntryID)
return false;
uint32 EntryID = atoi(pEntryID);
bool Save = false;
char* pSave = strtok(NULL, " ");
if (pSave)
Save = (atoi(pSave)>0?true:false);
OUT_DEBUG("Spawning GameObject By Entry '%u'", EntryID);
sstext << "Spawning GameObject By Entry '" << EntryID << "'" << '\0';
SystemMessage(m_session, sstext.str().c_str());
GameObjectPointer go = m_session->GetPlayer()->GetMapMgr()->CreateGameObject(EntryID);
if(go == NULL)
{
sstext << "GameObject Info '" << EntryID << "' Not Found" << '\0';
SystemMessage(m_session, sstext.str().c_str());
return true;
}
PlayerPointer chr = m_session->GetPlayer();
uint32 mapid = chr->GetMapId();
float x = chr->GetPositionX();
float y = chr->GetPositionY();
float z = chr->GetPositionZ();
float o = chr->GetOrientation();
go->SetInstanceID(chr->GetInstanceID());
go->CreateFromProto(EntryID,mapid,x,y,z,o,0.0f,0.0f,0.0f,0.0f);
go->SetRotation(o);
go->PushToWorld(m_session->GetPlayer()->GetMapMgr());
// Create sapwn instance
GOSpawn * gs = new GOSpawn;
gs->entry = go->GetEntry();
gs->facing = go->GetOrientation();
gs->faction = go->GetUInt32Value(GAMEOBJECT_FACTION);
gs->flags = go->GetUInt32Value(GAMEOBJECT_FLAGS);
gs->id = objmgr.GenerateGameObjectSpawnID();
gs->orientation1 = go->GetFloatValue(GAMEOBJECT_ROTATION);
gs->orientation2 = go->GetFloatValue(GAMEOBJECT_ROTATION_01);
gs->orientation3 = go->GetFloatValue(GAMEOBJECT_ROTATION_02);
gs->orientation4 = go->GetFloatValue(GAMEOBJECT_ROTATION_03);
gs->scale = go->GetFloatValue(OBJECT_FIELD_SCALE_X);
gs->x = go->GetPositionX();
gs->y = go->GetPositionY();
gs->z = go->GetPositionZ();
gs->state = go->GetByte(GAMEOBJECT_BYTES_1, GAMEOBJECT_BYTES_STATE);
//gs->stateNpcLink = 0;
uint32 cx = m_session->GetPlayer()->GetMapMgr()->GetPosX(m_session->GetPlayer()->GetPositionX());
uint32 cy = m_session->GetPlayer()->GetMapMgr()->GetPosY(m_session->GetPlayer()->GetPositionY());
m_session->GetPlayer()->GetMapMgr()->GetBaseMap()->GetSpawnsListAndCreate(cx,cy)->GOSpawns.push_back(gs);
go->m_spawn = gs;
//go->AddToWorld();
if(Save == true)
{
// If we're saving, create template and add index
go->SaveToDB();
}
return true;
}