Exemple #1
0
    /// <summary>
    /// 封装数据包
    /// </summary>
    /// <param name="buffer"></param>
    private byte[] MakeDataPackage(byte[] buffer)
    {
        //1.压缩
        bool isCompress = buffer.Length > m_CompressLen;

        if (isCompress)
        {
            buffer = ZlibHelper.CompressBytes(buffer);
        }

        //2.异或
        buffer = SecurityUtil.Xor(buffer);

        //3.计算CRC
        ushort crc = Crc16.CalculateCrc16(buffer);

        byte[] retData;
        using (MMO_MemoryStream ms = new MMO_MemoryStream())
        {
            ms.WriteUShort((ushort)(buffer.Length + 3));
            ms.WriteBool(isCompress);
            ms.WriteUShort(crc);
            ms.Write(buffer, 0, buffer.Length);
            retData = ms.ToArray();
        }
        return(retData);
    }
Exemple #2
0
        /// <summary>
        /// 封装数据包
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        private byte[] MakeData(byte[] data)
        {
            byte[] retBuffer = null;

            //1.长度压缩判断
            bool isCompress = data.Length > m_CompressLen ? true : false;

            if (isCompress)
            {
                //2.进行压缩
                data = ZlibHelper.CompressBytes(data);
            }

            //3.异或
            data = SecurityUtil.Xor(data);
            //4.异或因子 Crc 校验码
            ushort crc = Crc16.CalculateCrc16(data);

            Console.WriteLine("crc=" + crc);

            //写入
            using (MMO_MemoryStream ms = new MMO_MemoryStream())
            {
                ms.WriteUShort((ushort)(data.Length + 3)); //数据长度
                ms.WriteBool(isCompress);                  //压缩判断
                ms.WriteUShort(crc);                       //异或
                ms.Write(data, 0, data.Length);            //数据写入
                retBuffer = ms.ToArray();
            }
            return(retBuffer);
        }
Exemple #3
0
    /// <summary>
    /// 封装数据包
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    private byte[] MakeData(byte[] data)
    {
        byte[] retBuffer = null;
        //0.压缩标志 //数据包长度大于设定长度则压缩
        bool isCompress = data.Length > m_CompressLength ? true : false;

        if (isCompress)
        {
            data = ZlibHelper.CompressBytes(data);
        }

        //1.异或
        data = SecurityUtil.Xor(data);

        //2.CRC校验
        ushort crc = Crc16.CalculateCrc16(data);

        using (MMO_MemoryStream ms = new MMO_MemoryStream())
        {
            //3.写入包长度
            //往ms中写入数据(包长度),数据的长度+压缩标志(1byte)+CRC校验(UShort(2byte))
            ms.WriteUShort((ushort)(data.Length + 3));
            //往ms中写入数据(压缩标识)
            ms.WriteBool(isCompress);
            ms.WriteUShort(crc);
            ms.Write(data, 0, data.Length);

            retBuffer = ms.ToArray();
        }

        return(retBuffer);
    }
Exemple #4
0
    /// <summary>
    /// 封装数据包
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    private byte[] MakeData(byte[] data)
    {
        byte[] retBuffer = null;

        //1.如果数据包的长度 大于了m_CompressLen 则进行压缩
        bool isCompress = data.Length > m_CompressLen ? true : false;

        if (isCompress)
        {
            data = ZlibHelper.CompressBytes(data);
        }

        //2.异或
        data = SecurityUtil.Xor(data);

        //3.Crc校验 压缩后的
        ushort crc = Crc16.CalculateCrc16(data);

        using (MMO_MemoryStream ms = new MMO_MemoryStream())
        {
            ms.WriteUShort((ushort)(data.Length + 3));
            ms.WriteBool(isCompress);
            ms.WriteUShort(crc);
            ms.Write(data, 0, data.Length);

            retBuffer = ms.ToArray();
        }
        return(retBuffer);
    }
