Jump to content

Dual Spec Bugged Action Bars [r9702]


Guest wow4

Recommended Posts

MaNGOS 9702 The Action Bars are bugged some times after switching specs or restarting the server there are "some" icons missing off the action bars "not all of them"

If I keep switching specs more icons will be deleted off the action bars with every switch but sometimes none will go missing why?:confused:

Link to comment
Share on other sites

it was present even when patch was under development. dunno if strictly related to dual spec. I was able to reproduce it

1) learn some talents that introduce additional spell (Blast Wave in example) and drag their icons onto bar

2) switch to 2nd spec

3) logout

4) login

5) switch to 1st spec - button with blast wave was lost

Link to comment
Share on other sites

it was present even when patch was under development. dunno if strictly related to dual spec. I was able to reproduce it

1) learn some talents that introduce additional spell (Blast Wave in example) and drag their icons onto bar

2) switch to 2nd spec

3) logout

4) login

5) switch to 1st spec - button with blast wave was lost

There are spell icons that are going missing that are NOT from talents and ones that ARE from talents and you do NOT have to log out for them to go missing/deleted if you don't switch specs they don't seem to go missing :confused:

Initializing Action Buttons for '1' spec '0'
Action Buttons for '1' spec '0' Initialized
BUTTON: 5 ACTION: 0 TYPE: 0
MISC: Remove action from button 5
Action Button '5' Removed from Player '1' for spec 0
BUTTON: 4 ACTION: 0 TYPE: 0
MISC: Remove action from button 4
Action Button '4' Removed from Player '1' for spec 0
BUTTON: 1 ACTION: 0 TYPE: 0
MISC: Remove action from button 1
Action Button '1' Removed from Player '1' for spec 0
BUTTON: 12 ACTION: 0 TYPE: 0
MISC: Remove action from button 12
BUTTON: 13 ACTION: 0 TYPE: 0
MISC: Remove action from button 13
BUTTON: 14 ACTION: 0 TYPE: 0
MISC: Remove action from button 14
BUTTON: 15 ACTION: 0 TYPE: 0
MISC: Remove action from button 15
BUTTON: 16 ACTION: 0 TYPE: 0
MISC: Remove action from button 16
BUTTON: 17 ACTION: 0 TYPE: 0
MISC: Remove action from button 17
BUTTON: 24 ACTION: 0 TYPE: 0
MISC: Remove action from button 24
BUTTON: 25 ACTION: 0 TYPE: 0
MISC: Remove action from button 25
BUTTON: 26 ACTION: 0 TYPE: 0
MISC: Remove action from button 26
BUTTON: 27 ACTION: 0 TYPE: 0
MISC: Remove action from button 27
BUTTON: 28 ACTION: 0 TYPE: 0
MISC: Remove action from button 28
BUTTON: 29 ACTION: 0 TYPE: 0
MISC: Remove action from button 29
BUTTON: 30 ACTION: 0 TYPE: 0
MISC: Remove action from button 30
BUTTON: 31 ACTION: 0 TYPE: 0
MISC: Remove action from button 31
BUTTON: 32 ACTION: 0 TYPE: 0
MISC: Remove action from button 32
BUTTON: 33 ACTION: 0 TYPE: 0
MISC: Remove action from button 33
BUTTON: 34 ACTION: 0 TYPE: 0
MISC: Remove action from button 34
BUTTON: 35 ACTION: 0 TYPE: 0
MISC: Remove action from button 35
BUTTON: 36 ACTION: 0 TYPE: 0
MISC: Remove action from button 36
BUTTON: 37 ACTION: 0 TYPE: 0
MISC: Remove action from button 37
BUTTON: 38 ACTION: 0 TYPE: 0
MISC: Remove action from button 38
BUTTON: 39 ACTION: 0 TYPE: 0
MISC: Remove action from button 39
BUTTON: 40 ACTION: 0 TYPE: 0
MISC: Remove action from button 40
BUTTON: 41 ACTION: 0 TYPE: 0
MISC: Remove action from button 41
BUTTON: 42 ACTION: 0 TYPE: 0
MISC: Remove action from button 42
BUTTON: 43 ACTION: 0 TYPE: 0
MISC: Remove action from button 43
BUTTON: 44 ACTION: 0 TYPE: 0
MISC: Remove action from button 44
BUTTON: 45 ACTION: 0 TYPE: 0
MISC: Remove action from button 45
BUTTON: 46 ACTION: 0 TYPE: 0
MISC: Remove action from button 46
BUTTON: 47 ACTION: 0 TYPE: 0
MISC: Remove action from button 47
BUTTON: 52 ACTION: 0 TYPE: 0
MISC: Remove action from button 52
BUTTON: 53 ACTION: 0 TYPE: 0
MISC: Remove action from button 53
BUTTON: 54 ACTION: 0 TYPE: 0
MISC: Remove action from button 54
BUTTON: 55 ACTION: 0 TYPE: 0
MISC: Remove action from button 55
BUTTON: 56 ACTION: 0 TYPE: 0
MISC: Remove action from button 56
BUTTON: 57 ACTION: 0 TYPE: 0
MISC: Remove action from button 57
BUTTON: 58 ACTION: 0 TYPE: 0
MISC: Remove action from button 58
BUTTON: 59 ACTION: 0 TYPE: 0
MISC: Remove action from button 59
BUTTON: 72 ACTION: 0 TYPE: 0
MISC: Remove action from button 72
BUTTON: 73 ACTION: 0 TYPE: 0
MISC: Remove action from button 73
BUTTON: 74 ACTION: 0 TYPE: 0
MISC: Remove action from button 74
BUTTON: 75 ACTION: 0 TYPE: 0
MISC: Remove action from button 75
BUTTON: 76 ACTION: 0 TYPE: 0
MISC: Remove action from button 76
BUTTON: 77 ACTION: 0 TYPE: 0
MISC: Remove action from button 77
BUTTON: 78 ACTION: 0 TYPE: 0
MISC: Remove action from button 78
BUTTON: 79 ACTION: 0 TYPE: 0
MISC: Remove action from button 79
BUTTON: 80 ACTION: 0 TYPE: 0
MISC: Remove action from button 80
BUTTON: 81 ACTION: 0 TYPE: 0
MISC: Remove action from button 81
BUTTON: 82 ACTION: 0 TYPE: 0
MISC: Remove action from button 82
BUTTON: 83 ACTION: 0 TYPE: 0
MISC: Remove action from button 83
BUTTON: 84 ACTION: 0 TYPE: 0
MISC: Remove action from button 84
BUTTON: 85 ACTION: 0 TYPE: 0
MISC: Remove action from button 85
BUTTON: 86 ACTION: 0 TYPE: 0
MISC: Remove action from button 86
BUTTON: 87 ACTION: 0 TYPE: 0
MISC: Remove action from button 87
BUTTON: 88 ACTION: 0 TYPE: 0
MISC: Remove action from button 88
BUTTON: 89 ACTION: 0 TYPE: 0
MISC: Remove action from button 89
BUTTON: 90 ACTION: 0 TYPE: 0
MISC: Remove action from button 90
BUTTON: 91 ACTION: 0 TYPE: 0
MISC: Remove action from button 91
BUTTON: 92 ACTION: 0 TYPE: 0
MISC: Remove action from button 92
BUTTON: 93 ACTION: 0 TYPE: 0
MISC: Remove action from button 93
BUTTON: 94 ACTION: 0 TYPE: 0
MISC: Remove action from button 94
BUTTON: 95 ACTION: 0 TYPE: 0
MISC: Remove action from button 95
BUTTON: 96 ACTION: 0 TYPE: 0
MISC: Remove action from button 96
BUTTON: 97 ACTION: 0 TYPE: 0
MISC: Remove action from button 97
BUTTON: 98 ACTION: 0 TYPE: 0
MISC: Remove action from button 98
BUTTON: 99 ACTION: 0 TYPE: 0
MISC: Remove action from button 99
BUTTON: 100 ACTION: 0 TYPE: 0
MISC: Remove action from button 100
BUTTON: 101 ACTION: 0 TYPE: 0
MISC: Remove action from button 101
BUTTON: 102 ACTION: 0 TYPE: 0
MISC: Remove action from button 102
BUTTON: 103 ACTION: 0 TYPE: 0
MISC: Remove action from button 103
BUTTON: 104 ACTION: 0 TYPE: 0
MISC: Remove action from button 104
BUTTON: 105 ACTION: 0 TYPE: 0
MISC: Remove action from button 105
BUTTON: 106 ACTION: 0 TYPE: 0
MISC: Remove action from button 106
BUTTON: 107 ACTION: 0 TYPE: 0
MISC: Remove action from button 107
BUTTON: 108 ACTION: 0 TYPE: 0
MISC: Remove action from button 108
BUTTON: 109 ACTION: 0 TYPE: 0
MISC: Remove action from button 109
BUTTON: 110 ACTION: 0 TYPE: 0
MISC: Remove action from button 110
BUTTON: 111 ACTION: 0 TYPE: 0
MISC: Remove action from button 111
BUTTON: 112 ACTION: 0 TYPE: 0
MISC: Remove action from button 112
BUTTON: 113 ACTION: 0 TYPE: 0
MISC: Remove action from button 113
BUTTON: 114 ACTION: 0 TYPE: 0
MISC: Remove action from button 114
BUTTON: 115 ACTION: 0 TYPE: 0
MISC: Remove action from button 115
BUTTON: 116 ACTION: 0 TYPE: 0
MISC: Remove action from button 116
BUTTON: 117 ACTION: 0 TYPE: 0
MISC: Remove action from button 117
BUTTON: 118 ACTION: 0 TYPE: 0
MISC: Remove action from button 118
BUTTON: 119 ACTION: 0 TYPE: 0
MISC: Remove action from button 119
BUTTON: 120 ACTION: 0 TYPE: 0
MISC: Remove action from button 120
BUTTON: 121 ACTION: 0 TYPE: 0
MISC: Remove action from button 121
BUTTON: 122 ACTION: 0 TYPE: 0
MISC: Remove action from button 122
BUTTON: 123 ACTION: 0 TYPE: 0
MISC: Remove action from button 123
BUTTON: 124 ACTION: 0 TYPE: 0
MISC: Remove action from button 124
BUTTON: 125 ACTION: 0 TYPE: 0
MISC: Remove action from button 125
BUTTON: 126 ACTION: 0 TYPE: 0
MISC: Remove action from button 126
BUTTON: 127 ACTION: 0 TYPE: 0
MISC: Remove action from button 127
BUTTON: 128 ACTION: 0 TYPE: 0
MISC: Remove action from button 128
BUTTON: 129 ACTION: 0 TYPE: 0
MISC: Remove action from button 129
BUTTON: 130 ACTION: 0 TYPE: 0
MISC: Remove action from button 130
BUTTON: 131 ACTION: 0 TYPE: 0
MISC: Remove action from button 131
BUTTON: 132 ACTION: 0 TYPE: 0
MISC: Remove action from button 132
BUTTON: 133 ACTION: 0 TYPE: 0
MISC: Remove action from button 133
BUTTON: 134 ACTION: 0 TYPE: 0
MISC: Remove action from button 134
BUTTON: 135 ACTION: 0 TYPE: 0
MISC: Remove action from button 135
BUTTON: 136 ACTION: 0 TYPE: 0
MISC: Remove action from button 136
BUTTON: 137 ACTION: 0 TYPE: 0
MISC: Remove action from button 137
BUTTON: 138 ACTION: 0 TYPE: 0
MISC: Remove action from button 138
BUTTON: 139 ACTION: 0 TYPE: 0
MISC: Remove action from button 139
BUTTON: 140 ACTION: 0 TYPE: 0
MISC: Remove action from button 140
BUTTON: 141 ACTION: 0 TYPE: 0
MISC: Remove action from button 141
BUTTON: 142 ACTION: 0 TYPE: 0
MISC: Remove action from button 142
BUTTON: 143 ACTION: 0 TYPE: 0
MISC: Remove action from button 143

