Enhanced Razor 리콜 럼버
페이지 정보
작성자 LastEnvoy 작성일 24-02-14 22:02 조회 164 댓글 3본문
import clr
clr.addReference('System.Core')
################ 개별 사용자 설정 ######################
runebooks = [0x40460f83, 0x40460f7c, 0x40460f7a, 0x40460f79] #나무가 찍힌 룬북ID로 교체하세요.
homebook = 0x42030d5c # 보관함이 찍혀있는 룬북ID로 교체하세요
homeNum = 1 #홈이 찍혀있는 룬북 번호로 바꾸세요. (1~16)
resChest = 0x41f30a79 #보관함ID로 교체하세요.
################ 설정 완료 ######################
recallbuttons = list(range(10,26))
lumberresources = [0x1bd7, 0x1bdd, 0x3199, 0x318f, 0x2f5f, 0x3190, 0x3191, 0x5738]
craftGumpId = 0x38920abd
def GetNearestTree():
mobile = Mobiles.FindBySerial(Player.Serial)
trees = []
for x in range(Player.Position.X-2, Player.Position.X+3):
for y in range(Player.Position.Y-2, Player.Position.Y+3):
statics = Statics.GetStaticsTileInfo(x,y, mobile.Map)
if statics == None:
continue
for s in statics:
if Statics.GetTileName(s.ID).Contains("tree"):
trees.append({'X': x, 'Y': y, 'Z': s.Z, 'ID':s.ID})
return trees
def Lumber():
Trees = GetNearestTree()
if len(Trees) > 0:
TotalTrees = len(Trees)
print(str(TotalTrees) + " total trees in queue")
for tree in Trees:
Journal.Clear()
for i in range(10):
Items.UseItem(Player.GetItemOnLayer('LeftHand'))
Target.WaitForTarget(2000, False)
#print(tree)
Target.TargetExecute(tree['X'], tree['Y'], tree['Z'], tree['ID'])
Misc.Pause(1100)
Target.ClearLastandQueue()
Target.Cancel()
if Journal.Search("not enough") or Journal.Search("can't use an axe") or Journal.Search("too far away") or Journal.Search("cannot be seen"):
break
def DropResources(runebook):
while not Items.FindBySerial(resChest):
Items.UseItem(runebook)
Misc.Pause(100)
Gumps.WaitForGump(0x59, 5000)
Gumps.SendAction(0x59, (9 + homeNum))
Misc.Pause(2000)
Items.UseItem(resChest)
Misc.Pause(2000)
for item in lumberresources:
for item in Items.FindAllByID(item,-1,Player.Backpack.Serial,False,True):
Items.Move(item, resChest, -1)
Misc.Pause(1000)
def CutLogs():
for log in Items.FindAllByID(0x1bdd,-1,Player.Backpack.Serial,False,True):
Items.UseItem(Player.GetItemOnLayer('LeftHand'))
Target.WaitForTarget(1000)
Target.TargetExecute(log)
Misc.Pause(500)
while True:
for y in range(len(runebooks)):
currentbook = runebooks[y]
for x in range(16):
if Player.Poisoned:
Spells.CastMagery("Arch Cure")
Target.WaitForTarget(2000)
Target.TargetExecute(Player.Serial)
elif Player.Hits < Player.HitsMax * 0.8:
Spells.CastMagery("Greater Heal")
Target.WaitForTarget(2000)
Target.TargetExecute(Player.Serial)
Items.UseItem(currentbook)
Misc.Pause(100)
Gumps.WaitForGump(89, 5000)
Gumps.SendAction(89, recallbuttons[x])
Misc.Pause(1000)
Misc.Resync()
Misc.Pause(3000)
Journal.Clear()
Lumber()
if Player.Weight >= (Player.MaxWeight - 80):
CutLogs()
if Player.Weight >= (Player.MaxWeight - 80):
DropResources(homebook)
Items.UseItem(currentbook)
Misc.Pause(100)
Gumps.WaitForGump(0x59, 5000)
Gumps.SendAction(0x59, recallbuttons[x])
Misc.Pause(5000)
댓글목록 3
잠이보약님의 댓글
잠이보약 작성일
안녕하세요 최근에 제가 이 스크립트를 실행해보니
if Statics.GetTileName(s.ID).Contains("tree"): 부분에서
string에 Contains 부분이 파이썬엔 없는거같더라구요
그래서 if "tree" in Statics.GetTileName(s.ID): 로 바꿔보았고
Target.ClearLastandQueue()
Target.Cancel()
이 두개를 삭제하였습니다.
LastEnvoy님의 댓글의 댓글
LastEnvoy 작성일
import clr
clr.addReference('System.Core')
이부분만 추가하시면 됩니다.
마스터골드님의 댓글
마스터골드 작성일감사합니다!