本文整理汇总了C++中WorldObject::GetPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ WorldObject::GetPosition方法的具体用法?C++ WorldObject::GetPosition怎么用?C++ WorldObject::GetPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorldObject
的用法示例。
在下文中一共展示了WorldObject::GetPosition方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleMmapTestArea
static bool HandleMmapTestArea(ChatHandler* handler, char const* /*args*/)
{
float radius = 40.0f;
WorldObject* object = handler->GetSession()->GetPlayer();
// Get Creatures
std::list<Creature*> creatureList;
Trinity::AnyUnitInObjectRangeCheck go_check(object, radius);
Trinity::CreatureListSearcher<Trinity::AnyUnitInObjectRangeCheck> go_search(object, creatureList, go_check);
Cell::VisitGridObjects(object, go_search, radius);
if (!creatureList.empty())
{
handler->PSendSysMessage("Found %zu Creatures.", creatureList.size());
uint32 paths = 0;
uint32 uStartTime = getMSTime();
float gx, gy, gz;
object->GetPosition(gx, gy, gz);
for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
{
PathGenerator path(*itr);
path.CalculatePath(gx, gy, gz);
++paths;
}
uint32 uPathLoadTime = getMSTimeDiff(uStartTime, getMSTime());
handler->PSendSysMessage("Generated %i paths in %i ms", paths, uPathLoadTime);
}
else
handler->PSendSysMessage("No creatures in %f yard range.", radius);
return true;
}
示例2: HandleMmapTestArea
static bool HandleMmapTestArea(ChatHandler* handler, const char* args)
{
float radius = 40.0f;
WorldObject* object = handler->GetSession()->GetPlayer();
CellCoord pair(Trinity::ComputeCellCoord(object->GetPositionX(), object->GetPositionY()) );
Cell cell(pair);
cell.SetNoCreate();
std::list<Creature*> creatureList;
Trinity::AnyUnitInObjectRangeCheck go_check(object, radius);
Trinity::CreatureListSearcher<Trinity::AnyUnitInObjectRangeCheck> go_search(object, creatureList, go_check);
TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AnyUnitInObjectRangeCheck>, GridTypeMapContainer> go_visit(go_search);
// Get Creatures
cell.Visit(pair, go_visit, *(object->GetMap()), *object, radius);
if (!creatureList.empty())
{
handler->PSendSysMessage("Found %i Creatures.", creatureList.size());
uint32 paths = 0;
uint32 uStartTime = getMSTime();
float gx, gy, gz;
object->GetPosition(gx, gy, gz);
for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
{
PathGenerator path(*itr);
path.CalculatePath(gx, gy, gz);
++paths;
}
uint32 uPathLoadTime = getMSTimeDiff(uStartTime, getMSTime());
handler->PSendSysMessage("Generated %i paths in %i ms", paths, uPathLoadTime);
}
else
handler->PSendSysMessage("No creatures in %f yard range.", radius);
return true;
}
示例3: UpdateGlobalPositionOf
// Update the global position of a passenger
void TransportBase::UpdateGlobalPositionOf(ObjectGuid const& passengerGuid, Position const& pos) const
{
WorldObject* passenger = GetOwner()->GetMap()->GetWorldObject(passengerGuid);
if (!passenger)
return;
//Position g = CalculateGlobalPositionOf(pos);
WorldLocation globalPos = GetOwner()->GetPosition();
globalPos.SetTransportPosition(pos);
if (globalPos == passenger->GetPosition())
return;
switch(passenger->GetTypeId())
{
case TYPEID_GAMEOBJECT:
case TYPEID_DYNAMICOBJECT:
m_owner->GetMap()->Relocation((GameObject*)passenger, globalPos);
break;
case TYPEID_UNIT:
m_owner->GetMap()->Relocation((Creature*)passenger, globalPos);
// If passenger is vehicle
if (((Unit*)passenger)->IsVehicle())
((Unit*)passenger)->GetVehicleKit()->UpdateGlobalPositions(true);
break;
case TYPEID_PLAYER:
m_owner->GetMap()->Relocation((Player*)passenger, globalPos);
// If passenger is vehicle
if (((Unit*)passenger)->IsVehicle())
((Unit*)passenger)->GetVehicleKit()->UpdateGlobalPositions(true);
break;
case TYPEID_CORPSE:
// TODO - add corpse relocation
default:
break;
}
}