Ejemplo n.º 1
0
    public override void OnEvent(EventData eventData)
    {
        SubCode subCode = ParameterTool.GetSubcode(eventData.Parameters);

        switch (subCode)
        {
        case SubCode.GetTeam:
            List <Role> roles = ParameterTool.GetParameter <List <Role> >(eventData.Parameters,
                                                                          ParameterCode.RoleList);
            int masterRoleID = ParameterTool.GetParameter <int>(eventData.Parameters, ParameterCode.MasterRoleID,
                                                                false);
            if (OnGetTeam != null)
            {
                OnGetTeam(roles, masterRoleID);
            }
            break;

        case SubCode.SyncPositionAndRotation:
            int     roleID = ParameterTool.GetParameter <int>(eventData.Parameters, ParameterCode.RoleID, false);
            Vector3 pos    =
                ParameterTool.GetParameter <Vector3Obj>(eventData.Parameters, ParameterCode.Position).ToVector3();
            Vector3 eulerAngles = ParameterTool.GetParameter <Vector3Obj>(eventData.Parameters,
                                                                          ParameterCode.EulerAngles).ToVector3();
            if (OnSyncPositionAndRotation != null)
            {
                OnSyncPositionAndRotation(roleID, pos, eulerAngles);
            }
            break;

        case SubCode.SyncMoveAnimation:
            int roleID2 = ParameterTool.GetParameter <int>(eventData.Parameters, ParameterCode.RoleID, false);
            PlayerMoveAnimationModel model =
                ParameterTool.GetParameter <PlayerMoveAnimationModel>(eventData.Parameters,
                                                                      ParameterCode.PlayerMoveAnimationModel);
            if (OnSyncMoveAnimation != null)
            {
                OnSyncMoveAnimation(roleID2, model);
            }
            break;

        case SubCode.SyncAnimation:
            int roleID3 = ParameterTool.GetParameter <int>(eventData.Parameters, ParameterCode.RoleID, false);
            PlayerAnimationModel model2 = ParameterTool.GetParameter <PlayerAnimationModel>(eventData.Parameters,
                                                                                            ParameterCode.PlayerAnimationModel);
            if (OnSyncPlayerAnimation != null)
            {
                OnSyncPlayerAnimation(roleID3, model2);
            }
            break;

        case SubCode.SendGameState:
            GameStateModel model3 = ParameterTool.GetParameter <GameStateModel>(eventData.Parameters,
                                                                                ParameterCode.GameStateModel);
            if (OnGameStateChange != null)
            {
                OnGameStateChange(model3);
            }
            break;
        }
    }
Ejemplo n.º 2
0
    public override void OnOperationResponse(OperationResponse response)
    {
        SubCode subcode = ParameterTool.GetSubcode(response.Parameters);

        switch (subcode)
        {
        case SubCode.SendTeam:
            if (response.ReturnCode == (int)ReturnCode.GetTeam)
            {
                List <Role> roles = ParameterTool.GetParameter <List <Role> >(response.Parameters,
                                                                              ParameterCode.RoleList);
                int masterRoleID = ParameterTool.GetParameter <int>(response.Parameters, ParameterCode.MasterRoleID,
                                                                    false);
                if (OnGetTeam != null)
                {
                    OnGetTeam(roles, masterRoleID);
                }
            }
            else if (response.ReturnCode == (int)ReturnCode.WartingTeam)
            {
                if (OnWaitingTeam != null)
                {
                    OnWaitingTeam();
                }
            }
            break;

        case SubCode.CancelTeam:
            if (OnCancelTeam != null)
            {
                OnCancelTeam();
            }
            break;
        }
    }
