/// <summary> ///开始地图和目标 /// </summary> /// <param name="mapID"></param> /// <param name="targetId"></param> public Distance(Execute e, int mapID, int targetId, FinishCallBack callback) { list = model.MhxyRouterRec.GetRouterAll(mapID, targetId); this.hwnd = e.hwnd.ToInt32(); this.ex = e; this.callback = callback; //判断当前地图所在位置,是否需要继续寻路 for (int i = 0; i < list.Count; i++) { if (list[i].mapExit.toMap.map_no == Global.addr.GetMapID(hwnd)) { if (list.Count - 1 > i) { idx = i + 1; } else { idx = i; } } //坐标偏移 bean.Axis a = OffsetAxis(list[i].mapExit.wait_x, list[i].mapExit.wait_y, -1, 2, -2, 2); model.MhxyAxis ma = RandomAxis(list[i].mapExit.id, 1); if (ma != null) { a = new bean.Axis(ma.x, ma.y); } list[i].mapExit.wait_x = a.x; list[i].mapExit.wait_y = a.y; } if (idx <= list.Count - 1) { Log.WriteLine("开始地图:{0}", list[idx].mapExit.myMap.name); } }
public void MoveNPC(int npcid) { //获取NPC坐标 model.MhxyNPC npc = model.MhxyNPC.GetNPCID(npcid); if (npc == null || npc.x == 0 || npc.y == 0) { return; } //坐标偏移 bean.Axis a = OffsetAxis(npc.x, npc.y, -3, 3, -4, 4); model.MhxyAxis ma = RandomAxis(npcid, 0); if (ma != null) { a = new bean.Axis(ma.x, ma.y); } npc.x = a.x; npc.y = a.y; am.ReSetMove(Global.addr.GetMapID(hwnd), npc.x, npc.y, 0); bool to = true; while (to) { int[] xy = Global.addr.getPeopleXY(hwnd); if (xy[0] == npc.x && xy[1] == npc.y) { Log.WriteLine("已到达NPC所在坐标!"); to = false; if (callback != null) { callback(); } } System.Threading.Thread.Sleep(1000); } }