Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        //更新数据库资料
        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);
        }
Esempio n. 3
0
 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);
 }