/// <summary> /// 合战战报生成 /// </summary> /// <param name="userid">进攻玩家id</param> /// <param name="baseid">基表id(聊天信息表)</param> /// <param name="cityiid">据点基表id</param> /// <param name="defenseuserid">防守玩家用户id</param> private void WarReportInsert(Int64 userid, int baseid, int cityiid, Int64 defenseuserid, string attackname) { var attackreport = new tg_war_fight_report() { user_id = userid, report_time = DateTime.Now, base_id = baseid, city_id = cityiid, }; attackreport.Insert(); ReportSend(attackreport, true); var defensereport = new tg_war_fight_report() { user_id = defenseuserid, report_time = DateTime.Now, city_id = cityiid, attack_user_name = attackname, }; if (baseid == 100042) { defensereport.base_id = 100041; } if (baseid == 100043) { defensereport.base_id = 100040; } defensereport.Insert(); ReportSend(defensereport, false); }
/// <summary> /// 发送战报推送协议 /// </summary> /// <param name="report"></param> /// <param name="isattack">是否被攻击</param> private void ReportSend(tg_war_fight_report report, bool isattack) { if (Variable.OnlinePlayer.ContainsKey(report.user_id)) { var vo = new WarRecordInfoVo { id = report.id, warRecordId = report.base_id, times = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), replaceList = isattack ? new List <string>() { report.city_id.ToString() } : new List <string>() { report.city_id.ToString(), report.attack_user_name }, }; var dic = new Dictionary <string, object>() { { "report", vo } }; var session = Variable.OnlinePlayer[report.user_id] as TGGSession; var pv = new ProtocolVo { serialNumber = 1, verificationCode = 1, moduleNumber = (int)ModuleNumber.WAR, commandNumber = (int)WarCommand.WAR_REPORT_PUSH, sendTime = 1000, serverTime = (DateTime.Now.Ticks - 621355968000000000) / 10000, status = (int)ResponseType.TYPE_SUCCESS, data = new ASObject(dic), }; session.SendData(pv); } }