public PlayerData UpdatePlayerItem(string account, Int16 itemID, string itemName, byte itemType, Int16 itemCount) { try { PlayerDataIO playerDataIO = new PlayerDataIO(); PlayerData playerData2 = playerDataIO.LoadPlayerData(account); if (itemType == (byte)StoreType.Mice) { var dictMiceAll = Json.Deserialize(playerData2.MiceAll) as Dictionary <string, object>; if (!dictMiceAll.ContainsValue(itemName)) { dictMiceAll.Add((dictMiceAll.Count + 1).ToString(), itemName); string miceAll = Json.Serialize(dictMiceAll); playerDataIO.UpdatePlayerData(account, miceAll); } } playerData = playerDataIO.LoadPlayerItem(account, itemID); playerData.ItemCount += itemCount; playerData = playerDataIO.UpdatePlayerItem(account, itemID, itemType, playerData.ItemCount); return(playerData); } catch { throw; } }
public PlayerData UpdatePlayerData(string account, string miceAll, string team) { PlayerData playerData = new PlayerData(); playerData.ReturnCode = "(Logic)S400"; playerData.ReturnMessage = ""; try { //載入伺服器玩家資料提供比對 playerData = LoadPlayerData(account); if (playerData.ReturnCode == "S401") { clinetData = MiniJSON.Json.Deserialize(miceAll) as Dictionary <string, object>; serverData = MiniJSON.Json.Deserialize(playerData.MiceAll) as Dictionary <string, object>; if (serverData.Count != clinetData.Count) { playerData.ReturnCode = "S412"; playerData.ReturnMessage = "老鼠成員異常!"; } clinetData = MiniJSON.Json.Deserialize(team) as Dictionary <string, object>; serverData = MiniJSON.Json.Deserialize(playerData.Team) as Dictionary <string, object>; //如果與伺服器資料 數量不相同 if (serverData.Count != clinetData.Count) { playerData.ReturnCode = "S413"; playerData.ReturnMessage = "隊伍老鼠異常!"; } /* * clinetData = MiniJSON.Json.Deserialize(miceAmount) as Dictionary<string, object>; * serverData = MiniJSON.Json.Deserialize(playerData.MiceAmount) as Dictionary<string, object>; * * //如果與伺服器資料 數量不相同 * if (serverData.Count == clinetData.Count) * { * foreach (KeyValuePair<string, object> serverMice in serverData) * { * if (serverMice.Value != clinetData[serverMice.Key]) * { * playerData.ReturnCode = "S414"; * playerData.ReturnMessage = "老鼠數量異常!"; * } * } * } * else * { * playerData.ReturnCode = "S414"; * playerData.ReturnMessage = "老鼠數量異常!"; * } */ /* * clinetData = MiniJSON.Json.Deserialize(item) as Dictionary<string, object>; * serverData = MiniJSON.Json.Deserialize(playerData.Item) as Dictionary<string, object>; * * //如果與伺服器資料 數量不相同 * if (serverData.Count == clinetData.Count) * { * foreach (KeyValuePair<string, object> serverItem in serverData) * { * if (serverItem.Value != clinetData[serverItem.Key]) * { * playerData.ReturnCode = "S419"; * playerData.ReturnMessage = "道具數量異常!"; * } * } * } * else * { * playerData.ReturnCode = "S419"; * playerData.ReturnMessage = "道具數量異常!"; * } */ //如果驗證成功 寫入玩家資料 PlayerDataIO playerDataIO = new PlayerDataIO(); playerData = playerDataIO.UpdatePlayerData(account, miceAll, team); } } catch (Exception e) { throw e; } return(playerData); }
public PlayerData UpdatePlayerData(string account, string miceAll, string miceName, int amount) { PlayerData playerData = new PlayerData(); playerData.ReturnCode = "(Logic)S400"; playerData.ReturnMessage = ""; try { //載入伺服器玩家資料提供比對 playerData = LoadPlayerData(account); if (playerData.ReturnCode == "S401") { clinetData = MiniJSON.Json.Deserialize(miceAll) as Dictionary <string, object>; serverData = MiniJSON.Json.Deserialize(playerData.MiceAll) as Dictionary <string, object>; if (serverData.Count != clinetData.Count) { playerData.ReturnCode = "S412"; playerData.ReturnMessage = "老鼠成員異常!"; } if (!serverData.ContainsValue(miceName)) { serverData.Add((serverData.Count + 1).ToString(), miceName); miceAll = MiniJSON.Json.Serialize(serverData); } /* * clinetData = MiniJSON.Json.Deserialize(miceAmount) as Dictionary<string, object>; * serverData = MiniJSON.Json.Deserialize(playerData.MiceAmount) as Dictionary<string, object>; * * //如果與伺服器資料 數量不相同 這沒驗證個別道具數量 只有驗證總數 * if (serverData.Count == clinetData.Count) * { * foreach (KeyValuePair<string, object> serverMice in serverData) * { * if (serverMice.Value != clinetData[serverMice.Key]) * { * playerData.ReturnCode = "S414"; * playerData.ReturnMessage = "老鼠數量異常!"; * } * } * } * else * { * playerData.ReturnCode = "S414"; * playerData.ReturnMessage = "老鼠數量異常!"; * } * * if (!serverData.ContainsKey(miceName)) * { * serverData.Add(miceName, amount); * } * else * { * int miceCount = int.Parse(serverData[miceName].ToString()); * serverData[miceName] = miceCount + amount; * } * miceAmount = MiniJSON.Json.Serialize(serverData); */ //如果驗證成功 寫入玩家資料 PlayerDataIO playerDataIO = new PlayerDataIO(); playerData = playerDataIO.UpdatePlayerData(account, miceAll); } } catch (Exception e) { throw e; } return(playerData); }
public PlayerData UpdatePlayerData(string account, byte rank, byte exp, Int16 maxCombo, int maxScore, int sumScore, Int16 sumLost, int sumKill, string item, string miceAll, string team, string friend) { PlayerData playerData = new PlayerData(); playerData.ReturnCode = "(Logic)S400"; playerData.ReturnMessage = ""; try { RankChk(rank); EXPChk(exp); //MaxComboChk(maxCombo); //ScoreChk(score); if (maxCombo < 0 && maxCombo > 1000) { playerData.ReturnCode = "S409"; playerData.ReturnMessage = "玩家Combo異常!"; } if (maxScore < 0 && maxScore > int.MaxValue) { playerData.ReturnCode = "S410"; playerData.ReturnMessage = "玩家分數異常!"; } if (sumScore < 0 && sumScore > int.MaxValue) { playerData.ReturnCode = "S411"; playerData.ReturnMessage = "玩家總分異常!"; } if (sumLost < 0 && sumLost > Int16.MaxValue) { playerData.ReturnCode = "S417"; playerData.ReturnMessage = "玩家跑掉的老鼠數量異常!"; } if (sumKill < 0 && sumKill > int.MaxValue) { playerData.ReturnCode = "S418"; playerData.ReturnMessage = "玩家趕跑的老鼠數量異常!"; } //載入伺服器玩家資料提供比對 錯誤 如果玩家資料減少或變多,卻無法去更新資料 playerData = LoadPlayerData(account); if (playerData.ReturnCode == "S401") { clinetData = MiniJSON.Json.Deserialize(miceAll) as Dictionary <string, object>; serverData = MiniJSON.Json.Deserialize(playerData.MiceAll) as Dictionary <string, object>; if (serverData.Count != clinetData.Count) { playerData.ReturnCode = "S412"; playerData.ReturnMessage = "老鼠成員異常!"; } clinetData = MiniJSON.Json.Deserialize(team) as Dictionary <string, object>; serverData = MiniJSON.Json.Deserialize(playerData.Team) as Dictionary <string, object>; //如果與伺服器資料 數量不相同 if (serverData.Count != clinetData.Count) { playerData.ReturnCode = "S413"; playerData.ReturnMessage = "隊伍老鼠異常!"; } /* * clinetData = MiniJSON.Json.Deserialize(miceAmount) as Dictionary<string, object>; * serverData = MiniJSON.Json.Deserialize(playerData.MiceAmount) as Dictionary<string, object>; * * //如果與伺服器資料 數量不相同 * if (serverData.Count == clinetData.Count) * { * foreach (KeyValuePair<string, object> serverMice in serverData) * { * if (serverMice.Value != clinetData[serverMice.Key]) * { * playerData.ReturnCode = "S414"; * playerData.ReturnMessage = "老鼠數量異常!"; * } * } * } * else * { * playerData.ReturnCode = "S414"; * playerData.ReturnMessage = "老鼠數量異常!"; * } */ clinetData = MiniJSON.Json.Deserialize(friend) as Dictionary <string, object>; serverData = MiniJSON.Json.Deserialize(playerData.Friend) as Dictionary <string, object>; //如果與伺服器資料 數量不相同 if (serverData.Count != clinetData.Count) { playerData.ReturnCode = "S415"; playerData.ReturnMessage = "好友名單異常!"; } clinetData = MiniJSON.Json.Deserialize(item) as Dictionary <string, object>; serverData = MiniJSON.Json.Deserialize(playerData.SortedItem) as Dictionary <string, object>; //如果與伺服器資料 數量不相同 if (serverData.Count == clinetData.Count) { foreach (KeyValuePair <string, object> serverItem in serverData) { if (serverItem.Value != clinetData[serverItem.Key]) { playerData.ReturnCode = "S419"; playerData.ReturnMessage = "道具數量異常!"; } } } else { playerData.ReturnCode = "S419"; playerData.ReturnMessage = "道具數量異常!"; } //如果驗證成功 寫入玩家資料 PlayerDataIO playerDataIO = new PlayerDataIO(); playerData = playerDataIO.UpdatePlayerData(account, rank, exp, maxCombo, maxScore, sumScore, sumLost, sumKill, item, miceAll, team, friend); } } catch (Exception e) { throw e; } return(playerData); }