/// <summary>
 /// Request for Server Information
 /// </summary>
 /// <remarks>
 /// Order:
 /// String TokenID
 /// </remarks>
 /// <param name="message"></param>
 private void ServerInfoRequest(InputMessage message)
 {
     string tokenID = message.Reader.ReadString();
     ClientInfo client;
     string detailMessage;
     bool success = GameServer.UserManager.GetUserByTokenIDSecure(tokenID, message.ConnectionId, out client, out detailMessage);
     ServerInfoResponse(message.ConnectionId, success, detailMessage);
 }
 //Here is the Action
 private void HandleMessage(InputMessage message)
 {
     switch (message.MsgSubject)
     {
         case Subjects.LoginRequest       : LoginRequest(message); break;
         case Subjects.LogOutRequest      : DisconnectRequest(message); break;
         case Subjects.ServerInfoRequest  : ServerInfoRequest(message); break;
     }
 }
Exemple #3
0
 public void HandleInputMessage(InputMessage message)
 {
     switch(message.Kind)
     {
         // Intentional fallthrough
         case InputMessage.MessageType.ControlsAction:
         case InputMessage.MessageType.ControlsUp:
         case InputMessage.MessageType.ControlsDown:
         case InputMessage.MessageType.ControlsLeft:
         case InputMessage.MessageType.ControlsRight:
             connectionToServer.Send(message);
             break;
     }
 }
        public void ProcessMessage(InputMessage message)
        {
            if (message.InputType != InputMessage.InputTypes.TwoFingerTwist) {
                return;
            }

            if (message.MessageType == InputMessage.MessageTypes.Update) {
                _raycast.CastPoint = (message.FingerPositions[0] + message.FingerPositions[1]) / 2.0f;
                _raycast.Invalidate();

                //Debug.Log(string.Format("mag: {0}, didHit: {1}", _input.Delta.magnitude, _raycast.DidHit));
                if (Mathf.Abs(message.GestureData[0]) > _startThreshold && _raycast.DidHit) {
                    _rotateDelta = message.GestureData[0];
                }

                if (Math.Abs(_rotateDelta) > _startThreshold) {
                    float delta = _rotateDelta * _rotateFactor;
                    TransformClone t = TransformClone.FromTransform(_targetCamera.transform);
                    //Debug.Log("Delta: " + delta);

                    _deltaRot = Quaternion.AngleAxis(delta, Vector3.up);

                    Vector3 currentPos = t.Position;
                    Vector3 newPos = currentPos;
                    newPos = newPos - _raycast.HitPoint;
                    newPos = _deltaRot * newPos;
                    newPos += _raycast.HitPoint;

                    _deltaPos = newPos - currentPos;

                    _rotateDelta *= _dampingFactor;
                    _pendingUpdate = true;

                    message.Use();
                    return;

                }
            }
        }
 public void ProcessMessage(InputMessage message)
 {
     _enabled &= !(message.InputType == InputMessage.InputTypes.TwoFingerPinch && message.MessageType == InputMessage.MessageTypes.Update);
 }
Exemple #6
0
 private void ParseVipState(InputMessage message)
 {
     uint creatureId = message.GetU32();
     byte status     = message.GetU8();
 }
Exemple #7
0
 public virtual void HandleInput(InputMessage msg)
 {
 }
Exemple #8
0
    /**
     * 查看银行状态 返回
     * @param state 银行 状态 是:0,否:1
     */
    public void GC_BANK_STATE(InputMessage data)
    {
        int state = data.GetInt();

        HumanHandler.Instance().GC_BANK_STATE(state);
    }
Exemple #9
0
    /**
     * 修改银行密码 返回
     * @param state 修改银行密码  是否成功  是:0,否:1
     */
    public void GC_BANK_CHANGE_PASSWORD(InputMessage data)
    {
        int state = data.GetInt();

        HumanHandler.Instance().GC_BANK_CHANGE_PASSWORD(state);
    }
