리콜럼버 > 클래식어시스트 매크로

본문 바로가기
사이트 내 전체검색

클래식어시스트 매크로

 

리콜럼버

페이지 정보

profile_image
작성자 LastEnvoy
댓글 9건 조회 353회 작성일 24-02-14 22:17

본문

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 = [0x42206250, 0x42206252, 0x4220624f, 0x42206251] #Replace this with your own runebooks  
homebook = 0x4220624e #Replace this with your own runebook with dropoff location
resChest = 0x41cd779e #Replace this with your resource container

recallbuttons = list(range(10,26))
lumberresources = [0xeed0x1bd70x1bdd0x31990x318f0x2f5f0x31900x31910x5738]
craftGumpId = 0x38920abd

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 GetNearestTree():
    trees = []
    for x in range(Engine.Player.X-2, Engine.Player.X+3):
        for y in range(Engine.Player.Y-2, Engine.Player.Y+3):
            statics = Statics.GetStatics(Convert.ChangeType(Engine.Player.Map, int), x, y)
            if statics == None:
                continue
            for s in statics:
                if s.Name.Contains("tree"):
                    trees.append({'X': (s.X - Engine.Player.X), 'Y': (s.Y - Engine.Player.Y), 'Z': s.Z})
    return trees

def Lumber():
    Trees = GetNearestTree()
    if len(Trees) > 0:
        TotalTrees = len(Trees)
        SysMessage(str(TotalTrees) + " total trees in queue")
        for tree in Trees:
            ClearJournal()
            while not InJournal("not enough") and not InJournal("can't use an axe"):
                UseLayer("TwoHanded")
                WaitForTarget(1000)
                TargetTileOffsetResource(tree['X'], tree['Y'], tree['Z'])
                Pause(1100)
        
def DropResources(runebook):
    while not FindObject(resChest):
        UseObject(runebook)
        WaitForGump(0x59, 5000)
        ReplyGump(0x59, 10)
        Pause(5000)
    for item in lumberresources:
        while FindType(item, -1, "backpack"):
            MoveItem("found", resChest)
            Pause(1000)

def DropResourcesToBank(runebook):
    while not FindObject(0x220):
        UseObject(runebook)
        WaitForGump(0x59, 5000)
        ReplyGump(0x59, 15)
        Pause(2000)
    while FindType(0x1bd7, -1, 'backpack'):        
        Msg("bank")
        FindObject(0x220)
        Pause(1000)
        WaitForContext('found', 5, 5000)
        WaitForGump(0x9bade6ea, 5000)
        ReplyGump(0x9bade6ea, 1)
        Pause(3000)
    for item in lumberresources:
        while FindType(item, -1, "backpack"):
            MoveItem("found", resChest)
            Pause(1000)

def CutLogs():
    while FindType(0x1bdd, -1, "backpack"):
        UseLayer("TwoHanded")
        WaitForTarget(5000)
        Target("found")
        Pause(1000)

while True:
    for y in range(len(runebooks)):
        currentbook = runebooks[y]
        entries = GetRunebookEntries(currentbook)
        for x in range(len(entries)):
            if GetEnemy(['Criminal', 'Gray','Murderer'], 'any', 'closest', 'any', 1):
                Target("enemy") # 타겟 잡기
                HeadMsg("▼", "enemy", 33)
                while not InRange("enemy", 2):
                    Pause(300)
                    Attack("enemy")
            if Poisoned("self"):  #독 푸는 부분
                Cast("Arch Cure")
                WaitForTarget(2000)
                Target("self")
            elif DiffHits('self') > 20:  #캐릭터 피 숫자 바꾸시면 됩니다
                Cast("Greater Heal")
                WaitForTarget(2200)
                Target("self")               
            UseObject(currentbook)
            WaitForGump(0x59, 5000)
            ReplyGump(0x59, recallbuttons[x])
            Pause(5000)
            ClearJournal()
            Lumber()
            if Weight() >= (MaxWeight() - 80):
                CutLogs()
            if Weight() >= (MaxWeight() - 80):
                DropResourcesToBank(homebook)
                UseObject(currentbook)
                WaitForGump(0x59, 5000)
                ReplyGump(0x59, recallbuttons[x])
                Pause(5000)
            Resync()

🔒 로그인 후 내용을 확인하세요

댓글목록

profile_image

마스터골드님의 댓글

마스터골드 작성일

좋은자료 감사합니다!

profile_image

mrgoora님의 댓글

mrgoora 작성일

runebooks = [0x419be90e, 0x419be909, 0x419be90c, 0x419be90a] #Replace this with your own runebooks 
homebook = 0x419be90b #Replace this with your own runebook with dropoff location
resChest = 0x40d8713e #Replace this with your resource container

럼젝 실행까지 다 잘 되는데 집에 갈려고 하면..책의 이곳은 비어 있습니다 라고 나오네요.;;

profile_image

잠이보약님의 댓글의 댓글

잠이보약 작성일

제가 볼때 집에 있는 상자를 이용하신다면
대략 133번째줄에있는 DropResourcesToBank(homebook)를
DropResources(homebook) 로 바꿔주시면 될꺼같습니다

