这篇教程C++ GetExplTargetUnit函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetExplTargetUnit函数的典型用法代码示例。如果您正苦于以下问题:C++ GetExplTargetUnit函数的具体用法?C++ GetExplTargetUnit怎么用?C++ GetExplTargetUnit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetExplTargetUnit函数的23个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: CheckCast SpellCastResult CheckCast() { Unit* caster = GetCaster(); if (caster->GetTypeId() != TYPEID_PLAYER) return SPELL_FAILED_DONT_REPORT; if (!GetExplTargetUnit()) return SPELL_FAILED_BAD_IMPLICIT_TARGETS; if (Creature* target = GetExplTargetUnit()->ToCreature()) { if (target->getLevel() > caster->getLevel()) return SPELL_FAILED_HIGHLEVEL; // use SMSG_PET_TAME_FAILURE? if (!target->GetCreatureTemplate()->IsTameable(caster->ToPlayer()->CanTameExoticPets())) return SPELL_FAILED_BAD_TARGETS; if (caster->GetPetGUID()) return SPELL_FAILED_ALREADY_HAVE_SUMMON; if (caster->GetCharmGUID()) return SPELL_FAILED_ALREADY_HAVE_CHARM; } else return SPELL_FAILED_BAD_IMPLICIT_TARGETS; return SPELL_CAST_OK; }
开发者ID:AwkwardDev,项目名称:RE,代码行数:29,
示例2: HandleScript void HandleScript(SpellEffIndex /*effIndex*/) { if (Unit* caster = GetCaster()) if (Unit* target = GetExplTargetUnit()) if (caster->HasAura(SPELL_SHAMAN_PATH_OF_FLAMES_TALENT)) caster->CastSpell(target, SPELL_SHAMAN_PATH_OF_FLAMES_SPREAD, true); }
开发者ID:Lyill,项目名称:TrinityCore,代码行数:7,
示例3: CheckCast SpellCastResult CheckCast() { if (GetCaster() == GetExplTargetUnit()) return SPELL_FAILED_BAD_TARGETS; return SPELL_CAST_OK; }
开发者ID:Tithand,项目名称:TER-Server,代码行数:7,
示例4: FilterTargets void FilterTargets(std::list<WorldObject*>& targets) { if (!GetCaster()->ToPlayer()->GetGroup()) { targets.clear(); targets.push_back(GetCaster()); } else { targets.remove(GetExplTargetUnit()); std::list<Unit*> tempTargets; for (std::list<WorldObject*>::const_iterator itr = targets.begin(); itr != targets.end(); ++itr) if ((*itr)->GetTypeId() == TYPEID_PLAYER && GetCaster()->IsInRaidWith((*itr)->ToUnit())) tempTargets.push_back((*itr)->ToUnit()); if (tempTargets.empty()) { targets.clear(); FinishCast(SPELL_FAILED_DONT_REPORT); return; } Unit* target = Trinity::Containers::SelectRandomContainerElement(tempTargets); targets.clear(); targets.push_back(target); } }
开发者ID:Hlkz2,项目名称:ACoreOld,代码行数:27,
示例5: HandleBeforeCast void HandleBeforeCast() { Unit* caster = GetCaster(); Unit* target = GetExplTargetUnit(); if(caster && target) { int32 basepoints0 = 0; if(AuraEffect* aurEff = caster->GetAuraEffect(SPELL_AURA_PROC_TRIGGER_SPELL, SPELLFAMILY_WARRIOR, 243, EFFECT_0)) { basepoints0 = CalculatePct(caster->CalculateDamage(BASE_ATTACK, true, true), aurEff->GetAmount()); // Check for IconId duplicate if(aurEff->GetBase() && aurEff->GetBase()->GetId() != 84919) { // * 6 because I need the total remaind periodic amount basepoints0 += (target->GetRemainingPeriodicAmount(caster->GetGUID(), SPELL_WARRIOR_DEEP_WOUNDS_RANK_PERIODIC, SPELL_AURA_PERIODIC_DAMAGE) * 6); } } // Per tick damage if(basepoints0) { deepWoundsAmount = basepoints0 / 6; } } }
开发者ID:Faydz,项目名称:TrinityCore,代码行数:28,
示例6: FilterTargets void FilterTargets(std::list<Unit*>& unitList) { if (!GetCaster()->ToPlayer()->GetGroup()) { unitList.clear(); unitList.push_back(GetCaster()); } else { unitList.remove(GetExplTargetUnit()); std::list<Unit*> tempTargets; for (std::list<Unit*>::const_iterator itr = unitList.begin(); itr != unitList.end(); ++itr) if ((*itr)->GetTypeId() == TYPE_ID_PLAYER && GetCaster()->IsInRaidWith(*itr)) tempTargets.push_back(*itr); if (tempTargets.empty()) { unitList.clear(); FinishCast(SPELL_FAILED_DONT_REPORT); return; } Unit* target = Quantum::DataPackets::SelectRandomContainerElement(tempTargets); unitList.clear(); unitList.push_back(target); } }
开发者ID:boom8866,项目名称:new,代码行数:27,
示例7: HandleDummy void HandleDummy(SpellEffIndex /*effIndex*/) { if (Unit* target = GetExplTargetUnit()) if (target->GetTypeId() == TYPEID_UNIT && target->HasAura(SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3)) // Make sure nobody else is channeling the same target if (!target->HasAura(SPELL_SCOURGING_CRYSTAL_CONTROLLER)) GetCaster()->CastSpell(target, SPELL_SCOURGING_CRYSTAL_CONTROLLER, true, GetCastItem()); }
开发者ID:S-proyect,项目名称:Emu-S,代码行数:8,
示例8: FilterTargets void FilterTargets(std::list<WorldObject*>& targets) { targets.remove(GetExplTargetUnit()); Trinity::Containers::RandomResize(targets, [this](WorldObject* target) { return target->GetTypeId() == TYPEID_UNIT && !target->ToUnit()->HasAura(SPELL_SHAMAN_FLAME_SHOCK_MAELSTROM, GetCaster()->GetGUID()); }, 1); }
开发者ID:Lyill,项目名称:TrinityCore,代码行数:8,
示例9: CheckCast SpellCastResult CheckCast() { Player* caster = GetCaster()->ToPlayer(); if (Unit* target = GetExplTargetUnit()) if (!caster->IsFriendlyTo(target) && !caster->IsValidAttackTarget(target)) return SPELL_FAILED_BAD_TARGETS; return SPELL_CAST_OK; }
开发者ID:Stylerdk,项目名称:TrinityCore,代码行数:8,
示例10: CheckCast SpellCastResult CheckCast() { if (Unit* target = GetExplTargetUnit()) if (target->GetEntry() == NPC_LUCKY_WILHELM) return SPELL_CAST_OK; SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_MUST_TARGET_WILHELM); return SPELL_FAILED_CUSTOM_ERROR; }
开发者ID:090809,项目名称:TrinityCore,代码行数:9,
示例11: CheckCast SpellCastResult CheckCast() { Unit* caster = GetCaster(); Unit* target = GetExplTargetUnit(); if (!target || (!caster->HasAura(SPELL_PRIEST_ABSOLUTION) && caster != target && target->IsFriendlyTo(caster))) return SPELL_FAILED_BAD_TARGETS; return SPELL_CAST_OK; }
开发者ID:DSlayerMan,项目名称:ArkCORE-NG,代码行数:9,
示例12: CheckCast SpellCastResult CheckCast() { if (Battlefield* wg = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG)) if (Player* target = GetExplTargetUnit()->ToPlayer()) // check if we are in Wintergrasp at all, SotA uses same teleport spells if ((target->GetZoneId() == 4197 && target->GetTeamId() != wg->GetDefenderTeam()) || target->HasAura(SPELL_WINTERGRASP_TELEPORT_TRIGGER)) return SPELL_FAILED_BAD_TARGETS; return SPELL_CAST_OK; }
开发者ID:AvariusProject,项目名称:AvariusCore,代码行数:9,
示例13: CheckCast SpellCastResult CheckCast() { Unit* caster = GetCaster(); if (Unit* target = GetExplTargetUnit()) if (caster == target) if (target->HasAura(SPELL_PALADIN_FORBEARANCE) || target->HasAura(SPELL_PALADIN_IMMUNE_SHIELD_MARKER)) return SPELL_FAILED_TARGET_AURASTATE; return SPELL_CAST_OK; }
开发者ID:Regigicas,项目名称:TrinityCore,代码行数:10,
示例14: CheckTarget SpellCastResult CheckTarget() { if (IsVampire(GetExplTargetUnit())) { SetCustomCastResultMessage(SPELL_CUSTOM_ERROR_CANT_TARGET_VAMPIRES); return SPELL_FAILED_CUSTOM_ERROR; } return SPELL_CAST_OK; }
开发者ID:Darkelmo,项目名称:bliz,代码行数:10,
示例15: CheckRequirement SpellCastResult CheckRequirement() { if (!GetCaster()->HasAura(GetSpellInfo()->Effects[EFFECT_1].CalcValue())) return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW; // This is actually correct if (!GetExplTargetUnit()) return SPELL_FAILED_BAD_TARGETS; return SPELL_CAST_OK; }
开发者ID:H4D3S,项目名称:cataclysm,代码行数:10,
示例16: CheckCast SpellCastResult CheckCast() { Player* caster = GetCaster()->ToPlayer(); if (Unit* target = GetExplTargetUnit()) if (!caster->IsFriendlyTo(target)) { if (!caster->IsValidAttackTarget(target)) return SPELL_FAILED_BAD_TARGETS; if (!caster->isInFront(target)) return SPELL_FAILED_UNIT_NOT_INFRONT; } return SPELL_CAST_OK; }
开发者ID:AwkwardDev,项目名称:RE,代码行数:13,
示例17: CheckCast SpellCastResult CheckCast() { Unit* caster = GetCaster(); // Death Grip should not be castable while jumping/falling if (caster->HasUnitState(UNIT_STATE_JUMPING) || caster->HasUnitMovementFlag(MOVEMENTFLAG_FALLING)) return SPELL_FAILED_MOVING; // Patch 3.3.3 (2010-03-23): Minimum range has been changed to 8 yards in PvP. Unit* target = GetExplTargetUnit(); if (target && target->GetTypeId() == TYPEID_PLAYER) if (caster->GetDistance(target) < 8.f) return SPELL_FAILED_TOO_CLOSE; return SPELL_CAST_OK; }
开发者ID:DSlayerMan,项目名称:DraenorCore,代码行数:15,
示例18: CheckCast SpellCastResult CheckCast() { Unit* caster = GetCaster(); if (Unit* target = GetExplTargetUnit()) { if (!caster->IsFriendlyTo(target) && !caster->isInFront(target)) return SPELL_FAILED_UNIT_NOT_INFRONT; if (target->IsFriendlyTo(caster) && target->GetCreatureType() != CREATURE_TYPE_UNDEAD) return SPELL_FAILED_BAD_TARGETS; } else return SPELL_FAILED_BAD_TARGETS; return SPELL_CAST_OK; }
开发者ID:AlucardVoss,项目名称:Patchs,代码行数:16,
示例19: CheckCast SpellCastResult CheckCast() { Unit* caster = GetCaster(); if (caster->GetTypeId() != TYPEID_PLAYER) return SPELL_FAILED_DONT_REPORT; if (Unit* target = GetExplTargetUnit()) { if (!target->IsFriendlyTo(caster) || target->getAttackers().empty()) return SPELL_FAILED_BAD_TARGETS; } else return SPELL_FAILED_BAD_TARGETS; return SPELL_CAST_OK; }
开发者ID:Diyvol,项目名称:TrinityCore,代码行数:16,
示例20: GetCastervoid HammerOfRighteousScript::HandleBeforeHit(){ Unit* caster = GetCaster(); Unit* target = GetExplTargetUnit(); if (!caster || !target) return; Aura* hammerJustice = target->GetAura(SPELL_HAMMER_JUSTICE_STUN); // Target isn't affected by HoJ so is able to pickup the Hammer if (!hammerJustice) { caster->CastSpell(target, SPELL_HAMMER_RIGHTEOUS_P); PreventHitDamage(); }}
开发者ID:Allowed,项目名称:Strawberry335,代码行数:17,
示例21: FilterTargets void FilterTargets(std::list<Unit*>& unitList) { totalTargets = NULL; for (std::list<Unit*>::iterator itr = unitList.begin() ; itr != unitList.end(); ++itr) { Unit *target = (*itr); if (!target) continue; if (!target->IsWithinDist(GetExplTargetUnit(), 10.0f)) { unitList.remove(target); continue; } totalTargets++; } }
开发者ID:Blackn7g,项目名称:Voodoo,代码行数:18,
示例22: FilterTargets void FilterTargets(std::list<WorldObject*>& targets) { targets.remove(GetExplTargetUnit()); // The target of this spell should _not_ be in this list }
开发者ID:Nightprince,项目名称:Avalon,代码行数:4,
示例23: FilterTargets void FilterTargets(std::list<WorldObject*>& unitList) { unitList.remove(GetExplTargetUnit()); }
开发者ID:mynew3,项目名称:trinitycore-1,代码行数:4,
注:本文中的GetExplTargetUnit函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GetExt函数代码示例 C++ GetExitCodeThread函数代码示例 |