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 void SyncPlayerAnimation(PlayerAnimationModel model) //发送同步动画状态请求 { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.PlayerAnim, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncAnimation, parameters); }
public override void OnOperationResponse(OperationResponse operationResponse) { SubCode subCode = ParameterTool.GetSubCode(operationResponse.Parameters); switch (subCode) { case SubCode.TeamFight: if (operationResponse.ReturnCode == (short)ReturnCode.HavingTeam) //组队成功 { //Debug.Log("SubCode.TeamFight"); List <Role> roleList = ParameterTool.GetParameter <List <Role> >(operationResponse.Parameters, ParameterCode.RoleList); int masterRoleId = ParameterTool.GetParameter <int>(operationResponse.Parameters, ParameterCode.MasterRoleId, false); OnHavingTeam(roleList, masterRoleId); } else if (operationResponse.ReturnCode == (short)ReturnCode.WaitingTeam) //组队失败 { //Debug.Log("SubCode.TeamFight"); OnWaitingTeam(); } break; case SubCode.CancelTeam: //Debug.Log("SubCode.CancelFight"); OnCancelTeam(); break; } }
public void SyncEnemyPosition(EnemyPositionModel model) //同步敌人位置 { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.EnemyPosition, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncPositionAndRotation, parameters); }
//发起创建敌人的请求 public void SendCreateEnemy(CreateEnemyModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParmeter(parameters, ParameterCode.CreateEnemyModel, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.CreateEnemy, parameters); }
public void AsyncEnemyPostion(EnemyPostionModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameters <EnemyPostionModel>(parameters, ParameterCode.EnemyPostionModel, model); PhotonEngine.Instance.SendRequest(opCode, SubCode.AsyncPostionAndEularAngler, parameters); }
public override void OnEventData(EventData data) { SubCode subCode = ParameterTool.GetSubCode(data.Parameters); switch (subCode) { case SubCode.SyncEnemyCreat: //Debug.Log("SubCode.CreatEnemy"); EnemyCreatModel model = ParameterTool.GetParameter <EnemyCreatModel>(data.Parameters, ParameterCode.CreatEnemy); OnSyncEnemyCreat(model); break; case SubCode.SyncPositionAndRotation: //Debug.Log("SubCode.SyncPositionAndRotation"); EnemyPositionModel model2 = ParameterTool.GetParameter <EnemyPositionModel>(data.Parameters, ParameterCode.EnemyPosition); OnSyncEnemyPosition(model2); break; case SubCode.SyncEnemyAnim: //Debug.Log("SubCode.SyncPositionAndRotation"); EnemyAnimModel model3 = ParameterTool.GetParameter <EnemyAnimModel>(data.Parameters, ParameterCode.EnemyAnim); OnSyncEnemyAnim(model3); break; } }
public override void OnHandlerMessage(Photon.SocketServer.OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters) { SubCode subCode = ParameterTool.GetParameter <SubCode>(request.Parameters, ParameterCode.SubCode, false); response.Parameters.Add((byte)ParameterCode.SubCode, subCode); switch (subCode) { case SubCode.AddTaskDB: TaskDB taskDB = ParameterTool.GetParameter <TaskDB>(request.Parameters, ParameterCode.TaskDB); taskDB.Role = peer.LoginRole; taskDBManager.AddTaskDB(taskDB); taskDB.Role = null; ParameterTool.AddParameter(response.Parameters, ParameterCode.TaskDB, taskDB); response.ReturnCode = (short)ReturnCode.Success; break; case SubCode.GetTaskDB: List <TaskDB> list = taskDBManager.GetTaskDBList(peer.LoginRole); foreach (var taskDb in list) { taskDb.Role = null; } ParameterTool.AddParameter(response.Parameters, ParameterCode.TaskDBList, list); response.ReturnCode = (short)ReturnCode.Success; break; case SubCode.UpdateTaskDB: TaskDB taskDB2 = ParameterTool.GetParameter <TaskDB>(request.Parameters, ParameterCode.TaskDB); taskDB2.Role = peer.LoginRole; taskDBManager.UpdateTaskDB(taskDB2); response.ReturnCode = (short)ReturnCode.Success; break; } }
public override void OnOperationResponse(OperationResponse response) { print("到RoleController的43行: " + response.ToString()); SubCode subCode = ParameterTool.GetParameter <SubCode>(response.Parameters, ParameterCode.SubCode, false); switch (subCode) { case SubCode.GetRole: List <Role> list = ParameterTool.GetParameter <List <Role> >(response.Parameters, ParameterCode.RoleList); if (OnGetRole != null) { OnGetRole(list); } break; case SubCode.AddRole: Role role = ParameterTool.GetParameter <Role>(response.Parameters, ParameterCode.Role); if (OnAddRole != null) { OnAddRole(role); } break; case SubCode.SelectRole: print("到RoleController的66行: " + SubCode.SelectRole); if (OnSelectRole != null) { OnSelectRole(); } break; } }
/// <summary> /// 用于响应客户端提供的操作 /// </summary> /// <param name="_request"></param> /// <param name="_response"></param> /// <param name="_peer"></param> /// <param name="_sendparameters"></param> public override void OnHandlerMessage(OperationRequest _request, OperationResponse _response, Clientpeer _peer, SendParameters _sendparameters) { Suboperationcode suboperationcode = ParameterTool.Getsuboperateioncode(_request.Parameters); ParameterTool.Addsuboperationcode(_response.Parameters, suboperationcode); switch (suboperationcode) { case Suboperationcode.CREATEROOM: Createroom(_request, _response, _peer); break; case Suboperationcode.JOINROOM: Joinroom(_request, _response, _peer); break; case Suboperationcode.GETROOM: Getroom(_response); break; case Suboperationcode.LEAVEROOM: Leaveroom(_request, _response, _peer); break; } }
public void AddInventoryDB(InventoryDB inventoryDB) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.InventoryDB, inventoryDB); PhotonEngine.Instance.SendRequest(OpCode, SubCode.AddInventoryDB, parameters); }
/// <summary> /// 加入房间 /// </summary> /// <param name="_request">如上</param> /// <param name="response">如上</param> /// <param name="_clientpeer">如上</param> private void Joinroom(OperationRequest _request, OperationResponse response, Clientpeer _clientpeer) { //解析客户端发送的请求 object roomidobj, roompsdobj; _request.Parameters.TryGetValue((byte)Parametercode.ROOMID, out roomidobj); _request.Parameters.TryGetValue((byte)Parametercode.ROOMPSD, out roompsdobj); if (roomidobj == null) { return; } int roomid = int.Parse(roomidobj.ToString()); string roompsd = roompsdobj.ToString(); if (!FIGHTserverapplication.Getfightserverapplication().rooms.ContainsKey(roomid)) { return; } Room roomitem = FIGHTserverapplication.Getfightserverapplication().rooms[roomid]; roomitem.Joinroom(_clientpeer, roompsd); //服务器端回馈客户端的操作码-加入房间的操作码 response.ReturnCode = (byte)Returncode.JOINEDROOM; //服务器端回馈客户端的数据 response.Parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(response.Parameters, Parametercode.ROOMDATA, roomitem.roomdata); }
public override void OnHandlerMessage(OperationRequest request, OperationResponse response, ClientPeer peer) { SubCode subCode = ParameterTool.GetParameter <SubCode>(request.Parameters, ParameterCode.SubCode, false); Dictionary <byte, object> parameters = response.Parameters; parameters.Add((byte)ParameterCode.SubCode, subCode); switch (subCode) { case SubCode.GetTaskDBList: List <TaskDB> taskDBList = manager.GetTaskDBList(peer.LoginRole); foreach (var taskDBTemp in taskDBList) { taskDBTemp.Role = null; //防止json解析错误 } ParameterTool.AddParameter(response.Parameters, ParameterCode.TaskDBList, taskDBList); response.ReturnCode = (short)ReturnCode.Success; break; case SubCode.AddTaskDB: TaskDB taskDBAdd = ParameterTool.GetParameter <TaskDB>(request.Parameters, ParameterCode.TaskDB); taskDBAdd.Role = peer.LoginRole; manager.AddTaskDB(taskDBAdd); taskDBAdd.Role = null; ParameterTool.AddParameter(response.Parameters, ParameterCode.TaskDB, taskDBAdd); response.ReturnCode = (short)ReturnCode.Success; break; case SubCode.UpdateTaskDB: TaskDB taskDBUpdate = ParameterTool.GetParameter <TaskDB>(request.Parameters, ParameterCode.TaskDB); taskDBUpdate.Role = peer.LoginRole; manager.UpdateTaskDB(taskDBUpdate); response.ReturnCode = (short)ReturnCode.Success; break; } }
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 void AsyncPlayerMoveAnimation(PlayerMoveAnimationModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameters <PlayerMoveAnimationModel>(parameters, ParameterCode.PlayerMoveAnimationModel, model); PhotonEngine.Instance.SendRequest(opCode, SubCode.AsyncPlayerMoveAnimation, parameters); }
//public void UpdateRole(Role role) //{ // Dictionary<byte, object> parameters = new Dictionary<byte, object>(); // parameters.Add((byte)ParameterCode.Role, JsonMapper.ToJson(role)); // PhotonEngine.Instance.SendRequest(OpCode, SubCode.UpdateRole, parameters); //} public override void OnOperationResponse(ExitGames.Client.Photon.OperationResponse response) { SubCode subcode = ParameterTool.GetParameter <SubCode>(response.Parameters, ParameterCode.SubCode, false); switch (subcode) { case SubCode.GetRole: List <Role> list = ParameterTool.GetParameter <List <Role> >(response.Parameters, ParameterCode.RoleList); OnGetRole(list); break; case SubCode.AddRole: Role role = ParameterTool.GetParameter <Role>(response.Parameters, ParameterCode.Role); if (response.ReturnCode == (short)ReturnCode.Fail) { MessageManager._instance.ShowMessage(response.DebugMessage); return; } OnAddRole(role); break; case SubCode.SelectRole: if (OnSelectRole != null) { OnSelectRole(); } break; } if (response.ReturnCode == (short)ReturnCode.Fail) { MessageManager._instance.ShowMessage(response.DebugMessage); } }
public override void OnOperationResponse(OperationResponse response) { SubCode subCode = ParameterTool.GetParameter <SubCode>(response.Parameters, ParameterCode.SubCode, false); switch (subCode) { case SubCode.GetTaskDB: List <TaskDB> list = ParameterTool.GetParameter <List <TaskDB> >(response.Parameters, ParameterCode.TaskDBList); if (OnGetTaskDBList != null) { OnGetTaskDBList(list); } break; ; case SubCode.AddTaskDB: TaskDB taskDb = ParameterTool.GetParameter <TaskDB>(response.Parameters, ParameterCode.TaskDB); if (OnAddTaskDB != null) { OnAddTaskDB(taskDb); } break; ; case SubCode.UpdateTaskDB: if (OnUpdateTaskDB != null) { OnUpdateTaskDB(); } break; } }
public override void OnOperationResponse(OperationResponse operationResponse) { //根据子操作代码分别进行不同的处理 SubCode subCode = ParameterTool.GetParameter <SubCode>(operationResponse.Parameters, ParameterCode.SubCode, false); switch (subCode) { case SubCode.GetRole: //Debug.Log("SubCode.GetRole"); List <Role> list = ParameterTool.GetParameter <List <Role> >(operationResponse.Parameters, ParameterCode.RoleList); OnGetRole(list); break; case SubCode.AddRole: //Debug.Log("SubCode.AddRole"); Role role = ParameterTool.GetParameter <Role>(operationResponse.Parameters, ParameterCode.Role); OnAddRole(role); break; case SubCode.SelectRole: //Debug.Log("SubCode.SelectRole"); OnSelectRole(); break; } }
public override void OnEvent(EventData eventData) { SubCode subCode = ParameterTool.GetParameters <SubCode>(eventData.Parameters, ParameterCode.SubCode, false); switch (subCode) { case SubCode.CreateEnemy: //Debug.Log("Get the response from server.."); CreateEnemyModel model = ParameterTool.GetParameters <CreateEnemyModel>(eventData.Parameters, ParameterCode.CreateEnemyModel); if (OnCreateEnemy != null) { OnCreateEnemy(model); } break; case SubCode.AsyncPostionAndEularAngler: EnemyPostionModel enemyPosmodel = ParameterTool.GetParameters <EnemyPostionModel>(eventData.Parameters, ParameterCode.EnemyPostionModel); if (OnAsyncEnemyPostionRotation != null) { OnAsyncEnemyPostionRotation(enemyPosmodel); } break; case SubCode.SyncEnemyAnimation: EnemyAnimationModel enemyAnimmodel = ParameterTool.GetParameters <EnemyAnimationModel>(eventData.Parameters, ParameterCode.EnemyAnimationModel); if (OnSyncEnemyAnimation != null) { OnSyncEnemyAnimation(enemyAnimmodel); } break; } }
public void SyncBossAnim(BossAnimModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.BossAnim, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncBossAnim, parameters); }
public void SendCreatEnemy(EnemyCreatModel model) //创建敌人 { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.CreatEnemy, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncEnemyCreat, parameters); }
public void UpdateInventoryItemDB(InventoryItemDB iidb) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameters <InventoryItemDB>(parameters, ParameterCode.InventoryItemdb, iidb); PhotonEngine.Instance.SendRequest(opCode, SubCode.UpdateInventoryItemDB, parameters); }
public override void OnOperationResponse(OperationResponse operationResponse) { SubCode subCode = ParameterTool.GetSubCode(operationResponse.Parameters); switch (subCode) { case SubCode.GetSkillDBList: //Debug.Log("OnGetSkillList"); List <SkillDB> skillList = ParameterTool.GetParameter <List <SkillDB> >(operationResponse.Parameters, ParameterCode.SkillDBList); OnGetSkillList(skillList); break; case SubCode.AddSkillDB: //Debug.Log("OnAddSkillDB"); SkillDB skillAdd = ParameterTool.GetParameter <SkillDB>(operationResponse.Parameters, ParameterCode.SkillDB); OnAddSkillDB(skillAdd); break; case SubCode.UpgradeSkillDB: //Debug.Log("OnUpgradeSkillDB"); SkillDB skillUpgrade = ParameterTool.GetParameter <SkillDB>(operationResponse.Parameters, ParameterCode.SkillDB); OnUpgradeSkillDB(skillUpgrade); break; } }
public void UpdateTaskDB(TaskDB taskDB) //向服务器更新任务进度 { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.TaskDB, taskDB); PhotonEngine.Instance.SendRequest(OpCode, SubCode.UpdateTaskDB, parameters); }
public void SyncEnemyAnimation(EnemyAnimationModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParmeter(parameters, ParameterCode.EnemyAnimationModel, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncAnimation, parameters); }
public void UpdateInventoryItemDB(InventoryItemDB itemDb) { itemDb.Role = null; Dictionary<byte, object> parameters = new Dictionary<byte, object>(); ParameterTool.AddParmeter(parameters, ParameterCode.InventoryItemDB, itemDb); PhotonEngine.Instance.SendRequest(OpCode, SubCode.UpdateInventoryItemDB, parameters); }
public void SendGameState(GameStateModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.GameState, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncGameState, parameters); }
public override void OnOperationResponse(ExitGames.Client.Photon.OperationResponse response) { SubCode subCode = ParameterTool.GetParameters <SubCode>(response.Parameters, ParameterCode.SubCode, false); switch (subCode) { case SubCode.SendTeam: if (response.ReturnCode == (short)ReturnCode.GetTeam) { List <Role> list = ParameterTool.GetParameters <List <Role> >(response.Parameters, ParameterCode.RoleList); int masterRoleID = ParameterTool.GetParameters <int>(response.Parameters, ParameterCode.MasterRoleID, false); //组队成功 if (OnGetTeam != null) { OnGetTeam(list, masterRoleID); } } else if (response.ReturnCode == (short)ReturnCode.WaitTeam) { if (OnWaitTeam != null) { OnWaitTeam(); } //正在组队 } break; case SubCode.CancelTeam: if (OnCancelTeam != null && response.ReturnCode == (short)ReturnCode.Success) { 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 void UpdateSkillDB(SkillDB skillDb) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); skillDb.Role = null; ParameterTool.AddParmeter(parameters, ParameterCode.SkillDB, skillDb); PhotonEngine.Instance.SendRequest(OpCode, SubCode.Update, parameters); }