Ejemplo n.º 1
0
        public void Heal(int hp, int mp)
        {
            var hp2Heal = Hp + hp;
            var mp2Heal = Mp + mp;

            if (hp2Heal >= MaxHp)
            {
                hp2Heal = MaxHp;
            }
            if (mp2Heal >= MaxMp)
            {
                mp2Heal = MaxMp;
            }

            if (!IsHpLock)
            {
                Hp = hp2Heal;
            }
            if (mp2Heal >= 0)
            {
                Mp = mp2Heal;
            }

            Map.BroadcastMessage(PacketCreator.HealMonster(ObjectId, hp));
        }
Ejemplo n.º 2
0
        protected override void OnClientAccepted(Socket client)
        {
            MapleClient mc = new MapleClient(client, this, m_processor);

            mc.SendRaw(PacketCreator.Handshake());
            MainForm.Instance.Log("[Login] Accepted client {0}", mc.Label);
        }
Ejemplo n.º 3
0
        public async void handlePacket(PacketReader reader, Client client)
        {
            string username = reader.ReadCommonString();
            string pass     = reader.ReadCommonString();
            var    User     = await Database.DatabaseManager.Instance.GetUser(username, pass);

            if (User != null)
            {
                // UPON Sucess - 1
                if (client.CheckForLogin(User.name))
                {
                    client.Announce(PacketCreator.LoginRespose(1)); //Announce to the client to login
                    client.Announce(PacketCreator.SendAllAvilableUsers(client.NickName));
                    foreach (var c in ClientFactory.Instance.GetAllClients().Where(x => x != client))
                    {
                        c.Announce(PacketCreator.SendUserUpdate(client.NickName, 1));
                    }
                }
                else
                {
                    client.Announce(PacketCreator.LoginRespose(2));
                }
            }
            else
            {
                // UPON Fail - 0
                client.Announce(PacketCreator.LoginRespose(0));
            }
        }
Ejemplo n.º 4
0
 public static OutPacket GetCharInfo(MapleCharacter chr)
 {
     using (var packet = new OutPacket(SendOpcodes.WarpToMap))
     {
         packet.WriteInt(chr.Client.ChannelId);
         packet.WriteByte(0x00);
         packet.WriteByte(0x01);
         packet.WriteByte(0x01);
         packet.WriteShort(0);
         packet.WriteInt((int)(Randomizer.NextDouble() * 10));
         packet.WriteLong(DateUtiliy.GetFileTimestamp(DateTime.Now.GetTimeMilliseconds()));
         packet.WriteLong(-1);
         packet.WriteByte(0x00);
         LoginPacket.AddCharStats(packet, chr);
         packet.WriteByte((byte)chr.Buddies.Capacity);
         PacketCreator.AddInventoryInfo(packet, chr);
         PacketCreator.AddSkillRecord(packet, chr);
         PacketCreator.AddQuestRecord(packet, chr);
         PacketCreator.AddRingInfo(packet, chr);
         PacketCreator.AddTeleportRockRecord(packet, chr);
         packet.WriteShort(0);
         packet.WriteLong(0);
         packet.WriteByte(0x00);
         packet.WriteInt(0);
         packet.WriteLong(DateUtiliy.GetFileTimestamp(DateTime.Now.GetTimeMilliseconds()));
         return(packet);
     }
 }
Ejemplo n.º 5
0
        public void ApplyMonsterBuff(MonsterStatus status, int x, int skillId, int duration, MobSkill skill)
        {
            var timerManager = TimerManager.Instance;

            var applyPacket = PacketCreator.ApplyMonsterStatus(ObjectId,
                                                               new Dictionary <MonsterStatus, int> {
                { status, x }
            }, skillId, true, 0, skill);

            Map.BroadcastMessage(applyPacket, Position);
            if (GetController() != null && !GetController().VisibleMapObjects.Contains(this))
            {
                GetController().Client.Send(applyPacket);
            }

            timerManager.RunOnceTask(() =>
            {
                if (IsAlive)
                {
                    var packet = PacketCreator.CancelMonsterStatus(ObjectId,
                                                                   new Dictionary <MonsterStatus, int> {
                        { status, x }
                    });
                    Map.BroadcastMessage(packet, Position);
                    if (GetController() != null && !GetController().VisibleMapObjects.Contains(this))
                    {
                        GetController().Client.Send(packet);
                    }
                    MonsterBuffs.Remove(status);
                }
            }, duration);
            MonsterBuffs.Add(status);
        }