Exemple #5
0
    /// <summary>
    /// 沾包,加密数据包
    /// </summary>
    /// <param name="data"></param>
    /// <returns></returns>
    public byte[] MakeData(byte[] data)
    {
        byte[] retBuffer = null;
        //1、是否压缩
        bool IsComPressLen = data.Length > mComPressLen ? true : false;

        if (IsComPressLen)
        {
            //压缩
            data = ZlibHelper.CompressBytes(data);
        }
        //2、异或
        data = SecurityUtil.Xor(data);
        //3、crc校验
        ushort crc = CRC16.CalculateCrc16(data);

        using (MMO_MemoryStream ms = new MMO_MemoryStream())
        {
            //1、包头(+3==Crc(2字节)+IsComPressLen(2字节))
            ms.WriteUShort((ushort)(data.Length + 3));
            ms.WriteBool(IsComPressLen);
            ms.WriteUShort(crc);
            ms.Write(data, 0, data.Length);
            retBuffer = ms.ToArray();
        }
        return(retBuffer);
    }
Exemple #6
0
        /// <summary>
        /// 创建包数据:包头+包体
        /// </summary>
        /// <param name="buffer"></param>
        /// <returns></returns>
        private byte[] MakeData(byte[] buffer)
        {
            //1.压缩
            bool isCompress = buffer.Length > m_CompressLen ? true : false;

            if (isCompress)
            {
                buffer = ZlibHelper.CompressBytes(buffer);
            }
            //2.CRC1校验
            ushort crc = Crc16.CalculateCrc16(buffer);

            Console.WriteLine(crc);
            //3.异或
            buffer = SecurityUtil.Xor(buffer);

            using (MMO_MemoryStream ms = new MMO_MemoryStream())
            {
                //包头长度 压缩标识1+CRC16校验+buffer的长度
                ms.WriteUShort((ushort)(buffer.Length + 3));
                ms.WriteBool(isCompress);
                ms.WriteUShort(crc);
                ms.Write(buffer, 0, buffer.Length);
                return(ms.ToArray());
            }
        }
Exemple #7
0
        /// <summary>
        /// 封装数据包
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        private byte[] MakeData(byte[] data)
        {
            byte[] retBuffer = null;

            //1.如果数据包的长度 大于了m_CompressLen 则进行压缩
            bool isCompress = data.Length > m_CompressLen ? true : false;

            if (isCompress)
            {
                data = ZlibHelper.CompressBytes(data);
            }

            //2.异或
            data = SecurityUtil.Xor(data);

            //3.Crc校验 压缩后的
            ushort crc = Crc16.CalculateCrc16(data);

            Console.WriteLine("crc=" + crc);
            MMO_MemoryStream ms = this.m_SocketSendMS;

            ms.SetLength(0);

            ms.WriteUShort((ushort)(data.Length + 3));
            ms.WriteBool(isCompress);
            ms.WriteUShort(crc);
            ms.Write(data, 0, data.Length);

            retBuffer = ms.ToArray();
            return(retBuffer);
        }
Exemple #8
0
        // 封装数据包
        byte[] MakeData(byte[] data)
        {
            byte[] retBuffer = null;
            // 1.1 压缩
            bool isCompress = data.Length > m_CompressLen;

            if (isCompress)
            {
                data = ZlibHelper.CompressBytes(data);
            }
            // 2 异或加密
            data = SecurityUtil.Xor(data);
            // 3 加验证
            ushort crc = Crc16.CalculateCrc16(data);

            using (MMO_MemoryStream ms = new MMO_MemoryStream())
            {
                ms.WriteUShort((ushort)(data.Length + 3));
                ms.WriteBool(isCompress);
                ms.WriteUShort(crc);
                ms.Write(data, 0, data.Length);

                retBuffer = ms.ToArray();
            }

            return(retBuffer);
        }
Exemple #9
0
    public byte[] ToArray(bool isChild = false)
    {
        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
            ms.SetLength(0);
            ms.WriteUShort(ProtoCode);
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
            ms.SetLength(0);
        }

        ms.WriteInt(ConfigCount);
        for (int i = 0; i < ConfigCount; i++)
        {
            var item = ServerConfigList[i];
            ms.WriteUTF8String(item.ConfigCode);
            ms.WriteBool(item.IsOpen);
            ms.WriteUTF8String(item.Param);
        }

        byte[] retBuffer = ms.ToArray();
        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(retBuffer);
    }
