本文整理汇总了C++中GameObject::Destruct方法的典型用法代码示例。如果您正苦于以下问题:C++ GameObject::Destruct方法的具体用法?C++ GameObject::Destruct怎么用?C++ GameObject::Destruct使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameObject
的用法示例。
在下文中一共展示了GameObject::Destruct方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleDuelCancelled
void WorldSession::HandleDuelCancelled(WorldPacket & recv_data)
{
if( _player->DuelingWith == NULL )
return;
if( _player->m_duelState == DUEL_STATE_STARTED )
{
_player->DuelingWith->EndDuel( DUEL_WINNER_KNOCKOUT );
return;
}
WorldPacket data( SMSG_DUEL_COMPLETE, 1 );
data << uint8( 1 );
SendPacket( &data );
_player->DuelingWith->m_session->SendPacket( &data );
GameObject* arbiter = _player->GetMapMgr() ? _player->GetMapMgr()->GetGameObject( GET_LOWGUID_PART(_player->GetUInt64Value( PLAYER_DUEL_ARBITER )) ) : NULLGOB;
if( arbiter != NULL )
{
arbiter->RemoveFromWorld( true );
arbiter->Destruct();
arbiter = NULLGOB;
}
_player->DuelingWith->SetUInt64Value( PLAYER_DUEL_ARBITER, 0 );
_player->SetUInt64Value( PLAYER_DUEL_ARBITER, 0 );
_player->DuelingWith->SetUInt32Value( PLAYER_DUEL_TEAM, 0 );
_player->SetUInt32Value( PLAYER_DUEL_TEAM, 0);
_player->DuelingWith->m_duelState = DUEL_STATE_FINISHED;
_player->m_duelState = DUEL_STATE_FINISHED;
_player->DuelingWith->m_duelCountdownTimer = 0;
_player->m_duelCountdownTimer = 0;
_player->DuelingWith->DuelingWith = NULLPLR;
_player->DuelingWith = NULLPLR;
}
示例2: LoadObjects
void MapCell::LoadObjects(CellSpawns * sp)
{
if(_loaded == true)
return;
_loaded = true;
Instance * pInstance = _mapmgr->pInstance;
if(sp->CreatureSpawns.size())//got creatures
{
Vehicle* v = NULLVEHICLE;
Creature* c = NULLCREATURE;
for(CreatureSpawnList::iterator i=sp->CreatureSpawns.begin();i!=sp->CreatureSpawns.end();++i)
{
if(pInstance)
{
if(pInstance->m_killedNpcs.find((*i)->id) != pInstance->m_killedNpcs.end())
continue;
}
if((*i)->vehicle > 0)
{
v =_mapmgr->CreateVehicle((*i)->entry);
if(v == NULLVEHICLE)
continue;
v->SetMapId(_mapmgr->GetMapId());
v->SetInstanceID(_mapmgr->GetInstanceID());
v->m_loadedFromDB = true;
if(v->Load(*i, _mapmgr->iInstanceMode, _mapmgr->GetMapInfo()))
{
if(!v->CanAddToWorld())
{
v->Destruct();
v = NULLVEHICLE;
continue;
}
v->PushToWorld(_mapmgr);
}
else
{
v->Destruct();
v = NULLVEHICLE;
}
}
else
{
c = _mapmgr->CreateCreature((*i)->entry);
if(c == NULLCREATURE)
continue;
c->SetMapId(_mapmgr->GetMapId());
c->SetInstanceID(_mapmgr->GetInstanceID());
c->m_loadedFromDB = true;
if(c->Load(*i, _mapmgr->iInstanceMode, _mapmgr->GetMapInfo()))
{
if(!c->CanAddToWorld())
{
c->Destruct();
c = NULLCREATURE;
continue;
}
c->PushToWorld(_mapmgr);
}
else
{
c->Destruct();
c = NULLCREATURE;
}
}
}
}
if(sp->GOSpawns.size())//got GOs
{
GameObject* go;
for(GOSpawnList::iterator i = sp->GOSpawns.begin(); i != sp->GOSpawns.end(); i++)
{
go = _mapmgr->CreateGameObject((*i)->entry);
if(go == NULL)
continue;
if(go->Load(*i))
{
go->PushToWorld(_mapmgr);
CALL_GO_SCRIPT_EVENT(go, OnSpawn)();
}
else
{
go->Destruct();
go = NULLOBJ;
}
}
}
}