Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte no desenvolvimento de jogos


    [VXA-OS] Cliente sem DirectX

    Valentine
    Valentine
    Administrador
    Administrador

    Medalhas : [VXA-OS] Cliente sem DirectX ZgLkiRU
    Mensagens : 5205
    Créditos : 1143

    [VXA-OS] Cliente sem DirectX Empty [VXA-OS] Cliente sem DirectX

    Mensagem por Valentine Qui Dez 31, 2020 6:07 pm

    1) Após baixar a versão com DirectX, baixe o executável Game.exe abaixo e substitua pelo que está na pasta Client
    Download Game.exe
    2) Abra o Editor de Scripts (F11)
    3) Procure o script [VS] Mouse:
    [VXA-OS] Cliente sem DirectX HJ1n1tW
    4) Substitua TODO o script [VS] Mouse por:
    Código:
    #==============================================================================
    # ** Mouse
    #------------------------------------------------------------------------------
    #  Autor: Cidiomar
    #==============================================================================

    module Mouse
      
      typedef 'unsigned long HCURSOR'
      dll = 'System/VXAOS.dll'
      Mouse__setup = c_function(dll, 'void Mouse__setup(struct RArray*, struct RArray*, struct RArray*, void *)')
      Mouse__update = c_function(dll, 'void Mouse__update()')
      Mouse__getPos = c_function(dll, 'void Mouse__getPos(long *)')
      Mouse__getOldPos = c_function(dll, 'void Mouse__getOldPos(long *)')
      
      @triggered = Input.triggered
      @pressed = Input.pressed
      @released = Input.released
      @repeated = Input.repeated
      @last_lclick = Time.now
      @last_rclick = Time.now
      @dbl_lclick = false
      @dbl_rclick = false
      @pos = Array.new(2, 0)
      Mouse__setup.call(@triggered, @pressed, @released, @repeated)
      
      def self.click?(button)
        return @triggered[1] if button == :L
        return @triggered[2] if button == :R
      end
      
      def self.press?(button)
        return @pressed[1] if button == :L
        return @pressed[2] if button == :R
      end
      
      def self.release?(button)
        return @released[1] if button == :L
        return @released[2] if button == :R
      end
      
      def self.repeat?(button)
        return @repeated[1] if button == :L
        return @repeated[2] if button == :R
      end
      
      def self.dbl_clk?(button)
        return @dbl_lclick if button == :L
        return @dbl_rclick if button == :R
      end
      
      def self.tile_x
        # Corrige o display_x, já que a tela pode se mover
        #16 em vez de 32 pixel na horizontal se a largura da
        #resolução for superior a 1000
        x = $game_map.display_x > 0 && $game_map.display_x > $game_map.display_x.to_i ? self.x + 16 : self.x
        (x / 32 + $game_map.display_x).to_i
      end
      
      def self.tile_y
        (($game_map.display_y * 32 + self.y) / 32).to_i
      end
      
      def self.in_tile?(object)
        object.x == tile_x && object.y == tile_y
      end
      
      def self.update
        Mouse__update.call()
        @pos = [0, 0].pack('l2')
        @old_pos = [0, 0].pack('l2')
        Mouse__getPos.call(@pos)
        Mouse__getOldPos.call(@old_pos)
        @pos = @pos.unpack('l2')
        @old_pos = @old_pos.unpack('l2')
        @dbl_lclick = double_left_click?
        @dbl_rclick = double_right_click?
      end
      
      def self.double_left_click?
        return false unless click?(:L)
        result = false
        t_diff = Time.now - @last_lclick
        if t_diff < 0.5 && @last_pos == @pos
          result = true
        else
          @last_lclick = Time.now
          @last_pos = @pos
        end
        result
      end
      
      def self.double_right_click?
        return false unless click?(:R)
        result = false
        t_diff = Time.now - @last_rclick
        if t_diff < 0.5 && @last_pos == @pos
          result = true
        else
          @last_rclick = Time.now
          @last_pos = @pos
        end
        result
      end
      
      def self.x;        @pos[0];           end
      def self.y;        @pos[1];           end
      def self.pos;      @pos.dup;          end
      def self.old_x;    @old_pos[0];       end
      def self.old_y;    @old_pos[1];       end
      def self.old_pos;  @old_pos.dup;      end
      def self.moved?;   @pos != @old_pos;  end
      
    end
      
    #==============================================================================
    # ** Graphics
    #==============================================================================
    module Graphics
      
      def self.is_fullscreen?
        false
      end
      
      def self.toggle_fullscreen
      end
      
      def self.vsync=(vsync)
      end
      
      def self.vsync
      end
      
    end

    Créditos:
    Valentine


    _________________
    [VXA-OS] Cliente sem DirectX AIymW

      Data/hora atual: Qui Mar 04, 2021 12:16 pm