public override int HandlePacket(GamePlayer player, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); byte page = packet.ReadByte(); byte count = packet.ReadByte(); GamePlayer[] players = WorldMgr.GetAllPlayersNoGame(); int total = players.Length; byte length = (total > (int)count) ? count : ((byte)total); pkg.WriteByte(length); for (int i = (int)(page * count); i < (int)(page * count + length); i++) { PlayerInfo info = players[i % total].PlayerCharacter; pkg.WriteInt(info.ID); pkg.WriteString((info.NickName == null) ? "" : info.NickName); pkg.WriteBoolean(info.Sex); pkg.WriteInt(info.Grade); pkg.WriteInt(info.ConsortiaID); pkg.WriteString((info.ConsortiaName == null) ? "" : info.ConsortiaName); pkg.WriteInt(info.Offer); pkg.WriteInt(info.Win); pkg.WriteInt(info.Total); pkg.WriteInt(info.Escape); pkg.WriteInt(info.Repute); pkg.WriteInt(info.FightPower); } player.Out.SendTCP(pkg); return(0); }
//修改: Xiaov //时间: 2009-11-4 //描述: 修改邮件的已读未读标志<已测试> public int HandlePacket(GameClient client, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); int id = packet.ReadInt(); using (PlayerBussiness db = new PlayerBussiness()) { MailInfo mes = db.GetMailSingle(client.Player.PlayerCharacter.ID, id); if (mes != null && !mes.IsRead) { mes.IsRead = true; if (mes.Type < 100) { mes.ValidDate = 3 * 24; mes.SendTime = DateTime.Now; } db.UpdateMail(mes, mes.Money); pkg.WriteBoolean(true); } else { pkg.WriteBoolean(false); } } client.Out.SendTCP(pkg); return(0); }
public int HandlePacket(GameClient client, GSPacketIn packet) { packet.ClearContext(); packet.WriteDateTime(DateTime.Now); client.Out.SendTCP(packet); return(0); }
public bool HandleCommand(TankMarryLogicProcessor process, GamePlayer player, GSPacketIn packet) { if (player.CurrentMarryRoom == null || player.CurrentMarryRoom.RoomState != eRoomState.FREE) { return(false); } if (!player.CurrentMarryRoom.Info.GuestInvite && player.PlayerCharacter.ID != player.CurrentMarryRoom.Info.GroomID && player.PlayerCharacter.ID != player.CurrentMarryRoom.Info.BrideID) { return(false); } GSPacketIn gSPacketIn = packet.Clone(); gSPacketIn.ClearContext(); int playerId = packet.ReadInt(); GamePlayer playerById = WorldMgr.GetPlayerById(playerId); if (playerById != null && playerById.CurrentRoom == null && playerById.CurrentMarryRoom == null) { gSPacketIn.WriteByte(4); gSPacketIn.WriteInt(player.PlayerCharacter.ID); gSPacketIn.WriteString(player.PlayerCharacter.NickName); gSPacketIn.WriteInt(player.CurrentMarryRoom.Info.ID); gSPacketIn.WriteString(player.CurrentMarryRoom.Info.Name); gSPacketIn.WriteString(player.CurrentMarryRoom.Info.Pwd); gSPacketIn.WriteInt(player.MarryMap); playerById.Out.SendTCP(gSPacketIn); return(true); } return(false); }
private void HandleSysNotice(GSPacketIn pkg) { BaseGame game = GameMgr.FindGame(pkg.ClientID); if (game != null) { Player player = game.FindPlayer(pkg.Parameter1); GSPacketIn pkg2 = new GSPacketIn(3); pkg2.WriteInt(3); pkg2.WriteString(LanguageMgr.GetTranslation("AbstractPacketLib.SendGamePlayerLeave.Msg6", new object[] { player.PlayerDetail.PlayerCharacter.Grade * 12, 15 })); player.PlayerDetail.SendTCP(pkg2); pkg2.ClearContext(); pkg2.WriteInt(3); pkg2.WriteString(LanguageMgr.GetTranslation("AbstractPacketLib.SendGamePlayerLeave.Msg7", new object[] { player.PlayerDetail.PlayerCharacter.NickName, player.PlayerDetail.PlayerCharacter.Grade * 12, 15 })); game.SendToAll(pkg2, player.PlayerDetail); } }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { ItemInfo item = player.PropBag.GetItemByCategoryID(0, 11, 4); if (item != null) { player.PropBag.RemoveCountFromStack(item, 1, eItemRemoveType.Use); player.OnUsingItem(item.TemplateID); int senderID = packet.ReadInt(); string senderName = packet.ReadString(); string msg = packet.ReadString(); GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); pkg.ClientID = player.PlayerCharacter.ID; pkg.WriteInt(player.PlayerCharacter.ID); pkg.WriteString(player.PlayerCharacter.NickName); pkg.WriteString(msg); GamePlayer[] players = WorldMgr.GetAllPlayers(); GamePlayer[] array = players; for (int i = 0; i < array.Length; i++) { GamePlayer p = array[i]; p.Out.SendTCP(pkg); } } return(0); }
//修改: Xiaov //时间: 2009-11-7 //描述: 用户与用户之间私聊<已测试> public int HandlePacket(GameClient client, GSPacketIn packet) { int receiverID = packet.ReadInt(); //int senderID = packet.ReadInt(); string receiver = packet.ReadString(); string sender = packet.ReadString(); string msg = packet.ReadString(); bool isAutoReply = packet.ReadBoolean(); if (receiverID == 0) { using (PlayerBussiness db = new PlayerBussiness()) { PlayerInfo info = db.GetUserSingleByNickName(receiver); if (info != null) { receiverID = info.ID; } } } if (receiverID != 0) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); pkg.WriteInt(receiverID); pkg.ClientID = (client.Player.PlayerCharacter.ID); //pkg.WriteInt(senderID); pkg.WriteString(receiver); pkg.WriteString(sender); pkg.WriteString(msg); pkg.WriteBoolean(false); GamePlayer player = Managers.WorldMgr.GetPlayerById(receiverID); if (player != null) { if (player.IsBlackFriend(client.Player.PlayerCharacter.ID)) { return(1); } player.Out.SendTCP(pkg); } else { GameServer.Instance.LoginServer.SendPacket(pkg); } client.Out.SendTCP(pkg); } else { client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("UserPrivateChatHandler.NoUser")); } 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 override int HandlePacket(GamePlayer player, GSPacketIn packet) { int id = packet.ReadInt(); string nickName = packet.ReadString(); string senderName = packet.ReadString(); string msg = packet.ReadString(); if (id == 0) { using (PlayerBussiness db = new PlayerBussiness()) { PlayerInfo info = db.GetUserSingleByNickName(nickName); if (info != null) { id = info.ID; } } } int result; if (id != 0) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); pkg.ClientID = player.PlayerCharacter.ID; pkg.WriteInt(id); pkg.WriteString(nickName); pkg.WriteString(player.PlayerCharacter.NickName); pkg.WriteString(msg); GamePlayer other = WorldMgr.GetPlayerById(id); if (other != null) { if (other.IsBlackFriend(player.PlayerCharacter.ID)) { result = 1; return(result); } other.Out.SendTCP(pkg); } else { GameServer.Instance.LoginServer.SendPacket(pkg); } player.Out.SendTCP(pkg); } else { player.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("UserPrivateChatHandler.NoUser", new object[0])); } result = 1; return(result); }
public int HandlePacket(GameClient client, GSPacketIn packet) { packet = packet.Clone(); packet.ClearContext(); int num = packet.ReadInt(); int num2 = packet.ReadInt(); int num3 = packet.ReadInt(); int num4 = packet.ReadInt(); int num5 = packet.ReadInt(); int num6 = packet.ReadInt(); int num7 = packet.ReadInt(); client.Player.CurrentHotSpringRoom = new HotSpringRoom(new HotSpringRoomInfo(), new TankHotSpringLogicProcessor()); client.Player.CurrentHotSpringRoom.ProcessData(client.Player, packet); return(0); }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); Dictionary <int, int> infos = ShopMgr.GetLimitShopItemInfo(); pkg.WriteInt(infos.Count); foreach (int key in infos.Keys) { pkg.WriteInt(key); pkg.WriteInt(infos[key]); } player.SendTCP(pkg); return(0); }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { int result; if (string.IsNullOrEmpty(player.PlayerCharacter.CheckCode)) { result = 1; } else { string check = packet.ReadString(); if (player.PlayerCharacter.CheckCode.ToLower() == check.ToLower()) { int GP = LevelMgr.GetGP(player.PlayerCharacter.Grade); if (player.PlayerCharacter.ChatCount != 5) { player.AddGP(LevelMgr.IncreaseGP(player.PlayerCharacter.Grade, player.PlayerCharacter.GP)); player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("CheckCodeHandler.Msg1", new object[] { player.PlayerCharacter.Grade * 12 })); } player.PlayerCharacter.CheckCount = 0; player.PlayerCharacter.ChatCount = 0; packet.ClearContext(); packet.WriteByte(1); packet.WriteBoolean(false); player.Out.SendTCP(packet); } else { if (player.PlayerCharacter.CheckError < 9) { player.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("CheckCodeHandler.Msg3", new object[0])); player.PlayerCharacter.CheckError++; player.Out.SendCheckCode(); } else { player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("CheckCodeHandler.Msg3", new object[0])); player.Disconnect(); } } result = 0; } return(result); }
public bool HandleCommand(GamePlayer player, GSPacketIn packet) { bool result; if (player.CurrentSpaRoom == null) { result = false; } else { if (player.CurrentSpaRoom.Spa_Room_Info.PlayerID != player.PlayerCharacter.ID) { result = false; } else { if (player.CurrentSpaRoom.Count >= player.CurrentSpaRoom.Spa_Room_Info.MaxCount) { result = false; } else { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); int id = packet.ReadInt(); GamePlayer invitePlayer = WorldMgr.GetPlayerById(id); if (invitePlayer != null && invitePlayer.CurrentRoom == null && invitePlayer.CurrentMarryRoom == null && invitePlayer.CurrentSpaRoom == null) { pkg.WriteByte(4); pkg.WriteInt(player.PlayerCharacter.ID); pkg.WriteString(player.PlayerCharacter.NickName); pkg.WriteInt(player.CurrentSpaRoom.Spa_Room_Info.RoomID); pkg.WriteString(player.CurrentSpaRoom.Spa_Room_Info.RoomName); pkg.WriteString(player.CurrentSpaRoom.Spa_Room_Info.Pwd); invitePlayer.Out.SendTCP(pkg); result = true; } else { result = false; } } } } return(result); }
private void HandleSysNotice(GSPacketIn pkg) { BaseGame game = GameMgr.FindGame(pkg.ClientID); if (game != null) { Player player = game.FindPlayer(pkg.Parameter1); GSPacketIn pkg1 = new GSPacketIn((byte)eFightPackageType.SYS_NOTICE); // int type = pkg.ReadInt(); pkg1.WriteInt(3); pkg1.WriteString(LanguageMgr.GetTranslation("AbstractPacketLib.SendGamePlayerLeave.Msg6", player.PlayerDetail.PlayerCharacter.Grade * 12, 15)); player.PlayerDetail.SendTCP(pkg1); pkg1.ClearContext(); pkg1.WriteInt(3); pkg1.WriteString(LanguageMgr.GetTranslation("AbstractPacketLib.SendGamePlayerLeave.Msg7", player.PlayerDetail.PlayerCharacter.NickName, player.PlayerDetail.PlayerCharacter.Grade * 12, 15)); game.SendToAll(pkg1, player.PlayerDetail); } }
public int HandlePacket(GameClient client, GSPacketIn packet) { byte unknow = packet.ReadByte(); int id = packet.ReadInt(); if (client.Player.PlayerCharacter.AnswerSite < id) { List <ItemInfo> infos = null; client.Player.PlayerCharacter.AnswerSite = id; if (DropInventory.AnswerDrop(id, ref infos)) { int gold = 0; int money = 0; int giftToken = 0; int medal = 0; foreach (ItemInfo info in infos) { ItemInfo.FindSpecialItemInfo(info, ref gold, ref money, ref giftToken, ref medal); //if ((info != null) && (info.Template.BagType == eBageType.PropBag)) //{ client.Player.MainBag.AddTemplate(info, info.Count); //} client.Player.AddGold(gold); client.Player.AddMoney(money); client.Player.AddGiftToken(giftToken); client.Player.AddMedal(medal); LogMgr.LogMoneyAdd(LogMoneyType.Award, LogMoneyType.Award_Answer, client.Player.PlayerCharacter.ID, giftToken, client.Player.PlayerCharacter.Money, money, 0, 0, 0, "", "", ""); } } } GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); pkg.WriteInt(client.Player.PlayerCharacter.AnswerSite); for (int i = 0; i < client.Player.PlayerCharacter.AnswerSite; i++) { pkg.WriteByte(unknow); } client.Player.Out.SendTCP(pkg); return(1); }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { string message = string.Empty; bool result = false; int place = packet.ReadInt(); if (place != -1) { ItemInfo item = player.TempBag.GetItemAt(place); if (item != null) { this.GetItem(player, item, ref message, ref result); } } else { List <ItemInfo> items = player.TempBag.GetItems(); if (items.Count > 0) { foreach (ItemInfo item in items) { if (!this.GetItem(player, item, ref message, ref result)) { break; } } } } if (!string.IsNullOrEmpty(message)) { player.Out.SendMessage(eMessageType.ERROR, message); } if (result) { packet.ClearContext(); packet.WriteBoolean(true); player.Out.SendTCP(packet); } player.SaveIntoDatabase(); return(0); }
public bool HandleCommand(TankMarryLogicProcessor process, GamePlayer player, GSPacketIn packet) { bool result; if (player.CurrentMarryRoom == null || player.CurrentMarryRoom.RoomState != eRoomState.FREE) { result = false; } else { if (!player.CurrentMarryRoom.Info.GuestInvite) { if (player.PlayerCharacter.ID != player.CurrentMarryRoom.Info.GroomID && player.PlayerCharacter.ID != player.CurrentMarryRoom.Info.BrideID) { result = false; return(result); } } GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); int id = packet.ReadInt(); GamePlayer invitedplayer = WorldMgr.GetPlayerById(id); if (invitedplayer != null && invitedplayer.CurrentRoom == null && invitedplayer.CurrentMarryRoom == null && invitedplayer.CurrentSpaRoom == null) { pkg.WriteByte(4); pkg.WriteInt(player.PlayerCharacter.ID); pkg.WriteString(player.PlayerCharacter.NickName); pkg.WriteInt(player.CurrentMarryRoom.Info.ID); pkg.WriteString(player.CurrentMarryRoom.Info.Name); pkg.WriteString(player.CurrentMarryRoom.Info.Pwd); pkg.WriteInt(player.MarryMap); invitedplayer.Out.SendTCP(pkg); result = true; } else { result = false; } } return(result); }
public bool HandleCommand(TankHotSpringLogicProcessor process, GamePlayer player, GSPacketIn packet) { if ((player.CurrentHotSpringRoom != null) && (player.CurrentHotSpringRoom.RoomState == eRoomState.FREE)) { if (player.PlayerCharacter.ID != player.CurrentHotSpringRoom.Info.PlayerID) { return(false); } GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); GamePlayer playerById = WorldMgr.GetPlayerById(packet.ReadInt()); if (((playerById != null) && (playerById.CurrentRoom == null)) && (playerById.CurrentHotSpringRoom == null)) { pkg.WriteByte((byte)HotSpringCmdType.HOTSPRING_ROOM_INVITE); pkg.WriteInt(player.CurrentHotSpringRoom.Info.RoomID); playerById.Out.SendTCP(pkg); return(true); } } return(false); }
public bool HandleCommand(TankMarryLogicProcessor process, GamePlayer player, GSPacketIn packet) { if (player.CurrentMarryRoom == null || player.CurrentMarryRoom.RoomState != eRoomState.FREE) { return(false); } if (player.CurrentMarryRoom.Info.GuestInvite == false) { if (player.PlayerCharacter.ID != player.CurrentMarryRoom.Info.GroomID && player.PlayerCharacter.ID != player.CurrentMarryRoom.Info.BrideID) { return(false); } } GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); int id = packet.ReadInt(); GamePlayer invitedplayer = Managers.WorldMgr.GetPlayerById(id); if (invitedplayer != null && invitedplayer.CurrentRoom == null && invitedplayer.CurrentMarryRoom == null) { pkg.WriteByte((byte)MarryCmdType.INVITE); pkg.WriteInt(player.PlayerCharacter.ID); pkg.WriteString(player.PlayerCharacter.NickName); pkg.WriteInt(player.CurrentMarryRoom.Info.ID); //pkg.WriteInt(player.CurrentMarryRoom.Info.MapIndex); pkg.WriteString(player.CurrentMarryRoom.Info.Name); pkg.WriteString(player.CurrentMarryRoom.Info.Pwd); pkg.WriteInt(player.MarryMap); invitedplayer.Out.SendTCP(pkg); return(true); } return(false); }
public int HandlePacket(GameClient client, GSPacketIn packet) { //修改: Xiaov //时间: 2009-11-4 //描述: 小喇叭<未测试> ItemInfo item = client.Player.PropBag.GetItemByCategoryID(0, 11, 4); if (item != null) { //item.Count--; //if (item.Count <= 0) //{ // client.Player.RemoveItem(item); //} //else //{ client.Player.PropBag.RemoveCountFromStack(item, 1); // } int senderID = packet.ReadInt(); string senderName = packet.ReadString(); string msg = packet.ReadString(); GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); pkg.ClientID = (client.Player.PlayerCharacter.ID); pkg.WriteInt(client.Player.PlayerCharacter.ID); pkg.WriteString(client.Player.PlayerCharacter.NickName); pkg.WriteString(msg); GamePlayer[] players = Managers.WorldMgr.GetAllPlayers(); foreach (GamePlayer p in players) { p.Out.SendTCP(pkg); } } return(0); }
public int HandlePacket(GameClient client, GSPacketIn packet) { ItemInfo item = client.Player.PropBag.GetItemByCategoryID(0, 11, 5); if (item != null) { //item.Count--; //if (item.Count <= 0) //{ // //client.Player.RemoveAllItem(item, false, Game.Server.Statics.ItemRemoveType.Use, item.GetBagType()); // client.Player.RemoveItem(item); //} //else //{ // client.Player.PropBag.RefreshItem(item); client.Player.PropBag.RemoveCountFromStack(item, 1); // } int senderID = packet.ReadInt(); string senderName = packet.ReadString(); string msg = packet.ReadString(); GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); pkg.ClientID = (client.Player.PlayerCharacter.ID); pkg.WriteInt(client.Player.PlayerCharacter.ID); pkg.WriteString(client.Player.PlayerCharacter.NickName); pkg.WriteString(msg); GameServer.Instance.LoginServer.SendPacket(pkg); GamePlayer[] players = Managers.WorldMgr.GetAllPlayers(); foreach (GamePlayer p in players) { p.Out.SendTCP(pkg); } } return(0); }
public int HandlePacket(GameClient client, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); byte page = packet.ReadByte(); byte count = packet.ReadByte(); GamePlayer[] players = Managers.WorldMgr.GetAllPlayersNoGame(); int total = players.Length; byte length = total > count ? count : (byte)total; pkg.WriteByte(length); for (int i = page * count; i < page * count + length; i++) { PlayerInfo info = players[i % total].PlayerCharacter; pkg.WriteInt(info.ID); pkg.WriteString(info.NickName == null ? "" : info.NickName); //Isvip pkg.WriteBoolean(true); pkg.WriteInt(5); pkg.WriteBoolean(info.Sex); pkg.WriteInt(info.Grade); pkg.WriteInt(info.ConsortiaID); pkg.WriteString(info.ConsortiaName == null ? "" : info.ConsortiaName); pkg.WriteInt(info.Offer); pkg.WriteInt(info.Win); pkg.WriteInt(info.Total); pkg.WriteInt(info.Escape); pkg.WriteInt(info.Repute); pkg.WriteInt(info.FightPower); } client.Out.SendTCP(pkg); return(0); }
public int HandlePacket(GameClient client, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); bool IsBinds = false; int OpertionType = packet.ReadInt(); int Count = packet.ReadInt(); List <ItemInfo> Items = new List <ItemInfo>(); List <ItemInfo> AppendItems = new List <ItemInfo>(); List <eBageType> BagTypes = new List <eBageType>(); StringBuilder str = new StringBuilder(); int defaultprobability = 25; if (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.locked")); return(1); } for (int i = 0; i < Count; i++) { eBageType bagType = (eBageType)packet.ReadInt(); int place = packet.ReadInt(); ItemInfo info = client.Player.GetItemAt(bagType, place); if (info != null) { if (!Items.Contains(info)) { if (info.IsBinds == true) { IsBinds = true; } str.Append(info.ItemID + ":" + info.TemplateID + ","); Items.Add(info); BagTypes.Add(bagType); } else { client.Out.SendMessage(eMessageType.Normal, "Bad Input"); return(1); } } } // ItemInfo MainMaterial = client.Player.GetItemAt(packet.ReadInt(), packet.ReadInt()); eBageType BagType = (eBageType)packet.ReadInt(); int Place = packet.ReadInt(); ItemInfo Item = client.Player.GetItemAt(BagType, Place); if (Item != null) { str.Append(Item.ItemID + ":" + Item.TemplateID + ","); } eBageType LuckBagType = (eBageType)packet.ReadInt(); int LuckPlace = packet.ReadInt(); ItemInfo LuckItem = client.Player.GetItemAt(LuckBagType, LuckPlace);; bool Luck = LuckItem == null ? false : true; //if (IsBinds != Item.IsBinds && IsBinds == true) //{ // client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ItemRefineryHandler.IsBinds")); // // return 1; //} if (Count != 4 || Item == null) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ItemRefineryHandler.ItemNotEnough")); return(1); } bool result = false; bool IsFormula = false; if (OpertionType == 0) //预览模式 { ItemTemplateInfo Template = Managers.RefineryMgr.Refinery(client.Player, Items, Item, Luck, OpertionType, ref result, ref defaultprobability, ref IsFormula); if (Template != null) { client.Out.SendRefineryPreview(client.Player, Template.TemplateID, IsBinds, Item); } return(0); } else //玩家炼化 { int MustGold = 10000; if (client.Player.PlayerCharacter.Gold > MustGold) { client.Player.RemoveGold(MustGold); ItemTemplateInfo RewardItem = Managers.RefineryMgr.Refinery(client.Player, Items, Item, Luck, OpertionType, ref result, ref defaultprobability, ref IsFormula); if (RewardItem != null && IsFormula && result) { str.Append("Success"); result = true; if (result) { ItemInfo item = ItemInfo.CreateFromTemplate(RewardItem, 1, (int)ItemAddType.Refinery); if (item != null) { client.Player.OnItemMelt(Item.Template.CategoryID); // Managers.RefineryMgr.InheritProperty(Item, ref item); item.IsBinds = IsBinds; AbstractInventory bg = client.Player.GetItemInventory(RewardItem); if (!bg.AddItem(item, bg.BeginSlot)) { str.Append("NoPlace"); client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation(item.GetBagName()) + LanguageMgr.GetTranslation("ItemFusionHandler.NoPlace")); } pkg.WriteByte(0); Item.Count--; client.Player.UpdateItem(Item); } } else { str.Append("false"); } } else { pkg.WriteByte(1); } if (Luck) { LuckItem.Count--; client.Player.UpdateItem(LuckItem); } for (int i = 0; i < Items.Count; i++) { client.Player.UpdateItem(Items[i]); if (Items[i].Count <= 0) { client.Player.RemoveItem(Items[i]); } } client.Player.RemoveItem(Items[Items.Count - 1]); client.Player.Out.SendTCP(pkg); } else { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ItemRefineryHandler.NoGold")); } return(1); } }
public int HandlePacket(GameClient client, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); StringBuilder str = new StringBuilder(); int mustGold = 5000; int mustMoney = 1000; int ordPlace = packet.ReadInt(); int newPlace = packet.ReadInt(); ItemInfo ordItem = client.Player.StoreBag2.GetItemAt(0); ItemInfo newItem = client.Player.StoreBag2.GetItemAt(1); client.Player.StoreBag2.ClearBag(); client.Player.MainBag.AddItem(ordItem); client.Player.MainBag.AddItem(newItem); //if (ordItem != null && newItem != null && ordItem.Template.CategoryID == newItem.Template.CategoryID && ordItem.Template.CategoryID < 10 && ordItem.Place > 10 && // newItem.Place > 10 && newItem.Count == 1 && ordItem.Count == 1 && ordItem.IsValidItem() && newItem.IsValidItem() && ordItem.Template.PayType != 0 && newItem.Template.PayType != 0) //{ //未开始 if (ordItem != null && newItem != null && ordItem.Template.CategoryID == newItem.Template.CategoryID && ordItem.Template.CategoryID < 10 && newItem.Count == 1 && ordItem.Count == 1 && ordItem.IsValidItem() && newItem.IsValidItem()) { if (ordItem.StrengthenLevel == 0 && ordItem.StrengthenLevel == 0 && ordItem.DefendCompose == 0 && ordItem.LuckCompose == 0 && ordItem.AgilityCompose == 0 && ordItem.AttackCompose == 0) { return(1); } if (ordItem.Template.CategoryID == 7 && client.Player.PlayerCharacter.Money < mustMoney) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("itemtransferhandler.nomoney")); return(1); } else if (client.Player.PlayerCharacter.Gold < mustGold) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("itemtransferhandler.nogold")); return(1); } client.Player.BeginChanges(); client.Player.MainBag.BeginChanges(); try { if (ordItem.Template.CategoryID == 7) { client.Player.RemoveMoney(mustMoney); LogMgr.LogMoneyAdd(LogMoneyType.Item, LogMoneyType.Item_Move, client.Player.PlayerCharacter.ID, mustMoney, client.Player.PlayerCharacter.Money, 0, 0, 0, "", "", ""); } else { client.Player.RemoveGold(mustGold); } str.Append(ordItem.ItemID + ":" + ordItem.TemplateID + ","); str.Append(ordItem.StrengthenLevel + ","); str.Append(ordItem.AttackCompose + ","); str.Append(ordItem.DefendCompose + ","); str.Append(ordItem.LuckCompose + ","); str.Append(ordItem.AgilityCompose + ","); newItem.StrengthenLevel = ordItem.StrengthenLevel; ordItem.StrengthenLevel = 0; newItem.AttackCompose = ordItem.AttackCompose; ordItem.AttackCompose = 0; newItem.DefendCompose = ordItem.DefendCompose; ordItem.DefendCompose = 0; newItem.LuckCompose = ordItem.LuckCompose; ordItem.LuckCompose = 0; newItem.AgilityCompose = ordItem.AgilityCompose; ordItem.AgilityCompose = 0; newItem.IsBinds = true; client.Player.MainBag.UpdateItem(ordItem); client.Player.MainBag.UpdateItem(newItem); str.Append(newItem.ItemID + ":" + newItem.TemplateID + ","); str.Append(newItem.StrengthenLevel + ","); str.Append(newItem.AttackCompose + ","); str.Append(newItem.DefendCompose + ","); str.Append(newItem.LuckCompose + ","); str.Append(newItem.AgilityCompose); pkg.WriteByte(0); client.Out.SendTCP(pkg); } finally { client.Player.CommitChanges(); client.Player.MainBag.CommitChanges(); } } else { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("itemtransferhandler.nocondition")); } return(0); }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { int id = packet.ReadInt(); int price = packet.ReadInt(); bool result = false; GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); string msg = "AuctionUpdateHandler.Fail"; int result2; if (player.PlayerCharacter.HasBagPassword && player.PlayerCharacter.IsLocked) { player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0])); result2 = 0; } else { using (PlayerBussiness db = new PlayerBussiness()) { AuctionInfo info = db.GetAuctionSingle(id); if (info == null) { msg = "AuctionUpdateHandler.Msg1"; } else { if (info.PayType == 0 && price > player.PlayerCharacter.Gold) { msg = "AuctionUpdateHandler.Msg2"; } else { if (info.PayType == 1 && price > player.PlayerCharacter.Money) { msg = "AuctionUpdateHandler.Msg3"; } else { if (info.BuyerID == 0 && info.Price > price) { msg = "AuctionUpdateHandler.Msg4"; } else { if (info.BuyerID != 0 && info.Price + info.Rise > price && (info.Mouthful == 0 || info.Mouthful > price)) { msg = "AuctionUpdateHandler.Msg5"; } else { int oldBuyerID = info.BuyerID; info.BuyerID = player.PlayerCharacter.ID; info.BuyerName = player.PlayerCharacter.NickName; info.Price = price; if (info.Mouthful != 0 && price >= info.Mouthful) { info.Price = info.Mouthful; info.IsExist = false; } if (db.UpdateAuction(info)) { if (info.PayType == 0) { player.RemoveGold(info.Price); } else { player.RemoveMoney(info.Price, LogMoneyType.Auction, LogMoneyType.Auction_Update); } if (info.IsExist) { msg = "AuctionUpdateHandler.Msg6"; } else { msg = "AuctionUpdateHandler.Msg7"; player.Out.SendMailResponse(info.AuctioneerID, eMailRespose.Receiver); player.Out.SendMailResponse(info.BuyerID, eMailRespose.Receiver); } if (oldBuyerID != 0) { player.Out.SendMailResponse(oldBuyerID, eMailRespose.Receiver); } result = true; } } } } } } player.Out.SendAuctionRefresh(info, id, info != null && info.IsExist, null); player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation(msg, new object[0])); } pkg.WriteBoolean(result); pkg.WriteInt(id); player.Out.SendTCP(pkg); result2 = 0; } return(result2); }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { packet.ClientID = player.PlayerCharacter.ID; byte channel = packet.ReadByte(); bool team = packet.ReadBoolean(); string nick = packet.ReadString(); string msg = packet.ReadString(); GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); pkg.ClientID = player.PlayerCharacter.ID; pkg.WriteInt(player.AreaID); pkg.WriteByte(channel); pkg.WriteBoolean(team); pkg.WriteString(player.PlayerCharacter.NickName); pkg.WriteString(msg); int result; if (player.CurrentRoom != null && channel != 3 && channel != 9) { if (player.CurrentRoom.RoomType == eRoomType.Match) { if (player.CurrentRoom.Game != null) { player.CurrentRoom.BattleServer.Server.SendChatMessage(msg, player, team, channel); result = 1; return(result); } } } if (channel == 3) { if (player.PlayerCharacter.ConsortiaID == 0) { result = 0; return(result); } if (player.PlayerCharacter.IsBanChat) { player.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("ConsortiaChatHandler.IsBanChat", new object[0])); result = 1; return(result); } pkg.WriteInt(player.PlayerCharacter.ConsortiaID); GamePlayer[] players = WorldMgr.GetAllPlayers(); GamePlayer[] array = players; for (int i = 0; i < array.Length; i++) { GamePlayer p = array[i]; if (p.PlayerCharacter.ConsortiaID == player.PlayerCharacter.ConsortiaID && !p.IsBlackFriend(player.PlayerCharacter.ID)) { p.Out.SendTCP(pkg); } } GameServer.Instance.LoginServer.SendPacket(pkg); } else { if (channel == 9) { if (player.CurrentMarryRoom == null) { result = 1; return(result); } player.CurrentMarryRoom.SendToAllForScene(pkg, player.MarryMap); } else { if (channel == 13) { if (player.CurrentSpaRoom == null) { result = 1; return(result); } player.CurrentSpaRoom.SendToRoomPlayer(pkg); } else { if (player.CurrentRoom != null) { if (team) { player.CurrentRoom.SendToTeam(pkg, player.CurrentRoomTeam, player); } else { player.CurrentRoom.SendToAll(pkg); } } else { if (DateTime.Compare(player.LastChatTime.AddSeconds(1.0), DateTime.Now) > 0) { result = 1; return(result); } if (team) { result = 1; return(result); } if (DateTime.Compare(player.LastChatTime.AddSeconds(30.0), DateTime.Now) > 0) { player.Out.SendMessage(eMessageType.ChatERROR, LanguageMgr.GetTranslation("SceneChatHandler.Fast", new object[0])); result = 1; return(result); } player.LastChatTime = DateTime.Now; GamePlayer[] list = WorldMgr.GetAllPlayers(); GamePlayer[] array = list; for (int i = 0; i < array.Length; i++) { GamePlayer p = array[i]; if (p.CurrentRoom == null && p.CurrentMarryRoom == null && p.CurrentSpaRoom == null && !p.IsBlackFriend(player.PlayerCharacter.ID)) { p.Out.SendTCP(pkg); } } player.PlayerCharacter.ChatCount++; player.Out.SendCheckCode(); } } } } result = 1; return(result); }
// <summary> // 修改: Xiaov // 时间: 2009-11-7 // 描述: 发送邮件<未测试> public int HandlePacket(GameClient client, GSPacketIn packet) { if (client.Player.PlayerCharacter.Gold < 100) { return(1); } string msg = "UserSendMailHandler.Success"; eMessageType eMsg = eMessageType.Normal; GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); string nickName = packet.ReadString().Trim(); string title = packet.ReadString(); string content = packet.ReadString(); bool isPay = packet.ReadBoolean(); int validDate = packet.ReadInt(); int money = packet.ReadInt(); eBageType bag1 = (eBageType)packet.ReadByte(); int place1 = packet.ReadInt(); eBageType bag2 = (eBageType)packet.ReadByte(); int place2 = packet.ReadInt(); eBageType bag3 = (eBageType)packet.ReadByte(); int place3 = packet.ReadInt(); eBageType bag4 = (eBageType)packet.ReadByte(); int place4 = packet.ReadInt(); if ((money != 0 || place1 != -1 || place2 != -1 || place3 != -1 || place4 != -1) && (client.Player.PlayerCharacter.HasBagPassword && client.Player.PlayerCharacter.IsLocked)) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked")); pkg.WriteBoolean(false); client.Out.SendTCP(pkg); return(1); } using (PlayerBussiness db = new PlayerBussiness()) { PlayerInfo user; GamePlayer player = Managers.WorldMgr.GetClientByPlayerNickName(nickName); if (player == null) { user = db.GetUserSingleByNickName(nickName); } else { user = player.PlayerCharacter; } if (user != null && !string.IsNullOrEmpty(nickName)) { if (user.NickName != client.Player.PlayerCharacter.NickName) { client.Player.SaveIntoDatabase(); //附件内容描述(例:邮件最后一行标注附件为:1、大喇叭x5;2、强化石4级x1;3、极•烈火x1;4、点券999999;5、强化公式-朱雀x5 MailInfo message = new MailInfo(); message.SenderID = client.Player.PlayerCharacter.ID; message.Sender = client.Player.PlayerCharacter.NickName; message.ReceiverID = user.ID; message.Receiver = user.NickName; message.IsExist = true; message.Gold = 0; message.Money = 0; message.Title = title; message.Content = content; List <ItemInfo> items = new List <ItemInfo>(); List <eBageType> bagType = new List <eBageType>(); StringBuilder annexRemark = new StringBuilder(); annexRemark.Append(LanguageMgr.GetTranslation("UserSendMailHandler.AnnexRemark")); int index = 0; if (place1 != -1) { ItemInfo goods = client.Player.GetItemAt(bag1, place1); if (goods != null && !goods.IsBinds) { message.Annex1Name = goods.Template.Name; message.Annex1 = goods.ItemID.ToString(); items.Add(goods); bagType.Add(bag1); //annexRemark = message.Annex1Name + "x" + goods.Count; index++; annexRemark.Append(index); annexRemark.Append("、"); //annexRemark.Append(annexRemark.Length); annexRemark.Append(message.Annex1Name); annexRemark.Append("x"); annexRemark.Append(goods.Count); annexRemark.Append(";"); //goods.UserID = 0; //client.Player.RemoveAllItem(goods, true, ItemRemoveType.Mail); } } if (place2 != -1) { ItemInfo goods = client.Player.GetItemAt(bag2, place2); if (goods != null && !goods.IsBinds) { message.Annex2Name = goods.Template.Name; message.Annex2 = goods.ItemID.ToString(); items.Add(goods); bagType.Add(bag2); index++; annexRemark.Append(index); annexRemark.Append("、"); annexRemark.Append(message.Annex2Name); annexRemark.Append("x"); annexRemark.Append(goods.Count); annexRemark.Append(";"); //goods.UserID = 0; //client.Player.RemoveAllItem(goods, true, ItemRemoveType.Mail); } } if (place3 != -1) { ItemInfo goods = client.Player.GetItemAt(bag3, place3); if (goods != null && !goods.IsBinds) { message.Annex3Name = goods.Template.Name; message.Annex3 = goods.ItemID.ToString(); items.Add(goods); bagType.Add(bag3); index++; annexRemark.Append(index); annexRemark.Append("、"); annexRemark.Append(message.Annex3Name); annexRemark.Append("x"); annexRemark.Append(goods.Count); annexRemark.Append(";"); } } if (place4 != -1) { ItemInfo goods = client.Player.GetItemAt(bag4, place4); if (goods != null && !goods.IsBinds) { message.Annex4Name = goods.Template.Name; message.Annex4 = goods.ItemID.ToString(); items.Add(goods); bagType.Add(bag4); index++; annexRemark.Append(index); annexRemark.Append("、"); annexRemark.Append(message.Annex4Name); annexRemark.Append("x"); annexRemark.Append(goods.Count); annexRemark.Append(";"); } } if (isPay) { if (money <= 0 || (string.IsNullOrEmpty(message.Annex1) && string.IsNullOrEmpty(message.Annex2) && string.IsNullOrEmpty(message.Annex3) && string.IsNullOrEmpty(message.Annex4))) { return(1); } message.ValidDate = validDate == 1 ? 1 : 6; message.Type = (int)eMailType.Payment; if (money > 0) { message.Money = money; index++; annexRemark.Append(index); annexRemark.Append("、"); annexRemark.Append(LanguageMgr.GetTranslation("UserSendMailHandler.PayMoney")); annexRemark.Append(money); annexRemark.Append(";"); } } else { message.Type = (int)eMailType.Common; if (client.Player.PlayerCharacter.Money >= money && money > 0) { message.Money = money; client.Player.RemoveMoney(money); LogMgr.LogMoneyAdd(LogMoneyType.Mail, LogMoneyType.Mail_Send, client.Player.PlayerCharacter.ID, money, client.Player.PlayerCharacter.Money, 0, 0, 0, 0, "", "", ""); index++; annexRemark.Append(index); annexRemark.Append("、"); annexRemark.Append(LanguageMgr.GetTranslation("UserSendMailHandler.Money")); annexRemark.Append(money); annexRemark.Append(";"); } } if (annexRemark.Length > 1) { message.AnnexRemark = annexRemark.ToString(); } if (db.SendMail(message)) { client.Player.RemoveGold(100); for (int i = 0; i < items.Count; i++) { items[i].UserID = 0; client.Player.RemoveItem(items[i]); items[i].IsExist = true; } } client.Player.SaveIntoDatabase(); pkg.WriteBoolean(true); //发送通知 if (user.State != 0) { client.Player.Out.SendMailResponse(user.ID, eMailRespose.Receiver); } client.Player.Out.SendMailResponse(client.Player.PlayerCharacter.ID, eMailRespose.Send); } else { msg = "UserSendMailHandler.Failed1"; pkg.WriteBoolean(false); } } else { eMsg = eMessageType.ERROR; msg = "UserSendMailHandler.Failed2"; pkg.WriteBoolean(false); } } client.Out.SendMessage(eMsg, LanguageMgr.GetTranslation(msg)); client.Out.SendTCP(pkg); return(0); }
public override int HandlePacket(GamePlayer player, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); StringBuilder str = new StringBuilder(); int mustGold = AppConfig.AppSettings["ComposeGold"].ConvertToInt(1000); int result2; if (player.PlayerCharacter.HasBagPassword && player.PlayerCharacter.IsLocked) { player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("Bag.Locked", new object[0])); result2 = 0; } else { if (player.PlayerCharacter.Gold < mustGold) { player.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("ItemComposeHandler.NoMoney", new object[0])); result2 = 0; } else { bool isBinds = false; bool consortia = packet.ReadBoolean(); ItemInfo item = player.HideBag.GetItemAt(1); ItemInfo stone = player.HideBag.GetItemAt(2); ItemInfo luck = null; string BeginProperty = ""; if (item != null) { BeginProperty = item.GetPropertyString(); } string AddItem = null; if (item != null && stone != null && item.Template.CanCompose && (item.Template.CategoryID < 10 || item.Template.CategoryID >= 18) && stone.Template.CategoryID == 11 && stone.Template.Property1 == 1) { isBinds = (isBinds || item.IsBinds); isBinds = (isBinds || stone.IsBinds); str.Append(string.Concat(new object[] { item.ItemID, ":", item.TemplateID, ",", stone.ItemID, ":", stone.TemplateID, "," })); bool result = false; byte isSuccess = 1; bool isGod = false; double probability = (double)stone.Template.Property2; luck = player.HideBag.GetItemAt(0); if (luck != null) { if (luck.Template.CategoryID == 11 && luck.Template.Property1 == 3) { isBinds = (isBinds || luck.IsBinds); object obj = AddItem; AddItem = string.Concat(new object[] { obj, "|", luck.ItemID, ":", luck.Template.Name, "|", stone.ItemID, ":", stone.Template.Name }); probability *= (double)(luck.Template.Property2 + 100); str.Append(string.Concat(new object[] { luck.ItemID, ":", luck.TemplateID, "," })); } else { probability *= 100.0; luck = null; } } else { probability *= 100.0; } if (consortia) { ConsortiaInfo info = ConsortiaMgr.FindConsortiaInfo(player.PlayerCharacter.ConsortiaID); using (ConsortiaBussiness csbs = new ConsortiaBussiness()) { ConsortiaEquipControlInfo cecInfo = csbs.GetConsortiaEuqipRiches(player.PlayerCharacter.ConsortiaID, 0, 2); if (info == null) { player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ItemStrengthenHandler.Fail", new object[0])); } else { if (player.PlayerCharacter.Riches < cecInfo.Riches) { player.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("ItemStrengthenHandler.FailbyPermission", new object[0])); result2 = 1; return(result2); } probability *= 1.0 + 0.1 * (double)info.SmithLevel; } } } int rand = ItemComposeHandler.random.Next(10000); switch (stone.Template.Property3) { case 1: if (stone.Template.Property4 > item.AttackCompose) { result = true; if (probability > (double)rand) { isSuccess = 0; item.AttackCompose = stone.Template.Property4; } else { if (!isGod) { } } } break; case 2: if (stone.Template.Property4 > item.DefendCompose) { result = true; if (probability > (double)rand) { isSuccess = 0; item.DefendCompose = stone.Template.Property4; } else { if (!isGod) { } } } break; case 3: if (stone.Template.Property4 > item.AgilityCompose) { result = true; if (probability > (double)rand) { isSuccess = 0; item.AgilityCompose = stone.Template.Property4; } else { if (!isGod) { } } } break; case 4: if (stone.Template.Property4 > item.LuckCompose) { result = true; if (probability > (double)rand) { isSuccess = 0; item.LuckCompose = stone.Template.Property4; } else { if (!isGod) { } } } break; } if (result) { item.IsBinds = isBinds; if (isSuccess != 0) { str.Append("false!"); result = false; if (!isGod) { if (item.Template.Level < 3) { } } } else { str.Append("true!"); result = true; player.OnItemCompose(stone.TemplateID); } //LogMgr.LogItemAdd(player.PlayerCharacter.ID, LogItemType.Compose, BeginProperty, item, AddItem, Convert.ToInt32(result)); stone.Count--; player.UpdateItem(stone); if (luck != null) { luck.Count--; player.UpdateItem(luck); } player.RemoveGold(mustGold); player.HideBag.UpdateItem(item); pkg.WriteByte(isSuccess); player.Out.SendTCP(pkg); player.SaveIntoDatabase(); } else { player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ItemComposeHandler.NoLevel", new object[0])); } } else { player.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("ItemComposeHandler.Fail", new object[0])); } result2 = 0; } } return(result2); }
public int HandlePacket(GameClient client, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); StringBuilder str = new StringBuilder(); int mustGold = 40000; bool _moveHole = packet.ReadBoolean(); bool _moveFivSixHole = packet.ReadBoolean(); ItemInfo transferBefore = client.Player.StoreBag2.GetItemAt(0); ItemInfo transferAfter = client.Player.StoreBag2.GetItemAt(1); //未开始 if (transferBefore != null && transferAfter != null && transferBefore.Template.CategoryID == transferAfter.Template.CategoryID && //transferBefore.Template.CategoryID < 10 && transferAfter.Count == 1 && transferBefore.Count == 1 && transferBefore.IsValidItem() && transferAfter.IsValidItem()) { if (client.Player.PlayerCharacter.Gold < mustGold) { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("itemtransferhandler.nogold")); return(1); } client.Player.RemoveGold(mustGold); if (transferBefore.Template.CategoryID == 7 || transferAfter.Template.CategoryID == 7) { ItemTemplateInfo newTemp0 = null; ItemTemplateInfo newTemp1 = null; ItemInfo newItem0 = null; ItemInfo newItem1 = null; int _temID0 = transferBefore.TemplateID; int _temID1 = transferAfter.TemplateID; GetWeaponID(ref _temID0, ref _temID1); newTemp0 = Bussiness.Managers.ItemMgr.FindItemTemplate(_temID0); newTemp1 = Bussiness.Managers.ItemMgr.FindItemTemplate(_temID1); if (newTemp0 != null) { newItem0 = ItemInfo.CreateWeapon(newTemp0, transferBefore, (int)ItemAddType.Strengthen); } transferBefore = newItem0; if (newTemp1 != null) { newItem1 = ItemInfo.CreateWeapon(newTemp1, transferAfter, (int)ItemAddType.Strengthen); } transferAfter = newItem1; } StrengthenMgr.InheritTransferProperty(ref transferBefore, ref transferAfter, _moveHole, _moveFivSixHole); client.Player.StoreBag2.ClearBag(); client.Player.StoreBag2.AddItemTo(transferBefore, 0); client.Player.StoreBag2.AddItemTo(transferAfter, 1); client.Player.SaveIntoDatabase(); pkg.WriteByte(0); client.Out.SendTCP(pkg); } else { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("itemtransferhandler.nocondition")); } return(0); }
//0友好,1黑名单 public int HandlePacket(GameClient client, GSPacketIn packet) { GSPacketIn pkg = packet.Clone(); pkg.ClearContext(); string nickName = packet.ReadString(); int relation = packet.ReadInt(); if (relation < 0 || relation > 1) { return(1); } using (PlayerBussiness db = new PlayerBussiness()) { PlayerInfo user = null; GamePlayer player = Managers.WorldMgr.GetClientByPlayerNickName(nickName); if (player != null) { user = player.PlayerCharacter; } else { user = db.GetUserSingleByNickName(nickName); } if (!string.IsNullOrEmpty(nickName) && user != null) { if (!client.Player.Friends.ContainsKey(user.ID) || client.Player.Friends[user.ID] != relation) { FriendInfo friend = new FriendInfo(); friend.FriendID = user.ID; friend.IsExist = true; friend.Remark = ""; friend.UserID = client.Player.PlayerCharacter.ID; friend.Relation = relation; if (db.AddFriends(friend)) { client.Player.FriendsAdd(user.ID, relation); pkg.WriteInt(user.ID); pkg.WriteString(user.NickName); pkg.WriteBoolean(user.Sex); pkg.WriteString(user.Style); pkg.WriteString(user.Colors); pkg.WriteString(user.Skin); pkg.WriteInt(user.State == 1 ? 1 : 0); pkg.WriteInt(user.Grade); pkg.WriteInt(user.Hide); pkg.WriteString(user.ConsortiaName); pkg.WriteInt(user.Total); pkg.WriteInt(user.Escape); pkg.WriteInt(user.Win); pkg.WriteInt(user.Offer); pkg.WriteInt(user.Repute); pkg.WriteInt(relation); pkg.WriteString(user.UserName); pkg.WriteInt(user.Nimbus); pkg.WriteInt(user.FightPower); pkg.WriteInt(500); pkg.WriteString("Honor"); if (relation != 1 && user.State != 0) { GSPacketIn response = new GSPacketIn((byte)ePackageType.FRIEND_RESPONSE, client.Player.PlayerCharacter.ID); response.WriteInt(user.ID); response.WriteString(client.Player.PlayerCharacter.NickName); if (player != null) { player.Out.SendTCP(response); } else { GameServer.Instance.LoginServer.SendPacket(response); } } client.Out.SendTCP(pkg); } } else { client.Out.SendMessage(eMessageType.Normal, LanguageMgr.GetTranslation("FriendAddHandler.Falied")); } } else { client.Out.SendMessage(eMessageType.ERROR, LanguageMgr.GetTranslation("FriendAddHandler.Success")); } } return(0); }