Jump to content

virusav

Members
  • Posts

    84
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by virusav

  1. Description: "When you gain mana from Drain Mana or Life Tap spells, your summoned demon gains 100% of the mana you gain.". Life Tap works, and Drain Mana - no. Patch (2 versions): 1. diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 3975e1e..42ba154 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6879,6 +6879,10 @@ void Aura::PeriodicTick() if(gain_amount) { int32 gain = pCaster->ModifyPower(power, gain_amount); + if (pCaster->GetTypeId() == TYPEID_PLAYER && spellProto->Id == 5138 && pCaster->HasSpell(30326)) + if (Unit* pPet = pCaster->GetPet()) + int32 temp = pPet->ModifyPower(power, gain_amount); + target->AddThreat(pCaster, float(gain) * 0.5f, pInfo.critical, GetSpellSchoolMask(spellProto), spellProto); } break; 2. diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 320fef2..f6fa41c 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6881,6 +6881,9 @@ void Aura::PeriodicTick() if(gain_amount) { int32 gain = pCaster->ModifyPower(power, gain_amount); + if (pCaster->GetTypeId() == TYPEID_PLAYER && spellProto->Id == 5138 && pCaster->HasSpell(30326)) + pCaster->CastCustomSpell(pCaster, 32554, &gain_amount, NULL, NULL, true, NULL); + target->AddThreat(pCaster, float(gain) * 0.5f, pInfo.critical, GetSpellSchoolMask(spellProto), spellProto); } break;
  2. Spell 51343 should not be cast on players and their pets, only to hostile NPC: diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index c59658e..6ae146a 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1789,15 +1789,32 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList& break; case TARGET_AREAEFFECT_INSTANT: { - SpellTargets targetB = SPELL_TARGETS_AOE_DAMAGE; - // Select friendly targets for positive effect - if (IsPositiveEffect(m_spellInfo->Id, effIndex)) - targetB = SPELL_TARGETS_FRIENDLY; + // Razorpine's Fear Effect + if (m_spellInfo->Id == 51343) + { + targetUnitMap.clear(); + std::list<Creature*> tempTargetUnitMap; + MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(m_caster, m_caster, radius); + MaNGOS::CreatureListSearcher<MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck> searcher(tempTargetUnitMap, u_check); + Cell::VisitAllObjects(m_caster, searcher, radius); + for(std::list<Creature*>::iterator iter = tempTargetUnitMap.begin(); iter != tempTargetUnitMap.end(); ++iter) + { + if (!((*iter)->IsPet() && (*iter)->GetOwner()->GetTypeId() == TYPEID_PLAYER)) + targetUnitMap.push_back((*iter)); + } + } + else + { + SpellTargets targetB = SPELL_TARGETS_AOE_DAMAGE; + // Select friendly targets for positive effect + if (IsPositiveEffect(m_spellInfo->Id, effIndex)) + targetB = SPELL_TARGETS_FRIENDLY; - FillAreaTargets(targetUnitMap, m_caster->GetPositionX(), m_caster->GetPositionY(), radius, PUSH_DEST_CENTER, targetB); + FillAreaTargets(targetUnitMap, m_caster->GetPositionX(), m_caster->GetPositionY(), radius, PUSH_DEST_CENTER, targetB); - // exclude caster - targetUnitMap.remove(m_caster); + // exclude caster + targetUnitMap.remove(m_caster); + } break; } case TARGET_AREAEFFECT_CUSTOM:
  3. Condition should consider an item in the bank, otherwise you may get some an item, for example, tabard. diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 42570d6..6e84d2c 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -8095,7 +8095,7 @@ bool PlayerCondition::Meets(Player const * player) const return false; } case CONDITION_NOITEM: - return !player->HasItemCount(value1, value2); + return !player->HasItemCount(value1, value2, true); case CONDITION_SPELL: { switch(value2)
  4. On the quest http://www.wowhead.com/quest=11989 after using an item spell 50141 need to hang aura 50001: diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 936da2d..d4f03bd 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2021,6 +2021,10 @@ void Aura::HandleAuraDummy(bool apply, bool Real) case 48025: // Headless Horseman's Mount Spell::SelectMountByAreaAndSkill(target, 51621, 48024, 51617, 48023, 0); return; + case 50141: // Blood Oath + // Blood Oath + target->CastSpell(target, 50001, true, NULL, this); + return; case 62061: // Festive Holiday Mount if (target->HasAuraType(SPELL_AURA_MOUNTED)) // Reindeer Transformation diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 4f8441a..7c3cfec 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -1753,6 +1753,11 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons (spellInfo_2->Id == 23170 && spellInfo_1->Id == 23171) ) return false; + // Blood Oath and Blood Oath + if ((spellInfo_1->Id == 50141 && spellInfo_2->Id == 50001) || + (spellInfo_2->Id == 50141 && spellInfo_1->Id == 50001)) + return false; + // Cool Down (See PeriodicAuraTick()) if ((spellInfo_1->Id == 52441 && spellInfo_2->Id == 52443) || (spellInfo_2->Id == 52441 && spellInfo_1->Id == 52443)) All the rest of the quest is realized in the database.
  5. No. If a player did not take and did not perform a certain quest, then it will be shown a hint where to find the NPC. If a player has taken or has already passed the quest, then the hint disappears. I would do all the conditions of quests reduced to one, and in the field value2 would indicate the status of the quest. But it's been a division, so wrote a patch according to the current separation conditions.
  6. In some of the gossip menu should appear when the quest is not on hand and never gave up, for example, the ancestors of the Lunar festival: diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index c8681f9..98efb7c 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -8108,6 +8108,12 @@ bool PlayerCondition::Meets(Player const * player) const } return false; } + case CONDITION_QUEST_NONE: + { + if (!player->IsCurrentQuest(value1) && !player->GetQuestRewardStatus(value1)) + return true; + return false; + } default: return false; } @@ -8219,6 +8225,7 @@ bool PlayerCondition::IsValid(ConditionType condition, uint32 value1, uint32 val case CONDITION_QUESTREWARDED: case CONDITION_QUESTTAKEN: case CONDITION_QUESTAVAILABLE: + case CONDITION_QUEST_NONE: { Quest const *Quest = sObjectMgr.GetQuestTemplate(value1); if (!Quest) diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h index a3e5e65..83bd582 100644 --- a/src/game/ObjectMgr.h +++ b/src/game/ObjectMgr.h @@ -607,9 +607,10 @@ enum ConditionType CONDITION_QUESTAVAILABLE = 19, // quest_id 0 for case when loot/gossip possible only if player can start quest CONDITION_ACHIEVEMENT = 20, // ach_id 0, 1 (0: has achievement, 1: hasn't achievement) for player CONDITION_ACHIEVEMENT_REALM = 21, // ach_id 0, 1 (0: has achievement, 1: hasn't achievement) for server + CONDITION_QUEST_NONE = 22 // quest_id 0 (quest did not take and not rewarded) }; -#define MAX_CONDITION 22 // maximum value in ConditionType enum +#define MAX_CONDITION 23 // maximum value in ConditionType enum struct PlayerCondition {
  7. Now in the patch are 2 main spells, can add others, so use a switch for the possible addition of other spells.
  8. In 8149 and 8150 quests need to use an item, whose effect is to cast spells, depending on the player's race: diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index e6065b3..4f55ab1 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -5550,6 +5550,41 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx) unitTarget->RemoveSpellsCausingAura(SPELL_AURA_MOD_DECREASE_SPEED); return; } + case 24194: // Uther's Tribute + case 24195: // Grom's Tribute + { + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) + return; + + uint8 race = unitTarget->getRace(); + uint32 spellId = 0; + switch(m_spellInfo->Id) + { + case 24194: + switch(race) + { + case RACE_HUMAN: spellId = 24105; break; + case RACE_DWARF: spellId = 24107; break; + case RACE_NIGHTELF: spellId = 24108; break; + case RACE_GNOME: spellId = 24106; break; + case RACE_DRAENEI: spellId = 69533; break; + } + break; + case 24195: + switch(race) + { + case RACE_ORC: spellId = 24104; break; + case RACE_UNDEAD_PLAYER: spellId = 24103; break; + case RACE_TAUREN: spellId = 24102; break; + case RACE_TROLL: spellId = 24101; break; + case RACE_BLOODELF: spellId = 69530; break; + } + break; + } + if (spellId) + unitTarget->CastSpell(unitTarget, spellId, true); + return; + } case 24590: // Brittle Armor - need remove one 24575 Brittle Armor aura unitTarget->RemoveAuraHolderFromStack(24575); return;
  9. Maybe: UPDATE `spell_proc_event` SET `procex`=0x00002043 WHERE `entry`=58872; In this version, the talent is triggered when the block and melee attack weapons and melee attack spells.
  10. I do not mind, would solve the problem.
  11. The table `spell_scripts` this can not be realized. And write a message NoFantasy not because he has this option disabled.
  12. The table `spell_scripts` this can not be realized. And write a message NoFantasy not because he has this option disabled.
  13. There is a spell 50001, which has the effect SPELL_EFFECT_SCRIPT_EFFECT, which lies in the fact that the player must say randomly one of 3 phrases. To date, this kernel can not be realized because the codes from the database will not be accepted into the kernel (and in which table should be placed texts - the question). A script SD2 also can not be realized, as not to assign that script. I asked Laise and VladimirMangos about where should such sales, but they could not answer this question. Maybe it should allow external scripts, such as SD2, describe the effects of spells, if this can be done in the kernel? Are there any solutions to this problem?
  14. Updated patch with the addition of processing spell 64976. Function SPELL_AURA_262 effect is still unknown, different spells with this effect I have found no resolution of spells in different racks.
  15. Warrior for leveling talent Warbringer (http://www.wowhead.com/spell=57499) may use the ability Charge (http://www.wowhead.com/search?q=Charge#abilities) regardless of the battle. Currently you can not use Charge during the battle. Path: diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 5e1e430..0b6fee5 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4212,7 +4212,13 @@ SpellCastResult Spell::CheckCast(bool strict) if(bg->GetStatus() == STATUS_WAIT_LEAVE) return SPELL_FAILED_DONT_REPORT; - if (m_caster->isInCombat() && IsNonCombatSpell(m_spellInfo)) + bool bNonCombatSpell = IsNonCombatSpell(m_spellInfo); + + // Warbringer + if (m_spellInfo->SpellFamilyName == SPELLFAMILY_WARRIOR && m_spellInfo->Category == 1219 && m_spellInfo->SpellIconID == 457 && (m_caster->HasAura(57499) || m_caster->HasAura(64976))) + bNonCombatSpell = false; + + if (m_caster->isInCombat() && bNonCombatSpell) return m_triggeredByAuraSpell ? SPELL_FAILED_DONT_REPORT : SPELL_FAILED_AFFECTING_COMBAT; if (m_caster->GetTypeId() == TYPEID_PLAYER && !((Player*)m_caster)->isGameMaster() &&
  16. Updated patch in connection with corrections in the original patch.
  17. Fix from YuRuY: UPDATE `creature_template` SET `modelid_2` = '0' WHERE `entry` = 17591; DELETE FROM `creature_model_info` WHERE (`modelid`=17115); INSERT INTO `creature_model_info` (`modelid`, `bounding_radius`, `combat_reach`, `gender`, `modelid_other_gender`, `modelid_alternative`, `modelid_other_team`) VALUES (17115, 0.383, 1.5, 0, 0, 0, 0);
  18. There are spells with the effect SPELL_EFFECT_SCRIPT_EFFECT, which must be cast spell, but with the goal of sex. Example: http://www.wowhead.com/spell=48762 - the main spell http://www.wowhead.com/spell=48763 - for male http://www.wowhead.com/spell=48761 - for women For the team has engaged SCRIPT_COMMAND_CAST_SPELL datalong3. The patch: http://paste2.org/p/913707. At the base: UPDATE `creature_movement_scripts` SET `datalong3` = 3 WHERE `command` = 15 AND `datalong3` = 0; UPDATE `event_scripts` SET `datalong3` = 3 WHERE `command` = 15 AND `datalong3` = 0; UPDATE `gameobject_scripts` SET `datalong3` = 3 WHERE `command` = 15 AND `datalong3` = 0; UPDATE `gossip_scripts` SET `datalong3` = 3 WHERE `command` = 15 AND `datalong3` = 0; UPDATE `quest_end_scripts` SET `datalong3` = 3 WHERE `command` = 15 AND `datalong3` = 0; UPDATE `quest_start_scripts` SET `datalong3` = 3 WHERE `command` = 15 AND `datalong3` = 0; UPDATE `spell_scripts` SET `datalong3` = 3 WHERE `command` = 15 AND `datalong3` = 0; For these spells: DELETE FROM `spell_scripts` WHERE `id` = 48762; INSERT INTO `spell_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `datalong3`) VALUES (48762, 1, 15, 48763, 0, 1), (48762, 1, 15, 48761, 0, 2);
  19. Is there a need to specify the requirements of several classes of quests, has been based upon a patch http://code.google.com/p/trinitycore/source/detail?r=6f1c4fcf4e, then the rules manually, the kernel source, so k. original patch by Trinity. At the base: ALTER TABLE `quest_template` CHANGE COLUMN `SkillOrClass` `SkillOrClassMask` mediumint (8) NOT NULL DEFAULT '0 '; UPDATE `quest_template` SET `SkillOrClassMask` =- (1 <<(-` SkillOrClassMask `-1)) WHERE` SkillOrClassMask `<0; http://paste2.org/p/956558 I checked in the game - is working. I hope that nothing is missed. Examples Quests: http://www.wowhead.com/quest=24595, put "-1104" http://www.wowhead.com/quest=24553, put "-598" similarly, for example http://www.wowhead.com/quest=13408, put "-1503" (now does not exclude DK) http://www.wowhead.com/quest=13410, put "-32" (now you can put "-6")
  20. Minor bug still occurs, though not prevented.
  21. With a patch during the transition in the form of a bear stamina increased by 35%.
  22. If you switch to bear form and return the overall level of stamina me correctly. How in the pumping of talent you can count the overall level of stamina, if the spell effect dummy?
  23. The player casts a spell on the NPC, and he responded casts a spell with the effect of creating the result of either (quest http://ru.wowhead.com/quest=24560). Patch works, compare the visual effect with the video from official server - the same. diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index d8f6aac..58b7c53 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1770,6 +1770,14 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx) m_caster->CastSpell(m_caster, spell_id, true); return; } + case 69922: // Temper Quel'Delar + { + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT) + return; + // Return Tempered Quel'Delar + unitTarget->CastSpell(m_caster, 69956, true); + return; + } } break; }
  24. Received comments on the patch, rewrote it. A small bug is still present, yet was unable to fix. http://paste2.org/p/879040
  25. Patch: http://paste2.org/p/876925 For spells 24894, 17006, 17005, 17004, 17003 were previously aura to increase stamina and attack power, but now they are not in DBC. I looked through all spells with similar effects, but no one suitable has not found. The patch is working, but there is a small bug: when pumping the talent in the form of a bear is no change of stamina. If you change the form, all will fall into place. When leveling talents in other forms or shapes out all right. Bug insignificant, but it requires changes. In the patch is a condition: if (apply & & target-> GetTypeId () == TYPEID_PLAYER & & target-> getClass () == CLASS_DRUID & & target-> m_form & & m_modifier.m_miscvalue == STAT_STAMINA) In bear form when pumping talents apply = false, it, in theory, in general, can be removed. But spells for leveling talent have the effect of increasing intelligence, and the rest - Dummy, so m_modifier.m_miscvalue == STAT_STAMINA not satisfied, because comes STAT_INTELLECT. To fix the bug must be in the study of talent in some way causing function conversion rate overall stamina or some other options. Any ideas?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use