runebook_and_runic_atlas_copier
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | runebook_and_runic_atlas_copier [2022/09/03 23:25] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | < | ||
+ | #Runebook and Runic Atlas Copier by Frank Castle | ||
+ | # | ||
+ | #What you need: | ||
+ | # 1) 100% LRC Suit | ||
+ | # 2) Plenty of mana | ||
+ | # 3) Enough blank runes to copy the entire book | ||
+ | # DO NOT HAVE ANY RUNES IN YOUR BACKPACK THAT YOU DO NOT WANT MARKED OVER!!!!!!!!!!!!!! | ||
+ | # | ||
+ | # THIS SCRIPT WILL NOT AUTODEFEND. | ||
+ | # THIS SCRIPT WILL STOP AFTER THE LAST RUNE IN THE BOOK IS COPIED. | ||
+ | # RUNE YOU WILL NEED TO WATCH IT | ||
+ | # | ||
+ | # | ||
+ | # This will copy runebook to runebook or runic atlas to runic atlas so have an empty book | ||
+ | # of the same type | ||
+ | # | ||
+ | # You will need to set the runeTotal below to the number of runes in the book you are copying | ||
+ | |||
+ | runeTotal = 16 #set to the total number of runes you are copying from the runebook/ | ||
+ | |||
+ | |||
+ | |||
+ | from System.Collections.Generic import List | ||
+ | global oldBook | ||
+ | global newBook | ||
+ | global oldRune | ||
+ | global bookType | ||
+ | runeCounter = 0 | ||
+ | |||
+ | contents =[] | ||
+ | blanks = Items.BackpackCount(0x1F14, | ||
+ | sufficientRunes = True | ||
+ | if blanks < runeTotal: | ||
+ | Misc.SendMessage(' | ||
+ | Misc.SendMessage(' | ||
+ | sufficientRunes = False | ||
+ | | ||
+ | if not Player.BuffsExist(' | ||
+ | Spells.CastMagery(" | ||
+ | Misc.Pause(2000) | ||
+ | |||
+ | def setBagContents(): | ||
+ | for items in Items.FindBySerial(Player.Backpack.Serial).Contains: | ||
+ | if items.Serial not in contents: | ||
+ | contents.append(items.Serial) | ||
+ | | ||
+ | def findRune(): | ||
+ | global oldRune | ||
+ | for rune in Items.FindBySerial(Player.Backpack.Serial).Contains: | ||
+ | if rune.Serial not in contents: | ||
+ | oldRune = Items.FindBySerial(rune.Serial) | ||
+ | Misc.Pause(500) | ||
+ | props = Items.GetPropStringList(rune) | ||
+ | Misc.Pause(500) | ||
+ | prop = props[2].split(' | ||
+ | name = '' | ||
+ | n = 3 | ||
+ | for x in prop: | ||
+ | n = n + 1 | ||
+ | if n == len(prop)-1: | ||
+ | break | ||
+ | name = ' | ||
+ | def Recall(): | ||
+ | while Player.Mana < 40: | ||
+ | Misc.Pause(2000) | ||
+ | Journal.Clear() | ||
+ | Spells.CastMagery(" | ||
+ | Target.WaitForTarget(10000, | ||
+ | Target.TargetExecute(rune) | ||
+ | Misc.Pause(4000) | ||
+ | Recall() | ||
+ | if Journal.Search(' | ||
+ | Misc.Pause(30000) | ||
+ | Recall() | ||
+ | Items.Move(oldRune, | ||
+ | Misc.Pause(1100) | ||
+ | newRune = Items.FindByID(0x1F14, | ||
+ | Spells.CastMagery(" | ||
+ | Target.WaitForTarget(10000, | ||
+ | Target.TargetExecute(newRune) | ||
+ | Items.UseItem(newRune) | ||
+ | Misc.Pause(1100) | ||
+ | Misc.ResponsePrompt(' | ||
+ | Misc.Pause(1100) | ||
+ | Items.Move(newRune, | ||
+ | Misc.Pause(1100) | ||
+ | break | ||
+ | | ||
+ | |||
+ | |||
+ | def ChooseBook(): | ||
+ | global oldBook | ||
+ | global bookType | ||
+ | OldBook = Target.PromptTarget(' | ||
+ | Misc.Pause(1100) | ||
+ | oldBook = Items.FindBySerial(OldBook) | ||
+ | if oldBook.ItemID == 0x22C5: | ||
+ | bookType = 1 | ||
+ | DefineRunebook() | ||
+ | elif oldBook.ItemID | ||
+ | bookType = 2 | ||
+ | DefineRunicAtlas() | ||
+ | else: | ||
+ | Misc.SendMessage(' | ||
+ | ChooseBook() | ||
+ | | ||
+ | def DefineRunebook(): | ||
+ | global newBook | ||
+ | NewBook = Target.PromptTarget(' | ||
+ | Misc.Pause(1100) | ||
+ | newBook = Items.FindBySerial(NewBook) | ||
+ | if newBook.ItemID != 0x22C5 and newBook.ItemID != 0x9C16: | ||
+ | Misc.SendMessage(' | ||
+ | DefineRunebook() | ||
+ | | ||
+ | def DefineRunicAtlas(): | ||
+ | global newBook | ||
+ | NewBook = Target.PromptTarget(' | ||
+ | Misc.Pause(1100) | ||
+ | newBook = Items.FindBySerial(NewBook) | ||
+ | if newBook.ItemID != 0x9C16: | ||
+ | Misc.SendMessage(' | ||
+ | DefineRunicAtlas() | ||
+ | |||
+ | def dropRune(): | ||
+ | global runeCounter | ||
+ | global bookType | ||
+ | runeCounter = runeCounter + 1 | ||
+ | setBagContents() | ||
+ | if bookType == 1: | ||
+ | Items.UseItem(oldBook) | ||
+ | Gumps.WaitForGump(89, | ||
+ | Gumps.SendAction(89, | ||
+ | if bookType == 2: | ||
+ | Items.UseItem(oldBook) | ||
+ | Gumps.WaitForGump(498, | ||
+ | Gumps.SendAction(498, | ||
+ | Gumps.WaitForGump(498, | ||
+ | Gumps.SendAction(498, | ||
+ | Misc.Pause(1100) | ||
+ | findRune() | ||
+ | | ||
+ | def Main(): | ||
+ | if sufficientRunes == True: | ||
+ | ChooseBook() | ||
+ | global runeCounter | ||
+ | while runeCounter < runeTotal: | ||
+ | dropRune() | ||
+ | runeCounter | ||
+ | |||
+ | Main() | ||
+ | |||
+ | </ |
runebook_and_runic_atlas_copier.txt · Last modified: 2022/09/03 23:25 by 127.0.0.1