public int HandlePacket(GameClient client, GSPacketIn packet) { bool result = packet.ReadBoolean(); int UserID = packet.ReadInt(); int AnswerId = packet.ReadInt(); //答复对话框ID //先判断自已有没有结婚 if (result && client.Player.PlayerCharacter.IsMarried) { client.Player.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("MarryApplyReplyHandler.Msg2")); } using (PlayerBussiness db = new PlayerBussiness()) { PlayerInfo tempSpouse = db.GetUserSingleByUserID(UserID); //发送好人卡 if (!result) { SendGoodManCard(tempSpouse.NickName, tempSpouse.ID, client.Player.PlayerCharacter.NickName, client.Player.PlayerCharacter.ID, db); GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(tempSpouse.ID); } //判断对方有没有结婚 if (tempSpouse == null || tempSpouse.Sex == client.Player.PlayerCharacter.Sex) { return 1; } if (tempSpouse.IsMarried) { client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyReplyHandler.Msg3")); } MarryApplyInfo info = new MarryApplyInfo(); info.UserID = UserID; info.ApplyUserID = client.Player.PlayerCharacter.ID; info.ApplyUserName = client.Player.PlayerCharacter.NickName; info.ApplyType = 2; info.LoveProclamation = ""; info.ApplyResult = result; int id = 0; if (db.SavePlayerMarryNotice(info, AnswerId, ref id)) { if (result) { client.Player.Out.SendMarryApplyReply(client.Player, tempSpouse.ID, tempSpouse.NickName, result, false, id); client.Player.LoadMarryProp(); SendSYSMessages(client.Player, tempSpouse); } GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(tempSpouse.ID); return 0; } } return 1; }
public int HandlePacket(GameClient client, GSPacketIn packet) { if (!client.Player.PlayerCharacter.IsMarried) { return 1; } if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked")); return 0; } if(client.Player.PlayerCharacter.IsCreatedMarryRoom) { client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("DivorceApplyHandler.Msg2")); return 1; } int needMoney = GameProperties.PRICE_DIVORCED; if (client.Player.PlayerCharacter.Money < needMoney) { client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("DivorceApplyHandler.Msg1")); return 1; } else { client.Player.RemoveMoney(needMoney); LogMgr.LogMoneyAdd(LogMoneyType.Marry, LogMoneyType.Marry_Unmarry, client.Player.PlayerCharacter.ID, needMoney, client.Player.PlayerCharacter.Money, 0, 0, 0,0, "", "", ""); CountBussiness.InsertSystemPayCount(client.Player.PlayerCharacter.ID, needMoney, 0, (int)eConsumerType.Marry, (int)eSubConsumerType.Marry_Divorce); using (PlayerBussiness db = new PlayerBussiness()) { PlayerInfo tempSpouse = db.GetUserSingleByUserID(client.Player.PlayerCharacter.SpouseID); if (tempSpouse == null || tempSpouse.Sex == client.Player.PlayerCharacter.Sex) { return 1; } MarryApplyInfo info = new MarryApplyInfo(); info.UserID = client.Player.PlayerCharacter.SpouseID; info.ApplyUserID = client.Player.PlayerCharacter.ID; info.ApplyUserName = client.Player.PlayerCharacter.NickName; info.ApplyType = 3; info.LoveProclamation = ""; info.ApplyResult = false; int id = 0; if (db.SavePlayerMarryNotice(info,0, ref id)) { GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(tempSpouse.ID); client.Player.LoadMarryProp(); } } client.Player.QuestInventory.ClearMarryQuest(); //离婚后清除结婚后任务. client.Player.Out.SendPlayerDivorceApply(client.Player, true,true); client.Player.SendMessage(LanguageMgr.GetTranslation("DivorceApplyHandler.Msg3")); } return 0; }
public int HandlePacket(GameClient client, GSPacketIn packet) { //判断是否结婚 if(client.Player.PlayerCharacter.IsMarried) { return 1; } //是否有二级密码 if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked")); return 1; } //开始求婚,购买戒指 int SpouseID = packet.ReadInt(); string loveProclamation = packet.ReadString(); bool Broadcast = packet.ReadBoolean(); bool result = false; bool removeRing = true; string SpouseName = ""; using (PlayerBussiness db = new PlayerBussiness()) { PlayerInfo tempSpouse = db.GetUserSingleByUserID(SpouseID); if (tempSpouse == null || tempSpouse.Sex == client.Player.PlayerCharacter.Sex) { return 1; } if (tempSpouse.IsMarried) { client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg2")); return 1; } ItemInfo WeddingRing = client.Player.PropBag.GetItemByTemplateID(0,11103); if (WeddingRing == null) { ShopItemInfo tempRing = ShopMgr.FindShopbyTemplatID(11103).FirstOrDefault(); if (tempRing != null) { //玩家身上钱是否足够。 if (client.Player.PlayerCharacter.Money >= tempRing.AValue1) { removeRing = false; } else { client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg1")); return 1; } } else { client.Player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg6")); return 1; } } //插入结婚消息 MarryApplyInfo info = new MarryApplyInfo(); info.UserID = SpouseID; info.ApplyUserID = client.Player.PlayerCharacter.ID; info.ApplyUserName = client.Player.PlayerCharacter.NickName; info.ApplyType = 1; info.LoveProclamation = loveProclamation; info.ApplyResult = false; int id=0; if (db.SavePlayerMarryNotice(info,0,ref id)) { if (removeRing) { client.Player.RemoveItem(WeddingRing); } else { //未开始 ShopItemInfo tempRing = ShopMgr.FindShopbyTemplatID(11103).FirstOrDefault(); client.Player.RemoveMoney(tempRing.AValue1); LogMgr.LogMoneyAdd(LogMoneyType.Marry, LogMoneyType.Marry_Spark, client.Player.PlayerCharacter.ID, tempRing.AValue1, client.Player.PlayerCharacter.Money, 0, 0, 0, "", tempRing.TemplateID.ToString(), "1"); } client.Player.Out.SendPlayerMarryApply(client.Player, client.Player.PlayerCharacter.ID, client.Player.PlayerCharacter.NickName, loveProclamation,id); //发送求婚信息 //发送消息给中心服务器 GameServer.Instance.LoginServer.SendUpdatePlayerMarriedStates(SpouseID); SpouseName = tempSpouse.NickName; result = true; client.Player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("MarryApplyHandler.Msg3")); } } if (result && Broadcast && SpouseName != "") { string msg = LanguageMgr.GetTranslation("MarryApplyHandler.Msg5", client.Player.PlayerCharacter.NickName, SpouseName); GSPacketIn pkg = new GSPacketIn((byte)ePackageType.SYS_NOTICE); pkg.WriteInt(2); pkg.WriteString(msg); GameServer.Instance.LoginServer.SendPacket(pkg); GamePlayer[] players = WorldMgr.GetAllPlayers(); foreach (GamePlayer p in players) { p.Out.SendTCP(pkg); } } return 0; }