O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[Pedido](VXace) Colocar Switch nesse Script

Iniciado por Rafaelz98, 12/02/2014 às 01:38

12/02/2014 às 01:38 Última edição: 12/02/2014 às 02:35 por Rafaelz98
Oi galera, boa noite.
gostaria de saber se tem como colocar uma Switch nesse script para aparecer a janela de coordenadas quando ativada a Switch.
Não sei se o Faalco permite alteração no script, mas se permitir por favor ajudem.  :XD:

#===============================================================================
# +++ Janela de Coordenadas +++ 
#===============================================================================
# Por Faalco
# Esse script pode ser usado em fins comerciais e não comerciais desde que os
# devidos ao criador sejam devidamente apresentados.
#===============================================================================
# Faz com que seja exibido na tela de testes do RPG Maker uma janela que mostra
# as coordenadas (posição) do herói no mapa.
#
#===============================================================================
# ● Histórico
#===============================================================================
# v 1.0 - Criação do Script (09-12-2013)
#===============================================================================
module Coord #Módulo de Configuração
  X = 0 #Posição X da janela na Tela.
  Y = 0 #Posição Y da janela na Tela.
  Largura = 150 #Largura da Janela.
  Altura  = 50 #Altura da Janela.
  Opacidade = 255 #Opacidade da Janela.
end #Fim do Módulo de Configuração
#===============================================================================
# ● Window_Coord
#==============================================================================
class Window_Coord < Window_Base
  include Coord
  def initialize
    super(X, Y, Largura, Altura)
    self.opacity = Opacidade
    refresh
  end
  def refresh
    self.contents.clear
    draw_text_ex(0, 0,"X:" + $game_player.x.to_s)
    draw_text_ex(70, 0,"Y:" + $game_player.y.to_s)
  end
end
  class Scene_Map
  alias faalco_123_main main
  alias faalco_123_update update
  def main
    @hud = Window_Coord.new
    faalco_123_main
    @hud.dispose
  end
  def update
    faalco_123_update
    @hud.update
    @hud.refresh
  end
end
 

Fiz as modificações pra você, as configurações de switch estão no inicio do script
Spoiler
#===============================================================================
# Por Faalco
# Esse script pode ser usado em fins comerciais e não comerciais desde que os
# devidos ao criador sejam devidamente apresentados.
#===============================================================================
# Faz com que seja exibido na tela de testes do RPG Maker uma janela que mostra
# as coordenadas (posição) do herói no mapa.
#
#===============================================================================
# ● Histórico
#===============================================================================
# v 1.0 - Criação do Script (09-12-2013)
#===============================================================================
module Coord #Módulo de Configuração
  X = 0 #Posição X da janela na Tela.
  Y = 0 #Posição Y da janela na Tela.
  Largura = 150 #Largura da Janela.
  Altura  = 50 #Altura da Janela.
  Opacidade = 255 #Opacidade da Janela.
  Switch = 1
end #Fim do Módulo de Configuração
#===============================================================================
# ● Window_Coord
#==============================================================================
class Window_Coord < Window_Base
  include Coord
  def initialize
    super(X, Y, Largura, Altura)
    self.opacity = Opacidade
    refresh
  end
  def refresh
    self.contents.clear
    draw_text_ex(0, 0,"X:" + $game_player.x.to_s)
    draw_text_ex(70, 0,"Y:" + $game_player.y.to_s)
  end
end
  class Scene_Map
  alias faalco_123_main main
  alias faalco_123_update update
  def main
    @hud = Window_Coord.new
    $game_switches[Coord::Switch] == true ? @hud.opacity = 255 : @hud.opacity = 0
    $game_switches[Coord::Switch] == true ? @hud.contents_opacity = 255 :
    @hud.contents_opacity = 0
    faalco_123_main
    @hud.dispose
  end
  def update
    faalco_123_update
    @hud.update
    @hud.refresh
    $game_switches[Coord::Switch] == true ? @hud.opacity = 255 : @hud.opacity = 0
    $game_switches[Coord::Switch] == true ? @hud.contents_opacity = 255 :
    @hud.contents_opacity = 0
  end
end
[close]

Vlw Klarth  :XD:
brigadão

+ouro man

Resolvido  :ok:

Cara, não recomendo o script do Klarth, ele apenas apaga a parte visual da HUD, mas ela ainda está lá, é preferível usar um em que a HUD não seja criada/seja apagada quando não for usada...

#===============================================================================
# Por Faalco
# Esse script pode ser usado em fins comerciais e não comerciais desde que os
# devidos ao criador sejam devidamente apresentados.
#===============================================================================
# Faz com que seja exibido na tela de testes do RPG Maker uma janela que mostra
# as coordenadas (posição) do herói no mapa.
#
#===============================================================================
# ● Histórico
#===============================================================================
# v 1.0 - Criação do Script (09-12-2013)
#===============================================================================
module Coord #Módulo de Configuração
  X = 0 #Posição X da janela na Tela.
  Y = 0 #Posição Y da janela na Tela.
  Largura = 150 #Largura da Janela.
  Altura  = 50 #Altura da Janela.
  Opacidade = 255 #Opacidade da Janela.
  Switch = 1
end #Fim do Módulo de Configuração
#===============================================================================
# ● Window_Coord
#==============================================================================
class Window_Coord < Window_Base
  include Coord
  def initialize
    super(X, Y, Largura, Altura)
    self.opacity = Opacidade
    refresh
  end
  def refresh
    self.contents.clear
    draw_text_ex(0, 0,"X:" + $game_player.x.to_s)
    draw_text_ex(70, 0,"Y:" + $game_player.y.to_s)
  end
end
  class Scene_Map
  alias faalco_123_main main
  alias faalco_123_update update
  def main
   hud_create if $game_switches[Coord::Switch]
    faalco_123_main
  end
  def update
    faalco_123_update
if $game_switches[Coord::Switch]
hud_create if @hud.nil?
    @hud.update
    @hud.refresh
elsif !@hud.nil?
@hud.dispose
end
  end
def hud_create
@hud = Window_Coord.new
end
end


Pode ter alguma coisa errada, se tiver eu corrijo amanhã porque são 2:30 da madrugada...

Até mais, e não esqueça de agradecer/creditar/dar ouro ou sei lá o que o Klarth, afinal, o que importa é a intenção e a diferença entre os dois modos é bem pequena, mas não criando/apagando a HUD alguns problemas podem ser evitados.

Até mais
~ Masked

Vlw pela explicação Maked xD
agora entendi como é.

+ouro tbm mano :ok:

12/02/2014 às 11:03 #5 Última edição: 12/02/2014 às 11:27 por Klarth
Masked o script está causando um erro quando se desativa a switch.
Tentei concertar o erro mas não consegui, tudo que sei é que o erro se dá depois da chamada do método
faalco_123_update
Talvez isso possa lhe ajudar a concertar

Edit:
Dei uma leve modificada no script para melhorar um pouco o desempenho:
#===============================================================================
# Por Faalco
# Esse script pode ser usado em fins comerciais e não comerciais desde que os
# devidos ao criador sejam devidamente apresentados.
#===============================================================================
# Faz com que seja exibido na tela de testes do RPG Maker uma janela que mostra
# as coordenadas (posição) do herói no mapa.
#
#===============================================================================
# ● Histórico
#===============================================================================
# v 1.0 - Criação do Script (09-12-2013)
#===============================================================================
module Coord #Módulo de Configuração
  X = 0 #Posição X da janela na Tela.
  Y = 0 #Posição Y da janela na Tela.
  Largura = 150 #Largura da Janela.
  Altura  = 50 #Altura da Janela.
  Opacidade = 255 #Opacidade da Janela.
  Switch = 1
end #Fim do Módulo de Configuração
#===============================================================================
# ● Window_Coord
#==============================================================================
class Window_Coord < Window_Base
  include Coord
  def initialize
    super(X, Y, Largura, Altura)
    self.opacity = Opacidade
    refresh
  end
  def refresh
    self.contents.clear
    draw_text_ex(0, 0,"X:" + $game_player.x.to_s)
    draw_text_ex(70, 0,"Y:" + $game_player.y.to_s)
  end
