Code:
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(teleportzumbi,2048) //2kb should be enough
alloc(zumbixyz,2048) //2kb should be enough
alloc(guardarzumbixyz,2048) //2kb should be enough
alloc(guardarzumbicoords,2048) //2kb should be enough
alloc(guardarplayerxyz,2048) //2kb should be enough
alloc(guardarplayercoords,2048) //2kb should be enough
alloc(playerxyz,2048) //2kb should be enough
label(returnhere)
label(returnhere2)
label(returnhere3)
label(originalcode)
label(originalcode2)
label(originalcode3)
label(exit)
label(exit2)
label(exit3)
label(tele)
label(teletome)
label(ypressed)
label(guardarplayer)
label(guardarzumbi)
label(teleport)
registersymbol(zumbixyz)
registersymbol(guardarplayer)
registersymbol(playerxyz)
registersymbol(guardarzumbi)
registersymbol(teleport)
aobscan(guardarplayeraob,0D 58 10 30 8b 01 7b 40 28 57)
aobscan(guardarzumbiaob,0D 38 5a 30 0f 98 43 30 0f 28 5a 10)
aobscan(teleportaob,0D 38 50 ** ** ** 8A 25 08)
teleportzumbi:
//place your code here
ypressed:
pushfd
pushad
push 'G'
call GetAsyncKeyState
shr ax,#15
cmp ax,1
popad
je teletome
popfd
originalcode3:
movaps xmm0,[eax]
lea eax,[edi+20]
exit3:
jmp returnhere3
teletome:
popfd
pushfd
cmp [eax+33C],6D653D22
jne tele
popfd
movaps xmm0,[eax]
lea eax,[edi+20]
jmp returnhere3
tele:
popfd
push edi
xor edi,edi
mov edi,[playerxyz]
mov [eax],edi
mov edi,[playerxyz+4]
mov [eax+4],edi
mov edi,[playerxyz+8]
mov [eax+8],edi
pop edi
movaps xmm0,[eax]
lea eax,[edi+20]
jmp returnhere3
guardarzumbixyz: //this is allocated memory, you have read,write,execute access
//place your code here
popfd
push ecx
push edi
xor ecx,ecx
xor edi,edi
mov ecx,ebx
add ecx,00000030
mov edi,[ecx]
mov [zumbixyz],edi
add ecx,00000004
mov edi,[ecx]
mov [zumbixyz+4],edi
add ecx,00000004
mov edi,[ecx]
mov [zumbixyz+8],edi
pop edi
pop ecx
movaps xmm1,[edx+30]
movaps xmm0,[ebx+30]
movaps xmm3,[edx+10]
jmp returnhere2
guardarzumbicoords: //this is allocated memory, you have read,write,execute access
//place your code here
pushfd
cmp [ebx+4A8],0
je guardarzumbixyz
popfd
originalcode2:
movaps xmm1,[edx+30]
movaps xmm0,[ebx+30]
movaps xmm3,[edx+10]
exit2:
jmp returnhere2
guardarplayerxyz: //this is allocated memory, you have read,write,execute access
//place your code here
popfd
push ebx
push edi
xor ebx,ebx
xor edi,edi
mov ebx,eax
add ebx,00000030
mov edi,[ebx]
mov [playerxyz],edi
add ebx,00000004
mov edi,[ebx]
mov [playerxyz+4],edi
add ebx,00000004
mov edi,[ebx]
mov [playerxyz+8],edi
pop edi
pop ebx
movaps xmm0,[eax+30]
mov eax,[ecx]
jmp returnhere
guardarplayercoords: //this is allocated memory, you have read,write,execute access
//place your code here
pushfd
cmp [eax+4A8],1
je guardarplayerxyz
popfd
originalcode:
movaps xmm0,[eax+30]
mov eax,[ecx]
exit:
jmp returnhere
guardarplayeraob:
guardarplayer:
jmp guardarplayercoords
nop
returnhere:
guardarzumbiaob:
guardarzumbi:
jmp guardarzumbicoords
nop
nop
nop
nop
nop
nop
nop
returnhere2:
teleportaob:
teleport:
jmp teleportzumbi
nop
returnhere3:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(teleportzumbi)
dealloc(zumbixyz)
dealloc(guardarzumbixyz)
dealloc(guardarzumbicoords)
dealloc(guardarplayerxyz)
dealloc(guardarplayercoords)
dealloc(playerxyz)
teleport:
movaps xmm0,[eax]
lea eax,[edi+20]
unregistersymbol(teleport)
guardarzumbi:
movaps xmm1,[edx+30]
movaps xmm0,[ebx+30]
movaps xmm3,[edx+10]
unregistersymbol(zumbixyz)
unregistersymbol(guardarzumbi)
guardarplayer:
movaps xmm0,[eax+30]
mov eax,[ecx]
unregistersymbol(guardarplayer)
unregistersymbol(playerxyz)