mirror of
https://github.com/Lacustat/Freewood-OctoWoW-Codex.git
synced 2026-10-30 09:30:53 +00:00
0.1.149: Lernplan-Symbole/Tooltips, Item-Tooltips, Nachnahme-Anhang (1.12-Form), Brett eigenes Fenster, ClassicAPI-Pruefung, Start-Itemkatalog
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016onJCSHLwhs9udhC9ZLzk9
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
220aa31d44
commit
357826045c
@@ -3371,7 +3371,15 @@ function Codex:ItemName(itemID)
|
||||
if seed then
|
||||
return seed
|
||||
end
|
||||
return Codex.ExtraItemName and Codex.ExtraItemName(itemID) or nil
|
||||
local extra = Codex.ExtraItemName and Codex.ExtraItemName(itemID)
|
||||
if extra then return extra end
|
||||
-- mitgelieferter Katalog (Startdaten): Name ohne Serverabfrage
|
||||
local Cat = Codex.Catalog
|
||||
if Cat and Cat.GetItem then
|
||||
local nm = Cat.GetItem(itemID)
|
||||
if nm then return nm end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
+7
-1
@@ -663,6 +663,11 @@ function Roles:ScanTrainer()
|
||||
rec.sn, rec.sr = sn, sr and math.floor(sr) or nil
|
||||
end
|
||||
end
|
||||
local ic = TrainerCall("GetTrainerServiceIcon", i)
|
||||
ic = ic and Util.Clean(ic[1])
|
||||
if (type(ic) == "string" and ic ~= "") or type(ic) == "number" then
|
||||
rec.ic = ic
|
||||
end
|
||||
local cost = FirstNumber(TrainerCall("GetTrainerServiceCost", i), "moneyCost")
|
||||
if cost and not seen[key .. ":" .. cost] then
|
||||
seen[key .. ":" .. cost] = true
|
||||
@@ -1093,7 +1098,7 @@ BuildLearnPlan = function(token)
|
||||
local skey = lv .. "\1" .. (r.sp and ("s" .. r.sp) or key)
|
||||
local sp = seen[skey]
|
||||
if not sp then
|
||||
sp = { nm = r.nm, sp = r.sp, rk = r.rk, lv = lv, pr = {}, trainers = {} }
|
||||
sp = { nm = r.nm, sp = r.sp, rk = r.rk, lv = lv, ic = r.ic, pr = {}, trainers = {} }
|
||||
seen[skey] = sp
|
||||
local g = levels[lv]
|
||||
if not g then
|
||||
@@ -1105,6 +1110,7 @@ BuildLearnPlan = function(token)
|
||||
end
|
||||
sp.rk = sp.rk or r.rk
|
||||
sp.sp = sp.sp or r.sp
|
||||
sp.ic = sp.ic or r.ic
|
||||
for p, n in pairs(r.pr or {}) do sp.pr[p] = (sp.pr[p] or 0) + n end
|
||||
local g = levels[lv]
|
||||
if IsPetTrainer(u) then sp.pet = true end
|
||||
|
||||
+2
-1
@@ -411,7 +411,7 @@ local function TrainTable(src)
|
||||
local nm = Text(r.nm, 60)
|
||||
local pr = PriceMap(r.pr)
|
||||
if nm and pr then
|
||||
out[e[1]] = { nm = nm, sp = Int(r.sp, 1, 10000000), rk = Text(r.rk, 30), lv = Int(r.lv, 1, 130), sn = Text(r.sn, 40), sr = Int(r.sr, 1, 1000), pr = pr }
|
||||
out[e[1]] = { nm = nm, sp = Int(r.sp, 1, 10000000), rk = Text(r.rk, 30), lv = Int(r.lv, 1, 130), sn = Text(r.sn, 40), sr = Int(r.sr, 1, 1000), ic = Text(r.ic, 120), pr = pr }
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
@@ -1687,6 +1687,7 @@ local function MergeTrain(dst, src)
|
||||
d.lv = d.lv or r.lv
|
||||
d.sn = d.sn or r.sn
|
||||
d.sr = d.sr or r.sr
|
||||
d.ic = d.ic or r.ic
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+21
-7
@@ -353,10 +353,12 @@ local function ItemIndex()
|
||||
end
|
||||
end
|
||||
end
|
||||
-- Items aus den Startdaten, deren Itemdaten schon geladen sind (sonst nur Zahlen ohne Namen)
|
||||
-- Items aus den Startdaten, deren Name bekannt ist: aus dem Client oder aus dem mitgelieferten Katalog
|
||||
-- (Name, Stufe, Preis ohne Serverabfrage). Unbekannte erscheinen, sobald der Client sie geladen hat.
|
||||
local CatGet = Codex.Catalog and Codex.Catalog.GetItem
|
||||
if Codex.Forever and Codex.Forever.ItemIds then
|
||||
for id in pairs(Codex.Forever.ItemIds()) do
|
||||
if not index[id] and Util.GetItem(id) then
|
||||
if not index[id] and (Util.GetItem(id) or (CatGet and CatGet(id))) then
|
||||
local it = Codex.Forever.Item(id)
|
||||
local f = { zones = {}, best = 0, fe = true }
|
||||
if it then
|
||||
@@ -2142,6 +2144,11 @@ local function Build(content)
|
||||
GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
|
||||
pcall(GameTooltip.SetItemByID, GameTooltip, self.itemID)
|
||||
GameTooltip:Show()
|
||||
elseif self.tip and GameTooltip then
|
||||
GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
|
||||
GameTooltip:SetText(self.tip[1] or "", 1, 1, 1)
|
||||
for ti = 2, #self.tip do GameTooltip:AddLine(self.tip[ti], 0.8, 0.8, 0.8) end
|
||||
GameTooltip:Show()
|
||||
elseif self.spellID and GameTooltip then
|
||||
GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
|
||||
local ok = pcall(GameTooltip.SetSpellByID, GameTooltip, self.spellID)
|
||||
@@ -2283,7 +2290,7 @@ local function Build(content)
|
||||
elseif style == "heading" then h = 28; top = 12
|
||||
elseif style == "item" or style == "link" then h = 26
|
||||
elseif style == "text" then h = TextHeight(opts.text) end
|
||||
if opts.spellID then h = 26 end
|
||||
if opts.spellID or opts.tip then h = 26 end
|
||||
row:ClearAllPoints()
|
||||
row:SetPoint("TOPLEFT", detail.child, "TOPLEFT", 0, -(self.y + top))
|
||||
row:SetPoint("TOPRIGHT", detail.child, "TOPRIGHT", 0, -(self.y + top))
|
||||
@@ -2299,7 +2306,8 @@ local function Build(content)
|
||||
row.onClick = opts.onClick
|
||||
row.itemID = opts.itemID
|
||||
row.spellID = opts.spellID
|
||||
row:EnableMouse(row.clickable or opts.itemID ~= nil or opts.spellID ~= nil)
|
||||
row.tip = opts.tip
|
||||
row:EnableMouse(row.clickable or opts.itemID ~= nil or opts.spellID ~= nil or opts.tip ~= nil)
|
||||
|
||||
local leftX = 4 + indent
|
||||
if opts.icon then
|
||||
@@ -3287,10 +3295,16 @@ local function Build(content)
|
||||
D:Add({ style = "heading", text = string.format(L.CODEX_SEC_LEARN_SPELLS, #g.spells) })
|
||||
for _, sp in ipairs(g.spells) do
|
||||
local rank = sp.rk or (sp.sp and Codex.SpellRank(sp.sp)) or nil
|
||||
local icon = sp.sp and Codex.SpellIcon(sp.sp) or nil
|
||||
D:Add({ text = (sp.nm or "?") .. (rank and (" |cff9a9aa3(" .. rank .. ")|r") or ""),
|
||||
local icon = sp.sp and Codex.SpellIcon(sp.sp) or sp.ic or nil
|
||||
local tip
|
||||
if not sp.sp then
|
||||
tip = { (sp.nm or "?") .. (rank and (" (" .. rank .. ")") or "") }
|
||||
if lv > 0 then tip[#tip + 1] = string.format(L.CODEX_TRAIN_LEVEL, lv) end
|
||||
if sp.cost and sp.cost > 0 then tip[#tip + 1] = FormatMoney(sp.cost) end
|
||||
end
|
||||
D:Add({ tip = tip, text = (sp.nm or "?") .. (rank and (" |cff9a9aa3(" .. rank .. ")|r") or ""),
|
||||
right = (sp.cost and sp.cost > 0) and FormatMoney(sp.cost) or "-", rightWidth = 150,
|
||||
spellID = sp.sp, icon = icon or (sp.sp and "Interface\\Icons\\INV_Misc_QuestionMark") or nil })
|
||||
spellID = sp.sp, icon = icon or "Interface\\Icons\\INV_Misc_QuestionMark" })
|
||||
end
|
||||
D:Add({ style = "heading", text = string.format(L.CODEX_SEC_LEARN_TRAINERS, #g.trainers) })
|
||||
for i, id in ipairs(g.trainers) do
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
## Notes: Learns quests, creatures and drops while you play: who gives and takes a quest, rewards, objectives, drop chances.
|
||||
## Notes-deDE: Lernt beim Spielen Quests, Kreaturen und Beute: wer eine Quest vergibt und annimmt, Belohnungen, Ziele, Drop-Chancen.
|
||||
## Author: Lacustat
|
||||
## Version: 0.1.148
|
||||
## Version: 0.1.149
|
||||
## Dependencies: Freewood-OctoWoW-Core
|
||||
## OptionalDeps: Freewood-OctoWoW-CodexData, Freewood-OctoWoW-ForeverData
|
||||
|
||||
|
||||
Reference in New Issue
Block a user