diff --git a/classes/container_actors.lua b/classes/container_actors.lua index 5c5a9887..33a3590e 100644 --- a/classes/container_actors.lua +++ b/classes/container_actors.lua @@ -429,7 +429,12 @@ local line1 = _G ["DetailsPetOwnerFinderTextLeft2"] local text1 = line1 and line1:GetText() if (text1 and text1 ~= "") then - for playerName, _ in _pairs (_detalhes.tabela_vigente.raid_roster) do + if (not Details.tabela_vigente.raid_roster_indexed) then + print("D! error 0x9541 - report on discord") + return + end + for _, playerName in ipairs(Details.tabela_vigente.raid_roster_indexed) do + --for playerName, _ in _pairs (_detalhes.tabela_vigente.raid_roster) do local pName = playerName playerName = playerName:gsub ("%-.*", "") --remove realm name @@ -456,7 +461,12 @@ local line2 = _G ["DetailsPetOwnerFinderTextLeft3"] local text2 = line2 and line2:GetText() if (text2 and text2 ~= "") then - for playerName, _ in _pairs (_detalhes.tabela_vigente.raid_roster) do + if (not Details.tabela_vigente.raid_roster_indexed) then + print("D! error 0x9542 - report on discord") + return + end + --for playerName, _ in _pairs (_detalhes.tabela_vigente.raid_roster) do + for _, playerName in ipairs(Details.tabela_vigente.raid_roster_indexed) do local pName = playerName playerName = playerName:gsub ("%-.*", "") --remove realm name diff --git a/core/control.lua b/core/control.lua index f2a409f3..0b1b0d34 100644 --- a/core/control.lua +++ b/core/control.lua @@ -480,6 +480,7 @@ Details.leaving_combat = true Details.last_combat_time = _tempo + Details.tabela_vigente.raid_roster_indexed = nil --deprecated (combat are now added immediatelly since there's no script run too long) --if (Details.schedule_remove_overall and not from_encounter_end and not InCombatLockdown()) then diff --git a/core/parser.lua b/core/parser.lua index 36f04335..60b74a11 100755 --- a/core/parser.lua +++ b/core/parser.lua @@ -5516,6 +5516,16 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 auto_regen_cache [name] = auto_regen_power_specs [_detalhes.cached_specs [_UnitGUID ("player")]] end end + + local orderNames = {} + for playerName in pairs(roster) do + orderNames[#orderNames+1] = playerName + end + table.sort(orderNames, function(name1, name2) + return string.len(name1) > string.len(name2) + end) + _detalhes.tabela_vigente.raid_roster_indexed = orderNames + if (_detalhes.iam_a_tank) then tanks_members_cache [_UnitGUID ("player")] = true