Example #1
0
        private void SendPosition()
        {
            PlayerList playerList = new PlayerList();

            foreach (ClientPeer peer in MyGameServer.Instance.peerList)
            {
                if (!string.IsNullOrEmpty(peer.userName) && peer.posData != null)
                {
                    PlayerData playerData = new PlayerData();
                    playerData.UsrName = peer.userName;
                    playerData.Pos     = new VectorData()
                    {
                        X = peer.posData.X, Y = peer.posData.Y, Z = peer.posData.Z
                    };
                    playerList.PlayerList_.Add(playerData);
                }
            }

            //MyGameServer.LogInfo("playerList = " + playerList.ToString());

            Dictionary <byte, object> data = DictTool.GetDtoDataByProto(playerList, ParameterCode.PlayerDataList);

            foreach (ClientPeer peer in MyGameServer.Instance.peerList)
            {
                if (!string.IsNullOrEmpty(peer.userName))
                {
                    EventData ed = new EventData((byte)EventCode.SyncPosition);
                    ed.Parameters = data;
                    //MyGameServer.LogInfo("peer.SendEvent userName = " + peer.userName);
                    peer.SendEvent(ed, new SendParameters());
                }
            }
        }
Example #2
0
    public override void DefaultRequest()
    {
        LoginData loginData = new LoginData();

        loginData.UserName = UserName;
        loginData.PassWord = PassWord;
        Dictionary <byte, object> data = DictTool.GetDtoDataByProto(loginData, ParameterCode.LoginData);

        Debug.Log("LoginRequest send " + OpCode.ToString());
        PhotonEngine.Peer.OpCustom((byte)OpCode, data, true);
    }
    public override void DefaultRequest()
    {
        RegisterData registerData = new RegisterData()
        {
            UserName = userName,
            PassWord = passWord,
        };
        Dictionary <byte, object> data = DictTool.GetDtoDataByProto(registerData, ParameterCode.RegisterData);

        Debug.Log("RegisterRequest send " + OpCode.ToString());
        PhotonEngine.Peer.OpCustom((byte)OpCode, data, true);
    }
Example #4
0
    public override void DefaultRequest()
    {
        VectorData vectorData = new VectorData()
        {
            X = pos.x, Y = pos.y, Z = pos.z
        };

        Dictionary <byte, object> data = DictTool.GetDtoDataByProto(vectorData, ParameterCode.Position);

        Debug.Log("SyncPositionRequest send " + OpCode.ToString());
        PhotonEngine.Peer.OpCustom((byte)OpCode, data, true);
    }
Example #5
0
        public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, ClientPeer peer)
        {
            //取得所有已经登录的用户
            List <string> userNameList = new List <string>();

            foreach (var tempPeer in MyGameServer.Instance.peerList)
            {
                if (!string.IsNullOrEmpty(tempPeer.userName) && tempPeer != peer)
                {
                    userNameList.Add(tempPeer.userName);
                }
            }

            //StringWriter sw = new StringWriter();
            //XmlSerializer serializer = new XmlSerializer(typeof(List<string>));
            //serializer.Serialize(sw,userNameList);
            //sw.Close();
            //string userNameListString = sw.ToString();

            UserNameList userNameListString = new UserNameList();

            userNameListString.NameList.AddRange(userNameList);
            Dictionary <byte, object> data = DictTool.GetDtoDataByProto(userNameListString, ParameterCode.UserNameList);


            OperationResponse response = new OperationResponse(operationRequest.OperationCode);

            response.Parameters = data;
            peer.SendOperationResponse(response, sendParameters);


            NewPlayer newPlayer = new NewPlayer();

            newPlayer.UserName = peer.userName;

            EventData eventData             = new EventData((byte)EventCode.NewPlayer);
            Dictionary <byte, object> data2 = DictTool.GetDtoDataByProto(newPlayer, ParameterCode.UserName);

            eventData.Parameters = data2;

            foreach (var tempPeer in MyGameServer.Instance.peerList)
            {
                if (!string.IsNullOrEmpty(tempPeer.userName) && tempPeer != peer)
                {
                    tempPeer.SendEvent(eventData, sendParameters);
                }
            }
        }