Ejemplo n.º 6
0
 private void LoginClick()
 {
     if (Password != null && UserName != null)
     {
         Client.Instance.SendPacket(PacketCreator.Login(UserName, Password));
     }
 }
Ejemplo n.º 7
0
        internal void SendMaximumStreamReachedError()
        {
            var packet = PacketCreator.CreateConnectionClosePacket(ErrorCode.STREAM_LIMIT_ERROR,
                                                                   "Maximum number of streams reached.");

            Send(packet);
        }
Ejemplo n.º 8
0
        /// <summary>
        ///     Used to send protocol packets to the peer.
        /// </summary>
        /// <param name="packet"></param>
        /// <returns></returns>
        internal bool Send(Packet packet)
        {
            // Encode the packet
            var data = packet.Encode();

            // Increment the connection transfer rate
            IncrementRate(data.Length);

            // If the maximum transfer rate is reached, send FLOW_CONTROL_ERROR
            if (MaximumReached())
            {
                packet = PacketCreator.CreateConnectionClosePacket(ErrorCode.FLOW_CONTROL_ERROR,
                                                                   "Maximum data transfer reached.");

                TerminateConnection();
            }

            // Ignore empty packets
            if (data.Length <= 0)
            {
                return(true);
            }

            var result = _pwt.SendPacket(packet);

            return(result);
        }
Ejemplo n.º 9
0
 private void RegisterClick()
 {
     if (Password != null && UserName != null)
     {
         Client.Instance.SendPacket(PacketCreator.Register(UserName, UserName, Password));
     }
 }
Ejemplo n.º 10
0
        /// <summary>
        /// Used to send protocol packets to the peer.
        /// </summary>
        /// <param name="packet"></param>
        /// <returns></returns>
        internal bool Send(Packet packet)
        {
            // Encode the packet
            byte[] data = packet.Encode();

            // Increment the connection transfer rate
            IncrementRate(data.Length);

            // If the maximum transfer rate is reached, send FLOW_CONTROL_ERROR
            if (MaximumReached())
            {
                packet = PacketCreator.CreateConnectionClosePacket(Infrastructure.ErrorCode.FLOW_CONTROL_ERROR, 0x00, ErrorConstants.MaxDataTransfer);

                TerminateConnection();
            }

            // Ignore empty packets
            if (data == null || data.Length <= 0)
            {
                return(true);
            }

            bool result = _pwt.SendPacket(packet);

            return(result);
        }
Ejemplo n.º 11
0
        public void ReCharge(MapleClient c, byte slot)
        {
            var ii = MapleItemInformationProvider.Instance;

            IMapleItem item;

            if (!c.Player.Inventorys[MapleInventoryType.Use.Value].Inventory.TryGetValue(slot, out item) || (!ii.IsThrowingStar(item.ItemId) && !ii.IsBullet(item.ItemId)))
            {
                if (item != null && (!ii.IsThrowingStar(item.ItemId) || !ii.IsBullet(item.ItemId)))
                {
                    Console.WriteLine($"{c.Player.Name} is trying to recharge {item.ItemId}");
                }
                return;
            }
            var slotMax = ii.GetSlotMax(c, item.ItemId);

            if (item.Quantity < 0)
            {
                Console.WriteLine($"{c.Player.Name} is trying to recharge {item.ItemId} with quantity {item.Quantity}");
            }
            if (item.Quantity < slotMax)
            {
                var price = (int)Math.Round(ii.GetPrice(item.ItemId) * (slotMax - item.Quantity));
                if (c.Player.Meso.Value >= price)
                {
                    item.Quantity = slotMax;
                    c.Send(PacketCreator.UpdateInventorySlot(MapleInventoryType.Use, (Item)item));
                    c.Player.GainMeso(-price, false, true, false);
                    c.Send(PacketCreator.ConfirmShopTransaction(0x8));
                }
            }
        }
