public int HandlePacket(GameClient client, GSPacketIn packet) { if (countConnect >= 3000) { client.Disconnect(); return(0); } int gold = 0; //表示金币 int money = 0; //表示点券 int offer = 0; //表示功勋 int gifttoken = 0; //表示礼劵 int medal = 0; StringBuilder payGoods = new StringBuilder(); //表示支付物品ID eMessageType eMsg = eMessageType.Normal; string msg = "UserBuyItemHandler.Success"; List <ItemInfo> buyitems = new List <ItemInfo>(); //购买物品列表 //List<int> needitemsinfo = new List<int>(); //购买所需物品列表 List <bool> dresses = new List <bool>(); List <int> places = new List <int>(); StringBuilder types = new StringBuilder(); bool isBind = false; ConsortiaInfo consotia = ConsortiaMgr.FindConsortiaInfo(client.Player.PlayerCharacter.ConsortiaID); int count = packet.ReadInt(); for (int i = 0; i < count; i++) { int buyFrom = packet.ReadInt(); int GoodsID = packet.ReadInt(); int type = packet.ReadInt(); string color = packet.ReadString(); bool dress = packet.ReadBoolean(); string skin = packet.ReadString(); int place = packet.ReadInt(); //这里开始处理公会商店 ShopItemInfo shopItem = Bussiness.Managers.ShopMgr.GetShopItemInfoById(GoodsID); //获取商品信息 //if (shopItem.ShopID == 2 || !Bussiness.Managers.ShopMgr.CanBuy(shopItem.ShopID, consotia == null ? 1 : consotia.ShopLevel, ref isBind, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.Riches)) if (!Bussiness.Managers.ShopMgr.CanBuy(shopItem.ShopID, consotia == null ? 1 : consotia.ShopLevel, ref isBind, client.Player.PlayerCharacter.ConsortiaID, client.Player.PlayerCharacter.Riches)) { client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("UserBuyItemHandler.FailByPermission")); return(1); } //if (shopItem == null) //{ // continue; //} ItemTemplateInfo goods = Bussiness.Managers.ItemMgr.FindItemTemplate(shopItem.TemplateID); //获取物品属性 ItemInfo item = ItemInfo.CreateFromTemplate(goods, 1, (int)ItemAddType.Buy); //创建物品模板 //////////////////////////////////////////////////////////////////////////////////////////////////// //判断有限期 if (0 == shopItem.BuyType) //时间购买类型 { if (1 == type) { item.ValidDate = shopItem.AUnit; } if (2 == type) { item.ValidDate = shopItem.BUnit; } if (3 == type) { item.ValidDate = shopItem.CUnit; } } else //数量购买类型 { if (1 == type) { item.Count = shopItem.AUnit; } if (2 == type) { item.Count = shopItem.BUnit; } if (3 == type) { item.Count = shopItem.CUnit; } } //////////////////////////////////////////////////////////////////////////////////////////////////////// if (item == null && shopItem == null) { continue; } item.Color = color == null ? "" : color; item.Skin = skin == null ? "" : skin; if (isBind == true) { item.IsBinds = true; } else { item.IsBinds = Convert.ToBoolean(shopItem.IsBind); } types.Append(type); types.Append(","); buyitems.Add(item); dresses.Add(dress); places.Add(place); ItemInfo.SetItemType(shopItem, type, ref gold, ref money, ref offer, ref gifttoken, ref medal); } if (buyitems.Count == 0) { return(1); } if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked")); return(1); } //判断金币或礼券等是否足够 if (gold <= client.Player.PlayerCharacter.Gold && money <= client.Player.PlayerCharacter.Money && offer <= client.Player.PlayerCharacter.Offer && gifttoken <= client.Player.PlayerCharacter.GiftToken)// && //medal <= client.Player.PlayerCharacter.medal) { client.Player.RemoveMoney(money); client.Player.RemoveGold(gold); client.Player.RemoveOffer(offer); client.Player.RemoveGiftToken(gifttoken); //client.Player.RemoveMedal(medal); string itemIDs = ""; int annexIndex = 0; MailInfo message = new MailInfo(); StringBuilder annexRemark = new StringBuilder(); annexRemark.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark")); for (int i = 0; i < buyitems.Count; i++) { itemIDs += (itemIDs == "" ? buyitems[i].TemplateID.ToString() : "," + buyitems[i].TemplateID.ToString()); if (client.Player.AddTemplate(buyitems[i], buyitems[i].Template.BagType, buyitems[i].Count)) { if (dresses[i] && buyitems[i].CanEquip()) { int slot = client.Player.MainBag.FindItemEpuipSlot(buyitems[i].Template); if ((slot == 9 || slot == 10) && (places[i] == 9 || places[i] == 10)) { slot = places[i]; } else if ((slot == 7 || slot == 8) && (places[i] == 7 || places[i] == 8)) { slot = places[i]; } client.Player.MainBag.MoveItem(buyitems[i].Place, slot, 0); msg = "UserBuyItemHandler.Save"; } } else { using (PlayerBussiness db = new PlayerBussiness()) { buyitems[i].UserID = 0; db.AddGoods(buyitems[i]); annexIndex++; annexRemark.Append(annexIndex); annexRemark.Append("、"); annexRemark.Append(buyitems[i].Template.Name); annexRemark.Append("x"); annexRemark.Append(buyitems[i].Count); annexRemark.Append(";"); switch (annexIndex) { case 1: message.Annex1 = buyitems[i].ItemID.ToString(); message.Annex1Name = buyitems[i].Template.Name; break; case 2: message.Annex2 = buyitems[i].ItemID.ToString(); message.Annex2Name = buyitems[i].Template.Name; break; case 3: message.Annex3 = buyitems[i].ItemID.ToString(); message.Annex3Name = buyitems[i].Template.Name; break; case 4: message.Annex4 = buyitems[i].ItemID.ToString(); message.Annex4Name = buyitems[i].Template.Name; break; case 5: message.Annex5 = buyitems[i].ItemID.ToString(); message.Annex5Name = buyitems[i].Template.Name; break; } if (annexIndex == 5) { annexIndex = 0; message.AnnexRemark = annexRemark.ToString(); annexRemark.Remove(0, annexRemark.Length); annexRemark.Append(LanguageMgr.GetTranslation("GoodsPresentHandler.AnnexRemark")); message.Content = LanguageMgr.GetTranslation("UserBuyItemHandler.Title") + message.Annex1Name + "]"; message.Gold = 0; message.Money = 0; message.Receiver = client.Player.PlayerCharacter.NickName; message.ReceiverID = client.Player.PlayerCharacter.ID; message.Sender = message.Receiver; message.SenderID = message.ReceiverID; message.Title = message.Content; message.Type = (int)eMailType.BuyItem; db.SendMail(message); eMsg = eMessageType.ERROR; msg = "UserBuyItemHandler.Mail"; message.Revert(); } } } } if (annexIndex > 0) { using (PlayerBussiness db = new PlayerBussiness()) { message.AnnexRemark = annexRemark.ToString(); message.Content = LanguageMgr.GetTranslation("UserBuyItemHandler.Title") + message.Annex1Name + "]"; message.Gold = 0; message.Money = 0; message.Receiver = client.Player.PlayerCharacter.NickName; message.ReceiverID = client.Player.PlayerCharacter.ID; message.Sender = message.Receiver; message.SenderID = message.ReceiverID; message.Title = message.Content; message.Type = (int)eMailType.BuyItem; db.SendMail(message); eMsg = eMessageType.ERROR; msg = "UserBuyItemHandler.Mail"; } } if (eMsg == eMessageType.ERROR) { client.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Receiver); } client.Player.OnPaid(money, gold, offer, gifttoken, medal, payGoods.ToString());//触发任务事件 LogMgr.LogMoneyAdd(LogMoneyType.Shop, LogMoneyType.Shop_Buy, client.Player.PlayerCharacter.ID, money, client.Player.PlayerCharacter.Money, gold, gifttoken, offer, medal, "牌子编号", itemIDs, types.ToString()); } else { if (gold > client.Player.PlayerCharacter.Gold) { msg = "UserBuyItemHandler.NoGold"; } if (offer > client.Player.PlayerCharacter.Offer) { msg = "UserBuyItemHandler.NoOffer"; } if (gifttoken > client.Player.PlayerCharacter.GiftToken) { msg = "UserBuyItemHandler.GiftToken"; } if (medal > client.Player.PlayerCharacter.medal) { msg = "UserBuyItemHandler.Medal"; } eMsg = eMessageType.ERROR; } client.Out.SendMessage(eMsg, LanguageMgr.GetTranslation(msg)); return(0); }
public int HandlePacket(GameClient client, GSPacketIn packet) { int type = packet.ReadInt(); int num = 0; int num2 = 0; int num3 = 0; int num4 = 0; int[] bag = new int[3]; StringBuilder stringBuilder = new StringBuilder(); List <ItemInfo> list = new List <ItemInfo>(); string text = ""; switch (type) { case 0: if (AwardMgr.AddDailyAward(client.Player)) { using (PlayerBussiness playerBussiness = new PlayerBussiness()) { if (playerBussiness.UpdatePlayerLastAward(client.Player.PlayerCharacter.ID, type)) { stringBuilder.Append(LanguageMgr.GetTranslation("Nhận được Thẻ x2 kinh nghiệm 60 phút", new object[0])); } else { stringBuilder.Append(LanguageMgr.GetTranslation("GameUserDailyAward.Fail", new object[0])); } goto IL_29A; } } stringBuilder.Append(LanguageMgr.GetTranslation("GameUserDailyAward.Fail1", new object[0])); goto IL_29A; case 1: case 4: goto IL_29A; case 2: { if (DateTime.Now.Date == client.Player.PlayerCharacter.LastGetEgg.Date) { stringBuilder.Append("Bạn đã nhận 1 lần hôm nay!"); goto IL_29A; } using (PlayerBussiness playerBussiness2 = new PlayerBussiness()) { playerBussiness2.UpdatePlayerLastAward(client.Player.PlayerCharacter.ID, type); } ItemTemplateInfo itemTemplateInfo = ItemMgr.FindItemTemplate(112059); this.OpenUpItem(itemTemplateInfo.Data, bag, list, ref num2, ref num, ref num3, ref num4); goto IL_29A; } case 3: { int vIPLevel = client.Player.PlayerCharacter.VIPLevel; client.Player.LastVIPPackTime(); ItemTemplateInfo itemTemplateInfo = ItemMgr.FindItemTemplate(ItemMgr.FindItemBoxTypeAndLv(2, vIPLevel).TemplateID); this.OpenUpItem(itemTemplateInfo.Data, bag, list, ref num2, ref num, ref num3, ref num4); using (PlayerBussiness playerBussiness3 = new PlayerBussiness()) { playerBussiness3.UpdateLastVIPPackTime(client.Player.PlayerCharacter.ID); goto IL_29A; } break; } case 5: break; default: goto IL_29A; } using (ProduceBussiness produceBussiness = new ProduceBussiness()) { DailyLogListInfo dailyLogListSingle = produceBussiness.GetDailyLogListSingle(client.Player.PlayerCharacter.ID); string text2 = dailyLogListSingle.DayLog; text2.Split(new char[] { ',' }); if (string.IsNullOrEmpty(text2)) { text2 = "True"; dailyLogListSingle.UserAwardLog = 0; } else { text2 += ",True"; } dailyLogListSingle.DayLog = text2; dailyLogListSingle.UserAwardLog++; produceBussiness.UpdateDailyLogList(dailyLogListSingle); } stringBuilder.Append("Điểm danh thành công!"); IL_29A: if (num != 0) { stringBuilder.Append(num + LanguageMgr.GetTranslation("OpenUpArkHandler.Money", new object[0])); client.Player.AddMoney(num); } if (num2 != 0) { stringBuilder.Append(num2 + LanguageMgr.GetTranslation("OpenUpArkHandler.Gold", new object[0])); client.Player.AddGold(num2); } if (num3 != 0) { stringBuilder.Append(num3 + LanguageMgr.GetTranslation("OpenUpArkHandler.GiftToken", new object[0])); client.Player.AddGiftToken(num3); } if (num4 != 0) { stringBuilder.Append(num4 + LanguageMgr.GetTranslation("OpenUpArkHandler.Medal", new object[0])); client.Player.AddMedal(num4); } StringBuilder stringBuilder2 = new StringBuilder(); foreach (ItemInfo current in list) { stringBuilder2.Append(current.Template.Name + "x" + current.Count.ToString() + ","); if (!client.Player.AddTemplate(current, current.Template.BagType, current.Count)) { using (PlayerBussiness playerBussiness4 = new PlayerBussiness()) { current.UserID = 0; playerBussiness4.AddGoods(current); MailInfo mailInfo = new MailInfo(); mailInfo.Annex1 = current.ItemID.ToString(); mailInfo.Content = LanguageMgr.GetTranslation("OpenUpArkHandler.Content1", new object[0]) + current.Template.Name + LanguageMgr.GetTranslation("OpenUpArkHandler.Content2", new object[0]); mailInfo.Gold = 0; mailInfo.Money = 0; mailInfo.Receiver = client.Player.PlayerCharacter.NickName; mailInfo.ReceiverID = client.Player.PlayerCharacter.ID; mailInfo.Sender = mailInfo.Receiver; mailInfo.SenderID = mailInfo.ReceiverID; mailInfo.Title = LanguageMgr.GetTranslation("OpenUpArkHandler.Title", new object[0]) + current.Template.Name + "]"; mailInfo.Type = 12; playerBussiness4.SendMail(mailInfo); text = LanguageMgr.GetTranslation("OpenUpArkHandler.Mail", new object[0]); } } } if (stringBuilder2.Length > 0) { stringBuilder2.Remove(stringBuilder2.Length - 1, 1); string[] array = stringBuilder2.ToString().Split(new char[] { ',' }); for (int i = 0; i < array.Length; i++) { int num5 = 1; for (int j = i + 1; j < array.Length; j++) { if (array[i].Contains(array[j]) && array[j].Length == array[i].Length) { num5++; array[j] = j.ToString(); } } if (num5 > 1) { array[i] = array[i].Remove(array[i].Length - 1, 1); array[i] += num5.ToString(); } if (array[i] != i.ToString()) { array[i] += ","; stringBuilder.Append(array[i]); } } } if (stringBuilder.Length - 1 > 0) { stringBuilder.Remove(stringBuilder.Length - 1, 1); stringBuilder.Append("."); } client.Out.SendMessage(eMessageType.Normal, text + stringBuilder.ToString()); if (!string.IsNullOrEmpty(text)) { client.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Receiver); } return(2); }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { eBageType bagType = (eBageType)packet.ReadByte(); int place = packet.ReadInt(); int payType = (int)packet.ReadByte(); int price = packet.ReadInt(); int mouthful = packet.ReadInt(); int validDate = packet.ReadInt(); string msg = "AuctionAddHandler.Fail"; payType = 1; int result; if (player.PlayerCharacter.HasBagPassword && player.PlayerCharacter.IsLocked) { player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0])); result = 0; } else { if (price < 0 || (mouthful != 0 && mouthful < price)) { result = 0; } else { if (payType != 0) { payType = 1; } int needGold = (validDate == 0) ? 100 : ((validDate == 1) ? 200 : 300); needGold = ((needGold < 1) ? 1 : needGold); ItemInfo goods = player.GetItemAt(bagType, place); if (price < 0) { msg = "AuctionAddHandler.Msg1"; } else { if (mouthful != 0 && mouthful < price) { msg = "AuctionAddHandler.Msg2"; } else { if (needGold > player.PlayerCharacter.Gold) { msg = "AuctionAddHandler.Msg3"; } else { if (goods == null) { msg = "AuctionAddHandler.Msg4"; } else { if (goods.IsBinds) { msg = "AuctionAddHandler.Msg5"; } else { if (goods.ItemID == 0) { using (PlayerBussiness db = new PlayerBussiness()) { db.AddGoods(goods); } } AuctionInfo info = new AuctionInfo(); info.AuctioneerID = player.PlayerCharacter.ID; info.AuctioneerName = player.PlayerCharacter.NickName; info.BeginDate = DateTime.Now; info.BuyerID = 0; info.BuyerName = ""; info.IsExist = true; info.ItemID = goods.ItemID; info.Mouthful = mouthful; info.PayType = payType; info.Price = price; info.Rise = price / 10; info.Rise = ((info.Rise < 1) ? 1 : info.Rise); info.Name = goods.Template.Name; info.Category = goods.Template.CategoryID; info.ValidDate = ((validDate == 0) ? 8 : ((validDate == 1) ? 24 : 48)); info.TemplateID = goods.TemplateID; info.Random = AuctionAddHandler.random.Next(45, 75); using (PlayerBussiness db = new PlayerBussiness()) { if (db.AddAuction(info)) { player.TakeOutItem(goods); player.SaveIntoDatabase(); player.RemoveGold(needGold); msg = "AuctionAddHandler.Msg6"; player.Out.SendAuctionRefresh(info, info.AuctionID, true, goods); } } } } } } } player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation(msg, new object[0])); result = 0; } } return(result); }
public static bool AddSignAwards(GamePlayer player, int DailyLog) { DailyAwardInfo[] allAwardInfo = AwardMgr.GetAllAwardInfo(); new StringBuilder(); string value = string.Empty; bool flag = false; int templateId = 0; int num = 1; int validDate = 0; bool isBinds = true; bool result = false; DailyAwardInfo[] array = allAwardInfo; for (int i = 0; i < array.Length; i++) { DailyAwardInfo dailyAwardInfo = array[i]; flag = true; if (DailyLog <= 9) { if (DailyLog != 3) { if (DailyLog == 9) { if (dailyAwardInfo.Type == DailyLog) { templateId = dailyAwardInfo.TemplateID; num = dailyAwardInfo.Count; validDate = dailyAwardInfo.ValidDate; isBinds = dailyAwardInfo.IsBinds; result = true; } } } else { if (dailyAwardInfo.Type == DailyLog) { num = dailyAwardInfo.Count; player.AddGiftToken(num); result = true; } } } else { if (DailyLog != 17) { if (DailyLog == 26) { if (dailyAwardInfo.Type == DailyLog) { templateId = dailyAwardInfo.TemplateID; num = dailyAwardInfo.Count; validDate = dailyAwardInfo.ValidDate; isBinds = dailyAwardInfo.IsBinds; result = true; } } } else { if (dailyAwardInfo.Type == DailyLog) { templateId = dailyAwardInfo.TemplateID; num = dailyAwardInfo.Count; validDate = dailyAwardInfo.ValidDate; isBinds = dailyAwardInfo.IsBinds; result = true; } } } } ItemTemplateInfo itemTemplateInfo = ItemMgr.FindItemTemplate(templateId); if (itemTemplateInfo != null) { int num2 = num; for (int j = 0; j < num2; j += itemTemplateInfo.MaxCount) { int count = (j + itemTemplateInfo.MaxCount > num2) ? (num2 - j) : itemTemplateInfo.MaxCount; ItemInfo itemInfo = ItemInfo.CreateFromTemplate(itemTemplateInfo, count, 113); itemInfo.ValidDate = validDate; itemInfo.IsBinds = isBinds; if (!player.AddTemplate(itemInfo, itemInfo.Template.BagType, itemInfo.Count)) { flag = true; using (PlayerBussiness playerBussiness = new PlayerBussiness()) { itemInfo.UserID = 0; playerBussiness.AddGoods(itemInfo); MailInfo mailInfo = new MailInfo(); mailInfo.Annex1 = itemInfo.ItemID.ToString(); mailInfo.Content = LanguageMgr.GetTranslation("AwardMgr.AddDailyAward.Content", new object[] { itemInfo.Template.Name }); mailInfo.Gold = 0; mailInfo.Money = 0; mailInfo.Receiver = player.PlayerCharacter.NickName; mailInfo.ReceiverID = player.PlayerCharacter.ID; mailInfo.Sender = mailInfo.Receiver; mailInfo.SenderID = mailInfo.ReceiverID; mailInfo.Title = LanguageMgr.GetTranslation("AwardMgr.AddDailyAward.Title", new object[] { itemInfo.Template.Name }); mailInfo.Type = 15; playerBussiness.SendMail(mailInfo); value = LanguageMgr.GetTranslation("AwardMgr.AddDailyAward.Mail", new object[0]); } } } } if (flag && !string.IsNullOrEmpty(value)) { player.Out.SendMailResponse(player.PlayerCharacter.ID, eMailRespose.Receiver); } return(result); }
public bool HandleCommand(TankMarryLogicProcessor process, GamePlayer player, GSPacketIn packet) { if (player.CurrentMarryRoom == null || player.CurrentMarryRoom.RoomState != eRoomState.FREE) { return(false); } if (player.PlayerCharacter.ID != player.CurrentMarryRoom.Info.GroomID && player.PlayerCharacter.ID != player.CurrentMarryRoom.Info.BrideID) { return(false); } int needMoney = GameProperties.PRICE_PROPOSE; if (player.CurrentMarryRoom.Info.IsHymeneal) { if (player.PlayerCharacter.Money < needMoney) { player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("UserFirecrackersCommand.MoneyNotEnough")); return(false); } } GamePlayer Groom = player.CurrentMarryRoom.GetPlayerByUserID(player.CurrentMarryRoom.Info.GroomID); if (Groom == null) { player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("HymenealCommand.NoGroom")); return(false); } GamePlayer Bride = player.CurrentMarryRoom.GetPlayerByUserID(player.CurrentMarryRoom.Info.BrideID); if (Bride == null) { player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("HymenealCommand.NoBride")); return(false); } bool result = false; bool isFirst = false; GSPacketIn pkg = packet.Clone(); int hymenealState = packet.ReadInt(); if (1 == hymenealState) { player.CurrentMarryRoom.RoomState = eRoomState.FREE; } else { player.CurrentMarryRoom.RoomState = eRoomState.Hymeneal; player.CurrentMarryRoom.BeginTimerForHymeneal(170 * 1000); if (!player.PlayerCharacter.IsGotRing) { isFirst = true; ItemTemplateInfo ringTemplate = ItemMgr.FindItemTemplate(9022); ItemInfo ring1 = ItemInfo.CreateFromTemplate(ringTemplate, 1, (int)ItemAddType.webing); ring1.IsBinds = true; //Groom.CurrentInventory.AddItem(ring1, 11); using (PlayerBussiness pb = new PlayerBussiness()) { ring1.UserID = 0; pb.AddGoods(ring1); string content = LanguageMgr.GetTranslation("HymenealCommand.Content", Bride.PlayerCharacter.NickName); MailInfo mail = new MailInfo(); mail.Annex1 = ring1.ItemID.ToString(); mail.Content = content; mail.Gold = 0; mail.IsExist = true; mail.Money = 0; mail.Receiver = Groom.PlayerCharacter.NickName; mail.ReceiverID = Groom.PlayerCharacter.ID; mail.Sender = LanguageMgr.GetTranslation("HymenealCommand.Sender"); mail.SenderID = 0; mail.Title = LanguageMgr.GetTranslation("HymenealCommand.Title"); mail.Type = (int)eMailType.Marry; if (pb.SendMail(mail)) { result = true; } player.Out.SendMailResponse(mail.ReceiverID, eMailRespose.Receiver); } ItemInfo ring2 = ItemInfo.CreateFromTemplate(ringTemplate, 1, (int)ItemAddType.webing); ring2.IsBinds = true; //Bride.CurrentInventory.AddItem(ring2, 11); using (PlayerBussiness pb = new PlayerBussiness()) { ring2.UserID = 0; pb.AddGoods(ring2); string content = LanguageMgr.GetTranslation("HymenealCommand.Content", Groom.PlayerCharacter.NickName); MailInfo mail = new MailInfo(); mail.Annex1 = ring2.ItemID.ToString(); mail.Content = content; mail.Gold = 0; mail.IsExist = true; mail.Money = 0; mail.Receiver = Bride.PlayerCharacter.NickName; mail.ReceiverID = Bride.PlayerCharacter.ID; mail.Sender = LanguageMgr.GetTranslation("HymenealCommand.Sender"); mail.SenderID = 0; mail.Title = LanguageMgr.GetTranslation("HymenealCommand.Title"); mail.Type = (int)eMailType.Marry; if (pb.SendMail(mail)) { result = true; } player.Out.SendMailResponse(mail.ReceiverID, eMailRespose.Receiver); } player.CurrentMarryRoom.Info.IsHymeneal = true; using (PlayerBussiness db = new PlayerBussiness()) { db.UpdateMarryRoomInfo(player.CurrentMarryRoom.Info); //更新IsGotRing的数据库 db.UpdatePlayerGotRingProp(Groom.PlayerCharacter.ID, Bride.PlayerCharacter.ID); //通过数据库读入PlayerCharacter内存 Groom.LoadMarryProp(); Bride.LoadMarryProp(); } //Groom.PlayerCharacter.IsGotRing = true; //Bride.PlayerCharacter.IsGotRing = true; } else { isFirst = false; result = true; } if (!isFirst) { //player.SetMoney(-needMoney, MoneyRemoveType.Marry); player.RemoveMoney(needMoney); LogMgr.LogMoneyAdd(LogMoneyType.Marry, LogMoneyType.Marry_Hymeneal, player.PlayerCharacter.ID, needMoney, player.PlayerCharacter.Money, 0, 0, 0, "", "", ""); CountBussiness.InsertSystemPayCount(player.PlayerCharacter.ID, needMoney, 0, (int)eConsumerType.Marry, (int)eSubConsumerType.Marry_Hymeneal); } pkg.WriteInt(player.CurrentMarryRoom.Info.ID); pkg.WriteBoolean(result); //0 player.CurrentMarryRoom.SendToAll(pkg); //0 player.CurrentMarryRoom.SendToAllForScene(pkg,1); player.CurrentMarryRoom.SendToAll(pkg); if (result) { string msg = LanguageMgr.GetTranslation("HymenealCommand.Succeed", Groom.PlayerCharacter.NickName, Bride.PlayerCharacter.NickName); GSPacketIn message = player.Out.SendMessage(eMessageType.ChatNormal, msg); player.CurrentMarryRoom.SendToPlayerExceptSelfForScene(message, player); } } return(true); }
public bool HandleCommand(TankMarryLogicProcessor process, GamePlayer player, GSPacketIn packet) { bool result2; if (player.CurrentMarryRoom == null || player.CurrentMarryRoom.RoomState != eRoomState.FREE) { result2 = false; } else { if (player.PlayerCharacter.ID != player.CurrentMarryRoom.Info.GroomID && player.PlayerCharacter.ID != player.CurrentMarryRoom.Info.BrideID) { result2 = false; } else { int needMoney = 500; if (player.CurrentMarryRoom.Info.IsHymeneal) { if (player.PlayerCharacter.Money < needMoney) { player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("UserFirecrackersCommand.MoneyNotEnough", new object[0])); result2 = false; return(result2); } } GamePlayer Groom = player.CurrentMarryRoom.GetPlayerByUserID(player.CurrentMarryRoom.Info.GroomID); if (Groom == null) { player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("HymenealCommand.NoGroom", new object[0])); result2 = false; } else { GamePlayer Bride = player.CurrentMarryRoom.GetPlayerByUserID(player.CurrentMarryRoom.Info.BrideID); if (Bride == null) { player.Out.SendMessage(eMessageType.ChatNormal, LanguageMgr.GetTranslation("HymenealCommand.NoBride", new object[0])); result2 = false; } else { bool result = false; bool isFirst = false; GSPacketIn pkg = packet.Clone(); int hymenealState = packet.ReadInt(); if (1 == hymenealState) { player.CurrentMarryRoom.RoomState = eRoomState.FREE; } else { player.CurrentMarryRoom.RoomState = eRoomState.Hymeneal; player.CurrentMarryRoom.BeginTimerForHymeneal(170000); if (!player.PlayerCharacter.IsGotRing) { isFirst = true; ItemTemplateInfo ringTemplate = ItemMgr.FindItemTemplate(9022); ItemInfo ring = ItemInfo.CreateFromTemplate(ringTemplate, 1, 112); ring.IsBinds = true; using (PlayerBussiness pb = new PlayerBussiness()) { ring.UserID = 0; pb.AddGoods(ring); string content = LanguageMgr.GetTranslation("HymenealCommand.Content", new object[] { Bride.PlayerCharacter.NickName }); MailInfo mail = new MailInfo(); mail.Annex1 = ring.ItemID.ToString(); mail.Content = content; mail.Gold = 0; mail.IsExist = true; mail.Money = 0; mail.GiftToken = 0; mail.Receiver = Groom.PlayerCharacter.NickName; mail.ReceiverID = Groom.PlayerCharacter.ID; mail.Sender = LanguageMgr.GetTranslation("HymenealCommand.Sender", new object[0]); mail.SenderID = 0; mail.Title = LanguageMgr.GetTranslation("HymenealCommand.Title", new object[0]); mail.Type = 14; if (pb.SendMail(mail)) { result = true; } player.Out.SendMailResponse(mail.ReceiverID, eMailRespose.Receiver); } ItemInfo ring2 = ItemInfo.CreateFromTemplate(ringTemplate, 1, 112); ring2.IsBinds = true; using (PlayerBussiness pb = new PlayerBussiness()) { ring2.UserID = 0; pb.AddGoods(ring2); string content = LanguageMgr.GetTranslation("HymenealCommand.Content", new object[] { Groom.PlayerCharacter.NickName }); MailInfo mail = new MailInfo(); mail.Annex1 = ring2.ItemID.ToString(); mail.Content = content; mail.Gold = 0; mail.IsExist = true; mail.Money = 0; mail.GiftToken = 0; mail.Receiver = Bride.PlayerCharacter.NickName; mail.ReceiverID = Bride.PlayerCharacter.ID; mail.Sender = LanguageMgr.GetTranslation("HymenealCommand.Sender", new object[0]); mail.SenderID = 0; mail.Title = LanguageMgr.GetTranslation("HymenealCommand.Title", new object[0]); mail.Type = 14; if (pb.SendMail(mail)) { result = true; } player.Out.SendMailResponse(mail.ReceiverID, eMailRespose.Receiver); } player.CurrentMarryRoom.Info.IsHymeneal = true; using (PlayerBussiness db = new PlayerBussiness()) { db.UpdateMarryRoomInfo(player.CurrentMarryRoom.Info); db.UpdatePlayerGotRingProp(Groom.PlayerCharacter.ID, Bride.PlayerCharacter.ID); Groom.LoadMarryProp(); Bride.LoadMarryProp(); } } else { isFirst = false; result = true; } if (!isFirst) { player.RemoveMoney(needMoney, LogMoneyType.Marry, LogMoneyType.Marry_Hymeneal); CountBussiness.InsertSystemPayCount(player.PlayerCharacter.ID, needMoney, 0, 0, 1); } pkg.WriteInt(player.CurrentMarryRoom.Info.ID); pkg.WriteBoolean(result); player.CurrentMarryRoom.SendToAll(pkg); if (result) { string msg = LanguageMgr.GetTranslation("HymenealCommand.Succeed", new object[] { Groom.PlayerCharacter.NickName, Bride.PlayerCharacter.NickName }); GSPacketIn message = player.Out.SendMessage(eMessageType.ChatNormal, msg); player.CurrentMarryRoom.SendToPlayerExceptSelfForScene(message, player); } } result2 = true; } } } } return(result2); }
//0表示男女,1男2女 //type 1表示物品,2表示金币,3表示点券,4表示经验,5表示功勋,6表示BUFF public static bool AddDailyAward(GamePlayer player) { if (DateTime.Now.Date == player.PlayerCharacter.LastAward.Date) { return(false); } //if (player.PlayerCharacter.DayLoginCount > 0) // return false; player.PlayerCharacter.DayLoginCount++; player.PlayerCharacter.LastAward = DateTime.Now; DailyAwardInfo[] infos = GetAllAwardInfo(); StringBuilder msg = new StringBuilder(); string full = string.Empty; bool has = false; foreach (DailyAwardInfo info in infos) { if (info.Sex != 0 && (player.PlayerCharacter.Sex ? 1 : 2) != info.Sex) { continue; } has = true; switch (info.Type) { case 1: ItemTemplateInfo itemTemplateInfo = Bussiness.Managers.ItemMgr.FindItemTemplate(info.TemplateID); if (itemTemplateInfo != null) { int itemCount = info.Count; for (int len = 0; len < itemCount; len += itemTemplateInfo.MaxCount) { int count = len + itemTemplateInfo.MaxCount > itemCount ? itemCount - len : itemTemplateInfo.MaxCount; ItemInfo item = ItemInfo.CreateFromTemplate(itemTemplateInfo, count, (int)ItemAddType.DailyAward); item.ValidDate = info.ValidDate; item.IsBinds = info.IsBinds; //if (player.AddItem(item, Game.Server.Statics.ItemAddType.DailyAward, item.GetBagType()) == -1) if (!player.AddTemplate(item, item.Template.BagType, item.Count)) { using (PlayerBussiness db = new PlayerBussiness()) { item.UserID = 0; db.AddGoods(item); MailInfo message = new MailInfo(); message.Annex1 = item.ItemID.ToString(); message.Content = LanguageMgr.GetTranslation("AwardMgr.AddDailyAward.Content", item.Template.Name); message.Gold = 0; message.Money = 0; message.Receiver = player.PlayerCharacter.NickName; message.ReceiverID = player.PlayerCharacter.ID; message.Sender = message.Receiver; message.SenderID = message.ReceiverID; message.Title = LanguageMgr.GetTranslation("AwardMgr.AddDailyAward.Title", item.Template.Name); message.Type = (int)eMailType.DailyAward; db.SendMail(message); full = LanguageMgr.GetTranslation("AwardMgr.AddDailyAward.Mail"); } } } } break; case 2: player.AddGold(info.Count); break; case 3: player.AddMoney(info.Count); LogMgr.LogMoneyAdd(LogMoneyType.Award, LogMoneyType.Award_Daily, player.PlayerCharacter.ID, info.Count, player.PlayerCharacter.Money, 0, 0, 0, "", "", ""); break; case 4: player.AddGP(info.Count); break; case 5: player.AddOffer(info.Count, false); break; case 6: ItemTemplateInfo template = Bussiness.Managers.ItemMgr.FindItemTemplate(info.TemplateID); if (template != null) { AbstractBuffer buffer = BufferList.CreateBufferHour(template, info.ValidDate); buffer.Start(player); } break; } } if (has) { //player.Out.SendMessage(eMessageType.DailyAward, full + msg.ToString()); if (!string.IsNullOrEmpty(full)) { player.Out.SendMailResponse(player.PlayerCharacter.ID, eMailRespose.Receiver); } } return(true); }