public override void OnOpereationRequest(OperationRequest operationRequest, SendParameters sendParameters, ClientPeer peer)
        {
            float x = (float)DictTool.GetDictValue <byte, object>(operationRequest.Parameters, (byte)ParameterCode.X);
            float y = (float)DictTool.GetDictValue <byte, object>(operationRequest.Parameters, (byte)ParameterCode.Y);
            float z = (float)DictTool.GetDictValue <byte, object>(operationRequest.Parameters, (byte)ParameterCode.Z);

            peer.x = x;
            peer.y = y;
            peer.z = z;
        }
    public void OnSyncPlayerPosition(List <PlayerData> playerDatas)
    {
        foreach (var item in playerDatas)
        {
            var go = DictTool.GetDictValue <string, GameObject>(gameObjectDict, item.Username);

            if (go != null)
            {
                go.transform.position = new Vector3(item.Position.X, item.Position.Y, item.Position.Z);
            }
        }
    }
Example #3
0
    public override void OnEvent(EventData eventData)
    {
        string playerDataListString = (string)DictTool.GetDictValue <byte, object>(eventData.Parameters, (byte)ParameterCode.PlayerDataList);

        using (StringReader sr = new StringReader(playerDataListString))
        {
            XmlSerializer     xmlSerializer  = new XmlSerializer(typeof(List <PlayerData>));
            List <PlayerData> playerDataList = (List <PlayerData>)xmlSerializer.Deserialize(sr);

            PlayerController.Instance.OnSyncPlayerPosition(playerDataList);
        }
    }
    public override void OnOperationResponse(OperationResponse operationResponse)
    {
        string xmlString = (string)DictTool.GetDictValue <byte, object>(operationResponse.Parameters, (byte)ParameterCode.UsernameList);

        #region 反序列化
        using (StringReader sr = new StringReader(xmlString))
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(List <string>));
            List <string> usernameList  = (List <string>)xmlSerializer.Deserialize(sr);
            PlayerController.Instance.OnSyncPlayerResponse(usernameList);
        }
        #endregion
    }
Example #5
0
        public override void OnOpereationRequest(OperationRequest operationRequest, SendParameters sendParameters, ClientPeer peer)
        {
            string username = DictTool.GetDictValue<byte, object>(operationRequest.Parameters, (byte)ParameterCode.Username) as string;
            string password = DictTool.GetDictValue<byte, object>(operationRequest.Parameters, (byte)ParameterCode.Password) as string;

            OperationResponse operationResponse = new OperationResponse(operationRequest.OperationCode);
            bool simpleJudge = UserManager.Instance.VerifyUserAccount(username, password);
            if (simpleJudge)
            {
                operationResponse.ReturnCode = (short)ReturnCode.Success;
                peer.username = username;
            }
            else
            {
                operationResponse.ReturnCode = (short)ReturnCode.Failed;
            }

            peer.SendOperationResponse(operationResponse, sendParameters);
        }
        public override void OnOpereationRequest(OperationRequest operationRequest, SendParameters sendParameters, ClientPeer peer)
        {
            string username = DictTool.GetDictValue <byte, object>(operationRequest.Parameters, (byte)ParameterCode.Username) as string;
            string password = DictTool.GetDictValue <byte, object>(operationRequest.Parameters, (byte)ParameterCode.Password) as string;

            OperationResponse operationResponse = new OperationResponse(operationRequest.OperationCode);

            //Verify is db exist this account
            if (UserManager.Instance.IsDBExistSameUsername(username))
            {
                operationResponse.ReturnCode = (short)ReturnCode.AccountExist;
            }
            else
            {
                UserManager.Instance.Add(username, password);
                operationResponse.ReturnCode = (short)ReturnCode.RegisterSuccess;
            }

            peer.SendOperationResponse(operationResponse, sendParameters);
        }
Example #7
0
        //处理客户端的请求
        protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)
        {
            BaseHandler handler = DictTool.GetDictValue <OperationCode, BaseHandler>(MyGameServer.Instance.handlerSet, (OperationCode)operationRequest.OperationCode);

            if (handler == null)
            {
                handler = DictTool.GetDictValue <OperationCode, BaseHandler>(MyGameServer.Instance.handlerSet, OperationCode.DefaultOperation);
            }
            handler.OnOpereationRequest(operationRequest, sendParameters, this);
            #region 测试

            /*
             * //通过OpCode区分不同的请求,类似于枚举
             * switch (operationRequest.OperationCode)
             * {
             *  case 1:
             *      MyGameServer.log.Info("Receive a request from client.");
             *
             *      object clientValue;
             *      operationRequest.Parameters.TryGetValue(1, out clientValue);
             *      MyGameServer.log.Info("data from client equals to: "+clientValue.ToString());
             *
             *      Dictionary<byte, object> data = new Dictionary<byte, object>();
             *      string serverValue = "this data is sent from server.";
             *      data.Add(1, serverValue);
             *      string eventValue = "this is for testing sentEvent.";
             *      data.Add(2, eventValue);
             *      OperationResponse operationResponse = new OperationResponse(1,data);
             *      //operationResponse.SetParameters(data);
             *
             *      EventData ed = new EventData(1, data);
             *      SendEvent(ed, sendParameters);
             *      //给客户端发起响应
             *      SendOperationResponse(operationResponse, sendParameters);
             *      break;
             *  default:
             *      break;
             * }
             */
            #endregion
        }
    //服务器端向客户端发消息时就会响应
    public void OnEvent(EventData eventData)
    {
        //这种方法称之为分发
        EventCode eventCode = (EventCode)eventData.Code;
        BaseEvent e         = DictTool.GetDictValue <EventCode, BaseEvent>(eventSet, eventCode);

        e.OnEvent(eventData);

        #region 测试

        /*switch(eventData.Code)
         * {
         *  case 1:
         *      object eventValue;
         *      eventData.Parameters.TryGetValue(2, out eventValue);
         *      Debug.Log("Receive a event,its value is: "+eventValue.ToString());
         *      break;
         *  default:
         *      break;
         * }*/
        #endregion
    }
Example #9
0
    public override void OnEvent(EventData eventData)
    {
        string username = (string)DictTool.GetDictValue <byte, object>(eventData.Parameters, (byte)ParameterCode.Username);

        PlayerController.Instance.OnNewPlayerEvent(username);
    }