When expanding all the reputation factions and show all offline members there it is possible to scroll through ALL the content.
While scrolling, some errors occur.
Having checked in the SavedVariables, I noticed that some data is corrupted:
For example:
["factions"] = {
{
["_u"] = 1059,
}, -- [10]
or
[16] = {
["_u"] = 1108,
},
}
After manually removing all errors, it is getting feeded again by faulty data.
After manually entering correct data AND increasing the
["v"] number ( version ), to make sure these values are being overwritten at other clients; still new faulty data will be created.
Logged In: YES
user_id=293001
Originator: NO
Would you mind letting us know:
a) which faction
b) which error
c) which language is your client?
d) which version of guildads are you using?
please?
This is the only report of this kind and I don't see any errors in the code.
You would happen to have any addons installed that in some way hooks the GetFactionInfo function?
Try running with only Ace and GuildAds installed and enable addons 1 at a time to find the addon that causes the problem for GuildAds.
Logged In: NO
I hope you are able to determine which factions are: 10 and 16
when I look in the code, there could be a possible cause, when the either one of the functions:
- GuildAdsFactionDataType:setRaw
- GuildAdsFactionDataType:setRevision
are being called, while in fact there is no actual data being given.
Then when this function will generate an error: ( at line 380 in GuildAdsFactionFrame.lua )
updateAll = function(updateData)
...
-- for each buttons
while (i <= GUILDADS_NUM_GLOBAL_FACTION_BUTTONS) do
local factionBar = getglobal("GuildAdsReputationBar"..i);
local factionHeader = getglobal("GuildAdsReputationHeader"..i);
if (j <= linearSize) then
if (linear[j].p) then
factionBar.player = linear[j].p;
factionBar.id = linear[j].i;
>>>> local factionStanding = getglobal("FACTION_STANDING_LABEL"..linear[j].s); <<<<<<
linear[j].s is nil
It happens on factions 10, 13 and 16
Logged In: NO
I hope you are able to determine which factions are: 10 and 16
when I look in the code, there could be a possible cause, when the either one of the functions:
- GuildAdsFactionDataType:setRaw
- GuildAdsFactionDataType:setRevision
are being called, while in fact there is no actual data being given.
Then when this function will generate an error: ( at line 380 in GuildAdsFactionFrame.lua )
updateAll = function(updateData)
...
-- for each buttons
while (i <= GUILDADS_NUM_GLOBAL_FACTION_BUTTONS) do
local factionBar = getglobal("GuildAdsReputationBar"..i);
local factionHeader = getglobal("GuildAdsReputationHeader"..i);
if (j <= linearSize) then
if (linear[j].p) then
factionBar.player = linear[j].p;
factionBar.id = linear[j].i;
>>>> local factionStanding = getglobal("FACTION_STANDING_LABEL"..linear[j].s); <<<<<<
linear[j].s is nil
It happens on factions 10, 13 and 16
Logged In: YES
user_id=293001
Originator: NO
Hmm it is true that if the database contains faulty information, then it can be spread to other databases and cause problems for each client. There are 2 problems here:
1) Why did the corruption happen in the first place and how to fix this.
2) How do we fix this in all databases.
1: The code that updates the your own faction database verifies the faction-to-id conversion and wont change the database if no id was found. This way, no faulty faction information should ever be entered into the database, UNLESS a communication corruption has happened somewhere (reason unknown). I am not aware of any communication bug being present at this time which means I'd suspect a very rare datacorruption (can't explain it). This means the code is probably correct and we try to fix the problem to see if it should occur again.
2: Fixing the database and propagating the change to the other databases. While you already tried this, I suspect you didn't do it quite right. Please not, fixing the database has to be done offline. Find the factions that are empty (like in your first report) and delete them, 1 at a time. Every time you delete 1 faction, you update the _u value in the "factions" root table for that player. If that player isn't your own, there is a risk that that player has a higher revision and then you will get the faulty data back from that player. You have to repeat the steps in that case.
["factions"] = {
[32] = {
["s"] = 4,
["b"] = 0,
["t"] = 3000,
["_u"] = 7,
["v"] = 500,
},
[13] = {
["_u"] = 5,
},
[53] = {
["s"] = 7,
["b"] = 21000,
["t"] = 42000,
["_u"] = 9,
["v"] = 26500,
},
["_u"] = 9,
Would become:
["factions"] = {
[32] = {
["s"] = 4,
["b"] = 0,
["t"] = 3000,
["_u"] = 7,
["v"] = 500,
},
[53] = {
["s"] = 7,
["b"] = 21000,
["t"] = 42000,
["_u"] = 9,
["v"] = 26500,
},
["_u"] = 10, -- increase this value
Once you have done this and saved the file (make a backup, just in case), log in and your version of the data should propagate to everyone else, assuming you were all fully synchronized when you logged off. This update can still be "overwritten" by a client having a newer copy of this information.
Factions 10, 13 and 16 are Orgrimmar, Undercity, Warsong Outriders.
Logged In: NO
Hi Galmok,
I indeed changed the information differently, I will try this way of approach.
But does the client, who contains that faction, ( which I am deleting ), propagate its faction details again ?
2nd note, those factions 10,13 and 16 are Horde factions yes ?
We are alliance; but this char have been in those cities and received some status of reputation.
Do you know of any other clients, which have reputation from the other faction, but sending correct rep data through guildads ?
So could this be the cause at all ? and not commdatacorruption
I will follow up with the result of the manual change ( and indeed I do this offline using UltraEdit )
Last thought, I will ask for the SavedVariables of the client who have the reputation with these factions. And I will check what she has in her own database at factions 10,13 and 16.
I will let you know aswell.
BR,
Voogue (Agamaggan(EU)/Alliance)
BTW: Feel free to create an account on Agamaggan(EU) and join the guild.
Logged In: YES
user_id=293001
Originator: NO
Ok, this is interresting. I actually do not know what information GetFactionInfo will return for an enemy faction. It is quite possible that the function returns information that is not handled well by GuildAds. In this case, GuildAds needs to be fixed to handle it, of course.
Could you find out what information that player can see for his Orgrimmar faction in the normal Reputation window? (or for the other 2 problem factions) This may help me solve this problem.
If you edit your savedvariables file and "correct" his data by deleting those factions, if should overwrite the information at that player as well. Problem is, GuildAds will update the information again and again. This makes this a pressing issue.
This may end up getting fixed in the UI side of GuildAds, making the reputation bar show a default value.
I'll try to reproduce this problem.
Logged In: YES
user_id=293001
Originator: NO
I have not been able to reproduce this problem. I have also asked other horde players whether they had any alliance factions in their reputation panel but they didn't. How your guildie got horde factions (being alliance) I don't know, but we do have to handle it somehow. I think we will just have to make the UI display factions with no information as Hated unless you can let us know what his reputation sheet actually says for Orgrimmar, Undercity and Warsong Outriders?