Exemple #10
0
        public override InputMessageResult HandleMessage(InputMessage message)
        {
            bool GetControlAtPoint(in Point2D mousePosition, out Control control, out Point2D controlRelativePosition)
            {
                control = _windowManager.GetControlAtPoint(mousePosition);

                if (control != null)
                {
                    controlRelativePosition = control.PointToClient(mousePosition);
                    return(true);
                }

                controlRelativePosition = Point2D.Zero;;
                return(false);
            }

            var context = new ControlCallbackContext(_windowManager, _game);

            switch (message.MessageType)
            {
            case InputMessageType.MouseMove:
            {
                var mouseOverControls = _windowManager.GetControlsAtPoint(message.Value.MousePosition).ToList();
                foreach (var control in _lastMouseOverControls)
                {
                    if (!mouseOverControls.Contains(control))
                    {
                        control.InputCallback.Invoke(
                            control,
                            new WndWindowMessage(WndWindowMessageType.MouseExit, control),
                            context);
                    }
                }
                foreach (var control in mouseOverControls)
                {
                    if (!_lastMouseOverControls.Contains(control))
                    {
                        control.InputCallback.Invoke(
                            control,
                            new WndWindowMessage(WndWindowMessageType.MouseEnter, control),
                            context);
                    }
                }

                _lastMouseOverControls.Clear();
                _lastMouseOverControls.AddRange(mouseOverControls);

                foreach (var control in mouseOverControls)
                {
                    var mousePosition = control.PointToClient(message.Value.MousePosition);
                    control.InputCallback.Invoke(
                        control,
                        new WndWindowMessage(WndWindowMessageType.MouseMove, control, mousePosition),
                        context);
                }
                return(mouseOverControls.Count > 0
                            ? InputMessageResult.Handled
                            : InputMessageResult.NotHandled);
            }

            case InputMessageType.MouseLeftButtonDown:
            {
                if (GetControlAtPoint(message.Value.MousePosition, out var element, out var mousePosition))
                {
                    element.InputCallback.Invoke(
                        element,
                        new WndWindowMessage(WndWindowMessageType.MouseDown, element, mousePosition),
                        context);
                    return(InputMessageResult.Handled);
                }
                break;
            }

            case InputMessageType.MouseLeftButtonUp:
            {
                if (GetControlAtPoint(message.Value.MousePosition, out var element, out var mousePosition))
                {
                    element.InputCallback.Invoke(
                        element,
                        new WndWindowMessage(WndWindowMessageType.MouseUp, element, mousePosition),
                        context);
                    return(InputMessageResult.Handled);
                }
                break;
            }

            case InputMessageType.MouseRightButtonDown:
            {
                if (GetControlAtPoint(message.Value.MousePosition, out var element, out var mousePosition))
                {
                    element.InputCallback.Invoke(
                        element,
                        new WndWindowMessage(WndWindowMessageType.MouseRightDown, element, mousePosition),
                        context);
                    return(InputMessageResult.Handled);
                }
                break;
            }

            case InputMessageType.MouseRightButtonUp:
            {
                if (GetControlAtPoint(message.Value.MousePosition, out var element, out var mousePosition))
                {
                    element.InputCallback.Invoke(
                        element,
                        new WndWindowMessage(WndWindowMessageType.MouseRightUp, element, mousePosition),
                        context);
                    return(InputMessageResult.Handled);
                }
                break;
            }

            // For the time being, just consume middle click events so that they don't go through controls:
            case InputMessageType.MouseMiddleButtonDown:
            case InputMessageType.MouseMiddleButtonUp:
            {
                return(GetControlAtPoint(message.Value.MousePosition, out var _, out var _)
                            ? InputMessageResult.Handled
                            : InputMessageResult.NotHandled);
            }

            case InputMessageType.KeyDown:
            {
                var control = _windowManager.FocussedControl;
                if (control != null)
                {
                    control?.InputCallback.Invoke(
                        control,
                        new WndWindowMessage(WndWindowMessageType.KeyDown, control, null, message.Value.Key, message.Value.Modifiers),
                        context
                        );
                    return(InputMessageResult.Handled);
                }


                break;
            }
            }

            return(InputMessageResult.NotHandled);
        }
 public void addMessageToQueue(InputMessage message)
 {
     lock (lockObject)
     {
         InputMessagesQueue.Enqueue(message);
         Monitor.PulseAll(lockObject);
     }
 }
Exemple #12
0
 //处理输入
 public virtual bool OnInput(InputMessage msg)
 {
     return(false);
 }
