示例#1
0
    private void OnRoleOperation_LogOnGameServerReturn(byte[] buffer)
    {
        RoleOperation_LogOnGameServerReturnProto proto = RoleOperation_LogOnGameServerReturnProto.GetProto(buffer);

        Debug.Log(proto.ProtoEnName + " " + proto.ProtoCode);
        Debug.Log(proto);
    }
    public static void OnRoleOperation_LogOnGameServerReturn(byte[] buffer)
    {
        RoleOperation_LogOnGameServerReturnProto proto = RoleOperation_LogOnGameServerReturnProto.GetProto(buffer);

#if DEBUG_LOG_PROTO
        Debug.Log("<color=#00eaff>接收消息:</color><color=#00ff9c>" + proto.ProtoEnName + " " + proto.ProtoCode + "</color>");
        Debug.Log("<color=#c5e1dc>==>>" + JsonUtility.ToJson(proto) + "</color>");
#endif
    }
    /// <summary>
    /// 登录服务器协议回调
    /// </summary>
    /// <param name="p"></param>
    private void OnLogOnGameServerReturnProto(byte[] p)
    {
        RoleOperation_LogOnGameServerReturnProto proto = RoleOperation_LogOnGameServerReturnProto.ToPoto(p);

        m_RoleItemList = proto.Roles;
        if (proto.RoleCount > 0)
        {
            ShowSelectRoleView();
        }
        else
        {
            ShowCreateRoleView();
        }
    }
    /// <summary>
    /// 当我们登录游戏区服 服务器给我们返回的角色需要的数据信息
    /// </summary>
    /// <param name="p"></param>
    private void OnLogOnGameServerReturn(byte[] p)
    {
        RoleOperation_LogOnGameServerReturnProto proto = RoleOperation_LogOnGameServerReturnProto.GetProto(p);

        int roleCount = proto.RoleCount;

        AppDebug.Log("roleCount =" + roleCount);
        if (proto.RoleList != null && proto.RoleList.Count > 0)
        {
            m_roleList = proto.RoleList;
        }
        //玩家还没创建过角色
        if (roleCount == 0)
        {
            m_bIsCreateRole = true;
            //新建角色
            CloneCreateRole();
            //初始化的时候 职业id为1
            m_currentJobId = 1;

            //游戏一启动就随机一个名字
            m_uiSceneSelectRoleView.RandomRoleName();
        }
        else
        {
            m_bIsCreateRole = false;
            //玩家有角色了
            //隐藏创建角色相关UI
            m_uiSceneSelectRoleView.SetUICreateRoleShow(false);
            SetCreateRoleSceneModelShow(false);

            if (proto.RoleList != null && proto.RoleList.Count > 0)
            {
                m_uiSceneSelectRoleView.SetRoleList(proto.RoleList, OnSelectRoleCallback);
            }

            if (proto.RoleList.Count >= 1)
            {
                //默认第一次显示第一个角色
                SetSelectRole(m_roleList[0].RoleId);
            }
        }
    }
