本文整理汇总了C++中PlayerPointer::GetMapId方法的典型用法代码示例。如果您正苦于以下问题:C++ PlayerPointer::GetMapId方法的具体用法?C++ PlayerPointer::GetMapId怎么用?C++ PlayerPointer::GetMapId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PlayerPointer
的用法示例。
在下文中一共展示了PlayerPointer::GetMapId方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AIUpdate
void AIUpdate()
{
PlayerPointer CurrentPlayer = objmgr.GetPlayer( mPlayerGuid );
if ( CurrentPlayer == NULLPLR )
{
RemoveAIUpdateEvent();
mPlayerGuid = 0;
return;
};
if ( CurrentPlayer->GetMapId() == 530 ) // Shattrath
{
CurrentPlayer->SafeTeleport( 530, 0, -1742.640869f, 5454.712402f, -7.928009f, 4.606363f );
}
else if ( CurrentPlayer->GetMapId() == 0 ) // Elwynn Forest
{
CurrentPlayer->SafeTeleport( 0, 0, -9569.150391f, -14.753426f, 68.051422f, 4.874008f );
}
else if ( CurrentPlayer->GetMapId() == 1 ) // Mulgore
{
CurrentPlayer->SafeTeleport( 1, 0, -1326.711914f, 86.301125f, 133.093918f, 3.510725f );
};
CurrentPlayer->SetMovement( MOVE_UNROOT, 1 );
CurrentPlayer->CastSpell( CurrentPlayer, 42867, true ); // 24742
_gameobject->SetUInt32Value(GAMEOBJECT_FLAGS,0);
mPlayerGuid = 0;
RemoveAIUpdateEvent();
};
示例2: 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);
}
}
示例3: HandleRecallAddCommand
bool ChatHandler::HandleRecallAddCommand(const char* args, WorldSession *m_session)
{
if(!*args)
return false;
QueryResult *result = WorldDatabase.Query( "SELECT name FROM recall" );
if(!result)
return false;
do
{
Field *fields = result->Fetch();
const char * locname = fields[0].GetString();
if (strncmp((char*)args,locname,strlen(locname))==0)
{
RedSystemMessage(m_session, "Name in use, please use another name for your location.");
delete result;
return true;
}
}while (result->NextRow());
delete result;
PlayerPointer plr = m_session->GetPlayer();
std::stringstream ss;
string rc_locname = string(args);
ss << "INSERT INTO recall (name, mapid, positionX, positionY, positionZ) VALUES ('"
<< WorldDatabase.EscapeString(rc_locname).c_str() << "' , "
<< plr->GetMapId() << ", "
<< plr->GetPositionX() << ", "
<< plr->GetPositionY() << ", "
<< plr->GetPositionZ() << ");";
WorldDatabase.Execute( ss.str( ).c_str( ) );
char buf[256];
snprintf((char*)buf, 256, "Added location to DB with MapID: %d, X: %f, Y: %f, Z: %f",
(unsigned int)plr->GetMapId(), plr->GetPositionX(), plr->GetPositionY(), plr->GetPositionZ());
GreenSystemMessage(m_session, buf);
sGMLog.writefromsession(m_session, "used recall add, added \"%s\" location to database.", rc_locname.c_str());
return true;
}
示例4: 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);
};
}
}
示例5: 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;
}
示例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;
}
示例7: SendMoveForTime
void TaxiPath::SendMoveForTime(PlayerPointer riding, PlayerPointer to, uint32 time)
{
if (!time)
return;
float length;
uint32 mapid = riding->GetMapId();
if( mapid == m_map1 )
length = m_length1;
else
length = m_length2;
float traveled_len = (time/(length * TAXI_TRAVEL_SPEED))*length;
uint32 len = 0;
float x = 0,y = 0,z = 0;
if (!m_pathNodes.size())
return;
std::map<uint32, TaxiPathNode*>::iterator itr;
itr = m_pathNodes.begin();
float nx;
float ny;
float nz;
bool set = false;
uint32 nodecounter = 1;
while (itr != m_pathNodes.end())
{
if( itr->second->mapid != mapid )
{
itr++;
nodecounter++;
continue;
}
if(!set)
{
nx = itr->second->x;
ny = itr->second->y;
nz = itr->second->z;
set = true;
continue;
}
len = (uint32)sqrt((itr->second->x - nx)*(itr->second->x - nx) +
(itr->second->y - ny)*(itr->second->y - ny) +
(itr->second->z - nz)*(itr->second->z - nz));
if (len >= traveled_len)
{
x = (itr->second->x - nx)*(traveled_len/len) + nx;
y = (itr->second->y - ny)*(traveled_len/len) + ny;
z = (itr->second->z - nz)*(traveled_len/len) + nz;
break;
}
else
{
traveled_len -= len;
}
nx = itr->second->x;
ny = itr->second->y;
nz = itr->second->z;
itr++;
}
if (itr == m_pathNodes.end())
return;
WorldPacket * data = new WorldPacket(SMSG_MONSTER_MOVE, 2000);
size_t pos;
*data << riding->GetNewGUID();
*data << uint8(0);
*data << riding->GetPositionX( ) << riding->GetPositionY( ) << riding->GetPositionZ( );
*data << getMSTime();
*data << uint8( 0 );
*data << uint32( MONSTER_MOVE_FLAG_FLY );
*data << uint32( uint32((length * TAXI_TRAVEL_SPEED) - time));
*data << uint32( nodecounter );
pos = data->wpos();
*data << nx << ny << nz;
while (itr != m_pathNodes.end())
{
TaxiPathNode *pn = itr->second;
if( pn->mapid != mapid )
break;
*data << pn->x << pn->y << pn->z;
++itr;
++nodecounter;
}
*(uint32*)&(data->contents()[pos]) = nodecounter;
to->delayedPackets.add(data);
/* if (!time)
return;
//.........这里部分代码省略.........
示例8: DumpStats
//.........这里部分代码省略.........
fprintf(f, " <statsummary>\n");
uint32 i;
for(i = 0; i <= RACE_DRAENEI; ++i)
{
if( race_names[i] != NULL )
fprintf(f, " <%s>%u</%s>\n", race_names[i], races[i], race_names[i]);
}
for(i = 0; i <= DRUID; ++i)
{
if( class_names[i] != NULL )
fprintf(f, " <%s>%u</%s>\n", class_names[i], classes[i], class_names[i]);
}
fprintf(f, " </statsummary>\n");
PlayerPointer plr;
uint32 t = (uint32)time(NULL);
char otime[100];
{
fprintf(f, " <instances>\n");
// need a big buffer..
static char buf[500000];
memset(buf, 0, 500000);
// Dump Instance Information
//sWorldCreator.BuildXMLStats(buf);
sInstanceMgr.BuildXMLStats(buf);
fprintf(f, buf);
fprintf(f, " </instances>\n");
}
{
// GM Information
fprintf(f, " <gms>\n");
while(!gms.empty())
{
plr = gms.front();
gms.pop_front();
if(!plr->bGMTagOn)
continue;
FillOnlineTime(t - plr->OnlineTime, otime);
fprintf(f, " <gmplr>\n");
fprintf(f, " <name>%s</name>\n", plr->GetName());
fprintf(f, " <race>%u</race>\n", plr->getRace());
fprintf(f, " <class>%u</class>\n", (unsigned int)plr->getClass());
fprintf(f, " <gender>%u</gender>\n", (unsigned int)plr->getGender());
fprintf(f, " <pvprank>%u</pvprank>\n", (unsigned int)plr->GetPVPRank());
fprintf(f, " <level>%u</level>\n", (unsigned int)plr->GetUInt32Value(UNIT_FIELD_LEVEL));
fprintf(f, " <map>%u</map>\n", (unsigned int)plr->GetMapId());
fprintf(f, " <areaid>%u</areaid>\n", (unsigned int)plr->GetAreaID());
fprintf(f, " <ontime>%s</ontime>\n", otime);
fprintf(f, " <latency>%u</latency>\n", (unsigned int)plr->GetSession()->GetLatency());
fprintf(f, " <permissions>%s</permissions>\n", plr->GetSession()->GetPermissions());
fprintf(f, " </gmplr>\n");
}
fprintf(f, " </gms>\n");
}
{
fprintf(f, " <sessions>\n");
// Dump Player Information
objmgr._playerslock.AcquireReadLock();
HM_NAMESPACE::hash_map<uint32, PlayerPointer>::const_iterator itr;
for (itr = objmgr._players.begin(); itr != objmgr._players.end(); itr++)
{
plr = itr->second;
if(itr->second->GetSession() && itr->second->IsInWorld())
{
FillOnlineTime(t - plr->OnlineTime, otime);
fprintf(f, " <plr>\n");
fprintf(f, " <name>%s</name>\n", plr->GetName());
fprintf(f, " <race>%u</race>\n", (unsigned int)plr->getRace());
fprintf(f, " <class>%u</class>\n", (unsigned int)plr->getClass());
fprintf(f, " <gender>%u</gender>\n", (unsigned int)plr->getGender());
fprintf(f, " <pvprank>%u</pvprank>\n", (unsigned int)plr->GetPVPRank());
fprintf(f, " <level>%u</level>\n", (unsigned int)plr->GetUInt32Value(UNIT_FIELD_LEVEL));
fprintf(f, " <map>%u</map>\n", (unsigned int)plr->GetMapId());
fprintf(f, " <areaid>%u</areaid>\n", (unsigned int)plr->GetAreaID());
//requested by Zdarkside for he's online map. I hope it does not scre up any parser. If so, then make a better one :P
fprintf(f, " <xpos>%f</xpos>\n", plr->GetPositionX ());
fprintf(f, " <ypos>%f</ypos>\n", plr->GetPositionY());
fprintf(f, " <ontime>%s</ontime>\n", otime);
fprintf(f, " <latency>%u</latency>\n", (unsigned int)plr->GetSession()->GetLatency());
fprintf(f, " </plr>\n");
if(plr->GetSession()->GetPermissionCount() > 0)
gms.push_back(plr);
}
}
objmgr._playerslock.ReleaseReadLock();
fprintf(f, " </sessions>\n");
}
fprintf(f, "</serverpage>\n");
fclose(f);
}