View Bug Report
Error in XLoot
Bug #: 8958
File: FauxMazzle [Classic]
Date: 05-29-20 07:12 AM
By: Bremagorn
Status: Fixed
I suspect this isn't a FauxMazzle Classic thing, but for completeness wanted to report it. It happens when moving the mouse to select on option when rolling for loot.

Here's the bugsack:

27x XLoot\helpers.lua:99: attempt to call global 'UnitGroupRolesAssigned' (a nil value)
XLoot\helpers.lua:99: in function <XLoot\helpers.lua:90>
XLoot_Group\Group-Group.lua:640: in function <XLoot_Group\Group.lua:635>
XLoot_Group\Group-Group.lua:720: in function <XLoot_Group\Group.lua:669>
XLoot_Group\Group-Group.lua:759: in function <XLoot_Group\Group.lua:756>

Locals:
name = "Amelise"
class = "WARRIOR"
opt = <table> {
track_player_roll = false
prefix_upgrade = "+"
expire_won = 20
role_icon = true
shown_hook_warning = false
show_time_remaining = false
hook_alert = false
alert_scale = 1
bonus_skin = true
track_threshold = 3
text_ilvl = false
alert_icon_frame = false
roll_width = 325
hook_bonus = false
show_decided = true
track_by_threshold = true
win_icon = false
equip_prefix = true
roll_button_size = 28
alert_alpha = 1
alert_background = false
prefix_equippable = "*"
alert_anchor = <table> {
}
alert_skin = true
font = "Fonts\FRIZQT__.TTF"
expire_lost = 10
font_flag = "OUTLINE"
roll_anchor = <table> {
}
track_all = false
alert_offset = 4
show_undecided = false
}
c = <table> {
colorStr = "ffc69b6d"
GetRGB = <function> defined @SharedXML\Util.lua:633
OnLoad = <function> defined @SharedXML\Util.lua:622
b = 0.430000
GenerateHexColorMarkup = <function> defined @SharedXML\Util.lua:664
WrapTextInColorCode = <function> defined @SharedXML\Util.lua:668
GenerateHexColor = <function> defined @SharedXML\Util.lua:660
GetRGBA = <function> defined @SharedXML\Util.lua:641
IsEqualTo = <function> defined @SharedXML\Util.lua:626
g = 0.610000
r = 0.780000
SetRGBA = <function> defined @SharedXML\Util.lua:649
GetRGBAsBytes = <function> defined @SharedXML\Util.lua:637
SetRGB = <function> defined @SharedXML\Util.lua:656
GetRGBAAsBytes = <function> defined @SharedXML\Util.lua:645
}
(*temporary) = nil
(*temporary) = "Amelise"
(*temporary) = "attempt to call global 'UnitGroupRolesAssigned' (a nil value)"
_G = <table> {
DBM_GUI_Option_13659 = DBM_GUI_Option_13659 {
}
DBM_GUI_Option_16317 = DBM_GUI_Option_16317 {
}
ContainerFrame5Item7 = ContainerFrame5Item7 {
}
DH_HAVOC_CORE_ABILITY_2 = "Strong melee attack that consumes Fury. If it critical strikes, some Fury is refunded."
GetTrainerServiceTypeFilter = <function> defined =[C]:-1
UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names."
SetTrainerServiceTypeFilter = <function> defined =[C]:-1
LE_GAME_ERR_CHAT_RAID_RESTRICTED_TRIAL = 742
SPELL_FAILED_CUSTOM_ERROR_71 = "This partygoer wants to dance with you."
LE_GAME_ERR_PET_SPELL_TARGETS_DEAD = 399
Atr_StackPriceCopperMiddle = Atr_StackPriceCopperMiddle {
}
CompactUnitFrameProfilesGeneralOptionsFrameHealthTextDropdownButtonNormalTexture = CompactUnitFrameProfilesGeneralOptionsFrameHealthTextDropdownButtonNormalTexture {
}
InspectFrameTab1HighlightTexture = InspectFrameTab1HighlightTexture {
}
PawnItemComparer = <function> defined @Pawn\Pawn.lua:3602
MultiBarLeftButton7 = MultiBarLeftButton7 {
}
AudioOptionsVoicePanelOutputDeviceDropdownButtonHighlightTexture = AudioOptionsVoicePanelOutputDeviceDropdownButtonHighlightTexture {
}
LE_GAME_ERR_INVALID_FOLLOW_PVP_COMBAT = 353
MerchantItem6AltCurrencyFrameItem1Text = MerchantItem6AltCurrencyFrameItem1Text {
}
BINDING_NAME_NAMEPLATES = "Show Enemy Name Plates"
INSTANCE_UNAVAILABLE_OTHER_TEMPORARILY_DISABLED = "%s cannot enter. This instance is temporarily disabled."
MultiBarBottomRightButton8Shine5 = MultiBarBottomRightButton8Shine5 {
}
IsReferAFriendLinked = <function> defined =[C]:-1
DBM_GUI_Option_6266 = DBM_GUI_Option_6266 {
}
VuhDoNewOptionsToolsResetMiscPanelLangueageButton = VuhDoNewOptionsToolsResetMiscPanelLangueageButton {
}
ERR_NOAMMO_S = "%s"
CraftExpandTabLeft = CraftExpandTabLeft {
}
DropDownList2Button184Highlight = DropDownList2Button184Highlight {
}
VuhDoNewOptionsPanelHotsHotsPanelHotIconsTextureSquaresDiagonalRadioButtonTextureSwatch = VuhDoNewOptionsPanelHotsHotsPanelHotIconsTextureSquaresDiagonalRadioButtonTextureSwatch {
}
VuhDoNewOptionsPanelHotsTextPanelTitleLabel = VuhDoNewOptionsPanelHotsTextPanelTitleLabel {
}
CinematicFrameRaidBossEmoteFrame = CinematicFrameRaidBossEmoteFrame {
}
VuhDoNewOptionsColorsModesNormalModePanelIcomingOpacCheckBox = VuhDoNewOptionsColorsModesNormalModePanelIcomingOpacCheckBox {
}
CompactRaidFrameManagerD

RSS 2.0 Feed for Bug CommentsNotes Sort Options
By: Fizzlemizz - 05-29-20 11:10 AM
My bad. There isn't a Classic version of XLoot available and I hadn't intended to include it in the package. The UnitGroupRolesAssigned function is one of those that didn't exists in Vanilla so Blizzard removed it from the Classic API.

If you see the XLoot page on CurseForge (https://www.curseforge.com/wow/addons/xloot) they mention a potential problem rolling in retail and how to avoid it by turning off the "Group" module. I'm not sure what the sentence "I understand this may cause you to lose out on a item..." means, whether it's refereing to the roll that caused the error or something larger.

If you get a chance to try it and turning the module off still allows you to roll (presumably using the standard mechanism), please let me know otherwise I'll probably remove XLoot from the next build.

Thank you for the report Brem.
By: Fizzlemizz - 05-29-20 12:13 PM
Taking a look a XLoot the function is only called in one place and a small modification that doesn't materially change XLoot should resolve the problem. Line 99 of \XLoot\helpers.lua change from:

local role = UnitGroupRolesAssigned(name)

to:
local role = UnitGroupRolesAssigned and UnitGroupRolesAssigned(name) or "NONE"

Given the function doesn't exist in Classic, the value of role is essentially nil or "NONE".

Any Classic release would need do something similar (although probably more elegant).
By: Fizzlemizz - 05-29-20 12:56 PM
Further to this, taking a look at my retail version of XLoot, Xuerian has already made this change but because the Twitch client isn't updating Classic with XLoot (there being no specific version of it), I included an older one in the package.

If you copy/paste the XLoot folders from Retail to Classic, it should fix this problem.
By: Bremagorn - 05-31-20 05:17 AM
You can mark this resolved. I used your suggested change to helpers.lua and it solved the problem.