Exemple #10
0
 public byte[] ToArray()
 {
     using (MMO_MemoryStream ms = new MMO_MemoryStream())
     {
         ms.WriteUShort(ProtoCode);
         ms.WriteBool(IsSucess);
         if (IsSucess)
         {
             ms.WriteUTF8String(RoleNickName);
             ms.WriteInt(Level);
             ms.WriteInt(RoleId);
             ms.WriteInt(JobId);
             ms.WriteInt(Money);
             ms.WriteInt(Gold);
             ms.WriteInt(Exp);
             ms.WriteInt(MaxHP);
             ms.WriteInt(CurrentHP);
             ms.WriteInt(MaxMP);
             ms.WriteInt(CurrentMP);
             ms.WriteInt(Attack);
             ms.WriteInt(Defense);
             ms.WriteInt(Hit);
             ms.WriteInt(Dodge);
             ms.WriteInt(Cri);
             ms.WriteInt(Fighting);
             ms.WriteInt(Res);
             ms.WriteInt(LastSceneId);
         }
         else
         {
             ms.WriteInt(MessageId);
         }
         return(ms.ToArray());
     }
 }
    public float  yAngle; //y轴旋转

    public byte[] ToArray(bool isChild = false)
    {
        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
            ms.SetLength(0);
            ms.WriteUShort(ProtoCode);
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
            ms.SetLength(0);
        }

        ms.WriteFloat(x);
        ms.WriteFloat(y);
        ms.WriteFloat(z);
        ms.WriteFloat(yAngle);

        byte[] retBuffer = ms.ToArray();
        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(retBuffer);
    }
Exemple #12
0
    public List <int> ItemNameList; //道具名称



    public byte[] ToArray()
    {
        using (MMO_MemoryStream ms = new MMO_MemoryStream())
        {
            ms.WriteUShort(ProtoCode);
            ms.WriteInt(Count);
            ms.WriteBool(IsSuccess);
            if (IsSuccess)
            {
                ms.WriteUTF8String(SuccMsg);
                ms.WriteUTF8String(SuccCode);
            }
            else
            {
                ms.WriteInt(ErrorCode);
            }
            ms.WriteInt(ItemCount);
            for (int i = 0; i < ItemCount; i++)
            {
                ms.WriteInt(ItemIdList[i]);
                ms.WriteInt(ItemNameList[i]);
            }
            return(ms.ToArray());
        }
    }
