private void UpdateGameRoleList()
        {
            if (SoftContext.Role == null)
            {
                return;
            }
            DmPlugin dm       = SoftContext.Role.Window.Dm;
            var      tempList = new ObservableCollection <RoleInfo>();

            foreach (var item in this._gameRoleList)
            {
                tempList.Add(item);
            }
            this._gameRoleList.Clear();

            string     hwnds = dm.EnumWindowByProcess("DragonNest.exe", "", "DRAGONNEST", 2);
            List <int> hList = dm.GetHwnds(hwnds);

            foreach (var h in hList)
            {
                if (SoftContext.Role.Window.Hwnd == h)
                {
                    continue;
                }
                RoleInfo roleInfo = new RoleInfo();
                roleInfo.ID         = this._gameRoleList.Count + 1;
                roleInfo.PID        = dm.GetWindowProcessId(h);
                roleInfo.Occupation = dm.ReadString(h, "[1221740]+e50", 1, 10);
                roleInfo.Hwnd       = h;

                var info = tempList.FirstOrDefault(x => x.Hwnd == h);
                if (info == null)
                {
                    roleInfo.IsTogether = false;
                    roleInfo.IsMove     = false;
                    roleInfo.Delay      = 0;
                }
                else
                {
                    roleInfo.IsTogether = info.IsTogether;
                    roleInfo.IsMove     = info.IsMove;
                    roleInfo.Delay      = info.Delay;
                }
                this._gameRoleList.Add(roleInfo);
            }
        }