Exemple #13
0
    /**
     * 更换色钟返回
     * @param itemId 目标色钟的itemId
     */
    public void GC_BAZOO_ITEM_CLOCK_CHANGE(InputMessage data)
    {
        int itemId = data.GetInt();

        ItemHandler.Instance().GC_BAZOO_ITEM_CLOCK_CHANGE(itemId);
    }
 public void onServerConnection(InputMessage message)
 {
     Debug.Log("GameServer : New Connection on Server : " + message.ConnectionId);
 }
        public void ProcessMessage(InputMessage message)
        {
            if (message.InputType != InputMessage.InputTypes.TwoFingerPinch) {
                return;
            }

            if (message.MessageType == InputMessage.MessageTypes.Update) {

                _raycast.CastPoint = (message.FingerPositions[0] + message.FingerPositions[1]) / 2.0f;
                _raycast.Invalidate();

                //Debug.Log(string.Format("mag: {0}, didHit: {1}", _input.Delta.magnitude, _raycast.DidHit));
                if (Mathf.Abs(message.GestureData[0]) > _startThreshold && _raycast.DidHit) {

                    TransformClone t = TransformClone.FromTransform(_targetCamera.transform);
                    _worldDelta = (_raycast.HitPoint - t.Position).normalized * Mathf.Clamp(message.GestureData[0], -_deltaClamp, _deltaClamp) * _zoomFactor;
                }

                float distance = Vector3.Distance(_targetCamera.transform.position, _raycast.HitPoint);
                if (_limited && ( distance < _minHeight || distance > _maxHeight)) {
                    float overshoot;
                    float a;
                    if (distance < _minHeight)
                    {
                        overshoot = _minHeight - distance;
                         a = Vector3.Angle(_worldDelta.normalized, -_targetCamera.transform.forward);
                    }
                    else
                    {
                        overshoot = distance - _maxHeight;
                         a = Vector3.Angle(_worldDelta.normalized, _targetCamera.transform.forward);
                    }

                    float factor = 1f - Mathf.Clamp((overshoot / _tolerance), 0f, 1f);

                    if (a > 90f)
                        _worldDelta *= factor;

                }

                if (_worldDelta.magnitude > 0.01f) {

                    Vector3 mod = _worldDelta;
                    _worldDelta *= 0.85f;

                    _deltaPos = mod;
                    _pendingUpdate = true;

                    message.Use();
                    return;
                }
            }
        }
 public void ProcessMessage(InputMessage message)
 {
     _enabled &= !(message.InputType == InputMessage.InputTypes.TwoFingerPinch && message.MessageType == InputMessage.MessageTypes.Update);
 }
 private void DispatchMessage(InputMessage message, IntPtr wParam, IntPtr lParam)
 {
     if (DispatchMethod == MessageDispatchMethod.Post)
     {
         StUtil.Native.Internal.NativeMethods.PostMessage(Handle, (int)message, wParam, lParam);
     }
     else
     {
         StUtil.Native.Internal.NativeMethods.SendMessage(Handle, (int)message, wParam, lParam);
     }
 }
 public void Listen()
 {
     bool stopListen = false;
     ushort messagesReaded = 0;
     while (!Disconnect && !stopListen)
     {
         messagesReaded++;
         int recConnectionId;
         int recChannelId;
         byte[] recBuffer = new byte[1024];
         int bufferSize = 1024;
         int dataSize;
         byte error;
         NetworkReader reader;
         InputMessage message;
         NetworkEventType recNetworkEvent;
         try {
             recNetworkEvent = NetworkTransport.ReceiveFromHost(SocketId, out recConnectionId, out recChannelId, recBuffer, bufferSize, out dataSize, out error);
             if (error != (byte)NetworkError.Ok)
             {
                 Debug.Log("Error [" + (NetworkError)error + "] receiving a Message from : " + SocketId + " | conID : " + recConnectionId + " | channel : " + recChannelId);
             }
             else
             {
                 switch (recNetworkEvent)
                 {
                     case NetworkEventType.Nothing:
                         stopListen = true;
                         break;
                     case NetworkEventType.ConnectEvent:
                         string address;
                         int remotePort;
                         NetworkID networkID;
                         NodeID nodeID;
                         NetworkTransport.GetConnectionInfo(SocketId, recConnectionId, out address, out remotePort, out networkID, out nodeID, out error);
                         if (error == (byte)NetworkError.Ok)
                         {
                             LLApiConnection connection = new LLApiConnection(recConnectionId, address, remotePort);
                             addConnection(connection);
                         }
                         reader = new NetworkReader(recBuffer);
                         message = new InputMessage(recConnectionId, SocketId, recChannelId, Subjects.Connect, reader, GameServer.getServerTime());
                         addInputMessageToQueue(message);
                         Debug.Log("New Connection: " + SocketId + "[" + address + ":" + remotePort + "] con: " + recConnectionId + " Size: " + dataSize);
                         break;
                     case NetworkEventType.DataEvent:
                         Debug.Log("Incoming message Dataevent received: " + SocketId + " con: " + recConnectionId + " Size: " + dataSize);
                         reader = new NetworkReader(recBuffer);
                         Subjects subject = (Subjects)reader.ReadUInt16();
                         message = new InputMessage(recConnectionId, SocketId, recChannelId, subject, reader, GameServer.getServerTime());
                         addInputMessageToQueue(message);
                         break;
                     case NetworkEventType.DisconnectEvent:
                         Debug.Log("Remote client event disconnected: " + SocketId + " con: " + recConnectionId + " Size: " + dataSize);
                         reader = new NetworkReader(recBuffer);
                         message = new InputMessage(recConnectionId, SocketId, recChannelId, Subjects.Disconnect, reader, GameServer.getServerTime());
                         addInputMessageToQueue(message);
                         removeConnection(recConnectionId);
                         break;
                 }
             }
         }catch(Exception e)
         {
             Debug.LogError("LLApiServer Error Receiving Data : " + e.Message);
             Debug.LogException(e);
         }
         finally
         {
             if (messagesReaded >= MaxMessages)
             {
                 stopListen = true;
             }
         }
     }
 }
