本文整理汇总了C++中Monster::doMonsterSetCombatValues方法的典型用法代码示例。如果您正苦于以下问题:C++ Monster::doMonsterSetCombatValues方法的具体用法?C++ Monster::doMonsterSetCombatValues怎么用?C++ Monster::doMonsterSetCombatValues使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Monster
的用法示例。
在下文中一共展示了Monster::doMonsterSetCombatValues方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: spawnMonster
bool Spawn::spawnMonster(uint32_t spawnId, MonsterType* mType, const Position& pos, Direction dir, bool startup /*= false*/)
{
int32_t nHealth = mType->health,nMaxHealth = mType->healthMax, nExp = mType->experience, nDef = mType->defense, nArm = mType->armor;
int32_t monsterLevel = random_range(mType->minLevel, mType->maxLevel);
if (monsterLevel != 0)
{
monsterLevel = monsterLevel;
} else {
monsterLevel = random_range(5,15);
}
mType->health = (uint64_t)std::ceil(mType->health * monsterLevel / 8);
mType->healthMax = (uint64_t)std::ceil(mType->healthMax * monsterLevel / 8);
mType->experience = (uint64_t)std::ceil(mType->experience * monsterLevel / 8);
mType->defense = (uint64_t)std::ceil(mType->defense * monsterLevel / 8);
mType->armor = (uint64_t)std::ceil(mType->armor * monsterLevel / 8);
Monster* monster = Monster::createMonster(mType);
monster->doMonsterSetCombatValues(monsterLevel);
monster->doMonsterSetLevel(monsterLevel);
mType->health = nHealth;
mType->healthMax = nMaxHealth;
mType->experience = nExp;
mType->defense = nDef;
mType->armor = nArm;
if(!monster)
return false;
if(startup)
{
//No need to send out events to the surrounding since there is no one out there to listen!
if(!g_game.internalPlaceCreature(monster, pos, false, true))
{
delete monster;
return false;
}
}
else if(!g_game.placeCreature(monster, pos, false, true))
{
delete monster;
return false;
}
monster->setSpawn(this);
monster->setMasterPosition(pos, radius);
monster->setDirection(dir);
monster->addRef();
spawnedMap.insert(SpawnedPair(spawnId, monster));
spawnMap[spawnId].lastSpawn = OTSYS_TIME();
return true;
}