Ejemplo n.º 12
0
 public void Complete(MapleCharacter c, int npc, int selection, bool force)
 {
     try
     {
         var arg1          = m_autoPreComplete || CheckNpcOnMap(c, npc);
         var canbeComplete = CanComplete(c, npc);
         if (force || (arg1 && canbeComplete))
         {
             foreach (var action in CompleteActs)
             {
                 if (!action.Check(c))
                 {
                 }
             }
             foreach (var action in CompleteActs)
             {
                 action.Run(c, selection);
             }
             var oldStatus = c.GetQuest(this);
             var newStatus = new MapleQuestStatus(this, MapleQuestStatusType.Completed, npc);
             newStatus.Forfeited = oldStatus.Forfeited;
             c.UpdateQuest(newStatus);
         }
         else
         {
             c.DropMessage(PacketCreator.ServerMessageType.Popup, "你遇到任务错误.请稍后片刻。或请联系系统管理员");
         }
     }
     catch
     {
         c.Client.Send(PacketCreator.ServerNotice(PacketCreator.ServerMessageType.Popup, "系统发生错误.请联系系统管理员解决"));
     }
 }
Ejemplo n.º 13
0
 public void Start(MapleCharacter c, int npc, bool force)
 {
     try
     {
         var arg1 = force && CheckNpcOnMap(c, npc);
         var arg2 = m_autoStart || CheckNpcOnMap(c, npc);
         var arg3 = CanStart(c, npc);
         if (arg1 || (arg2 && arg3))
         {
             foreach (var action in StartActs)
             {
                 action.Run(c, null);
             }
             var oldStatus = c.GetQuest(this);
             var newStatus = new MapleQuestStatus(this, MapleQuestStatusType.Started, npc);
             newStatus.CompletionTime = oldStatus.CompletionTime;
             newStatus.Forfeited      = oldStatus.Forfeited;
             c.UpdateQuest(newStatus);
         }
     }
     catch
     {
         c.Client.Send(PacketCreator.ServerNotice(PacketCreator.ServerMessageType.Popup, "发生错误,请截图后联系管理员."));
     }
 }
Ejemplo n.º 14
0
        static void Main(string[] args)
        {
            byte[]          bytes    = new VariableInteger(12345);
            VariableInteger integer  = bytes;
            UInt64          uinteger = integer;
            int             size     = VariableInteger.Size(bytes[0]);

            InitialPacket packet = new InitialPacket()
            {
                Version                 = 16,
                SourceConnectionId      = 124,
                DestinationConnectionId = 0,
                PacketNumber            = 777521,
                TokenLength             = 0
            };

            packet = new PacketCreator().CreateInitialPacket(124, 0);

            ConnectionCloseFrame frame     = new ConnectionCloseFrame(ErrorCode.SERVER_BUSY, "The server is too busy to process your request.");
            MaxStreamIdFrame     msidframe = new MaxStreamIdFrame(144123, StreamType.ClientUnidirectional);

            //packet.AttachFrame(frame);
            packet.AttachFrame(msidframe);

            byte[] data = packet.Encode();
            string b64  = ToBase64(data);

            byte[] shpdata1 = new byte[] { 1, 1, 2, 3, 5, 8 };
            byte[] shpdata2 = new byte[] { 13, 21, 34, 55, 89, 144 };

            ShortHeaderPacket shp = new ShortHeaderPacket();

            shp.DestinationConnectionId = 124;
            shp.PacketNumber            = 2;

            shp.AttachFrame(new StreamFrame()
            {
                StreamId = 1, Length = new VariableInteger((UInt64)shpdata2.Length), StreamData = shpdata2, Offset = 6, EndOfStream = true
            });
            shp.AttachFrame(new StreamFrame()
            {
                StreamId = 1, Length = new VariableInteger((UInt64)shpdata1.Length), StreamData = shpdata1, Offset = 0
            });

            string shpb64 = ToBase64(shp.Encode());

            packet.Decode(data);

            byte[] ccfData = frame.Encode();
            frame.Decode(new ByteArray(ccfData));

            byte[]   streamIdData = new StreamId(123, StreamType.ClientUnidirectional);
            StreamId streamId     = streamIdData;

            QuicListener listener = new QuicListener(11000);

            listener.OnClientConnected += Listener_OnClientConnected;
            listener.Start();
        }
