本文整理汇总了C++中SetResistance函数的典型用法代码示例。如果您正苦于以下问题:C++ SetResistance函数的具体用法?C++ SetResistance怎么用?C++ SetResistance使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了SetResistance函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetTotalAuraModValue
void Guardian::UpdateResistances(uint32 school)
{
if (school > SPELL_SCHOOL_NORMAL)
{
float value = GetTotalAuraModValue(UnitMods(UNIT_MOD_RESISTANCE_START + school));
// hunter and warlock pets gain 40% of owner's resistance
if (IsPet())
value += float(CalculatePct(m_owner->GetResistance(SpellSchools(school)), 40));
SetResistance(SpellSchools(school), int32(value));
}
else
UpdateArmor();
}
示例2: GetTotalAuraModValue
void Guardian::UpdateResistances(uint32 school)
{
if (school > SPELL_SCHOOL_NORMAL)
{
float value = GetTotalAuraModValue(UnitMods(UNIT_MOD_RESISTANCE_START + school));
if (isPet())
value += float(CalculatePct(m_owner->GetResistance(SpellSchools(school)), 40));
if (m_owner->HasAura(37386, 0)) // Void Star Talisman
value += 130;
SetResistance(SpellSchools(school), int32(value));
}
else
UpdateArmor();
}
示例3: GetTotalAuraModValue
void Pet::UpdateResistances(uint32 school)
{
if (school > SPELL_SCHOOL_NORMAL)
{
float value = GetTotalAuraModValue(UnitMods(UNIT_MOD_RESISTANCE_START + school));
Unit *owner = GetOwner();
// chained, use original owner instead
if (owner && owner->GetTypeId() == TYPEID_UNIT && ((Creature*)owner)->GetEntry() == GetEntry())
if (Unit *creator = GetCreator())
owner = creator;
// hunter and warlock pets gain 40% of owner's resistance
if (owner && (getPetType() == HUNTER_PET || (getPetType() == SUMMON_PET && owner->getClass() == CLASS_WARLOCK)))
value += float(owner->GetResistance(SpellSchools(school))) * 0.4f;
SetResistance(SpellSchools(school), int32(value));
}
else
UpdateArmor();
}
示例4: SetUInt32Value
bool Creature::CreateFromProto(uint32 guidlow,uint32 Entry)
{
Object::_Create(guidlow, HIGHGUID_UNIT);
m_DBTableGuid = guidlow;
SetUInt32Value(OBJECT_FIELD_ENTRY,Entry);
CreatureInfo const *cinfo = objmgr.GetCreatureTemplate(Entry);
if(!cinfo)
{
sLog.outError("Error: creature entry %u does not exist.",Entry);
return false;
}
uint32 rank = isPet()? 0 : cinfo->rank;
float damagemod = _GetDamageMod(rank);;
uint32 display_id = cinfo->randomDisplayID();
SetUInt32Value(UNIT_FIELD_DISPLAYID,display_id );
SetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID,display_id );
SetUInt32Value(UNIT_FIELD_BYTES_2,1); // let creature used equiped weapon in fight
SetName(GetCreatureInfo()->Name);
SelectLevel(cinfo);
SetUInt32Value(UNIT_FIELD_FACTIONTEMPLATE,cinfo->faction);
SetUInt32Value(UNIT_NPC_FLAGS,cinfo->npcflag);
SetFloatValue(UNIT_FIELD_MINDAMAGE,cinfo->mindmg * damagemod);
SetFloatValue(UNIT_FIELD_MAXDAMAGE,cinfo->maxdmg * damagemod);
SetFloatValue(UNIT_FIELD_MINRANGEDDAMAGE,cinfo->minrangedmg * damagemod);
SetFloatValue(UNIT_FIELD_MAXRANGEDDAMAGE,cinfo->maxrangedmg * damagemod);
SetAttackTime(BASE_ATTACK, cinfo->baseattacktime);
SetAttackTime(RANGED_ATTACK,cinfo->rangeattacktime);
SetUInt32Value(UNIT_FIELD_FLAGS,cinfo->Flags);
SetUInt32Value(UNIT_DYNAMIC_FLAGS,cinfo->dynamicflags);
SetArmor(cinfo->armor);
SetResistance(SPELL_SCHOOL_HOLY,cinfo->resistance1);
SetResistance(SPELL_SCHOOL_FIRE,cinfo->resistance2);
SetResistance(SPELL_SCHOOL_NATURE,cinfo->resistance3);
SetResistance(SPELL_SCHOOL_FROST,cinfo->resistance4);
SetResistance(SPELL_SCHOOL_SHADOW,cinfo->resistance5);
SetResistance(SPELL_SCHOOL_ARCANE,cinfo->resistance6);
//this is probably wrong
SetUInt32Value( UNIT_VIRTUAL_ITEM_SLOT_DISPLAY, cinfo->equipmodel[0]);
SetUInt32Value( UNIT_VIRTUAL_ITEM_INFO , cinfo->equipinfo[0]);
SetUInt32Value( UNIT_VIRTUAL_ITEM_INFO + 1, cinfo->equipslot[0]);
SetUInt32Value( UNIT_VIRTUAL_ITEM_SLOT_DISPLAY+1, cinfo->equipmodel[1]);
SetUInt32Value( UNIT_VIRTUAL_ITEM_INFO + 2, cinfo->equipinfo[1]);
SetUInt32Value( UNIT_VIRTUAL_ITEM_INFO + 2 + 1, cinfo->equipslot[1]);
SetUInt32Value( UNIT_VIRTUAL_ITEM_SLOT_DISPLAY+2, cinfo->equipmodel[2]);
SetUInt32Value( UNIT_VIRTUAL_ITEM_INFO + 4, cinfo->equipinfo[2]);
SetUInt32Value( UNIT_VIRTUAL_ITEM_INFO + 4 + 1, cinfo->equipslot[2]);
SetFloatValue(OBJECT_FIELD_SCALE_X, cinfo->size);
SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS,cinfo->bounding_radius);
SetFloatValue(UNIT_FIELD_COMBATREACH,cinfo->combat_reach );
FactionTemplateEntry const* factionTemplate = sFactionTemplateStore.LookupEntry(cinfo->faction);
if (factionTemplate)
{
FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionTemplate->faction);
if (factionEntry)
if (cinfo->civilian != 1 && (factionEntry->team == ALLIANCE || factionEntry->team == HORDE))
SetPvP(true);
} else
sLog.outErrorDb("Error: invalid faction (%u) for creature (GUIDLow: %u Entry: %u)", cinfo->faction, GetGUIDLow(),Entry);
if (cinfo->mount != 0)
Mount(cinfo->mount);
m_spells[0] = cinfo->spell1;
m_spells[1] = cinfo->spell2;
m_spells[2] = cinfo->spell3;
m_spells[3] = cinfo->spell4;
SetSpeed(MOVE_WALK, cinfo->speed );
SetSpeed(MOVE_RUN, cinfo->speed );
SetSpeed(MOVE_WALKBACK, cinfo->speed );
SetSpeed(MOVE_SWIM, cinfo->speed);
SetSpeed(MOVE_SWIMBACK, cinfo->speed);
if(cinfo->MovementType < MAX_DB_MOTION_TYPE)
m_defaultMovementType = MovementGeneratorType(cinfo->MovementType);
else
{
m_defaultMovementType = IDLE_MOTION_TYPE;
sLog.outErrorDb("Creature template %u have wrong movement generator type value %u, ignore and set to IDLE.",Entry,cinfo->MovementType);
}
//.........这里部分代码省略.........