本文整理汇总了C++中GameObjectPointer::Destructor方法的典型用法代码示例。如果您正苦于以下问题:C++ GameObjectPointer::Destructor方法的具体用法?C++ GameObjectPointer::Destructor怎么用?C++ GameObjectPointer::Destructor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameObjectPointer
的用法示例。
在下文中一共展示了GameObjectPointer::Destructor方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DropFlag
void DropFlag(PlayerPointer pPlayer, uint32 spellID)
{
if(!pPlayer || spellID != SILITHYST_SPELL)
return;
uint32 triggerID = pPlayer->GetTeam() == ALLIANCE ? ALLIANCE_RETURN : HORDE_RETURN;
// we have to use AreaTrigger.dbc here
AreaTrigger* pAreaTrigger = AreaTriggerStorage.LookupEntry(triggerID);
if(pAreaTrigger)
if(pPlayer->CalcDistance(pAreaTrigger->x, pAreaTrigger->y, pAreaTrigger->z) > 10.0f)
{
GameObjectPointer pGo = pPlayer->GetMapMgr()->GetInterface()->SpawnGameObject(SILITHYST_MOUND, pPlayer->GetPositionX(), pPlayer->GetPositionY(), pPlayer->GetPositionZ(), 0, true, 0, 0);
if(pGo == NULL)
{
pGo->Destructor();
pGo = NULLGOB;
}
};
}
示例2: 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 );
GameObjectPointer arbiter = _player->GetMapMgr() ? _player->GetMapMgr()->GetGameObject( GET_LOWGUID_PART(_player->GetUInt64Value( PLAYER_DUEL_ARBITER )) ) : NULLGOB;
if( arbiter != NULL )
{
arbiter->RemoveFromWorld( true );
arbiter->Destructor();
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;
}
示例3: HandleGODelete
bool ChatHandler::HandleGODelete(const char *args, WorldSession *m_session)
{
GameObjectPointer GObj = m_session->GetPlayer()->m_GM_SelectedGO;
if( !GObj )
{
RedSystemMessage(m_session, "No selected GameObject...");
return true;
}
if(GObj->m_spawn != 0 && GObj->m_spawn->entry == GObj->GetEntry())
{
uint32 cellx=float2int32(((_maxX-GObj->m_spawn->x)/_cellSize));
uint32 celly=float2int32(((_maxY-GObj->m_spawn->y)/_cellSize));
GObj->DeleteFromDB();
if(cellx < _sizeX && celly < _sizeY)
{
CellSpawns * c = GObj->GetMapMgr()->GetBaseMap()->GetSpawnsListAndCreate(cellx, celly);
for(GOSpawnList::iterator itr = c->GOSpawns.begin(); itr != c->GOSpawns.end(); ++itr)
{
if((*itr) == GObj->m_spawn)
{
c->GOSpawns.erase(itr);
break;
}
}
delete GObj->m_spawn;
GObj->m_spawn = NULL;
}
}
GObj->Despawn(0);
GObj->Destructor();
GObj = NULLGOB;
m_session->GetPlayer()->m_GM_SelectedGO = NULLGOB;
return true;
}
示例4: DeleteGameObject
void MapScriptInterface::DeleteGameObject(GameObjectPointer ptr)
{
ptr->Destructor();
ptr = NULLGOB;
}