Пример #1
0
    //------------------------------------------------------------------------------------
    //void _onLoginLockChange(int result, string data, string[] chdn, Dictionary<string, object> param)
    //{
    //    if (result != 0) return;
    //    LoginServerInfo info = param["LoginServerInfo"] as LoginServerInfo;
    //    info.bloginLock = true;
    //    getZkClient().areadData(info.loginNode, false, _onLoginNodeData, param);
    //}

    //------------------------------------------------------------------------------------
    // 解析login传过来的登陆数据
    void _onLoginNodeData(int result, string data, string[] chdn, Dictionary <string, object> param)
    {
        LoginServerInfo info = param["LoginServerInfo"] as LoginServerInfo;

        if (info.bloginLock)
        {
            getZkClient().adelete(info.loginLockNode, null);
            info.bloginLock = false;
        }
        if (data == null || data == "")
        {
            return;
        }
        // 处理玩家登陆.
        // LoginNodeId
        string[] resul;
        char[]   charSeparators = new char[] { ',', ':' };
        resul = data.Split(charSeparators);
        if (resul.Length != 4)
        {
            EbLog.Error("Error format , the correct format should be 000000006,000000005 -> (accountId,LoginId) ");
            return;
        }

        LoginPlayer player = new LoginPlayer();

        player.Account     = resul[0];
        player.LoginNodeId = resul[1];
        player.TokenId     = resul[2];
        player.AccountId   = int.Parse(resul[3]);

        player.ServerGroup = ProjectName;
        mLoginPlayer.Add(player.Account, player);
    }
Пример #2
0
 // Use this for initialization
 void Start()
 {
     Debug.Log("loggedin is " + loggedin);
     instance = this;
     if (DBData == null)
     {
         DBData           = new LocalPlayer();
         DBData.coinsText = coinsText;
     }
 }
Пример #3
0
    /// <summary>
    /// 创建净数据对象 by吴江
    /// </summary>
    /// <param name="_info"></param>
    /// <returns></returns>
    public static LoginPlayer CreateDummy(PlayerBaseInfo _info)
    {
        GameObject newGO = new GameObject("Dummy LoginPlayer[" + _info.ServerInstanceID + "]");

        newGO.tag = "Player";

        // newGO.AddComponent<ActorMoveFSM>();
        LoginPlayer loginPlayer = newGO.AddComponent <LoginPlayer>();

        loginPlayer.actorInfo = _info;
        loginPlayer.isDummy_  = true;
        GameCenter.curGameStage.AddObject(loginPlayer);
        return(loginPlayer);
    }
Пример #4
0
        private void SendJoinRoomFail(JoinRoomResponseEvent e)
        {
            _logger.ErrorFormat("JoinRoom Error ... Code:{0}", e.JoinRoomResponseInfo.ErrCode);
            var rCode = IntData.Allocate();

            rCode.Value = (int)e.JoinRoomResponseInfo.ErrCode;
            var rHallRoomId = LongData.Allocate();

            rHallRoomId.Value = e.HallRoomId;
            var loginPlayer = LoginPlayer.Allocate();

            loginPlayer.Id    = e.JoinRoomResponseInfo.PlayerId;
            loginPlayer.Token = "";
            SendAndReleaseMessage(RpcMessageType.ResponseJoinRoom, rCode, rHallRoomId, loginPlayer);
        }
Пример #5
0
        private void SendJoinRoomSuccess(JoinRoomResponseEvent e)
        {
            _logger.InfoFormat("JoinRoom Successfully Player Id {0} Token {1}", e.JoinRoomResponseInfo.PlayerId, e.JoinRoomResponseInfo.Token);
            var loginPlayer = LoginPlayer.Allocate();

            loginPlayer.Id    = e.JoinRoomResponseInfo.PlayerId;
            loginPlayer.Token = e.JoinRoomResponseInfo.Token;

            var rCode = IntData.Allocate();

            rCode.Value = e.RetCode;
            var rHallRoomId = LongData.Allocate();

            rHallRoomId.Value = e.HallRoomId;

            SendAndReleaseMessage(RpcMessageType.ResponseJoinRoom, rCode, rHallRoomId, loginPlayer);
        }
Пример #6
0
    protected IEnumerator CreateAsync(Action <LoginPlayer> _callback)
    {
        if (isDummy_ == false)
        {
            GameSys.LogError("You can only start create LoginPlayer in dummy: " + actorInfo.ServerInstanceID);
            yield break;
        }


        LoginPlayer loginPlayer = null;
        bool        faild       = false;

        pendingDownload = Create(actorInfo, delegate(LoginPlayer _pc, EResult _result)
        {
            if (_result != EResult.Success)
            {
                faild = true;
                return;
            }
            loginPlayer     = _pc;
            pendingDownload = null;
        });
        while (loginPlayer == null || loginPlayer.inited == false)
        {
            if (faild)
            {
                yield break;
            }
            yield return(null);
        }

        pendingDownload = null;
        while (GameCenter.curGameStage == null)
        {
            yield return(null);
        }
        if (_callback != null)
        {
            _callback(loginPlayer);
        }
    }