Originally Posted by stanalin
// Auto pot
[ENABLE]
alloc(newmem,1024)
label(returnhere)
label(originalcode)
label(exit)
label(check_mana)
label(finished_check)
00d466af: // 83 78 08 13 0F 85
jmp newmem
nop
returnhere:
newmem:
originalcode:
cmp dword ptr [eax+08],01 // checking for HP pot?
jne check_mana
mov dword ptr[eax+08],11 // change to auto pot
mov dword ptr[eax+10],11
check_mana:
cmp dword ptr [eax+08],02 // checking for MP pot?
jne finished_check
mov dword ptr[eax+08],12 // change to auto pot
mov dword ptr[eax+10],12
finished_check:
cmp dword ptr [eax+08],13
jne 00D46714
exit:
jmp returnhere
[DISABLE]
dealloc(newmem)
00d466af:
cmp dword ptr [eax+08],13
jne 00D46714
//gm Detect
[ENABLE]
alloc(DetectGM,25)
label(ReturnName)
00F007C2: // C7 46 0C 00 00 00 00 89 47 04 5F
jmp DetectGM
nop
nop
ReturnName:
DetectGM:
cmp [eax+70],5D4D475B //[GM]
je 00000000
mov [esi+0c],00000000
jmp ReturnName
[DISABLE]
dealloc(DetectGM)
00F007C2:
mov [esi+08],00000004
// Teleporter minimap
[ENABLE]
alloc(GM, 4096)
label(teleprot)
004DE033: // 8B 80 90 00 00 00 C3 CC CC CC CC CC CC 8b 49 04 e8 e8 cf 00 00
jmp GM
NOP
teleprot:
GM:
mov eax,00000003
nop
ret
jmp teleprot
[DISABLE]
004DE033:
mov eax,[eax+00000090]
ret
// Caracter Speed hack
[ENABLE]
aobscan(_aSpeed,5F 5E D9 40 08)
label(_aSpeedLabel)
registersymbol(_aSpeedLabel)
alloc(newmem,16)
label(ReturnSpeed)
label(SpeedValue)
registersymbol(SpeedValue)
_aSpeed:
_aSpeedLabel:
jmp newmem
ReturnSpeed:
newmem:
pop edi
pop esi
fld dword ptr [SpeedValue]
jmp ReturnSpeed
push esi
push edi
call dword ptr [SpeedValue]
SpeedValue:
db 00 00 F0 40
[DISABLE]
dealloc(newmem)
unregistersymbol(SpeedValue)
_aSpeedLabel:
fld dword ptr [eax+08]
pop edi
pop esi
unregistersymbol(_aSpeedLabel)
//VAC
[ENABLE]
alloc(newmem,1024)
00B461F6:
jmp newmem
nop
newmem:
mov [edx+04],4b //DwExploreRange
mov eax,[edx+04]
mov [ecx+08],eax
mov [edx+04],4b //DwSight
mov eax,[edx+08]
mov [ecx+0C],eax
mov [edx],4b //DwPersuitRange
mov eax,[edx]
mov [ecx+04],eax
mov [edx+0c],1 //DwAvoidRange
mov eax,[edx+0C]
mov [ecx+10],eax
mov [edx+10],0 //DwExploreStandDelay
mov eax,[edx+10]
mov [ecx+14],eax
mov [edx+14],0 //DwExploreMoveDelay
mov eax,[edx+14]
mov [ecx+18],eax
mov [edx+18],0 //DwStandDelay
mov eax,[edx+18]
mov [ecx+1C],eax
mov [edx+1C],1 //DwMoveDelay
mov eax,[edx+1C]
mov [ecx+20],eax
mov [edx+20],0 //DwFollowMyMasterRange
mov eax,[edx+20]
mov [ecx+24],eax
mov [edx+24],0 //DwStopMasterNear
mov eax,[edx+24]
mov [ecx+28],eax
mov [edx+28],0 //DwWarpMyMasterRange
mov eax,[edx+28]
mov [ecx+2C],eax
Mov [edx+2C],0 //DwCallTeamPossibelHP
mov eax,[edx+2C]
mov [ecx+30],eax
mov [edx+30],1 //DwCallTeamCount
mov eax,[edx+30]
mov [ecx+34],eax
mov [edx+34],0 //DwBlockNFirstAttack
mov eax,[edx+34]
mov [ecx+38],eax
mov [edx+38],1 //dwCallTeamCell
mov al,[edx+38]
mov [ecx+3C],al
mov [edx+3C],999 //dwFollowTarget
mov eax,[edx+3C]
mov [ecx+40],eax
mov [edx+40],0 //dwSpecialAttackStartHP
mov eax,[edx+40]
mov [ecx+44],eax
mov [edx+44],0 //dwSpecialMeleeAttackRate
mov eax,[edx+44]
mov [ecx+48],eax
mov [edx+48],0 //dwSpecialRangeAttackRate
mov eax,[edx+48]
mov [ecx+4C],eax
mov [edx+4C],0 //dwSpecialAttackRate
mov eax,[edx+4C]
mov [ecx+50],eax
mov [edx+50],0 //dwSpecialAttackTargetType
mov eax,[edx+50]
mov [ecx+54],eax
mov [edx+54],0 //dwSpecialAttackTargetValue
mov eax,[edx+54]
mov [ecx+58],eax
mov [edx+58],0 //dwSpecialDelayTime
mov eax,[edx+58]
mov [ecx+5C],eax
mov [edx+5C],0 //DwPowerAttackStartHP
mov eax,[edx+5C]
mov [ecx+60],eax
mov [edx+60],0 //dwPowerMeleeAttackProbable
mov eax,[edx+60]
mov [ecx+64],eax
mov [edx+64],0 //dwPowerRangeAttackProbable
mov eax,[edx+64]
mov [ecx+68],eax
mov [edx+68],0 //dwPowerRate
mov eax,[edx+68]
mov [ecx+6C],eax
mov [edx+6C],0 //dwPowerAttackTargetType
mov eax,[edx+6C]
mov [ecx+70],eax
mov [edx+70],0 //dwPowerAttackTargetValue
mov eax,[edx+70]
mov [ecx+74],eax
mov [edx+74],0 //dwPowerDelayTime
mov eax,[edx+74]
mov [ecx+78],eax
mov [edx+78],0 //dwAttack1_Rate
mov eax,[edx+78]
mov [ecx+7C],eax
mov [edx+7C],0 //dwAttack1_TargetType
mov eax,[edx+7C]
mov [ecx+00000080],eax
mov [edx+80],0 //dwAttack1_TargetValue
mov eax,[edx+00000080]
mov [ecx+00000084],eax
mov [edx+84],0 //dwAttack2_Rate
mov eax,[edx+00000084]
mov [ecx+00000088],eax
mov [edx+88],0 //dwAttack2_TargetType
mov eax,[edx+00000088]
mov [ecx+0000008C],eax
mov [edx+8C],0 //dwAttack2_TargetValue
mov eax,[edx+0000008C]
mov [ecx+00000090],eax
mov [edx+90],0 //dwAttack3_Rate
mov eax,[edx+00000090]
mov [ecx+00000094],eax
mov [edx+94],0 //dwAttack3_TargetType
mov eax,[edx+00000094]
mov [ecx+00000098],eax
mov [edx+98],0 //dwAttack3_TargetValue
mov eax,[edx+00000098]
mov [ecx+0000009C],eax
mov [edx+9C],0 //dwAttack4_Rate
mov eax,[edx+0000009C]
mov [ecx+000000A0],eax
mov [edx+A0],0 //dwAttack4_TargetType
mov eax,[edx+000000A0]
mov [ecx+000000A4],eax
mov [edx+A4],0 //dwAttack4_TargetValue
mov eax,[edx+000000A4]
mov [ecx+000000A8],eax
mov [edx+A8],0 //dwMaxSummonsMonsterCount
mov eax,[edx+000000A8]
mov [ecx+000000AC],eax
mov [edx+AC],0 //dwReSummonsMonsterTick
mov eax,[edx+000000AC]
mov [ecx+000000B0],eax
mov [edx+B0],0 //dwMaxSummonsMonsterRange
mov eax,[edx+000000B0]
mov [ecx+000000B4],eax
mov [edx+B4],0 //dwSummonsStartPcCount
mov eax,[edx+000000B4]
mov [ecx+000000B8],eax
jmp 00B46360 // ret
[DISABLE]
dealloc(newmem)
00B461F6:
mov eax,[edx+04]
mov [ecx+08],eax
//8B 42 04 89 41 08 8B 42 08 89 41 0C 8B 02 89 41 04 8B 42 0C 89 41 10 8B
|