Ejemplo n.º 15
0
 public void SendMessage(Client Exclude, string msg)
 {
     msg = Exclude.NickName + " : " + msg;
     foreach (var paric in Participents.Where(x => x != Exclude))
     {
         paric.Announce(PacketCreator.SendMessageToChatRoom(msg));
     }
 }
Ejemplo n.º 16
0
 public void DisplyAllParticipends(Client Exclude)
 {
     foreach (var paric in Participents.Where(x => x != Exclude))
     {
         // 1 is to add a member, 2 is to remove a member
         Exclude.Announce(PacketCreator.SendChatRoomMember(1, paric.NickName));
     }
 }
Ejemplo n.º 17
0
    public override void Start()
    {
        var mml = "MML@l32o2e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&et132r1r1r1r4v15b8b8>d8c+c16.c<b8.&br1.>d8c+c16.c<b8.&br1l8.bbb8>c+c+c+8d+64e32.l16rdr<brb8r8brbrbr>c+64d32.rc-rc+64d32.r<brbrbr8.br>c+64d32.r<brbr>c+64d32.rc-rc+64d32.r<brbr>c+64d32.rc-rc+64d32.r<brbrbr8.br>c+64d32.r<b8.rbr>c+64d32.r<brbrbr>c+64d32.rc-rc+64d32.rc-rc+64d32.r<brbrbr>c+64l32.dr8.c+64dr8.c+64dl16rc-rc+64d32.r<brl8.bbb8>c+c+c+8d+64e32.l16rdr<b4r8brbrbr>c+64d32.r<brbrbrbrbrbrbr>d+64e32.rdr<b4r8brbrbr>c+64d32.rc-rc+64d32.r<brbrbrbrbr>d+64e32.rdr<b4r8brbrbrbrbrbr>c+64d32.r<brbrbrbr>d+64e32.rdr<b8&b32r.>drc-rdrd+rl8<b.b.b>c+4<bb>c+64d.&d32.rc-4f+f+f+f+4re4reed+4rl32c-f+b8.<brbrl16brbrb4l8rb32>f+32b.r<bb>c+64d.&d32.rc-4f+f+f+f+4re4reef+4rl32f+>c+f+8&f+r<f+rf+rl16f+rf+rf+4l8rf+32>c+32f+.r<f+f+f+f+f+f+f+f+f+f+l4f+f+f+f+l32f+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+fed+dc+c<ba+ag+gf+8r2.b8b8>d8c+c16.c<b8.&bb8.r1r4r16>d8c+c16.c<b8.&bl16br4rbr8.br8.br4rb8b8>d8c+32c.l32c<b8.&bb4r1r4>d8c+c16.c<b8.&bl16br4rbr8.br8.brl8b.b.b>dl32c+c16.cc-8.rc+d1&d8.&dl16<brbrl32>c+d8&dr16c+d8&dl16r<br4rbr8.br8.br4rbrb8>d8l32c+cr16c<b8.&b>c+d1&d8.&dl16<brbrl32>c+d8.&dc+d8.&dl16<br4rbr8.br8.brl8.>eee8f+f+f+8r4b1;";

        WorldManager.Instance.Broadcast(
            PacketCreator.PlayEffect(NPC, InstrumentType.MaleVoice1, PlayingQuality.VeryGood, MabiZip.Compress(mml)),
            SendTargets.Range, NPC);
    }