Exemple #19
0
 /**
  * 响应客户端请求发送邮件
  */
 public void GC_SEND_MAIL(InputMessage data)
 {
     MailHandler.Instance().GC_SEND_MAIL();
 }
Exemple #20
0
    /**
     * 获得优惠券
     * @param couponId 优惠券 模板的ID
     */
    public void GC_OBTAIN_COUPON(InputMessage data)
    {
        int couponId = data.GetInt();

        RechargeHandler.Instance().GC_OBTAIN_COUPON(couponId);
    }
Exemple #21
0
 public bool OnInputMsg(InputMessage msg)
 {
     Debug.Log(string.Format("world:{0} isdown:{1}", msg.Word, msg.IsDown));
     m_TurnSystem.OnInputMsg(msg);
     return(false);
 }
Exemple #22
0
    /**
     * 优惠券是否存在
     * @param couponExist 是否存在 1 是 有优惠券    0 是没有优惠券
     */
    public void GC_COUPON_EXIST(InputMessage data)
    {
        int couponExist = data.GetInt();

        RechargeHandler.Instance().GC_COUPON_EXIST(couponExist);
    }
 /// <summary>
 /// Disconnect the User from The System
 /// </summary>
 /// <remarks>
 ///  Order:
 ///  String TokenID
 /// </remarks>
 /// <param name="message"> Message To Handle </param>
 private void DisconnectRequest(InputMessage message)
 {
     string tokenID = message.Reader.ReadString();
     string loginMessage;
     bool success = GameServer.UserManager.DisconnectUserByTokenID(tokenID);
     if (success)
     {
         loginMessage = "User Disconnected Successfully";
     }
     else
     {
         loginMessage = "Error in User Disconnection";
     }
     DisconnectResponse(message.ConnectionId, success, loginMessage);
     Debug.Log(loginMessage);
 }
Exemple #24
0
    /**
     * 博趣 第三方请求订单的返回页面(前端直接访问)
     * @param htmlPage base64编码之后的带参数的页面
     */
    public void GC_REQUEST_ORDER_THIRD_PARTY(InputMessage data)
    {
        string htmlPage = data.GetString();

        RechargeHandler.Instance().GC_REQUEST_ORDER_THIRD_PARTY(htmlPage);
    }
 private void addInputMessageToQueue(InputMessage message)
 {
     lock (lockPocessObject)
     {
         if (message != null)
         {
             Debug.Log("Message Added to Queue : " + message.MsgSubject);
         }
         InputMessagesQueue.Enqueue(message);
         Monitor.PulseAll(lockPocessObject);
     }
 }
Exemple #26
0
    /**
     * 验证订单亚马逊订单返回
     * @param receiptId 成功的收据ID
     */
    public void GC_ORDER_AMAZON_DELIVERY(InputMessage data)
    {
        string receiptId = data.GetString();

        RechargeHandler.Instance().GC_ORDER_AMAZON_DELIVERY(receiptId);
    }
Exemple #27
0
 /**
  * 设置银行密码 返回
  */
 public void GC_BANK_SET_PASSWORD(InputMessage data)
 {
     HumanHandler.Instance().GC_BANK_SET_PASSWORD();
 }
Exemple #28
0
 public HttpStatusCode Action1(InputMessage message)
 {
     // perform the action
     return(HttpStatusCode.OK);
 }
