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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }