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
3 participantes
[DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2
Komuro Takashi- Colaborador
- Mensagens : 1047
Créditos : 130
- Mensagem nº2
Re: [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2
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.
_________________
Paga um café? Patreon
Tylamel- Novato
- Mensagens : 3
Créditos : 0
- Mensagem nº3
Re: [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2
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- Membro de Honra
- Mensagens : 1406
Créditos : 220
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
- Mensagem nº4
Re: [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2
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
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- Colaborador
- Mensagens : 1047
Créditos : 130
- Mensagem nº5
Re: [DÚVIDA] Em relação ao Telam Ludus 1.6.2 RC2
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
O follow da scène base e um se não me engano chamado fiding path no game player ou e spritesetmap
_________________
Paga um café? Patreon