本文整理汇总了C++中PlayerPointer::GetInstanceID方法的典型用法代码示例。如果您正苦于以下问题:C++ PlayerPointer::GetInstanceID方法的具体用法?C++ PlayerPointer::GetInstanceID怎么用?C++ PlayerPointer::GetInstanceID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PlayerPointer
的用法示例。
在下文中一共展示了PlayerPointer::GetInstanceID方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnActivate
void OnActivate(PlayerPointer pPlayer)
{
if (pPlayer->getClass() == 6)
{
if(pPlayer->GetMapId() == 609){
pPlayer->SafeTeleport(609, pPlayer->GetInstanceID(), 2354.496826f, -5661.948730f, 389.454865f, 0.365210f);
}else{
pPlayer->SafeTeleport(0, pPlayer->GetInstanceID(), 2354.496826f, -5661.948730f, 389.454865f, 0.365210f);
};
}
}
示例2: GossipSelectOption
void UlduarTeleporter::GossipSelectOption(ObjectPointer pObject, PlayerPointer Plr, uint32 Id, uint32 IntId, const char *Code)
{
switch(IntId)
{
case 0:
Plr->SafeTeleport(603, Plr->GetInstanceID(), -735.864075f, -93.616364f, 429.841797f, 0.079723f);
break;
case 1:
Plr->SafeTeleport(603, Plr->GetInstanceID(), 130.710297f, -35.272095f, 409.804901f, 6.276515f);
break;
case 2:
Plr->SafeTeleport(603, Plr->GetInstanceID(), 539.894897f, -11.009894f, 409.804749f, 0.021830f);
break;
};
};
示例3: AIUpdate
void AIUpdate()
{
PlayerPointer plr = _gameobject->GetMapMgr()->GetInterface()->GetPlayerNearestCoords( _gameobject->GetPositionX(), _gameobject->GetPositionY(), _gameobject->GetPositionZ() );
if( !plr )
return;
if( _gameobject->CalcDistance( _gameobject, plr ) <= 1.5f && plr->GetMapId() == 609)
{
plr->SafeTeleport( 609, 4298, 2397.57, -5636.03, 377.05, 0.57 );
}
else if( _gameobject->CalcDistance( _gameobject, plr ) <= 1.5f && plr->GetMapId() == 0)
{
plr->SafeTeleport( 0, plr->GetInstanceID(), 2395.233154f, -5637.875488f, 377.086884f, 0.520721f);
}
}
示例4: PlayerLeftGroup
void InstanceMgr::PlayerLeftGroup(Group * pGroup, PlayerPointer pPlayer)
{
// does this group own any instances? we have to kick the player out of those instances.
Instance * in;
InstanceMap::iterator itr;
InstanceMap * instancemap;
WorldPacket data(SMSG_RAID_GROUP_ONLY, 8);
uint32 i;
m_mapLock.Acquire();
for(i = 0; i < NUM_MAPS; ++i)
{
instancemap = m_instances[i];
if(instancemap)
{
for(itr = instancemap->begin(); itr != instancemap->end();)
{
in = itr->second;
++itr;
if(PlayerOwnsInstance(in,pPlayer))
{
// better make sure we're actually in that instance.. :P
if(!pPlayer->raidgrouponlysent && pPlayer->GetInstanceID() == (int32)in->m_instanceId)
{
data << uint32(60000) << uint32(1);
pPlayer->GetSession()->SendPacket(&data);
pPlayer->raidgrouponlysent=true;
sEventMgr.AddEvent(pPlayer, &Player::EjectFromInstance, EVENT_PLAYER_EJECT_FROM_INSTANCE, 60000, 1, EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT);
m_mapLock.Release();
return;
}
}
}
}
}
m_mapLock.Release();
}
示例5: HandleReviveStringcommand
bool ChatHandler::HandleReviveStringcommand(const char* args, WorldSession* m_session)
{
PlayerPointer plr = objmgr.GetPlayer(args, false);
if(!plr)
{
RedSystemMessage(m_session, "Could not find player %s.", args);
return true;
}
if(plr->isDead())
{
if(plr->GetInstanceID() == m_session->GetPlayer()->GetInstanceID())
plr->RemoteRevive();
else
sEventMgr.AddEvent(plr, &Player::RemoteRevive, EVENT_PLAYER_REST, 1, 1,0);
GreenSystemMessage(m_session, "Revived player %s.", args);
} else {
GreenSystemMessage(m_session, "Player %s is not dead.", args);
}
return true;
}
示例6: HandleRecallPortPlayerCommand
bool ChatHandler::HandleRecallPortPlayerCommand(const char* args, WorldSession * m_session)
{
char location[255];
char player[255];
if(sscanf(args, "%s %s", player, location) != 2)
return false;
PlayerPointer plr = objmgr.GetPlayer(player, false);
if(!plr) return false;
QueryResult *result = WorldDatabase.Query( "SELECT * FROM recall ORDER BY name" );
if(!result)
return false;
do
{
Field *fields = result->Fetch();
const char * locname = fields[1].GetString();
uint32 locmap = fields[2].GetUInt32();
float x = fields[3].GetFloat();
float y = fields[4].GetFloat();
float z = fields[5].GetFloat();
if (strnicmp((char*)location,locname,strlen(args))==0)
{
if(plr->GetInstanceID() != m_session->GetPlayer()->GetInstanceID())
sEventMgr.AddEvent(plr, &Player::EventSafeTeleport, locmap, uint32(0), LocationVector(x, y, z), EVENT_PLAYER_TELEPORT, 1, 1,EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT);
else
plr->SafeTeleport(locmap, 0, LocationVector(x, y, z));
delete result;
return true;
}
}while (result->NextRow());
delete result;
return false;
}
示例7: HookHandleRepop
bool ArathiBasin::HookHandleRepop(PlayerPointer plr)
{
/* our uber leet ab graveyard handler */
LocationVector dest( NoBaseGYLocations[plr->m_bgTeam][0], NoBaseGYLocations[plr->m_bgTeam][1], NoBaseGYLocations[plr->m_bgTeam][2], 0.0f );
float current_distance = 999999.0f;
float dist;
for(uint32 i = 0; i < AB_NUM_CONTROL_POINTS; ++i)
{
if(m_basesOwnedBy[i] == (int32)plr->m_bgTeam)
{
dist = plr->GetPositionV()->Distance2DSq(GraveyardLocations[i][0], GraveyardLocations[i][1]);
if(dist < current_distance)
{
current_distance = dist;
dest.ChangeCoords(GraveyardLocations[i][0], GraveyardLocations[i][1], GraveyardLocations[i][2]);
}
}
}
// port us there.
plr->SafeTeleport(plr->GetMapId(),plr->GetInstanceID(),dest);
return true;
}
示例8: 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;
}