Exemple #29
0
    /**
     * 银行 输入验证码 确认  返回
     * @param codeState 验证码 (是:0,否:1)正确
     */
    public void GC_BANK_MAKE_SURE_IDENTIFYING_CODE(InputMessage data)
    {
        int codeState = data.GetInt();

        HumanHandler.Instance().GC_BANK_MAKE_SURE_IDENTIFYING_CODE(codeState);
    }
        public override InputMessageResult HandleMessage(InputMessage message)
        {
            switch (message.MessageType)
            {
            case InputMessageType.MouseMove:
            {
                var position = message.Value.MousePosition;
                if (_leftMouseDown || _rightMouseDown || _middleMouseDown)
                {
                    _deltaX += position.X - _lastX;
                    _deltaY += position.Y - _lastY;

                    _lastX = position.X;
                    _lastY = position.Y;
                }
                break;
            }

            case InputMessageType.MouseLeftButtonDown:
            case InputMessageType.MouseMiddleButtonDown:
            case InputMessageType.MouseRightButtonDown:
            {
                var position = message.Value.MousePosition;
                _lastX = position.X;
                _lastY = position.Y;

                switch (message.MessageType)
                {
                case InputMessageType.MouseLeftButtonDown:
                    _leftMouseDown = true;
                    break;

                case InputMessageType.MouseMiddleButtonDown:
                    _middleMouseDown = true;
                    break;

                case InputMessageType.MouseRightButtonDown:
                    _rightMouseDown = true;
                    break;
                }
                break;
            }

            case InputMessageType.MouseLeftButtonUp:
                _leftMouseDown = false;
                break;

            case InputMessageType.MouseMiddleButtonUp:
                _middleMouseDown = false;
                break;

            case InputMessageType.MouseRightButtonUp:
                _rightMouseDown = false;
                break;

            case InputMessageType.MouseWheel:
                _scrollWheelValue += message.Value.ScrollWheel;
                break;

            case InputMessageType.KeyDown:
            {
                var key = message.Value.Key;
                if (!_pressedKeys.Contains(key))
                {
                    _pressedKeys.Add(key);
                }
                break;
            }

            case InputMessageType.KeyUp:
            {
                var key = message.Value.Key;
                _pressedKeys.Remove(key);
                break;
            }
            }

            return(InputMessageResult.Handled);
        }
Exemple #31
0
 private void ParseVipLogout(InputMessage message)
 {
     uint creatureId = message.GetU32();
 }
Exemple #32
0
    /**
     * 更改性别
     * @param sex 性别
     */
    public void GC_HUMAN_CHANGE_SEX(InputMessage data)
    {
        int sex = data.GetInt();

        HumanHandler.Instance().GC_HUMAN_CHANGE_SEX(sex);
    }
        public override InputMessageResult HandleMessage(InputMessage message)
        {
            var context = new ControlCallbackContext(_windowManager, _game);

            switch (message.MessageType)
            {
            case InputMessageType.MouseMove:
            {
                var mouseOverControls = _windowManager.GetControlsAtPoint(message.Value.MousePosition).ToList();
                foreach (var control in _lastMouseOverControls)
                {
                    if (!mouseOverControls.Contains(control))
                    {
                        control.InputCallback.Invoke(
                            control,
                            new WndWindowMessage(WndWindowMessageType.MouseExit, control),
                            context);
                    }
                }
                foreach (var control in mouseOverControls)
                {
                    if (!_lastMouseOverControls.Contains(control))
                    {
                        control.InputCallback.Invoke(
                            control,
                            new WndWindowMessage(WndWindowMessageType.MouseEnter, control),
                            context);
                    }
                }

                _lastMouseOverControls.Clear();
                _lastMouseOverControls.AddRange(mouseOverControls);

                foreach (var control in mouseOverControls)
                {
                    var mousePosition = control.PointToClient(message.Value.MousePosition);
                    control.InputCallback.Invoke(
                        control,
                        new WndWindowMessage(WndWindowMessageType.MouseMove, control, mousePosition),
                        context);
                }
                return(mouseOverControls.Count > 0
                            ? InputMessageResult.Handled
                            : InputMessageResult.NotHandled);
            }

            case InputMessageType.MouseLeftButtonDown:
            {
                var element = _windowManager.GetControlAtPoint(message.Value.MousePosition);
                if (element != null)
                {
                    var mousePosition = element.PointToClient(message.Value.MousePosition);
                    element.InputCallback.Invoke(
                        element,
                        new WndWindowMessage(WndWindowMessageType.MouseDown, element, mousePosition),
                        context);
                    return(InputMessageResult.Handled);
                }
                break;
            }

            case InputMessageType.MouseLeftButtonUp:
            {
                var element = _windowManager.GetControlAtPoint(message.Value.MousePosition);
                if (element != null)
                {
                    var mousePosition = element.PointToClient(message.Value.MousePosition);
                    element.InputCallback.Invoke(
                        element,
                        new WndWindowMessage(WndWindowMessageType.MouseUp, element, mousePosition),
                        context);
                    return(InputMessageResult.Handled);
                }
                break;
            }

            case InputMessageType.KeyDown:
            {
                if (message.Value.Key == Key.Escape && _windowManager.OpenWindowCount > 1)
                {
                    _windowManager.PopWindow();
                    return(InputMessageResult.Handled);
                }
                break;
            }
            }

            return(InputMessageResult.NotHandled);
        }