Exemple #13
0
    public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false)
    {
        ms.SetLength(0);
        if (!isChild)
        {
            ms.WriteUShort(ProtoCode);
        }

        ms.WriteInt(AttackRoleId);
        ms.WriteInt(SkillId);
        ms.WriteInt(SkillLevel);
        ms.WriteFloat(RolePosX);
        ms.WriteFloat(RolePosY);
        ms.WriteFloat(RolePosZ);
        ms.WriteFloat(RoleYAngle);
        ms.WriteInt(BeAttackCount);
        for (int i = 0; i < BeAttackCount; i++)
        {
            var item = ItemList[i];
            ms.WriteInt(item.BeAttackRoleId);
            ms.WriteInt(item.ReduceHp);
            ms.WriteByte(item.IsCri);
        }

        return(ms.ToArray());
    }
    public byte   IsPutOn;        //是否穿戴

    public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false)
    {
        ms.SetLength(0);
        if (!isChild)
        {
            ms.WriteUShort(ProtoCode);
        }

        ms.WriteInt(EnchantLevel);
        ms.WriteByte(BaseAttr1Type);
        ms.WriteInt(BaseAttr1Value);
        ms.WriteByte(BaseAttr2Type);
        ms.WriteInt(BaseAttr2Value);
        ms.WriteInt(HP);
        ms.WriteInt(MP);
        ms.WriteInt(Attack);
        ms.WriteInt(Defense);
        ms.WriteInt(Hit);
        ms.WriteInt(Dodge);
        ms.WriteInt(Cri);
        ms.WriteInt(Res);
        ms.WriteByte(IsPutOn);

        return(ms.ToArray());
    }
    public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false)
    {
        ms.SetLength(0);
        if (!isChild)
        {
            ms.WriteUShort(ProtoCode);
        }

        ms.WriteInt(GameLevelId);
        ms.WriteByte(Grade);
        ms.WriteByte(Star);
        ms.WriteInt(Exp);
        ms.WriteInt(Gold);
        ms.WriteInt(KillTotalMonsterCount);
        for (int i = 0; i < KillTotalMonsterCount; i++)
        {
            var item = KillMonsterList[i];
            ms.WriteInt(item.MonsterId);
            ms.WriteInt(item.MonsterCount);
        }
        ms.WriteInt(GoodsTotalCount);
        for (int i = 0; i < GoodsTotalCount; i++)
        {
            var item = GetGoodsList[i];
            ms.WriteByte(item.GoodsType);
            ms.WriteInt(item.GoodsId);
            ms.WriteInt(item.GoodsCount);
        }

        return(ms.ToArray());
    }
    public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false)
    {
        ms.SetLength(0);
        if (!isChild)
        {
            ms.WriteUShort(ProtoCode);
        }

        ms.WriteInt(RoleCount);
        for (int i = 0; i < RoleCount; i++)
        {
            var item = ItemList[i];
            ms.WriteInt(item.RoleId);
            ms.WriteUTF8String(item.RoleNickName);
            ms.WriteInt(item.RoleLevel);
            ms.WriteInt(item.RoleMaxHP);
            ms.WriteInt(item.RoleCurrHP);
            ms.WriteInt(item.RoleMaxMP);
            ms.WriteInt(item.RoleCurrMP);
            ms.WriteInt(item.RoleJobId);
            ms.WriteFloat(item.RolePosX);
            ms.WriteFloat(item.RolePosY);
            ms.WriteFloat(item.RolePosZ);
            ms.WriteFloat(item.RoleYAngle);
        }

        return(ms.ToArray());
    }
Exemple #17
0
    public byte[] ToArray(bool isChild = false)
    {
        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
            ms.SetLength(0);
            ms.WriteUShort(ProtoCode);
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
            ms.SetLength(0);
        }

        ms.WriteInt(RoleCount);
        for (int i = 0; i < RoleCount; i++)
        {
            var item = RoleList[i];
            ms.WriteInt(item.RoleId);
            ms.WriteUTF8String(item.RoleNickName);
            ms.WriteByte(item.RoleJob);
            ms.WriteInt(item.RoleLevel);
        }

        byte[] retBuffer = ms.ToArray();
        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(retBuffer);
    }
Exemple #18
0
    public int    SellCount;      //出售数量

    public byte[] ToArray(bool isChild = false)
    {
        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
            ms.SetLength(0);
            ms.WriteUShort(ProtoCode);
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
            ms.SetLength(0);
        }

        ms.WriteInt(roleBackpackId);
        ms.WriteByte(GoodsType);
        ms.WriteInt(GoodsId);
        ms.WriteInt(GoodsServerId);
        ms.WriteInt(SellCount);

        byte[] retBuffer = ms.ToArray();
        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(retBuffer);
    }
