본문 바로가기
카테고리 없음

캐릭터 주변으로 아이템 줍는 매크로 만들기. (아이템 루팅 방법)

by 엔지엠 2022. 2. 5.
반응형

자동사냥, 자동거래, PC 게임, 모바일 게임, 우회, 오토핫키, 하드웨어 매크로

매크로 제작, 매크로 커뮤니티, 무료 매크로 설치 http://ngmsoftware.com 

 

엔지엠소프트웨어

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

www.ngmsoftware.com

 

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

 

 

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

[ 커스텀 모듈 만들기 ]

 

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 

 

엔지엠소프트웨어

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

www.ngmsoftware.com

반응형

댓글