Jump to content

przemratajczak

Members
  • Posts

    346
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything 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. because you are probably castin it wrong. Key is in ImplicitTarget. For example to make Ball of Lightning propperly work you need to use CastSpell(x,y,z,spell,triggered) valid target in this case is not unit.
  3. 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 ;-)
  4. I didn;t expected that you will respond so fast at that github comment thank you
  5. 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.
  6. + 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 ;-)
  7. you've got msg about wrong slot in server.log it have also guid of player. You can simply ban him
  8. i am using this from a loooooooooooong time, tested by 600-700 testers and could't find any issue.
  9. i counted few times on variant revs mutilate dmg because of similar reports and never found issue. maybe some related talents are broken.
  10. 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
  11. why not just spawn those GOs with negative spawntimesecs (means !m_spawnedByDefault) and update event to 252? As i remember nothing more have to be done to make it working?
  12. looks like pretty important problem, why not posted in bug section?
  13. maybe try this http://github.com/Omeprazol/mangos/commit/064b6248eb0b02b8219a9396bb81261e5cf05f85 orginal author is shown i commit message
  14. 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
  15. 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
  16. http://udbforums.kicks-ass.net/index.php?topic=11854.msg61651#msg61651
  17. i hope wowka321 won't have anything against ;-) http://github.com/Wowka321/altermang/commit/ded253fc1b683bfc09022fc735c19b8432b9e7f9
  18. it is caused by players list overgrow. Wowka321r wrote small patch adjusting list size to number of players fightning BG. For me it is working ;-)
  19. yes i wondered which way will be more efficient ;-) anyway this is cosmetics I am moving now to new machine and I'll try to give some results (Htop/top -H).
  20. 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
  21. you didn't include body of those 4 new files ;-)
  22. MaNGOS 9949 (insider42 branch + mtmaps) do anyone have those weird grid crashes? http://paste2.org/p/845272
  23. 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