end
class Scene_Map
  alias faalco_123_main main
  alias faalco_123_update update
  def main
    @hud = Window_Coord.new
    @hud.hide() if $game_switches[Coord::Switch]
    faalco_123_main
    @hud.dispose 
  end
  def update
    faalco_123_update
   if $game_switches[Coord::Switch]
    @hud.show()
    @hud.update
    @hud.refresh
   else
    @hud.hide()
   end
  end
end

Opa, qual é o erro? Seria 'disposed sprite'? Agora nem tem como eu consertar, assim que puder eu conserto, mas tente tirar essas linhas:

elsif !@hud.nil?
@hud.dispose
~ Masked

É disposed sprite mesmo. Mas não tenho a minima idéia porque está ocorrendo esse erro, porque ele não faz nenhuma chamada a algum método da hud. Pela análise do fluxo que fiz esse erro se dá depois da chamada do metodo faalco_123_update que é o alias do update do Scene_Map que não tem nada a ver com a hud...

Tente apagar o código que eu falei, ele acontece depois do faalco_123_update mesmo! porque é depois disso que está a condição onde tem o código! se não resolver eu vejo melhor aqui...
~ Masked

12/02/2014 às 11:50 #9 Última edição: 12/02/2014 às 11:53 por Klarth
Então masked é o dispose que está causando o problema com certeza.
Mas é o seguinte, temos o trecho de codigo:
def update
    faalco_123_update
    if $game_switches[Coord::Switch]
Eu modifiquei e deixei assim
  def update
    print "1"
    faalco_123_update
    print "2"
   if $game_switches[Coord::Switch]

Quando da o erro, o "2" não é impresso na janela do console, isso que eu quis dizer. Então só resta concluir que o erro ocorreu dentro do metodo faalco_123_update. Entendeu?
Apagar as linhas que você falou pode acabar com o erro, mas irá deixar a janela na tela

Ah, sim, tente editar create_hud if @hud.nil? por create_hud if @hud.nil? || @hud.disposed?
~ Masked


 Aí :
#===============================================================================
# +++ Janela de Coordenadas +++ 
#===============================================================================
# Por Faalco
# Esse script pode ser usado em fins comerciais e não comerciais desde que os
# devidos ao criador sejam devidamente apresentados.
#===============================================================================
# Faz com que seja exibido na tela de testes do RPG Maker uma janela que mostra
# as coordenadas (posição) do herói no mapa.
#
#===============================================================================
# ● Histórico
#===============================================================================
# v 1.0 - Criação do Script (09-12-2013)
#===============================================================================
module Coord #Módulo de Configuração
  X = 0 #Posição X da janela na Tela.
  Y = 0 #Posição Y da janela na Tela.
  Largura = 150 #Largura da Janela.
  Altura  = 50 #Altura da Janela.
  Opacidade = 255 #Opacidade da Janela.
  Switche = 5 # ID da switche para ativar desativar.
end #Fim do Módulo de Configuração
#===============================================================================
# ● Window_Coord
#==============================================================================
class Window_Coord < Window_Base
  include Coord
  def initialize
    super(X, Y, Largura, Altura)
    self.opacity = Opacidade
    self.hide
    refresh
  end
  def refresh
    self.contents.clear
    draw_text_ex(0, 0,"X:" + $game_player.x.to_s)
    draw_text_ex(70, 0,"Y:" + $game_player.y.to_s)
  end
end
class Scene_Map
  alias faalco_123_main main
  alias faalco_123_update update
  def main
    @hud ||= Window_Coord.new
    faalco_123_main
    @hud.dispose
  end
  def update
    faalco_123_update
    $game_switches[Coord::Switche] ? ["update", "refresh", "show"].each { |i| eval("@hud.#{i}") } : @hud.hide
  end
end
 



Dax mas esse script é igual ao que postei. O problema está sendo em dar dispose e depois recriar a hud.
Se alguem conseguir posta ae, pode ser muito útil para os scripters aqui :)

 Isso teria de modicar algumas coisas mais creio eu.. Pois a Scene_Base fica atualizando constantemente tudo que é Window. Mais depois eu vejo o que dá para fazer.