full_spellbook_crafter
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | full_spellbook_crafter [2022/09/03 23:25] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | < | ||
+ | #Spellbook Crafter by Frank Castle | ||
+ | # | ||
+ | # Instructions: | ||
+ | # | ||
+ | # Have plenty of Exceptional Scribes Pens with makers mark on them | ||
+ | # Have GM Inscription. | ||
+ | # Have a resource container with plenty of scrolls and regs | ||
+ | # Have at least 100 mana | ||
+ | # Have a trash can within reach | ||
+ | # Have your spellbook in your hand. Do not have any other spellbooks in your backpack. | ||
+ | # Having Meditation and a Mana Regen suit is recommended, | ||
+ | # This is not set to loop. It will make one spellbook at the moment. | ||
+ | # This can be changed by making the last line a while True statement | ||
+ | from System.Collections.Generic import List | ||
+ | |||
+ | mandrakeroot = 0x0F86 | ||
+ | bloodmoss = 0x0F7B | ||
+ | sulphurousash = 0x0F8C | ||
+ | nightshade = 0x0F88 | ||
+ | blackpearl = 0x0F7A | ||
+ | spidersilk = 0x0F86 | ||
+ | ginseng = 0x0F85 | ||
+ | garlic = 0x0F84 | ||
+ | stoCont = Target.PromptTarget(' | ||
+ | Items.UseItem(stoCont) | ||
+ | Misc.Pause(2000) | ||
+ | |||
+ | regsList = [0x0F86, | ||
+ | global pen | ||
+ | pen = Items.FindByID(0x0FBF, | ||
+ | |||
+ | GFilter = Items.Filter() | ||
+ | GFilter.RangeMax = 5 | ||
+ | GFilter.OnGround = True | ||
+ | GFilter.Enabled = True | ||
+ | GFilter.Movable = True | ||
+ | garbagecan = List[int]((0x0E77, | ||
+ | GFilter.Graphics = garbagecan | ||
+ | |||
+ | def getSupplies(): | ||
+ | for i in regsList: | ||
+ | if Items.BackpackCount(i, | ||
+ | reg = Items.FindByID(i, | ||
+ | Misc.Pause(500) | ||
+ | Items.Move(reg, | ||
+ | Misc.Pause(1100) | ||
+ | | ||
+ | def makeSpellbook(): | ||
+ | getSupplies() | ||
+ | Items.UseItem(pen) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(3000) | ||
+ | spellbook = Items.FindByID(0x0EFA, | ||
+ | if not spellbook: | ||
+ | makeSpellbook() | ||
+ | | ||
+ | def checkPen(): | ||
+ | curCharges = Items.FindByID(0x0FBF, | ||
+ | Items.WaitForProps(curCharges, | ||
+ | props = Items.GetPropStringList(curCharges.Serial) | ||
+ | Misc.Pause(500) | ||
+ | prop = props[3].split(' | ||
+ | Misc.SendMessage(prop) | ||
+ | Misc.Pause(500) | ||
+ | if int(prop) < 20: | ||
+ | global pen | ||
+ | garbagecans = Items.ApplyFilter(GFilter) | ||
+ | Misc.Pause(500) | ||
+ | garbagecan = Items.Select(garbagecans, | ||
+ | Misc.Pause(500) | ||
+ | Items.Move(pen, | ||
+ | Misc.Pause(1100) | ||
+ | checkPen() | ||
+ | pen = Items.FindByID(0x0FBF, | ||
+ | | ||
+ | | ||
+ | def makeFirstCircle(): | ||
+ | while Player.Mana < Player.ManaMax : | ||
+ | Player.UseSkill(' | ||
+ | Misc.Pause(10000) | ||
+ | getSupplies() | ||
+ | checkPen() | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | gumpNo = 1 | ||
+ | while gumpNo < 9: | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | gumpNo = gumpNo + 1 | ||
+ | | ||
+ | firstCircleList = [0x1F2E, | ||
+ | Misc.Pause(1100) | ||
+ | for a in firstCircleList: | ||
+ | spellbook = Items.FindByID(0x0EFA, | ||
+ | scroll = Items.FindByID(a, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | | ||
+ | def makeSecondCircle(): | ||
+ | while Player.Mana < Player.ManaMax: | ||
+ | Player.UseSkill(' | ||
+ | Misc.Pause(10000) | ||
+ | getSupplies() | ||
+ | checkPen() | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | gumpNo = 9 | ||
+ | while gumpNo < 17: | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | gumpNo = gumpNo + 1 | ||
+ | | ||
+ | secondCircleList = [0x1F35, | ||
+ | Misc.Pause(1100) | ||
+ | for a in secondCircleList: | ||
+ | spellbook = Items.FindByID(0x0EFA, | ||
+ | scroll = Items.FindByID(a, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | |||
+ | def checkMana(mana): | ||
+ | while Player.Mana < mana: | ||
+ | Player.UseSkill(' | ||
+ | Misc.Pause(11500) | ||
+ | | ||
+ | def makeThirdCircle(): | ||
+ | while Player.Mana < 100: | ||
+ | Player.UseSkill(' | ||
+ | Misc.Pause(10000) | ||
+ | getSupplies() | ||
+ | checkPen() | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | gumpNo = 17 | ||
+ | while gumpNo < 25: | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | gumpNo = gumpNo + 1 | ||
+ | | ||
+ | thirdCircleList = [0x1F3D, | ||
+ | Misc.Pause(1100) | ||
+ | for a in thirdCircleList: | ||
+ | spellbook = Items.FindByID(0x0EFA, | ||
+ | scroll = Items.FindByID(a, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | | ||
+ | def makeFourthCircle(): | ||
+ | while Player.Mana < Player.ManaMax: | ||
+ | Player.UseSkill(' | ||
+ | Misc.Pause(10000) | ||
+ | getSupplies() | ||
+ | checkPen() | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | gumpNo = 25 | ||
+ | while gumpNo < 33: | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | gumpNo = gumpNo + 1 | ||
+ | | ||
+ | fourthCircleList = [0x1F45, | ||
+ | Misc.Pause(1100) | ||
+ | for a in fourthCircleList: | ||
+ | spellbook = Items.FindByID(0x0EFA, | ||
+ | scroll = Items.FindByID(a, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | | ||
+ | def makeFifthCircle(): | ||
+ | while Player.Mana < Player.ManaMax: | ||
+ | Player.UseSkill(' | ||
+ | Misc.Pause(10000) | ||
+ | getSupplies() | ||
+ | checkPen() | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | gumpNo = 33 | ||
+ | while gumpNo < 41: | ||
+ | checkMana(20) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | gumpNo = gumpNo + 1 | ||
+ | | ||
+ | fifthCircleList = [0x1F4D, | ||
+ | Misc.Pause(1100) | ||
+ | for a in fifthCircleList: | ||
+ | spellbook = Items.FindByID(0x0EFA, | ||
+ | scroll = Items.FindByID(a, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | |||
+ | def makeSixthCircle(): | ||
+ | while Player.Mana < Player.ManaMax: | ||
+ | Player.UseSkill(' | ||
+ | Misc.Pause(10000) | ||
+ | getSupplies() | ||
+ | checkPen() | ||
+ | | ||
+ | gumpNo = 41 | ||
+ | while gumpNo < 49: | ||
+ | checkMana(30) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | gumpNo = gumpNo + 1 | ||
+ | Misc.Pause(1100) | ||
+ | | ||
+ | sixthCircleList = [0x1F55, | ||
+ | Misc.Pause(1100) | ||
+ | for a in sixthCircleList: | ||
+ | spellbook = Items.FindByID(0x0EFA, | ||
+ | scroll = Items.FindByID(a, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | | ||
+ | def makeSeventhCircle(): | ||
+ | while Player.Mana < Player.ManaMax: | ||
+ | Player.UseSkill(' | ||
+ | Misc.Pause(10000) | ||
+ | getSupplies() | ||
+ | checkPen() | ||
+ | spellbook = Items.FindByID(0x0EFA, | ||
+ | def makechain(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F5D, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makechain() | ||
+ | def makeenergy(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F5E, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makeenergy() | ||
+ | def makeflame(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F5F, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makeflame() | ||
+ | def makegate(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F60, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makegate() | ||
+ | def makemanaV(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F61, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makemanaV() | ||
+ | def makemass(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F62, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makemass() | ||
+ | def makemeteor(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F63, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makemeteor() | ||
+ | def makepoly(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F64, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makepoly() | ||
+ | makechain() | ||
+ | makeenergy() | ||
+ | makeflame() | ||
+ | makegate() | ||
+ | makemanaV() | ||
+ | makemass() | ||
+ | makemeteor() | ||
+ | makepoly() | ||
+ | |||
+ | def makeEighthCircle(): | ||
+ | while Player.Mana < Player.ManaMax: | ||
+ | Player.UseSkill(' | ||
+ | Misc.Pause(10000) | ||
+ | getSupplies() | ||
+ | checkPen() | ||
+ | spellbook = Items.FindByID(0x0EFA, | ||
+ | def makequake(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F65, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makequake() | ||
+ | def makevortex(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F66, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makevortex() | ||
+ | def makeres(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F67, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makeres() | ||
+ | def makeair(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F68, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makeair() | ||
+ | def makedemon(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F69, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makedemon() | ||
+ | def makeearth(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F6A, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makeearth() | ||
+ | def makefireE(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F6B, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makefireE() | ||
+ | def makewater(): | ||
+ | checkMana(50) | ||
+ | Items.UseItem(pen) | ||
+ | Misc.Pause(1100) | ||
+ | Gumps.WaitForGump(460, | ||
+ | Gumps.SendAction(460, | ||
+ | Misc.Pause(2000) | ||
+ | scroll = Items.FindByID(0x1F6C, | ||
+ | if scroll: | ||
+ | Items.Move(scroll, | ||
+ | Misc.Pause(1100) | ||
+ | else: | ||
+ | makewater() | ||
+ | makequake() | ||
+ | makevortex() | ||
+ | makeres() | ||
+ | makeair() | ||
+ | makedemon() | ||
+ | makeearth() | ||
+ | makefireE() | ||
+ | makewater() | ||
+ | Items.Move(spellbook, | ||
+ | | ||
+ | def makeBook(): | ||
+ | makeSpellbook() | ||
+ | makeFirstCircle() | ||
+ | makeSecondCircle() | ||
+ | makeThirdCircle() | ||
+ | makeFourthCircle() | ||
+ | makeFifthCircle() | ||
+ | makeSixthCircle() | ||
+ | makeSeventhCircle() | ||
+ | makeEighthCircle() | ||
+ | |||
+ | makeBook() | ||
+ | </ |
full_spellbook_crafter.txt · Last modified: 2022/09/03 23:25 by 127.0.0.1