Por que scripts de craft não estão funcionando aqui?

5 Respostas   407 Visualizações

0 Membros e 1 Visitante estão vendo este tópico.

Myzhuk

  • *
  • Posts: 439
  • Ouros: 219
  • Hello there!!!
  • Medalhas Medalha dada ao 2° colocado no concurso DFTW
Tópico criado em: 10/12/2015 às 20:15

Tentei usar três scripts de craft (ou forja), o Lune Item Craft, MS - Crafting System e o Sistema de Forja do Isolagc.

Nenhum deles funcionou no meu projeto. Como estou usando vários scripts, pensei que poderia ser incompatibilidade. Criei um novo projeto, normal sem nada adicional, e coloquei os scripts, nenhum deles funciona. Sempre dá o seguinte erro:

Lune Item Craft

Spoiler
[close]

MS - Crafting System

Spoiler
[close]

Sistema de Forja do Isolagc

Spoiler
[close]

O Rpg Maker VX Ace que eu uso é o original, da Steam. Alguém sabe me dizer qual o problema?


Ven


Myzhuk

  • *
  • Posts: 439
  • Ouros: 219
  • Hello there!!!
  • Medalhas Medalha dada ao 2° colocado no concurso DFTW
Resposta 2: 10/12/2015 às 22:07

Nada, nem mesmo os itens que já vieram configurados, receitas e etc.

CDCyoshi

Resposta 3: 11/12/2015 às 08:37 - Última modificação por CDCyoshi em 11/12/2015 às 08:43

Talvez seja algum conflito com outros scripts...


Tente usar este Script:

Código: [Selecionar]
#=======================================================
#        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
♦Gifts♦

Raizen

  • Administrador
  • *
  • Posts: 3224
  • Ouros: 3192
  • Medalhas Vencedor do Protótipo Premiado Participante notável do evento "A Estação das Luzes do Norte" Vencedor CRM Awards - Melhor Scripter Vencedores das edições do Concurso Projeto Rickas!
Resposta 4: 11/12/2015 às 13:18

Tem algo estranho ai, dar erro nos 3 scripts xD?

Que lugar do projeto você está colocando? acima do main e tudo mais?

Myzhuk

  • *
  • Posts: 439
  • Ouros: 219
  • Hello there!!!
  • Medalhas Medalha dada ao 2° colocado no concurso DFTW
Resposta 5: 11/12/2015 às 14:38

@CDCyoshi

Cara o que você mandou deu um SyntaxError diferente.

@Raizen

To colocando tudo certinho, o engraçado é que achei um outro e funcionou, só esses três que não. Será que pode ser algo com o meu PC ao invés do programa?