Exemple #1
0
    //发起创建敌人的请求
    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);
    }
Exemple #2
0
    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 override void OnHandlerMessage(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.AddParmeter(response.Parameters, ParameterCode.TaskDB, taskDB);
                response.ReturnCode = (short)ReturnCode.Success;
                break;

            case SubCode.GetTaskDB:
                List <TaskDB> list = taskDbManager.GeTaskDbList(peer.LoginRole);
                foreach (var taskDb in list)
                {
                    taskDb.Role = null;
                }
                ParameterTool.AddParmeter(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 #5
0
    //发送同步游戏胜利状态
    public void SendGameState(GameStateModel model)
    {
        Dictionary <byte, object> parameters = new Dictionary <byte, object>();

        ParameterTool.AddParmeter(parameters, ParameterCode.GameSteteModel, model);
        PhotonEngine.Instance.SendRequest(OpCode, SubCode.SendGameState, parameters);
    }
    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);
    }
Exemple #7
0
    public void UpdateTaskDB(TaskDB taskDB)
    {
        Dictionary <byte, object> parameters = new Dictionary <byte, object>();

        taskDB.Role = null;
        ParameterTool.AddParmeter(parameters, ParameterCode.TaskDB, taskDB);
        PhotonEngine.Instance.SendRequest(OpCode, SubCode.UpdateTaskDB, parameters);
    }
Exemple #8
0
    //发起同步位置和旋转的请求
    public void SyncPositionAndRotion(Vector3 position, Vector3 eulerAngles)
    {
        Dictionary <Byte, object> parameters = new Dictionary <byte, object>();

        ParameterTool.AddParmeter(parameters, ParameterCode.RoleId, PhotonEngine.Instance.role.Id, false);
        ParameterTool.AddParmeter(parameters, ParameterCode.Position, new Vector3Obj(position));
        ParameterTool.AddParmeter(parameters, ParameterCode.EulerAngles, new Vector3Obj(eulerAngles));
        PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncPositionAndRotation, 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.AddParmeter(parameters,ParameterCode.InventoryItemDB,itemDb);
     ParameterTool.AddParmeter(parameters,ParameterCode.Role,role);
     PhotonEngine.Instance.SendRequest(OpCode,SubCode.UpgradeEquip,parameters);
 }
