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); }); }