本文整理汇总了C++中GetCasterGUID函数的典型用法代码示例。如果您正苦于以下问题:C++ GetCasterGUID函数的具体用法?C++ GetCasterGUID怎么用?C++ GetCasterGUID使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetCasterGUID函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: ASSERT
void DynamicObject::BindToCaster() {
ASSERT(!m_caster);
m_caster = ObjectAccessor::GetUnit(*this, GetCasterGUID());
ASSERT(m_caster);
ASSERT(m_caster->GetMap() == GetMap());
m_caster->_RegisterDynObject(this);
}
开发者ID:BlueSellafield,项目名称:ArkCORE,代码行数:7,代码来源:DynamicObject.cpp
示例2: GetCasterGUID
void AreaTrigger::BindToCaster()
{
//ASSERT(!m_caster);
m_caster = ObjectAccessor::GetUnit(*this, GetCasterGUID());
//ASSERT(GetCaster());
//ASSERT(GetCaster()->GetMap() == GetMap());
if (m_caster)
m_caster->_RegisterAreaTrigger(this);
}
开发者ID:AwkwardDev,项目名称:SurgeCore-505,代码行数:9,代码来源:AreaTrigger.cpp
示例3: GetCasterGUID
void DynamicObject::BindToCaster()
{
//ASSERT(!_caster);
_caster = ObjectAccessor::GetUnit(*this, GetCasterGUID());
//ASSERT(_caster);
//ASSERT(_caster->GetMap() == GetMap());
if (_caster)
_caster->_RegisterDynObject(this);
}
开发者ID:3DViking,项目名称:MistCore,代码行数:9,代码来源:DynamicObject.cpp
示例4: HandleEffectRemove
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
uint32 spellId = GetSpellInfo()->GetFirstRankSpell()->Id;
if ((spellId == SPELL_PALADIN_SANCTIFIED_RETRIBUTION_R1 && GetTarget()->GetAuraOfRankedSpell(SPELL_PALADIN_SWIFT_RETRIBUTION_R1))
|| (spellId == SPELL_PALADIN_SWIFT_RETRIBUTION_R1 && GetTarget()->GetAuraOfRankedSpell(SPELL_PALADIN_SANCTIFIED_RETRIBUTION_R1)))
return;
GetTarget()->RemoveOwnedAura(_spellId, GetCasterGUID());
}
开发者ID:mynew3,项目名称:LordPsyanBots,代码行数:10,代码来源:spell_paladin.cpp
示例5: isVisibleForInState
bool DynamicObject::isVisibleForInState(Player const* player, WorldObject const* viewPoint, bool inVisibleList) const
{
if (!IsInWorld() || !player->IsInWorld())
return false;
if (GetCasterGUID() == player->GetGUID())
return true;
return IsWithinDistInMap(viewPoint, GetMap()->GetVisibilityDistance(const_cast<DynamicObject*>(this), const_cast<Player*>(player)) + (inVisibleList ? World::GetVisibleObjectGreyDistance() : 0.0f), false);
}
开发者ID:Blumfield,项目名称:ptc2,代码行数:10,代码来源:DynamicObject.cpp
示例6: OnApply
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (GetTarget()->GetTypeId() != TYPEID_PLAYER)
return;
oldAI = GetTarget()->GetAI();
oldAIState = GetTarget()->IsAIEnabled;
GetTarget()->SetAI(new player_overlord_brandAI(GetTarget()->ToPlayer()));
GetTarget()->GetAI()->SetGUID(GetCasterGUID());
}
开发者ID:mryanlam,项目名称:Old-TrinityCore-Project-Script.me-,代码行数:10,代码来源:boss_scourgelord_tyrannus.cpp
示例7: isVisibleForInState
bool DynamicObject::isVisibleForInState(Player const* u, WorldObject const* viewPoint, bool inVisibleList) const
{
if(!IsInWorld() || !u->IsInWorld())
return false;
// always seen by owner
if(GetCasterGUID()==u->GetGUID())
return true;
// normal case
return IsWithinDistInMap(viewPoint, GetMap()->GetVisibilityDistance() + (inVisibleList ? World::GetVisibleObjectGreyDistance() : 0.0f), false);
}
开发者ID:Nedj,项目名称:Mysteria4,代码行数:12,代码来源:DynamicObject.cpp
示例8: GetMap
void DynamicObject::Delay(int32 delaytime)
{
m_aliveDuration -= delaytime;
for(AffectedSet::iterator iter = m_affected.begin(); iter != m_affected.end(); )
{
Unit *target = GetMap()->GetUnit((*iter));
if (target)
{
SpellAuraHolder *holder = target->GetSpellAuraHolder(m_spellId, GetCasterGUID());
if (!holder)
{
++iter;
continue;
}
bool foundAura = false;
for (int32 i = m_effIndex + 1; i < MAX_EFFECT_INDEX; ++i)
{
if ((holder->GetSpellProto()->Effect[i] == SPELL_EFFECT_PERSISTENT_AREA_AURA || holder->GetSpellProto()->Effect[i] == SPELL_EFFECT_ADD_FARSIGHT) && holder->m_auras[i])
{
foundAura = true;
break;
}
}
if (foundAura)
{
++iter;
continue;
}
target->DelaySpellAuraHolder(m_spellId, delaytime, GetCasterGUID());
++iter;
}
else
m_affected.erase(iter++);
}
}
开发者ID:hddk123,项目名称:mangos,代码行数:38,代码来源:DynamicObject.cpp
示例9: OnApply
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (affected)
remove();
auto p = GetTarget()->ToPlayer();
if (!p)
return;
oldAI = p->GetAI().get();
oldAIState = GetTarget()->IsAIEnabled;
p->SetAI(new player_overlord_brandAI(p));
p->GetAI()->SetGUID(GetCasterGUID());
p->IsAIEnabled = true;
affected = p;
}
开发者ID:ForesterDev,项目名称:trinitycore-m4a,代码行数:14,代码来源:boss_scourgelord_tyrannus.cpp
示例10: CheckAreaTarget
bool CheckAreaTarget(Unit* target)
{
Unit::AuraApplicationMap& appliedAuras = target->GetAppliedAuras();
for (Unit::AuraApplicationMap::iterator itr = appliedAuras.begin(); itr != appliedAuras.end(); ++itr)
{
Aura const* aura = itr->second->GetBase();
if (aura->GetSpellInfo()->GetSpellSpecific() == SPELL_SPECIFIC_AURA && aura->GetCasterGUID() == GetCasterGUID())
{
// Not allow for Retribution Aura (prevent stacking) - Retribution Aura Overflow and Retribution Aura has same spell effects
if (GetSpellInfo()->Id == SPELL_PALADIN_SANCTIFIED_RETRIBUTION_AURA && aura->GetSpellInfo()->SpellIconID == PALADIN_ICON_ID_RETRIBUTION_AURA)
return false;
return true;
}
}
return false;
}
开发者ID:Diyvol,项目名称:TrinityCore,代码行数:17,代码来源:spell_paladin.cpp
示例11: HandleEffectRemove
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
GetTarget()->RemoveOwnedAura(SPELL_PALADIN_AURA_MASTERY_IMMUNE, GetCasterGUID());
}
开发者ID:Diyvol,项目名称:TrinityCore,代码行数:4,代码来源:spell_paladin.cpp
示例12: HandleDummy
void HandleDummy(AuraEffect const* /*aurEff*/)
{
if (AuraEffect* slowEff = GetEffect(EFFECT_0))
{
int32 newAmount = slowEff->GetAmount() - 10;
if (newAmount < -100)
newAmount = -100;
slowEff->ChangeAmount(newAmount);
if (newAmount == -100 && !GetTarget()->HasAura(SPELL_PARALYSIS))
GetTarget()->CastSpell(GetTarget(), SPELL_PARALYSIS, CastSpellExtraArgs(slowEff).SetOriginalCaster(GetCasterGUID()));
}
}
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:13,代码来源:boss_northrend_beasts.cpp
示例13: HandleRemove
void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
if (Unit* caster = GetCaster())
{
int32 amount = aurEff->GetAmount();
GetTarget()->CastCustomSpell(caster, SPELL_WARLOCK_HAUNT_HEAL, &amount, NULL, NULL, true, NULL, aurEff, GetCasterGUID());
}
}
开发者ID:InkVisible,项目名称:EscapeWoW3.3.5a,代码行数:8,代码来源:spell_warlock.cpp
示例14: HandleShareBuff
void HandleShareBuff (AuraEffect const* aurEff, AuraEffectHandleModes mode)
{
if (!GetTargetApplication())
return;
if (!GetTargetApplication()->GetBase())
return;
if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL)
{
if (Unit* target = GetTarget())
{
CustomSpellValues values;
values.AddSpellMod(SPELLVALUE_MAX_TARGETS, 2);
values.AddSpellMod(SPELLVALUE_BASE_POINT1, GetTargetApplication()->GetBase()->GetDuration());
GetTarget()->CastCustomSpell(SPELL_WRACK_JUMP, values, NULL, TRIGGERED_FULL_MASK, NULL, NULL, GetCasterGUID());
}
}
}
开发者ID:Faydz,项目名称:TrinityCore,代码行数:19,代码来源:boss_sinestra.cpp
示例15: HandleRemove
void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_ENEMY_SPELL && GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
return;
if (Unit* caster = GetCaster())
{
int32 amount = aurEff->GetAmount();
GetTarget()->CastCustomSpell(caster, WARLOCK_HAUNT_HEAL, &amount, NULL, NULL, true, NULL, aurEff, GetCasterGUID());
}
}
开发者ID:S-proyect,项目名称:Emu-S,代码行数:11,代码来源:spell_warlock.cpp
示例16: HandleDispel
void HandleDispel(DispelInfo* dispelInfo)
{
if (Unit* target = GetUnitOwner())
{
if (AuraEffect const* aurEff = GetEffect(EFFECT_1))
{
// final heal
int32 healAmount = aurEff->GetAmount();
if (Unit* caster = GetCaster())
{
healAmount = caster->SpellHealingBonusDone(target, GetSpellInfo(), healAmount, HEAL, dispelInfo->GetRemovedCharges());
healAmount = target->SpellHealingBonusTaken(caster, GetSpellInfo(), healAmount, HEAL, dispelInfo->GetRemovedCharges());
target->CastCustomSpell(target, SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, NULL, GetCasterGUID());
// restore mana
int32 returnMana = CalculatePct(caster->GetCreateMana(), GetSpellInfo()->ManaCostPercentage) * dispelInfo->GetRemovedCharges() / 2;
caster->CastCustomSpell(caster, SPELL_DRUID_LIFEBLOOM_ENERGIZE, &returnMana, NULL, NULL, true, NULL, NULL, GetCasterGUID());
return;
}
target->CastCustomSpell(target, SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, NULL, GetCasterGUID());
}
}
}
开发者ID:Hlkz2,项目名称:ACoreOld,代码行数:24,代码来源:spell_druid.cpp
示例17: AfterRemove
void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
// Final heal only on duration end
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
return;
// final heal
int32 stack = GetStackAmount();
int32 healAmount = aurEff->GetAmount();
if (Unit* caster = GetCaster())
{
healAmount = caster->SpellHealingBonusDone(GetTarget(), GetSpellInfo(), healAmount, HEAL, aurEff->GetSpellEffectInfo(), stack);
healAmount = GetTarget()->SpellHealingBonusTaken(caster, GetSpellInfo(), healAmount, HEAL, aurEff->GetSpellEffectInfo(), stack);
GetTarget()->CastCustomSpell(GetTarget(), SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, aurEff, GetCasterGUID());
// restore mana
std::vector<SpellInfo::CostData> costs = GetSpellInfo()->CalcPowerCost(caster, GetSpellInfo()->GetSchoolMask());
auto m = std::find_if(costs.begin(), costs.end(), [](SpellInfo::CostData const& cost) { return cost.Power == POWER_MANA; });
if (m != costs.end())
{
int32 returnMana = m->Amount * stack / 2;
caster->CastCustomSpell(caster, SPELL_DRUID_LIFEBLOOM_ENERGIZE, &returnMana, NULL, NULL, true, NULL, aurEff, GetCasterGUID());
}
return;
}
GetTarget()->CastCustomSpell(GetTarget(), SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, aurEff, GetCasterGUID());
}
开发者ID:beyourself,项目名称:DeathCore_6.x,代码行数:29,代码来源:spell_druid.cpp
示例18: AfterRemove
void AfterRemove(AuraEffect const* eff, AuraEffectHandleModes /*mode*/)
{
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
return;
GetTarget()->CastSpell(nullptr, SPELL_DEATHBLOOM_FINAL_DAMAGE, CastSpellExtraArgs(eff).SetOriginalCaster(GetCasterGUID()));
}
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:7,代码来源:boss_loatheb.cpp
示例19: CalculateAmount
void CalculateAmount(AuraEffect const* aurEff, int32& amount, bool& canBeRecalculated)
{
canBeRecalculated = false;
if (Unit* caster = GetCaster())
{
// +80.68% from sp bonus
float bonus = 0.8068f;
// Borrowed Time
if (AuraEffect const* borrowedTime = caster->GetDummyAuraEffect(SPELLFAMILY_PRIEST, PRIEST_ICON_ID_BORROWED_TIME, EFFECT_1))
bonus += CalculatePct(1.0f, borrowedTime->GetAmount());
bonus *= caster->SpellBaseHealingBonusDone(GetSpellInfo()->GetSchoolMask());
// Improved PW: Shield: its weird having a SPELLMOD_ALL_EFFECTS here but its blizzards doing :)
// Improved PW: Shield is only applied at the spell healing bonus because it was already applied to the base value in CalculateSpellDamage
bonus = caster->ApplyEffectModifiers(GetSpellInfo(), aurEff->GetEffIndex(), bonus);
bonus *= caster->CalculateLevelPenalty(GetSpellInfo());
amount += int32(bonus);
// Twin Disciplines
if (AuraEffect const* twinDisciplines = caster->GetAuraEffect(SPELL_AURA_ADD_PCT_MODIFIER, SPELLFAMILY_PRIEST, 0x400000, 0, 0, GetCasterGUID()))
AddPct(amount, twinDisciplines->GetAmount());
// Focused Power
amount *= caster->GetTotalAuraMultiplier(SPELL_AURA_MOD_HEALING_DONE_PERCENT);
}
}
开发者ID:Allysia1,项目名称:TrinityCore,代码行数:29,代码来源:spell_priest.cpp
示例20: HandleProc
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
{
PreventDefaultAction();
GetTarget()->CastSpell(GetTarget(), SPELL_SHAMAN_EARTH_SHIELD_HEAL, true, nullptr, aurEff, GetCasterGUID());
}
开发者ID:Lyill,项目名称:TrinityCore,代码行数:6,代码来源:spell_shaman.cpp
注:本文中的GetCasterGUID函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论