Ejemplo n.º 3
0
    public override void OnEvent(EventData eventData)
    {
        SubCode subcode = ParameterTool.GetSubcode(eventData.Parameters);

        switch (subcode)
        {
        case SubCode.CreateEnemy:
            CreateEnemyModel model = ParameterTool.GetParameter <CreateEnemyModel>(eventData.Parameters,
                                                                                   ParameterCode.CreateEnemyModel);
            if (OnCreateEnemy != null)
            {
                OnCreateEnemy(model);
            }
            break;

        case SubCode.SyncPositionAndRotation:
            EnemyPositionModel model1 = ParameterTool.GetParameter <EnemyPositionModel>(eventData.Parameters,
                                                                                        ParameterCode.EnemyPositionModel);
            if (OnSyncEnemyPositionAndRotation != null)
            {
                OnSyncEnemyPositionAndRotation(model1);
            }
            break;

        case SubCode.SyncAnimation:
            EnemyAnimationModel model2 = ParameterTool.GetParameter <EnemyAnimationModel>(eventData.Parameters,
                                                                                          ParameterCode.EnemyAnimationModel);
            if (OnSyncEnemyAnimation != null)
            {
                OnSyncEnemyAnimation(model2);
            }
            break;
        }
    }
Ejemplo n.º 4
0
        public override void OnHandleMessage(OperationRequest request, OperationResponse response, MasterClientPeer peer, SendParameters sendParameters)
        {
            var user   = ParameterTool.GetParameter <User>(request.Parameters, ParameterCode.User);
            var userDB = manager.GetUserByAccesstoken(user.Accesstoken);

            SubCode subCode = ParameterTool.GetSubcode(request.Parameters);

            ParameterTool.AddSubcode(response.Parameters, subCode);
            switch (subCode)
            {
            case SubCode.AccLogin:
            {
                if (userDB != null && userDB.Password == MD5Tool.GetMD5(user.Password))
                {
                    ParameterTool.AddParameter <User>(response.Parameters, ParameterCode.User, userDB);
                    //用户名和密码正确,登陆成功
                    response.ReturnCode = (short)ReturnCode.Success;
                    peer.User           = userDB;


                    //if (MasterApplication.Instance.TeamCtrl.ContansUser(userDB.ID))//如果之前正在游戏中
                    //{
                    //    peer.Team = MasterApplication.Instance.TeamCtrl.GetTeamByUser(userDB.ID);
                    //}
                }
                else
                {
                    response.ReturnCode   = (short)ReturnCode.Fail;
                    response.DebugMessage = "用户名或密码错误";
                }
                //string username = ParameterTool.GetParameter<string>(request.Parameters, ParameterCode.Username, false);
                // password = ParameterTool.GetParameter<string>(request.Parameters, ParameterCode.Password, false);
                Log("Login:acesstoken=" + user.Accesstoken + ",password="******"用户已存在";
                }
                //string username = ParameterTool.GetParameter<string>(request.Parameters, ParameterCode.Username, false);
                //string password = ParameterTool.GetParameter<string>(request.Parameters, ParameterCode.Password, false);
                Log("Register:acesstoken=" + user.Accesstoken + ",password=" + user.Password);
            } break;
            }
        }
Ejemplo n.º 5
0
        public override void OnHandlerMessage(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters)
        {
            SubCode subCode = ParameterTool.GetSubcode(request.Parameters);

            switch (subCode)
            {
            case SubCode.SyncBossAnimation:
                RequestTool.TransmitRequst(peer, request, OpCode);
                break;
            }
        }
Ejemplo n.º 6
0
    public override void OnEvent(EventData eventData)
    {
        SubCode subcode = ParameterTool.GetSubcode(eventData.Parameters);

        switch (subcode)
        {
        case SubCode.SyncBossAnimation:
            BossAnimationModel model = ParameterTool.GetParameter <BossAnimationModel>(eventData.Parameters,
                                                                                       ParameterCode.BossAnimationModel);
            if (OnSyncBossAnimation != null)
            {
                OnSyncBossAnimation(model);
            }
            break;
        }
    }
Ejemplo n.º 7
0
        public override void OnHandlerMessage(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters)
        {
            SubCode subCode = ParameterTool.GetSubcode(request.Parameters);

            switch (subCode)
            {
            case SubCode.CreateEnemy:
                TransmitRequst(peer, request);
                break;

            case SubCode.SyncPositionAndRotation:
                TransmitRequst(peer, request);
                break;

            case SubCode.SyncAnimation:
                TransmitRequst(peer, request);
                break;
            }
        }
