public static TCPProcessCmdResults ProcessUpdateTarotDataCmd(DBManager dbMgr, TCPOutPacketPool pool, int nID, byte[] data, int count, out TCPOutPacket tcpOutPacket) { tcpOutPacket = null; string cmdData = null; try { cmdData = new UTF8Encoding().GetString(data, 0, count); } catch (Exception) { LogManager.WriteLog(LogTypes.Error, string.Format("解析指令字符串错误, CMD={0}", (TCPGameServerCmds)nID), null, true); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 20100); return(TCPProcessCmdResults.RESULT_DATA); } try { string[] fields = cmdData.Split(new char[] { ':' }); if (fields.Length != 3) { LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Recv={1}, CmdData={2}", (TCPGameServerCmds)nID, fields.Length, cmdData), null, true); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); } int roleID = Convert.ToInt32(fields[0]); string dataInfo = fields[1]; string kingBuffInfo = fields[2]; string dbTarotInfo = string.Empty; string dbKingInfo = string.Empty; DBRoleInfo dbRoleInfo = dbMgr.GetDBRoleInfo(ref roleID); if (null != dbRoleInfo) { lock (dbRoleInfo) { TarotCardData tarotData = new TarotCardData(dataInfo); if (tarotData.GoodId > 0) { TarotCardData oldData = dbRoleInfo.TarotData.TarotCardDatas.Find((TarotCardData x) => x.GoodId == tarotData.GoodId); if (oldData == null) { dbRoleInfo.TarotData.TarotCardDatas.Add(tarotData); } else { TarotCardData targetData = dbRoleInfo.TarotData.TarotCardDatas.Find((TarotCardData x) => x.Postion == tarotData.Postion); if (targetData != null) { targetData.Postion = 0; } oldData.Level = tarotData.Level; oldData.Postion = tarotData.Postion; oldData.TarotMoney = tarotData.TarotMoney; } } foreach (TarotCardData info in dbRoleInfo.TarotData.TarotCardDatas) { dbTarotInfo += info.GetDataStrInfo(); } if (kingBuffInfo != "-1") { TarotKingData kingBuffData = new TarotKingData(kingBuffInfo); dbRoleInfo.TarotData.KingData = kingBuffData; } } } else { LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Recv={1}, CmdData={2}", (TCPGameServerCmds)nID, fields.Length, cmdData), null, true); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 0x782f); return(TCPProcessCmdResults.RESULT_DATA); } string strcmd = DBWriter.UpdateTarotData(dbMgr, roleID, dbTarotInfo, dbRoleInfo.TarotData.KingData.GetDataStrInfo()) ? "1" : "0"; tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, strcmd, nID); return(TCPProcessCmdResults.RESULT_DATA); } catch (Exception ex) { DataHelper.WriteFormatExceptionLog(ex, "", false, false); } tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); }
//更新数据库资料 private static void UpdateTarotData2DB(GameClient client, TarotCardData tarotData, TarotKingData tarotKingBuffData) { string[] dbFields = null; var tarotStrInfo = tarotData == null ? "-1" : tarotData.GetDataStrInfo(); var kingBuffStrInfo = tarotKingBuffData == null ? "-1" : tarotKingBuffData.GetDataStrInfo(); var sCmd = string.Format("{0}:{1}:{2}", client.ClientData.RoleID, tarotStrInfo, kingBuffStrInfo); TCPProcessCmdResults retcmd = Global.RequestToDBServer(Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, (int)TCPGameServerCmds.CMD_DB_UPDATA_TAROT, sCmd, out dbFields, client.ServerId); }
private static void UpdateTarotData2DB(GameClient client, TarotCardData tarotData, TarotKingData tarotKingBuffData) { string[] dbFields = null; string tarotStrInfo = (tarotData == null) ? "-1" : tarotData.GetDataStrInfo(); string kingBuffStrInfo = (tarotKingBuffData == null) ? "-1" : tarotKingBuffData.GetDataStrInfo(); string sCmd = string.Format("{0}:{1}:{2}", client.ClientData.RoleID, tarotStrInfo, kingBuffStrInfo); TCPProcessCmdResults retcmd = Global.RequestToDBServer(Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, 20100, sCmd, out dbFields, client.ServerId); }