Ejemplo n.º 18
0
    public override void Start()
    {
        var mml = "MML@a1t132v15l8o1brbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbr>ererf+rf+r<brbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbr>ererf+rf+r<brbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbr>ererf+rf+rgrgrgrgrarararar<brbrbrbrbrbrbrbr>grgrgrgrararararf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+r1.r4.<brbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbr>ererf+rf+r<brbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbro4b.b.b>c+.c+.c+r4o2b1;";

        WorldManager.Instance.Broadcast(
            PacketCreator.PlayEffect(NPC, InstrumentType.Ukulele, PlayingQuality.VeryGood, MabiZip.Compress(mml)),
            SendTargets.Range, NPC);
    }
Ejemplo n.º 19
0
        public async void handlePacket(PacketReader reader, Client client)
        {
            string name = reader.ReadCommonString();
            string pass = reader.ReadCommonString();
            bool   succ = await Database.DatabaseManager.Instance.RegisterUser(name, pass);

            client.Announce(PacketCreator.SendRegisterResponse(succ));
        }
Ejemplo n.º 20
0
        public QuicListener(int port)
        {
            _started = false;
            _port    = port;

            _unpacker      = new Unpacker();
            _packetCreator = new PacketCreator();
        }
Ejemplo n.º 21
0
    public override void Start()
    {
        var mml = "MML@a1t132v14l8<c-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d>e.e.ef+.f+.f+<<c-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d>e.e.ef+.f+.f+<<c-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>dl8.>eee8f+f+f+8v12<ggc-g4rc+<aaa>a8a8bbbbr4bbl8b>aabbl8.<ggddd4eee8l16ra8re8a8f+8r<f+8r>c+8rf+8r<f+8r8>c+8rc+8r<f+8rf+8rl8>c+f+n42f+f+f+n42f+f+f+c+f+f+c+f+c+f+<f+l32f+rf+r>f+rf+rc+rc+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+rf+fed+dc+c<ba+ag+gl8f+r1.v14c-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d>e.e.ef+.f+.f+<<c-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>d<c-.b16rbba+adc-.b16rb4bb>dr1r4b1;";

        WorldManager.Instance.Broadcast(
            PacketCreator.PlayEffect(NPC, InstrumentType.Mandolin, PlayingQuality.VeryGood, MabiZip.Compress(mml)),
            SendTargets.Range, NPC);
    }
Ejemplo n.º 22
0
 public void StartNewChat()
 {
     if (SelectedUser != null)
     {
         Client.Instance.SendPacket(PacketCreator.RequestChat(SelectedUser.Name));
         System.Windows.Forms.MessageBox.Show("Chat request was sended");
     }
 }
Ejemplo n.º 23
0
 public DataPacket(int num, TeraPacketWithData packet)
 {
     this.packet = packet;
     this.num    = num;
     this.type   = packet.type;
     this.size   = packet.size;
     this.time   = packet.time;
     this.opCode = PacketCreator.getOpCode(packet.opCode);
 }
Ejemplo n.º 24
0
        public static void saveStructure(object opCode, PacketStructure packetStructure)
        {
            string version  = PacketCreator.getCurrentVersion().ToString();
            string fileName = opCode.ToString() + ".json";
            string file     = Path.Combine(version, fileName);

            packetStructures[(ushort)opCode] = packetStructure;
            assets.serialize(file, packetStructure);
        }
Ejemplo n.º 25
0
        public static bool SendAuth(AuthPacket packet)
        {
            if (_server.AuthServer != null)
            {
                _server.AuthServer.Send(packet);
                return(true);
            }
            else
            {
                switch (packet.ID)
                {
                case AuthPacketEnum.SERVER_RELEASE_CHAT:
                {
                    bool   Type        = packet.Message.IsGM;
                    string GetNickName = packet.Message.GetNickName;
                    string GetMessage  = packet.Message.GetMessage;
                    if (Type)
                    {
                        PacketCreator.ChatText(GetNickName, GetMessage, Type);
                    }
                }
                break;

                case AuthPacketEnum.SERVER_RELEASE_TICKET:
                {
                    string GetNickName = packet.Message.GetNickName;
                    string GetMessage  = packet.Message.GetMessage;
                    using (var result = new PangyaBinaryWriter())
                    {
                        result.Write(new byte[] { 0xC9, 0x00 });
                        result.WritePStr(GetNickName);
                        result.WritePStr(GetMessage);
                        _server.SendToAll(result.GetBytes());
                    }
                }
                break;

                case AuthPacketEnum.SERVER_RELEASE_BOXRANDOM:
                {
                    string GetMessage = packet.Message.GetMessage;
                    _server.Notice(GetMessage);
                }
                break;

                case AuthPacketEnum.SERVER_RELEASE_NOTICE:
                {
                    string GetNickname = packet.Message.GetNickname;
                    string Messages    = packet.Message.mensagem;

                    PacketCreator.ShowGMNotice(Messages, GetNickname);
                }
                break;
                }
                return(false);
            }
        }
