커스텀 캐릭터 주변으로 아이템 줍는 매크로 만들기. (아이템 루팅 방법)
페이지 정보
본문
안녕하세요. 엔지엠소프트웨어입니다. 게임을 하다보면~ 화면 가운데 고정된 내 케릭터 주변을 클릭해서 아이템을 줏어야 하죠? 빠르게 주변에 떨어진 아이템을 루팅하려면 클릭해야 하는데요. 엔지엠 매크로의 액션을 사용해서 구현할수도 있지만, 오늘은 좀 더 쉽게(?) 만드는 방법을 알아보도록 하겠습니다. 우리가 만드는 기능은 아래와 같습니다.
그림판의 오랜지색 점이 내 케릭터의 좌표구요. 주변으로 원을 그리면서 클릭합니다. 너무 빨라서 클릭이 발생했는지 확인이 잘 안됩니다^^; 이 액션은 커스텀 모듈로 만들었기 때문에 엔지엠 프레임워크를 이용해서 커스텀 모듈을 제작하는 방법에 대해 먼저 학습해야 합니다. 커스텀 모듈 제작 가이드는 아래 글을 참고하세요.
[ 커스텀 모듈 만들기 ]
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;
}
}
}
}
}
프로젝트를 컴파일 한 후 엔지엠 에디터에서 모듈을 설치 해줍니다.
사용자 도구에 커스텀 액션이 추가 되었습니다.
필요하면 반복하면서 범위를 넓혀갈수도 있습니다.
좀 더 촘촘하게 클릭하려면 가중치를 늘려보세요.
이 커스텀 모듈은 첨부 파일로 추가되어 있으니, 한번 테스트 해보세요^^; 순수하게 엔지엠 에디터만으로 내 케릭터 주변을 돌면서 클릭하고 싶다면 아래 글을 참고하시면 됩니다. 커스텀 모듈 만들기보다 어쩌면 더 쉬울수도 있는데요. 개발 환경을 갖추는것보다 이게 더 좋은 선택일수도 있어요~
[ 삼각함수를 이용한 아이템 루팅하는 매크로 만들기 ]
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
첨부파일
-
CustomOutsideMouseModule.dll (7.0K)
1회 다운로드 | DATE : 2022-02-05 13:05:16
- 이전글윈도우 창 바둑판 정렬 매크로. (윈도우 창 타일 모양 배열) 22.02.05
- 다음글2부 - 구글 비전 AI로 OCR 다중 언어 인식 만드는 방법. (How to Create OCR Multilingual Recognition with Google Vision AI.) 21.12.22
댓글목록
등록된 댓글이 없습니다.