Jump to content

[One]Buff appearing as debuffs


Recommended Posts

Posted

Hello,

Using One branch, I updated today from [s0852] to [s0860] (no particular patch) and all the player's buff are appearing as debuff for players of the same faction or group. Look like it only does this when you are near the other player. From a distance you're seeing the buff like usual. I can't figure out why yet but I was wondering if anyone have the same issue. Maybe due to the data blob disappearance? Or problem from my setup ? If anyone can confirm this, thank you !

Edit: I should add that when applying the sql patch from [s0858], my exploredZone have been reset, the field was filled with numbers but in game all the maps went undiscovered.

Edit 2: I confirm that [s0858] is responsible for this, but still don't know why or how to fix yet :( It seems like one field remains not loaded but I can't figure out which one.

Posted

Worked hard but couldn't find what field causes that :(

I hope someone with more knowledge of this can help me. I tried forcing loading the old data field by adding that back :

if(!LoadValues( fields[60].GetString()))    
   {     
       sLog.outError("Player #%d have broken data in `data` field. Can't be loaded.", GUID_LOPART(guid));    
       delete result;         
       return false;     
   }

of course I changed the main query. Then the data field loads and the buff shows correctly, but that doesn't fix the problem, only show that's where it's from. :S

Posted

1. Hmm, aura fields don't must be dependent from character save `data` field and must filled at auras loading.

2. I will check explored flags, maybe some index wrong in convertion query.

As i understand this affect only post update state and later once explored zone later show in correct state?

Posted
As i understand this affect only post update state and later once explored zone later show in correct state?

Exactly ! After the update all is reset but then it works correctly when you discover new zones.

1. Hmm, aura fields don't must be dependent from character save `data` field and must filled at auras loading.

That's what I thought, so because this bug is data field dependent, I guess it could be something like characters faction or property that causes that, but I didn't find any difference in thoses fields with or without the data field... Still searching.

Posted

`exploredZones` field problem fixed in [s0863]. Note: you can edit sql update for use second way (provided in sql update) for re-extract values from data_backport if you still have it.

I will look at auras problem now.

[added]

Hmm, i check with some spells bufs and not see problem with proper place its to buffs line after relogin.

So proper values prepare for client for auras show work correctly for saved data.

Posted

On my side, every buff causes the problem (if I just click on my portrait to select myself, I see my buff as debuff). I'll tell you as soon as I found something about the field that causes that.

Posted

Okay, the incriminated field is UNIT_FIELD_BYTES_2 (UNIT_BYTE2_FLAG_AURAS maybe ?). When loaded from the data field, the buff appear okay but when not loaded, the buff looks like debuffs. I'll try to find a way to fix it.

Posted

diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 60547a2..9206306 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -14294,6 +14294,15 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder )
        return false;
    }

+    
+    SetByteValue(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_AURAS );
+    
    // overwrite possible wrong/corrupted guid
    SetGuidValue(OBJECT_FIELD_GUID, ObjectGuid(HIGHGUID_PLAYER, guid));

That fix seems to work

Posted
Please test with [s0868]

[added]In old code no set UNIT_BYTE2_FLAG_AURAS for players at creating. So i not sure that this need add.

Tested, it's working too, with [s0868].

Posted

For [s0863] for retreiving the datas from the data_backup table you provide this :

UPDATE characters, data_backup SET
 exploredZones = SUBSTRING(DATA,
 LENGTH(SUBSTRING_INDEX(DATA, ' ', 1332))+2,
 LENGTH(SUBSTRING_INDEX(DATA, ' ', 1459+1))- LENGTH(SUBSTRING_INDEX(DATA, ' ', 1332)) - 1)

but isn't this :

UPDATE characters, data_backup SET
 exploredZones = SUBSTRING(DATA,
 LENGTH(SUBSTRING_INDEX(DATA, ' ', 1332))+2,
 LENGTH(SUBSTRING_INDEX(DATA, ' ', 1459+1))- LENGTH(SUBSTRING_INDEX(DATA, ' ', 1332)) - 1) WHERE characters.guid = data_backup.guid;

more like 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