리콜 럼버 > 라죠 매크로

본문 바로가기

사이트 내 전체검색

뒤로가기 라죠 매크로

 

Enhanced Razor 리콜 럼버

페이지 정보

작성자 LastEnvoy 작성일 24-02-14 22:02 조회 167 댓글 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')

이부분만 추가하시면 됩니다.

전체 93건 3 페이지
게시물 검색

 

회사소개 개인정보처리방침 서비스이용약관

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

Copyright © 소유하신 도메인. All rights reserved.
PC 버전으로 보기