/// <summary> /// 查找按钮点击响应 /// </summary> protected void findButton_Click(object sender, EventArgs e) { Server server = Session["Server"] as Server; if (server == null) { this.resultLabel.Text = "错误:无法获取服务器"; return; } Dictionary <int, object[]> userDictionary = new Dictionary <int, object[]>(); DatabaseAssistant.Execute ( reader => { while (reader.Read()) { int uid = reader.GetInt32(0); int level = reader.GetInt32(1); if (level < 3) { continue; } byte[] buffer = new byte[reader.GetBytes(2, 0, null, 0, int.MaxValue)]; reader.GetBytes(2, 0, buffer, 0, buffer.Length); using (MemoryStream stream = new MemoryStream(buffer)) { try { mw.OtherInfo othern = ProtoSerializer.Instance.Deserialize(stream, null, typeof(mw.OtherInfo)) as mw.OtherInfo; if (othern == null || othern.roleexInfo == null || othern.roleexInfo.user_data == null) { continue; } string[] dataSet = othern.roleexInfo.user_data.Split(';'); if (dataSet.Length > 10 && (dataSet[8] == "0" || dataSet[9] == "0" || dataSet[10] == "0")) { userDictionary.Add(uid, new object[] { reader.GetString(3), level }); } } catch (Exception exception) { continue; } } } }, server.DatabaseAddress, server.DatabasePort, server.DatabaseCharSet, server.GameDatabase, server.DatabaseUserId, server.DatabasePassword, "SELECT `other_info`.`uid`,`card_package`.`team_level`,`other_info`.`other_data`,`user`.`uname` FROM `other_info`,`user`,`card_package` WHERE `other_info`.`uid`=`user`.`uid` && `other_info`.`uid`=`card_package`.`uid`;" ); if (userDictionary.Count == 0) { this.resultLabel.Text = "没有找到"; } else { StringBuilder buider = new StringBuilder(string.Format("找到 {0} 个新手引导错误玩家", userDictionary.Count)); foreach (var pair in userDictionary) { buider.Append("<br>"); buider.Append(pair.Key); buider.Append(" "); buider.Append(pair.Value[0]); buider.Append(" 等级:"); buider.Append(pair.Value[1]); } this.resultLabel.Text = buider.ToString(); } }
/// <summary> /// 显示信息按钮点击响应 /// </summary> protected void informationButton_Click(object sender, EventArgs e) { this.idLabel.Text = ""; uint playerId = this.GetPlayerId(); if (playerId != 0) { gmt.Server server = gmt.Server.GetServer(this.selectListBox.Items[0].ToString()); StringBuilder builder = new StringBuilder(); if (string.IsNullOrEmpty(server.GameDatabase)) { return; } //记录各项信息的字符串 string vipLevel = "" , teamLevel = "" , yuanbao_all = "" , yuanbao = "" , money = "" , energy = "" , lingyu = "" , registerTime = "" , heroCount = "" , fuben = "" , guildName = "" , onlinetime = "" , smallMonth = "" , bigMonth = "" , lastSaveTime = ""; #region VIP等级、金钱、元宝、体力、在线时长、充值元宝总数、灵玉、最后登录时间 DatabaseAssistant.Execute( reader => { if (reader.Read()) { vipLevel = reader.GetInt32(0).ToString(); money = reader.GetInt32(1).ToString(); yuanbao = reader.GetInt32(2).ToString(); energy = reader.GetInt32(3).ToString(); onlinetime = reader.GetInt32(4) / 3600 + TableManager.GetGMTText(741); onlinetime += (reader.GetInt32(4) % 3600) / 60 + TableManager.GetGMTText(742); onlinetime += reader.GetInt32(4) % 60 + TableManager.GetGMTText(94); yuanbao_all = reader.GetInt32(5).ToString(); lingyu = reader.GetInt32(6).ToString(); lastSaveTime = reader.GetDateTime(7).ToString(); } }, server.DatabaseAddress, server.DatabasePort, server.DatabaseCharSet, server.GameDatabase, server.DatabaseUserId, server.DatabasePassword, "SELECT `vip_level`,`money`,`yuanbao`,`energy`,`online_time`,`yuanbao_all`,`hero_soul_ex`,`last_save_time` FROM `user_info` WHERE `uid`={0};", playerId); #endregion #region 副本进度、帮派名称 DatabaseAssistant.Execute( reader => { if (reader.Read()) { byte[] buffer = new byte[reader.GetBytes(0, 0, null, 0, int.MaxValue)]; reader.GetBytes(0, 0, buffer, 0, buffer.Length); using (MemoryStream stream = new MemoryStream(buffer)) { mw.OtherInfo othern = ProtoSerializer.Instance.Deserialize(stream, null, typeof(mw.OtherInfo)) as mw.OtherInfo; fuben = othern.instanceInfo.comm_instance.ToString(); guildName = othern.guildInfo.name; if (string.IsNullOrEmpty(guildName)) { guildName = TableManager.GetGMTText(743); } } } }, server.DatabaseAddress, server.DatabasePort, server.DatabaseCharSet, server.GameDatabase, server.DatabaseUserId, server.DatabasePassword, "SELECT `other_data` FROM `other_info` WHERE `uid`={0};", playerId); #endregion #region 创建时间 int dayidx = 0; //记录创建时间是一年中的第几天 DateTime registertime = DateTime.Now; //角色创建时间 DatabaseAssistant.Execute(reader => { registerTime = TableManager.GetGMTText(719); if (reader.Read()) { DateTime datetime = reader.GetDateTime(0); registerTime = datetime.ToString(); dayidx = reader.GetDateTime(0).DayOfYear; registertime = reader.GetDateTime(0); } }, server.DatabaseAddress, server.DatabasePort, server.DatabaseCharSet, server.GameDatabase, server.DatabaseUserId, server.DatabasePassword, "SELECT `register_time` FROM `user` WHERE `uid`={0};", playerId); #endregion #region 团队等级、武将数量 DatabaseAssistant.Execute( reader => { if (reader.Read()) { byte[] buffer = new byte[reader.GetBytes(0, 0, null, 0, int.MaxValue)]; reader.GetBytes(0, 0, buffer, 0, buffer.Length); using (MemoryStream stream = new MemoryStream(buffer)) { mw.HeroPackage heroPackage = ProtoSerializer.Instance.Deserialize(stream, null, typeof(mw.HeroPackage)) as mw.HeroPackage; teamLevel = heroPackage.level.ToString(); heroCount = heroPackage.heroInfos.Count.ToString(); } } }, server.DatabaseAddress, server.DatabasePort, server.DatabaseCharSet, server.GameDatabase, server.DatabaseUserId, server.DatabasePassword, "SELECT `card_data` FROM `card_package` WHERE `uid`={0};", playerId); #endregion #region 月卡 //小月卡=超值月卡 DatabaseAssistant.Execute( reader => { smallMonth = TableManager.GetGMTText(743); if (reader.Read()) { DateTime datetime = reader.GetDateTime(0); smallMonth = datetime.ToString(); } }, server.DatabaseAddress, server.DatabasePort, server.DatabaseCharSet, server.GameDatabase, server.DatabaseUserId, server.DatabasePassword, "SELECT `s_month_time` FROM `user_info` WHERE `uid`={0};", playerId); //大月卡=至尊卡 DatabaseAssistant.Execute( reader => { bigMonth = TableManager.GetGMTText(744); if (reader.Read()) { if (reader.GetInt32(0) == 1) { bigMonth = TableManager.GetGMTText(745); } } }, server.DatabaseAddress, server.DatabasePort, server.DatabaseCharSet, server.GameDatabase, server.DatabaseUserId, server.DatabasePassword, "SELECT `ex_month_time` FROM `user_info` WHERE `uid`={0};", playerId); #endregion #region 显示 if (vipLevel == "") { vipLevel = "0"; } if (teamLevel == "") { teamLevel = "0"; } if (yuanbao_all == "") { yuanbao_all = "0"; } if (yuanbao == "") { yuanbao = "0"; } if (money == "") { money = "0"; } if (energy == "") { energy = "0"; } if (lingyu == "") { lingyu = "0"; } if (heroCount == "") { heroCount = "0"; } if (fuben == "") { fuben = TableManager.GetGMTText(743); } if (guildName == "") { guildName = TableManager.GetGMTText(743); } if (onlinetime == "") { onlinetime = "0"; } builder.Append("<table><tr><td colspan='8'>" + TableManager.GetGMTText(57) + "</td></tr>"); builder.Append("<tr><td colspan='2'>" + TableManager.GetGMTText(58) + ":").Append(playerId); builder.Append("</td><td colspan='2'>" + TableManager.GetGMTText(59) + ":").Append(GetPlayerStatus(playerId)); builder.Append("</td><td colspan='2'>" + TableManager.GetGMTText(60) + ":").Append(vipLevel); builder.Append("</td><td colspan='2'>" + TableManager.GetGMTText(61) + ":").Append(teamLevel); builder.Append("</td></tr><tr><td colspan='2'>" + TableManager.GetGMTText(62) + ":").Append(yuanbao_all); builder.Append("</td><td colspan='2'>" + TableManager.GetGMTText(63) + ":").Append(yuanbao); builder.Append("</td><td colspan='2'>" + TableManager.GetGMTText(64) + ":").Append(money); builder.Append("</td><td colspan='2'>" + TableManager.GetGMTText(65) + ":").Append(energy); builder.Append("</td></tr><tr><td colspan='2'>" + TableManager.GetGMTText(66) + ":").Append(lingyu); builder.Append("</td><td colspan='2'>" + TableManager.GetGMTText(67) + ":").Append(heroCount); builder.Append("</td><td colspan='2'>" + TableManager.GetGMTText(68) + ":").Append(fuben); builder.Append("</td><td colspan='2'>" + TableManager.GetGMTText(69) + ":").Append(guildName); builder.Append("</td></tr><tr><td colspan='4'>" + TableManager.GetGMTText(70) + ":").Append(registerTime); builder.Append("</td><td colspan='4'>" + TableManager.GetGMTText(71) + ":").Append(lastSaveTime); builder.Append("</td></tr><tr><td colspan='2'>" + TableManager.GetGMTText(72) + ":").Append(onlinetime); builder.Append("</td><td colspan='4'>" + TableManager.GetGMTText(746) + ":").Append(smallMonth); builder.Append("</td></tr><tr><td colspan='2'>" + TableManager.GetGMTText(74) + ":").Append(bigMonth); builder.Append("</td></tr></table>"); this.idLabel.Text = builder.ToString(); #endregion } }