示例#5
0
    public static RoleOperation_LogOnGameServerReturnProto ToPoto(byte[] buffer)
    {
        RoleOperation_LogOnGameServerReturnProto proto = new RoleOperation_LogOnGameServerReturnProto();

        using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer))
        {
            proto.RoleCount = ms.ReadInt();
            for (int i = 0; i < proto.RoleCount; i++)
            {
                RoleItem item = new RoleItem();
                item.RoleId   = ms.ReadInt();
                item.NickName = ms.ReadUTF8String();
                item.Level    = ms.ReadInt();
                item.RoleJob  = (byte)ms.ReadByte();
                proto.Roles.Add(item);
            }
            return(proto);
        }
    }
    public static RoleOperation_LogOnGameServerReturnProto GetProto(byte[] buffer)
    {
        RoleOperation_LogOnGameServerReturnProto proto = new RoleOperation_LogOnGameServerReturnProto();

        using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer))
        {
            proto.RoleCount = ms.ReadInt();
            proto.RoleList  = new List <RoleItem>();
            for (int i = 0; i < proto.RoleCount; i++)
            {
                RoleItem _Role = new RoleItem();
                _Role.RoleId       = ms.ReadInt();
                _Role.RoleNickName = ms.ReadUTF8String();
                _Role.RoleJob      = (byte)ms.ReadByte();
                _Role.RoleLevel    = ms.ReadInt();
                proto.RoleList.Add(_Role);
            }
        }
        return(proto);
    }
    public static void OnRoleOperation_LogOnGameServerReturn(byte[] buffer)
    {
        RoleOperation_LogOnGameServerReturnProto proto = RoleOperation_LogOnGameServerReturnProto.GetProto(buffer);

#if DEBUG_LOG_PROTO
        Debug.Log("<color=#00eaff>接收消息:</color><color=#00ff9c>" + proto.ProtoEnName + " " + proto.ProtoCode + "</color>");
        Debug.Log("<color=#c5e1dc>==>>" + JsonUtility.ToJson(proto) + "</color>");
#endif

        GameEntry.Data.UserData.RoleLists.Clear();
        int roleCount = proto.RoleCount;
        for (int i = 0; i < roleCount; i++)
        {
            RoleItem roleItem = new RoleItem();
            roleItem.RoleId       = proto.RoleList[i].RoleId;
            roleItem.RoleJob      = proto.RoleList[i].RoleJob;
            roleItem.RoleLevel    = proto.RoleList[i].RoleLevel;
            roleItem.RoleNickName = proto.RoleList[i].RoleNickName;
            GameEntry.Data.UserData.RoleLists.Add(roleItem);
        }
        GameEntry.Event.CommonEvent.Dispatch(GameEntry.Socket.MainSocket, GameEntry.Pool.SpawnClassObject <LogOnGameServerReturnGameEvent>().Fill(roleCount));
    }
示例#8
0
    public static RoleOperation_LogOnGameServerReturnProto GetProto(MMO_MemoryStream ms, byte[] buffer)
    {
        RoleOperation_LogOnGameServerReturnProto proto = new RoleOperation_LogOnGameServerReturnProto();

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

        proto.RoleCount = ms.ReadInt();
        proto.RoleList  = new List <RoleItem>();
        for (int i = 0; i < proto.RoleCount; i++)
        {
            RoleItem _Role = new RoleItem();
            _Role.RoleId       = ms.ReadInt();
            _Role.RoleNickName = ms.ReadUTF8String();
            _Role.RoleJob      = (byte)ms.ReadByte();
            _Role.RoleLevel    = ms.ReadInt();
            proto.RoleList.Add(_Role);
        }

        return(proto);
    }
示例#9
0
        private void LogonGameServerReturn(Role role, int accountId)
        {
            RoleOperation_LogOnGameServerReturnProto retureProto = new RoleOperation_LogOnGameServerReturnProto();
            List <RoleEntity> list = RoleCacheModel.Instance.GetList(condition: string.Format("{0}={1}", "[AccountId]", accountId));

            if (list != null && list.Count > 0)
            {
                retureProto.RoleCount = list.Count;
                for (int i = 0; i < list.Count; i++)
                {
                    RoleOperation_LogOnGameServerReturnProto.RoleItem item = new RoleOperation_LogOnGameServerReturnProto.RoleItem();
                    item.RoleId   = list[i].Id.Value;
                    item.NickName = list[i].NickName;
                    item.Level    = list[i].Level;
                    item.RoleJob  = (byte)list[i].JobId;
                    retureProto.Roles.Add(item);
                }
            }
            else
            {
                retureProto.RoleCount = 0;
            }
            role.Client_Socket.SendMsg(retureProto.ToArray());
        }
示例#10
0
    public static RoleOperation_LogOnGameServerReturnProto GetProto(byte[] buffer, bool isChild = false)
    {
        RoleOperation_LogOnGameServerReturnProto proto = new RoleOperation_LogOnGameServerReturnProto();

        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.RoleList  = new List <RoleItem>();
        for (int i = 0; i < proto.RoleCount; i++)
        {
            RoleItem _Role = new RoleItem();
            _Role.RoleId       = ms.ReadInt();
            _Role.RoleNickName = ms.ReadUTF8String();
            _Role.RoleJob      = (byte)ms.ReadByte();
            _Role.RoleLevel    = ms.ReadInt();
            proto.RoleList.Add(_Role);
        }

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