Ejemplo n.º 8
0
        public override void OnHandlerMessage(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters)
        {
            SubCode subcode = ParameterTool.GetSubcode(request.Parameters);

            ParameterTool.AddSubcode(response.Parameters, subcode);
            switch (subcode)
            {
            case SubCode.Add:
                SkillDB skillDB = ParameterTool.GetParameter <SkillDB>(request.Parameters, ParameterCode.SkillDB);
                skillDB.Role = peer.LoginRole;
                skillDBManager.Add(skillDB);
                skillDB.Role = null;
                ParameterTool.AddParameter(response.Parameters, ParameterCode.SkillDB, skillDB);
                break;

            case SubCode.Get:
                List <SkillDB> list = skillDBManager.Get(peer.LoginRole);
                foreach (var temp in list)
                {
                    temp.Role = null;
                }
                ParameterTool.AddParameter(response.Parameters, ParameterCode.SkillDBList, list);
                break;

            case SubCode.Update:
                SkillDB skillDB2 = ParameterTool.GetParameter <SkillDB>(request.Parameters, ParameterCode.SkillDB);
                skillDB2.Role = peer.LoginRole;
                skillDBManager.Update(skillDB2);

                break;

            case SubCode.Upgrade:
                SkillDB skillDB3 = ParameterTool.GetParameter <SkillDB>(request.Parameters, ParameterCode.SkillDB);
                Role    role     = ParameterTool.GetParameter <Role>(request.Parameters, ParameterCode.Role);
                role.User     = peer.LoginUser;
                skillDB3.Role = role;
                skillDBManager.Upgrade(skillDB3, role);
                skillDB3.Role = null;
                ParameterTool.AddParameter(response.Parameters, ParameterCode.SkillDB, skillDB3);
                break;
            }
        }
Ejemplo n.º 9
0
    public override void OnOperationResponse(OperationResponse response)
    {
        SubCode subCode = ParameterTool.GetSubcode(response.Parameters);

        switch (subCode)
        {
        case SubCode.Add:
            SkillDB skillDb = ParameterTool.GetParameter <SkillDB>(response.Parameters, ParameterCode.SkillDB);
            if (OnAddSkillDB != null)
            {
                OnAddSkillDB(skillDb);
            }
            break;

        case SubCode.Get:
            List <SkillDB> list =
                ParameterTool.GetParameter <List <SkillDB> >(response.Parameters, ParameterCode.SkillDBList);
            if (OnGetSkillDBList != null)
            {
                OnGetSkillDBList(list);
            }
            break;

        case SubCode.Update:
            if (OnUpdateSkillDB != null)
            {
                OnUpdateSkillDB();
            }
            break;

        case SubCode.Upgrade:
            SkillDB skillDb2 = ParameterTool.GetParameter <SkillDB>(response.Parameters, ParameterCode.SkillDB);
            if (OnUpgradeSkillDB != null)
            {
                OnUpgradeSkillDB(skillDb2);
            }
            break;
        }
    }
Ejemplo n.º 10
0
        public override void OnOperationResponse(OperationResponse operationResponse)
        {
            SubCode subCode = ParameterTool.GetSubcode(operationResponse.Parameters);

            switch (subCode)
            {
            case SubCode.AccLogin: {
                if (operationResponse.ReturnCode == (byte)ReturnCode.Success)
                {
                    User user = ParameterTool.GetParameter <User>(operationResponse.Parameters, ParameterCode.User);
                    Log("AccLogin.user.Accesstoken=" + user.Accesstoken);
                }
            } break;

            case SubCode.AccRegister: {
                if (operationResponse.ReturnCode == (byte)ReturnCode.Success)
                {
                    User user = ParameterTool.GetParameter <User>(operationResponse.Parameters, ParameterCode.User);
                    Log("AccRegist.user.Accesstoken=" + user.Accesstoken);
                }
            } break;
            }
        }
