public int HandlePacket(GameClient client, GSPacketIn packet) { //if (client.Player.CurrentHotSpringRoom != null) //{ // client.Player.CurrentHotSpringRoom.ProcessData(client.Player, packet); //} GSPacketIn pkg = new GSPacketIn((byte)ePackageType.HOTSPRING_ROOM_PLAYER_ADD); var player = client.Player.PlayerCharacter; pkg.WriteInt(player.ID); pkg.WriteInt(player.Grade); pkg.WriteInt(player.Hide); pkg.WriteInt(player.Repute); pkg.WriteString(player.NickName); pkg.WriteBoolean(true); pkg.WriteInt(5); pkg.WriteBoolean(player.Sex); pkg.WriteString(player.Style); pkg.WriteString(player.Colors); pkg.WriteString(player.Skin); pkg.WriteInt(405); pkg.WriteInt(405); //var _loc_6:* = new Point(_loc_2.readInt(), _loc_2.readInt()); pkg.WriteInt(player.FightPower); pkg.WriteInt(player.Win); pkg.WriteInt(player.Total); pkg.WriteInt(45); //_loc_5.FightPower = _loc_2.readInt(); //_loc_5.WinCount = _loc_2.readInt(); //_loc_5.TotalCount = _loc_2.readInt(); //_loc_4.playerDirection = _loc_2.readInt(); client.SendTCP(pkg); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { int Type = packet.ReadInt(); if (Type == 2) { int ItemID = packet.ReadInt(); using (PlayerBussiness db = new PlayerBussiness()) { ItemInfo Item = db.GetUserItemSingle(ItemID); if (Item != null) { GSPacketIn pkg = new GSPacketIn((byte)ePackageType.LINKREQUEST_GOODS, client.Player.PlayerCharacter.ID); pkg.WriteInt(Item.TemplateID); pkg.WriteInt(Item.ItemID); pkg.WriteInt(Item.StrengthenLevel); pkg.WriteInt(Item.AttackCompose); pkg.WriteInt(Item.AgilityCompose); pkg.WriteInt(Item.LuckCompose); pkg.WriteInt(Item.DefendCompose); pkg.WriteInt(Item.ValidDate); pkg.WriteBoolean(Item.IsBinds); pkg.WriteBoolean(Item.IsJudge); pkg.WriteBoolean(Item.IsUsed); if (Item.IsUsed) { pkg.WriteString(Item.BeginDate.ToString()); } pkg.WriteInt(Item.Hole1); pkg.WriteInt(Item.Hole2); pkg.WriteInt(Item.Hole3); pkg.WriteInt(Item.Hole4); pkg.WriteInt(Item.Hole5); pkg.WriteInt(Item.Hole6); pkg.WriteString(Item.Template.Hole); client.Out.SendTCP(pkg); } return 1; } } return 0; }
public GSPacketIn SendAASControl(bool result, bool IsAASInfo, bool IsMinor) { GSPacketIn pkg = new GSPacketIn((byte)ePackageType.AAS_CTRL); //pkg.WriteBoolean(result); //pkg.WriteBoolean(IsAASInfo); //pkg.WriteBoolean(IsMinor); //DDTank pkg.WriteBoolean(true); pkg.WriteInt(1); pkg.WriteBoolean(true); pkg.WriteBoolean(IsMinor); SendTCP(pkg); return pkg; }
public GSPacketIn SendAASInfoSet(bool result) { GSPacketIn pkg = new GSPacketIn((byte)ePackageType.GAME_VISITOR_DATA);//AAS_INFO_SET pkg.WriteBoolean(result); SendTCP(pkg); return pkg; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; int id = packet.ReadInt(); bool result = false; string msg = "ConsortiaApplyLoginPassHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { int consortiaRepute = 0; ConsortiaUserInfo info = new ConsortiaUserInfo(); if (db.PassConsortiaApplyUsers(id, client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.NickName, client.Player.PlayerCharacter.ConsortiaID, ref msg, info, ref consortiaRepute)) { msg = "ConsortiaApplyLoginPassHandler.Success"; result = true; if (info.UserID != 0) { info.ConsortiaID = client.Player.PlayerCharacter.ConsortiaID; info.ConsortiaName = client.Player.PlayerCharacter.ConsortiaName; GameServer.Instance.LoginServer.SendConsortiaUserPass(client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.NickName, info, false, consortiaRepute, info.LoginName, client.Player.PlayerCharacter.FightPower); } } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; int id = packet.ReadInt(); string remark = packet.ReadString(); if (string.IsNullOrEmpty(remark) || System.Text.Encoding.Default.GetByteCount(remark) > 100) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ConsortiaUserRemarkHandler.Long")); return 1; } bool result = false; string msg = "ConsortiaUserRemarkHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { if (db.UpdateConsortiaUserRemark(id, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, remark, ref msg)) { msg = "ConsortiaUserRemarkHandler.Success"; result = true; } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public GSPacketIn SendAASState(bool result) { GSPacketIn pkg = new GSPacketIn((byte)ePackageType.GAME_VISITOR_DATA);//AAS_STATE_GET pkg.WriteBoolean(result); SendTCP(pkg); return pkg; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID != 0) return 0; int id = packet.ReadInt(); bool result = false; string msg = "ConsortiaApplyLoginHandler.ADD_Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { ConsortiaApplyUserInfo info = new ConsortiaApplyUserInfo(); info.ApplyDate = DateTime.Now; info.ConsortiaID = id; info.ConsortiaName = ""; info.IsExist = true; info.Remark = ""; info.UserID = client.Player.PlayerCharacter.ID; info.UserName = client.Player.PlayerCharacter.NickName; if (db.AddConsortiaApplyUsers(info, ref msg)) { msg = id != 0 ? "ConsortiaApplyLoginHandler.ADD_Success" : "ConsortiaApplyLoginHandler.DELETE_Success"; result = true; } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; int banUserID = packet.ReadInt(); bool isBanChat = packet.ReadBoolean(); int userID = 0; string userName = ""; bool result = false; string msg = "ConsortiaIsBanChatHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { if (db.UpdateConsortiaIsBanChat(banUserID, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, isBanChat, ref userID, ref userName, ref msg)) { msg = "ConsortiaIsBanChatHandler.Success"; result = true; GameServer.Instance.LoginServer.SendConsortiaBanChat(userID, userName, client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.NickName,isBanChat); } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; int id = packet.ReadInt(); bool isAlly = packet.ReadBoolean(); bool result = false; string msg = "ConsortiaApplyAllyAddHandler.Add_Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { ConsortiaApplyAllyInfo info = new ConsortiaApplyAllyInfo(); info.Consortia1ID = client.Player.PlayerCharacter.ConsortiaID; info.Consortia2ID = id; info.Date = DateTime.Now; info.State = 0;// isAlly ? 1 : 0; info.Remark = ""; info.IsExist = true; if (db.AddConsortiaApplyAlly(info, client.Player.PlayerCharacter.ID, ref msg)) { msg = "ConsortiaApplyAllyAddHandler.Add_Success"; result = true; } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; int id = client.Player.PlayerCharacter.ConsortiaID; string consortiaName = client.Player.PlayerCharacter.ConsortiaName; bool result = false; string msg = "ConsortiaDisbandHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { if (db.DeleteConsortia(client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, ref msg)) { result = true; msg = "ConsortiaDisbandHandler.Success1"; client.Player.ClearConsortia(); GameServer.Instance.LoginServer.SendConsortiaDelete(id); } } string temp = LanguageMgr.GetTranslation(msg); if (msg == "ConsortiaDisbandHandler.Success1") { temp += consortiaName + LanguageMgr.GetTranslation("ConsortiaDisbandHandler.Success2"); } packet.WriteBoolean(result); packet.WriteInt(client.Player.PlayerCharacter.ID); packet.WriteString(temp); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; //Type 1表示商城,2表示铁匠铺 bool result = false; string msg = "ConsortiaEquipControlHandler.Fail"; ConsortiaEquipControlInfo info = new ConsortiaEquipControlInfo(); info.ConsortiaID = client.Player.PlayerCharacter.ConsortiaID; using (ConsortiaBussiness db = new ConsortiaBussiness()) { for (int i = 0; i < 5; i++) { info.Riches = packet.ReadInt(); info.Type = 1; info.Level = i + 1; db.AddAndUpdateConsortiaEuqipControl(info, client.Player.PlayerCharacter.ID, ref msg); } info.Riches = packet.ReadInt(); info.Type = 2; info.Level = 0; db.AddAndUpdateConsortiaEuqipControl(info, client.Player.PlayerCharacter.ID, ref msg); msg = "ConsortiaEquipControlHandler.Success"; result = true; } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; int id = packet.ReadInt(); bool result = false; string nickName = ""; string msg = id == client.Player.PlayerCharacter.ID ? "ConsortiaUserDeleteHandler.ExitFailed" : "ConsortiaUserDeleteHandler.KickFailed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { if (db.DeleteConsortiaUser(client.Player.PlayerCharacter.ID, id, client.Player.PlayerCharacter.ConsortiaID, ref msg, ref nickName)) { msg = id == client.Player.PlayerCharacter.ID ? "ConsortiaUserDeleteHandler.ExitSuccess" : "ConsortiaUserDeleteHandler.KickSuccess"; int consortiaID = client.Player.PlayerCharacter.ConsortiaID; if (id == client.Player.PlayerCharacter.ID) { client.Player.ClearConsortia(); client.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Receiver); } // client.Player.StoreBag.SendStoreToMail(); GameServer.Instance.LoginServer.SendConsortiaUserDelete(id, consortiaID, id != client.Player.PlayerCharacter.ID, nickName,client.Player.PlayerCharacter.NickName); result = true; } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; int id = packet.ReadInt(); bool upGrade = packet.ReadBoolean(); bool result = false; string msg = "ConsortiaUserGradeUpdateHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { string tempUserName = ""; ConsortiaDutyInfo info = new ConsortiaDutyInfo(); if (db.UpdateConsortiaUserGrade(id, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, upGrade, ref msg, ref info, ref tempUserName)) { msg = "ConsortiaUserGradeUpdateHandler.Success"; result = true; GameServer.Instance.LoginServer.SendConsortiaDuty(info, upGrade ? 6 : 7, client.Player.PlayerCharacter.ConsortiaID,id, tempUserName,client.Player.PlayerCharacter.ID,client.Player.PlayerCharacter.NickName); } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.CurrentRoom == null) return 0; int id = packet.ReadInt(); GamePlayer player = Managers.WorldMgr.GetPlayerById(id); if (player == client.Player) return 0; List<GamePlayer> players = client.Player.CurrentRoom.GetPlayers(); foreach (GamePlayer p in players) { if (p == player) { client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("friendnotinthesameserver.Sameroom")); return 0; } } GSPacketIn pkg = new GSPacketIn((byte)ePackageType.GAME_INVITE); if (player != null && player.CurrentRoom == null) { pkg.WriteInt(client.Player.PlayerCharacter.ID); pkg.WriteInt(client.Player.CurrentRoom.RoomId); pkg.WriteInt(client.Player.CurrentRoom.MapId); pkg.WriteByte((byte)client.Player.CurrentRoom.TimeMode); pkg.WriteByte((byte)client.Player.CurrentRoom.RoomType); pkg.WriteByte((byte)client.Player.CurrentRoom.HardLevel); pkg.WriteByte((byte)client.Player.CurrentRoom.LevelLimits); pkg.WriteString(client.Player.PlayerCharacter.NickName); pkg.WriteBoolean(true); pkg.WriteInt(5); pkg.WriteString(client.Player.CurrentRoom.Name); pkg.WriteString(client.Player.CurrentRoom.Password); //TrieuLSL BN IMInvite barrierNum pkg.WriteInt(50); player.Out.SendTCP(pkg); } else { if (player != null && player.CurrentRoom != null && player.CurrentRoom != client.Player.CurrentRoom) { client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("friendnotinthesameserver.Room")); } else { client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("friendnotinthesameserver.Fail")); } } return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; bool result = false; string msg = "ConsortiaSmithUpGradeHandler.Failed"; //using (ConsortiaBussiness db = new ConsortiaBussiness()) //{ // ConsortiaInfo info = db.GetConsortiaSingle(client.Player.PlayerCharacter.ConsortiaID); ConsortiaInfo info = Managers.ConsortiaMgr.FindConsortiaInfo(client.Player.PlayerCharacter.ConsortiaID); if (info == null) { msg = "ConsortiaSmithUpGradeHandler.NoConsortia"; } else { using (ConsortiaBussiness cb = new ConsortiaBussiness()) { if (cb.UpGradeSmithConsortia(client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, ref msg)) { info.SmithLevel++; GameServer.Instance.LoginServer.SendConsortiaSmithUpGrade(info); msg = "ConsortiaSmithUpGradeHandler.Success"; result = true; } } } if (info.SmithLevel >= 3) { string msg1 = LanguageMgr.GetTranslation("ConsortiaSmithUpGradeHandler.Notice", client.Player.PlayerCharacter.ConsortiaName, info.SmithLevel); GSPacketIn pkg = new GSPacketIn((byte)ePackageType.SYS_NOTICE); pkg.WriteInt(2); pkg.WriteString(msg1); GameServer.Instance.LoginServer.SendPacket(pkg); GamePlayer[] players = Game.Server.Managers.WorldMgr.GetAllPlayers(); foreach (GamePlayer p in players) { if (p != client.Player) p.Out.SendTCP(pkg); } } //} packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 1; }
public int HandlePacket(GameClient client, GSPacketIn packet) { //bool result = false; if (string.IsNullOrEmpty(client.Player.PlayerCharacter.CheckCode)) return 1; //int check = packet.ReadInt(); string check = packet.ReadString(); if (client.Player.PlayerCharacter.CheckCode.ToLower() == check.ToLower()) { client.Player.PlayerCharacter.CheckCount = 0; //int rewardItemID = GameServer.Instance.Configuration.CheckRewardItem; //ItemTemplateInfo rewardItem = ItemMgr.GetSingleGoods(rewardItemID); //ItemInfo item = ItemInfo.CreateFromTemplate(rewardItem, 1, (int)Game.Server.Statics.ItemAddType.CheckCode); //if (item != null) //{ // item.IsBinds = true; // if (client.Player.AddItem(item, Game.Server.Statics.ItemAddType.CheckCode) != -1) // { // client.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("CheckCodeHandler.Msg1", item.Template.Name)); // } // else // { // client.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("CheckCodeHandler.Msg2")); // } //} int GP = LevelMgr.GetGP(client.Player.PlayerCharacter.Grade); client.Player.AddGP(LevelMgr.IncreaseGP(client.Player.PlayerCharacter.Grade, client.Player.PlayerCharacter.GP)); client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("CheckCodeHandler.Msg1", client.Player.PlayerCharacter.Grade * 12)); //result = true; packet.ClearContext(); packet.WriteByte(1); packet.WriteBoolean(false); client.Out.SendTCP(packet); } // else if (client.Player.PlayerCharacter.CheckError < 1 && client.Player.PlayerCharacter.CheckCount < 20000) else if (client.Player.PlayerCharacter.CheckError < 9) { client.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("CheckCodeHandler.Msg3")); client.Player.PlayerCharacter.CheckError++; client.Out.SendCheckCode(); } else { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("CheckCodeHandler.Msg3")); client.Disconnect(); } return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; int dutyID = packet.ReadInt(); int updateType = packet.ReadByte(); //int level = packet.ReadInt(); bool result = false; string msg = "ConsortiaDutyUpdateHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { ConsortiaDutyInfo info = new ConsortiaDutyInfo(); info.ConsortiaID = client.Player.PlayerCharacter.ConsortiaID; info.DutyID = dutyID; info.IsExist = true; info.DutyName = ""; switch (updateType) { case 1: return 1; case 2: info.DutyName = packet.ReadString(); if (string.IsNullOrEmpty(info.DutyName) || System.Text.Encoding.Default.GetByteCount(info.DutyName) > 10) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ConsortiaDutyUpdateHandler.Long")); return 1; } info.Right = packet.ReadInt(); break; case 3: break; case 4: break; } if (db.UpdateConsortiaDuty(info, client.Player.PlayerCharacter.ID, updateType, ref msg)) { dutyID = info.DutyID; msg = "ConsortiaDutyUpdateHandler.Success"; result = true; GameServer.Instance.LoginServer.SendConsortiaDuty(info, updateType, client.Player.PlayerCharacter.ConsortiaID); } } packet.WriteBoolean(result); packet.WriteInt(dutyID); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID != 0) return 0; int id = packet.ReadInt(); bool result = false; int consortiaID = 0; string consortiaName = ""; string msg = "ConsortiaInvitePassHandler.Failed"; int tempID = 0; string tempName = ""; using (ConsortiaBussiness db = new ConsortiaBussiness()) { int consortiaRepute = 0; ConsortiaUserInfo info = new ConsortiaUserInfo(); if (db.PassConsortiaInviteUsers(id, client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.NickName, ref consortiaID, ref consortiaName, ref msg, info, ref tempID, ref tempName, ref consortiaRepute)) { client.Player.PlayerCharacter.ConsortiaID = consortiaID; client.Player.PlayerCharacter.ConsortiaName = consortiaName; client.Player.PlayerCharacter.DutyLevel = info.Level; client.Player.PlayerCharacter.DutyName = info.DutyName; client.Player.PlayerCharacter.Right = info.Right; ConsortiaInfo consotia = ConsortiaMgr.FindConsortiaInfo(consortiaID); if (consotia != null) client.Player.PlayerCharacter.ConsortiaLevel = consotia.Level; msg = "ConsortiaInvitePassHandler.Success"; result = true; info.UserID = client.Player.PlayerCharacter.ID; info.UserName = client.Player.PlayerCharacter.NickName; info.Grade = client.Player.PlayerCharacter.Grade; info.Offer = client.Player.PlayerCharacter.Offer; info.RichesOffer = client.Player.PlayerCharacter.RichesOffer; info.RichesRob = client.Player.PlayerCharacter.RichesRob; info.Win = client.Player.PlayerCharacter.Win; info.Total = client.Player.PlayerCharacter.Total; info.Escape = client.Player.PlayerCharacter.Escape; info.ConsortiaID = consortiaID; info.ConsortiaName = consortiaName; GameServer.Instance.LoginServer.SendConsortiaUserPass(tempID, tempName, info, true, consortiaRepute, client.Player.PlayerCharacter.UserName, client.Player.PlayerCharacter.FightPower); } } packet.WriteBoolean(result); packet.WriteInt(consortiaID); packet.WriteString(consortiaName); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public static GSPacketIn SendBufferList(Player player, List<BufferInfo> infos) { GSPacketIn pkg = new GSPacketIn((byte)ePackageType.BUFF_OBTAIN, player.Id); pkg.WriteInt(infos.Count); foreach (BufferInfo info in infos) { pkg.WriteInt(info.Type); pkg.WriteBoolean(info.IsExist); pkg.WriteDateTime(info.BeginDate); pkg.WriteInt(info.ValidDate); pkg.WriteInt(info.Value); } return pkg; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; //int id = packet.ReadInt(); string nickName = packet.ReadString(); bool result = false; string msg = "ConsortiaChangeChairmanHandler.Failed"; if (string.IsNullOrEmpty(nickName)) { msg = "ConsortiaChangeChairmanHandler.NoName"; } else if( nickName == client.Player.PlayerCharacter.NickName) { msg = "ConsortiaChangeChairmanHandler.Self"; } else { using (ConsortiaBussiness db = new ConsortiaBussiness()) { string tempUserName = ""; int tempUserID = 0; ConsortiaDutyInfo info = new ConsortiaDutyInfo(); if (db.UpdateConsortiaChairman(nickName, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, ref msg, ref info,ref tempUserID, ref tempUserName)) { ConsortiaDutyInfo orderInfo = new ConsortiaDutyInfo(); orderInfo.Level = client.Player.PlayerCharacter.DutyLevel; orderInfo.DutyName = client.Player.PlayerCharacter.DutyName; orderInfo.Right = client.Player.PlayerCharacter.Right; msg = "ConsortiaChangeChairmanHandler.Success1"; result = true; GameServer.Instance.LoginServer.SendConsortiaDuty(orderInfo, 9, client.Player.PlayerCharacter.ConsortiaID, tempUserID, tempUserName, 0, ""); GameServer.Instance.LoginServer.SendConsortiaDuty(info, 8, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.NickName, 0, ""); } } } string temp = LanguageMgr.GetTranslation(msg); if (msg == "ConsortiaChangeChairmanHandler.Success1") { temp += nickName + LanguageMgr.GetTranslation("ConsortiaChangeChairmanHandler.Success2"); } packet.WriteBoolean(result); packet.WriteString(temp); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { //GSPacketIn pkg = packet.Clone(); //pkg.ClearContext(); int id = packet.ReadInt(); int senderID = 0; using (PlayerBussiness db = new PlayerBussiness()) { if (db.CancelPaymentMail(client.Player.PlayerCharacter.ID, id, ref senderID)) { client.Out.SendMailResponse(senderID,eMailRespose.Receiver); packet.WriteBoolean(true); } else { packet.WriteBoolean(false); } } client.Out.SendTCP(packet); return 1; }
public override void OnStarting(BaseSceneGame game, Game.Base.Packets.GSPacketIn data) { //base.OnStarting(game, data); TankData tank = game.Data; tank.Reset(); GamePlayer[] list = game.Data.GetAllPlayers(); int i = random.Next(list.Length); GamePlayer player = GetLowDelayPlayer(game, list[i]); //List<Point> pos = new List<Point>(); //pos.AddRange(Managers.MapMgr.GetMapPos(game.Data.MapIndex)); MapPoint pos = Managers.MapMgr.GetMapRandomPos(game.Data.MapIndex); tank.CurrentWind = random.Next(-40, 40); data.WriteInt(player.PlayerCharacter.ID); data.WriteInt(tank.CurrentWind); data.WriteByte((byte)game.Data.Count); Point temp = new Point(); int lastTeam = -1; foreach (GamePlayer p in list) { temp = GetRandom(pos, temp, lastTeam, p.CurrentTeamIndex); tank.Players[p].X = temp.X; tank.Players[p].Y = temp.Y; tank.CurrentMap.AddPhysical(tank.Players[p]); p.CanFly = true; p.Count = 2; data.WriteInt(p.PlayerCharacter.ID); data.WriteInt(tank.Players[p].X); data.WriteInt(tank.Players[p].Y); data.WriteInt(random.Next(0, 2) > 0 ? 1 : -1); data.WriteInt(tank.Players[p].Blood); data.WriteBoolean(game.Data.Players[p].IsCaptain); lastTeam = p.CurrentTeamIndex; } tank.CurrentIndex = player; game.BeginTimer(TIMEOUT); if (game.RoomType == eRoomType.PAIRUP && game.MatchGame != null) { game.MatchGame.StopTimer(); } }
public int HandlePacket(GameClient client, GSPacketIn packet) { int id = packet.ReadInt(); bool result = false; string msg = "ConsortiaApplyAllyDeleteHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { if (db.DeleteConsortiaApplyUsers(id,client.Player.PlayerCharacter.ID,client.Player.PlayerCharacter.ConsortiaID,ref msg)) { msg = client.Player.PlayerCharacter.ID == 0 ? "ConsortiaApplyAllyDeleteHandler.Success" : "ConsortiaApplyAllyDeleteHandler.Success2"; result = true; } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; int money = packet.ReadInt(); if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked")); return 1; } if (money < 1 || client.Player.PlayerCharacter.Money < money) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ConsortiaRichesOfferHandler.NoMoney")); return 1; } bool result = false; string msg = "ConsortiaRichesOfferHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { int riches = money / 2; if (db.ConsortiaRichAdd(client.Player.PlayerCharacter.ConsortiaID, ref riches, 5, client.Player.PlayerCharacter.NickName)) { result = true; client.Player.PlayerCharacter.RichesOffer += riches; //client.Player.SetMoney(-money); client.Player.RemoveMoney(money); LogMgr.LogMoneyAdd(LogMoneyType.Consortia, LogMoneyType.Consortia_Rich, client.Player.PlayerCharacter.ID, money, client.Player.PlayerCharacter.Money, 0, 0, (int)eSubConsumerType.Consortia_Riches_Offer,0, "", "", ""); msg = "ConsortiaRichesOfferHandler.Successed"; GameServer.Instance.LoginServer.SendConsortiaRichesOffer(client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.NickName, riches); } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; bool result = false; string msg = "ConsortiaStoreUpGradeHandler.Failed"; //using (ConsortiaBussiness db = new ConsortiaBussiness()) //{ // ConsortiaInfo info = db.GetConsortiaSingle(client.Player.PlayerCharacter.ConsortiaID); ConsortiaInfo info = Managers.ConsortiaMgr.FindConsortiaInfo(client.Player.PlayerCharacter.ConsortiaID); if (info == null) { msg = "ConsortiaStoreUpGradeHandler.NoConsortia"; } else { using (ConsortiaBussiness cb = new ConsortiaBussiness()) { if (cb.UpGradeStoreConsortia(client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, ref msg)) { info.StoreLevel++; GameServer.Instance.LoginServer.SendConsortiaStoreUpGrade(info); msg = "ConsortiaStoreUpGradeHandler.Success"; result = true; } } } //} packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 1; }
public int HandlePacket(GameClient client, GSPacketIn packet) { int id = packet.ReadInt(); bool result = false; int tempID = 0; int state = 0; string msg = "ConsortiaApplyAllyPassHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { if (db.PassConsortiaApplyAlly(id, client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.ConsortiaID,ref tempID,ref state, ref msg)) { msg = "ConsortiaApplyAllyPassHandler.Success"; result = true; GameServer.Instance.LoginServer.SendConsortiaAlly(client.Player.PlayerCharacter.ConsortiaID, tempID, state); } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 1; bool state = packet.ReadBoolean(); bool result = false; string msg = "CONSORTIA_APPLY_STATE.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { if (db.UpdateConsotiaApplyState(client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, state,ref msg)) { msg = "CONSORTIA_APPLY_STATE.Success"; result =true; } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.ConsortiaID == 0) return 0; //int id = packet.ReadInt(); string name = packet.ReadString(); bool result = false; string msg = "ConsortiaInviteAddHandler.Failed"; if(string.IsNullOrEmpty(name)) return 0; using (ConsortiaBussiness db = new ConsortiaBussiness()) { ConsortiaInviteUserInfo info = new ConsortiaInviteUserInfo(); info.ConsortiaID = client.Player.PlayerCharacter.ConsortiaID; info.ConsortiaName = client.Player.PlayerCharacter.ConsortiaName; info.InviteDate = DateTime.Now; info.InviteID = client.Player.PlayerCharacter.ID; info.InviteName = client.Player.PlayerCharacter.NickName; info.IsExist = true; info.Remark = ""; info.UserID = 0; info.UserName = name; if (db.AddConsortiaInviteUsers(info, ref msg)) { msg = "ConsortiaInviteAddHandler.Success"; result = true; GameServer.Instance.LoginServer.SendConsortiaInvite(info.ID, info.UserID, info.UserName, info.InviteID, info.InviteName, info.ConsortiaName,info.ConsortiaID); } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { string placard = packet.ReadString(); if (System.Text.Encoding.Default.GetByteCount(placard) > 300) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ConsortiaPlacardUpdateHandler.Long")); return 1; } bool result = false; string msg = "ConsortiaPlacardUpdateHandler.Failed"; using (ConsortiaBussiness db = new ConsortiaBussiness()) { if (db.UpdateConsortiaPlacard(client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.ID, placard, ref msg)) { msg = "ConsortiaPlacardUpdateHandler.Success"; result = true; } } packet.WriteBoolean(result); packet.WriteString(LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(packet); return 0; }
public void SendAddRoom(Game.Server.Rooms.BaseRoom room) { GSPacketIn pkg = new GSPacketIn((int)eFightPackageType.ROOM_CREATE); pkg.WriteInt(room.RoomId); pkg.WriteInt((int)room.GameType); pkg.WriteInt(room.GuildId); List<GamePlayer> players = room.GetPlayers(); pkg.WriteInt(players.Count); foreach (GamePlayer p in players) { pkg.WriteInt(p.PlayerCharacter.ID);//改为唯一ID pkg.WriteString(p.PlayerCharacter.NickName); pkg.WriteBoolean(p.PlayerCharacter.Sex); pkg.WriteInt(p.PlayerCharacter.Hide); pkg.WriteString(p.PlayerCharacter.Style); pkg.WriteString(p.PlayerCharacter.Colors); pkg.WriteString(p.PlayerCharacter.Skin); pkg.WriteInt(p.PlayerCharacter.Offer); pkg.WriteInt(p.PlayerCharacter.GP); pkg.WriteInt(p.PlayerCharacter.Grade); pkg.WriteInt(p.PlayerCharacter.Repute); pkg.WriteInt(p.PlayerCharacter.ConsortiaID); pkg.WriteString(p.PlayerCharacter.ConsortiaName); pkg.WriteInt(p.PlayerCharacter.ConsortiaLevel); pkg.WriteInt(p.PlayerCharacter.ConsortiaRepute); pkg.WriteInt(p.PlayerCharacter.Attack); pkg.WriteInt(p.PlayerCharacter.Defence); pkg.WriteInt(p.PlayerCharacter.Agility); pkg.WriteInt(p.PlayerCharacter.Luck); pkg.WriteDouble(p.GetBaseAttack()); pkg.WriteDouble(p.GetBaseDefence()); pkg.WriteDouble(p.GetBaseAgility()); pkg.WriteDouble(p.GetBaseBlood()); pkg.WriteInt(p.MainWeapon.TemplateID); pkg.WriteBoolean(p.CanUseProp); if (p.SecondWeapon != null) { pkg.WriteInt(p.SecondWeapon.TemplateID); pkg.WriteInt(p.SecondWeapon.StrengthenLevel); } else { pkg.WriteInt(0); pkg.WriteInt(0); } pkg.WriteDouble(RateMgr.GetRate(eRateType.Experience_Rate) * AntiAddictionMgr.GetAntiAddictionCoefficient(p.PlayerCharacter.AntiAddiction) * (p.GPAddPlus == 0 ? 1 : p.GPAddPlus)); pkg.WriteDouble(AntiAddictionMgr.GetAntiAddictionCoefficient(p.PlayerCharacter.AntiAddiction) * (p.OfferAddPlus == 0 ? 1 : p.OfferAddPlus)); pkg.WriteDouble(RateMgr.GetRate(eRateType.Experience_Rate)); pkg.WriteInt(GameServer.Instance.Configuration.ServerID); List<AbstractBuffer> infos = p.BufferList.GetAllBuffer(); pkg.WriteInt(infos.Count); foreach (AbstractBuffer bufferInfo in infos) { BufferInfo info = bufferInfo.Info; pkg.WriteInt(info.Type); pkg.WriteBoolean(info.IsExist); pkg.WriteDateTime(info.BeginDate); pkg.WriteInt(info.ValidDate); pkg.WriteInt(info.Value); pkg.WriteInt(info.ValidCount); } pkg.WriteInt(p.EquipEffect.Count); foreach (int i in p.EquipEffect) { pkg.WriteInt(i); } } SendTCP(pkg); }
public override void OnStopping(BaseSceneGame game, Game.Base.Packets.GSPacketIn pkg) { base.OnStopping(game, pkg); game.BeginTimer(TIMEOUT / 2); TankData data = game.Data; pkg.WriteByte((byte)data.Players.Count); int winTeam = -1; int lastTeam = -1; data.killFlag = false; foreach (KeyValuePair <GamePlayer, Player> p in data.Players) { //if(p.Value.TotalHurt > 0) //{ // data.killFlag = true; //} if (winTeam == -1 && p.Value.Blood > 0) { if (game.GameMode == eGameMode.FLAG) { if (p.Value.IsCaptain) { winTeam = p.Key.CurrentTeamIndex; break; } else { lastTeam = p.Key.CurrentTeamIndex; } } else { winTeam = p.Key.CurrentTeamIndex; break; } } } //if (!data.killFlag) //{ // game.BeginTimer(3000); //} if (winTeam == -1 && game.Data.CurrentIndex == null) { winTeam = lastTeam; } if (winTeam == -1) { if (game.Data.CurrentFire != null) { winTeam = game.Data.CurrentFire.CurrentTeamIndex; } else { winTeam = data.LastDead; } } int GP; //E等级差=(对方平均等级+5)-玩家等级;取值区间(1~9); // P赢=4*[(对方平均等级+5)-玩家等级]+伤害的血量*0.2%+击杀数*2+(命中次数/玩家总的回合次数)*8; //P输=1*[(对方平均等级+5)-玩家等级]+伤害的血量*0.2%+击杀数*2+(命中次数/玩家总的回合次数)*8 // P赢=[2+伤害的血量*0.1%+击杀数*0.5+(命中次数/玩家总的回合次数)*2]*[(对方平均等级+10)-玩家等级] //P输=[伤害的血量*0.1%+击杀数*0.5+(命中次数/玩家总的回合次数)*2]*[(对方平均等级+10)-玩家等级]; // P赢=[2+伤害的血量*0.1%+击杀数*0.5+(命中次数/玩家总的回合次数)*2]*对方平均等级*[1+(总击杀数-1)*33%] //P输=[伤害的血量*0.1%+击杀数*0.5+(命中次数/玩家总的回合次数)*2]*对方平均等级*[1+(总击杀数-1)*33%] //P赢=[2+伤害的血量*0.1%+击杀数*0.5+(命中次数/玩家总的回合次数)*2]*对方平均等级*[0.9+(游戏开始时对方玩家人数-1)*30%] //P输=[伤害的血量*0.1%+击杀数*0.5+(命中次数/玩家总的回合次数)*2]*对方平均等级*[0.9+(游戏开始时对方玩家人数-1)*30%] //bool flag = data.GameStart.AddMinutes(1).CompareTo(DateTime.Now) > 0; string winStr = LanguageMgr.GetTranslation("Game.Server.SceneGames.OnStopping.Msg5"); GamePlayer winPlayer = null; string loseStr = LanguageMgr.GetTranslation("Game.Server.SceneGames.OnStopping.Msg5"); GamePlayer losePlayer = null; foreach (KeyValuePair <GamePlayer, Player> p in data.Players) { if (game.RoomType == 0) { p.Key.PlayerCharacter.CheckCount++; } else { p.Key.PlayerCharacter.CheckCount += 2; } p.Key.Out.SendCheckCode(); if (p.Value.TotalHurt > 0) { data.killFlag = true; } if (game.GameClass == eGameClass.CONSORTIA) { if (p.Key.CurrentTeamIndex == winTeam) { winStr += " [" + p.Key.PlayerCharacter.NickName + "] "; winPlayer = p.Key; } else { loseStr += " [" + p.Key.PlayerCharacter.NickName + "] "; losePlayer = p.Key; } } } int riches = 0; if (game.GameClass == eGameClass.CONSORTIA) { winStr += LanguageMgr.GetTranslation("Game.Server.SceneGames.OnStopping.Msg1") + losePlayer.PlayerCharacter.ConsortiaName + LanguageMgr.GetTranslation("Game.Server.SceneGames.OnStopping.Msg2"); loseStr += LanguageMgr.GetTranslation("Game.Server.SceneGames.OnStopping.Msg3") + winPlayer.PlayerCharacter.ConsortiaName + LanguageMgr.GetTranslation("Game.Server.SceneGames.OnStopping.Msg4"); riches = ConsortiaMgr.ConsortiaFight(winPlayer.CurrentTeamIndex == 1 ? data.ConsortiaID1 : data.ConsortiaID2, winPlayer.CurrentTeamIndex == 1 ? data.ConsortiaID2 : data.ConsortiaID1, game.Data.Players, game.RoomType, game.GameClass, data.persons[winPlayer.CurrentTeamIndex].TotalKillHealth); GameServer.Instance.LoginServer.SendConsortiaFight(winPlayer.PlayerCharacter.ConsortiaID, riches, winStr); //GameServer.Instance.LoginServer.SendConsortiaFight(losePlayer.PlayerCharacter.ConsortiaID, -riches, loseStr); } foreach (KeyValuePair <GamePlayer, Player> p in data.Players) { GP = 1; if (p.Value.State != TankGameState.LOSE) { if (game.RoomType == eRoomType.PAIRUP) { p.Key.PlayerCharacter.Total++; } double level = (data.TotalLevel - data.persons[p.Key.CurrentTeamIndex].TotalLevel) / (data.TotalPerson - data.persons[p.Key.CurrentTeamIndex].TeamPerson); double disLevel = level + 10 - p.Key.PlayerCharacter.Grade; if (p.Key.CurrentTeamIndex == winTeam) { if (game.RoomType == eRoomType.PAIRUP) { p.Key.PlayerCharacter.Win++; } //GP = (int)Math.Ceiling((((data.killFlag ? 2 : 0) + (double)p.Value.TotalHurt * 0.001 + p.Value.TotalKill * 0.5 + (p.Value.HitNum / (p.Value.BoutNum == 0 ? 1 : p.Value.BoutNum)) * 2) * level * (1 + (data.persons[p.Key.CurrentTeamIndex].TatolKill - 1) * 0.33))); GP = (int)Math.Ceiling((((data.killFlag ? 2 : 0) + (double)p.Value.TotalHurt * 0.001 + p.Value.TotalKill * 0.5 + (p.Value.HitNum / (p.Value.BoutNum == 0 ? 1 : p.Value.BoutNum)) * 2) * level * (0.9 + (data.persons[p.Key.CurrentTeamIndex].TeamPerson - 1) * 0.3))); } else { GP = (int)Math.Ceiling(((double)p.Value.TotalHurt * 0.001 + p.Value.TotalKill * 0.5 + (p.Value.HitNum / (p.Value.BoutNum == 0 ? 1 : p.Value.BoutNum)) * 2) * level * (0.9 + (data.persons[p.Key.CurrentTeamIndex].TeamPerson - 1) * 0.3)); } bool isMarried = false; if (p.Key.PlayerCharacter.IsMarried) { foreach (GamePlayer q in data.Players.Keys) { if (q.PlayerCharacter.ID != p.Key.PlayerCharacter.ID) { if (q.CurrentTeamIndex == p.Key.CurrentTeamIndex && p.Key.PlayerCharacter.SpouseID == q.PlayerCharacter.ID) { GP = (int)(GP * 1.2); isMarried = true; } } } } p.Key.QuestInventory.CheckWin(data.MapIndex, (int)game.GameMode, game.ScanTime, p.Value.IsCaptain, data.persons[p.Key.CurrentTeamIndex].TeamPerson, data.TotalPerson - data.persons[p.Key.CurrentTeamIndex].TeamPerson, p.Key.CurrentTeamIndex == winTeam, game.GameClass == eGameClass.CONSORTIA, (int)game.RoomType, isMarried); double AAS = AntiAddictionMgr.GetAntiAddictionCoefficient(p.Key.PlayerCharacter.AntiAddiction); GP = (int)(GP * AAS); GP = (int)(GP * RateMgr.GetRate(eRateType.Experience_Rate)); GP *= p.Key.BuffInventory.GPMultiple(); if (game.RoomType != eRoomType.PAIRUP && (disLevel <= 0 || disLevel >= 20)) { GP = 1; } if (AAS < 10E-6) { GP = 0; } else { if (GP < 1) { GP = 1; } } p.Key.SetGP(GP); Dictionary <int, int> requestItems = p.Key.QuestInventory.GetRequestItems(); List <MapGoodsInfo> questItems = Managers.MapMgr.GetQuestGoodsAll(data.MapIndex); foreach (MapGoodsInfo questID in questItems) { if (requestItems.ContainsKey(questID.GoodsID) && requestItems[questID.GoodsID] > 0) { int total = random.Next(questID.Value + 1); if (p.Key.CurrentTeamIndex != winTeam) { total = total / 2; } else if (total < 1) { total = 1; } if (total < 1) { continue; } int count = requestItems[questID.GoodsID] > total ? total : requestItems[questID.GoodsID]; ItemTemplateInfo temp = Bussiness.Managers.ItemMgr.GetSingleGoods(questID.GoodsID); p.Key.TempInventory.AddItemTemplate(temp, questID, count); requestItems[questID.GoodsID] -= count; } } } //p.Value.IsTakeOut = true; pkg.WriteInt(p.Key.PlayerCharacter.ID); pkg.WriteBoolean(winTeam == p.Key.CurrentTeamIndex); pkg.WriteInt(p.Key.PlayerCharacter.Grade); pkg.WriteInt(p.Key.PlayerCharacter.GP); pkg.WriteInt((int)p.Value.TotalKill); pkg.WriteInt(p.Value.TotalHurt); pkg.WriteInt(GP); pkg.WriteInt((int)p.Value.HitNum); pkg.WriteInt((int)p.Value.BoutNum); pkg.WriteInt(p.Value.Offer); if (data.persons[p.Key.CurrentTeamIndex].TotalKillHealth > 0) { p.Value.IsTakeOut = true; if (p.Key.CurrentGame != null) { p.Key.CurrentGame.IsTakeOut = true; } } pkg.WriteBoolean(p.Value.IsTakeOut); } pkg.WriteInt(riches); //pkg.WriteBoolean(data.killFlag); pkg.WriteInt(data.TotalPerson / 2); data.InsertGameInfo(game, winTeam); GamePlayer[] list = data.Players.Keys.ToArray(); foreach (GamePlayer p in list) { if (data.Players[p].State == TankGameState.LOSE) { data.Players.Remove(p); } else { //data.Players[p].Reset(); //p.PropInventory.Clear(); //if (!killFlag) //{ // if (p.CurrentGame.GameState != eGameState.FREE) // { // p.CurrentGame.ShowArk(p.CurrentGame, p); // } //} } } }