本文整理汇总了C++中CreatureObject::isInRange方法的典型用法代码示例。如果您正苦于以下问题:C++ CreatureObject::isInRange方法的具体用法?C++ CreatureObject::isInRange怎么用?C++ CreatureObject::isInRange使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CreatureObject
的用法示例。
在下文中一共展示了CreatureObject::isInRange方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getHighestThreatCreature
CreatureObject* ThreatMap::getHighestThreatCreature() {
Locker locker(&lockMutex);
ManagedReference<CreatureObject*> currentThreat = this->currentThreat.get();
if(currentThreat != NULL && !currentThreat->isDead() && !currentThreat->isIncapacitated()
&& !currentThreat->isDestroyed() && !cooldownTimerMap.isPast("doEvaluation"))
return currentThreat;
threatMatrix.clear();
for (int i = 0; i < size(); ++i) {
ThreatMapEntry* entry = &elementAt(i).getValue();
CreatureObject* creature = elementAt(i).getKey();
ManagedReference<CreatureObject*> selfStrong = cast<CreatureObject*>(self.get().get());
if (!creature->isDead() && !creature->isIncapacitated() && creature->isInRange(selfStrong, 128.f) && creature->isAttackableBy(selfStrong))
threatMatrix.add(creature, entry);
}
this->currentThreat = threatMatrix.getLargestThreat();
cooldownTimerMap.updateToCurrentAndAddMili("doEvaluation", ThreatMap::EVALUATIONCOOLDOWN);
return this->currentThreat.get().get();
}
示例2: getGroupHarvestModifier
float GroupObjectImplementation::getGroupHarvestModifier(CreatureObject* player) {
String skillNovice = "outdoors_ranger_novice";
String skillMaster = "outdoors_ranger_master";
float modifier = 1.2f;
for(int i = 0; i < groupMembers.size(); ++i) {
Reference<SceneObject*> scno = getGroupMember(i);
if(scno->isPlayerCreature()) {
CreatureObject* groupMember = cast<CreatureObject*>( scno.get());
if(groupMember == player)
continue;
if(groupMember->hasSkill(skillNovice)) {
if(groupMember->isInRange(player, 64.0f)) {
if(groupMember->hasSkill(skillMaster)) {
modifier = 1.4f;
break;
}
modifier = 1.3f;
}
}
}
}
return modifier;
}
示例3: handleSocialInternalMessage
void ChatManagerImplementation::handleSocialInternalMessage(CreatureObject* sender, const UnicodeString& arguments) {
if (sender->isPlayerCreature()) {
ManagedReference<PlayerObject*> senderGhost = sender->getPlayerObject();
if (senderGhost == NULL)
return;
if (senderGhost->isMuted()) {
String reason = senderGhost->getMutedReason();
if (reason != "")
sender->sendSystemMessage("Your chat abilities are currently disabled by Customer Support for '" + reason + "'.");
else
sender->sendSystemMessage("Your chat abilities are currently disabled by Customer Support.");
return;
}
}
Zone* zone = sender->getZone();
if (zone == NULL)
return;
StringTokenizer tokenizer(arguments.toString());
uint64 targetid;
uint32 emoteid, unkint, unkint2;
try {
targetid = tokenizer.getLongToken();
emoteid = tokenizer.getIntToken();
unkint = tokenizer.getIntToken();
unkint2 = tokenizer.getIntToken();
} catch (const Exception& e) {
return;
}
//bool readlock = !zone->isLockedByCurrentThread();
bool showtext = true;
if (unkint2 == 0)
showtext = false;
String firstName;
if (sender->isPlayerCreature())
firstName = (cast<CreatureObject*>(sender))->getFirstName().toLowerCase();
CloseObjectsVector* vec = (CloseObjectsVector*) sender->getCloseObjects();
SortedVector<QuadTreeEntry* > closeEntryObjects(200, 50);
if (vec != NULL) {
vec->safeCopyTo(closeEntryObjects);
} else {
sender->info("Null closeobjects vector in ChatManager::handleSocialInternalMessage", true);
zone->getInRangeObjects(sender->getWorldPositionX(), sender->getWorldPositionX(), 128, &closeEntryObjects, true);
}
float range = defaultSpatialChatDistance;
for (int i = 0; i < closeEntryObjects.size(); ++i) {
SceneObject* object = cast<SceneObject*>(closeEntryObjects.get(i));
if (object->isPlayerCreature()) {
CreatureObject* creature = cast<CreatureObject*>(object);
Reference<PlayerObject*> ghost = creature->getSlottedObject("ghost").castTo<PlayerObject*>();
if (ghost == NULL)
continue;
if (!ghost->isIgnoring(firstName) && creature->isInRange(sender, range)) {
Emote* emsg = new Emote(creature, sender, targetid, emoteid, showtext);
creature->sendMessage(emsg);
}
}
}
}