冰楓論壇

標題: maxRush(定點瞬移) v1.3 for TWMS V.98 [打印本頁]

作者: qkckcqkckcq    時間: 2012-9-26 12:27
標題: maxRush(定點瞬移) v1.3 for TWMS V.98
  1. //maxRush(定點瞬移) v1.3 for TWMS V.98

  2. //原作者;maxjojo

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

  4. //EIP:maxRush

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

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

  7. //RushCounter   : 目前定點位置

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



  9. [ENABLE]

  10. registersymbol(maxRush)

  11. registersymbol(maxRushCounter)

  12. registersymbol(maxRushOnOff)

  13. registersymbol(RushCounter)

  14. alloc(maxRush, 1024)

  15. alloc(maxRushCounter,4)

  16. alloc(maxRushOnOff,4)

  17. alloc(RushCounter,4)

  18. label(doRushNormal)

  19. label(getEDIValue)

  20. label(doRushTele)

  21. label(doRushTeleStart)

  22. label(doRushTeleReturn)

  23. label(doRushResetCounterEnd)

  24. alloc(loctn,64)

  25. label(doRushTeleEnd)

  26. label(doEnd)

  27. registersymbol(Round)

  28. alloc(Round,4)

  29. alloc(VarRound,4)

  30. alloc(After_time,4)



  31. Round:

  32.     dd 0

  33. VarRound:

  34.     dd 0

  35. maxRushCounter:

  36.     dd 2

  37. RushCounter:

  38.     dd 1

  39. maxRushOnOff:

  40.     dd 0

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

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



  43. //配合 KK 抓取位置

  44. 00400fd0:

  45.     dd maxRush

  46. After_time:

  47.     dd 0

  48. maxRush:

  49.     Push Eax

  50.     Mov Eax,[00adc0d4]      // char pointer

  51.     Add Eax, 0D6C

  52.     Mov Eax, [Eax]

  53.     Sub Eax, C              // char pid

  54.     Cmp Esi,Eax

  55.     Pop Eax

  56.     Je doRushNormal

  57.     jmp 008F5191



  58. doRushNormal:

  59.     call doRushTele

  60.     ja 008F5191

  61.     jmp 008F518D

  62. doRushTele:

  63.     pushfd

  64. mov eax, [00ae0714]

  65.     mov eax,[eax+1dc]

  66.     cmp eax,[After_time]

  67.     jl doRushTeleReturn



  68.     mov eax, [00ae0714]

  69.     mov eax,[eax+1dc]

  70.     mov [After_time],eax

  71.     add [After_time],3e8   //延遲一秒

  72.     Cmp [maxRushOnOff],0

  73.     je getEDIValue

  74.     call doRushTeleStart

  75. doRushTeleReturn:

  76.     popfd

  77.     ret

  78. // platform id detect.

  79. getEDIValue:

  80.     mov eax,[esi+114]

  81.     lea edx,[loctn]

  82.     mov ecx,[RushCounter]

  83.     shl ecx,1

  84.     shl ecx,1

  85.     mov [edx+ecx],eax

  86.     jmp doRushTeleReturn



  87. // start charactor teleport

  88. doRushTeleStart:

  89.    add  [RushCounter],1

  90.    mov  ebx,[maxRushCounter]

  91.    cmp  [RushCounter],ebx

  92.    ja  doRushTeleEnd

  93.    lea edx,[loctn]

  94.    mov ecx,[RushCounter]

  95.    shl ecx,1

  96.    shl ecx,1

  97.    mov eax,[edx+ecx]

  98.    mov [esi+110],eax

  99.    jmp doRushResetCounterEnd



  100. doRushTeleEnd:

  101.    cmp [Round],0

  102.    je doEnd

  103.    add [VarRound],1

  104.    mov ebx,[Round]

  105.    cmp [VarRound],ebx

  106.    jbe doEnd

  107.    mov [VarRound],0

  108.    lea edx,[loctn]

  109.    mov ecx,[RushCounter]

  110.    shl ecx,1

  111.    shl ecx,1

  112.    mov eax,[edx+ecx]

  113.    mov [esi+110],eax

  114.    jmp doRushResetCounterEnd

  115.    

  116. doEnd:

  117.    mov [RushCounter],0      // reset counter (歸零重來)

  118.    jmp doRushTeleStart

  119. doRushResetCounterEnd:

  120.    ret



  121. [DISABLE]

  122. dealloc(maxRush)

  123. dealloc(maxRushCounter)

  124. dealloc(maxRushOnOff)

  125. dealloc(PlatformIDList)

  126. unregistersymbol(maxRush)

  127. unregistersymbol(maxRushCounter)

  128. unregistersymbol(maxRushOnOff)

  129. dealloc(loctn)

  130. unregistersymbol(RushCounter)

  131. dealloc(RushCounter)

  132. unregistersymbol(Round)

  133. dealloc(Round)

  134. dealloc(VarRound)

  135. dealloc(After_time)








複製代碼





歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