這裡是將產生空白地圖的空間,可以知道地圖的相關資訊。
1. [ecx+0x38] 是存放行的相關資訊 (行等於[ecx+0x38] * 0x17)。
2. [ecx+0x68] 是存放列的相關資訊。
3. ebx是暫存地圖的整體大小。
從這邊可以知道遊戲碰撞偵測的演算法,並撰寫尋路的功能。
演算法步驟:
1. [ecx+0x38] 是存放行的相關資訊 (行等於[ecx+0x38] * 0x17)。
2. [ecx+0x68] 是存放列的相關資訊。
3. ebx是暫存地圖的整體大小。
從這邊可以知道遊戲碰撞偵測的演算法,並撰寫尋路的功能。
演算法步驟:
- 獲取地圖值:Map的基址 + y * 列的大小 + x / 2
- 判斷x的奇偶數
- 奇數將地圖值除以16,偶數跟0xF作and運算
- 判斷是否大於2 (大於2就是可以走得路徑)
下面的影片是自動的走道傳送站的前面。