Exemple #10
0
        public override void OnHandlerMessage(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters)
        {
            SubCode subCode = ParameterTool.GetParameter <SubCode>(request.Parameters, ParameterCode.SubCode, false);

            ParameterTool.AddParmeter(response.Parameters, ParameterCode.SubCode, subCode, false);
            switch (subCode)
            {
            case SubCode.GetInventoryItemDB:
                List <InventoryItemDB> list = inventoryItemDbManager.GetInventoryItemDB(peer.LoginRole);
                foreach (var item in list)
                {
                    item.Role = null;
                }
                ParameterTool.AddParmeter(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.AddParmeter(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 void UpdateInventoryItemDBList(InventoryItemDB itemDB1,InventoryItemDB itemDB2)
 {
     itemDB1.Role = null;
     itemDB2.Role = null;
     List<InventoryItemDB> list = new List<InventoryItemDB>();
     list.Add(itemDB1);
     list.Add(itemDB2);
     Dictionary<byte,object> parameters=new Dictionary<byte, object>();
     ParameterTool.AddParmeter(parameters,ParameterCode.InventoryItemDBList,list);
     PhotonEngine.Instance.SendRequest(OpCode,SubCode.UpdateInventoryItemDBList,parameters);
 }
        public override void OnHandlerMessage(OperationRequest request, OperationResponse response, ClientPeer peer, SendParameters sendParameters)
        {
            //先得到子操作代码,根据子操作代码,分别进行不同的处理
            SubCode subCode = ParameterTool.GetParameter <SubCode>(request.Parameters, ParameterCode.SubCode, false);

            Dictionary <byte, object> parameters = response.Parameters;

            parameters.Add((byte)ParameterCode.SubCode, subCode);
            response.OperationCode = request.OperationCode;
            switch (subCode)
            {
            case SubCode.GetRole:
                List <Role> rolelList = roleManager.GetRoleListByUser(peer.LoginUser);
                foreach (var role1 in rolelList)
                {
                    role1.User = null;
                }
                ParameterTool.AddParmeter(parameters, ParameterCode.RoleList, rolelList);
                break;

            case SubCode.AddRole:
                Role role = ParameterTool.GetParameter <Role>(request.Parameters, ParameterCode.Role);    //request ?? response 互换实验看看 ??request正确
                role.User = peer.LoginUser;
                roleManager.AddRole(role);
                role.User = null;
                ParameterTool.AddParmeter(response.Parameters, ParameterCode.Role, role);
                break;

            case SubCode.SelectRole:
                peer.LoginRole = ParameterTool.GetParameter <Role>(request.Parameters, ParameterCode.Role);
                break;

            case SubCode.UpdateRole:
                Role role2 = ParameterTool.GetParameter <Role>(request.Parameters, ParameterCode.Role);
                role2.User = peer.LoginUser;
                roleManager.UpdateRole(role2);
                role2.User          = null;
                response.ReturnCode = (short)ReturnCode.Success;
                break;

            case SubCode.GetTumoRole:
                User user = ParameterTool.GetParameter <User>(request.Parameters, ParameterCode.User);
                log.Debug("Role63" + user.Username);
                User        user1         = userManager.GetUserByUsernmae(user.Username);
                List <Role> tumoRolelList = roleManager.GetRoleListByUser(user1);
                foreach (var role1 in tumoRolelList)
                {
                    role1.User = null;
                }
                ParameterTool.AddParmeter(parameters, ParameterCode.TumoRoleList, tumoRolelList);
                log.Debug("Role70" + tumoRolelList[0].Name);
                break;
            }
        }
Exemple #13
0
        //向客户端发送 位置和旋转的数据 进行同步
        void SendEventByPeer(ClientPeer peer, OperationCode opCode, SubCode subCode, int roleid, object posObj, object eulerAmglesObj)
        {
            EventData data = new EventData();

            data.Parameters = new Dictionary <byte, object>();
            ParameterTool.AddParmeter(data.Parameters, ParameterCode.OperationCode, opCode, false);
            ParameterTool.AddParmeter(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, eulerAmglesObj);
            peer.SendEvent(data, new SendParameters());
        }
Exemple #14
0
        void SendEventByPeer(ClientPeer peer, OperationCode opCode, SubCode subCode, List <Role> rolelList, int masterRoleId)
        {
            //OperationResponse response=new OperationResponse();
            //response.Parameters=new Dictionary<byte, object>();
            //ParameterTool.AddSubcode(response.Parameters,subCode);
            //ParameterTool.AddParmeter(response.Parameters,ParameterCode.RoleList,rolelList);
            //response.ReturnCode = (short) ReturnCode.GetTeam;
            //peer.SendOperationResponse(response, sendParameters);

            EventData eventData = new EventData();

            eventData.Parameters = new Dictionary <byte, object>();
            ParameterTool.AddParmeter(eventData.Parameters, ParameterCode.OperationCode, opCode, false);
            ParameterTool.AddSubcode(eventData.Parameters, subCode);
            ParameterTool.AddParmeter(eventData.Parameters, ParameterCode.RoleList, rolelList);
            ParameterTool.AddParmeter(eventData.Parameters, ParameterCode.MasterRoleId, masterRoleId, false);

            peer.SendEvent(eventData, new SendParameters());
        }
Exemple #15
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.AddParmeter(request.Parameters, ParameterCode.SkillDB, skillDb);
                break;

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

            case SubCode.Get:
                List <SkillDB> list = skillDbManager.Get(peer.LoginRole);
                foreach (var temp in list)
                {
                    temp.Role = null;
                }
                ParameterTool.AddParmeter(response.Parameters, ParameterCode.SkillDBList, list);
                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.AddParmeter(response.Parameters, ParameterCode.SkillDB, skillDb3);
                break;
            }
        }
Exemple #16
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;
            }
        }