Exemple #19
0
    public byte[] ToArray(bool isChild = false)
    {
        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
            ms.SetLength(0);
            ms.WriteUShort(ProtoCode);
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
            ms.SetLength(0);
        }

        ms.WriteInt(TaskCount);
        for (int i = 0; i < TaskCount; i++)
        {
            var item = CurrTaskItemList[i];
            ms.WriteInt(item.Id);
            ms.WriteUTF8String(item.Name);
            ms.WriteInt(item.Status);
            ms.WriteUTF8String(item.Content);
        }

        byte[] retBuffer = ms.ToArray();
        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(retBuffer);
    }
    public byte[] ToArray(bool isChild = false)
    {
        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
            ms.SetLength(0);
            ms.WriteUShort(ProtoCode);
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
            ms.SetLength(0);
        }

        ms.WriteInt(BackpackItemCount);
        for (int i = 0; i < BackpackItemCount; i++)
        {
            var item = ItemList[i];
            ms.WriteInt(item.BackpackItemId);
            ms.WriteByte(item.GoodsType);
            ms.WriteInt(item.GoodsId);
            ms.WriteInt(item.GoodsServerId);
            ms.WriteInt(item.GoodsOverlayCount);
        }

        byte[] retBuffer = ms.ToArray();
        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(retBuffer);
    }
Exemple #21
0
    public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false)
    {
        ms.SetLength(0);
        if (!isChild)
        {
            ms.WriteUShort(ProtoCode);
        }

        ms.WriteInt(RoleType);

        byte[] buff_CurrRole = CurrRole.ToArray(new MMO_MemoryStream(), true);
        ms.WriteInt(buff_CurrRole.Length);
        ms.Write(buff_CurrRole, 0, buff_CurrRole.Length);

        if (RoleList != null)
        {
            int len_RoleList = RoleList.Count;
            ms.WriteInt(len_RoleList);
            for (int i = 0; i < len_RoleList; i++)
            {
                Role_DataProto _Role_DataProto = RoleList[i];
                byte[]         _buff_Curr      = _Role_DataProto.ToArray(new MMO_MemoryStream(), true);
                ms.WriteInt(_buff_Curr.Length);
                ms.Write(_buff_Curr, 0, _buff_Curr.Length);
            }
        }
        else
        {
            ms.WriteInt(0);
        }

        return(ms.ToArray());
    }
 public byte[] ToArray()
 {
     using (MMO_MemoryStream ms = new MMO_MemoryStream())
     {
         ms.WriteUShort(ProtoCode);
         ms.WriteInt(GameLevelId);
         ms.WriteByte(Grade);
         ms.WriteByte(Star);
         ms.WriteInt(Exp);
         ms.WriteInt(Gold);
         ms.WriteInt(KillTotalMonsterCount);
         for (int i = 0; i < KillTotalMonsterCount; i++)
         {
             ms.WriteInt(KillMonsterList[i].MonsterId);
             ms.WriteInt(KillMonsterList[i].MonsterCount);
         }
         ms.WriteInt(GoodsTotalCount);
         for (int i = 0; i < GoodsTotalCount; i++)
         {
             ms.WriteByte(GetGoodsList[i].GoodsType);
             ms.WriteInt(GetGoodsList[i].GoodsId);
             ms.WriteInt(GetGoodsList[i].GoodsCount);
         }
         return(ms.ToArray());
     }
 }
Exemple #23
0
    public int    NeedTime;   //客户端移动所需时间

    public byte[] ToArray(bool isChild = false)
    {
        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
            ms.SetLength(0);
            ms.WriteUShort(ProtoCode);
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
            ms.SetLength(0);
        }

        ms.WriteInt(RoleId);
        ms.WriteFloat(TargetPosX);
        ms.WriteFloat(TargetPosY);
        ms.WriteFloat(TargetPosZ);
        ms.WriteLong(ServerTime);
        ms.WriteInt(NeedTime);

        byte[] retBuffer = ms.ToArray();
        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(retBuffer);
    }
Exemple #24
0
    public int    GoodsId;   //物品编号

    public byte[] ToArray(bool isChild = false)
    {
        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
            ms.SetLength(0);
            ms.WriteUShort(ProtoCode);
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
            ms.SetLength(0);
        }

        ms.WriteBool(IsSuccess);
        if (IsSuccess)
        {
            ms.WriteInt(GoodsId);
        }
        else
        {
            ms.WriteInt(MsgCode);
        }

        byte[] retBuffer = ms.ToArray();
        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(retBuffer);
    }
