Aldeia RPG

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

Suporte ao desenvolvimento de jogos


3 participantes

    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2

    Tylamel
    Tylamel
    Novato
    Novato


    Mensagens : 3
    Créditos : 0

    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Empty [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2

    Mensagem por Tylamel Qua Nov 05, 2014 9:45 pm

    baixei o Telam Ludus 1.6.2 RC2 para criar um MMO para mim, acontece qe diferente das versões antigas, o 1.6.2 quando você clica com o Mouse o personagem não anda, somente se você mover ele com as direcionais do teclado, queria saber se isso é um bug do telam ludus qe baixei ou é de qualquer Telam Ludus, e se possível, queria que me falassem como resolver isso! Pois nn quero criar um MMO qe mova o personagem pelas direcionais do teclado, quero mover ele com o mouse Neutral
    Komuro Takashi
    Komuro Takashi
    Colaborador
    Colaborador


    Mensagens : 1047
    Créditos : 130

    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Empty Re: [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2

    Mensagem por Komuro Takashi Qui Nov 06, 2014 4:45 am

    No Telan 1.6.2 tem essa função? Achei q era só no vampyr netgame....estude os scrpita de mouse e spritsetmap que talvez possa ter a resposta ou poste ali o telam que move com o mouse q vejo pra VC.


    _________________
    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Takashi_komuro_by_minato8-d51g9o4

    Paga um café? Patreon
    Tylamel
    Tylamel
    Novato
    Novato


    Mensagens : 3
    Créditos : 0

    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Empty Re: [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2

    Mensagem por Tylamel Qui Nov 06, 2014 11:34 am

    Aí está o script do Telam Ludus 1.6.2 :
    Código:
    #==============================================================================
    # Mouse Module
    #==============================================================================
    module Mouse
      
      GetCursorPos = Win32API.new("user32", "GetCursorPos", "p", "i")
      ScreenToClient = Win32API.new("user32", "ScreenToClient", "lp", "i")
      GetClientRect = Win32API.new("user32", "GetClientRect", "lp", "i")
      GetPrivateString = Win32API.new("kernel32", "GetPrivateProfileStringA", "pppplp", "l")
      FindWindow = Win32API.new("user32", "FindWindowA", "pp", "l")
      
      def self.global_pos
        pos = [0, 0].pack("ll")
        return (GetCursorPos.call(pos) != 0 ? pos.unpack("ll") : nil)
      end
      
      def self.pos
        x, y = self.screen_to_client(*self.global_pos)
        width, height = self.client_size
        if x == nil and y == nil; return -32, -32
        elsif x.between?(0, width) and y.between?(0, height); return x, y
        else; return -32, -32
        end
      end
      
      def self.screen_to_client(x, y)
        return nil unless (x and y)
        pos = [x, y].pack("ll")
        return (ScreenToClient.call(hwnd, pos) != 0 ? pos.unpack("ll") : nil)
      end
      
      def self.hwnd
        game_name = "\0" * 256
        GetPrivateString.call("Game"," Title", "", game_name, 255, ".\\Game.ini")
        game_name.delete!("\0")
        return FindWindow.call("RGSS Player", game_name)
      end
      
      def self.client_size
        rect = [0, 0, 0, 0].pack("l4")
        GetClientRect.call(hwnd, rect)
        right, bottom = rect.unpack("l4")[2..3]
        return right, bottom
      end
      
    end

    #------------------------------------------------------------------------------
    class Game_Mouse
      
      attr_reader :x
      attr_reader :y
      attr_reader :object
      attr_accessor :parent
      
      def initialize
        @x = 0
        @y = 0
        @z = 9999
        @sprite = Sprite.new
        @objspt = Sprite.new
        @sprite.z = @z
        @objspt.z = @sprite.z-1
        @sprite.bitmap = Bitmap.new(32, 32)
        @objspt.bitmap = Bitmap.new(24, 24)
        @cursor = 0
        @wait = 0
        @object = nil
        @parent = nil
        refresh
        update
      end
      
      def update
        @x, @y = Mouse.pos
        @sprite.x, @sprite.y = @x, @y
        @objspt.x, @objspt.y = @x, @y
        @objspt.ox, @objspt.oy = 12, 12
        update_drag
      end
      
      def update_drag
        unless Input.press?(Keys::MOUSEL) and @object != nil
          @wait += 1
          if @wait >= 10
            @object = nil
            refresh
            @wait = 0
          end
        end
      end
      
      def cursor=(c)
        @cursor = c
        refresh
      end
      
      def object=(o)
        @object = o
        refresh
      end
      
      def refresh
        @objspt.bitmap.clear
        if @object != nil
          icon = Cache.system("Iconset")
          rect = Rect.new(@object.icon_index % 16 * 24, @object.icon_index / 16 * 24, 24, 24)
          @objspt.bitmap.blt(0, 0, icon, rect)
        end
        @sprite.bitmap.clear
        graphic = Cache.system("Cursors")
        rect = Rect.new(@cursor % 3 * 32, @cursor / 3 * 32, 32, 32)
        @sprite.bitmap.blt(0, 0, graphic, rect)
      end
      
      def tile
        x = ($game_map.display_x / 256) + (@x / 32)
        y = ($game_map.display_y / 256) + (@y / 32)
        return x, y
      end
      
      def in_area?(x, y, w=32, h=32)
        return true if @x.between?(x, x+w) and @y.between?(y, y+h)
        return false
      end
      
      def over?(*obj)
        if obj[0].is_a?(Game_Character)
          x = obj[0].x; y = obj[0].y
        else
          x = obj[0]; y = obj[1]
        end
        return true if tile[0] == x and tile[1] == y
        return false
      end
      
      def over_window?(window=nil)
        if window != nil and !window.disposed?
          return true if in_area?(window.x, window.y, window.width, window.height)
        else
          for w in $windows
            next if w.disposed?
            if w.is_a?(Sprite) and in_area?(w.x-16, w.y-16, w.bitmap.width+16, w.bitmap.height+16)
              return true
            elsif w.is_a?(Window_Chat) and w.visible and in_area?(w.x-16, w.y-48, w.width+16, w.height+48)
              return true
            elsif w.visible and in_area?(w.x-16, w.y-16, w.width+16, w.height+16)
              return true
            end
          end
        end
        return false
      end
      
      def left_click(*obj)
        if obj[0].is_a?(Game_Character)
          x = obj[0].x; y = obj[0].y
        else
          x = obj[0]; x = obj[1]
        end
        return true if over?(x, y) and Input.trigger?(Keys::MOUSEL)
        return false
      end
      
      def right_click(*obj)
        if obj[0].is_a?(Game_Character)
          x = obj[0].x; y = obj[0].y
        else
          x = obj[0]; x = obj[1]
        end
        return true if over?(x, y) and Input.trigger?(Keys::MOUSER)
        return false
      end
      
    end

    #------------------------------------------------------------------------------
    Win32API.new("user32", "ShowCursor", "i", "i").call(0)

    $mouse = Game_Mouse.new
    Felix Blayder
    Felix Blayder
    Membro de Honra
    Membro de Honra


    Mensagens : 1406
    Créditos : 220

    Ficha do personagem
    Nível: 1
    Experiência:
    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Left_bar_bleue0/0[DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Empty_bar_bleue  (0/0)
    Vida:
    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Left_bar_bleue30/30[DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Empty_bar_bleue  (30/30)

    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Empty Re: [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2

    Mensagem por Felix Blayder Qui Nov 06, 2014 6:48 pm

    Se não me engano, o Vlad removeu esse sistema por achar que estava falho, e iria adiciona-lo mais tarde em outras versões.


    _________________

    Se inscreva em meu Canal no YouTube:
    https://www.youtube.com/localnerd

    Faça uma doação para ajudar nos custos:

    https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3N8T2RJ977RCQ

    Komuro Takashi
    Komuro Takashi
    Colaborador
    Colaborador


    Mensagens : 1047
    Créditos : 130

    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Empty Re: [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2

    Mensagem por Komuro Takashi Sex Nov 07, 2014 7:01 am

    Pelo que analisei o script de Mouse não é pois está idêntico ao da versão R bom deve estar no SpritsetMap então.Os scripts responsáveis são o def title do mouse
    O follow da scène base e um se não me engano chamado fiding path no game player ou e spritesetmap


    _________________
    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Takashi_komuro_by_minato8-d51g9o4

    Paga um café? Patreon

    Conteúdo patrocinado


    [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2 Empty Re: [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui Mar 28, 2024 2:05 pm