qkckcqkckcq 發表於 2012-9-26 12:27:40

maxRush(定點瞬移) v1.3 for TWMS V.98

//maxRush(定點瞬移) v1.3 for TWMS V.98

//原作者;maxjojo

//maxRush v1.3 Address:008F518B aob=77 ? 33 c0 5e c3 6a ? 58 5e c3 55

//EIP:maxRush

//maxRushCounter: 設定 N 個定點數量

//maxRushOnOff  : 0= 抓定點位置   1=啟動瞬移

//RushCounter   : 目前定點位置

//Round : 設定第幾圈,會跳到第 N+1 的定點,0為不啟動。





registersymbol(maxRush)

registersymbol(maxRushCounter)

registersymbol(maxRushOnOff)

registersymbol(RushCounter)

alloc(maxRush, 1024)

alloc(maxRushCounter,4)

alloc(maxRushOnOff,4)

alloc(RushCounter,4)

label(doRushNormal)

label(getEDIValue)

label(doRushTele)

label(doRushTeleStart)

label(doRushTeleReturn)

label(doRushResetCounterEnd)

alloc(loctn,64)

label(doRushTeleEnd)

label(doEnd)

registersymbol(Round)

alloc(Round,4)

alloc(VarRound,4)

alloc(After_time,4)



Round:

    dd 0

VarRound:

    dd 0

maxRushCounter:

    dd 2

RushCounter:

    dd 1

maxRushOnOff:

    dd 0

    // {1: On, (char teleport, 定點瞬移) |

    //  0: Off (platform id detect,平台ID檢測) }



//配合 KK 抓取位置

00400fd0:

    dd maxRush

After_time:

    dd 0

maxRush:

    Push Eax

    Mov Eax,      // char pointer

    Add Eax, 0D6C

    Mov Eax,

    Sub Eax, C              // char pid

    Cmp Esi,Eax

    Pop Eax

    Je doRushNormal

    jmp 008F5191



doRushNormal:

    call doRushTele

    ja 008F5191

    jmp 008F518D

doRushTele:

    pushfd

mov eax,

    mov eax,

    cmp eax,

    jl doRushTeleReturn



    mov eax,

    mov eax,

    mov ,eax

    add ,3e8   //延遲一秒

    Cmp ,0

    je getEDIValue

    call doRushTeleStart

doRushTeleReturn:

    popfd

    ret

// platform id detect.

getEDIValue:

    mov eax,

    lea edx,

    mov ecx,

    shl ecx,1

    shl ecx,1

    mov ,eax

    jmp doRushTeleReturn



// start charactor teleport

doRushTeleStart:

   add  ,1

   mov  ebx,

   cmp  ,ebx

   ja  doRushTeleEnd

   lea edx,

   mov ecx,

   shl ecx,1

   shl ecx,1

   mov eax,

   mov ,eax

   jmp doRushResetCounterEnd



doRushTeleEnd:

   cmp ,0

   je doEnd

   add ,1

   mov ebx,

   cmp ,ebx

   jbe doEnd

   mov ,0

   lea edx,

   mov ecx,

   shl ecx,1

   shl ecx,1

   mov eax,

   mov ,eax

   jmp doRushResetCounterEnd

   

doEnd:

   mov ,0      // reset counter (歸零重來)

   jmp doRushTeleStart

doRushResetCounterEnd:

   ret





dealloc(maxRush)

dealloc(maxRushCounter)

dealloc(maxRushOnOff)

dealloc(PlatformIDList)

unregistersymbol(maxRush)

unregistersymbol(maxRushCounter)

unregistersymbol(maxRushOnOff)

dealloc(loctn)

unregistersymbol(RushCounter)

dealloc(RushCounter)

unregistersymbol(Round)

dealloc(Round)

dealloc(VarRound)

dealloc(After_time)








頁: [1]
查看完整版本: maxRush(定點瞬移) v1.3 for TWMS V.98