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 void SendCreateEnemy(CreateEnemyModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.CreateEnemyModel, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.CreateEnemy, 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 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 SyncEnemyAnim(EnemyAnimModel model) //同步敌人动画 { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.EnemyAnim, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncEnemyAnim, parameters); }
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 AddInventoryDB(InventoryDB inventoryDB) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.InventoryDB, inventoryDB); PhotonEngine.Instance.SendRequest(OpCode, SubCode.AddInventoryDB, parameters); }
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; } }
/// <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 void SyncBossAnimation(BossAnimationModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.BossAnimationModel, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncBossAnimation, parameters); }
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 void UpdateInventoryItemDB(InventoryItemDB itemDB) { itemDB.Role = null; Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.InventoryItemDB, itemDB); PhotonEngine.Instance.SendRequest(OpCode, SubCode.UpdateInventoryItemDB, parameters); }
public void Register(User user) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddSubcode(parameters, SubCode.AccRegister); ParameterTool.AddParameter <User>(parameters, ParameterCode.User, user); SocketEngine.Instance.SendRequest(OpCode, parameters); }
public void SyncPositionAndRotation(Vector3 position, Vector3 eulerAngles) //发起同步团队角色请求 { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.Position, new Vector3Object(position)); ParameterTool.AddParameter(parameters, ParameterCode.EulerAngles, new Vector3Object(eulerAngles)); PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncPositionAndRotation, parameters); }
public void AddTaskDB(TaskDB taskDB) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); taskDB.Role = null; ParameterTool.AddParameter(parameters, ParameterCode.TaskDB, taskDB); PhotonEngine.Instance.SendRequest(OpCode, SubCode.AddTaskDB, parameters); }
public void UpdateSkillDB(SkillDB skillDB) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); skillDB.Role = null; ParameterTool.AddParameter(parameters, ParameterCode.SkillDB, skillDB); PhotonEngine.Instance.SendRequest(OpCode, SubCode.Update, parameters); }
public void Joinroom(string _id) { Dictionary <byte, object> parameter = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameter, Parametercode.SUBOPERATIONCODE, Suboperationcode.JOINROOM, false); ParameterTool.AddParameter(parameter, Parametercode.ROOMID, _id, false); ParameterTool.AddParameter(parameter, Parametercode.ROOMPSD, "0", false); Clientengine.Getclientengine.SendRequest((byte)Operationcode.ROOMOP, parameter); }
//发送团队角色位置和旋转进行同步 public void SendPositionAndRotationToPeer(ClientPeer peer, OperationCode opCode, SubCode subCode, int roleId, object position, object eulerAngles) { EventData data = new EventData(); data.Parameters = new Dictionary <byte, object>(); ParameterTool.AddEventToPeer(data.Parameters, opCode, subCode, roleId); ParameterTool.AddParameter(data.Parameters, ParameterCode.Position, position.ToString(), false); ParameterTool.AddParameter(data.Parameters, ParameterCode.EulerAngles, eulerAngles.ToString(), false); peer.SendEvent(data, new SendParameters()); }
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.GetParameter <SubCode>(request.Parameters, ParameterCode.SubCode, false); ParameterTool.AddParameter(response.Parameters, ParameterCode.SubCode, subcode, false); switch (subcode) { case SubCode.GetInventoryItemDB: List <InventoryItemDB> list = inventoryItemDbManager.GetInventoryItemDB(peer.LoginRole); foreach (var temp in list) { temp.Role = null; } ParameterTool.AddParameter(response.Parameters, ParameterCode.InventoryItemDBList, list); break; case SubCode.AddInventoryItemDB: InventoryItemDB itemDB = ParameterTool.GetParameter <InventoryItemDB>(request.Parameters, ParameterCode.InventoryItemDB); itemDB.Role = peer.LoginRole; inventoryItemDbManager.AddInventoryItemDB(itemDB); itemDB.Role = null; ParameterTool.AddParameter(response.Parameters, ParameterCode.InventoryItemDB, itemDB); response.ReturnCode = (short)ReturnCode.Success; break; case SubCode.UpdateInventoryItemDB: InventoryItemDB itemDB2 = ParameterTool.GetParameter <InventoryItemDB>(request.Parameters, ParameterCode.InventoryItemDB); itemDB2.Role = peer.LoginRole; inventoryItemDbManager.UpdateInventoryItemDB(itemDB2); break; case SubCode.UpdateInventoryItemDBList: List <InventoryItemDB> list2 = ParameterTool.GetParameter <List <InventoryItemDB> >(request.Parameters, ParameterCode.InventoryItemDBList); foreach (var itemDB3 in list2) { itemDB3.Role = peer.LoginRole; } inventoryItemDbManager.UpdateInventoryItemDBList(list2); break; case SubCode.UpgradeEquip: InventoryItemDB itemDB4 = ParameterTool.GetParameter <InventoryItemDB>(request.Parameters, ParameterCode.InventoryItemDB); Role role = ParameterTool.GetParameter <Role>(request.Parameters, ParameterCode.Role); peer.LoginRole = role; role.User = peer.LoginUser; itemDB4.Role = role; inventoryItemDbManager.UpgradeEquip(itemDB4, role); break; } }
public override void OnHandlerMessage(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters) { SubCode subcode = ParameterTool.GetParameter <SubCode>(request.Parameters, ParameterCode.SubCode, false); ParameterTool.AddParameter(response.Parameters, ParameterCode.SubCode, subcode, false); switch (subcode) { case SubCode.GetInventoryDB: Role role = peer.LoginRole; List <InventoryDB> list = inventoryManager.GetInventoryDB(role); foreach (var inventorydb in list) { inventorydb.Role = null; } ParameterTool.AddParameter(response.Parameters, ParameterCode.InventoryDBList, list); response.ReturnCode = (short)ReturnCode.Success; break; case SubCode.AddInventoryDB: TaidouServer.log.Debug("在此将物品添加到数据库中"); InventoryDB itemDb = ParameterTool.GetParameter <InventoryDB>(request.Parameters, ParameterCode.InventoryDB); itemDb.Role = peer.LoginRole; TaidouServer.log.Debug(itemDb.Level); inventoryManager.AddInventoryDB(itemDb); itemDb.Role = null; ParameterTool.AddParameter(response.Parameters, ParameterCode.InventoryDB, itemDb); response.ReturnCode = (short)ReturnCode.Success; break; case SubCode.UpdateInventoryDB: InventoryDB itemdb1 = ParameterTool.GetParameter <InventoryDB>(request.Parameters, ParameterCode.InventoryDB); itemdb1.Role = peer.LoginRole; inventoryManager.UpdateInventoryDB(itemdb1); break; case SubCode.ChangeInventoryDBList: List <InventoryDB> itemList = ParameterTool.GetParameter <List <InventoryDB> >(request.Parameters, ParameterCode.InventoryDBList); foreach (var temp in itemList) { temp.Role = peer.LoginRole; } inventoryManager.ChangeInventoryDBList(itemList); break; case SubCode.UpgradeEquip: InventoryDB itemdb2 = ParameterTool.GetParameter <InventoryDB>(request.Parameters, ParameterCode.InventoryDB); Role role2 = ParameterTool.GetParameter <Role>(request.Parameters, ParameterCode.Role); peer.LoginRole = role2; role2.User = peer.LoginUser; itemdb2.Role = role2; inventoryManager.UpgradeEquip(itemdb2, role2); break; } }
//发送给客户端masterId public void SendMasterIdToPeer(ClientPeer peer, OperationCode opCode, SubCode subCode, int masterRoleId, List <Role> roleList) { EventData data = new EventData(); data.Parameters = new Dictionary <byte, object>(); ParameterTool.AddOperationCode(data.Parameters, opCode); ParameterTool.AddSubCode(data.Parameters, subCode); ParameterTool.AddParameter(data.Parameters, ParameterCode.MasterRoleId, masterRoleId, false); ParameterTool.AddParameter(data.Parameters, ParameterCode.RoleList, roleList); peer.SendEvent(data, new SendParameters()); }
//向客户端发送 位置和旋转的数据 进行同步 void SendEventByPeer(ClientPeer peer, OperationCode opCode, SubCode subCode, int roleId, object posObj, object eulerAnglesObj) { EventData data = new EventData(); data.Parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(data.Parameters, ParameterCode.OperationCode, opCode, false); ParameterTool.AddParameter(data.Parameters, ParameterCode.SubCode, subCode, false); data.Parameters.Add((byte)ParameterCode.RoleID, roleId); data.Parameters.Add((byte)ParameterCode.Position, posObj.ToString()); data.Parameters.Add((byte)ParameterCode.EulerAngles, eulerAnglesObj.ToString()); peer.SendEvent(data, new SendParameters()); }
public void UpgradeSkill(SkillDB skill) { skill.Role = null; Role role = PhotonEngine.Instance.role; role.User = null; Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.SkillDB, skill); ParameterTool.AddParameter(parameters, ParameterCode.Role, role); PhotonEngine.Instance.SendRequest(OpCode, SubCode.UpgradeSkillDB, parameters); }
public void Login(User user) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddSubcode(parameters, SubCode.AccLogin); ParameterTool.AddParameter <User>(parameters, ParameterCode.User, user); foreach (var v in parameters) { Debug.Log("key=" + v.Key + ",value=" + v.Value); } SocketEngine.Instance.SendRequest(OpCode, parameters); }
public void UpgradeEquip(InventoryItemDB itemDB) { itemDB.Role = null; Role role = PhotonEngine.Instance.role; role.User = null; Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(parameters, ParameterCode.InventoryItemDB, itemDB); ParameterTool.AddParameter(parameters, ParameterCode.Role, role); PhotonEngine.Instance.SendRequest(OpCode, SubCode.UpgradeEquip, parameters); }
//发起组队 void SendEventByPeer(ClientPeer peer, OperationCode opCode, SubCode subcode, List <Role> rolelist, int masterRoleID) { EventData eventData = new EventData(); eventData.Parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(eventData.Parameters, ParameterCode.OperationCode, opCode, false); ParameterTool.AddParameter(eventData.Parameters, ParameterCode.MasterRoleID, masterRoleID, false); ParameterTool.AddParameter(eventData.Parameters, ParameterCode.RoleList, rolelist); ParameterTool.AddSubCode(eventData.Parameters, subcode); peer.SendEvent(eventData, new SendParameters()); }
public override void OnHandleMessage(OperationRequest request, OperationResponse response, MasterClientPeer peer, SendParameters sendParameters) { var list = serverManager.GetServerList(); ParameterTool.AddParameter(response.Parameters, ParameterCode.ServerList, list); //string serverlist = "我是服务器列表"; //response.Parameters.Add((byte)ParameterCode.ServerList, serverlist); response.ReturnCode = (short)ReturnCode.Success; // EventData eventData = new EventData((byte) OperationCode.Server); // SendEvent(peer,eventData); }
//向客户端发送同步的位置和旋转进行同步 void SendPositionAndRotation(ClientPeer peer, OperationCode opcode, SubCode subcode, int roleid, object objPos, object objEulerAngles) { EventData eventData = new EventData(); eventData.Parameters = new Dictionary <byte, object>(); ParameterTool.AddParameter(eventData.Parameters, ParameterCode.OperationCode, opcode, false); ParameterTool.AddParameter(eventData.Parameters, ParameterCode.SubCode, subcode, false); eventData.Parameters.Add((byte)ParameterCode.RoleID, roleid); eventData.Parameters.Add((byte)ParameterCode.Position, objPos.ToString()); eventData.Parameters.Add((byte)ParameterCode.EulerAngles, objEulerAngles.ToString()); peer.SendEvent(eventData, new SendParameters()); }