질문과 답변

Extra Form

sbabs 액알 받았는데...

전체키 스크립트 적용이 안 되네요.

영문을 모르겠어요..

sbabs에서 전체키 쓸 수 있는 방법 좀 알려주세요~

Comment '6'
  • ?
    녹스  2011.02.23 08:25

    VX SBABS라면 전체키 병행해서 사용가능합니다.

     

    #===============================================================================
    # ** Input Script v2 - This script was first created by Cybersam and she
    #                         deserves most of the credit, all I did was add a few
    #                         functions. (Astro_Mech says)
    #-------------------------------------------------------------------------------
    # Author    Cybersam
    # Version   2.0
    # Date      11-04-06
    # Edit      Astro_mech and Mr.Mo
    # Input.trigger?(Input::*Nomedatecla*)의 방법으로 사용
    #===============================================================================

    module Input
     
      #--------------------------------------------------------------------------
      # * Variable Setup
      #--------------------------------------------------------------------------
     
      @keys = []
      @pressed = []
      @prepressed = []
      @released = []
      @repeated = []
      @repeated_count = []
      @max = []
     
      Mouse_Left = 1
      Mouse_Right = 2
      Mouse_Middle = 4
      Back= 8
      Tab = 9
      Enter = 13
      SHIFT = Shift = 16
      CTRL = Ctrl = 17
      ALT = Alt = 18
      Esc = 0x1B
      LEFT = 0x25
      UP = 0x26 
      RIGHT = 0x27
      DOWN = 0x28
      Space = 32
      Numberkeys = {}
      Numberkeys[0] = 48        # => 0
      Numberkeys[1] = 49        # => 1
      Numberkeys[2] = 50        # => 2
      Numberkeys[3] = 51        # => 3
      Numberkeys[4] = 52        # => 4
      Numberkeys[5] = 53        # => 5
      Numberkeys[6] = 54        # => 6
      Numberkeys[7] = 55        # => 7
      Numberkeys[8] = 56        # => 8
      Numberkeys[9] = 57        # => 9
      Numberpad = {}
      Numberpad[0] = 96
      Numberpad[1] = 97
      Numberpad[2] = 98
      Numberpad[3] = 99
      Numberpad[4] = 100
      Numberpad[5] = 101
      Numberpad[6] = 102
      Numberpad[7] = 103
      Numberpad[8] = 104
      Numberpad[9] = 105
      Letters = {}
      Letters["A"] = 65
      Letters["B"] = 66
      Letters["C"] = 67
      Letters["D"] = 68
      Letters["E"] = 69
      Letters["F"] = 70
      Letters["G"] = 71
      Letters["H"] = 72
      Letters["I"] = 73
      Letters["J"] = 74
      Letters["K"] = 75
      Letters["L"] = 76
      Letters["M"] = 77
      Letters["N"] = 78
      Letters["O"] = 79
      Letters["P"] = 80
      Letters["Q"] = 81
      Letters["R"] = 82
      Letters["S"] = 83
      Letters["T"] = 84
      Letters["U"] = 85
      Letters["V"] = 86
      Letters["W"] = 87
      Letters["X"] = 88
      Letters["Y"] = 89
      Letters["Z"] = 90
      Fkeys = {}
      F1 = Fkeys[1] = 112
      F2 = Fkeys[2] = 113
      F3 = Fkeys[3] = 114
      F4 = Fkeys[4] = 115
      F5 = Fkeys[5] = 116
      F6 = Fkeys[6] = 117
      F7 = Fkeys[7] = 118
      F8 = Fkeys[8] = 119
      F9 = Fkeys[9] = 120
      F10 = Fkeys[10] = 121
      F11 = Fkeys[11] = 122
      F12 = Fkeys[12] = 123
      Collon = 186        # => |
      Equal = 187         # => = +
      Comma = 188         # => , <
      Underscore = 189    # => - _
      Dot = 190           # => . >
      Backslash = 191     # => / ?
      Lb = 219
      Rb = 221
      Quote = 222         # => '"
      State = Win32API.new('user32','GetKeyState',['i'],'i')
      A = Letters["C"]
      B = [Letters["X"], Esc]
      C = [Letters["Z"], Space, Enter]
      X = Letters["A"]
      Y = Letters["S"]
      Z = Letters["D"]
      L = Letters["Q"]
      R = Letters["W"]
     
      #-------------------------------------------------------------------------- 
      # Pega o estado da tecla
      #-------------------------------------------------------------------------- 
     
      def self.getstate(key)
        return true unless State.call(key).between?(0, 1)
        return false
      end
     
      #-------------------------------------------------------------------------- 
      # Retorna true Se a tecla Caps Lock estiver ativa
      #-------------------------------------------------------------------------- 

      def self.caps_locked?
        return true if State.call(20) == 1
        return false
      end
     
      #--------------------------------------------------------------------------
      # Atualiza
      #--------------------------------------------------------------------------

      def self.update
        @prepressed = @pressed
        @pressed = []
        @keys.clear
        @repeated.clear
        @released.clear
        old_max = @max + []
        @max.clear
        for key in old_max
          if @repeated_count[key] > 0
            @repeated_count[key] -= 1
          end
          if @repeated_count[key] > 0
            @max.push(key)
          end
        end
      end
     
      #--------------------------------------------------------------------------
      # Atualiza
      #--------------------------------------------------------------------------

      def self.update_repeat(key)
        if self.trigger?(key)
          @repeated[key] = true
          @repeated_count[key] = 16
        elsif self.press?(key)
          if @repeated_count[key].nil?
            @repeated_count[key] = 0
          end
          if @repeated_count[key] <= 0
            @repeated_count[key] = 7
            @repeated[key] = true
          else
            @repeated[key] = false
          end
        else
          @repeated[key] = false
          @repeated_count[key] = 0
        end
        if @repeated_count[key] > 0
          @max.push(key) unless @max.include?(key)
        end
      end 
     
      #--------------------------------------------------------------------------
      # Pressiona
      #--------------------------------------------------------------------------

      def self.update_getstate(key)
        if self.getstate(key)
          @pressed[key] = true
        else
          @pressed[key] = false
        end
      end
     
      #--------------------------------------------------------------------------
      # Atualiza o Tetste da chave
      #--------------------------------------------------------------------------

      def self.update_test(key)
        if self.press?(key) and !@prepressed[key]
          @keys[key] = true
        else
          @keys[key] = false
        end
      end
     
      #--------------------------------------------------------------------------
      # Atualiza o Tetste da chave
      #--------------------------------------------------------------------------

      def self.update_release(key)
        if @prepressed[key] and !self.press?(key)
          @released[key] = true
        else
          @released[key] = false
        end
      end
     
      #--------------------------------------------------------------------------
      # Pressiona
      #--------------------------------------------------------------------------

      def self.trigger?(key)
        case key
        when Array
          for k in key
            return true if self.trigger?(k)
          end
        when Hash
          for k in key.values
            return true if self.trigger?(k)
          end
        when Numeric
          if @keys[key].nil?
            self.update_test(key)
          end
          return @keys[key]
        end
        return false
      end
     
      #--------------------------------------------------------------------------
      # Pressiona
      #--------------------------------------------------------------------------

      def self.release?(key)
        case key
        when Array
          for k in key
            return true if self.release?(k)
          end
        when Hash
          for k in key.values
            return true if self.release?(k)
          end
        when Numeric
          if @released[key].nil?
            self.update_release(key)
          end
          return @released[key]
        end
        return false
      end
     
      #--------------------------------------------------------------------------
      # Pressiona
      #--------------------------------------------------------------------------

      def self.repeat?(key)
        case key
        when Array
          for k in key
            return true if self.repeat?(k)
          end
        when Hash
          for k in key.values
            return true if self.repeat?(k)
          end
        when Numeric
          if @repeated[key].nil?
            self.update_repeat(key)
          end
          return true if @repeated[key] == true
        end
        return false
      end
     
      #--------------------------------------------------------------------------
      # Mantém Pressionado?
      #--------------------------------------------------------------------------

      def self.press?(key)
        case key
        when Array
          for k in key
            return true if self.press?(k)
          end
          return false
        when Hash
          for k in key.values
            return true if self.press?(k)
          end
          return false
        when Numeric
          if @pressed[key].nil?
            self.update_getstate(key)
          end
          return true if @pressed[key] == true
          return false
        end
      end
     
      #--------------------------------------------------------------------------
      # * 4 Direções
      #--------------------------------------------------------------------------
     
      def self.dir4
        return 2 if self.press?(DOWN)
        return 4 if self.press?(LEFT)
        return 6 if self.press?(RIGHT)
        return 8 if self.press?(UP)
        return 0
      end
     
      #--------------------------------------------------------------------------
      # * 8 Direções
      #--------------------------------------------------------------------------
     
      def self.dir8
        down = self.press?(DOWN)
        left = self.press?(LEFT)
        right = self.press?(RIGHT)
        up = self.press?(UP)
        if down
          if left
            return 1
          end
          if right
            return 3
          end
          return 2
        end
        if up
          if left
            return 7
          end
          if right
            return 9
          end
          return 8
        end
        if left
          return 4
        end
        if right
          return 6
        end
        return 0
      end
     
    end

     

    이 스크립트가 전체키에서는 제일 편리하게 썼던거에요.

    호환도 나름 되는것같고 제 시점에서는 좋네요

    Input.trigger?(Input::*Nomedatecla*)의 방법으로 사용하시면되요

    T키를 눌렀을경우는

    Input.trigger?(Input::Letter["T"])

    아래로 가는 키를 눌렀을 경우는

    Input.trigger?(Input::Down)

    이런 방법으로 조건분기 걸어서 해주시면 됩니다.

    사용전에 이 스크립트를 살짝 둘러보는것을 추천합니다.

  • ?
    닉네임은2와20 2011.02.23 08:36

    전 이 스크립트로도 안 되네요ㅜㅠ

    (제가 스크립트를 잘 사용하지 못하기 때문일까요?)

    그런데 sbabs 무슨 버전 쓰시나요?

    님께서 쓰시는 버전을 써서라도 병행하고 싶은데...

    혹시 oonooono1@naver.com로 보내주실 수 있으세요?

    부탁드립니다~

  • ?
    닉네임은2와20 2011.02.23 09:36

    없어요ㅜㅠ

  • ?
    녹스  2011.02.23 09:33

    좀 아침이라 시간이 남네요 네톤있으시면 원격으로 할수있으면 도와드릴까요?

  • ?
    닉네임은2와20 2011.02.23 09:10

    댓글 계속 달아주셔서 감사해요...

     

    근데 대체 왜 저는 안 되는 걸까요ㅜㅠ

    꼼꼼히 다 확인했지만 이상 없었어요

    게다가 전체키 스크립트만 적용한 경우에는 정상적으로 작용하고

    병행하는 경우에만 작용을 하지 않으니...

  • ?
    녹스  2011.02.23 08:53

    혹시 커먼이벤트에서는 병렬처리를 안하셨거나 병렬/자동인데 스위치를 안켜셨거나 이런건 아닌가요?

    또 한가지 있다면 맵에서 이벤트에게 다가가 지정한 키를 누를경우 이벤트실행은 안될겁니다.

    저또한 안됬구요.

    커먼이벤트에서는 잘되용


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12387
RMXP XAS Hero Edition 스크립트 (버전 : 3. 81) 3 Krrrr7 2011.02.27 767
RMVX Exc 키가 안눌러져요.ㅠㅠ 5 아타락시아 2011.02.27 1014
RMVX 아이템과 스킬 2 Shadow 2011.02.26 831
RMVX 함정게임을 만들고 있습니다. 1 Zer0ne 2011.02.26 916
RMVX 광원효과 어떻게 하지요..;; 김타개 2011.02.26 902
기타 FPS 3d 게임 제작 툴 2 겔럭시안드로메다 2011.02.26 1655
RMVX VX몬스터 포획 이벤트,스크립트 잡초더미 2011.02.26 800
RMVX 특정파티원만 따라오게 하는 법 4 핫허 2011.02.26 1010
RMVX 캐스팅 게이지바 어떻게 만들어요? 닉네임은2와20 2011.02.26 942
RMXP 메세지 글꼴 크기좀.... 3 나는나고너는너다 2011.02.26 861
RMVX 스크립트오류 1 아카로스 2011.02.25 738
RMVX 님들 진짜 급한 질문요!! 3 와우우우 2011.02.25 665
RMVX 특정 아이템을 소지하지 않아야 입장할 수 있는 맵 2 닉네임은2와20 2011.02.24 989
기타 RPG Builder 3D (FPS) 2 겔럭시안드로메다 2011.02.24 1413
RMXP 액알 1 망북인나 2011.02.24 708
RMXP 이벤트 속도 6이상으로 설정하는법 4 담먹캐 2011.02.24 682
RMVX 특정 상태이상이 걸렸을때만 특정 마법의 효과를 받을 수 있게 하는 법 RMadrid 2011.02.24 770
RMXP 게임 테스트를하면 계속 오른쪽으로 가네요 4 8qjsrk 2011.02.24 711
RMVX vx 이벤트 네임 띄우기 호로홓 2011.02.24 615
RMVX 스킬키를 늘렸던 스킬 순서가 뒤죽박죽이네요(액알 스크립트 관련) 2 닉네임은2와20 2011.02.24 680
Board Pagination Prev 1 ... 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 ... 516 Next
/ 516