|
Re: Ajudo com Scripts... (Apenas um pouco >.<)
Okay, então, pegue estes três Scripts aqui:
Janela de Ajuda, a da descrição dos ítens:
Código:
#==============================================================================
# Window_Help
#------------------------------------------------------------------------------
# Esta é a classe da janela responsável pela descrição dos items e das
# habilidades, assim como do status dos heróis.
#
# Uma duplicação desta janela acontece, para que a original não seja afetada. Por Angel Ivy-chan.
#==============================================================================
class Window_Help_Reliquias < Window_Base
#--------------------------------------------------------------------------
# Inicialização do objeto
#--------------------------------------------------------------------------
def initialize(x,y)
super(x, y, 544, WLH + 32)
end
#--------------------------------------------------------------------------
# Configuração do texto
# text : janela da string
# align : alinhamento (0: esquerda 1: centro 2: direita)
#--------------------------------------------------------------------------
def set_text(text, align = 0)
if text != @text or align != @align
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, self.width - 40, WLH, text, align)
@text = text
@align = align
end
end
end
As janelas:
Troque a Window_Item por esta:
Código:
#==============================================================================
# Window_Item
#------------------------------------------------------------------------------
# Janela responsável pela exibição dos items em posse.
#
# Pequena modificação por Angel Ivy-chan, para adaptar aos itens raros, que não aparecerão na janela.
#==============================================================================
class Window_Item < Window_Selectable
#--------------------------------------------------------------------------
# Inicialização do objeto
# x : coordenada X da janela
# y : coordenada Y da janela
# width : largura da janela
# height : altura da janela
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super(x, y, width, height)
@column_max = 2
self.index = 0
refresh
end
#--------------------------------------------------------------------------
# Aquisição das informações dos itens
#--------------------------------------------------------------------------
def item
return @data[self.index]
end
#--------------------------------------------------------------------------
# Items a serem inclusos na lista
# item : item
#--------------------------------------------------------------------------
def include?(item)
return false if item == nil
if item.note.include?("rare")
return false
end
if $game_temp.in_battle
return false unless item.is_a?(RPG::Item)
end
return true
end
#--------------------------------------------------------------------------
# Utems de uso possível
# item : item
#--------------------------------------------------------------------------
def enable?(item)
return $game_party.item_can_use?(item)
end
#--------------------------------------------------------------------------
# Atualização
#--------------------------------------------------------------------------
def refresh
@data = []
for item in $game_party.items
next unless include?(item)
@data.push(item)
if item.is_a?(RPG::Item) and item.id == $game_party.last_item_id
self.index = @data.size - 1
end
end
@data.push(nil) if include?(nil)
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
# Desenho dos items
# index : número de items
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
if item != nil
number = $game_party.item_number(item)
enabled = enable?(item)
rect.width -= 4
draw_item_name(item, rect.x, rect.y, enabled)
self.contents.draw_text(rect, sprintf(":%2d", number), 2)
end
end
#--------------------------------------------------------------------------
# Atualização do texto na janela de ajuda
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(item == nil ? "" : item.description)
end
end
E adicione esta aqui, acima do Main.
Código:
#==============================================================================
# Window_Reliquias
#------------------------------------------------------------------------------
# Janela responsável pela exibição dos items especiais em posse.
# Modificação por Angel Ivy-chan.
# Para adicionar um item especial, no dito "histórico" do item, escreva "rare", sem as aspas. Ele será apagado da Window_Item, caso tenha pego a modificação da mesma, e adicionado a esta janela.
#==============================================================================
class Window_Reliquias < Window_Selectable
#--------------------------------------------------------------------------
# Inicialização do objeto
# x : coordenada X da janela
# y : coordenada Y da janela
# width : largura da janela
# height : altura da janela
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super(x, y, width, height)
@column_max = 1
self.index = 0
refresh
end
#--------------------------------------------------------------------------
# Aquisição das informações dos itens
#--------------------------------------------------------------------------
def item
return @data[self.index]
end
#--------------------------------------------------------------------------
# Items a serem inclusos na lista
# item : item
#--------------------------------------------------------------------------
def include?(item)
return false if item == nil
if item.note.include?("rare")
return true
else
return false
end
end
#--------------------------------------------------------------------------
# Utems de uso possível
# item : item
#--------------------------------------------------------------------------
def enable?(item)
return $game_party.item_can_use?(item)
end
#--------------------------------------------------------------------------
# Atualização
#--------------------------------------------------------------------------
def refresh
@data = []
for item in $game_party.items
next unless include?(item)
@data.push(item)
if item.is_a?(RPG::Item) and item.id == $game_party.last_item_id
self.index = @data.size - 1
end
end
@data.push(nil) if include?(nil)
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
# Desenho dos items
# index : número de items
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
if item != nil
number = $game_party.item_number(item)
enabled = enable?(item)
rect.width -= 4
draw_item_name(item, rect.x, rect.y, enabled)
self.contents.draw_text(rect, sprintf(":%2d", number), 2)
end
end
#--------------------------------------------------------------------------
# Atualização do texto na janela de ajuda
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(item == nil ? "" : item.description)
end
end
Código:
#==============================================================================
# Scene_Relíquias
#
# Esta Scene gerencia o Menu dos Itens raros.
# Apenas aparecerá na janela, os ítens com o comentário "rare", no Histórico.
#==============================================================================
class Scene_Reliquias < Scene_Base
#--------------------------------------------------------------------------
# Inicialização do processo
#--------------------------------------------------------------------------
def start
super
create_menu_background
@viewport = Viewport.new(0, 0, 544, 416)
@help_window = Window_Help_Reliquias.new(0,360)
@help_window.viewport = @viewport
@item_window = Window_Reliquias.new(0, 0, 200, 360)
@item_window.viewport = @viewport
@item_window.help_window = @help_window
@item_window.active = false
@target_window = Window_MenuStatus.new(0, 0)
hide_target_window
end
#--------------------------------------------------------------------------
# Fim do processo
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@viewport.dispose
@help_window.dispose
@item_window.dispose
@target_window.dispose
end
#--------------------------------------------------------------------------
# Retornar à tela original
#--------------------------------------------------------------------------
def return_scene
$scene = Scene_Menu.new(0)
end
#--------------------------------------------------------------------------
# Atualização da tela
#--------------------------------------------------------------------------
def update
super
update_menu_background
@help_window.update
@item_window.update
@target_window.update
if @item_window.active
update_item_selection
elsif @target_window.active
update_target_selection
end
end
#--------------------------------------------------------------------------
# Atualização da seleção de items
#--------------------------------------------------------------------------
def update_item_selection
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::C)
@item = @item_window.item
if @item != nil
$game_party.last_item_id = @item.id
end
if $game_party.item_can_use?(@item)
Sound.play_decision
else
Sound.play_buzzer
end
end
end
#--------------------------------------------------------------------------
# Ocultar janela de alvo
#--------------------------------------------------------------------------
def hide_target_window
@item_window.active = true
@target_window.visible = false
@target_window.active = false
@viewport.rect.set(0, 0, 544, 416)
@viewport.ox = 0
end
end
Veja se isso é o que quer.
|