Exemplo n.º 1
0
        public bool Teleport(Point point)
        {
            IRole role = SoftContext.Role;

            if (role == null)
            {
                return(false);
            }
            DmPlugin dm   = role.Window.Dm;
            int      hwnd = role.Window.Hwnd;

            if (point == null)
            {
                Debug.WriteLine("坐标不能为null");
                return(false);
            }
            else
            {
                if (role.Window.IsAlive)
                {
                    this.TeleportByHwnd(dm, hwnd, point);      //大号瞬移

                    ObservableCollection <RoleInfo> roleList = new ViewModelLocator().SetXiaohao.GameRoleList;
                    foreach (var roleInfo in roleList)
                    {
                        if (dm.GetWindowState(roleInfo.Hwnd, 0) != 1)  //判断窗口是否存在
                        {
                            continue;
                        }
                        if (roleInfo.IsTogether)
                        {
                            this.TeleportByHwnd(dm, roleInfo.Hwnd, point);
                        }
                        if (roleInfo.IsMove)                         //如果移动则写内存
                        {
                            dm.WriteInt(roleInfo.Hwnd, "[1221740]+2320", 0, 131072);
                            dm.Delay(200);
                            dm.WriteInt(roleInfo.Hwnd, "[1221740]+2320", 0, 0);
                            dm.Delay(100);
                        }
                    }



                    return(true);
                }
                else
                {
                    SoftContext.MainWindow.ShowMessageAsync("瞬移失败", "窗口不存在:" + hwnd);
                    return(false);
                }
            }
        }