Jump to content

Maxxie

Members
  • Posts

    59
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Maxxie

  1. You're right, I'm sorry it should be placed in HandleAddPctModifierAuraProc not HandleDummyAuraProc.

    I didn't update to latest repo so on my server it works with HandleDummyAuraProc, if you updated you should use HandleAddPctModifierAuraProc.

  2. I'm sorry, I didn't mean to discredit your fix or your skill in any way, but as you stated "MaNGOS is an educational project" so I wanted to show you another way to fix this which I _think_ is simpler. Anyway to explain this better:

    Unit::HandleDummyAuraProc is not triggered just by dummy auras, it is triggered by all of these auras (not sure all of them, i might have added a couple in my repo):

    SPELL_AURA_IGNORE_REQUIREMENTS

    SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN

    SPELL_AURA_MANA_SHIELD

    SPELL_AURA_OBS_MOD_MANA

    SPELL_AURA_ADD_PCT_MODIFIER (this one is the one that is used to trigger the serendipity removal)

    SPELL_AURA_DUMMY

    EDIT: To make it work you have to edit spell_proc_event:

    INSERT INTO spell_proc_event
      (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`)
    VALUES
      (63735, 0, 6, 4608, 0, 0, 0, 0, 0, 100, 0);
    

    EDIT2: Swiftmend is handled there because it has to modify m_healing which can't be done from proc, so I think it should be ok.

  3. I think this should be handled in Unit::HandleDummyAuraProc

    In the SpellIconID switch of SPELLFAMILY_PRIEST:

    case 2900:
    {
       RemoveAurasDueToSpell(triggeredByAura->GetId());
       return true;
    }
    

    and then just adapt sql part in spell_proc_event

    (Sorry for being so vague, but i can't make a diff right now :P)

  4. Hi there, there is a simpler way to fix this.

    You should first see how it works currently. Looking at wowhead you can see that the triggering part of spell 47422 is already there, so all you should do is just tell mangos when it should trigger. To do this you'll have to look in the mangos database in the table spell_proc_event looking for the entry of Everlasting Affliction (Rank 1) and edit it so it triggers when you cast Shadow Bolt or Drain Soul.

    To do this you need to modify SpellFamilyMask0 from 8 to 16393 (which you obtain by adding SpellFamilyFlags0 value of the spells you need, in this case 1 from Shadow Bolt and 16384 from Drain Soul).

    The other effect of the spell does not seem to work correctly because it uses aura SPELL_AURA_ADD_FLAT_MODIFIER instead of SPELL_AURA_ADD_PCT_MODIFIER so damage is increased by 5 instead of 5%.

    Hope everything is clear :P

  5. Your update has a typo:

    @@ -109,6 +110,10 @@ MapManager::_createBaseMap(uint32 id)

    }

    i_maps[id] = m;

    }

    + int num_threads(sWorld.getConfig(CONFIG_UINT32_NUMTHREADS));

    + // Start mtmaps if needed.

    + if(num_threads > 0 && m_updater.activate(num_threads) == -1)

    + abort();

    ASSERT(m != NULL);

    return m;

    This code should be in MapManager::Initialize instad of MapManager::_createBaseMap.

    This crashes mangos when creating a map after the first because DelayExecutor is already active so abort() is called.

  6. Probably spell system does not check for spellcategory in items when adding cooldowns, so since PvP Trinket has no category but instead it is stored in item_template its cooldown is not triggered.

    What I would do to handle this is to check for spellcategory in all items the player has in the inventory in Player::AddSpellAndCategoryCooldowns...

    I'll test if this is the case and write a patch as soon as I get my pc back.

  7. rev.9483

    YTDB latest

    Scriptdev2 Latest

    Looks like since rev.9483 my players lose items in game, for example they buy a item at champion's hall, and if the server crashes or they logout , item disapear.

    It's a little bit anoying bug.

    Anyone with the same problems?

    I once had this problem, it was caused by latency (i guess) that caused mangos to find duplicate item guids when it had to save characters to the db. Try to check the database error log, maybe it's the same issue...

  8. Maybe right flag is AURA_INTERRUPT_FLAG_CAST = 0x00000800, // 11 removed by casting spells

    Look at these spells:

    http://www.wowhead.com/?spell=38157 (Overseer Disguise) has AuraInterruptFlags = 0x9801

    http://www.wowhead.com/?spell=3680 (Lesser Invisibility Potion) has AuraInterruptFlags = 0x13C03

    http://www.wowhead.com/?spell=32612 (Mage Invisibility) has AuraInterruptFlags = 0x3C07

    All are removable by casting any spells on offy. By AND-ing flags we get 0x1801.

    http://www.wowhead.com/?spell=52842 also has flags 0x1001, but not removable by spell casting. So we get 0x800

    Seems you're right, many invisibility/stealth/disguise buffs have this interrupt flag. Even imp's phase shift has this...

  9. I don't think that's the problem since WorldSession::GetPlayerName() is defined like this:

    char const* WorldSession::GetPlayerName() const
    {
       return GetPlayer() ? GetPlayer()->GetName() : "<none>";
    }

    If I'm not mistaken the problem is the m_session that is null for the console.

    Try this:

    diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp
    index b2529ae..2263f7d 100644
    --- a/src/game/Level1.cpp
    +++ b/src/game/Level1.cpp
    @@ -128,7 +128,7 @@ bool ChatHandler::HandleAnnounceCommand(const char* args)
        if(!*args)
            return false;
    
    -    sWorld.SendWorldText(LANG_SYSTEMMESSAGE,args);
    +    sWorld.SendWorldText(LANG_SYSTEMMESSAGE, m_session ? m_session->GetPlayerName() : "CONSOLE", args);
        return true;
    }

  10. probably you have to send packet to player to do this, what is more weird because all of that kind of spells are client-side handled. I checked all spells with stance = 1 and none was usfull in this case so we have to realise it somehow server-side

    What i meant is that maybe Spell::SendCastResult needs an exception for SPELL_FAILED_ONLY_SHAPESHIFT (like there is for SPELL_FAILED_REQUIRES_SPELL_FOCUS and others) , that tells the client which stance the player should be in, so that the error can be shown correctly.

  11. you are unable to cast dash without cat from ("Must be in Cat Form" pops up). If you change shapeshift from cat to any other - aura remains but speed bonus is lost, recasting Cat Form restore incresed speed bonus.

    Updated version:

    http://pastebin.com/f17181541

    The only thing i don't understand is how to make SPELL_FAILED_ONLY_SHAPESHIFT tell the client the required form, ofc if there's any way to do this. (right now cast isn't allowed but error isnt' shown).

  12. Could you update this patch for last revision of 3.2.2?:rolleyes:

    Here it is: http://pastebin.com/f12b3ef55

    Maybe it's not the best solution, but it solves the problem pointed out by Tassader.

    I'm working with 9133, but this patch doesn't remove buff when player remove cat form

    As i understand this, on offy this spell can be cast while not in cat form and isn't removed if you shapeshift out of it but speed bonus is applied only if you are in cat form.

  13. any news?? In 9036 still bug :(

    EDIT: The shadoform is the problem. Without shadowform all it correct.

    It's not just the shadowform, the problem comes with all auras that modify damage (for example shadow weaving or even berserking in battlegrounds).

    The only way I've seen to be effective to make these spells deal the right damage is to not calculate damage in Unit::SpellDamageBonus for those spells which damage is calculated from dots damage.

  14. What bug does the patch fix? What features does the patch add?

    It allows Priest spell Renew to stack with Priest's version of Gift of the Naaru.

    For which repository revision was the patch created?

    9183

    diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
    index 74cc8f1..a791b7c 100644
    --- a/src/game/SpellMgr.cpp
    +++ b/src/game/SpellMgr.cpp
    @@ -1559,6 +1559,10 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
                    if ((spellInfo_1->Id == 47585 && spellInfo_2->Id == 60069) ||
                        (spellInfo_2->Id == 47585 && spellInfo_1->Id == 60069))
                        return false;
    +                // Renew and Gift of the Naaru
    +                if ((spellInfo_1->SpellFamilyFlags & UI64LIT(0x40) && spellInfo_2->SpellIconID == 329) ||
    +                    (spellInfo_2->SpellFamilyFlags & UI64LIT(0x40) && spellInfo_1->SpellIconID == 329))
    +                    return false;
                }
                break;
            case SPELLFAMILY_DRUID:
    

×
×
  • 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