Jump to content

yavi

Members
  • Posts

    27
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by yavi

  1. Also, i'm expiriencing combat log hangups (no combat log) during raids. Maybe related?
  2. AFAIR in master also the 10% exp-buff from heirloom items (chest, weap) didn't stack. Dunno if it was fixed, because i'm using an self-created ugly hack for it.
  3. What are you trying to do exactly? If it's mechanic - unlearn/learn racials on an existing combo (orc warrior for example). It it's looks - .debug update 66/67 with some BElfish displayid. (Blood Elf Illusion in UDB is good for that)
  4. Change that I posted fixes it, tested. Not a DB problem - source problem.
  5. if(skip_trainers.count(entry) == 0) { if (skip_trainers.find(entry) == skip_trainers.end()) { sLog.outErrorDb("Table `npc_trainer` have data for not creature template (Entry: %u) without trainer flag, ignore", entry); skip_trainers.insert(entry); } continue; } Schouldn't it be: if(!(cInfo->npcflag & UNIT_NPC_FLAG_TRAINER)) { if (skip_trainers.count(entry) == 0) { sLog.outErrorDb("Table `npc_trainer` have data for not creature template (Entry: %u) without trainer flag, ignore", entry); skip_trainers.insert(entry); } continue; } The set is for skipping double error msg only.
  6. Ok... duration/periodictime = x x - tick count newduration=duration*haste now... (newduration)/(periodictime*haste) = (duration*haste)/(periodictime*haste) = duration/periodictime = x So... why exactly do some magical calculactions instead of multiplying both duration and periodictime by haste?
  7. Bump, any comments? Would like to see it in the core/ improve it if something is wrong/ know about it if all wrong. Pretty important for trade skill balance, i think - without it being an alchemist sucks.
  8. * What bug does the patch fix? What features does the patch add? Implement spell 49018 and ranks * For which repository revision was the patch created? 9071 * Who has been writing this patch? Please include either forum user names or email addresses. yavi diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 4bf98ea..f186f3b 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6684,6 +6684,17 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu // NOTE: Trigger here on every attack and spell cast return false; } + if (dummySpell->SpellIconId == 1939) + { + uint32 deathCoilId = 49892; + SpellChainMapNext const& nextMap = sSpellMgr.GetSpellChainNext(); + for(SpellChainMapNext::const_iterator itr = nextMap.lower_bound(49892); itr != nextMap.upper_bound(49892); ++itr) + { + if(this->HasSpell(itr->second))deathCoilId = itr->second; + } + triggered_spell_id = deathCoilId; + break; + } // Mark of Blood if (dummySpell->Id == 49005) {
  9. * What bug does the patch fix? What features does the patch add? Implement spell 53042 * For which repository revision was the patch created? 9071 * Who has been writing this patch? Please include either forum user names or email addresses. yavi diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 0b6737a..1503512 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -2568,6 +2568,20 @@ void Spell::EffectApplyAura(uint32 i) return; } + if(caster->GetTypeId() == TYPEID_PLAYER && Aur->GetSpellProto()->SpellFamilyName == SPELLFAMILY_POTION + && caster->HasAura(53042)) + { + SpellSpecific spellSpec = GetSpellSpecific(Aur->GetSpellProto()->Id); + if(spellSpec == SPELL_BATTLE_ELIXIR || spellSpec == SPELL_GUARDIAN_ELIXIR || spellSpec == SPELL_FLASK_ELIXIR) + { + if(caster->HasSpell(Aur->GetSpellProto()->EffectTriggerSpell[0])) + { + duration *= 2.0f; + Aur->GetModifier()->m_amount *= 1.3f; + } + } + } + if(duration != Aur->GetAuraMaxDuration()) { Aur->SetAuraMaxDuration(duration); 1.3f amount is arbitrary - absolutely no idea where do blue logo guys take it from/store it. Also, maybe there is a better place for the code than AddAura.
  10. * What bug does the patch fix? What features does the patch add? Implement spell 28089 dummy effect Implement spell 28059,28062, 28084,28085 misc properties * For which repository revision was the patch created? 9058 * Who has been writing this patch? Please include either forum user names or email addresses. yavi, 28089 ported from Trinity with modification. diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 1f3c91d..49d59c9 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2150,6 +2150,16 @@ void Aura::TriggerSpell() target->CastCustomSpell(target, trigger_spell_id, &m_modifier.m_amount, NULL, NULL, true, NULL, this); return; } + //Positive Charge + case 28059: + if (Unit* caster = GetCaster()) + caster->RemoveAurasDueToSpell(29660); + break; + //Negative Charge + case 28084: + if (Unit* caster = GetCaster()) + caster->RemoveAurasDueToSpell(29659); + break; // Ground Slam case 33525: target->CastSpell(target, trigger_spell_id, true, NULL, this, casterGUID); @@ -2381,6 +2391,12 @@ void Aura::HandleAuraDummy(bool apply, bool Real) switch(GetId()) { + case 28059: // Positive Charge + m_target->RemoveAurasDueToSpell(29660); + return; + case 28084: // Negative Charge + m_target->RemoveAurasDueToSpell(29659); + return; case 28169: // Mutating Injection { // Mutagen Explosion diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 3cc731a..0b6737a 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -358,6 +358,24 @@ void Spell::EffectSchoolDMG(uint32 effect_idx) } // Intercept (warrior spell trigger) case 20253: + case 28062:// Positive Charge + if(!unitTarget->IsWithinDist(m_caster,8.0f,false)) damage=0; + if(unitTarget->HasAura(28059)) + { + damage = 0; + if(m_caster != unitTarget) + m_caster->CastSpell(m_caster, 29660, true,0,m_caster->GetAura(28059,0)); + } + break; + case 28085: // Negative Charge + if(!unitTarget->IsWithinDist(m_caster,8.0f,false)) damage=0; + if(unitTarget->HasAura(28084)) + { + damage = 0; + if(m_caster != unitTarget) + m_caster->CastSpell(m_caster, 29659, true,0,m_caster->GetAura(28084,0)); + } + break; case 61491: { damage+= uint32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.12f); @@ -1003,7 +1021,7 @@ void Spell::EffectDummy(uint32 i) } + case 28089: + if(unitTarget) + unitTarget->CastSpell(unitTarget,roll_chance_i(50) ? 28059 : 28084, true, NULL, NULL, 0); + break; case 29200: // Purify Helboar Meat { Uses 2 hacks: o Reduced spell distance due to lack of hitbox support/to small hitbox of boss_thadius. Full range would make offlike tactic unusable, and boss almost impossible to kill. o Cross-use buffs 29659 and 29660, because they replace their parent aura, and I have no knowledge of aura slots/stacks/etc to fix it the right way (Perhaps the reviever could do that).
  11. Why does aura 29660 replace 28084? It shouldn't... makes damage buff unimplementable. Any hints where to look or what could be wrong? Can easly by hacked by cross-using 29660 with 28059 and vice-versa, but that's ugly. Also, does mangos have any suppor for creature hitboxes, or is it always static range from point?
  12. .debug update 66 <dispid> .debug update 67 <dispid> Also, you have to disable certain checks in Save/Load Player functions - they were introduced to 'make things more correct' and destroyed a great RP feature of model changing in the process
  13. Spell effects are loaded from DBC content. Adding custom effects would be rather hacky... you can try messing around dbc loading and/or spellcasting code.
  14. * What bug does the patch fix? What features does the patch add? Implement spell 28169 dummy effect * For which repository revision was the patch created? 9058 * Who has been writing this patch? Please include either forum user names or email addresses. yavi diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 7182269..dcc8614 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2375,6 +2375,11 @@ void Aura::HandleAuraDummy(bool apply, bool Real) switch(GetId()) { + case 28169: + { + m_target->CastSpell(m_target, 28240, true, NULL, this); + return; + } case 36730: // Flame Strike { m_target->CastSpell(m_target, 36731, true, NULL, this);
  15. Spell seems to not trigger 100% of the time (or dissipate immediately after application).
  16. Well... did a bit of research, and even when I apply the patch exactly my client refuses to allow me to charge in combat... and Fingers of Frost disappear after one spell, not two (but work as expected). Perhaps I got something stupid wrong...
  17. Kind of should... calls the Handler, handler sends packet... will look into it. I'm working on yours v6, trying to make it more generic and get rid of hardcodes/hacks. Will post the effects here if there will be any success
  18. About sending packets to client: static const AuraType auratypes[] = { SPELL_AURA_MOD_FEAR, SPELL_AURA_TRANSFORM, SPELL_AURA_WATER_WALK, SPELL_AURA_FEATHER_FALL, SPELL_AURA_HOVER, SPELL_AURA_SAFE_FALL, - SPELL_AURA_FLY, SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED, SPELL_AURA_NONE + SPELL_AURA_FLY, SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED, SPELL_AURA_IGNORE_UNIT_STATE + SPELL_AURA_NONE }; On second thought: Why not add it here, and send the packet from the handler? Also, why don't use this to send it in the handler? if(this->isPassive()) { SetAuraSlot(255); SetAuraFlags(19); SendAuraUpdate(false); } Is the exact 255 slot needed? However I think we sholud use something like SpellMod mechanic here - Aura 262,263 spells have EffectSpellClassMask set, and are similar (Allow masked, disallow masked, modify masked) PS. 263 is set implictly - allows only one spell
  19. Yes, Death and Decay still causes RP=0 at every damage tick. Can't even begin to underestand why.
  20. Mind Freeze does not have rune cost. Only Runic Power cost. I've looked at TC code and TakePower call is just in the place i put it - thus, the problem doesn't exist.
  21. Description of the bug? When a DK uses one of his runepower spells (this doesn't happen with frost strike, dunno why) like Death Coil or Icebound fortitude Runic Power drops to 0 until the next gain. For which repository revision was the patch created? 8465 Who has been writing this patch? me Fix Research with a debugger showed that it's the client interpreting Runic Power wrong. Core has different RP than client, client thinks it's 0, so doesn't allow spell cast. This is pretty much an ugly hack after some try-and-error in the subject. I don't know much about opcodes... --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2454,7 +2454,8 @@ void Spell::cast(bool skipCheck) // CAST SPELL SendSpellCooldown(); - TakePower(); + if(m_spellInfo->powerType != POWER_RUNIC_POWER) + TakePower(); TakeReagents(); // we must remove reagents before HandleEffects to allow place crafted item in same slot SendCastResult(castResult); @@ -2479,6 +2480,9 @@ void Spell::cast(bool skipCheck) handle_immediate(); } + if(m_spellInfo->powerType == POWER_RUNIC_POWER) + TakePower(); + SetExecutedCurrently(false); } @@ -3472,6 +3476,13 @@ void Spell::TakePower() Powers powerType = Powers(m_spellInfo->powerType); + //ugly hack for 0RP cost spells causing client!=server RP bug + if(m_spellInfo->powerType == POWER_RUNIC_POWER && m_powerCost==0) + { + m_caster->ModifyPower(powerType,1); + m_powerCost=1; + } + if(powerType == POWER_RUNE) { TakeRunePower(); Ok... some explanation - moving TakePower() a few lines magically removes the RP dropping to 0 problem. But... it makes client unable to show cooldowns on runes. The runes seem always active on client side. I have no idea on the effect of this change on other-energy-type users, so I if'ed it to change only Runic Power handling. Still... 0 RP cost spells (talented Mind Freeze) caused the bug, hence the ugly hack with adding 1 power and making cost = 1 --- it made it work. I know that 'fix' won't probably get accepted (at least with the hacky part), but still, it makes DK work A LOT better.
  22. Description of the bug? When a DK uses one of his runepower spells or necrosis while having runes on cooldown, he gets 'out of mana/energy' message and can't cast. (for example icebound fortitude while having frost runes on cooldown) For which repository revision was the patch created? 8465 Who has been writing this patch? me Fix CheckPower() does check rune cost even if a spell has PowerType != POWER_RUNE. Oddly, spells without rune cost still have costs in SpellRuneCost.dbc, so we get OOM message. Check Rune cost only if powerType==POWER_RUNE --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -5030,9 +5030,12 @@ SpellCastResult Spell::CheckPower() return SPELL_FAILED_UNKNOWN; } - SpellCastResult failReason = CheckRuneCost(m_spellInfo->runeCostID); - if(failReason != SPELL_CAST_OK) - return failReason; + if(m_spellInfo->powerType == POWER_RUNE) + { + SpellCastResult failReason = CheckRuneCost(m_spellInfo->runeCostID); + if(failReason != SPELL_CAST_OK) + return failReason; + } // Check power amount Powers powerType = Powers(m_spellInfo->powerType);
  23. Weird - DK spells without rune costs still have Rune costs in dbc. While TakePower() does only check m_spellInfo->powerType, checkpower() doesn't. I think we need an additional if in CheckPower, so it doesn't check runes with no cost/ runic power cost spells.
  24. Could you please include config options for fixes like Custom player models was a great mangos feature on RP servers. Much like faction interactions (raids, party, etc) or custom model skins... they all got 'fixed' lately, stripping Mangos of things that I consider to be 'better than global' (while running a relatively small RP server). I hope it isn't much work to be able to turn those fixes on/off in the configuration file... I of course can write a patch for this, but as i am not the developer of the fix, it takes quite a bit of work, or I have to revert the whole commit (sometimes loosing valuable part of it).
×
×
  • 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