示例#1
0
        /// <summary>
        /// 更新db
        /// </summary>
        public bool UpdateDb(int roleid, ESevenDayActType actType, int id, SevenDayItemData itemData, int serverId)
        {
            SevenDayUpdateDbData updateData = new SevenDayUpdateDbData();

            updateData.RoleId       = roleid;
            updateData.ActivityType = (int)actType;
            updateData.Id           = id;
            updateData.Data         = itemData;

            if (!Global.sendToDB <bool, SevenDayUpdateDbData>((int)TCPGameServerCmds.CMD_DB_UPDATE_SEVEN_DAY_ITEM_DATA, updateData, serverId))
            {
                LogManager.WriteLog(LogTypes.Error, string.Format("七日活动更新玩家数据失败, roleid={0}, act={1}, id={2}", roleid, actType, id));
                return(false);
            }

            return(true);
        }
示例#2
0
        private void HandleUpdate(GameServerClient client, int nID, byte[] cmdParams, int count)
        {
            bool bResult = false;

            try
            {
                SevenDayUpdateDbData data   = DataHelper.BytesToObject <SevenDayUpdateDbData>(cmdParams, 0, count);
                DBRoleInfo           dbRole = DBManager.getInstance().GetDBRoleInfo(ref data.RoleId);
                if (dbRole == null)
                {
                    throw new Exception("SevenDayActivityManager.HandleUpdate not Find DBRoleInfo, roleid=" + data.RoleId);
                }
                string sql = string.Format("REPLACE INTO t_seven_day_act(roleid,act_type,id,award_flag,param1,param2) VALUES({0},{1},{2},{3},{4},{5})", new object[]
                {
                    data.RoleId,
                    data.ActivityType,
                    data.Id,
                    data.Data.AwardFlag,
                    data.Data.Params1,
                    data.Data.Params2
                });
                if (!this.ExecNonQuery(sql))
                {
                    throw new Exception("SevenDayActivityManager.HandleUpdate ExecSql Failed, sql= " + sql);
                }
                lock (dbRole.SevenDayActDict)
                {
                    Dictionary <int, SevenDayItemData> itemDict = null;
                    if (!dbRole.SevenDayActDict.TryGetValue(data.ActivityType, out itemDict))
                    {
                        itemDict = new Dictionary <int, SevenDayItemData>();
                        dbRole.SevenDayActDict[data.ActivityType] = itemDict;
                    }
                    itemDict[data.Id] = data.Data;
                }
                bResult = true;
            }
            catch (Exception ex)
            {
                LogManager.WriteLog(LogTypes.Error, ex.Message, null, true);
                bResult = false;
            }
            client.sendCmd <bool>(nID, bResult);
        }