Talvez seja algum conflito com outros scripts...
Tente usar este Script:
#=======================================================
# Lune Item Craft
# Author: Raizen
# Comunity: centrorpg.com
# Made for: RMVXAce
# Adds a function of Item combining in the menu,
# similar to other games like Diablo II.
#=======================================================
module Lune_Combine
#===========================================================================
# In case you use the recipe window , otherwise you can jump to Lose Items?
# Help Text
Text_comb1 = "See the combined items and its results!"
Text_comb2 = "To combine items go to the menu"
# Name that appears on the menu.
Craft = "Craft"
# Add to Menu?
Craft_Menu = true
# To activate the Craft window, SceneManager.call(Scene_LuneCraft)
# by Call Script.
#===========================================================================
# Lose Items?
# When Items are combined, in case it is a wrong combinations,
# They disappear or continue on the actors items?
# true = lose, false = don't lose
Lose_Itens = true
# Sound played in case of success
# To bem in SE folder of the project
Sound = "Item3"
# Vocabulary on menu
# Use
Use = 'Use'
# Combine
Combine = 'Combine'
# Release Items from combination
Throw = 'Release'
# Help text in item window.
TextComb = "Combination - Press Shift to combine."
# To create new combinations copy and paste the following, changing the
# value inside the [] on Combination[n].
# Key to be pressed to confirm the combination,
# Remembering it is the same keys from events.
# A = SHIFT, X = A, Y = S, Z = D, L = Q, R = W.
# In this way, :A for exemple.
Tecla = :A
Combination = []
#=========================================================================
# Combination 0 => 5 large potions
#=========================================================================
Combination[0] = {
# ID of the combined items
"Itens ID" => [1, 2],
# Tupe of items that are being combined, in the same order as above.
# 1 = item, 2 = weapons, 3 = armors
"Itens Types" => [1, 1],
# Quantidade needed of each item.
"Quantity" => [5, 5],
# Final Result of the item , ID do item.
"Result Item" => 3,
# Type of item obtained.
# 1 = item, 2 = weapons, 3 = armors
"Res Type" => 1,
# Quantity of item obtained
"ResQuantity" => 5 }
#=========================================================================
# Combination 1 => 1 War Axe
#=========================================================================
Combination[1] = {
# ID of the combined items
"Itens ID" => [1],
# Tupe of items that are being combined, in the same order as above.
# 1 = item, 2 = weapons, 3 = armors
"Itens Types" => [2],
# Quantidade needed of each item.
"Quantity" => [10],
# Final Result of the item , ID do item.
"Result Item" => 2,
# Type of item obtained.
# 1 = item, 2 = weapons, 3 = armors
"Res Type" => 2,
# Quantity of item obtained
"ResQuantity" => 1 }
#=========================================================================
# Combination 2 => 5 Mana Potions
#=========================================================================
Combination[2] = {
# ID of the combined items
"Itens ID" => [1, 2, 3],
# Tupe of items that are being combined, in the same order as above.
# 1 = item, 2 = weapons, 3 = armors
"Itens Types" => [1, 1, 1],
# Quantidade needed of each item.
"Quantity" => [5, 5, 5],
# Final Result of the item , ID do item.
"Result Item" => 4,
# Type of item obtained.
# 1 = item, 2 = weapons, 3 = armors
"Res Type" => 1,
# Quantity of item obtained
"ResQuantity" => 5 }
#===========================================================================
# Inicio do script
#===========================================================================
end
class Scene_Item < Scene_ItemBase
alias raizen_combine_start start
alias lune_terminate terminate
def start
raizen_combine_start
$combine_itemicon = []
$combine_itemcheck = []
@combine_item = Window_Item_Combine.new
@combine_item.viewport = @viewport
@combine_window = Window_Combine.new
@combine_window.viewport = @viewport
@combine_item.set_handler(:new_game, method(:command_use))
@combine_item.set_handler(:continue, method(:command_combine))
@combine_item.set_handler(:shutdown, method(:command_release))
end
def create_item_window
wy = @category_window.y + @category_window.height
wh = Graphics.height - wy
@item_window = Window_ItemList.new(0, wy, Graphics.width, wh - 80)
@item_window.viewport = @viewport
@item_window.help_window = @help_window
@item_window.set_handler(:ok, method(:on_item_ok))
@item_window.set_handler(:cancel, method(:on_item_cancel))
@category_window.item_window = @item_window
end
def on_item_ok
if item == nil
@item_window.activate
return
end
if @combine_item.close?
@combine_item.open
@combine_item.activate
else
determine_item
end
end
def return_itens
return if $combine_itemicon == []
for n in 0...$combine_itemicon.size
$game_party.gain_item($combine_itemicon[n], $combine_itens[n])
end
$combine_itemicon = []
end
def update
super
if Input.trigger?(Lune_Combine::Tecla)
@noreturn = false
for n in 0...Lune_Combine::Combination.size
@types = true
@lune_combination = []
for i in 0...Lune_Combine::Combination[n]['Itens Types'].size
case Lune_Combine::Combination[n]['Itens Types'][i]
when 1
@lune_combination.push($data_items[Lune_Combine::Combination[n]['Itens ID'][i]])
when 2
@lune_combination.push($data_weapons[Lune_Combine::Combination[n]['Itens ID'][i]])
when 3
@lune_combination.push($data_armors[Lune_Combine::Combination[n]['Itens ID'][i]])
end
end
for inc in 0...$combine_itemicon.size
@types = false unless @lune_combination.include?($combine_itemicon[inc])
get_pos = $combine_itemicon.index(@lune_combination[inc])
if get_pos != nil
@types = false if Lune_Combine::Combination[n]['Quantity'][inc] != $combine_itens[get_pos]
end
end
@types = false unless @lune_combination.size == $combine_itemicon.size
if @types
@noreturn = true
gotoforge(n)
end
end
return if @noreturn
@number_window.close if @number_window
command_release(Lune_Combine::Lose_Itens)
Sound.play_buzzer
end
@combine_window.refresh
if @number_window and @number_window.nitens == true
@number_window.nitens = false
@combine_item.close
@item_window.refresh
@item_window.activate
end
if Input.trigger?(:B) and !@combine_item.close?
Sound.play_cancel
if @number_window and !@number_window.close?
@number_window.close
@combine_item.activate
else
@combine_item.close
@item_window.activate
end
end
end
def command_use
determine_item
end
def command_combine
p @index
if @number_window and !@number_window.close?
@combine_item.activate
return
end
@number_window = Window_NumberInputInner.new(Window_Base.new(0,0,0,0), item, @item_window.index)
@number_window.viewport = @viewport
@number_window.start
end
def command_release(n = false)
return_itens unless n
$combine_itens = []
$combine_itemicon = []
@item_window.refresh
@combine_item.close
@item_window.activate
end
def terminate
return_itens
lune_terminate
end
def gotoforge(n)
$combine_itens = []
$combine_itemicon = []
case Lune_Combine::Combination[n]['Res Type']
when 1
get_item = $data_items[Lune_Combine::Combination[n]['Result Item']]
when 2
get_item = $data_weapons[Lune_Combine::Combination[n]['Result Item']]
when 3
get_item = $data_armors[Lune_Combine::Combination[n]['Result Item']]
end
RPG::SE.new(Lune_Combine::Sound).play
$game_party.gain_item(get_item, Lune_Combine::Combination[n]['ResQuantity'])
@item_window.refresh
end
end
#==============================================================================
# ** Window_Combine
#------------------------------------------------------------------------------
# Esta janela exibe os itens a serem fundidos.
#==============================================================================
class Window_Combine < Window_Base
include Lune_Combine
#--------------------------------------------------------------------------
# * Inicialização do objeto
#--------------------------------------------------------------------------
def initialize
super(0, window_height, Graphics.width, 80)
$combine_itens = []
refresh
end
#--------------------------------------------------------------------------
# * Aquisição da largura da janela
#--------------------------------------------------------------------------
def window_width
return 160
end
def window_height
Graphics.height - 80
end
#--------------------------------------------------------------------------
# * Renovação
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_text(0, -5, Graphics.width, 30, TextComb, 0)
unless $combine_itens.nil?
for i in 0...$combine_itens.size
draw_combine_icons(i)
end
end
end
#--------------------------------------------------------------------------
# * Aquisição do valor em dinheiro
#--------------------------------------------------------------------------
def value
$game_party.gold
end
def draw_combine_icons(i)
item_icon = $combine_itemicon[i].icon_index
item_number = $combine_itens[i]
draw_icon(item_icon, 0 + i*50, 30)
draw_text(i*50 + 5, 30, 20, 30, "x", 0)
draw_text(i*50 + 20, 30, 20, 30, item_number, 0)
end
#--------------------------------------------------------------------------
# * Aquisição da unidade monetária
#--------------------------------------------------------------------------
def currency_unit
Vocab::currency_unit
end
#--------------------------------------------------------------------------
# * Abertura da janela
#--------------------------------------------------------------------------
def open
refresh
super
end
end
#==============================================================================
# ** Window_MenuStatus
#------------------------------------------------------------------------------
# Esta janela exibe os parâmetros dos membros do grupo na tela de menu.
#==============================================================================
class Window_Item_Combine < Window_Command
include Lune_Combine
#--------------------------------------------------------------------------
# * Inicialização do objeto
#--------------------------------------------------------------------------
def initialize
super(0, 0)
self.z = 9999
self.x = (Graphics.width / 2) - (window_width / 2)
self.y = Graphics.height / 2
self.openness = 0
end
#--------------------------------------------------------------------------
# * Aquisição da largura da janela
#--------------------------------------------------------------------------
def window_width
return 160
end
#--------------------------------------------------------------------------
# * Criação da lista de comandos
#--------------------------------------------------------------------------
def make_command_list
add_main_commands
end
#--------------------------------------------------------------------------
# * Adição dos comandos principais
#--------------------------------------------------------------------------
def add_main_commands
add_command(Use, :new_game, true)
add_command(Combine, :continue, true)
add_command(Throw, :shutdown, true)
end
end
#==============================================================================
# ** Scene_ItemBase
#------------------------------------------------------------------------------
# Esta é a superclasse das classes que executam as telas de itens e
# habilidades.
#==============================================================================
class Scene_ItemBase < Scene_MenuBase
def determine_item
@combine_item.close
if item.is_a?(RPG::Item) and item.for_friend?
show_sub_window(@actor_window)
@actor_window.select_for_item(item)
else
item.is_a?(RPG::Item) ? use_item : Sound.play_buzzer
activate_item_window
end
end
end
#==============================================================================
# ** Window_NumberInputInner
#------------------------------------------------------------------------------
# Esta janela é utilizada para o comando de eventos [Armazenar Número]
#==============================================================================
class Window_NumberInputInner < Window_NumberInput
attr_accessor :nitens
def initialize(message_window, item, index_2)
@index_2 = index_2
@item = item
@get_lost_itens = 0
super(message_window)
end
#--------------------------------------------------------------------------
# * Inicialização do processo
#--------------------------------------------------------------------------
def start
@digits_max = 2
@number = @get_lost_itens
@number = [[@number, 0].max, 10 ** @digits_max - 1].min
@index = 0
update_placement
create_contents
refresh
open
activate
end
#--------------------------------------------------------------------------
# * Atualização da posição da janela
#--------------------------------------------------------------------------
def update_placement
self.width = @digits_max * 20 + padding * 2
self.height = fitting_height(1)
self.x = (Graphics.width - width) / 2
self.y = Graphics.height/2 - height
self.z = 150
end
#--------------------------------------------------------------------------
# * Definição de resultado ao pressionar o botão de confirmação
#--------------------------------------------------------------------------
def process_ok
Sound.play_ok
number = $game_party.item_number(@item)
if @number <= number && @number != 0
make_icon
end
deactivate
@nitens = true
close
end
def make_icon
@nitens = true
$combine_itemicon.push(@item)
$combine_itemcheck.push(@item.id)
$combine_itens.push(@number)
$game_party.lose_item(@item, @number)
end
end
#==============================================================================
# ** Window_ItemList
#------------------------------------------------------------------------------
# Esta janela exibe a lista de itens possuidos na tela de itens.
#==============================================================================
class Window_ItemList < Window_Selectable
#--------------------------------------------------------------------------
# * Definição de habilitação de seleção
#--------------------------------------------------------------------------
def current_item_enabled?
true
end
end