profile_image

하얀악녀님의 댓글

하얀악녀 작성일

이거 무게 얼마에 돌아 가는지 알수 있을려나요?
바닥에 나무 다 떨어 지는데
조정 할려면 어디를 수정 해야 하는지?

profile_image

잠이보약님의 댓글의 댓글

잠이보약 작성일

if Weight() >= (MaxWeight() - 80):
이걸로 무게를 체크하는데
대략적으로 설명드리면
현재 무게가 최대무게 - 80 인 값보다 크다면 입니다
넉넉하게 조정하고 싶으시면 80을 좀더 키우시면 될듯합니다

profile_image

하얀악녀님의 댓글의 댓글

하얀악녀 작성일

200으로 조정을 했는데도 집으로 귀환을 안하네요

profile_image

훔바바님의 댓글

훔바바 작성일

if GetEnemy(['Criminal', 'Gray','Murderer'], 'any', 'closest', 'any', 1):
                Target("enemy") # 타겟 잡기
                HeadMsg("▼", "enemy", 33)
                while not InRange("enemy", 2):
                    Pause(300)
                    Attack("enemy")
            if Poisoned("self"):  #독 푸는 부분
                Cast("Arch Cure")
                WaitForTarget(2000)
                Target("self")
            elif DiffHits('self') > 20:  #캐릭터 피 숫자 바꾸시면 됩니다
                Cast("Greater Heal")
                WaitForTarget(2200)
                Target("self")         

이부분이 잘못 들어 갔는거 같네요 이부분 없애고 하니까 집에 가네요
판자 무게가 가벼워서 무게도 조정해서 하는게 좋을거 같네요
메크로 올려주신 덕분에 편하게 게임 하고 있습니다 감사합니다 ㅎ

profile_image

김기말님의 댓글

김기말 작성일

if Weight() >= (MaxWeight() - 80):
                CutLogs()
 if Weight() >= (MaxWeight() - 80):
                DropResourcesToBank(homebook)
                UseObject(currentbook)
                WaitForGump(0x59, 5000)
                ReplyGump(0x59, recallbuttons[x])
                Pause(5000)

1. 집상자 이용하고 싶다 : 저 맥스웨이트로 비교하는 if문 아래에 DropResourcesToBank(homebook) -> DropResources(homebook)으로 변경
2. 뱅크 이용하고 싶다 : 그대로
3. 책이 비어있다고 뜬다 -> DropResourcesToBank(homebook)나 DropResources(homebook) 함수선언 부분 밑의

 while not FindObject(0x220):
        UseObject(runebook)
        WaitForGump(0x59, 5000)
        ReplyGump(0x59, 15)
        Pause(2000)

에서 밑에 WaitForGump(0x59, 5000)
        ReplyGump(0x59, 15) 이 부분이 정해진 룬북 위치 클릭하는 곳인데(사람마다 다르겠죠?) 이걸 룬북눌러서 자기 집이나 은행으로 리콜하는걸 다른 매크로에서 녹화 하신후 자기 룬북에 맞게 교체해주시면 됨

당연하겠지만 룬위치는 리소스상자 or bank 명령어가 바로 먹힐 정도로 가까워야 됨

잘사용하겠습니다 고맙습니다!

profile_image

fisherH님의 댓글의 댓글

fisherH 작성일

엇 저는 집 상자를 이용하는거고 저 함수로 변경하니까 너무 잘됬습니다 감사합니다 김기말님

Total 134건 6 페이지
클래식어시스트 매크로 목록
번호 제목 글쓴이 조회 날짜
34 fisherH 190 02-15
33 바보울온 244 02-15
32
리콜마이닝 인기글 댓글6
LastEnvoy 451 02-14
31 Sendol 209 05-04
열람중
리콜럼버 인기글 댓글9
LastEnvoy 354 02-14
29
답변글 Re: 리콜럼버 안녕하세요 인기글 첨부파일
mrgoora 197 02-24
28
리콜낚시 인기글 댓글2
LastEnvoy 196 02-14
27 바보울온 316 02-14
26 바보울온 391 02-12
25 바보울온 133 02-12
24 바보울온 191 02-12
23 바보울온 254 02-12
22
[클어씨#9] 룬북 낚시 매크로 인기글 첨부파일 댓글1
바보울온 178 02-12
21 바보울온 170 02-12
20 바보울온 170 02-12
19
[클어씨#6] 네크 훈련 매크로 인기글 첨부파일 댓글2
바보울온 327 02-12
18
[클어씨#5] 위빙 훈련 매크로 인기글 첨부파일 댓글2
바보울온 310 02-12
17
[클어씨#4] 매저리 훈련 매크로 인기글 첨부파일 댓글3
바보울온 342 02-12
16
[클어씨#3] 디스코 훈련 매크로 인기글 첨부파일 댓글2
바보울온 456 02-12
15 바보울온 331 02-12

검색

 


회사소개 개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 00-000-0000 FAX. 00-000-0000 서울 강남구 강남대로 1
대표:홍길동 사업자등록번호:000-00-00000 개인정보관리책임자:홍길동

Copyright © 소유하신 도메인. All rights reserved.