Exemple #34
0
    /**
     * 更改图像
     * @param img 玩家图像
     */
    public void GC_HUMAN_CHANGE_IMG(InputMessage data)
    {
        string img = data.GetString();

        HumanHandler.Instance().GC_HUMAN_CHANGE_IMG(img);
    }
Exemple #35
0
    /**
     * 响应客户端请求全部奖品领取奖励
     * @param mailId 邮件id
     */
    public void GC_DEAL_WITH_REWARD(InputMessage data)
    {
        long mailId = data.GetLong();

        MailHandler.Instance().GC_DEAL_WITH_REWARD(mailId);
    }
Exemple #36
0
    /**
     * VIP等级的修改
     * @param vip VIP等级的修改
     */
    public void GC_HUMAN_CHANGE_VIP(InputMessage data)
    {
        int vip = data.GetInt();

        HumanHandler.Instance().GC_HUMAN_CHANGE_VIP(vip);
    }
 public void ProcessMessage(InputMessage message)
 {
     _enabled &= !(message.InputType == InputMessage.InputTypes.OneFingerDrag && message.MessageType == InputMessage.MessageTypes.Update);
 }
Exemple #38
0
 /**
  * 观看视频返回
  */
 public void GC_HUMAN_VIDEO_NUM(InputMessage data)
 {
     HumanHandler.Instance().GC_HUMAN_VIDEO_NUM();
 }
