Beispiel #1
0
        public void Send(OutBlob stream)
        {
            // don't write the packet if no indicies have been passed.
            if (!_indicies.Any())
            {
                return;
            }

            stream.BeginPacket(Id);

            stream.Write16((short)_interf.Id);

            foreach (var i in _indicies)
            {
                // write index
                if (i < 128)
                {
                    stream.Write((byte)i);
                }
                else
                {
                    stream.Write16((short)i);
                }

                var item = _container.Provider[i];
                // write id
                stream.Write16((short)item.Id.ItemId);

                // write size as byte-int32 smart
                stream.WriteByteInt32Smart(item.Amount);
            }

            stream.EndPacket();
        }
        public void Send(OutBlob stream)
        {
            stream.BeginPacket(Id);

            stream.Write16((short)_id);

            // find upper bound in inventory
            var upperBoundIdx = 0;

            for (var i = 0; i < _container.Provider.Count; i++)
            {
                if (_container.Provider[i].IsEmpty())
                {
                    continue;
                }

                upperBoundIdx = i;
            }

            // write payload
            upperBoundIdx += 1;
            stream.Write16((short)upperBoundIdx);

            for (var i = 0; i < upperBoundIdx; i++)
            {
                var item = _container.Provider[i];
                if (item.IsEmpty())
                {
                    stream.Write(0);   // amnt
                    stream.Write16(0); // id
                    continue;
                }

                // write amount. If amount is > 255, write it as an int32
                stream.WriteByteInt32Smart(item.Amount);

                // write id
                stream.Write16((short)item.Id.ItemId);
            }

            stream.EndPacket();
        }