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

Masked Eventer Tools

Iniciado por Brandt, 24/11/2013 às 18:25

Tem como eu colocar uma tecla que feche a janela quando pressionada, serve?
~ Masked

Sim, vai ser muito, muito útil ...

Coloque teclas do tipo, TAB, Ctrl, Shift, essas teclas assim por favor :c meu jogo já vai usar um bucado de teclas normais, daí pode acabar interferindo T_T kkkkk
Tudo vai dar certo (y(8.

Só pra dar um @up, porque não sei se já leu a mensagem acima, e tenho que te avisar outro bug ...

Quando eu coloco assim no RM :
Spoiler

@janela = Event_Window.new(16, 188, 512,
170, ["Score das fases :", "Fase 1 :
" + $game_variables[21].to_s + " segundos",
"Fase 2 : " + $game_variables[22].to_s + "
segundos",
"Fase 3 : " + $game_variables[23].to_s + "
segundos",
"Fase 4 : " + $game_variables[185].to_s + "
segundos"])
@janela.show_text
@janela.show_variables
[close]
Não mostra os textos e nem se quer as variáveis, aparece apenas uma janela sem nada ... ( isso em eventos comuns, não testei em eventos normais )

Por favor, arruma isso >< você não tem noção do quanto esse script me ajuda D:
Tudo vai dar certo (y(8.

Tenta isso:

@janela = Event_Window.new(16, 188, 512, 
170, ["Score das fases :", "Fase 1 : 
" + $game_variables[21].to_s + " segundos", 
"Fase 2 : " + $game_variables[22].to_s + " 
segundos", 
"Fase 3 : " + $game_variables[23].to_s + "
segundos", 
"Fase 4 : " + $game_variables[185].to_s + "
segundos"])
@janela.show_text


ou isso:

@janela = Event_Window.new(16, 188, 512, 
170, ["Score das fases :", "Fase 1 : 
" + $game_variables[21].to_s + " segundos", 
"Fase 2 : " + $game_variables[22].to_s + " 
segundos", 
"Fase 3 : " + $game_variables[23].to_s + "
segundos", 
"Fase 4 : " + $game_variables[185].to_s + "
segundos"])
@janela.show_all


O show_variables é para itens separados, tipo:

@janela = Event_Window.new(16, 188, 512, 
170, ["a",2])
@janela.show_variables


Ele escreve 2 na janela, além disso, o .to_s transforma a variável em texto :rick8:

EDIT: Ah, a mensagem anterior... vou deixar a tecla customizável, aí você usa o Fullkeyboard do Raizen e fica tudo oks
~ Masked

Adicionei a opção:

#==============================================================================
# MBS_Event_Window
# 
# by Masked
#
# O script serve para auxiliar os eventers na criação de janelas, o script cria
# uma janela onde podem ser armazenados valores e os mesmos podem ser mostrados,
# também é possível mostrar ícones na janela e, claro, apagar ela.
#
# Para criar a janela, ponha em chamar script: 
# @nome_da_janela = Event_Window.new(posição x, posição y, largura, altura, 
# [valor1, valor2...])
# 
# Os valores (valor1, valor2...) podem ser uma variável ($game_variables[id]) ou
# um texto ("texto") e devem ser adicionados na array ( [] ) como mencionado nos
# respectivos parentesis.
#
# Para mostrar os valores que forem uma variável, digite:
# @nome_da_janela.show_variables
# 
# Para mostar os valores que forem um texto, digite:
# @nome_da_janela.show_text
#
# Para mostar os dois:
# @nome_da_janela.show_all
#
# Para mostar um ícone:
# @nome_da_janela.draw_icon(index do ícone, posição x, posição y)
#
# Também é possível fazer a janela "dizer" o seu tamanho e posição
# x e y, para isso:
# @nome_da_janela.return_dimensions
# @nome_da_janela.return_position
# na ordem: retorna o tamanho e retorna a posição
# Esses métodos retornam uma array ( [] ), então para se referir à posição/tamanho
# x, use @nome_da_janela.return_*[0] e use @nome_da_janela.return_*[1] para se 
# referir à posição/tamanho y.
#
# Para fechar a janela, digite em chamar script:
# @janela.dispose
#
# Atualização 1.1:
#
# - adicionada opção de pausar a cena ao abrir a janela
#
# Se quiser que a janela pause a cena, coloque um sexto argumento depois dos 
# valores, se ele for true, a cena será pausada, se for false ou não houver um 
# sexto argumento, a cena continuará.
# Ex.:
# @janela = Event_Window.new(0, 0, 100, 100, [10, "Masked"], true)
#==============================================================================
#==============================================================================
# Configurações:
#==============================================================================

# $mbs_debug_aux:
# deixe como true para ativar o auxiliar pela janela de depuração, para 
# desativar deixe como false

$mbs_debug_aux = true 

#==============================================================================
# Fim das Configurações
#==============================================================================
class Event_Window < Window_Base
  
  attr_accessor :dispose_key
  
 def initialize(x, y, width, height, values, pause_scene=false)
  super(x, y, width, height)
  @pause = pause_scene
  SceneManager.call(Scene_MBS_Event_Window) if pause_scene
  puts "Criando janela #{self}..."  if $mbs_debug_aux
  @value = []
  @text_values = []
  @variable_values = []
  check_value(values)
  @dispose_key = :B
end

def update
  super
  p 1
  dispose if Input.trigger?(@dispose_key)
end

def check_value(value)
  puts "Verificando se o valor é uma Array..." if $mbs_debug_aux
  if value.is_a?(Array)
@value = value
@value.each {|val| 
if val.is_a?(String)
  @text_values << val
else
  @variable_values << val
end}
else
  raise("O valor atríbuído à janela deve ser  uma array ( [] )!")
  if $mbs_debug_aux
  puts "ERRO 01:" 
  puts "Se você está vendo este erro, provavelmente você atribuíu um valor à janela que não é uma array."
  puts "Para corrigir este erro, mude, na chamada de script, o código da criação da janela e coloque os valores dentro de '[]' (colchetes) e separados por ',' (vírgula)" 
  end
end
end

def show_variables
  times = 0
  self.contents.clear
  puts "Escrevendo variáveis..."  if $mbs_debug_aux
  @variable_values.each {|val|  
  self.contents.draw_text(5, times * 24 - 40, self.width, @variable_values.size*24, @value[i].to_s)
    times += 1
  }
  end

def show_text
  times = 0
  self.contents.clear
  puts "Escrevendo textos..." if $mbs_debug_aux
  @text_values.each {|val|
  self.contents.draw_text(5, times * 24 - 40, self.width, @text_values.size*24, val,0)
  times += 1
  }
end

def show_all
  times = 0
  self.contents.clear
  puts "Escrevendo variáveis e textos..." if $mbs_debug_aux
@value.each {|val|
  self.contents.draw_text(5, i * 24 - 40, self.width, @value.size*24, val.to_s)
}
end

def return_dimensions
return [self.width, self.height]
end

def return_positions
return [self.x, self.y]
end

def dispose
super
puts "Fechando janela #{self}..." if $mbs_debug_aux
SceneManager.return if @pause
end

end

class Scene_MBS_Event_Window < Scene_Base
  
def start
  super
  create_background
end

def update
  super
    $game_map.update(true)
  end

def create_background
    @background_sprite = Sprite.new
    @background_sprite.bitmap = SceneManager.background_bitmap
    @background_sprite.color.set(16, 16, 16, 0)
  end
  def dispose_background
    @background_sprite.dispose
  end
  
  def terminate
    super
    dispose_background
  end
  
end
class Game_Interpreter
  #--------------------------------------------------------------------------
  # * Atualização da tela
  #--------------------------------------------------------------------------
  def update
    @fiber.resume if @fiber
    instance_variables.each {|ivar| 
    if instance_variable_get(ivar).is_a?(Event_Window)
    instance_variable_get(ivar).update unless instance_variable_get(ivar).disposed?
    end}
  end
end


Aí quando for chamar, pra definir a tecla que fecha ela, fica assim:

@janela.dispose_key = key


No lugar de key, você põe a tecla, se for usar o full keyboard do Raizen, é Key::tecla, a tecla você vê no script dele
~ Masked

16/03/2014 às 19:40 #20 Última edição: 16/03/2014 às 19:49 por katumblo
O klart me ajudou com os bugs de não aparecerem na tela, daí ficou asism o meu :

Spoiler
@str1 = "Fase 1: " +
$game_variables[21].to_s + "segundos"
@str2 = "Fase 2: " +
$game_variables[22].to_s + " segundos"
@str3 = "Fase 3: " +
$game_variables[23].to_s + " segundos"
@str4 = "Fase 4: " +
$game_variables[185].to_s + " segundos"
@janela = Event_Window.new(16, 188, 512,
170, ["Score das fases :",
@str1,@str2,@str3,@str4])
@janela.show_text
[close]

{:

Outra coisa, não estou entendendo o negocio de escolher uma tecla ._.
eu estou pondo assim : @janela.dispose_key = b mas daí da erro ._. O que estou fazendo de errado? D;

edit :

eu testei assim : @janela.dispose_key = :B daí fecha com ESC, mas ESC abre o menu .-. e agora? EOASUHEOASHUE
Tudo vai dar certo (y(8.

Ah, sim...

Então, o que acontece é que isso tá errado, você está usando o full keyboard do Raizen?
Se não, use esses símbolos:

:C = Z/Enter/Space
:B = X
:L = Q
:R = W
:X = A
:Y = S
:Z = D
:A = Shift

Aí fica assim:

@janela.dispose_key = :B


Mas se você quer usar a tecla B,use o script do Raizen e esse call (acho que é assim):

@janela.dispose_key = Key::B
~ Masked

Eu estou usando o full keyboard do raizen, mas não vou precisar dele aqui *U*
eu usei a tecla A que virou Shift, ficou perfeito {:' vllllw vei
+ 3 ouros pra você kkkkk ;DD
Tudo vai dar certo (y(8.

Eaae mask, quanto tempo {;

Bom, estava voltando com o Contra o Tempo :wow: e daí precisei de teu script de janela, fui usá-lo, só que quando eu chamo o Evento comum usando um Evento, a janela que abre some rapidamente,  a função "@janela.dispose_key = :A" não está funcionando :\ a janela fecha sem eu ter que apertar nada T_T ...
O que estou fazendo de errado? aí está o código que estou usando :
@janela = Event_Window.new(6, 188, 362, 
190, ["Missão 1 =" "Passe toda a 
fase com no mínimo 30 segundos ou mais."])
@janela.show_text

Logo em seguida, eu criei outro "chamar script" e pus assim :
@janela.dispose_key = :A


Se puder me ajudar ficarei muito grato :3
Tudo vai dar certo (y(8.

14/04/2014 às 20:45 #24 Última edição: 15/04/2014 às 00:09 por Masked
Eita :será:
Vou ver aqui assim que puder, agora não tenho como usar meu PC, aí eu te aviso, estranho que olhando o código não vejo onde está o problema...


EDIT:
O único problema que eu achei foi um 'p 1' maroto que eu estava usando pra testes e esqueci de apagar... reveja aí o evento e tente pegar o script do tópico...
~ Masked

Continou sem funcionar D:

Quando eu clico na opção "Missão 1" ela abre a janela que eu criei, porém a janela fecha sozinha e nem tem um padrão de segundos, às vezes demora, às vezes é rapido, às vezes é muito rápido ... T-T

Sabe o que pode ser não? ;\
Tudo vai dar certo (y(8.

Temos algum problema aí  :o:
Se puder me passar a pasta Data do seu projeto talvez eu consiga ver melhor o que está acontecendo...
~ Masked