-- tools to import some of the razor configs to iris
-- TODO : razor/Razor.exe
-- TODO : razor/guardlines.def x,x,y,y,z,z 5639 3095 192 223 -128 127
-- TODO : razor/counters.xml
-- TODO : razor/Profiles/default.xml
-- TODO : razor/Macros/fukija_last.macro
-- TODO : skill ids !
gRazorKeyCodeTranslate = {}
gRazorKeyCodeTranslate[-1] = key_wheelup
gRazorKeyCodeTranslate[-2] = key_wheeldown
gRazorKeyCodeTranslate[-3] = key_mouse_middle
kRazorMod_Alt = 1
kRazorMod_Ctrl = 2
kRazorMod_Shift = 4
-- L:3002011Clumsy
-- Play: self_curebig
-- Dress: ghongolas
--~ UO - {char} {crimtime}- {mediumstatbar} {cure} {heal} {refresh} {ex} {aids}
--~
--~
--~ ImportRazorHotkeys /home/ghoul/Desktop/cavern/razorprofile/default.xml
--~ 66 b 1 L:1311
--~ 65 a 0 L:1044092 spiritspeak
gRazorHotKeyAction = {}
gRazorHotKeyAction[1473] = {name="dismount",fun=function () Send_DoubleClick(GetPlayerSerial()) end} -- dismount
gRazorHotKeyAction[1195] = {name="clear target queue",fun=function () end} -- clear target queue
gRazorHotKeyAction[1059] = {name="targetself",fun=function () MacroCmd_TargetSelfNow() end} -- targetself
gRazorHotKeyAction[1058] = {name="targetlast",fun=function () MacroCmd_TargetLastNow() end} -- targetlast
gRazorHotKeyAction[1013] = {name="weapon:primary",fun=function () MacroCmd_WeaponAbilityPrimary() end}
gRazorSpellID = {}
--~ zirkel1"
gRazorSpellID[3002018] = "Weaken"
gRazorSpellID[3002017] = "Reactive Armor"
gRazorSpellID[3002016] = "Night Sight"
gRazorSpellID[3002015] = "Magic Arrow"
gRazorSpellID[3002014] = "Heal"
gRazorSpellID[3002013] = "FeebleMind"
gRazorSpellID[3002012] = "Create Food"
gRazorSpellID[3002011] = "Clumsy"
--~ zirkel2"
gRazorSpellID[3002026] = "Strength"
gRazorSpellID[3002025] = "Protection"
gRazorSpellID[3002024] = "Magic Untrap"
gRazorSpellID[3002023] = "Magic Trap"
gRazorSpellID[3002022] = "Harm"
gRazorSpellID[3002021] = "Cure"
gRazorSpellID[3002020] = "Cunning"
gRazorSpellID[3002019] = "Agility"
--~ zirkel3
gRazorSpellID[3002034] = "Wall of Stone"
gRazorSpellID[3002033] = "Unlock"
gRazorSpellID[3002032] = "Teleport"
gRazorSpellID[3002031] = "Telekinesis"
gRazorSpellID[3002030] = "Poison"
gRazorSpellID[3002029] = "Magic Lock"
gRazorSpellID[3002028] = "Fire Ball"
gRazorSpellID[3002027] = "Bless"
--~ zirkel4"
gRazorSpellID[3002042] = "Recall"
gRazorSpellID[3002041] = "Mana Drain"
gRazorSpellID[3002040] = "Lightning"
gRazorSpellID[3002039] = "Greater Heal"
gRazorSpellID[3002038] = "Fire Field"
gRazorSpellID[3002037] = "Curse"
gRazorSpellID[3002036] = "Arch Protection"
gRazorSpellID[3002035] = "Arch Cure"
--~ zirkel5"
gRazorSpellID[3002050] = "Summ.Creature"
gRazorSpellID[3002049] = "Poison Field"
gRazorSpellID[3002048] = "Paralyze"
gRazorSpellID[3002047] = "Mind Blast"
gRazorSpellID[3002046] = "Spell Reflection"
gRazorSpellID[3002045] = "Incognito"
gRazorSpellID[3002044] = "Dispel Field"
gRazorSpellID[3002043] = "Blade Spirit"
--~ zirkel6 "
gRazorSpellID[3002058] = "Reveal"
gRazorSpellID[3002057] = "Paralyze Field"
gRazorSpellID[3002056] = "Mass Curse"
gRazorSpellID[3002055] = "Mark"
gRazorSpellID[3002054] = "Invisibility"
gRazorSpellID[3002053] = "Explosion"
gRazorSpellID[3002052] = "Energy Bolt"
gRazorSpellID[3002051] = "Dispel"
--~ zirkel7"
gRazorSpellID[3002066] = "Polymorph"
gRazorSpellID[3002065] = "Meteor Swarm"
gRazorSpellID[3002064] = "Mass Dispel"
gRazorSpellID[3002063] = "Mana Vampire"
gRazorSpellID[3002062] = "Gate"
gRazorSpellID[3002061] = "FlameStrike"
gRazorSpellID[3002060] = "Energy Field"
gRazorSpellID[3002059] = "Chain Lightning"
--~ zirkel8"
gRazorSpellID[3002074] = "Water Elemental"
gRazorSpellID[3002071] = "Summon Daemon"
gRazorSpellID[3002069] = "Resurrection"
gRazorSpellID[3002073] = "Fire Elemental"
gRazorSpellID[3002068] = "Energy Vortex"
gRazorSpellID[3002067] = "Earthquake"
gRazorSpellID[3002072] = "Earth Elemental"
gRazorSpellID[3002070] = "Air Elemental"
--~ bush"
gRazorSpellID[1060600] = "Momentum Strike"
gRazorSpellID[1060599] = "Lightning Strike"
gRazorSpellID[1060595] = "Honorable Execution"
gRazorSpellID[1060597] = "Evasion"
gRazorSpellID[1060598] = "Counter Attack"
gRazorSpellID[1060596] = "Confidence"
--~ chiv"
gRazorSpellID[1060594] = "Sacred Journey"
gRazorSpellID[1060593] = "Remove Curse"
gRazorSpellID[1060592] = "Noble Sacrifice"
gRazorSpellID[1060591] = "Holy Light"
gRazorSpellID[1060590] = "Enemy of one"
gRazorSpellID[1060589] = "Divine Fury"
gRazorSpellID[1060588] = "Dispel Evil"
gRazorSpellID[1060587] = "Consecrate Weapon"
gRazorSpellID[1060586] = "Close Wounds"
gRazorSpellID[1060585] = "Cleanse By Fire"
--~ necro"
gRazorSpellID[1060524] = "WraithForm"
gRazorSpellID[1060523] = "Wither"
gRazorSpellID[1060522] = "Vengeful Spirit"
gRazorSpellID[1060521] = "Vampiric Embrace"
gRazorSpellID[1060520] = "Summon Familiar"
gRazorSpellID[1060519] = "Strangle"
gRazorSpellID[1060518] = "Poison Strike"
gRazorSpellID[1060517] = "Pain Spike"
gRazorSpellID[1060516] = "Mind Rot"
gRazorSpellID[1060515] = "Lich Form"
gRazorSpellID[1060514] = "Horrific Beast"
gRazorSpellID[1060525] = "Exorcism"
gRazorSpellID[1060513] = "Evil Omen"
gRazorSpellID[1060512] = "Curse Weapon"
gRazorSpellID[1060511] = "Corpse Skin"
gRazorSpellID[1060510] = "Blood Oath"
gRazorSpellID[1060509] = "Animate Dead"
--~ nin"
gRazorSpellID[1060614] = "Mirror Image"
gRazorSpellID[1060616] = "Suprise Attack"
gRazorSpellID[1060617] = "Shadowjump"
gRazorSpellID[1060613] = "Ki Attack"
gRazorSpellID[1060610] = "Focus Attack"
gRazorSpellID[1060611] = "Death Strike"
gRazorSpellID[1060615] = "Backstab"
gRazorSpellID[1060612] = "Animal Form"
--~ spellw"
gRazorSpellID[1071039] = "Word Of Death"
gRazorSpellID[1071035] = "Wildfire"
gRazorSpellID[1071030] = "Thunderstorm"
gRazorSpellID[1071033] = "Summon Fiend"
gRazorSpellID[1071032] = "Summon Fey"
gRazorSpellID[1071034] = "Reaper Form"
gRazorSpellID[1071031] = "Nature Fury"
gRazorSpellID[1071028] = "Immolating Weapon"
gRazorSpellID[1071027] = "Gift Of Renewal"
gRazorSpellID[1071040] = "Gift Of Life"
gRazorSpellID[1071038] = "Ethereal Voyage"
gRazorSpellID[1071036] = "Essence Of Wind"
gRazorSpellID[1071037] = "Dryad Allure"
gRazorSpellID[1071029] = "Attunement"
gRazorSpellID[1071041] = "Arcane Empowerment"
gRazorSpellID[1071026] = "Arcane Circle"
gRazorSkillID = {}
gRazorSkillID[1044061] = "Anatomy"
gRazorSkillID[1044062] = "Animal Lore"
gRazorSkillID[1044095] = "Animal Taming"
gRazorSkillID[1044064] = "Arms Lore"
gRazorSkillID[1044066] = "Begging"
gRazorSkillID[1044072] = "Cartography"
gRazorSkillID[1044074] = "Detecting Hidden"
gRazorSkillID[1044075] = "Discordance"
gRazorSkillID[1044076] = "Evaluate Intelligence"
gRazorSkillID[1044079] = "Forensic Evaluation"
gRazorSkillID[1044081] = "Hiding"
gRazorSkillID[1044083] = "Inscription"
gRazorSkillID[1044063] = "Item Identification"
gRazorSkillID[1044106] = "Meditation"
gRazorSkillID[1044069] = "Peacemaking"
gRazorSkillID[1044090] = "Poisoning"
gRazorSkillID[1044082] = "Provocation"
gRazorSkillID[1044092] = "Spirit Speak"
gRazorSkillID[1044093] = "Stealing"
gRazorSkillID[1044107] = "Stealth"
gRazorSkillID[1044096] = "Taste Identification"
gRazorSkillID[1044098] = "Tracking"
--~ gRazorSkillID[1044108] = "Disarming" -- ??? preaos ?
-- Snooping,Remove Trap,Lockpicking,Herding,Cooking,Camping"
--[[
Assistant.Macros.HotKeyAction|1044061| Anato
Assistant.Macros.HotKeyAction|1044062| Animal Lore
Assistant.Macros.HotKeyAction|1044095| Animal Taming
Assistant.Macros.HotKeyAction|1044064| Arms Lore
Assistant.Macros.HotKeyAction|1044066| Begging
Assistant.Macros.HotKeyAction|1044072| Carthography
Assistant.Macros.HotKeyAction|1044074| Detect Hidden
Assistant.Macros.HotKeyAction|1044108| Disamring ??????
Assistant.Macros.HotKeyAction|1044075| Discordance
Assistant.Macros.HotKeyAction|1044076| Eval Int
Assistant.Macros.HotKeyAction|1044079| Foren
Assistant.Macros.HotKeyAction|1044081| Hide
Assistant.Macros.HotKeyAction|1044083| Inscri
Assistant.Macros.HotKeyAction|1044063| Item Id
Assistant.Macros.HotKeyAction|1044106| Medi
Assistant.Macros.HotKeyAction|1044069| Peace
Assistant.Macros.HotKeyAction|1044090| Poison
Assistant.Macros.HotKeyAction|1044082| Provo
Assistant.Macros.HotKeyAction|1044092| Spirit Speak
Assistant.Macros.HotKeyAction|1044093| Stealing
Assistant.Macros.HotKeyAction|1044107| Stealth
Assistant.Macros.HotKeyAction|1044096| TasteID
Assistant.Macros.HotKeyAction|1044096| TasteID
Assistant.Macros.HotKeyAction|1044098| Tracking
]]--
function FileOpenDialog_RazorProfile ()
return FileOpenDialog(WIN32 and "C:\Program Files\Razor\Profiles" or ".","*.xml","select a razor profile to load, often Razor\\Profiles\\default.xml")
end
function ImportRazorHotkeys (filepath)
print("ImportRazorHotkeys",filepath)
if (not file_exists(filepath)) then return end
local profile = LuaXML_ParseFile(filepath)[1]
for k,hotkey in ipairs(xmlchild(profile,"hotkeys")) do
local keycode = tonumber(hotkey.attr.key)
keycode = gRazorKeyCodeTranslate[keycode] or keycode
local keymod = tonumber(hotkey.attr.mod)
local action = hotkey[1]
local a,b,actionid = string.find(action,"L:(.+)")
local a,b,macroname = string.find(action,"Play: (.+)")
local spellname = actionid and gRazorSpellID[tonumber(actionid)]
local skillname = actionid and gRazorSkillID[tonumber(actionid)]
local hotkeyaction = actionid and gRazorHotKeyAction[tonumber(actionid)]
local bCtrl = TestBit(keymod,kRazorMod_Ctrl)
local bAlt = TestBit(keymod,kRazorMod_Alt)
local bShift = TestBit(keymod,kRazorMod_Shift)
local keycomboname = GetMacroKeyComboName(keycode,"?",bCtrl,bAlt,bShift)
--~ print(keycode,keymod,keycomboname,action,actionid,macroname,spellname,skillname)
if (spellname) then
print("razor:spell",keycomboname,spellname)
SetMacro(keycomboname,function () MacroCmd_Spell(spellname) end)
elseif (skillname) then
print("razor:skill",keycomboname,skillname)
SetMacro(keycomboname,function () MacroCmd_Skill(skillname) end)
elseif (macroname) then
print("razor:macro",keycomboname,macroname)
SetMacro(keycomboname,function () StartRazorMacroJob(macroname) end)
elseif (hotkeyaction) then
print("razor:action",keycomboname,hotkeyaction.name)
SetMacro(keycomboname,function () hotkeyaction.fun() end)
else
print("razor:unknown",keycomboname,action)
end
end
--~ L:3002011Clumsy
end
--[[
razor:unknown wheeldown L:1058
razor:unknown wheelup L:1059
razor:unknown mouse3 L:1195
razor:unknown ctrl+f1 Dress: ghongolas
razor:unknown alt+b L:1311
razor:unknown o L:1013
ExtCastSpellAction 29 4294967295
]]--
function ImportRazorProfileDialog ()
local profile_filepath = FileOpenDialog_RazorProfile()
if (profile_filepath) then ImportRazorProfile(profile_filepath) end
end
function ImportRazorProfile (profile_filepath)
profile_filepath = string.gsub(profile_filepath,"\\","/") -- \ to /
if (not file_exists(profile_filepath)) then print("warning, ImportRazorProfile file not found",profile_filepath) return end
print("importing razor profile : ",profile_filepath)
local basefilepath = string.gsub(profile_filepath,"[^/]+/[^/]+$","")
LoadRazorMacros(basefilepath.."Macros/")
ImportRazorHotkeys(profile_filepath)
end
--~ os.exit(0)
--~ local filepath = "/home/ghoul/Desktop/cavern/razorprofile/default.xml" -- FileOpenDialog_RazorProfile()
--~ local xml = LuaXML_ParseFile(filepath)[1]
--~ print(SmartDump(xml[1]))
--~ LuaXML_SaveFile("../bla.xml",xml)
--~ ImportRazorHotkeys(filepath)
--~ LoadRazorMacros("/cavern/razorcopy/".."Macros/")
--~ StartRazorMacroJob("bola")
--~ StartRazorMacroJob("mine")
--~ StartRazorMacroJob("trainnin")
--~ os.exit(0)