#Necromancy Spellbook Crafter by Frank Castle
#
# Instructions:
#
# Have plenty of Exceptional Scribes Pens with makers mark on them
# Have GM Inscription. It just makes it easier.
# Have a resource container with plenty of scrolls and regs
# Have at least 100 mana
# Have a trash can within reach
# Have your Necromancy spellbook in your hand. Do not have any other Necromancy spellbooks in your backpack.
# Having Meditation and a Mana Regen suit is recommended, but not necessary.
# This will use premade scrolls if they are in the Storage Container. Otherwise it will make them.
from System.Collections.Generic import List
stoCont = Target.PromptTarget('Target your Storage Container')
Items.UseItem(stoCont)
Misc.Pause(2000)
bookBag = Target.PromptTarget('Target your BookBag')
Items.UseItem(stoCont)
Misc.Pause(2000)
regsList = [0x0F78,0x0F8E,0x0F8F,0x0F7D,0x0F8A,0x0EF3]
necScrollList = [0x2260,0x2261,0x2262,0x2263,0x2264,0x2265,
0x2266,0x2267,0x2268,0x2269,0x226A,0x226B,0x226C,0x226D,0x226E,
0x226F,0x2270]
global pen
pen = Items.FindByID(0x0FBF,-1,Player.Backpack.Serial)
global GumpButton
GumpButton = 100
GFilter = Items.Filter()
GFilter.RangeMax = 5
GFilter.OnGround = True
GFilter.Enabled = True
GFilter.Movable = True
garbagecan = List[int]((0x0E77, 0x0E77))
GFilter.Graphics = garbagecan
def getSupplies():
for i in regsList:
if Items.BackpackCount(i,-1) < 30:
reg = Items.FindByID(i,-1,stoCont)
Misc.Pause(500)
Items.Move(reg,Player.Backpack.Serial,100)
Misc.Pause(1100)
def makeScrolls():
for S in necScrollList:
getSupplies()
checkPen()
checkMana(41)
global GumpButton
GumpButton = GumpButton + 1
def necScroll():
Items.UseItem(pen)
Gumps.WaitForGump(460, 10000)
Gumps.SendAction(460, GumpButton)
Misc.Pause(3000)
storedScroll = Items.FindByID(S,-1,stoCont)
spellbook = Items.FindByID(0x2253,-1,Player.Backpack.Serial)
if storedScroll:
Items.Move(storedScroll, spellbook, 1)
Misc.Pause(1100)
else:
while Items.ContainerCount(Player.Backpack.Serial,S,-1) < 1:
necScroll()
Misc.Pause(200)
packScroll = Items.FindByID(S,-1, Player.Backpack.Serial)
Misc.Pause(200)
Items.Move(packScroll, spellbook, 1)
Misc.Pause(1100)
GumpButton = 100
def makeSpellbook():
getSupplies()
Items.UseItem(pen)
Gumps.WaitForGump(460, 10000)
Gumps.SendAction(460, 207)
Misc.Pause(3000)
spellbook = Items.FindByID(0x2253,-1,Player.Backpack.Serial)
if not spellbook:
makeSpellbook()
def checkPen():
curCharges = Items.FindByID(0x0FBF,-1,Player.Backpack.Serial)
Items.WaitForProps(curCharges,2000)
props = Items.GetPropStringList(curCharges.Serial)
Misc.Pause(500)
prop = props[3].split(' ')[2]
Misc.SendMessage(prop)
Misc.Pause(500)
if int(prop) < 20:
global pen
garbagecans = Items.ApplyFilter(GFilter)
Misc.Pause(500)
garbagecan = Items.Select(garbagecans, 'Nearest')
Misc.Pause(500)
Items.Move(pen,garbagecan,0)
Misc.Pause(1100)
checkPen()
pen = Items.FindByID(0x0FBF,-1,Player.Backpack.Serial)
def checkMana(mana):
while Player.Mana < mana:
Player.UseSkill('Meditation')
Misc.Pause(11500)
def makeBook():
while Player.Mana < Player.ManaMax :
Player.UseSkill('Meditation')
Misc.Pause(10000)
makeSpellbook()
makeScrolls()
spellbook = Items.FindByID(0x2253,-1,Player.Backpack.Serial)
Misc.Pause(200)
Items.Move(spellbook,bookBag,0)
while True:
makeBook()