public void AddCharacterList(List <CharacterLogin> list)
 {
     m_character_list.Clear();
     foreach (var obj in list)
     {
         CharacterLogin data = obj;
         m_character_list.Add(data);
     }
 }
 /// <summary>
 /// 角色列表
 /// </summary>
 private void OnCharacterList(PacketBase packet)
 {
     ss2c.EnumCharacter msg = packet as ss2c.EnumCharacter;
     if (msg.list.Count == 0 || msg.list.Count > 1)
     {
         ServerMsgSend.SendCreateCharacter(m_conn_idx, "test" + m_account_idx, (uint)eSexType.BOY);
     }
     else
     {
         CharacterLogin char_info = msg.list[0];
         ServerMsgSend.SendEnterGame(m_conn_idx, char_info.char_idx);
     }
 }
        /// <summary>
        /// 登录角色
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnUserDClick(object sender, MouseEventArgs e)
        {
            int index = m_list_user.SelectedIndex;

            if (index < 0)
            {
                return;
            }
            CharacterLogin char_data = LoginDataMgr.Instance.GetCharacterByIndex(index);

            ServerMsgSend.SendEnterGame(char_data.char_idx);
            ServerMsgSend.SendEnterScene(0);

            this.Close();
        }
        /// <summary>
        /// 角色列表
        /// </summary>
        private void OnCharacterList(PacketBase packet)
        {
            ss2c.EnumCharacter msg = packet as ss2c.EnumCharacter;
            LoginDataMgr.Instance.AddCharacterList(msg.list);
            if (msg.list.Count == 0 || msg.list.Count > 1)
            {
                EventController.TriggerEvent(ClientEventID.OPEN_FORM, eFormType.CreateUser);
            }
            else
            {
                CharacterLogin char_info = msg.list[0];
                EventController.TriggerEvent(ClientEventID.SHOW_STATUS, eFormStatusType.User, "当前角色:" + char_info.char_name);

                ServerMsgSend.SendEnterGame(char_info.char_idx);
            }
        }
        /// <summary>
        /// 角色列表
        /// </summary>
        /// <param name="username">登录用户名</param>
        /// <param name="callback"></param>
        /// <returns></returns>
        public static void QueryCharacterList(long account_idx, Action <List <CharacterLogin> > callback)
        {
            string sql = "call SP_CHARACTER_ENUM(" + account_idx + ")";

            DBManager.Instance.GetDB(eDBType.Game).Query(sql, (reader) =>
            {
                List <CharacterLogin> list = new List <CharacterLogin>();
                if (reader.HasRows && reader.Read())
                {
                    int idx             = 0;
                    CharacterLogin data = new CharacterLogin();
                    data.char_idx       = reader.GetInt64(idx++);
                    data.char_name      = reader.GetString(idx++);
                    data.char_type      = reader.GetByte(idx++);
                    data.level          = reader.GetUInt16(idx++);
                    data.wid            = reader.GetUInt16(idx++);
                    data.sid            = reader.GetUInt16(idx++);
                    data.dbid           = reader.GetUInt16(idx++);
                    list.Add(data);
                }
                callback(list);
            });
        }