Exemplo n.º 1
0
        /// <summary>
        /// 通知同场景的其他玩家 告诉他们我来了
        /// </summary>
        /// <param name="otherRole"></param>
        /// <param name="enterRoleId"></param>
        private void SendToOtherRole_RoleEnter(Role otherRole, int enterRoleId)
        {
            WorldMap_OtherRoleEnterProto proto = new WorldMap_OtherRoleEnterProto();

            proto.RoleId = enterRoleId;
            Role enterRole = RoleMgr.Instance.GetRole(enterRoleId);

            if (enterRole != null)
            {
                proto.RoleJobId    = enterRole.JobId;
                proto.RoleLevel    = enterRole.Level;
                proto.RoleNickName = enterRole.NickName;
                proto.RoleMaxHP    = enterRole.MaxHP;
                proto.RoleCurrHP   = enterRole.CurrHP;
                proto.RoleMaxMP    = enterRole.MaxMP;
                proto.RoleCurrMP   = enterRole.CurrMP;

                string[] arr = enterRole.LastInWorldMapPos.Split('_');
                proto.RolePosX   = float.Parse(arr[0]);
                proto.RolePosY   = float.Parse(arr[1]);
                proto.RolePosZ   = float.Parse(arr[2]);
                proto.RoleYAngle = float.Parse(arr[3]);
            }

            otherRole.Client_Socket.SendMsg(proto.ToArray(otherRole.SocketSendMS));
        }
    public static WorldMap_OtherRoleEnterProto GetProto(byte[] buffer)
    {
        WorldMap_OtherRoleEnterProto proto = new WorldMap_OtherRoleEnterProto();

        using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer))
        {
            proto.RoleId       = ms.ReadInt();
            proto.RoleNickName = ms.ReadUTF8String();
            proto.RoleLevel    = ms.ReadInt();
            proto.RoleJobId    = ms.ReadInt();
            proto.RoleCurrMP   = ms.ReadInt();
            proto.RoleMaxMP    = ms.ReadInt();
            proto.RoleCurrHP   = ms.ReadInt();
            proto.RoleMaxHP    = ms.ReadInt();
            proto.RolePosX     = ms.ReadFloat();
            proto.RolePosY     = ms.ReadFloat();
            proto.RolePosZ     = ms.ReadFloat();
            proto.RoleYAngle   = ms.ReadFloat();
        }
        return(proto);
    }
    public static WorldMap_OtherRoleEnterProto GetProto(MMO_MemoryStream ms, byte[] buffer)
    {
        WorldMap_OtherRoleEnterProto proto = new WorldMap_OtherRoleEnterProto();

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

        proto.RoleId       = ms.ReadInt();
        proto.RoleNickName = ms.ReadUTF8String();
        proto.RoleLevel    = ms.ReadInt();
        proto.RoleJobId    = ms.ReadInt();
        proto.RoleCurrMP   = ms.ReadInt();
        proto.RoleMaxMP    = ms.ReadInt();
        proto.RoleCurrHP   = ms.ReadInt();
        proto.RoleMaxHP    = ms.ReadInt();
        proto.RolePosX     = ms.ReadFloat();
        proto.RolePosY     = ms.ReadFloat();
        proto.RolePosZ     = ms.ReadFloat();
        proto.RoleYAngle   = ms.ReadFloat();

        return(proto);
    }
Exemplo n.º 4
0
    public static WorldMap_OtherRoleEnterProto GetProto(byte[] buffer, bool isChild = false)
    {
        WorldMap_OtherRoleEnterProto proto = new WorldMap_OtherRoleEnterProto();

        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.RoleId       = ms.ReadInt();
        proto.RoleNickName = ms.ReadUTF8String();
        proto.RoleLevel    = ms.ReadInt();
        proto.RoleJobId    = ms.ReadInt();
        proto.RoleCurrMP   = ms.ReadInt();
        proto.RoleMaxMP    = ms.ReadInt();
        proto.RoleCurrHP   = ms.ReadInt();
        proto.RoleMaxHP    = ms.ReadInt();
        proto.RolePosX     = ms.ReadFloat();
        proto.RolePosY     = ms.ReadFloat();
        proto.RolePosZ     = ms.ReadFloat();
        proto.RoleYAngle   = ms.ReadFloat();

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