public static WorldMap_CurrRoleResurgenceProto GetProto(byte[] buffer, bool isChild = false)
    {
        WorldMap_CurrRoleResurgenceProto proto = new WorldMap_CurrRoleResurgenceProto();

        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.Type = ms.ReadInt();

        if (isChild)
        {
            GameEntry.Pool.EnqueueClassObject(ms);
        }
        return(proto);
    }
    public static WorldMap_CurrRoleResurgenceProto GetProto(byte[] buffer)
    {
        WorldMap_CurrRoleResurgenceProto proto = new WorldMap_CurrRoleResurgenceProto();

        using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer))
        {
            proto.Type = ms.ReadInt();
        }
        return(proto);
    }
Ejemplo n.º 3
0
    public static WorldMap_CurrRoleResurgenceProto GetProto(MMO_MemoryStream ms, byte[] buffer)
    {
        WorldMap_CurrRoleResurgenceProto proto = new WorldMap_CurrRoleResurgenceProto();

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

        proto.Type = ms.ReadInt();

        return(proto);
    }
Ejemplo n.º 4
0
        /// <summary>
        /// 客户端发送角色复活消息
        /// </summary>
        /// <param name="role"></param>
        /// <param name="buffer"></param>
        private void OnWorldMapCurrRoleResurgence(Role role, byte[] buffer)
        {
            WorldMap_CurrRoleResurgenceProto proto = new WorldMap_CurrRoleResurgenceProto();

            int type = proto.Type; //以后此处处理逻辑 比如扣除元宝等

            //修改要复活的角色HP和MP
            Role resurgenceRole = RoleMgr.Instance.GetRole(role.RoleId); //要复活者

            resurgenceRole.CurrHP = resurgenceRole.MaxHP;
            resurgenceRole.CurrMP = resurgenceRole.MaxMP;

            List <Role> lst = GetRoleList(role.LastInWorldMapId);

            if (lst != null && lst.Count > 0)
            {
                for (int i = 0; i < lst.Count; i++)
                {
                    SendRoleResurgence(lst[i], role.RoleId);
                }
            }
        }