冰楓論壇

標題: TwMS 201.2_ICS_人物左右走+紅點斷線 [打印本頁]

作者: prt    時間: 2017-9-6 14:45
標題: TwMS 201.2_ICS_人物左右走+紅點斷線
  1. //TwMS 201.2_ICS_人物左右走+紅點斷線
  2. //原創: 未知 有知道的麻煩私信 將改正

  3. [ENABLE]
  4. Alloc(AutoLRICSEntry, 64)
  5. Label(ICSReturn)
  6. RegisterSymbol(AutoLRMain)
  7. Alloc(AutoLRMain, 128)
  8. Label(GoLeft)
  9. Label(GoRight)
  10. RegisterSymbol(AutoLRRange)
  11. Alloc(AutoLRRange, 4)
  12. Alloc(AutoLRValue, 4)

  13. AutoLRRange:
  14. DD A //距離 16進制 A=10

  15. AutoLRICSEntry:
  16. Cmp   [Esp], 0086545C
  17. Jne   ICSReturn
  18. Mov   [Esp], AutoLRMain
  19. ICSReturn:
  20. Jmp   GetFocus

  21. AutoLRMain:

  22. //不要紅點停止請刪除以下
  23. Push Ebx
  24. Mov Ebx,[0306A720]
  25. Mov Ebx,[Ebx+2c]
  26. Cmp Ebx,         1           //紅點人數:1人(自己也要算+1)
  27. Pop Ebx
  28. Jge GetFocus
  29. //不要紅點停止請刪除以上

  30. Cmp   [AutoLRRange], 0
  31. Je    0086545C
  32. Push  Eax
  33. Inc   [AutoLRValue]
  34. Mov   Eax, [AutoLRRange]
  35. Cmp   Eax, [AutoLRValue]
  36. Jge   GoLeft
  37. Add   Eax, [AutoLRRange]
  38. Cmp   Eax, [AutoLRValue]
  39. Jge   GoRight
  40. Mov   [AutoLRValue], 1
  41. Jmp   GoLeft

  42. GoLeft:
  43. Mov   [Ebp-14], FFFFFFFF
  44. Pop   Eax
  45. Jmp   00865A53

  46. GoRight:
  47. Mov   [Ebp-14], 00000001
  48. Pop   Eax
  49. Jmp   00865A53

  50. 0306C630:   
  51. DD AutoLRICSEntry

  52. [DISABLE]
  53. 0306C630:
  54. DD GetFocus

  55. Dealloc(AutoLRICSEntry)
  56. UnregisterSymbol(AutoLRMain)
  57. Dealloc(AutoLRMain)
  58. UnregisterSymbol(AutoLRRange)
  59. Dealloc(AutoLRRange)
  60. Dealloc(AutoLRValue)
複製代碼

作者: 7802398    時間: 2017-9-6 23:23
請問PRT大大!!我該如何將左右走關閉@@?!
作者: btb    時間: 2017-9-6 23:34
7802398 發表於 2017-9-6 23:23
請問PRT大大!!我該如何將左右走關閉@@?!

AutoLRRange:
DD A //距離 16進制 A=10
DD A 改成 DD 0就是關閉左右走
作者: 動感    時間: 2017-9-8 14:39
要讓a=20 數字要怎麼改呀
作者: prt    時間: 2017-9-8 14:45
動感 發表於 2017-9-8 14:39
要讓a=20 數字要怎麼改呀

沒看到上面16進位嗎?
作者: caca    時間: 2017-9-9 14:31
本帖最後由 caca 於 2017-9-9 14:35 編輯

這個註解並不正確:
Cmp Ebx,         1           //紅點人數:1人(自己也要算+1)
..
0306A720 offset 2C
這紅點的Pointer,偵測到0 就是沒紅點,1就是有一紅點(外人),自己不算紅點。
所以 註解寫 紅點人數:1人(自己也要算+1),這說法不正確。
問題在於  Jge GetFocus。
你用 jge  口語化的意思是  若高於或等於則跳越 (x>=y)。
所以紅點數要設1 (高於等於1)就跳越到 GetFocus 去執行。
並不是因為紅點自己也要+1。
如果 紅點數設0,就可用 jg GetFocus,jg 若大於則跳越 (x>y)
有關這些指令詳細解說,請copy以下網址。或 google 組合語言, ASM 就可找到一堆教學:
  1. https://zh.wikibooks.org/zh-tw/X86%E7%B5%84%E5%90%88%E8%AA%9E%E8%A8%80/%E5%9F%BA%E6%9C%AC%E6%8C%87%E4%BB%A4%E9%9B%86
複製代碼

作者: prt    時間: 2017-9-9 15:11
本帖最後由 prt 於 2017-9-9 15:13 編輯
caca 發表於 2017-9-9 14:31 [url=forum.php?mod=redirect&goto=findpost&pid=2204380&ptid=536995][/url]
這個註解並不正確:
Cmp Ebx,         1           //紅點人數:1人(自己也要算+1)
..

沒差拉XD    好一個文章




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