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);
    }
Exemple #2
0
    //发起创建敌人的请求
    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);
    }
Exemple #8
0
        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;
            }
        }
Exemple #9
0
        /// <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;
            }
        }
Exemple #11
0
    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);
    }
Exemple #13
0
    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);
    }
Exemple #16
0
    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);
    }
Exemple #17
0
    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);
    }
Exemple #18
0
        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);
        }
Exemple #19
0
        //发送团队角色位置和旋转进行同步
        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());
        }
Exemple #20
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;
            }
        }
Exemple #21
0
        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;
            }
        }
Exemple #22
0
        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;
            }
        }
Exemple #23
0
        //发送给客户端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());
        }
Exemple #24
0
        //向客户端发送 位置和旋转的数据 进行同步
        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);
    }
Exemple #27
0
    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);
    }
Exemple #28
0
        //发起组队
        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());
        }
Exemple #29
0
        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);
        }
Exemple #30
0
        //向客户端发送同步的位置和旋转进行同步
        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());
        }