Exemple #39
0
 public Input_Message(InputMessage proto)
 {
     protobuf = proto;
 }
    public static List <p_AllMsg.p_CustomSyncMsg> Buffer_SyncFrame_msg_list(List <CustomSyncMsg> msg_list)
    {
        List <p_AllMsg.p_CustomSyncMsg> p_msg_list = new List <p_AllMsg.p_CustomSyncMsg>();

        foreach (CustomSyncMsg msg in msg_list)
        {
            if (msg.msg_type == (int)RequestType.ENTERAREA)
            {
                EnterAreaMessage            enterArea = msg as EnterAreaMessage;
                p_AllMsg.p_EnterAreaMessage p_msg     = new p_AllMsg.p_EnterAreaMessage();
                p_msg.id         = enterArea.id;
                p_msg.health     = enterArea.health;;
                p_msg.position_x = enterArea.position.x;
                p_msg.position_y = enterArea.position.y;
                p_msg.position_z = enterArea.position.z;

                p_msg.direction_x = enterArea.direction.x;
                p_msg.direction_y = enterArea.direction.y;
                p_msg.direction_z = enterArea.direction.z;

                p_msg.rotation_x = enterArea.rotation.x;
                p_msg.rotation_y = enterArea.rotation.y;

                p_msg.msg_type  = enterArea.msg_type;
                p_msg.player_id = enterArea.player_id;
                p_msg.area_id   = enterArea.area_id;
                p_msg_list.Add(p_msg);
            }
            if (msg.msg_type == (int)RequestType.INPUT)
            {
                InputMessage            input = msg as InputMessage;
                p_AllMsg.p_InputMessage p_msg = new p_AllMsg.p_InputMessage();
                p_msg.id       = input.id;
                p_msg.moving_x = input.moving.x;
                p_msg.moving_y = input.moving.y;
                p_msg.moving_z = input.moving.z;

                p_msg.msg_type  = input.msg_type;
                p_msg.player_id = input.player_id;
                p_msg.area_id   = input.area_id;

                p_msg_list.Add(p_msg);
            }
            if (msg.msg_type == (int)RequestType.LEAVEAREA)
            {
                LeaveAreaMessage            leaveArea = msg as LeaveAreaMessage;
                p_AllMsg.p_LeaveAreaMessage p_msg     = new p_AllMsg.p_LeaveAreaMessage();

                p_msg.id = leaveArea.id;

                p_msg.msg_type  = leaveArea.msg_type;
                p_msg.player_id = leaveArea.player_id;
                p_msg.area_id   = leaveArea.area_id;
                p_msg_list.Add(p_msg);
            }
            if (msg.msg_type == (int)RequestType.ROTATE)
            {
                RotateMessage            rotate = msg as RotateMessage;
                p_AllMsg.p_RotateMessage p_msg  = new p_AllMsg.p_RotateMessage();

                p_msg.id      = rotate.id;
                p_msg.delta_x = rotate.delta.x;
                p_msg.delta_y = rotate.delta.y;

                p_msg.msg_type  = rotate.msg_type;
                p_msg.player_id = rotate.player_id;
                p_msg.area_id   = rotate.area_id;
                p_msg_list.Add(p_msg);
            }
            if (msg.msg_type == (int)RequestType.SPAWN)
            {
                SpawnMessage            spawn = msg as SpawnMessage;
                p_AllMsg.p_SpawnMessage p_msg = new p_AllMsg.p_SpawnMessage();

                p_msg.id         = spawn.id;
                p_msg.position_x = spawn.position.x;
                p_msg.position_y = spawn.position.y;
                p_msg.position_z = spawn.position.z;

                p_msg.msg_type  = spawn.msg_type;
                p_msg.player_id = spawn.player_id;
                p_msg.area_id   = spawn.area_id;
                p_msg_list.Add(p_msg);
            }
            if (msg.msg_type == (int)RequestType.SHOOT)
            {
                ShootMessage            shoot = msg as ShootMessage;
                p_AllMsg.p_ShootMessage p_msg = new p_AllMsg.p_ShootMessage();


                p_msg.direction_x = shoot.direction_x;
                p_msg.direction_y = shoot.direction_y;
                p_msg.direction_z = shoot.direction_z;

                p_msg.origin_x  = shoot.origin_x;
                p_msg.origin_y  = shoot.origin_y;
                p_msg.origin_z  = shoot.origin_z;
                p_msg.player_id = shoot.player_id;
                p_msg.msg_type  = shoot.msg_type;

                p_msg_list.Add(p_msg);
            }
        }

        return(p_msg_list);
    }
    /// <summary>
    /// Login the User in The System
    /// </summary>
    /// <remarks>
    ///  Order:
    ///  String UserID
    /// </remarks>
    /// <param name="message"> Message To Handle </param>
    private void LoginRequest(InputMessage message)
    {
        string userID = message.Reader.ReadString();
        string tokenID;
        string loginMessage;
        bool success = GameServer.UserManager.ConnectUser(userID, message.ConnectionId, message.HostId,
            message.ReceivedTime, out tokenID, out loginMessage);
        LoginResponse(message.ConnectionId, success, tokenID, loginMessage);

        Debug.Log(loginMessage);
    }
        public void ProcessMessage(InputMessage message)
        {
            if (message.InputType != InputMessage.InputTypes.TwoFingerDrag)
            {
                return;
            }

            if (message.MessageType == InputMessage.MessageTypes.Begin)
            {
                if (_pitchDegrees < _minAngle) {
                    _raycast.Invalidate();

                    // TODO: Less ugly way to determine this
                    Vector3 angles = Vector3.Scale(Quaternion.LookRotation(_targetCamera.transform.forward).eulerAngles - new Vector3(0f, 180f, 0f), new Vector3(-1f, 1f, 1f));

                    _pitchDegrees = angles.x;
                    _aroundDegrees = angles.y;

                }
            }

            Vector2 fingerDelta = message.FingerDeltas[0];

            //Debug.Log(string.Format("mag: {0}, didHit: {1}", _input.Delta.magnitude, _raycast.DidHit));
            if (fingerDelta.magnitude > _startThreshold) {

                _inputDelta = Vector2.ClampMagnitude(fingerDelta, _deltaClamp);

            }

            if (_inputDelta.magnitude > _startThreshold)
            {

                TransformClone t = TransformClone.FromTransform(_targetCamera.transform);

                _aroundDegrees += _inputDelta.x;
                _pitchDegrees += _inputDelta.y;

                _inputDelta *= _dampingFactor;

                if (_pitchDegrees < _minAngle) {
                    return;
                }

                Vector3 pivot = _raycast.HitPoint  + (Vector3.up * _tiltUpFactor * (_pitchDegrees - _minAngle));

                float radius = Vector3.Distance(t.Position, _raycast.HitPoint);

                Vector3 currentPos = t.Position;
                Vector3 newPos = Quaternion.Euler(_minAngle, _aroundDegrees, 0) * (radius * Vector3.forward) + _raycast.HitPoint;
                _deltaPos = newPos - currentPos;

                Quaternion currentRot = t.Rotation;
                Quaternion newRot = Quaternion.LookRotation(pivot - newPos);
                _deltaRot = newRot * Quaternion.Inverse(currentRot);

                _pendingUpdate = true;

                message.Use();
                return;
            }
        }
        public void ProcessMessage(InputMessage message)
        {
            bool usingInput = false;

            if (message.InputType == InputMessage.InputTypes.TwoFingerDrag) {

                usingInput = true;

                if (message.MessageType == InputMessage.MessageTypes.Begin) {

                    if (_pitchDegrees < _maxAngle) {
                        _raycast.Invalidate();

                        // TODO: Less ugly way to determine this
                        Vector3 angles = Vector3.Scale(Quaternion.LookRotation(_targetCamera.transform.forward).eulerAngles - new Vector3(0f, 180f, 0f), new Vector3(-1f, 1f, 1f));

                        _pitchDegrees = angles.x;
                        _aroundDegrees = angles.y;

                    }
                }

                if (message.MessageType == InputMessage.MessageTypes.Update) {
                    Vector2 fingerDelta = message.FingerDeltas[0];

                    //Debug.Log(string.Format("mag: {0}, didHit: {1}", _input.Delta.magnitude, _raycast.DidHit));
                    if (fingerDelta.magnitude > _startThreshold && _raycast.DidHit) {

                        _inputDelta = Vector2.ClampMagnitude(fingerDelta, _deltaClamp);
                        message.Use();
                    }

                }
            }
        }
 public void Listen()
 {
     bool stopListen = false;
     ushort messagesReaded = 0;
     while ((isConnected || isConnecting) && !Disconnect && !stopListen)
     {
         messagesReaded++;
         int recConnectionId;
         int recChannelId;
         byte[] recBuffer = new byte[1024];
         int bufferSize = 1024;
         int dataSize;
         byte error;
         NetworkReader reader;
         InputMessage message;
         NetworkEventType recNetworkEvent;
         try
         {
             recNetworkEvent = NetworkTransport.ReceiveFromHost(SocketId, out recConnectionId, out recChannelId, recBuffer, bufferSize, out dataSize, out error);
             if (error != (byte)NetworkError.Ok)
             {
                 Debug.Log("Error [" + (NetworkError)error + "] receiving a Message conID : " + recConnectionId + " | channel : " + recChannelId);
             }
             else
             {
                 switch (recNetworkEvent)
                 {
                     case NetworkEventType.Nothing:
                         stopListen = true;
                         break;
                     case NetworkEventType.ConnectEvent:
                         Debug.Log("LLApiClient Succesfully Connected to " + EndPoint + ":" + Port + " ConnectionId : " + ConnectionId + " SocketId: "+ SocketId);
                         isConnected = true;
                         break;
                     case NetworkEventType.DataEvent:
                         Debug.Log("incoming message event received con: " + recConnectionId + " Size: " + dataSize);
                         reader = new NetworkReader(recBuffer);
                         Subjects subject = (Subjects)reader.ReadUInt16();
                         message = new InputMessage(recConnectionId, SocketId, recChannelId, subject, reader, GameClient.getClientTime());
                         addMessageToQueue(message);
                         break;
                     case NetworkEventType.DisconnectEvent:
                         Debug.Log("LLApiClient DisConnection");
                         isConnected = false;
                         break;
                 }
             }
         }
         catch (Exception e)
         {
             Debug.LogError("LLApiServer Error Receiving Data : " + e.Message);
             Debug.LogException(e);
         }
         finally
         {
             if (messagesReaded >= MaxMessages)
             {
                 stopListen = true;
             }
         }
     }
 }
