Jump to content

przemratajczak

Members
  • Posts

    346
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by przemratajczak

  1. ported from TC solution of this problem

    diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp
    diff --git a/src/game/Player.cpp b/src/game/Player.cpp
    index 133cc4c..29b6ea1 100644
    --- a/src/game/Player.cpp
    +++ b/src/game/Player.cpp
    @@ -5928,20 +5928,29 @@ int16 Player::GetSkillTempBonusValue(uint32 skill) const
        return SKILL_TEMP_BONUS(GetUInt32Value(PLAYER_SKILL_BONUS_INDEX(itr->second.pos)));
    }
    
    -void Player::SendInitialActionButtons() const
    +void Player::SendActionButtons(uint32 state) const
    {
        DETAIL_LOG( "Initializing Action Buttons for '%u' spec '%u'", GetGUIDLow(), m_activeSpec);
    
        WorldPacket data(SMSG_ACTION_BUTTONS, 1+(MAX_ACTION_BUTTONS*4));
    -    data << uint8(1);                                       // talent spec amount (in packet)
    -    ActionButtonList const& currentActionButtonList = m_actionButtons[m_activeSpec];
    -    for(uint8 button = 0; button < MAX_ACTION_BUTTONS; ++button)
    +    data << uint8(state);
    +    /*
    +        state can be 0, 1, 2
    +        0 - Looks to be sent when initial action buttons get sent, however on Trinity we use 1 since 0 had some difficulties
    +        1 - Used in any SMSG_ACTION_BUTTONS packet with button data on Trinity. Only used after spec swaps on retail.
    +        2 - Clears the action bars client sided. This is sent during spec swap before unlearning and before sending the new buttons
    +    */
    +    if (state != 2)
        {
    -        ActionButtonList::const_iterator itr = currentActionButtonList.find(button);
    -        if(itr != currentActionButtonList.end() && itr->second.uState != ACTIONBUTTON_DELETED)
    -            data << uint32(itr->second.packedData);
    -        else
    -            data << uint32(0);
    +        ActionButtonList const& currentActionButtonList = m_actionButtons[m_activeSpec];
    +        for(uint8 button = 0; button < MAX_ACTION_BUTTONS; ++button)
    +        {
    +            ActionButtonList::const_iterator itr = currentActionButtonList.find(button);
    +            if(itr != currentActionButtonList.end() && itr->second.uState != ACTIONBUTTON_DELETED)
    +                data << uint32(itr->second.packedData);
    +            else
    +                data << uint32(0);
    +        }
        }
    
        GetSession()->SendPacket( &data );
    @@ -22038,6 +22047,8 @@ void Player::ActivateSpec(uint8 specNum)
        UnsummonPetTemporaryIfAny();
        RemoveAllEnchantments(TEMP_ENCHANTMENT_SLOT);
    
    +    SendActionButtons(2);
    +
        ApplyGlyphs(false);
    
        // copy of new talent spec (we will use it as model for converting current tlanet state to new)
    @@ -22142,7 +22153,7 @@ void Player::ActivateSpec(uint8 specNum)
    
        ApplyGlyphs(true);
    
    -    SendInitialActionButtons();
    +    SendActionButtons(1);
    
        Powers pw = getPowerType();
        if(pw != POWER_MANA)
    diff --git a/src/game/Player.h b/src/game/Player.h
    index 404b977..944d216 100644
    --- a/src/game/Player.h
    +++ b/src/game/Player.h
    @@ -1737,7 +1737,8 @@ class MANGOS_DLL_SPEC Player : public Unit
            static bool IsActionButtonDataValid(uint8 button, uint32 action, uint8 type, Player* player, bool msg = true);
            ActionButton* addActionButton(uint8 spec, uint8 button, uint32 action, uint8 type);
            void removeActionButton(uint8 spec, uint8 button);
    -        void SendInitialActionButtons() const;
    +        void SendActionButtons(uint32 state) const;
    +        void SendInitialActionButtons() const { SendActionButtons(1); }
            ActionButton const* GetActionButton(uint8 button);
    
            PvPInfo pvpInfo;
    

    tested and seems work fine. enjoy

  2. after commenting this line

    seems working fine with that exclusion. (this in not a fix just debug output, waiting for someone to take care ;-) )

    EDIT:

    i'll try to test tommorow morning if no contraindications found. Still dunno why server is forced to remove button when read packet fails.

    EDIT2:

    now i know it is needed to cleanup icons that player dropped out of actionbar ;-)

  3. i returned to this case because problem is still valid

    my reproduce method:

    1) learn spell from talent (for example mage: blast wave)

    2) place Icon of spell in action button

    3) switch spec

    4) place another icon in the same slot (for example cold snap)

    5) logout/login - icon of cold snap vanish

    form brieff debuging when savetoDB is called at players logout server is distroying icon that no longer belongs to switched spec. But it is removing the new one (cold snap) so after login Cold Snap in spec 1 is missing.

  4. + addintonal check for Seal of command

    diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
    index 193926b..dd7b5e2 100644
    --- a/src/game/Unit.cpp
    +++ b/src/game/Unit.cpp
    @@ -8083,6 +8083,12 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
                    trigger_spell_id = 54843;
                    target = pVictim;
                }
    +            // Glyph of Seal of Command - lookup for Seal of Command
    +            else if (auraSpellInfo->Id == 54925)
    +            {
    +                if (!HasAura(20375))
    +                    return false;
    +            }
                break;
            }
    

    and seems working fine ;-)

  5. rev more make build files

    i don't know if i done something wrong?

    1) merged your branch and compiled without problems

    2) placed Lynx3d vmaps and downloaded mmaps in appropriate folders

    3) runed server and ported to naxxramas

    4) targeted first NPC

    5) typed .debug mmap path

    it shown list of 3 points and split of seconds and got crash

    Revision: * * 10027 59ecc6d1017e7c7411daa946f41f56b144be2944
    Date 5:6:2010. Time 13:6 
    //=====================================================
    *** Hardware ***
    Processor: Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
    Number Of Processors: 2
    Physical Memory: 2095532 KB (Available: 715888 KB)
    Commit Charge Limit: 2986876 KB
    
    *** Operation System ***
    Microsoft Windows XP Professional Dodatek Service Pack 3 (Version 5.1, Build 2600)
    
    //=====================================================
    Exception code: C0000005 ACCESS_VIOLATION
    Fault address:  0094AF20 01:00549F20 D:\\Server 3.3.3a\\mangosd.exe
    
    Registers:
    EAX:00000000
    EBX:74A6A7A0
    ECX:709EC580
    EDX:0A2521A8
    ESI:0A25F820
    EDI:0093FEA0
    CS:EIP:001B:0094AF20
    SS:ESP:0023:0A24CCDC  EBP:0A24CE20
    DS:0023  ES:0023  FS:003B  GS:0000
    Flags:00010202
    
    Call stack:
    Address   Frame     Function      SourceFile
    0094AF20  00000000  dtNavMesh::findStraightPath+20
    008833E1  00000000  ChatHandler::HandleDebugMoveMapCommand+3E1
    0059CA5C  00000000  ChatHandler::ExecuteCommandInTable+2AC
    0059C8C8  00000000  ChatHandler::ExecuteCommandInTable+118
    0059D17B  00000000  ChatHandler::ParseCommands+18B
    0090977F  00000000  WorldSession::HandleMessagechatOpcode+54F
    00633B70  00000000  WorldSession::Update+120
    006449F3  00000000  World::UpdateSessions+C3
    00642F6E  00000000  World::Update+3DE
    004568BE  00000000  WorldRunnable::run+8E
    0093FEB9  00000000  ACE_Based::Thread::ThreadTask+19
    002F1B84  00000000  __WSAFDIsSet+FFFFFFFFFFFCCB4C
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C80B713  00000000  GetModuleFileNameA+1B4
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C90E4F4  00000000  KiFastSystemCallRet+0
    7C802542  00000000  WaitForSingleObject+12
    002A9C04  00000000  __WSAFDIsSet+FFFFFFFFFFF84BCC
    003164AA  00000000  __WSAFDIsSet+FFFFFFFFFFFF1472
    0031266F  00000000  __WSAFDIsSet+FFFFFFFFFFFED637
    0066CF3A  00000000  WorldSocketMgr::Wait+4A
    747E3C44  00000000  0000:00000000 
    747E3C44  00000000  0000:00000000 
    6C696146  00000000  
    

  6. MaNGOS 10020

    UDB 391

    SD2 1703

    Bug:

    Maybe this is not a bug but not implemented feature, as i read in few sources Taunt effect should be affected by diminishing rules. Lack of this mechanic is realy compromising PvE encounters :(

    source:

    http://forums.worldofwarcraft.com/thread.html?topicId=15673097654&sid=1&pageNo=4#70 << blue post #70

    http://forums.worldofwarcraft.com/thread.html?topicId=16474261803&postId=164724195767&sid=1#1

    http://forums.worldofwarcraft.com/thread.html?topicId=22748799930&sid=1

    http://forums.worldofwarcraft.com/thread.html?topicId=15673097654&sid=1

  7. BUMP.

    Anyone have any idea about this? :S

    probably because

               pCaster->ProcDamageAndSpell(m_target, procAttacker, procVictim, PROC_EX_NORMAL_HIT, pdamage, BASE_ATTACK, GetSpellProto());
    
               pCaster->DealDamage(m_target, pdamage, &cleanDamage, DOT, GetSpellSchoolMask(GetSpellProto()), GetSpellProto(), true);
    
               // Drain Soul (chance soul shard)
               if (pCaster->GetTypeId() == TYPEID_PLAYER && m_spellProto->SpellFamilyName == SPELLFAMILY_WARLOCK && m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000004000))
               {
                   // Only from non-grey units
                   if (roll_chance_i(10) &&                    // 1-2 from drain with final and without glyph, 0-1 from damage
                       ((Player*)pCaster)->isHonorOrXPTarget(m_target) &&
                       (m_target->GetTypeId() != TYPEID_UNIT || ((Player*)pCaster)->isAllowedToLoot((Creature*)m_target)))
                   {
                       pCaster->CastSpell(pCaster, 43836, true, NULL, this);
                   }
    

    if unfortunatelly you kill your victim using drain soul at unit death core attempts to destroy aura which is under processing - bacause of soulshard part (at least i think it could be cause) try

    http://github.com/Wowka321/altermang/commit/3cca8aa53c8ccb22704fc35dd963ae393cec7ada

    didn't tested yet

  8. some variabletype mismatch warnings shown by VC90

    diff --git a/src/shared/vmap/MapTree.cpp b/src/shared/vmap/MapTree.cpp
    index 00923bd..8c77ee1 100644
    --- a/src/shared/vmap/MapTree.cpp
    +++ b/src/shared/vmap/MapTree.cpp
    @@ -317,7 +317,7 @@ namespace VMAP
            for (loadedSpawnMap::iterator i = iLoadedSpawns.begin(); i != iLoadedSpawns.end(); ++i)
            {
                iTreeValues[i->first].setUnloaded();
    -            for (int refCount = 0; refCount < i->second; ++refCount)
    +            for (uint32 refCount = 0; refCount < i->second; ++refCount)
                    vm->releaseModelInstance(iTreeValues[i->first].name);
            }
            iLoadedSpawns.clear();
    diff --git a/src/shared/vmap/VMapManager2.cpp b/src/shared/vmap/VMapManager2.cpp
    index c4c13fe..216caa4 100644
    --- a/src/shared/vmap/VMapManager2.cpp
    +++ b/src/shared/vmap/VMapManager2.cpp
    @@ -56,7 +56,7 @@ namespace VMAP
        Vector3 VMapManager2::convertPositionToInternalRep(float x, float y, float z) const
        {
            Vector3 pos;
    -        const float mid = 0.5 * 64.0 * 533.33333333;
    +        const float mid = float(0.5 * 64.0 * 533.33333333);
            pos.x = mid - x;
            pos.y = mid - y;
            pos.z = z;
    @@ -69,7 +69,7 @@ namespace VMAP
        Vector3 VMapManager2::convertPositionToMangosRep(float x, float y, float z) const
        {
            Vector3 pos;
    -        const float mid = 0.5 * 64.0 * 533.33333333;
    +        const float mid = float(0.5 * 64.0 * 533.33333333);
            pos.x = mid - x;
            pos.y = mid - y;
            pos.z = z;
    

    and one more not solved by me

    2>..\\..\\src\\shared\\vmap\\WorldModel.cpp(156) : warning C4554: '&' : check operator precedence for possible error; use parentheses to clarify precedence
    

  9. vmap assembler warnings in VC90

    1>------ Build started: Project: vmapExtractor3, Configuration: Release Win32 ------
    1>Compiling...
    1>wmo.cpp
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(32) : warning C4244: 'initializing' : conversion from 'libmpq__off_t' to 'unsigned int', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(39) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\string.h(166) : see declaration of 'strtok'
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(47) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\string.h(166) : see declaration of 'strtok'
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(70) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(71) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>..\\..\\vmapextract\\wmo.cpp(446) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\stdio.h(366) : see declaration of 'sprintf'
    1>..\\..\\vmapextract\\wmo.cpp(448) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\stdio.h(237) : see declaration of 'fopen'
    1>wdtfile.cpp
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(32) : warning C4244: 'initializing' : conversion from 'libmpq__off_t' to 'unsigned int', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(70) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(71) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>vmapexport.cpp
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(32) : warning C4244: 'initializing' : conversion from 'libmpq__off_t' to 'unsigned int', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(70) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(71) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>..\\..\\vmapextract\\vmapexport.cpp(483) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
    1>mpq_libmpq.cpp
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(32) : warning C4244: 'initializing' : conversion from 'libmpq__off_t' to 'unsigned int', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(70) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(71) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>..\\..\\vmapextract\\mpq_libmpq.cpp(65) : warning C4244: 'initializing' : conversion from 'libmpq__off_t' to 'unsigned int', possible loss of data
    1>..\\..\\vmapextract\\mpq_libmpq.cpp(81) : warning C4244: 'initializing' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>..\\..\\vmapextract\\mpq_libmpq.cpp(83) : warning C4244: '=' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>model.cpp
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(32) : warning C4244: 'initializing' : conversion from 'libmpq__off_t' to 'unsigned int', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(39) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\string.h(166) : see declaration of 'strtok'
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(47) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\string.h(166) : see declaration of 'strtok'
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(70) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(71) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>..\\..\\vmapextract\\model.cpp(55) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\stdio.h(237) : see declaration of 'fopen'
    1>..\\..\\vmapextract\\model.cpp(137) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\stdio.h(366) : see declaration of 'sprintf'
    1>..\\..\\vmapextract\\model.cpp(139) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\stdio.h(237) : see declaration of 'fopen'
    1>dbcfile.cpp
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(32) : warning C4244: 'initializing' : conversion from 'libmpq__off_t' to 'unsigned int', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(39) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\string.h(166) : see declaration of 'strtok'
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(47) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>        D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\include\\string.h(166) : see declaration of 'strtok'
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(70) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(71) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>adtfile.cpp
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(32) : warning C4244: 'initializing' : conversion from 'libmpq__off_t' to 'unsigned int', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(70) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>e:\\work\\contrib\\vmap_extractor_v2\\vmapextract\\mpq_libmpq04.h(71) : warning C4244: 'return' : conversion from 'libmpq__off_t' to 'size_t', possible loss of data
    1>Linking...
    1>Generating code
    1>Finished generating code
    1>Embedding manifest...
    1>Build log was saved at "file://e:\\work\\contrib\\vmap_extractor_v2\\win\\bin\\vmapExtractor3__Win32_Release\\BuildLog.htm"
    1>vmapExtractor3 - 0 error(s), 36 warning(s)
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    

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