close_btn
자신이 알고 있는 공략 또는 정보를 전달 해보세요, 작은 팁이라 해도 그 누군가에겐 소중한 정보가 됩니다.

정보
2018.02.10 14:47

치트엔진 팁 - RPG Maker VX / Ace

( d70a5a31 ) 조회 수 154 추천 수 0 댓글 0

쯔꾸르에서 치트엔진을 쓸 때, 흔히 쓰이는 VX나 VX Ace로 만들어진 겜에서는 값을 검색하고 바꿀 때 일일이 값*2+1을 해줘야 됩니다.

근데 치트엔진 개발자가 그럴 필요 없이 손수 타입을 만들어줌.

 

CheatEngine1.PNG

 

치트엔진 켜고 Value Type을 우클릭, Define new custom type (Auto Assemble) 클릭

 

CheatEngine2.PNG

 

원래 있는 내용 전부 지운 다음 아래 코드 복붙 후 OK 클릭

 

alloc(TypeName, 256)
alloc(ByteSize, 4)
alloc(PreferedAlignment, 4)
alloc(ConvertRoutine, 1024)
alloc(ConvertBackRoutine, 1024)

TypeName:
db 'RPG Maker VX / Ace',0
ByteSize:
dd 4
PreferedAlignment:
dd 1


// The convert routine should hold a routine that converts the data to an nteger (in eax)
// function declared as: stdcall int ConvertRoutine(unsigned char *input);
// Note: Keep in mind that this routine can be called by multiple threads at the same time.

ConvertRoutine:
[32-bit]
push ebp
mov ebp,esp
push ecx
mov ecx,[ebp+8]
[/32-bit]

// at this point ecx contains the address where the bytes are stored
// put the bytes into the eax register
mov eax,[ecx] // second fun fact, addressing with 32-bit registers doesn't work in 64-bit, it becomes a 64-bit automatically (most of the time)
shr eax,1 // shift right by 1 bit (divide by 2)

// and now exit the routine
[64-bit]
ret
[/64-bit]
[32-bit]
pop ecx
pop ebp
ret 4
[/32-bit]

// The convert back routine should hold a routine that converts the given integer back to a row of bytes (e.g when the user wats to write a new value)
// function declared as: stdcall void ConvertBackRoutine(int i, unsigned char *output);
ConvertBackRoutine:
[32-bit]
push ebp
mov ebp,esp
push edx //save the registers
push ecx
mov edx,[ebp+0c]
mov ecx,[ebp+08]
[/32-bit]

// at this point edx contains the address to write the value to
// and ecx contains the value

push eax
push edx


mov edx,[edx] // edx now contains the original value
and edx,1 // only save the first bit

mov eax,ecx // eax gets the user input value
shl eax,1 // shift left by 1 bit (multiply by 2)
or eax,edx // add the bits of the original value

pop edx
mov [edx],eax // write the new value into the old value
pop eax

[64-bit]
// everything is back to what it was, so exit
ret
[/64-bit]

[32-bit]
// cleanup first
pop ecx
pop edx
pop ebp
ret 8
[/32-bit]

 

 

 

CE3.PNG

 

추가됨

앞으로 쯔꾸르 프로그램에서 값 검색할 땐 Value Type을 방금 추가한 RPG Maker VX / Ace로 바꾸고 검색하면 됩니다.

굳이 *2+1 돌릴 필요 없어요

 

안보이시면 여길 눌러서라도 눌러주세요 엉엉.

이런 글도 한번 읽어보세요!

Atachment
첨부 '3'

서버에 요청 중입니다. 잠시만 기다려 주십시오...