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; }
public bool SavePlayerMarryNotice(MarryApplyInfo info, int answerId, ref int id) { bool flag = false; try { SqlParameter[] SqlParameters = new SqlParameter[9] { new SqlParameter("@UserID", (object) info.UserID), new SqlParameter("@ApplyUserID", (object) info.ApplyUserID), new SqlParameter("@ApplyUserName", (object) info.ApplyUserName), new SqlParameter("@ApplyType", (object) info.ApplyType), new SqlParameter("@ApplyResult", (object) (int) (info.ApplyResult ? 1 : 0)), new SqlParameter("@LoveProclamation", (object) info.LoveProclamation), new SqlParameter("@AnswerId", (object) answerId), new SqlParameter("@ouototal", SqlDbType.Int), null }; SqlParameters[7].Direction = ParameterDirection.Output; SqlParameters[8] = new SqlParameter("@Result", SqlDbType.Int); SqlParameters[8].Direction = ParameterDirection.ReturnValue; this.db.RunProcedure("SP_Insert_Marry_Notice", SqlParameters); id = (int)SqlParameters[7].Value; flag = (int)SqlParameters[8].Value == 0; } catch (Exception ex) { if (BaseBussiness.log.IsErrorEnabled) BaseBussiness.log.Error((object)"SavePlayerMarryNotice", ex); } return flag; }
public bool InsertPlayerMarryApply(MarryApplyInfo info) { bool flag = false; try { SqlParameter[] SqlParameters = new SqlParameter[7] { new SqlParameter("@UserID", (object) info.UserID), new SqlParameter("@ApplyUserID", (object) info.ApplyUserID), new SqlParameter("@ApplyUserName", (object) info.ApplyUserName), new SqlParameter("@ApplyType", (object) info.ApplyType), new SqlParameter("@ApplyResult", (object) (int) (info.ApplyResult ? 1 : 0)), new SqlParameter("@LoveProclamation", (object) info.LoveProclamation), new SqlParameter("@Result", SqlDbType.Int) }; SqlParameters[6].Direction = ParameterDirection.ReturnValue; this.db.RunProcedure("SP_Insert_Marry_Apply", SqlParameters); flag = (int)SqlParameters[6].Value == 0; } catch (Exception ex) { if (BaseBussiness.log.IsErrorEnabled) BaseBussiness.log.Error((object)"InsertPlayerMarryApply", ex); } return flag; }
public bool SavePlayerMarryNotice(MarryApplyInfo info, int answerId, ref int id) { bool result = false; try { SqlParameter[] para = new SqlParameter[9]; para[0] = new SqlParameter("@UserID", info.UserID); para[1] = new SqlParameter("@ApplyUserID", info.ApplyUserID); para[2] = new SqlParameter("@ApplyUserName", info.ApplyUserName); para[3] = new SqlParameter("@ApplyType", info.ApplyType); para[4] = new SqlParameter("@ApplyResult", info.ApplyResult); para[5] = new SqlParameter("@LoveProclamation", info.LoveProclamation); para[6] = new SqlParameter("@AnswerId", answerId); para[7] = new SqlParameter("@ouototal", System.Data.SqlDbType.Int); para[7].Direction = ParameterDirection.Output; para[8] = new SqlParameter("@Result", System.Data.SqlDbType.Int); para[8].Direction = ParameterDirection.ReturnValue; db.RunProcedure("SP_Insert_Marry_Notice", para); id = (int)para[7].Value; result = (int)para[8].Value == 0; } catch (Exception e) { if (log.IsErrorEnabled) log.Error("SavePlayerMarryNotice", e); } return result; }
public MarryApplyInfo[] GetPlayerMarryApply(int UserID) { SqlDataReader reader = null; List<MarryApplyInfo> infos = new List<MarryApplyInfo>(); try { SqlParameter[] para = new SqlParameter[1]; para[0] = new SqlParameter("@UserID", UserID); db.GetReader(ref reader, "SP_Get_Marry_Apply", para); while (reader.Read()) { MarryApplyInfo info = new MarryApplyInfo(); info.UserID = (int)reader["UserID"]; info.ApplyUserID = (int)reader["ApplyUserID"]; info.ApplyUserName = reader["ApplyUserName"].ToString(); info.ApplyType = (int)reader["ApplyType"]; info.ApplyResult = (bool)reader["ApplyResult"]; info.LoveProclamation = reader["LoveProclamation"].ToString(); info.ID = (int)reader["Id"]; infos.Add(info); } return infos.ToArray(); } catch (Exception e) { if (log.IsErrorEnabled) log.Error("GetPlayerMarryApply", e); } finally { if (reader != null && !reader.IsClosed) reader.Close(); } return null; }
public bool InsertPlayerMarryApply(MarryApplyInfo info) { bool result = false; try { SqlParameter[] para = new SqlParameter[7]; para[0] = new SqlParameter("@UserID", info.UserID); para[1] = new SqlParameter("@ApplyUserID", info.ApplyUserID); para[2] = new SqlParameter("@ApplyUserName", info.ApplyUserName); para[3] = new SqlParameter("@ApplyType", info.ApplyType); para[4] = new SqlParameter("@ApplyResult", info.ApplyResult); para[5] = new SqlParameter("@LoveProclamation", info.LoveProclamation); para[6] = new SqlParameter("@Result", System.Data.SqlDbType.Int); para[6].Direction = ParameterDirection.ReturnValue; db.RunProcedure("SP_Insert_Marry_Apply", para); result = (int)para[6].Value == 0; } catch (Exception e) { if (log.IsErrorEnabled) log.Error("InsertPlayerMarryApply", e); } return result; }