Initializing Action Buttons for '1' spec '1'
Action Buttons for '1' spec '1' Initialized
BUTTON: 4 ACTION: 0 TYPE: 0
MISC: Remove action from button 4
Action Button '4' Removed from Player '1' for spec 1
BUTTON: 2 ACTION: 0 TYPE: 0
MISC: Remove action from button 2
Action Button '2' Removed from Player '1' for spec 1
BUTTON: 5 ACTION: 0 TYPE: 0
MISC: Remove action from button 5
Action Button '5' Removed from Player '1' for spec 1
BUTTON: 3 ACTION: 0 TYPE: 0
MISC: Remove action from button 3
Action Button '3' Removed from Player '1' for spec 1
BUTTON: 12 ACTION: 0 TYPE: 0
MISC: Remove action from button 12
BUTTON: 13 ACTION: 0 TYPE: 0
MISC: Remove action from button 13
BUTTON: 14 ACTION: 0 TYPE: 0
MISC: Remove action from button 14
BUTTON: 15 ACTION: 0 TYPE: 0
MISC: Remove action from button 15
BUTTON: 16 ACTION: 0 TYPE: 0
MISC: Remove action from button 16
BUTTON: 17 ACTION: 0 TYPE: 0
MISC: Remove action from button 17
BUTTON: 18 ACTION: 0 TYPE: 0
MISC: Remove action from button 18
BUTTON: 24 ACTION: 0 TYPE: 0
MISC: Remove action from button 24
BUTTON: 25 ACTION: 0 TYPE: 0
MISC: Remove action from button 25
BUTTON: 26 ACTION: 0 TYPE: 0
MISC: Remove action from button 26
BUTTON: 27 ACTION: 0 TYPE: 0
MISC: Remove action from button 27
BUTTON: 28 ACTION: 0 TYPE: 0
MISC: Remove action from button 28
BUTTON: 29 ACTION: 0 TYPE: 0
MISC: Remove action from button 29
BUTTON: 30 ACTION: 0 TYPE: 0
MISC: Remove action from button 30
BUTTON: 31 ACTION: 0 TYPE: 0
MISC: Remove action from button 31
BUTTON: 32 ACTION: 0 TYPE: 0
MISC: Remove action from button 32
BUTTON: 33 ACTION: 0 TYPE: 0
MISC: Remove action from button 33
BUTTON: 34 ACTION: 0 TYPE: 0
MISC: Remove action from button 34
BUTTON: 35 ACTION: 0 TYPE: 0
MISC: Remove action from button 35
BUTTON: 36 ACTION: 0 TYPE: 0
MISC: Remove action from button 36
BUTTON: 37 ACTION: 0 TYPE: 0
MISC: Remove action from button 37
BUTTON: 38 ACTION: 0 TYPE: 0
MISC: Remove action from button 38
BUTTON: 39 ACTION: 0 TYPE: 0
MISC: Remove action from button 39
BUTTON: 40 ACTION: 0 TYPE: 0
MISC: Remove action from button 40
BUTTON: 41 ACTION: 0 TYPE: 0
MISC: Remove action from button 41
BUTTON: 42 ACTION: 0 TYPE: 0
MISC: Remove action from button 42
BUTTON: 43 ACTION: 0 TYPE: 0
MISC: Remove action from button 43
BUTTON: 44 ACTION: 0 TYPE: 0
MISC: Remove action from button 44
BUTTON: 45 ACTION: 0 TYPE: 0
MISC: Remove action from button 45
BUTTON: 46 ACTION: 0 TYPE: 0
MISC: Remove action from button 46
BUTTON: 47 ACTION: 0 TYPE: 0
MISC: Remove action from button 47
BUTTON: 52 ACTION: 0 TYPE: 0
MISC: Remove action from button 52
BUTTON: 53 ACTION: 0 TYPE: 0
MISC: Remove action from button 53
BUTTON: 54 ACTION: 0 TYPE: 0
MISC: Remove action from button 54
BUTTON: 55 ACTION: 0 TYPE: 0
MISC: Remove action from button 55
BUTTON: 56 ACTION: 0 TYPE: 0
MISC: Remove action from button 56
BUTTON: 57 ACTION: 0 TYPE: 0
MISC: Remove action from button 57
BUTTON: 58 ACTION: 0 TYPE: 0
MISC: Remove action from button 58
BUTTON: 59 ACTION: 0 TYPE: 0
MISC: Remove action from button 59
BUTTON: 72 ACTION: 0 TYPE: 0
MISC: Remove action from button 72
BUTTON: 73 ACTION: 0 TYPE: 0
MISC: Remove action from button 73
BUTTON: 74 ACTION: 0 TYPE: 0
MISC: Remove action from button 74
BUTTON: 75 ACTION: 0 TYPE: 0
MISC: Remove action from button 75
BUTTON: 76 ACTION: 0 TYPE: 0
MISC: Remove action from button 76
BUTTON: 77 ACTION: 0 TYPE: 0
MISC: Remove action from button 77
BUTTON: 78 ACTION: 0 TYPE: 0
MISC: Remove action from button 78
BUTTON: 79 ACTION: 0 TYPE: 0
MISC: Remove action from button 79
BUTTON: 80 ACTION: 0 TYPE: 0
MISC: Remove action from button 80
BUTTON: 81 ACTION: 0 TYPE: 0
MISC: Remove action from button 81
BUTTON: 82 ACTION: 0 TYPE: 0
MISC: Remove action from button 82
BUTTON: 83 ACTION: 0 TYPE: 0
MISC: Remove action from button 83
BUTTON: 84 ACTION: 0 TYPE: 0
MISC: Remove action from button 84
BUTTON: 85 ACTION: 0 TYPE: 0
MISC: Remove action from button 85
BUTTON: 86 ACTION: 0 TYPE: 0
MISC: Remove action from button 86
BUTTON: 87 ACTION: 0 TYPE: 0
MISC: Remove action from button 87
BUTTON: 88 ACTION: 0 TYPE: 0
MISC: Remove action from button 88
BUTTON: 89 ACTION: 0 TYPE: 0
MISC: Remove action from button 89
BUTTON: 90 ACTION: 0 TYPE: 0
MISC: Remove action from button 90
BUTTON: 91 ACTION: 0 TYPE: 0
MISC: Remove action from button 91
BUTTON: 92 ACTION: 0 TYPE: 0
MISC: Remove action from button 92
BUTTON: 93 ACTION: 0 TYPE: 0
MISC: Remove action from button 93
BUTTON: 94 ACTION: 0 TYPE: 0
MISC: Remove action from button 94
BUTTON: 95 ACTION: 0 TYPE: 0
MISC: Remove action from button 95
BUTTON: 96 ACTION: 0 TYPE: 0
MISC: Remove action from button 96
BUTTON: 97 ACTION: 0 TYPE: 0
MISC: Remove action from button 97
BUTTON: 98 ACTION: 0 TYPE: 0
MISC: Remove action from button 98
BUTTON: 99 ACTION: 0 TYPE: 0
MISC: Remove action from button 99
BUTTON: 100 ACTION: 0 TYPE: 0
MISC: Remove action from button 100
BUTTON: 101 ACTION: 0 TYPE: 0
MISC: Remove action from button 101
BUTTON: 102 ACTION: 0 TYPE: 0
MISC: Remove action from button 102
BUTTON: 103 ACTION: 0 TYPE: 0
MISC: Remove action from button 103
BUTTON: 104 ACTION: 0 TYPE: 0
MISC: Remove action from button 104
BUTTON: 105 ACTION: 0 TYPE: 0
MISC: Remove action from button 105
BUTTON: 106 ACTION: 0 TYPE: 0
MISC: Remove action from button 106
BUTTON: 107 ACTION: 0 TYPE: 0
MISC: Remove action from button 107
BUTTON: 108 ACTION: 0 TYPE: 0
MISC: Remove action from button 108
BUTTON: 109 ACTION: 0 TYPE: 0
MISC: Remove action from button 109
BUTTON: 110 ACTION: 0 TYPE: 0
MISC: Remove action from button 110
BUTTON: 111 ACTION: 0 TYPE: 0
MISC: Remove action from button 111
BUTTON: 112 ACTION: 0 TYPE: 0
MISC: Remove action from button 112
BUTTON: 113 ACTION: 0 TYPE: 0
MISC: Remove action from button 113
BUTTON: 114 ACTION: 0 TYPE: 0
MISC: Remove action from button 114
BUTTON: 115 ACTION: 0 TYPE: 0
MISC: Remove action from button 115
BUTTON: 116 ACTION: 0 TYPE: 0
MISC: Remove action from button 116
BUTTON: 117 ACTION: 0 TYPE: 0
MISC: Remove action from button 117
BUTTON: 118 ACTION: 0 TYPE: 0
MISC: Remove action from button 118
BUTTON: 119 ACTION: 0 TYPE: 0
MISC: Remove action from button 119
BUTTON: 120 ACTION: 0 TYPE: 0
MISC: Remove action from button 120
BUTTON: 121 ACTION: 0 TYPE: 0
MISC: Remove action from button 121
BUTTON: 122 ACTION: 0 TYPE: 0
MISC: Remove action from button 122
BUTTON: 123 ACTION: 0 TYPE: 0
MISC: Remove action from button 123
BUTTON: 124 ACTION: 0 TYPE: 0
MISC: Remove action from button 124
BUTTON: 125 ACTION: 0 TYPE: 0
MISC: Remove action from button 125
BUTTON: 126 ACTION: 0 TYPE: 0
MISC: Remove action from button 126
BUTTON: 127 ACTION: 0 TYPE: 0
MISC: Remove action from button 127
BUTTON: 128 ACTION: 0 TYPE: 0
MISC: Remove action from button 128
BUTTON: 129 ACTION: 0 TYPE: 0
MISC: Remove action from button 129
BUTTON: 130 ACTION: 0 TYPE: 0
MISC: Remove action from button 130
BUTTON: 131 ACTION: 0 TYPE: 0
MISC: Remove action from button 131
BUTTON: 132 ACTION: 0 TYPE: 0
MISC: Remove action from button 132
BUTTON: 133 ACTION: 0 TYPE: 0
MISC: Remove action from button 133
BUTTON: 134 ACTION: 0 TYPE: 0
MISC: Remove action from button 134
BUTTON: 135 ACTION: 0 TYPE: 0
MISC: Remove action from button 135
BUTTON: 136 ACTION: 0 TYPE: 0
MISC: Remove action from button 136
BUTTON: 137 ACTION: 0 TYPE: 0
MISC: Remove action from button 137
BUTTON: 138 ACTION: 0 TYPE: 0
MISC: Remove action from button 138
BUTTON: 139 ACTION: 0 TYPE: 0
MISC: Remove action from button 139
BUTTON: 140 ACTION: 0 TYPE: 0
MISC: Remove action from button 140
BUTTON: 141 ACTION: 0 TYPE: 0
MISC: Remove action from button 141
BUTTON: 142 ACTION: 0 TYPE: 0
MISC: Remove action from button 142
BUTTON: 143 ACTION: 0 TYPE: 0
MISC: Remove action from button 143

