本文整理汇总了C++中CreatureObject::getCreoGroup方法的典型用法代码示例。如果您正苦于以下问题:C++ CreatureObject::getCreoGroup方法的具体用法?C++ CreatureObject::getCreoGroup怎么用?C++ CreatureObject::getCreoGroup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CreatureObject
的用法示例。
在下文中一共展示了CreatureObject::getCreoGroup方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getNearestAttackingDefender
uint64 CreatureObject::getNearestAttackingDefender(void)
{
uint64 defenederId = 0;
float minLenght = FLT_MAX;
ObjectIDList::iterator it = mDefenders.begin();
while(it != mDefenders.end())
{
if((*it) != 0)
{
CreatureObject* defender = dynamic_cast<CreatureObject*>(gWorldManager->getObjectById((*it)));
if (defender && !defender->isDead() && !defender->isIncapacitated())
{
if ((defender->getCreoGroup() == CreoGroup_Player) || (defender->getCreoGroup() == CreoGroup_Creature))
{
float len = glm::distance(this->mPosition, defender->mPosition);
if (len < minLenght)
{
minLenght = len;
defenederId = (*it);
}
}
}
}
++it;
}
return defenederId;
}
示例2: handleObjectReady
void CellFactory::handleObjectReady(Object* object,DispatchClient* client)
{
InLoadingContainer* ilc = _getObject(object->getParentId());
if (! ilc) {//Crashbug fix: http://paste.swganh.org/viewp.php?id=20100627114151-8f7df7f74013af71c0d0b00bc240770d
LOG(warning) << "Could not locate InLoadingContainer for object parent id [" << object->getParentId() << "]";
return;
}
CellObject* cell = dynamic_cast<CellObject*>(ilc->mObject);
gWorldManager->addObject(object,true);
switch(object->getType())
{
case ObjType_NPC:
case ObjType_Creature:
{
CreatureObject* creature = dynamic_cast<CreatureObject*>(object);
if(creature->getCreoGroup() == CreoGroup_Shuttle)
gWorldManager->addShuttle(dynamic_cast<Shuttle*>(creature));
}
break;
case ObjType_Tangible:
{
PlayerStructureTerminal* terminal = dynamic_cast<PlayerStructureTerminal*>(object);
if(terminal)
{
terminal->setStructure(cell->getParentId());
}
}
break;
case ObjType_Building:
case ObjType_Cell:
case ObjType_DraftSchematic:
case ObjType_Structure:
case ObjType_Intangible:
case ObjType_Lair:
case ObjType_Mission:
case ObjType_None:
case ObjType_NonPersistant:
case ObjType_Player:
case ObjType_Region:
case ObjType_Waypoint:
default:
break;
}
auto permissions_objects_ = gObjectManager->GetPermissionsMap();
object->SetPermissions(permissions_objects_.find(swganh::object::DEFAULT_PERMISSION)->second.get());//CREATURE_PERMISSION
gObjectManager->LoadSlotsForObject(object);
cell->InitializeObject(object);
cell->incLoad();
//LOG(info) << "cellFactory::handleObjectReady -> cell load stuff" << object->getId() << "for " << cell->getId();
//LOG(info) << "loadcount : " << cell->getLoadCount() << " : count : " << cell->getLoad();
if(cell->getLoadCount() == cell->getLoad())
{
//LOG(info) << "cellFactory::handleObjectReady -> cell done " << cell->getId();
if(!(_removeFromObjectLoadMap(cell->getId())))
LOG(warning) << "Failed removing object from loadmap";
ilc->mOfCallback->handleObjectReady(cell,ilc->mClient);
mILCPool.free(ilc);
}
}
示例3: handleObjectReady
void CellFactory::handleObjectReady(Object* object,DispatchClient* client)
{
InLoadingContainer* ilc = _getObject(object->getParentId());
if (! ilc) {//Crashbug fix: http://paste.swganh.org/viewp.php?id=20100627114151-8f7df7f74013af71c0d0b00bc240770d
gLogger->log(LogManager::WARNING,"CellFactory::handleObjectReady could not locate ILC for objectParentId:%I64u",object->getParentId());
return;
}
CellObject* cell = dynamic_cast<CellObject*>(ilc->mObject);
gWorldManager->addObject(object,true);
switch(object->getType())
{
case ObjType_NPC:
case ObjType_Creature:
{
CreatureObject* creature = dynamic_cast<CreatureObject*>(object);
if(creature->getCreoGroup() == CreoGroup_Shuttle)
gWorldManager->addShuttle(dynamic_cast<Shuttle*>(creature));
}
break;
case ObjType_Tangible:
{
PlayerStructureTerminal* terminal = dynamic_cast<PlayerStructureTerminal*>(object);
if(terminal)
{
terminal->setStructure(cell->getParentId());
}
}
break;
case ObjType_Building:
case ObjType_Cell:
case ObjType_DraftSchematic:
case ObjType_Structure:
case ObjType_Intangible:
case ObjType_Lair:
case ObjType_Mission:
case ObjType_None:
case ObjType_NonPersistant:
case ObjType_Player:
case ObjType_Region:
case ObjType_Waypoint:
default:
break;
}
cell->addObjectSecure(object);
if(cell->getLoadCount() == cell->getObjects()->size())
{
if(!(_removeFromObjectLoadMap(cell->getId())))
gLogger->log(LogManager::DEBUG,"CellFactory: Failed removing object from loadmap");
ilc->mOfCallback->handleObjectReady(cell,ilc->mClient);
mILCPool.free(ilc);
}
}
示例4: addObject
//.........这里部分代码省略.........
mSpatialIndex->InsertRegion(key,building->mPosition.x,building->mPosition.z,building->getWidth(),building->getHeight());
}
break;
case ObjType_Tangible:
{
uint64 parentId = object->getParentId();
if(parentId == 0)
{
mSpatialIndex->InsertPoint(key,object->mPosition.x,object->mPosition.z);
}
else
{
CellObject* cell = dynamic_cast<CellObject*>(getObjectById(parentId));
if(cell)
cell->addObjectSecure(object);
else
gLogger->logMsgF("WorldManager::addObject couldn't find cell %"PRIu64"",MSG_NORMAL,parentId);
}
}
break;
// TODO: add moving creatures to qtregions
case ObjType_NPC:
case ObjType_Creature:
case ObjType_Lair:
{
CreatureObject* creature = dynamic_cast<CreatureObject*>(object);
if(creature->getCreoGroup() == CreoGroup_Shuttle)
mShuttleList.push_back(dynamic_cast<Shuttle*>(creature));
uint64 parentId = creature->getParentId();
if(parentId)
{
CellObject* cell = dynamic_cast<CellObject*>(getObjectById(parentId));
if(cell)
cell->addObjectSecure(creature);
else
gLogger->logMsgF("WorldManager::addObject: couldn't find cell %"PRIu64"",MSG_HIGH,parentId);
}
else
{
switch(creature->getCreoGroup())
{
// moving creature, add to QT
case CreoGroup_Vehicle :
{
if(QTRegion* region = mSpatialIndex->getQTRegion(creature->mPosition.x,creature->mPosition.z))
{
creature->setSubZoneId((uint32)region->getId());
region->mTree->addObject(creature);
}
else
{
gLogger->logMsg("WorldManager::addObject: could not find zone region in map for creature");
return false;
}
示例5: destroyObject
void WorldManager::destroyObject(Object* object)
{
switch(object->getType())
{
case ObjType_Player:
{
//destroys knownObjects in the destructor
PlayerObject* player = dynamic_cast<PlayerObject*>(object);
// moved most of the code to the players destructor
// onPlayerLeft event, notify scripts
string params;
params.setLength(sprintf(params.getAnsi(),"%s %s %u",getPlanetNameThis(),player->getFirstName().getAnsi(),static_cast<uint32>(mPlayerAccMap.size())));
mWorldScriptsListener.handleScriptEvent("onPlayerLeft",params);
// gLogger->logMsg("WorldManager::destroyObject: Player Client set to NULL");
delete player->getClient();
player->setClient(NULL);
player->setConnectionState(PlayerConnState_Destroying);
}
break;
case ObjType_NPC:
case ObjType_Creature:
{
CreatureObject* creature = dynamic_cast<CreatureObject*>(object);
// remove any timers we got running
removeCreatureHamToProcess(creature->getHam()->getTaskId());
// remove from cell / SI
if (!object->getParentId())
{
// Not all objects-creatures of this type are points.
if(creature->getSubZoneId())
{
if(QTRegion* region = getQTRegion(creature->getSubZoneId()))
{
creature->setSubZoneId(0);
region->mTree->removeObject(creature);
}
}
else
{
mSpatialIndex->RemovePoint(object->getId(),object->mPosition.x,object->mPosition.z);
}
}
else
{
if(CellObject* cell = dynamic_cast<CellObject*>(getObjectById(object->getParentId())))
{
cell->removeObject(object);
}
else
{
//gLogger->logMsgF("WorldManager::destroyObject: couldn't find cell %"PRIu64"",MSG_HIGH,object->getParentId());
}
}
// destroy known objects
object->destroyKnownObjects();
// if its a shuttle, remove it from the shuttle list
if(creature->getCreoGroup() == CreoGroup_Shuttle)
{
ShuttleList::iterator shuttleIt = mShuttleList.begin();
while(shuttleIt != mShuttleList.end())
{
if((*shuttleIt)->getId() == creature->getId())
{
mShuttleList.erase(shuttleIt);
break;
}
++shuttleIt;
}
}
}
break;
case ObjType_Structure:
{
// cave what do we do with player cities ??
// then the parent Id should be the region object. shouldnt it????
if(object->getSubZoneId())
{
if(QTRegion* region = getQTRegion(object->getSubZoneId()))
{
object->setSubZoneId(0);
region->mTree->removeObject(object);
}
}
else
{
mSpatialIndex->RemovePoint(object->getId(),object->mPosition.x,object->mPosition.z);
//.........这里部分代码省略.........