제가 만든 기능 일 부 중 ocr을 통해 실시간으로 체력의 % 를 구하고 % 를 가지고
원하는 % 에 원하는 작업을 하는 것을 간단하게 올려보려 합니다.
음 어찌보면 노하우지만, 처음 접하시는 분들 어려움이 있으실 것 같아서
저도 이것저것 해보다가 만들어본 부분입니다.
먼저 원하는 게임의 핸들을 추가해주세요
반복할때 편하게 하기 위해서 그룹을 하나 만들어 주시고 그룹의 아이디는 시작 또는 원하는 것으로
만들어주세요.
그리고 현재 체력의 % 를 구하기 위해서는
1. 지금의 체력의 값
2. 총체력의 값
3. 전체 체력바의 값
4. 체력의 % 값
들이 있어야지만 게임에서 체력을 구해서 물약을 먹을 수 있습니다.
일단 변수 선언을 해주도록 하겠습니다 위에 변수들을 넣어놓으면 언제든지 불러와서 쓸 수 있습니다.
저는 그냥 이렇게 만들어줬습니다.
ocr 체크를 통해서 원하는 값을 읽어와야 합니다.
ocr을 넣어주었습니다. ocr 이 가져와야 할 게임에서의 좌표를 지정해준 뒤에
저는 위에 값을 읽어오도록 했습니다. 게임마다 설정 값들이 다르기에 ocr 테스터를 이용하시면
값을 읽어오시는데 좀 더 편하게 읽어 오실 수 있습니다.
그리면 ocr 체크를 통해서 가져온 값이 3455 / 3455 가 들어 있습니다.
이 값을 변수 전체 hp bar 에다가 넣어주고 앞으로 이 값을 통해서 계산하려 합니다.
판독 문자를 전체 hp bar라는 변수에다가 값을 추가하기 하였습니다.
그리고 문자열 분리를 통해서 지금의 체력의 값을 분리하고 총체력의 값도 분리할 것입니다.
위 이미지에서 앞의 값은 현재 체력 뒤에 값은 총체력입니다.
먼저 앞의 수치를 가져오겠습니다.
문자열 분리를 통해서
가져오기를 해줍니다.
저장해놓았던 전체 현재 체력과 전체 체력을 가져와서 원본 문자열에 넣어줍니다.
그리고 분리자 / <-- 로 넣어주시면 앞의 현재 체력과 전체 체력으로 나눌 수 있습니다.
인덱스를 0으로 해주시면 앞의 현재 체력을 가져옵니다.
그리고 현재 체력을 변수 추가하기를 통해서 지금 hp 에다가 넣어줍니다.
이렇게 넣어주시면 분리자 / <-- 값으로 잘라서 앞의 값을 원하는 변수에다가 넣어 주었습니다.
위와 마찬가지로 총 hp 값도 잘라서 총 hp라는 변수에다가 넣어 주시면 되시며,
분리자는 / 와 같지만, 인덱스는 1로 해주셔야 뒤에 값을 잘라서 가져올 수 있습니다.
다시 한번 그림으로 설명하자면 아래와 같습니다.
변수 가져오기
변숫값을 원본 문자열에 넣어서
/ 값으로 분리한 후에
뒤에 값을 변수에 넣기 위에 인덱서 1 뒤에 값을 가져옵니다
그럼 뒤에 값을 가져온 뒤에 변수에다가 똑같이 변수 추가하기를 통해서 넣어줍니다.
결괏값을 총 hp 에다가 넣어주면 됩니다.
그럼 일단 지금까지 ocr을 통해서 구한 것이
% 값만 빼고 모두 구하였습니다.
위에서 구한 값들을 가지고 현재 전체 체력으로 현재 체력의 %를 구할 수 있습니다.
스마트 사칙연산으로 구할수 있는데요
스마트 사칙연산을 넣어주시고
위에서 사용하신 방법처럼 위에서 구했던 값들을 가져오기 합니다.
각 값들을 가져와서 변수 A 와 변수 B 에 넣어줍니다.
이렇게 하시면 사칙연산을 하기 위한 준비가 완료되었습니다.
현재의 체력을 가지고 전체 체력을 구하는 공식은 아래와 같습니다.
({B} * 100 / {A})
지금의 체력에다가 X 100을 한 후에 전체 체력으로 나누어 주면 지금의 체력이 %로 구해집니다.
스마트 사칙연산에 작업에다가
넣어주시면 현재 체력을 %로 구해집니다
여기서 나오는 결괏값을 다시 % hp 에다가 넣어줍니다.
변수 추가하기를 통해서 가능합니다.
이렇게 추가하기를 통해 결과값을 변수에다가 넣어주었습니다.
이제 구했던 값을 통해 비교문 숫자 체크를 하여 원하는 값 밑으로 내려가면
원하는 작업을 해주도록 해보겠습니다.
숫자 체크를 넣어주시고 위와 같이 변수 가져오기를 통해 % 값을 가져오시고
% 값을 비교대상 숫자에 넣어줍니다.
위와 같이 넣어주시면 비교 대상 숫자에 % 체력 값이 들어갑니다
여기서 비교 조건을 통해서
GreaterThan = 이상일 때는 다시 그룹으로 정해놓았던 시작으로 돌리고
값이 다를 때는 물약 먹기 쪽으로 보내줍니다.
비교할 숫자만 넣어주시면 위에 변수 가져오기를 통해서
비교 대상 숫자는 자동으로 가져옵니다.
비교할 숫자는 현재 체력 % 부분입니다.
값이 다름이라는 것이 비교 대상의 숫자가 비교할 숫자보다 이상일 때는
시작으로 그리고 다를 때(이하이거나 같다면) 물약 먹기 그룹으로 보내준다 라는 것입니다.
이렇게 해놓으면 수치가 90 밑으로 내려간다면 체크해서 물약 먹는 곳으로 보내주는 것이죠
90% 보다 위라면 다시 시작으로 돌려서 무한반복해주는 것이고요.
물약 먹기 쪽으로 보낸 후에도 원하는 작업을 해주고 다시 액션 이동을 통해서 시작으로
돌려주셔야지만 계속 무한 반복으로 ocr을 통해 물약을 먹어줍니다.
위에 것 익히시면 그룹, 변수, ocr 문자열 분리, 스마트 사칙연산, 숫자 체크, 액션 이동 등을 다
익히시게 되는 것입니다.
본인 게임에 맞게 한번 만들어 보시길 바랍니다^^
긴 글 읽어주셔서 감사합니다.
ngm 매크로 구매 문의
게임 매크로 문의 : https://open.kakao.com/o/sLwlgk2b