after doing one more switch to refresh things I have 3 spelling missing off one action bar and 4 in the other spec are missing off the action bar

BUTTON: 4 ACTION: 0 TYPE: 0
MISC: Remove action from button 4
Action Button '4' Removed from Player '1' for spec 1
BUTTON: 2 ACTION: 0 TYPE: 0
MISC: Remove action from button 2
Action Button '2' Removed from Player '1' for spec 1
BUTTON: 5 ACTION: 0 TYPE: 0
MISC: Remove action from button 5
Action Button '5' Removed from Player '1' for spec 1
BUTTON: 3 ACTION: 0 TYPE: 0
MISC: Remove action from button 3
Action Button '3' Removed from Player '1' for spec 1

I am stuck on this bug and need help :confused:

edit: its the same button spaces 99% of the time

class : mage

button spaces : 2, 5 , 6 - spec 1

button spaces : 2, 3 ,4 , 5 ,6 - spec 2

it does not matter what spell I put there it gets deleted

if anyone is having this problem/confirm it after 3.3.3 9692+ please post

even if your not having this problem post so I know

I am on 9715

Link to comment
Share on other sites

i've got this issue too. haven't checked logs so far (havn't time) :/ found http://code.google.com/p/trinitycore/source/detail?r=50ede8e9dc8a83776fb6a0bfe17af9391c17b625# nice comment in commit message, maybe helpful for someone, cause implementation seems hacky

Maybe I'm missing something but this was already done time ago... http://github.com/mangos/mangos/commit/d6eccbd8e3ad269a129789c11c7e97d25549fcc7

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 weeks later...
  • 2 weeks later...

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.

Link to comment
Share on other sites

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 ;-)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

diff from clean 10073 http://pastebin.com/tBbTqdqz <= checked once again and working. Maybe tell us what did you do to make icons vanish? i tested my described previously way:

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

and patch seems solve this problem

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...
  • 4 months later...

Hope it's fixed in [10944].

Basically re-implemented patch posted by przemratajczak, after some testing the code comments aren't really correct, that packet locks action bars, not clear them.

Unfortunately przemratajczak didn't tell original patch author, but whoever it was, thanks for pointing in the right direction.

What was happening is that client automatically requests removal of action buttons that have spells you just unlearned.

Link to comment
Share on other sites

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