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] Client without DirectX

    Valentine
    Valentine
    Administrador
    Administrador

    Medalhas : [VXA-OS] Client without DirectX ZgLkiRU
    Mensagens : 5214
    Créditos : 1148

    [VXA-OS] Client without DirectX Empty [VXA-OS] Client without DirectX

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

    1) After downloading the DirectX version, download the Game.exe executable below and replace it with the one in the folder Client
    Download Game.exe
    2) Open the Script Editor (F11)
    3) Search for the script [VS] Mouse:
    [VXA-OS] Client without DirectX HJ1n1tW
    4) Replace ALL [VS] Mouse script with:
    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

    Credits:
    Valentine


    _________________
    [VXA-OS] Client without DirectX AIymW

      Data/hora atual: Sab Abr 10, 2021 11:59 am