본문 바로가기
엔지엠 매크로

캐릭터 주변으로 아이템 줍는 매크로 만들기

by 엔지엠 2022. 7. 6.
반응형

안녕하세요. 엔지엠소프트웨어입니다. 게임을 하다보면~ 화면 가운데 고정된 내 케릭터 주변을 클릭해서 아이템을 줏어야 하죠? 빠르게 주변에 떨어진 아이템을 루팅하려면 클릭해야 하는데요. 엔지엠 매크로의 액션을 사용해서 구현할수도 있지만, 오늘은 좀 더 쉽게(?) 만드는 방법을 알아보도록 하겠습니다. 우리가 만드는 기능은 아래와 같습니다.

 

 

그림판의 오랜지색 점이 내 케릭터의 좌표구요. 주변으로 원을 그리면서 클릭합니다. 너무 빨라서 클릭이 발생했는지 확인이 잘 안됩니다^^; 이 액션은 커스텀 모듈로 만들었기 때문에 엔지엠 프레임워크를 이용해서 커스텀 모듈을 제작하는 방법에 대해 먼저 학습해야 합니다. 커스텀 모듈 제작 가이드는 아래 글을 참고하세요.

[ 커스텀 모듈 만들기 ]

 

Visual Studio를 실행한 후 커스텀 모듈 프로젝트를 만들었습니다. 프로젝트 이름은 ①CustomOutsideMouseModule입니다. 엔지엠 프레임워크에서 제공하는 ②③커스텀 모듈 API들을 추가해야 합니다. 마지막으로 ④OutsideMouseModel.cs 클래스를 추가해야 합니다.

 

 

아래는 전체 코드입니다. 이 코드를 OutsideMouseModel 클래스에 붙여넣기 하세요.

using NGM.Utility.MouseKeyboardManager;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Design;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CustomOutsideMouseModule
{
    [Serializable]
    public class OutsideMouseModel : NGM.Models.Interface.BaseCustomToolModel
    {
        /// <summary>
        /// 도구 상자에 표시될 카테고리 이름을 가져옵니다.
        /// </summary>
        public override string DisplayCategory => "NGMsoftware";

        /// <summary>
        /// 도구 상자에 표시될 액션 이름을 가져옵니다.
        /// </summary>
        public override string DisplayName => "아웃사이드 클릭";

        [Category("Action")]
        [DisplayName("마우스 좌표")]
        [Description("이 좌표를 중심으로 외각을 클릭합니다.")]
        [Browsable(true)]
        [DefaultValue(typeof(Point), "0, 0")]
        [Editor(typeof(NGM.Models.TypeEditor.MouseTrackingEditor), typeof(UITypeEditor))]
        public Point MousePoint { get; set; }

        [Category("Action")]
        [DisplayName("클릭 수")]
        [Description("마우스 좌표 외각으로 클릭할 횟수를 입력하세요.")]
        [Browsable(true)]
        [DefaultValue(8)]
        public int ClickCount { get; set; } = 8;

        [Category("Action")]
        [DisplayName("거리")]
        [Description("중심점으로부터 떨어진 거리를 입력하세요.")]
        [Browsable(true)]
        [DefaultValue(30)]
        public int Distance { get; set; } = 30;

        [Category("Action")]
        [DisplayName("반복")]
        [Description("거리만큼 증가하면서 반복 수행합니다.")]
        [Browsable(true)]
        [DefaultValue(1)]
        public int Repeat { get; set; } = 1;

        [Category("Action")]
        [DisplayName("가중치")]
        [Description("반복 횟수에 따라 거리가 멀어지면, 클릭 횟수를 늘려줍니다.")]
        [Browsable(true)]
        [DefaultValue(1)]
        public int Weight { get; set; } = 1;

        public override void Execute()
        {
            int distance = Distance;
            for (int r = 0; r < Repeat; r++)
            {
                float theta = 0;
                float deltaTheta = (float)(2 * Math.PI / (ClickCount + (Weight * r)));
                distance *= (r + 1);

                for (int c = 0; c < ClickCount + (Weight * r); c++)
                {
                    int x = (int)(MousePoint.X + distance * Math.Cos(theta));
                    int y = (int)(MousePoint.Y + distance * Math.Sin(theta));
                    MouseSimulator.Position = new Point(x, y);
                    MouseSimulator.Click((MouseSimulator.MouseButton)Enum.Parse(typeof(MouseSimulator.MouseButton), "Left"));
                    theta += deltaTheta;
                }
            }
        }
    }
}

 

프로젝트를 컴파일 한 후 엔지엠 에디터에서 모듈을 설치 해줍니다.

 

 

사용자 도구에 커스텀 액션이 추가 되었습니다.

 

 

필요하면 반복하면서 범위를 넓혀갈수도 있습니다.

 

 

좀 더 촘촘하게 클릭하려면 가중치를 늘려보세요.

 

 

이 커스텀 모듈은 첨부 파일로 추가되어 있으니, 한번 테스트 해보세요^^; 순수하게 엔지엠 에디터만으로 내 케릭터 주변을 돌면서 클릭하고 싶다면 아래 글을 참고하시면 됩니다. 커스텀 모듈 만들기보다 어쩌면 더 쉬울수도 있는데요. 개발 환경을 갖추는것보다 이게 더 좋은 선택일수도 있어요~

[ 삼각함수를 이용한 아이템 루팅하는 매크로 만들기 ]

[ 초보자도 쉽게 따라할 수 있는 기초 학습 강좌 보기 ]

 

원본 글 보기

http://ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

#화면인식매크로 #이미지인식매크로 #엑셀매크로 #메크로 #Macro #오토핫키 #지존오토 #이미지맥스 #오딘 #리니지 #로아 #자동매매 #거래소매크로 #심플핫키 #카카오토 #비활성매크로 #마우스매크로 #키보드매크로 #지매크로 #g매크로 #키매크로 #하드웨어매크로 #기계식매크로 #주식매크로 #코인매크로 #선물매크로 #카피매크로 #네이버매크로 #카페매크로 #중고나라매크로 #당근매크로 #쇼핑몰매크로 #상품자동등록매크로 #대량문자발송매크로 #대량이메일발송매크로 #랜덤좌표매크로 #티켓팅매크로 #골프매크로 #캠핑장매크로 #예약매크로

반응형

댓글