Exemple #25
0
    public int    MagicDefense;          //魔法防御力

    public byte[] ToArray(MMO_MemoryStream ms, bool isChild = false)
    {
        ms.SetLength(0);
        if (!isChild)
        {
            ms.WriteUShort(ProtoCode);
        }

        ms.WriteBool(IsSuccess);
        if (IsSuccess)
        {
            ms.WriteInt(RoldId);
            ms.WriteUTF8String(RoleNickName);
            ms.WriteByte(JobId);
            ms.WriteInt(Level);
            ms.WriteInt(TotalRechargeMoney);
            ms.WriteInt(Money);
            ms.WriteInt(Gold);
            ms.WriteInt(Exp);
            ms.WriteInt(MaxHP);
            ms.WriteInt(MaxMP);
            ms.WriteInt(CurrHP);
            ms.WriteInt(CurrMP);
            ms.WriteInt(ToSpeed);
            ms.WriteInt(WeaponDamageMin);
            ms.WriteInt(WeaponDamageMax);
            ms.WriteInt(AttackNumber);
            ms.WriteInt(StrikePower);
            ms.WriteInt(PiercingPower);
            ms.WriteInt(MagicPower);
            ms.WriteInt(LastInWorldMapId);
            ms.WriteUTF8String(LastInWorldMapPos);
            ms.WriteInt(Equip_Weapon);
            ms.WriteInt(Equip_Pants);
            ms.WriteInt(Equip_Clothes);
            ms.WriteInt(Equip_Belt);
            ms.WriteInt(Equip_Cuff);
            ms.WriteInt(Equip_Necklace);
            ms.WriteInt(Equip_Shoe);
            ms.WriteInt(Equip_Ring);
            ms.WriteInt(Equip_WeaponTableId);
            ms.WriteInt(Equip_PantsTableId);
            ms.WriteInt(Equip_ClothesTableId);
            ms.WriteInt(Equip_BeltTableId);
            ms.WriteInt(Equip_CuffTableId);
            ms.WriteInt(Equip_NecklaceTableId);
            ms.WriteInt(Equip_ShoeTableId);
            ms.WriteInt(Equip_RingTableId);
            ms.WriteInt(ChoppingDefense);
            ms.WriteInt(PuncturDefense);
            ms.WriteInt(MagicDefense);
        }
        else
        {
            ms.WriteInt(MsgCode);
        }

        return(ms.ToArray());
    }
Exemple #26
0
 public byte[] ToArray()
 {
     using (MMO_MemoryStream ms = new MMO_MemoryStream())
     {
         ms.WriteUShort(ProtoCode);
         return(ms.ToArray());
     }
 }
 /// <summary>
 /// 将结构体转换成字节数组
 /// </summary>
 /// <returns></returns>
 public byte[] ToArray()
 {
     using (MMO_MemoryStream ms = new MMO_MemoryStream())
     {
         ms.WriteUShort(ProtoID);//协议类型
         ms.WriteBool(IsSuccess);
         if (IsSuccess)
         {
             ms.WriteUTF8String(Name);
         }
         else
         {
             ms.WriteUShort(ErrorCode);
         }            
         return ms.ToArray();
     }
 }
Exemple #28
0
    public string RoleNickName; //角色昵称

    public byte[] ToArray()
    {
        using (MMO_MemoryStream ms = new MMO_MemoryStream())
        {
            ms.WriteUShort(ProtoCode);
            ms.WriteInt(RoldId);
            ms.WriteUTF8String(RoleNickName);
            return(ms.ToArray());
        }
    }
Exemple #29
0
    public byte[] ToArray()
    {
        MMO_MemoryStream ms = GameEntry.Socket.SocketSendMS;

        ms.SetLength(0);
        ms.WriteUShort(ProtoCode);


        return(ms.ToArray());
    }
Exemple #30
0
    public byte   Grade;       //难度等级

    public byte[] ToArray()
    {
        using (MMO_MemoryStream ms = new MMO_MemoryStream())
        {
            ms.WriteUShort(ProtoCode);
            ms.WriteInt(GameLevelId);
            ms.WriteByte(Grade);
            return(ms.ToArray());
        }
    }