Ejemplo n.º 11
0
    public override void OnOperationResponse(MDCSharpClient.OperationResponse operationResponse)
    {
        SubCode subcode = ParameterTool.GetSubcode(operationResponse.Parameters);

        Debug.Log("AccountController.OnOperationRespnse.subcode=" + subcode);

        switch (subcode)
        {
        case SubCode.AccLogin: {
            if (operationResponse.ReturnCode == (short)ReturnCode.Success)
            {
                User user = ParameterTool.GetParameter <User>(operationResponse.Parameters, ParameterCode.User);
                Debug.Log("登陆成功!User.accesstoken=" + user.Accesstoken);
            }
        } break;

        case SubCode.AccRegister: {
            if (operationResponse.ReturnCode == (short)ReturnCode.Success)
            {
                Debug.Log("注册成功!");
            }
        } break;
        }
    }
Ejemplo n.º 12
0
        public override void OnHandlerMessage(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters)
        {
            SubCode subCode = ParameterTool.GetSubcode(request.Parameters);

            ParameterTool.AddSubcode(response.Parameters, subCode);
            switch (subCode)
            {
            case SubCode.SendTeam:
                if (TumoApplication.Instance.clientPeerListFotTeam.Count >= 2)
                {
                    //取得list中的前二个peer 跟当前的peer进行组队  toto
                    ClientPeer peer1 = TumoApplication.Instance.clientPeerListFotTeam[0];
                    ClientPeer peer2 = TumoApplication.Instance.clientPeerListFotTeam[1];
                    Team       t     = new Team(peer1, peer2, peer);
                    TumoApplication.Instance.clientPeerListFotTeam.RemoveRange(0, 2);
                    List <Role> roleList = new List <Role>();
                    foreach (var clientPeer in t.clientPeers)
                    {
                        roleList.Add(clientPeer.LoginRole);
                    }
                    ParameterTool.AddParmeter(response.Parameters, ParameterCode.RoleList, roleList);
                    ParameterTool.AddParmeter(response.Parameters, ParameterCode.MasterRoleId, t.masterRoleId,
                                              false);
                    response.ReturnCode = (short)ReturnCode.GetTeam;

                    SendEventByPeer(peer1, (OperationCode)response.OperationCode, SubCode.GetTeam, roleList, t.masterRoleId);    //不知道对不对?
                    SendEventByPeer(peer2, (OperationCode)response.OperationCode, SubCode.GetTeam, roleList, t.masterRoleId);    //不知道对不对?
                }
                else
                {
                    //当当前的服器可供组队的客户端不足的时候,把自身加到集合中等 等组队
                    TumoApplication.Instance.clientPeerListFotTeam.Add(peer);
                    response.ReturnCode = (short)ReturnCode.WartingTeam;
                }
                break;

            case SubCode.CancelTeam:
                TumoApplication.Instance.clientPeerListFotTeam.Remove(peer);
                response.ReturnCode = (short)ReturnCode.Success;
                break;

            case SubCode.SyncPositionAndRotation:
                object posObj = null;
                request.Parameters.TryGetValue((byte)ParameterCode.Position, out posObj);
                object eulerAnglesObj = null;
                request.Parameters.TryGetValue((byte)ParameterCode.EulerAngles, out eulerAnglesObj);
                foreach (ClientPeer temp in peer.Team.clientPeers)
                {
                    if (temp != peer)
                    {
                        SendEventByPeer(temp, OpCode, SubCode.SyncPositionAndRotation, peer.LoginRole.Id, posObj,
                                        eulerAnglesObj);
                    }
                }
                break;

            case SubCode.SyncMoveAnimation:
                foreach (ClientPeer temp in peer.Team.clientPeers)
                {
                    if (temp != peer)
                    {
                        SendMoveAnimationEvent(temp, OpCode, SubCode.SyncMoveAnimation, peer.LoginRole.Id, request.Parameters);
                    }
                }
                break;

            case SubCode.SyncAnimation:
                request.Parameters.Add((byte)ParameterCode.RoleId, peer.LoginRole.Id);
                RequestTool.TransmitRequst(peer, request, OpCode);
                break;

            case SubCode.SendGameState:
                RequestTool.TransmitRequst(peer, request, OpCode);
                peer.Team.Dismiss();      //解散队伍
                break;
            }
        }