@@ -1664,18 +1664,32 @@ end
16641664
16651665function AutoGearGetClassAndSpec ()
16661666 local localizedClass , class , spec , classID
1667- if (AutoGearDB .Override and AutoGearDB .OverrideSpec ) then
1668- class , spec = string.match (AutoGearDB .OverrideSpec ," (.+): ?(.+)" )
1669- localizedClass = string.gsub (class , " %s+" , " " )
1670- class = string.upper (localizedClass )
1671- classID = AutoGearReverseClassIDList [class ].id
1667+
1668+ -- Override가 켜져 있고 저장된 OverrideSpec 이 있으면 거기서 먼저 시도
1669+ if AutoGearDB .Override and AutoGearDB .OverrideSpec then
1670+ -- "죽음의 기사: Blood" / "악마사냥꾼: Havoc" 같은 형식 가정
1671+ local overrideLocalizedClass , overrideSpec = string.match (AutoGearDB .OverrideSpec , " (.+): ?(.+)" )
1672+ if overrideLocalizedClass and overrideSpec then
1673+ -- 로컬 직업명 -> 영문 직업 토큰 (예: "악마사냥꾼" -> "DEMONHUNTER")
1674+ local overrideClassToken = AutoGearReverseClassList [overrideLocalizedClass ]
1675+ if overrideClassToken and AutoGearReverseClassIDList [overrideClassToken ] then
1676+ localizedClass = overrideLocalizedClass
1677+ class = overrideClassToken
1678+ spec = overrideSpec
1679+ classID = AutoGearReverseClassIDList [overrideClassToken ].id
1680+ end
1681+ end
16721682 end
1673- if ((localizedClass == nil ) or (class == nil ) or (spec == nil )) then
1683+
1684+ -- 위에서 제대로 못 구했으면 실제 캐릭 정보로 fallback
1685+ if (localizedClass == nil ) or (class == nil ) or (spec == nil ) or (classID == nil ) then
16741686 localizedClass , class , spec , classID = AutoGearDetectClassAndSpec ()
16751687 end
1688+
16761689 return localizedClass , class , spec , classID
16771690end
16781691
1692+
16791693function AutoGearDetectClassAndSpec ()
16801694 local localizedClass , class , spec , classID
16811695 class , classID = UnitClassBase (" player" )
@@ -4897,4 +4911,4 @@ function AutoGearMain()
48974911 end
48984912 end
48994913 end
4900- end
4914+ end
0 commit comments