public static WorldMap_InitRoleProto GetProto(byte[] buffer)
    {
        WorldMap_InitRoleProto proto = new WorldMap_InitRoleProto();

        using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer))
        {
            proto.RoleCount = ms.ReadInt();
            proto.ItemList  = new List <RoleItem>();
            for (int i = 0; i < proto.RoleCount; i++)
            {
                RoleItem _Item = new RoleItem();
                _Item.RoleId       = ms.ReadInt();
                _Item.RoleNickName = ms.ReadUTF8String();
                _Item.RoleLevel    = ms.ReadInt();
                _Item.RoleMaxHP    = ms.ReadInt();
                _Item.RoleCurrHP   = ms.ReadInt();
                _Item.RoleMaxMP    = ms.ReadInt();
                _Item.RoleCurrMP   = ms.ReadInt();
                _Item.RoleJobId    = ms.ReadInt();
                _Item.RolePosX     = ms.ReadFloat();
                _Item.RolePosY     = ms.ReadFloat();
                _Item.RolePosZ     = ms.ReadFloat();
                _Item.RoleYAngle   = ms.ReadFloat();
                proto.ItemList.Add(_Item);
            }
        }
        return(proto);
    }
Exemplo n.º 2
0
    public static WorldMap_InitRoleProto GetProto(MMO_MemoryStream ms, byte[] buffer)
    {
        WorldMap_InitRoleProto proto = new WorldMap_InitRoleProto();

        ms.SetLength(0);
        ms.Write(buffer, 0, buffer.Length);
        ms.Position = 0;

        proto.RoleCount = ms.ReadInt();
        proto.ItemList  = new List <RoleItem>();
        for (int i = 0; i < proto.RoleCount; i++)
        {
            RoleItem _Item = new RoleItem();
            _Item.RoleId       = ms.ReadInt();
            _Item.RoleNickName = ms.ReadUTF8String();
            _Item.RoleLevel    = ms.ReadInt();
            _Item.RoleMaxHP    = ms.ReadInt();
            _Item.RoleCurrHP   = ms.ReadInt();
            _Item.RoleMaxMP    = ms.ReadInt();
            _Item.RoleCurrMP   = ms.ReadInt();
            _Item.RoleJobId    = ms.ReadInt();
            _Item.RolePosX     = ms.ReadFloat();
            _Item.RolePosY     = ms.ReadFloat();
            _Item.RolePosZ     = ms.ReadFloat();
            _Item.RoleYAngle   = ms.ReadFloat();
            proto.ItemList.Add(_Item);
        }

        return(proto);
    }
Exemplo n.º 3
0
        /// <summary>
        /// 服务器发送当前场景初始化的角色
        /// </summary>
        /// <param name="role"></param>
        /// <param name="sceneId"></param>
        private void SendCurrSceneInitRole(Role role, int sceneId)
        {
            WorldMap_InitRoleProto proto = new WorldMap_InitRoleProto();

            List <Role> lst = GetRoleList(sceneId);

            proto.RoleCount = lst.Count;
            proto.ItemList  = new List <WorldMap_InitRoleProto.RoleItem>();

            for (int i = 0; i < lst.Count; i++)
            {
                WorldMap_InitRoleProto.RoleItem item = new WorldMap_InitRoleProto.RoleItem();
                item.RoleId = lst[i].RoleId;

                item.RoleJobId    = lst[i].JobId;
                item.RoleLevel    = lst[i].Level;
                item.RoleNickName = lst[i].NickName;
                item.RoleMaxHP    = lst[i].MaxHP;
                item.RoleCurrHP   = lst[i].CurrHP;
                item.RoleMaxMP    = lst[i].MaxMP;
                item.RoleCurrMP   = lst[i].CurrMP;

                string[] arr = lst[i].LastInWorldMapPos.Split('_');
                item.RolePosX   = float.Parse(arr[0]);
                item.RolePosY   = float.Parse(arr[1]);
                item.RolePosZ   = float.Parse(arr[2]);
                item.RoleYAngle = float.Parse(arr[3]);

                proto.ItemList.Add(item);
            }

            role.Client_Socket.SendMsg(proto.ToArray(role.SocketSendMS));
        }
Exemplo n.º 4
0
    public static WorldMap_InitRoleProto GetProto(byte[] buffer, bool isChild = false)
    {
        WorldMap_InitRoleProto proto = new WorldMap_InitRoleProto();

        MMO_MemoryStream ms = null;

        if (!isChild)
        {
            ms = GameEntry.Socket.SocketSendMS;
        }
        else
        {
            ms = GameEntry.Pool.DequeueClassObject <MMO_MemoryStream>();
        }
        ms.SetLength(0);
        ms.Write(buffer, 0, buffer.Length);
        ms.Position = 0;

        proto.RoleCount = ms.ReadInt();
        proto.ItemList  = new List <RoleItem>();
        for (int i = 0; i < proto.RoleCount; i++)
        {
            RoleItem _Item = new RoleItem();
            _Item.RoleId       = ms.ReadInt();
            _Item.RoleNickName = ms.ReadUTF8String();
            _Item.RoleLevel    = ms.ReadInt();
            _Item.RoleMaxHP    = ms.ReadInt();
            _Item.RoleCurrHP   = ms.ReadInt();
            _Item.RoleMaxMP    = ms.ReadInt();
            _Item.RoleCurrMP   = ms.ReadInt();
            _Item.RoleJobId    = ms.ReadInt();
            _Item.RolePosX     = ms.ReadFloat();
            _Item.RolePosY     = ms.ReadFloat();
            _Item.RolePosZ     = ms.ReadFloat();
            _Item.RoleYAngle   = ms.ReadFloat();
            proto.ItemList.Add(_Item);
        }

        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(proto);
    }