#Imbuing Trainer by Frank Castle with special guests Mourn and Lankester # #What you need: # 1 - 30.0+ Tinkering Skill. If you do not have it buy it up. # 1 - 40.0+ Imbuing. If you do not have it buy it up. # 2 - a player made Tinker Tools # 3 - a chest with plenty of iron ingots, leather, citrine, amber, emerald, and magical residue # 4 - GM Tailoring and at least GM Blacksmithing. Script will not check for fails on these, so it will crash if you # dont't have it # Written and tested on OSI. from System.Collections.Generic import List global stoCot global timesImbued stoCot = Target.PromptTarget('Target your resource chest') Misc.Pause(1000) Items.UseItem(stoCot) Misc.Pause(1100) residue = 0x2DB1 amber = 0x0F25 citrine = 0x0F15 emerald = 0x0F10 def checkIngots(): if Items.BackpackCount(0x1BF2,0x0000) < 20: Misc.SendMessage('Getting Ingots',48) Misc.Pause(1100) ingot = Items.FindByID(0x1BF2,0x0000,stoCot) Misc.Pause(100) Items.Move(ingot,Player.Backpack.Serial,40) Misc.Pause(1100) def checkLeather(): if Items.BackpackCount(0x1081,0x0000) < 4: Misc.SendMessage('Getting Leather',48) Misc.Pause(1100) leather = Items.FindByID(0x1081,0x0000,stoCot) Misc.Pause(100) Items.Move(leather,Player.Backpack.Serial,40) Misc.Pause(1100) def checkTools(): checkIngots() countOne = Items.BackpackCount(0x1EB9,-1) while countOne < 3: Misc.Pause(1100) tinkerTool = Items.FindByID(0x1EB9,-1,Player.Backpack.Serial) Misc.Pause(1100) Items.UseItem(tinkerTool) Gumps.WaitForGump(460, 10000) Gumps.SendAction(460, 11) Misc.Pause(1500) countOne = Items.BackpackCount(0x1EB9,-1) Misc.SendMessage('I have {} tinker tools in my bag'.format(countOne),48) countTwo = Items.BackpackCount(0x0F9D,-1) while countTwo < 3: Misc.Pause(1100) tinkerTool = Items.FindByID(0x1EB9,-1,Player.Backpack.Serial) Misc.Pause(100) Items.UseItem(tinkerTool) Gumps.WaitForGump(460, 10000) Gumps.SendAction(460, 14) Misc.Pause(1500) countTwo = Items.BackpackCount(0x0F9D,-1) Misc.SendMessage('I have {} sewing kits in my bag'.format(countTwo),48) countThree = Items.BackpackCount(0x0FBC,-1) while countThree < 3: Misc.Pause(1100) tinkerTool = Items.FindByID(0x1EB9,-1,Player.Backpack.Serial) Misc.Pause(100) Items.UseItem(tinkerTool) Gumps.WaitForGump(460, 10000) Gumps.SendAction(460, 20) Misc.Pause(1500) countThree = Items.BackpackCount(0x0FBC,-1) Misc.SendMessage('I have {} tongs in my bag'.format(countThree),48) def checkImbuingMats(mat,gem): if Items.BackpackCount(mat,-1) < 10: Misc.SendMessage('Getting Materials',90) Misc.Pause(1100) material = Items.FindByID(mat,0x0000,stoCot) Misc.Pause(100) Items.Move(material,Player.Backpack.Serial,100) Misc.Pause(1100) if Items.BackpackCount(gem,-1) < 10: Misc.SendMessage('Getting Gems',90) Misc.Pause(1100) jewels = Items.FindByID(gem,0x0000,stoCot) Misc.Pause(100) Items.Move(jewels,Player.Backpack.Serial,100) Misc.Pause(1100) def imbueThrice(item): timesImbued = 0 theTarget = Items.FindByID(item,-1,Player.Backpack.Serial) def firstImbue(item,timesImbued): checkImbuingMats(residue,amber) Player.UseSkill('Imbuing') Gumps.WaitForGump(999059, 10000) Gumps.SendAction(999059, 1) Target.WaitForTarget(10000, False) Target.TargetExecute(theTarget) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 202) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 313) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 311) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 311) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 302) Misc.Pause(500) if Journal.Search('successfully imbue') == True: Journal.Clear() timesImbued = timesImbued + 1 if timesImbued < 1: firstImbue(item,timesImbued) return timesImbued timesImbued = firstImbue(item,timesImbued) Misc.Pause(300) def secondImbue(item,timesImbued): checkImbuingMats(residue,citrine) Misc.Pause(500) Gumps.WaitForGump(999059, 10000) Gumps.SendAction(999059, 1) Target.WaitForTarget(10000, False) Target.TargetExecute(theTarget) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 1114252) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 203) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 313) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 311) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 311) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 302) Misc.Pause(500) if Journal.Search('successfully imbue') == True: Journal.Clear() timesImbued = timesImbued + 1 if Journal.Search('successfully imbue') == True: Journal.Clear() timesImbued = timesImbued + 1 if timesImbued < 2: secondImbue(item,timesImbued) return timesImbued timesImbued = secondImbue(item,timesImbued) checkImbuingMats(residue,emerald) Misc.Pause(500) Gumps.WaitForGump(999059, 10000) Gumps.SendAction(999059, 1) Target.WaitForTarget(10000, False) Target.TargetExecute(theTarget) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 1114254) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 205) difficulty() Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 302) Misc.Pause(500) if Journal.Search('successfully imbue') == True: Journal.Clear() timesImbued = timesImbued + 1 imbueLast(timesImbued,residue,emerald) destroy(item) def imbueTwice(item): timesImbued = 0 theTarget = Items.FindByID(item,-1,Player.Backpack.Serial) def firstImbue(item,timesImbued): checkImbuingMats(residue,amber) Player.UseSkill('Imbuing') Gumps.WaitForGump(999059, 10000) Gumps.SendAction(999059, 1) Target.WaitForTarget(10000, False) Target.TargetExecute(theTarget) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 202) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 313) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 311) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 311) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 302) Misc.Pause(500) if Journal.Search('successfully imbue') == True: Journal.Clear() timesImbued = timesImbued + 1 if timesImbued < 1: firstImbue(item,timesImbued) return timesImbued timesImbued = firstImbue(item,timesImbued) checkImbuingMats(residue,citrine) Misc.Pause(500) Player.UseSkill('Imbuing') Gumps.WaitForGump(999059, 10000) Gumps.SendAction(999059, 1) Target.WaitForTarget(10000, False) Target.TargetExecute(theTarget) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 1114252) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 203) difficulty() Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 302) Misc.Pause(500) if Journal.Search('successfully imbue') == True: Journal.Clear() timesImbued = timesImbued + 1 imbueLast(timesImbued,residue,citrine) destroy(item) def imbueOnce(item): timesImbued = 0 theTarget = Items.FindByID(item,-1,Player.Backpack.Serial) if item == 0x1DB9: checkImbuingMats(residue,amber) Misc.Pause(500) Player.UseSkill('Imbuing') Gumps.WaitForGump(999059, 10000) Gumps.SendAction(999059, 1) Target.WaitForTarget(10000, False) Target.TargetExecute(theTarget) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 202) difficulty() Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 302) Misc.Pause(500) if Journal.Search('successfully imbue') == True: Journal.Clear() timesImbued = timesImbued + 1 imbueLast(timesImbued,residue,amber) elif item == 0x0F51: checkImbuingMats(residue,amber) Misc.Pause(500) Player.UseSkill('Imbuing') Gumps.WaitForGump(999059, 10000) Gumps.SendAction(999059, 1) Target.WaitForTarget(10000, False) Target.TargetExecute(theTarget) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 1114251) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 202) difficulty() Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 302) Misc.Pause(500) if Journal.Search('successfully imbue') == True: Journal.Clear() timesImbued = timesImbued + 1 imbueLast(timesImbued,residue,amber) elif item == 0x2777: checkImbuingMats(residue,citrine) Misc.Pause(500) Player.UseSkill('Imbuing') Gumps.WaitForGump(999059, 10000) Gumps.SendAction(999059, 1) Target.WaitForTarget(10000, False) Target.TargetExecute(theTarget) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 1114252) Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 203) difficulty() Gumps.WaitForGump(999056, 10000) Gumps.SendAction(999056, 302) Misc.Pause(500) if Journal.Search('successfully imbue') == True: Journal.Clear() timesImbued = timesImbued + 1 imbueLast(timesImbued,residue,citrine) destroy(item) def imbueLast(timesImbued,mat,gem): while timesImbued < 20: checkImbuingMats(mat,gem) Gumps.WaitForGump(999059, 10000) Gumps.SendAction(999059, 4) Misc.Pause(200) if Journal.Search('successfully imbue') == True: Journal.Clear() timesImbued = timesImbued + 1 def destroy(item): unravel = Items.FindByID(item,-1,Player.Backpack.Serial) Player.UseSkill('Imbuing') Gumps.WaitForGump(999059, 10000) Gumps.SendAction(999059, 2) Target.WaitForTarget(10000, False) Target.TargetExecute(unravel) def makeLeatherCap(): sewingKit = Items.FindByID(0x0F9D,-1,Player.Backpack.Serial) Misc.Pause(100) checkTools() checkLeather() Items.UseItem(sewingKit) Gumps.WaitForGump(460, 10000) Gumps.SendAction(460, 609) Gumps.WaitForGump(460, 10000) Gumps.SendAction(460, 0) imbueOnce(0x1DB9) def makeDagger(): tongs = Items.FindByID(0x0FBC,-1,Player.Backpack.Serial) Misc.Pause(100) checkTools() checkIngots() Items.UseItem(tongs) Gumps.WaitForGump(460, 10000) Gumps.SendAction(460, 45) Gumps.WaitForGump(460, 10000) Gumps.SendAction(460, 0) imbueOnce(0x0F51) def makeJingasa(): tongs = Items.FindByID(0x0FBC,-1,Player.Backpack.Serial) Misc.Pause(100) checkTools() checkIngots() Items.UseItem(tongs) Gumps.WaitForGump(460, 10000) Gumps.SendAction(460, 27) Gumps.WaitForGump(460, 10000) Gumps.SendAction(460, 0) Imbuing = Player.GetSkillValue('Imbuing') if Imbuing < 90.1: imbueOnce(0x2777) elif Imbuing < 112.1: imbueTwice(0x2777) else: imbueThrice(0x2777) def difficulty(): Gumps.WaitForGump(999056, 10000) text = Gumps.LastGumpGetLineList() Misc.Pause(100) number = len(text)-1 x = (text[number].split('.'))[0] Misc.SendMessage('{}% Success Chance'.format(x),44) Misc.Pause(500) if int(x) > 50: Gumps.SendAction(999056, 312) Misc.Pause(500) difficulty() def setFunction(): Imbuing = Player.GetSkillValue('Imbuing') while Imbuing < 50.0: Imbuing = Player.GetSkillValue('Imbuing') makeLeatherCap() while Imbuing > 49.9 and Imbuing < 70.0: Imbuing = Player.GetSkillValue('Imbuing') makeDagger() while Imbuing > 69.9 and Player.GetSkillValue('Imbuing') != Player.GetSkillCap('Imbuing'): Imbuing = Player.GetSkillValue('Imbuing') makeJingasa() setFunction()