Here's a simple skill explorer. It would probably be better if it was set up to skip IDs that are not skills but it is a quick and dirty solution. You can either copy and paste the code into the debug window from any of my plugins or you can create a lua file from it and add it to your own plugin.
Code:
import "Turbine.UI";
import "Turbine.UI.Lotro";
skillWindow=Turbine.UI.Lotro.Window()
skillWindow.cols=math.floor((Turbine.UI.Display:GetWidth()-10)/100)
skillWindow.rows=math.floor((Turbine.UI.Display:GetHeight()-105)/62)
skillWindow:SetSize(Turbine.UI.Display:GetWidth(),Turbine.UI.Display:GetHeight())
skillWindow:SetText("Skill Explorer")
skillWindow.StartCaption=Turbine.UI.Label()
skillWindow.StartCaption:SetParent(skillWindow)
skillWindow.StartCaption:SetText("Start:")
skillWindow.StartCaption:SetPosition(10,45)
skillWindow.StartCaption:SetSize(50,20)
skillWindow.Start=Turbine.UI.Lotro.TextBox()
skillWindow.Start:SetParent(skillWindow)
skillWindow.Start:SetPosition(65,45)
skillWindow.Start:SetSize(100,20)
skillWindow.Start:SetFont(Turbine.UI.Lotro.Font.Verdana16)
skillWindow.Prev=Turbine.UI.Lotro.Button()
skillWindow.Prev:SetParent(skillWindow)
skillWindow.Prev:SetSize(100,20)
skillWindow.Prev:SetPosition(170,45)
skillWindow.Prev:SetText("Previous")
skillWindow.Prev.Click=function()
local start=tonumber(skillWindow.Start:GetText())
if start==nil then start=0 end
start=start-skillWindow.rows*skillWindow.cols
if start<0 then start=0 end
skillWindow.Start:SetText(string.format("0x%x",start))
skillWindow.refresh()
end
skillWindow.Show=Turbine.UI.Lotro.Button()
skillWindow.Show:SetParent(skillWindow)
skillWindow.Show:SetSize(100,20)
skillWindow.Show:SetPosition(275,45)
skillWindow.Show:SetText("Refresh")
skillWindow.Show.Click=function()
skillWindow.refresh()
end
skillWindow.Next=Turbine.UI.Lotro.Button()
skillWindow.Next:SetParent(skillWindow)
skillWindow.Next:SetSize(100,20)
skillWindow.Next:SetPosition(380,45)
skillWindow.Next:SetText("Next")
skillWindow.Next.Click=function()
local start=tonumber(skillWindow.Start:GetText())
if start==nil then start=0 end
start=start+skillWindow.rows*skillWindow.cols
skillWindow.Start:SetText(string.format("0x%x",start))
skillWindow.refresh()
end
skillWindow:SetVisible(true)
skillWindow.QS={}
for row=1,skillWindow.rows do
skillWindow.QS[row]={}
for col=1,skillWindow.cols do
skillWindow.QS[row][col]=Turbine.UI.Lotro.Quickslot()
local qs=skillWindow.QS[row][col]
qs:SetParent(skillWindow)
qs:SetSize(34,34)
qs:SetPosition(col*100-32, row*62+23)
qs.label=Turbine.UI.Label()
qs.label:SetParent(skillWindow)
qs.label:SetSize(100,20)
qs.label:SetPosition(col*100-32, row*62+57)
end
end
skillWindow.refresh=function()
local start=tonumber(skillWindow.Start:GetText())
if start==nil then start=0 end
for row=1,skillWindow.rows do
for col=1,skillWindow.cols do
local qs=skillWindow.QS[row][col]
local sc=Turbine.UI.Lotro.Shortcut();
sc:SetType(Turbine.UI.Lotro.ShortcutType.Skill)
local val=string.format("0x%x",start+(row-1)*skillWindow.cols+col-1)
sc:SetData(val)
local success, result=pcall(Turbine.UI.Lotro.Quickslot.SetShortcut,qs,sc)
qs:SetVisible(success)
qs.label:SetText(val)
end
end
end
skillWindow.Start:SetText("0x70033832")
just set the "start" value to the highest travel skill ID that is known to you and start scanning. you should be able to find the missing skill IDs fairly easily (you will have to hover over the skills to check the tooltips to see if they are musters or travels).