Ejemplo n.º 26
0
        private void RecivePacketFromClient(IAsyncResult ar)
        {
            lock (locker)
            {
                Socket session = (Socket)ar.AsyncState;
                Client client  = ClientFactory.Instance.GetClientBySession(session);
                if (client == null)
                {
                    return;
                }
                int recived = 0;
                try
                {
                    recived = session.EndReceive(ar);
                }
                catch (Exception e)
                {
                    // Client has disconnected
                    if (client == null)
                    {
                        Console.WriteLine($"Error occur {e.Message}");
                    }
                    else
                    {
                        ClientFactory.Instance.RemoveClient(client);
                        session.Shutdown(SocketShutdown.Both);

                        Console.WriteLine(session.RemoteEndPoint + " Has been disconnected");
                        client.Logout();
                        if (!string.IsNullOrEmpty(client.NickName))
                        {
                            foreach (var c in ClientFactory.Instance.GetAllClients().Where(x => x != client))
                            {
                                c.Announce(PacketCreator.SendUserUpdate(client.NickName, 2));
                            }
                        }
                        session = null;
                    }
                    return;
                }
                byte[]        packet  = GetBytes(recived);
                PacketReader  reader  = new PacketReader(packet);
                short         header  = reader.ReadShort();
                PacketHandler handler = PacketProccessor.GetHandler(header);
                Console.WriteLine("Packet ID is : " + header);
                if (handler != null)
                {
                    handler.handlePacket(reader, client);
                }
                else
                {
                    Console.WriteLine($"Error, No Such Header was found, Header : {header}");
                }
                BeginRecive(session);
            }
        }
Ejemplo n.º 27
0
        public void IncreaseTirednessJob()
        {
            Tiredness++;
            m_mOwner.Map.BroadcastMessage(PacketCreator.UpdateMount(m_mOwner.Id, this, false));

            if (Tiredness > 100)
            {
                m_mOwner.DispelSkill(m_mOwner.JobType * 20000000 + 1004);
            }
        }
Ejemplo n.º 28
0
        void HandleServerData(Packet packet)
        {
            #region Handle Lobby Selected
            ServerInfo = (ServerProcess)packet.Read(new ServerProcess());

            SendResponse(PacketCreator.ShowConnectionServer(GetUID, USER_STATUS.IS_ONLINE, ServerInfo));

            SendResponse(PacketCreator.ShowListFriends(Server.Players.Model));
            #endregion
        }
Ejemplo n.º 29
0
 private static Task <User> SendDisconnecToAllClients(Client client)
 {
     if (!string.IsNullOrEmpty(client.NickName))
     {
         foreach (var c in ClientFactory.Instance.GetAllClients().Where(x => x != client))
         {
             c.Announce(PacketCreator.SendUserUpdate(client.NickName, 2));
         }
     }
     return(null);
 }
Ejemplo n.º 30
0
        public void RemoveAll(int id, MapleClient cl)
        {
            var possessed =
                cl.Player.Inventorys[MapleItemInformationProvider.Instance.GetInventoryType(id).Value].CountById(id);

            if (possessed > 0)
            {
                MapleInventoryManipulator.RemoveById(cl, MapleItemInformationProvider.Instance.GetInventoryType(id), id,
                                                     possessed, true, false);
                cl.Send(PacketCreator.GetShowItemGain(id, (short)-possessed, true));
            }
        }