TwMS v1.46.3_ICS_人物座標左右走


//TwMS v1.46.3_ICS_人物座標左右走
//原創:Onion
//好處是不會有偏移問題(需開起小地圖)



[Enable]
Alloc(AutoLRICS,512)
Alloc(SetX,4)
Alloc(MyLR,4)
Label(AutoLR)
Label(GetWall)
Label(GetChrX)
Label(GoRight)
Label(GoLeft)

SetX:
ReadMem([00D39410]+F90, 4)
MyLR:
DD 1 //開啟後向右走

00D3E7C8:      
DD AutoLRICS

AutoLRICS:
Cmp [Esp],008F828F
Jne GetFocus
Mov [Esp],AutoLR
Jmp GetFocus

AutoLR:
Call GetWall
Mov  [ebp-04],Eax
Xor  Ecx,Ecx
Xor  Eax,Eax
Cmp  [ebp-04],Eax
Jmp  008F8559

GetWall:
Call GetChrX
Mov  Ecx,[SetX]
Sub  Eax,Ecx //角色X值 - 設定X值
Cmp  Eax,0
Jle  GoRight
Call GetChrX
Mov  Ecx,[SetX]
sub  Ecx,Eax //設定X值 - 角色X值
cmp  Ecx,0
Jle  GoLeft
Mov  Eax,[MyLR]
Ret

GetChrX:
Mov Eax,[00D39410]    
Mov Eax,[Eax+F90]
Ret

GoRight:
Mov [MyLR],1
Mov Eax,1
Ret

GoLeft:
Mov [MyLR],FFFFFFFF
Mov Eax,FFFFFFFF
Ret

[Disable]
00D3E7C8:  
DD GetFocus

DeAlloc(MyLR)
DeAlloc(SetX)
DeAlloc(AutoLRICS)

留言

  1. 版主,您好
    如果您方便的話,
    可以教一下這個數據該如何更新嗎
    他看起來跟AOB不太像
    所以我也不知道該如何更新

    [Enable]
    //TEMS146定時無敵 + 損血
    //Made by 歐歐=]
    alloc(GodMode,64)
    alloc(GetNowHP,128)
    alloc(OuDelayHook,64)
    alloc(OuDelay,256)
    alloc(OuDelayNew,128)
    alloc(OuDelayTimer,256)
    alloc(OuDelayFinish,256)
    alloc(OuDelayFinishA,256)
    alloc(OuDelayFinishB,256)
    alloc(OuDelayTime,4)
    alloc(OuDelayStatus,4)
    alloc(OuDelayCount,12)
    alloc(OuLossHPValue,12)
    alloc(OuLossHPCount,4)
    alloc(OuLossHPValue,4)
    alloc(OuLossHPCount,4)

    OuDelayTime:
    dd 7530 //預設:50秒/延遲時間(毫秒)

    GetNowHP:
    mov eax,[00D34C1C]
    add eax,48
    mov [eax],19
    mov eax,[00D34F08]
    mov eax,[eax+2134]
    ret

    OuDelayHook:
    Cmp [Esp],005EA13F
    Jne IsRectEmpty
    Mov [Esp],OuDelay
    Jmp IsRectEmpty

    OuDelay:
    Cmp [OuDelayStatus],1
    Je OuDelayFinish
    Cmp [OuDelayCount],0
    Je OuDelayNew
    Jmp OuDelayTimer

    OuDelayNew:
    Push Eax
    Call GetTickCount
    Add Eax, [OuDelayTime]
    Mov [OuDelayCount],Eax
    Pop Eax
    Jmp OuDelay

    OuDelayTimer:
    Push Eax
    Call GetTickCount
    Cmp Eax, [OuDelayCount]
    Pop Eax
    Jle GodMode
    push eax
    call GetNowHP
    mov [OuLossHPValue],eax
    pop eax
    mov [OuDelayCount], 0
    Mov [OuDelayStatus],1
    Jmp OuDelay

    OuDelayFinish:
    push eax
    call GetNowHP
    cmp [OuLossHPValue],eax
    pop eax
    jne OuDelayFinishA
    jmp 005EA13F

    OuDelayFinishA:
    add [OuLossHPCount],1
    push eax
    call GetNowHP
    mov [OuLossHPValue],eax
    pop eax
    cmp [OuLossHPCount],5 //無敵時間到後,血量變更次數
    jge OuDelayFinishB
    jmp 005EA13F

    OuDelayFinishB:
    mov [OuLossHPCount],0
    Mov [OuDelayStatus],0
    jmp 005EA13F
    GodMode:
    Test eax,eax
    Jmp 005EA143

    00D3D794:
    dd OuDelayHook

    [Disable]
    00D3D794:
    dd IsRectEmpty
    dealloc(GodMode)
    dealloc(GetNowHP,)
    dealloc(OuDelayHook)
    dealloc(OuDelay)
    dealloc(OuDelayNew)
    dealloc(OuDelayTimer)
    dealloc(OuDelayFinish)
    dealloc(OuDelayFinishA)
    dealloc(OuDelayFinishB)
    dealloc(OuDelayTime)
    dealloc(OuDelayStatus)
    dealloc(OuDelayCount)
    dealloc(OuLossHPValue)
    dealloc(OuLossHPCount)
    dealloc(OuLossHPValue)
    dealloc(OuLossHPCount)

    回覆刪除
    回覆
    1. 基本上這數據要更新的跟一般的完全無敵一樣
      他只是加了超級多的判斷式來達到秒數控制跟血量變更偵測的目的
      喔!還有一個是血量的Pointer,你可以參考Pointer更新教學

      如果要的話我更新好給你看

      刪除
    2. 謝謝您~
      另外能否指導這個數據該如何更新
      以後我就能嘗試自己更新了~"~

      是只要更新幾個位址就好嗎

      判斷的地方都不用動@_@?

      刪除

張貼留言

本月最夯

偷用電腦,怎知?事件檢視器全記錄!(開機時間、啟動項時間...)