冰楓論壇

標題: Tw_Bnb_v111_CRC_限最上方人物可移動 [打印本頁]

作者: loo85213    時間: 2018-5-10 21:10
標題: Tw_Bnb_v111_CRC_限最上方人物可移動
本帖最後由 loo85213 於 2018-5-11 09:30 編輯
  1. //Tw_Bnb_v111_CRC_限最上方人物可移動
  2. [ENABLE]
  3. registersymbol(StoreBase)
  4. registersymbol(Restrict_Position)
  5. registersymbol(free_player)

  6. GlobalAlloc(playerID_BASE, 4);
  7. alloc(StoreBase,1024);
  8. alloc(Restrict_Position,1024);
  9. alloc(free_player,1024);

  10. StoreBase:
  11. mov ecx,[ebp+08]
  12. mov edx,[ebp+10]
  13. mov [ecx+eax*4],edx
  14. test ecx, 0x810   //尾巴是040是水球代號基址  810則為人物代號基址
  15. jz 007339B3
  16. push eax
  17. mov eax, [playerID_BASE]
  18. cmp ecx, eax
  19. pop eax
  20. je 007339B3
  21. mov [playerID_BASE], ecx //人物代號基址
  22. jmp 007339B3

  23. 007339AA:
  24. jmp StoreBase
  25. nop

  26. Restrict_Position:

  27. push eax
  28. mov eax, [playerID_BASE]
  29. mov eax, [eax]  //座標最上方的人物編碼
  30. cmp eax, esi
  31. pop eax
  32. je free_player

  33. //其他角色鎖在固定位置
  34. pop eax
  35. mov ecx, esi
  36. mov eax,200     //Y
  37. push eax
  38. mov eax, 100    //X
  39. push eax
  40. call 005B8AB3

  41. jmp 005B1728

  42. free_player:

  43. add eax, ecx
  44. push eax
  45. mov ecx,esi
  46. jmp 005B1725

  47. 005B1720:
  48. jmp Restrict_Position

  49. [DISABLE]
  50. 007339AA:
  51. mov ecx,[ebp+08]
  52. mov edx,[ebp+10]

  53. 005B1720:
  54. add eax, ecx
  55. push eax
  56. mov ecx, esi

  57. dealloc(StoreBase,1024);
  58. dealloc(Restrict_Position,1024);
  59. dealloc(free_player,1024);
複製代碼

作者: jeff4899    時間: 2018-5-12 15:09
提示: 作者被禁止或刪除 內容自動屏蔽
作者: loo85213    時間: 2018-5-12 15:24
jeff4899 發表於 2018-5-12 15:09
第七行好像有誤呢

並沒有錯喔,要先用CE載入爆爆王,才可以globalAlloc
作者: 洋洋技術    時間: 2018-5-12 22:43
感覺沒啥太大用處~~
作者: loo85213    時間: 2018-5-13 01:09
本來是想讓玩家能動但NPC不能動,但我不知如何判斷哪個人物編號是NPC的,因為每次順序都會重新由人物y座標排序,所以只完成這個半成品QQ
作者: jeff4899    時間: 2018-5-13 15:40
提示: 作者被禁止或刪除 內容自動屏蔽




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