리콜낚시
페이지 정보
작성자 LastEnvoy 작성일 24-02-14 22:15 조회 196 댓글 2본문
from ClassicAssist.UO.Data import Statics
from ClassicAssist.UO import UOMath
from Assistant import Engine
from System import Convert
import clr
clr.AddReference('System.Core')
runebooks = [0x42030d5d] #낚시 Spot이 찍힌 룬북 시리얼번호 (여러개면 콤마 넣어가면서 넣으세요.)
homebook = 0x42030d5c #자원을 놓을 장소가 설정되어 있는 룬북 시리얼번호
homeNum = 1 #자원을 놓을 장소가 설정되어 있는 룬 위치 (1 ~ 16)
resChest = 0x420504d2 # 자원을 넣어둘 컨테이너 시리얼번호
fishingpole = 0x42a87a1c # 낚시대 시리얼번호
knife = 0x42a86796 # 물고기를 자를 칼 시리얼번호
bulkbooks = 0x4002d6cb
trashbag = 0x42cab338
####################################################################
#################### 아래 설정은 건들지 마세요!!! ####################
#################### 아래 설정은 건들지 마세요!!! ####################
#################### 아래 설정은 건들지 마세요!!! ####################
####################################################################
recallbuttons = list(range(10,26))
fishtile = [6039, 6044, 13422, 13445, 13456, 13483, 13493, 13525, 6039]
fishes = [0x4306, 0x4307, 0x9cc, 0x9cd, 0x9ce, 0x9cf, 0x44c6, 0x4303, 0x44c4]
resources = [0x97a, 0x3196, 0x573a]
trash = [0x1711, 0x170b, 0x170f, 0x170d, 0xdd6]
craftGumpId = 0x38920abd
iron_recall = 3
deedgiver_iron = [0xf1, 0xf1]
cloth_recall = 4
deedgiver_cloth = [0xe3, 0xe3]
wood_recall = 5
deedgivers_wood = [0x23b, 0x220, 0x23f, 0x23b, 0x220, 0x23f] #tinker. carpenter, bower
deedresettime = 14400000
def GetRunebookEntries(serial):
entries = []
SysMessage(str(serial))
UseObject(serial)
if WaitForGump(0x59, 5000):
res,gump = Engine.Gumps.GetGump(0x59)
y = 60
while y <= 165:
element = gump.Pages[1].GetElementByXY(145, y)
if element != None and element.Hue != 0:
entries.append(element.Text)
y = y + 15
y = 60
while y <= 165:
element = gump.Pages[1].GetElementByXY(305, y)
if element != None and element.Hue != 0:
entries.append(element.Text)
y = y + 15
return entries
def GetNearestWater():
waters = []
xaxis = range(Engine.Player.X-4, Engine.Player.X+5)
yaxis = range(Engine.Player.Y-4, Engine.Player.Y+5)
for x in xaxis:
for y in yaxis:
statics = Statics.GetStatics(Convert.ChangeType(Engine.Player.Map, int), x, y)
if statics == None:
continue
for s in statics:
if s.Name.Contains("water") and s.ID in fishtile:
waters.append({"X": (s.X), "Y": (s.Y), "Z": s.Z, "ID": s.ID})
return waters
def Fishing(fishingspots, num = 0):
if num == len(fishingspots):
return False
spot = fishingspots[num]
UseObject(fishingpole)
WaitForTarget(1000)
TargetXYZ(spot['X'], spot['Y'], spot['Z'], spot['ID'])
if not InJournal('Target cannot be seen', 'system'):
Pause(8500)
else:
ClearJournal()
Pause(500)
num = num + 1
Fishing(fishingspots, num)
def DropResources(runebook):
UseObject(runebook)
WaitForGump(0x59, 5000)
ReplyGump(0x59, (9 + homeNum))
Pause(5000)
for item in resources:
while FindType(item, -1, "backpack"):
MoveItem("found", resChest)
Pause(1000)
def ChopFishes():
for fish in fishes:
while FindType(fish, -1, "backpack"):
UseObject(knife)
WaitForTarget(5000)
Target("found")
Pause(1000)
def ThrowAway():
for one in trash:
while FindType(one, -1, "backpack"):
MoveItem("found", trashbag)
Pause(1000)
IgnoreObject("found")
for y in range(len(runebooks)):
currentbook = runebooks[y]
entries = GetRunebookEntries(currentbook)
for x in range(len(entries)):
UseObject(currentbook)
WaitForGump(0x59, 2000)
ReplyGump(0x59, recallbuttons[x])
Pause(2000)
ClearJournal()
while not InJournal("The fish don't seem to be biting here", "system"):
Fishing(GetNearestWater())
if Weight() >= (MaxWeight() - 150) and Weight() <= (MaxWeight() - 80):
ChopFishes()
ThrowAway()
if Weight() >= (MaxWeight() - 80):
ChopFishes()
DropResources(homebook)
UseObject(currentbook)
WaitForGump(0x59, 5000)
ReplyGump(0x59, recallbuttons[x])
Pause(5000)
댓글목록 2
ackdang님의 댓글
ackdang 작성일감사합니다!!!!!!!!
마스터골드님의 댓글
마스터골드 작성일좋은자료 감사합니다!