/// <summary> /// 획득 인형 저장 /// </summary> /// <param name="gunId"></param> public static void WriteGetDollInfo(int gunId) { Encoding encoding; switch (Config.Setting.fileEncoding) { case "UTF-8": encoding = Encoding.UTF8; break; case "Default": default: encoding = Encoding.Default; break; } string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\Infos"; Directory.CreateDirectory(path); //string filename = String.Format(path + "\\{0}_{1}_rescued_doll_{2}.csv", UserData.name, UserData.userId, DateTime.Now.ToString("yyyyMMdd")); string filename = String.Format(path + "\\{0}_{1}_rescued_doll.csv", UserData.name, UserData.uid); if (!File.Exists(filename)) { using (StreamWriter sw = new StreamWriter(filename, true, Encoding.GetEncoding("euc-kr"))) { string headerLine = string.Format("{0},{1},{2},{3},{4},{5},{6},{7}", LanguageResources.Instance["RESCUE_DOLL_DATETIME"], LanguageResources.Instance["RESCUE_DOLL_MISSION_ID"], LanguageResources.Instance["RESCUE_DOLL_MISSION_NAME"], LanguageResources.Instance["RESCUE_DOLL_MISSION_COUNT"], LanguageResources.Instance["RESCUE_DOLL_DOLL_ID"], LanguageResources.Instance["RESCUE_DOLL_DOLL_NAME"], LanguageResources.Instance["RESCUE_DOLL_DOLL_STAR"], LanguageResources.Instance["RESCUE_DOLL_DOLL_CORE"]); sw.WriteLine(headerLine, false, Encoding.UTF8); sw.Close(); } } using (StreamWriter sw = new StreamWriter(filename, true, Encoding.GetEncoding("euc-kr"))) { //Dictionary<string, string> dollData = GameData.Doll.GetData(gunId); JObject dollData = GameData.Doll.GetDollData(gunId); string gunName = LanguageResources.Instance[string.Format("DOLL_{0}", gunId)]; //string gunName = Parser.Json.ParseString(dollData["name"]); int star = Parser.Json.ParseInt(dollData["star"]); int core = GameData.Doll.GetCore(star); long counter = -1; int currentMissionId = UserData.CurrentMission.id; string currentMissionLocation = UserData.CurrentMission.location; MissionWithUserInfo mission = UserData.Mission.Get(currentMissionId); if (mission != null) { counter = mission.counter; } string newLine = string.Format("{0},{1},{2},{3},{4},{5},{6},{7}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), currentMissionId, currentMissionLocation, counter, gunId, gunName, star, core); sw.WriteLine(newLine, false); sw.Close(); } }
/// <summary> /// 작전 시작 /// ("Mission/startMission") /// </summary> /// <param name="request_string"></param> /// <param name="response_string"></param> public static void StartMission(string request_string, string response_string) { #region Packet Example // request Mission/startMission?uid={0}&outdatacode={1}&req_id={2} /* * { * "mission_id": 109, * "spots": [ * { * "spot_id": 9016, * "team_id": 1 * }, * { * "spot_id": 9018, * "team_id": 2 * }, * { * "spot_id": 9017, * "team_id": 3 * } * ], * "squad_spots": [], * "ally_id": 1564641889 * } */ // response (야간) /* * { * "night_spots": [ * { * "spot_id": "7067", * "belong": "2", * "seed": 7212 * }, * { * "spot_id": "7068", * "belong": "3", * "seed": 9802 * }, * { * "spot_id": "7070", * "belong": "1", * "seed": 1964 * }, * ... * ], * "night_enemy": [ * { * "enemy_team_id": "1987", * "enemy_hp_percent": "1", * "enemy_instance_id": "8", * "enemy_birth_turn": "1", * "enemy_ai": "0", * "enemy_ai_para": 0, * "from_spot_id": "7076", * "to_spot_id": "7076", * "boss_hp": "0", * "hostage_id": "0", * "hostage_hp": "0", * "ally_instance_ids": [] * }, * { * "enemy_team_id": "1987", * "enemy_hp_percent": "1", * "enemy_instance_id": "11", * "enemy_birth_turn": "1", * "enemy_ai": "0", * "enemy_ai_para": 0, * "from_spot_id": "7079", * "to_spot_id": "7079", * "boss_hp": "0", * "hostage_id": "0", * "hostage_hp": "0", * "ally_instance_ids": [] * } * ], * "night_ally": [], * "ally_instance_info": [], * "ally_battle": [], * "building_info": [], * "squad_info": [], * "ap": 7, * "fairy_skill_return": [], * "fairy_skill_perform": [], * "fairy_skill_on_spot": [], * "fairy_skill_on_team": [], * "fairy_skill_on_enemy": [], * "fairy_skill_on_squad": [] * } */ #endregion try { log.Debug("작전 시작"); JObject request = Parser.Json.ParseJObject(request_string); JObject response = Parser.Json.ParseJObject(response_string); if (request != null && response != null) { int missionId = Parser.Json.ParseInt(request["mission_id"]); // 현재 작전 중인 전역 UserData.CurrentMission.id = missionId; UserData.CurrentMission.turnCount = 1; log.Debug("전역번호 {0}", UserData.CurrentMission.id); log.Debug("전역명 {0}", UserData.CurrentMission.location); // 모의작전 int use_bp = GameData.Mission.GetUsedAp(missionId); // 모의작전점수 차감 if (use_bp > 0) { UserData.CombatSimulation.UseBp(use_bp); // 임무 갱신 UserData.Quest.Daily.combatSim += 1; UserData.Quest.Weekly.combatSim += 1; } // 일반작전 // 전역횟수 업데이트 MissionWithUserInfo mission = UserData.Mission.Get(missionId); if (mission != null) { mission.counter++; // 전역횟수++ UserData.Mission.Set(mission); log.Debug("전역횟수 {0}", mission.counter); } // 제대이동 횟수 초기화 UserData.CurrentMission.moveCount = 0; // 아군 제대 위치 if (request.ContainsKey("spots")) { // 제대배치 JArray spots = Parser.Json.ParseJArray(Parser.Json.ParseString(request["spots"])); foreach (var spot in spots) { int spotId = Parser.Json.ParseInt(spot["spot_id"]); int teamId = Parser.Json.ParseInt(spot["team_id"]); UserData.CurrentMission.ReinforceTeam(teamId, spotId); } } PacketProcess.Mission.MoveTeam(request, response); PacketProcess.Mission.SpotBelongChange(request, response); } } catch (Exception ex) { log.Error(ex, "작전 시작 처리 실패"); } }