Exemple #45
0
    /**
     * 玩家退出老虎机玩家广播5
     * @param playerId 玩家id
     */
    public void GC_SLOT_ROOM5(InputMessage data)
    {
        long playerId = data.GetLong();

        HumanHandler.Instance().GC_SLOT_ROOM5(playerId);
    }
 public void ProcessMessage(InputMessage message)
 {
 }
 public HttpStatusCode Action1(InputMessage message)
 {
     // perform the action
     return HttpStatusCode.OK;
 }
Exemple #48
0
    /**
     * 好友进入游戏通知
     * @param friendId 好友ID
     */
    public void GC_FRIEND_GAME(InputMessage data)
    {
        long friendId = data.GetLong();

        HumanHandler.Instance().GC_FRIEND_GAME(friendId);
    }
Exemple #49
0
    /**
     * 双倍经验加成
     * @param leftTime 双倍经验的剩余时间
     */
    public void GC_EXP_DOUBLE(InputMessage data)
    {
        long leftTime = data.GetLong();

        HumanHandler.Instance().GC_EXP_DOUBLE(leftTime);
    }
 private void addMessageToQueue(InputMessage message)
 {
     lock (lockPocessObject)
     {
         InputMessagesQueue.Enqueue(message);
         Monitor.PulseAll(lockPocessObject);
     }
 }