本文整理汇总了C++中CreatureObject::getLevel方法的典型用法代码示例。如果您正苦于以下问题:C++ CreatureObject::getLevel方法的具体用法?C++ CreatureObject::getLevel怎么用?C++ CreatureObject::getLevel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CreatureObject
的用法示例。
在下文中一共展示了CreatureObject::getLevel方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: calcGroupLevel
void GroupObjectImplementation::calcGroupLevel() {
int highestPlayer = 0;
groupLevel = 0;
for (int i = 0; i < getGroupSize(); i++) {
Reference<SceneObject*> member = getGroupMember(i);
if (member->isPet()) {
CreatureObject* creature = cast<CreatureObject*>(member.get());
groupLevel += creature->getLevel() / 5;
} else if (member->isPlayerCreature()) {
CreatureObject* creature = cast<CreatureObject*>(member.get());
int memberLevel = creature->getLevel();
if (memberLevel > highestPlayer) {
groupLevel += (memberLevel - highestPlayer + (highestPlayer / 5));
highestPlayer = memberLevel;
} else {
groupLevel += memberLevel / 5;
}
}
}
GroupObjectDeltaMessage6* msg = new GroupObjectDeltaMessage6(_this.getReferenceUnsafeStaticCast());
msg->updateLevel(this->groupLevel);
msg->close();
broadcastMessage(msg);
}
示例2: isAllowed
bool BuildingObject::isAllowed(CreatureObject const &who) const
{
if (who.getMasterId() != NetworkId::cms_invalid)
{
ServerObject const *master = ServerWorld::findObjectByNetworkId(who.getMasterId());
if (master && master != &who && master->asCreatureObject())
return isAllowed(*master->asCreatureObject());
}
if (!playersWithAlignedEnemyFlagsAllowed() && (Pvp::hasAnyAlignedTimedEnemyFlag(who) || Pvp::hasAnyBountyDuelEnemyFlag(who)))
return false;
if (getIsPublic())
return !CellPermissions::isOnList(m_banned.get(), who);
else
{
// allow non-player-controlled creatures in private buildings with no owner
if (!who.isPlayerControlled() && getOwnerId() == NetworkId::cms_invalid)
return true;
// allow vendor-creatures to be placed in the building
if (who.hasCondition(static_cast<int>(ServerTangibleObjectTemplate::C_vendor)))
return true;
// JU_TODO: test
#if 1
// allow non-player-controlled creatures in private buildings if the *creature* has no owner
if (!who.isPlayerControlled()
&& who.getMasterId() == NetworkId::cms_invalid
&& who.getLevel() < 10 // temp change to < 0 after testing holo item
)
{
return true;
}
#endif
// JU_TODO: end test
return CellPermissions::isOnList(m_allowed.get(), who);
}
}
示例3: calcGroupLevel
void GroupObjectImplementation::calcGroupLevel() {
groupLevel = 0;
for (int i = 0; i < getGroupSize(); i++) {
SceneObject* member = getGroupMember(i);
if (member->isCreatureObject()) {
CreatureObject* creature = cast<CreatureObject*>(member);
int currentlevel = groupLevel - getGroupSize();
int memberlevel = creature->getLevel();
if (memberlevel > currentlevel)
groupLevel = memberlevel + getGroupSize();
}
}
GroupObjectDeltaMessage6* msg = new GroupObjectDeltaMessage6(_this.get());
msg->updateLevel(this->groupLevel);
msg->close();
broadcastMessage(msg);
}