RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Mr Wiggles Alchemy Script

0 Members and 1 Guest are viewing this topic.

****
Rep:
Level 83
Mr Wiggles Alchemy
Version: 2.4
Author: Mr Wiggles
Date: March 20, 2010

Version History


  • <Version 2.4> 3/20/11 - Bug with script, and bug with recipe window.
  • <Version 2.3> 6/11/10 - Bug when viewing recipes after creating an item that crashed recipe window.
    Added new feature non consumable ingredients.
  • <Version 2.1> 5/19/10 - Few bugs when an empty item window.
  • <Version 2.0> 5/12/10 - Put recipes in module to make creating them easier.
    Created a Window script to go along with it to show a list of known recipes.
    Fixed a bug when adding blue prints.
  • <Version 1.6> 5/11/10 - Option to give a junk item if mix was incorrect.
    Fixed syntax if no items where able to be combined.
  • <Version 1.5> 5/10/10 - Able to combine any type if Item, Weapon, or Armor or any combination of the sort to crate something.
  • <Version 1.0> 5/9/10 - Original Release

Planned Future Versions

  • None as of right now.

Description


This script allows the player to combine up to four items in a simple to use script that will allow them to create items.

Features

  • Item filter, will only show certain items that are in the players inventory that are allowed to be combined.
  • Recipes are easy to create by using a simple array system.
  • Creation filter, this will allow you to control what the player can make, this way the player can only make what they know how to make.
  • Version 1.5 - Combine any Item, Weapon, Armor together to make anything.
  • Version 1.6 - Can give the player a useless item if the combination is wrong.
  • Version 2.0 - Can show a window that contains known recipes.
  • Version 2.3 - can have items that are not consumed when combined.

Screenshots

Alchemy Screen


Recipe Window


Instructions

Paste in the scripts database above main and then follow the instructions in the script header.

Script


Alchemy Script:
Code: [Select]
#===============================================================================
#                    Mr Wiggles Alchemy Script
#===============================================================================
# By Mr Wiggles
# Version 2.4
# 3-20-11
#-------------------------------------------------------------------------------
# Instructions:
#    Fill out the constants, And then call this script by using...
#    $scene = Alchemy.new
#===============================================================================

#-------------------------------------------------------------------------------
module ALCHEMY#/////////           *** EDIT AREA  ***                 /////////#
#-------------------------------------------------------------------------------
# Item IDs that can be used in Alchemy.
ALCHEMY_ITEMS   = [1,2,3,4]
#-------------------------------------------------------------------------------
# Item IDs that are not consumed when combined.
NON_CONSUME_ITEMS = [1,3]
#-------------------------------------------------------------------------------
# Weapon IDs that can be used in Alchemy.
ALCHEMY_WEAPONS = [1,2,3,4]
#-------------------------------------------------------------------------------
# Weapon IDs that are not consumed when combined.
NON_CONSUME_WEAPONS = [2,4]
#-------------------------------------------------------------------------------
# Armor IDs that can be used in Alchemy.
ALCHEMY_ARMORS  = [1,2,3,4]
#-------------------------------------------------------------------------------
# Armor IDs that are not consumed when combined.
NON_CONSUME_ARMORS = [2,3]
#-------------------------------------------------------------------------------
# Can combine more then the same type of item together, or just one of each.
COMBINE_DUPS = true
#-------------------------------------------------------------------------------
# Button that is used to check if the items being combined make anything.
CHECK_RECIPE_BUTTON = Keys::SHIFT
#-------------------------------------------------------------------------------
# Sound to play if the recipe was successful. leave blank if none.
RIGHT_SE = "055-Right01"
#-------------------------------------------------------------------------------
# Sound to play if the recipe failed. leave blank if none.
WRONG_SE = "057-Wrong01"
#-------------------------------------------------------------------------------
# recipes to make items. Example of a recipe:
# [[A,B], [A,B], [A,B], [A,B]]
# A = Type of Item in the recipe, (0 = Item, 1 = Weapon, 2 = Armor)
# B = ID if Item
# if slot is not being used in recipe, use 0.
ALCHEMY_RECIPES = [
[[0,2], [0,5], [0,6],   0  ], # 0 = 9 mm Rounds + Machine Gun Round + Bobby Pin
[[0,1], [1,1], [0,1], [0,1]], # 1 = 3 Arrows + Recurve Bow
[[0,2], [0,2],   0  ,   0  ], # 2 = 9 mm Rounds x2
[[1,2], [0,2], [2,3], [0,3]],
[[1,2], [2,6], [0,4],   0  ],
[[1,2], [2,5], [0,5],   0  ],
[[1,2], [2,4], [0,6],   0  ],
[[2,2], [0,2], [1,7],   0  ]
]# needs to be here
#-------------------------------------------------------------------------------
# Out comes of the above recipes:
# [A, B]
# A = Type of Creation (0 = Item, 1 = Weapon, 2 = Armor)
# B = ID of Item
ALCHEMY_OUTCOMES = [
[0, 10], # 0 Makes Flame Fuel
[1, 1],  # 1 Makes Recurve Bow
[2, 5],  # 2 Makes Leather Boots
[1, 2],
[1, 3],
[1, 4],
[1, 5],
[0, 3]
]# needs to be here
#-------------------------------------------------------------------------------
# Blue prints: the basic idea behind this is that the player can not create any
# items that they do not know how to create it. This can be done by using a
# script call command in an event that says:
# $game_system.add_blue_prints(Blue Print ID)
# the Blue print id refers to the location of the recipe in the
# ALCHEMY_RECIPES array, also remember that it starts counting at 0, this
# means that 1=0, 2=1, and so on.
#
# Bellow is the blue prints that the player already knows at the start of the
# game. [BP, BP, BP]  BP = Blue Print ID
BLUE_PRINTS = [1,2,4]
#-------------------------------------------------------------------------------
# Remove the items being combined if the recipe is wrong.
PENALIZE = false
#-------------------------------------------------------------------------------
# Give the player a junk item if the mix was wrong. PENALIZE must be true for
# this. If you don't want to use this set the ID to 0.
JUNK_ITEM_ID = 0
#-------------------------------------------------------------------------------
end#/////////              *** END EDIT AREA  ***                     /////////#
#-------------------------------------------------------------------------------


#===============================================================================
# ** Alchemy
#===============================================================================
class Alchemy
  #----------------------------------------------------------------
  # * Main
  #----------------------------------------------------------------
  def main
    # Create Windows
    @alchemy_window = Window_Alchemy.new
    @item_selection_window = Item_Selection_Window.new
    @help_window = Alchemy_Help.new
    @map_back    = Spriteset_Map.new
    @combination_window   = Combination_List_Window.new
    @finished_item_window = Finished_Item_Window.new
    # change Z
    @alchemy_window.z = 210
    @item_selection_window.z = 210
    @finished_item_window.z = 210
    @combination_window.z = 210
    @help_window.z = 210
    # Make variables
    @items_being_combined = []
    @recipes = ALCHEMY::ALCHEMY_RECIPES
    @out_comes = ALCHEMY::ALCHEMY_OUTCOMES
    @creation = []
    @combination = ""
    @showing_text_wait = 0
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @alchemy_window.dispose
    @item_selection_window.dispose
    @help_window.dispose
    @map_back.dispose
    @combination_window.dispose
    @finished_item_window.dispose
  end
  #----------------------------------------------------------------
  # * Update
  #----------------------------------------------------------------
  def update
    # Show the names of items being added
    @showing_text_wait -= 1 if @showing_text_wait != 0
    if @showing_text_wait == 0
      item_names = []
      for item in @items_being_combined
        return if item == nil
        item_names << item.name.to_s
      end
      @combination = item_names.join(" + ")
      @finished_item_window.update
    end
    # Update Windows
    @alchemy_window.refresh(@items_being_combined)
    @item_selection_window.update
    @combination_window.update(@combination)
    # update mains
    update_help
    update_commands
  end
  #----------------------------------------------------------------
  # * Update Help
  #----------------------------------------------------------------
  def update_help
    if @item_selection_window.item != nil
      @help_window.set_text(@item_selection_window.item.description)
    end
  end
  #----------------------------------------------------------------
  # * Update Commands
  #----------------------------------------------------------------
  def update_commands
    #--------------------------
    # If B button was pressed
    #--------------------------
    if Input.trigger?(Input::B)
      @showing_text_wait = 0
      if @items_being_combined.size > 0
        item = @items_being_combined[@items_being_combined.size - 1]
        case item
        when RPG::Item
          $game_party.gain_item(item.id, 1) if
            !ALCHEMY::NON_CONSUME_ITEMS.include?(item.id)
        when RPG::Weapon
          $game_party.gain_weapon(item.id, 1) if
            !ALCHEMY::NON_CONSUME_WEAPONS.include?(item.id)
        when RPG::Armor
          $game_party.gain_armor(item.id, 1) if
            !ALCHEMY::NON_CONSUME_ARMORS.include?(item.id)
        end
        $game_system.se_play($data_system.cancel_se)
        @items_being_combined.delete_at(@items_being_combined.size - 1)
      else
        # Return to map
        $game_system.se_play($data_system.cancel_se)
        $scene = Scene_Map.new
      end
      # Update item selection window
      @item_selection_window.refresh
      return
    end
    #--------------------------
    # If C button was pressed
    #--------------------------
    if Input.trigger?(Input::C)
      @showing_text_wait = 0
      item = @item_selection_window.item
      return if item == nil
      if @items_being_combined.size < 4
        if !@items_being_combined.include?(item) and
            ALCHEMY::COMBINE_DUPS == false
          $game_system.se_play($data_system.decision_se)
          @items_being_combined << item
          case item
          when RPG::Item
            $game_party.gain_item(item.id, -1) if
              !ALCHEMY::NON_CONSUME_ITEMS.include?(item.id)
          when RPG::Weapon
            $game_party.gain_weapon(item.id, -1) if
              !ALCHEMY::NON_CONSUME_WEAPONS.include?(item.id)
          when RPG::Armor
            $game_party.gain_armor(item.id, -1) if
              !ALCHEMY::NON_CONSUME_ARMORS.include?(item.id)
          end
        elsif ALCHEMY::COMBINE_DUPS == true
          $game_system.se_play($data_system.decision_se)
          @items_being_combined << item
          case item
          when RPG::Item
            $game_party.gain_item(item.id, -1) if
              !ALCHEMY::NON_CONSUME_ITEMS.include?(item.id)
          when RPG::Weapon
            $game_party.gain_weapon(item.id, -1) if
              !ALCHEMY::NON_CONSUME_WEAPONS.include?(item.id)
          when RPG::Armor
            $game_party.gain_armor(item.id, -1) if
              !ALCHEMY::NON_CONSUME_ARMORS.include?(item.id)
          end
        else
          $game_system.se_play($data_system.buzzer_se)
        end
      else
        $game_system.se_play($data_system.buzzer_se)
      end
      # Update item selection window
      @item_selection_window.refresh
      return
    end
    #--------------------------
    # If Check button was pressed
    #--------------------------
    if Input.trigger?(ALCHEMY::CHECK_RECIPE_BUTTON)
      # check if the player was able to make anything
      @creation = []
      if @items_being_combined.size > 1
        for id in 0..@recipes.size - 1
          recipe = @recipes[id]
          new_recipe = recipe.flatten
          new_recipe.sort!
          # if player does not know recipe
          next unless $game_system.blue_prints.include?(id)
          # get created item
          @creation = @out_comes[id]
          # kill game to prevent syntax error
          if @creation == nil
            print ("There is no out come for the recipie, please add one.")
            $scene = nil
            return
          end
          # get items to be combine
          items_combined = []
          for i in 0..@items_being_combined.size - 1
            item = @items_being_combined[i]
            case item
            when RPG::Item
              type = 0
            when RPG::Weapon
              type = 1
            when RPG::Armor
              type = 2
            end
            item_array = [type, item.id]
            items_combined.push(item_array)
          end
          # fill empty slots with 0
          empty_slots = 4 - items_combined.size
          for i in 0..empty_slots
            items_combined << 0 if items_combined.size < 4
          end
          items_combined.flatten!
          items_combined.sort!
          # see if the combination matches any recipes then
          # returns the item that was created
          break if items_combined == new_recipe
          @creation = []
        end
        # show result
        if @creation != []
          Audio.se_play("Audio/SE/"+ALCHEMY::RIGHT_SE, 90, 100) rescue nil
          # Add Item
          case @creation[0]
          when 0
            $game_party.gain_item(@creation[1], 1)
            item = $data_items[@creation[1]]
          when 1
            $game_party.gain_weapon(@creation[1], 1)
            item = $data_weapons[@creation[1]]
          when 2
            $game_party.gain_armor(@creation[1], 1)
            item = $data_armors[@creation[1]]
          end
          # Clear Varaibles
          @items_being_combined = []
          @showing_text_wait = 120
          # Show text
          @combination = "Success! Looks like you made a(n) #{item.name}."
          @finished_item_window.update(item)
        else
          Audio.se_play("Audio/SE/"+ALCHEMY::WRONG_SE, 90, 100) rescue nil
          # Clear items being combined
          if ALCHEMY::PENALIZE
            @items_being_combined = []
            junk_id = ALCHEMY::JUNK_ITEM_ID
            $game_party.gain_item(junk_id, 1) if junk_id > 0
          end
          @showing_text_wait = 120
          # Show text
          @combination = "I don't think those go well together."
        end
      end
      # Update item selection window
      @item_selection_window.refresh
      return
    end
  end
end

#===============================================================================
# ** Game_System
#===============================================================================
class Game_System
  attr_accessor :blue_prints
 
alias alchemy_init initialize
  def initialize
    alchemy_init
    @blue_prints = ALCHEMY::BLUE_PRINTS
    @recipes = ALCHEMY::ALCHEMY_RECIPES
  end
 
  def add_blue_prints(prints)
    if !@blue_prints.include?(prints) and prints < @recipes.size - 1
      @blue_prints << prints
    end
  end
end

#===============================================================================
# ** Alchemy Window
#===============================================================================
class Window_Alchemy < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(176, 32, 288, 80)   
    self.opacity = 160
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh([])
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh(items)
    @item_place = 0
    self.contents.clear
    for item in items
      draw_item(item, @item_place)
      @item_place += 1
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def draw_item(item, place)
    return if item == nil
    x = 0 + (place * 64)
    y = 0
    bitmap = RPG::Cache.icon(item.icon_name)
    w = bitmap.width
    h = bitmap.height
    src_rect  = Rect.new(0, 0, w, h)
    dest_rect = Rect.new(x, y, w*2, h*2)
    self.contents.stretch_blt(dest_rect, bitmap, src_rect)
  end
end

#===============================================================================
# ** Item Selection Window
#===============================================================================
class Item_Selection_Window < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
  def initialize
    super(0, 168, 640, 250)   
    self.opacity = 160
    @column_max = 3
    refresh
    self.index = 0
  end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    # Add Items that can be combined
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0 and ALCHEMY::ALCHEMY_ITEMS.include?(i)
        @data.push($data_items[i])
      end
    end
    # Add Weapons that can be combined
    for i in 1...$data_weapons.size
      if $game_party.weapon_number(i) > 0 and ALCHEMY::ALCHEMY_WEAPONS.include?(i)
        @data.push($data_weapons[i])
      end
    end
    # Add Armors that can be combined
    for i in 1...$data_armors.size
      if $game_party.armor_number(i) > 0 and ALCHEMY::ALCHEMY_ARMORS.include?(i)
        @data.push($data_armors[i])
      end
    end
    # Make selection Window
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
#--------------------------------------------------------------------------
# * Item
#--------------------------------------------------------------------------
  def item
    return @data[self.index]
  end
#--------------------------------------------------------------------------
# * Item by index
#--------------------------------------------------------------------------
  def return_item(index)
    return @data[index]
  end
#--------------------------------------------------------------------------
# * Draw Item
#--------------------------------------------------------------------------
  def draw_item(index)
    # Load Item Data
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    self.contents.font.color = normal_color
    # Creat Selector
    x = 4 + index % 3 * ((self.width - 30) / 3)
    if index == 1
      y = 0
    else
      y = index / 3 * 32
    end
    rect = Rect.new(x, y, self.width / @column_max, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    # Create Item Icon
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.font.size = 16
    if number > 1
      self.contents.draw_text(x, y + 8, 24, 32, number.to_s, 1)
    end
    # Draw Item name next to Icon
    self.contents.font.size = 16
    self.contents.draw_text(x+32, y, 130, 32, item.name)
  end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
  def update
    # If cursor is movable
    if self.active and @item_max > 0 and @index >= 0
      # Move cursor down
      if Input.repeat?(Input::DOWN)
        if @index < @item_max - @column_max
          $game_system.se_play($data_system.cursor_se)
          @index = (@index + @column_max) % @item_max
        end
      end
      # Move cursor up
      if Input.repeat?(Input::UP)
        if @index >= @column_max
          $game_system.se_play($data_system.cursor_se)
          @index = (@index - @column_max + @item_max) % @item_max
        end
      end
      # Move cursor right
      if Input.repeat?(Input::RIGHT)
        if (@index % 3 < 2)
          if @index != @item_max - 1
            @index += 1
            $game_system.se_play($data_system.cursor_se)
          end
        end
      end
      # Move cursor left
      if Input.repeat?(Input::LEFT)
        if (@index % 3 > 0)
          @index -= 1
          $game_system.se_play($data_system.cursor_se)
        end
      end
    end
    # Update cursor rectangle
    update_cursor_rect
  end
#--------------------------------------------------------------------------
# * Update Cursor Rectangle
#--------------------------------------------------------------------------
  def update_cursor_rect
    # If cursor position is less than 0
    if @index < 0
      self.cursor_rect.empty
      return
    end
    # Get current row
    row = @index / @column_max
    # If current row is before top row
    if row < self.top_row
      # Scroll so that current row becomes top row
      self.top_row = row
    end
    # If current row is more to back than back row
    if row > self.top_row + (self.page_row_max - 1)
      # Scroll so that current row becomes back row
      self.top_row = row - (self.page_row_max - 1)
    end
    # Calculate cursor width
    cursor_width = self.width / @column_max - 16
    # Calculate cursor coordinates
    x = @index % @column_max * (cursor_width + 4)
    y = @index / @column_max * 32 - self.oy
    # Update cursor rectangle
    self.cursor_rect.set(x, y, cursor_width, 32)
  end
end

#==============================================================================
# ** Alchemy_Help
#==============================================================================
class Alchemy_Help < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 416, 640, 64)
    self.opacity = 160
    self.contents = Bitmap.new(width - 32, height - 32)
  end
  #--------------------------------------------------------------------------
  # * Set Text
  #--------------------------------------------------------------------------
  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, 32, text, align)
      @text = text
      @align = align
      @actor = nil
    end
    self.visible = true
  end
end

#==============================================================================
# ** Combination_List_Window
#==============================================================================
class Combination_List_Window < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 120, 640, 48)
    self.opacity = 190
    self.contents = Bitmap.new(width - 32, height - 32)
    update
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update(text="")
    self.contents.clear
    self.contents.font.size = 17
    self.contents.draw_text(0, -6, 640, 32, text)
  end
end

#==============================================================================
# ** Finished_Item_Window
#==============================================================================
class Finished_Item_Window < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(276, 32, 96, 96)
    self.opacity = 0
    self.contents = Bitmap.new(width - 32, height - 32)
    update
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update(item=nil)
    self.contents.clear
    if item != nil
      bitmap = RPG::Cache.icon(item.icon_name)
      w = bitmap.width
      h = bitmap.height
      src_rect  = Rect.new(0, 0, w, h)
      dest_rect = Rect.new(0, 0, w*2, h*2)
      self.contents.stretch_blt(dest_rect, bitmap, src_rect)
    end
  end
end

Recipe Window:
Code: [Select]
#===============================================================================
#                         Alchemy Recipes
#===============================================================================
# By Mr Wiggles
# Version 1.4
# 3-20-11
#===============================================================================
#  Description:
#    This is a Window Class that when called will show the recipies that the
#    player knows to help remind them how to make something.  This requires
#    Mr Wiggles Alchemy Script V2.0 or higher script to work.
#-------------------------------------------------------------------------------
# Instructions:
#   Call this script with a script command in an event that says:
#   $scene = Recipes_List.new
#===============================================================================
class Recipes_List
  #----------------------------------------------------------------
  # * Main
  #----------------------------------------------------------------
  def main
    # Create Windows
    @recipe_window = Recipe_Window.new
    @recipe_header = Recipe_Header.new
    @recipe_header.set_text("Blue Prints for Creating Items.")
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @recipe_window.dispose
    @recipe_header.dispose
  end
 
  #----------------------------------------------------------------
  # * Update
  #----------------------------------------------------------------
  def update
    @recipe_window.update
    #--------------------------
    # If B button was pressed
    #--------------------------
    if Input.trigger?(Input::B)
      # Return to map
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
  end
end

#===============================================================================
# ** Recipe Window
#===============================================================================
class Recipe_Window < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 64, 640, 416)
    @column_max = 1
    @index = 0
    @loop = true
    @out_comes = ALCHEMY::ALCHEMY_OUTCOMES
    @recipes = ALCHEMY::ALCHEMY_RECIPES
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    # Add recipies into data
    @data = []
    for i in 0..@recipes.size - 1
      @data.push([@recipes[i], @out_comes[i]])
    end
    # Make selection Window
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 64)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index)
    # Get recipe item datas
    recipe = @data[index][0]
    @recipe_data = []
    for i in 0..3
      next if recipe[i] == 0
      case recipe[i][0]
      when 0
        @recipe_data.push($data_items[recipe[i][1]])
      when 1
        @recipe_data.push($data_weapons[recipe[i][1]])
      when 2
        @recipe_data.push($data_armors[recipe[i][1]])
      end
    end
    # Get out come data
    out_come = @data[index][1]
    case out_come[0]
    when 0
      out_come_data = $data_items[out_come[1]]
    when 1
      out_come_data = $data_weapons[out_come[1]]
    when 2
      out_come_data = $data_armors[out_come[1]]
    end
    # Create Selector
    x = 4
    y = 64 * index
    rect = Rect.new(x, y, self.width / @column_max, 64)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    # Draw recipe text and icons
    @text_lengths = []
    self.contents.font.size = 15
    if $game_system.blue_prints.include?(index)
      item_names = []
      for item in @recipe_data
        item_names.push(item.name.to_s)
      end
      recipe_text = item_names.join(" + ")
    else
      recipe_text = "???????????????????????????????????????????"
    end
    self.contents.draw_text(x+78, y+15, 640, 64, recipe_text)
    # Draw out come text and icon
    self.contents.font.size = 22
    if $game_system.blue_prints.include?(index)
      out_come_text = out_come_data.name.to_s
      create_double_icon(out_come_data, x+24, y+6)
    else
      out_come_text = "???????????"
      self.contents.font.size = 50
      self.contents.draw_text(x+38, y, 640, 64, "?")
    end
    self.contents.font.size = 22
    self.contents.draw_text(x+88, y-15, 640, 64, out_come_text)
    # Draw recipe number
    number = (index + 1).to_s + "."
    self.contents.draw_text(x, y, 64, 32, number)
  end
  #--------------------------------------------------------------------------
  # * Create Double Sized Icon
  #--------------------------------------------------------------------------
  def create_double_icon(item, x, y)
    if item != nil
      bitmap = RPG::Cache.icon(item.icon_name)
      w = bitmap.width
      h = bitmap.height
      src_rect  = Rect.new(0, 0, w, h)
      dest_rect = Rect.new(x, y, w*2, h*2)
      self.contents.stretch_blt(dest_rect, bitmap, src_rect)
    end
  end
  #--------------------------------------------------------------------------
  # * Create Normal Sized Icon
  #--------------------------------------------------------------------------
  def create_normal_icon(item, x, y)
    if item != nil
      bitmap = RPG::Cache.icon(item.icon_name)
      self.contents.blt(x, y, bitmap, Rect.new(0, 0, 24, 24))
    end
  end
  #--------------------------------------------------------------------------
  # * Update Cursor Rectangle
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
      return
    end
    self.top_row = @index if @index < self.top_row
    if @index > self.top_row + (self.page_row_max - 1)
      self.top_row = @index - (self.page_row_max - 1)
    end
    y = @index * 64 - self.oy
    self.cursor_rect.set(4, y, self.width - 28, 64)
  end
  #--------------------------------------------------------------------------
  # * Get Top Row
  #--------------------------------------------------------------------------
  def top_row
    return self.oy / 64
  end
  #--------------------------------------------------------------------------
  # * Set Top Row
  #--------------------------------------------------------------------------
  def top_row=(row)
    row = 0 if row < 0
    row = row_max - 1 if row > row_max - 1
    self.oy = row * 64
  end
  #--------------------------------------------------------------------------
  # * Get Number of Rows Displayable on 1 Page
  #--------------------------------------------------------------------------
  def page_row_max
    return (self.height - 32) / 64
  end
end

#==============================================================================
# ** Recipe Header
#==============================================================================
class Recipe_Header < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 640, 64)
    self.opacity = 255
    self.contents = Bitmap.new(width - 32, height - 32)
  end
  #--------------------------------------------------------------------------
  # * Set Text
  #--------------------------------------------------------------------------
  def set_text(text, align = 0)
    if text != @text or align != @align
      self.contents.clear
      self.contents.font.color = normal_color
      self.contents.font.size = 24
      self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
      @text = text
      @align = align
      @actor = nil
    end
    self.visible = true
  end
end

Support


If you find any errors or would like to suggest an idea for a future version post them in here.

Known Compatibility Issues

None that I know of.

Restrictions

Don't post this on any other forums without my permission, and you are free to edit the script in anyway but you must still give me credit some where.
« Last Edit: March 21, 2011, 03:04:33 AM by Mr_Wiggles »
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


*****
Rep:
Level 84
This text is way too personal.
Bronze - GIAW 11 (Hard)Silver - GIAW Halloween
I can definately see how this could be useful.

Kudos to you, Mr. Wiggles.

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best RPG Maker User (Scripting)2011 Best Use of Avatar and Signature Space2010 Most Mature Member2010 Favourite Staff Member
I like the design of this - very unique for creation scripts.

****
Rep:
Level 83
Thanks guys. :D
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


********
Resource Artist
Rep:
Level 94
\\\\\
Project of the Month winner for June 2009
I wish my real-life alchemy level was high enough to make something out of arrows, machine gun ammo and shotgun shells besides just an arrow with some metal and plastic taped to the end.

****
Rep:
Level 83
I wish my real-life alchemy level was high enough to make something out of arrows, machine gun ammo and shotgun shells besides just an arrow with some metal and plastic taped to the end.
rofl..
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 81
RMRK Junior
I can't get the script to work. I copied the script above main, then I called $scene = Alchemy.new through an event on map (with the default constants) and when I try to activate it, it says: Script 'Craft_Script' line 122: NoMethodError occurred. undefined method `description' for nil:NilClass
Then I have changed the constants like this:

13 ALCHEMY_ITEMS = [1,2,3]
16 COMBINE_DUPS = false
19 CHECK_RECIPE_BUTTON = Input::A
31 ALCHEMY_RECIPES = [
32 [1,2,0,0,3]
33 ]
45 BLUE_PRINTS = [0]
48 PENALIZE = true

Then... the same error... after that I tried to add a blueprint through call script feature: $game_system.add_blue_prints(0) and when I try to take the blueprint: Script 'Craft_Script' line 250: NoMethodError occurred. undefined method `include' for [0]:Array

I'm pretty new to RMXP so you'l have to excuse me if I talk gibberish or/and don't understand a word...

****
Rep:
Level 83
its fine, i know what it is that is going wrong i was gonna update this script, but the forum crashed. When i get on my computer i will upload the new version.

[Updated]
« Last Edit: May 18, 2010, 05:31:17 PM by Mr_Wiggles »
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 81
RMRK Junior
Still not working :P Sorry if I annoy anyone... (I have made some testing:)

So... with the default values, I open the Alchemy scene without having any item in my inventory. The Alchemy window it's empty and when I press Enter or C or Space on an empty space, I got the following error: Script 'Alchemy_Script' line 132: NoMethodError occurred. undefined method `name' for nil:NilClass. The X or ESC keys work if I want to get out of the Alchemy window or I want to remove an item.

Problem 2: If I have more than 2 or more items (for example: 2 High Potions) I got the following: Script 'Alchemy_Script' line 464: NoMethodError occurred. undefined method `draw_hemming_text' for #<Bitmap:0x134fb50>. Do I need some extra pictures in the Graphic directory?

Problem 3: I wanted to create an Bronze Helm ALCHEMY_OUTCOMES = [ [0, 10],... (line 50) and I need 1 High Potion and 1 Full Potion: ALCHEMY_RECIPES = [...[[0,2], [0,3], 0, 0], ] (line 42). Then I enter the game, I take one of each potion, I select them in the Alchemy window, and when I press the Z key to craft the item: Script 'Alchemy_Script' line 464: NoMethodError occurred. undefined method `draw_hemming_text' for #<Bitmap:0x130a478>

The Blueprints window work, I can see all the blueprints and if I modify the item requirements for an item that needs to be crafted in the script, it shows the ingredients properly in the Blueprints window. I haven't tested yet how to learn a blueprint because I saw that there was one with a lot of ????????'s 

I really hope that I will get the script to work because it remembers me of the crafting system in Anarchy Online and that's a good one with lot of potential in RMXP games :D
« Last Edit: May 19, 2010, 04:49:34 AM by recon2009 »

****
Rep:
Level 83
the  ? ? ? marks are just a filler for the recipes, for just the ones that are unknown.

also i have updated the script.  and your not annoying anyone. (well least not me)

thanks for helping me fix my mistakes, it will help me become a better scripter.
« Last Edit: May 19, 2010, 06:58:58 AM by Mr_Wiggles »
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 81
RMRK Junior
YAY! It's finally working   ^-^  Cheers Mr_Wiggles! and keep the good work coming :D It was a pleasure to criticize you (erm.. helping you :D)

****
Rep:
Level 83
:) thanks, good luck with your game.
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 81
RMRK Junior
Here is an quick update suggestion:

1.) Make somehow that some items can be made only if you are near or staying on an event. For example you can brew potions only if you are standing near an alchemist's bench, you can cook only near a fire source, etc...

2.) Make that some items don't disappear from inventory after you used them in a craft. For example knife + book = slashed pages, the book will disappear from inventory as default but the knife not. Or you can add multiple results from crafting, for example knife + book = slashed pages and knife.

I don't know if the suggestion NR.2 is already included in the script, I didn't had the time to experiment to much with it, and if it is, tell me please how to make it work :D , I don't have to much free time atm...

*
Meet me in the middle
Rep:
Level 89
or left of the dial.
For frequently finding and reporting spam and spam botsSecret Santa 2012 Participant
since when is alchemy crafting?

****
Rep:
Level 83
@ Firerain - idk

@  recon2009 - nice suggestions when i get the time i can try to implement them into a new version.
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 81
RMRK Junior
I got the script working but i have 2 problems
1) potions no longer appear in my invetory (but appear in the alchemy list wen picking ingrediants)
2)game crashes after battle giving this error


????????NameError?????????
unitialized constant Interpriator::Scene_plan_alch

I'm currently using
Blizzards Tons of Addons, Final Fantasty 7 Menu and Blizzard Chaos Limit Rage Scripts and they work fine together

**
Rep: +0/-0Level 81
RMRK Junior
@ Firerain - As long as you can combine two or more items of your wish, that's crafting :P the possibilities are unlimited...

****
Rep:
Level 83
I got the script working but i have 2 problems
1) potions no longer appear in my invetory (but appear in the alchemy list wen picking ingrediants)
2)game crashes after battle giving this error


????????NameError?????????
unitialized constant Interpriator::Scene_plan_alch

I'm currently using
Blizzards Tons of Addons, Final Fantasty 7 Menu and Blizzard Chaos Limit Rage Scripts and they work fine together

What script in blizzards Addons are you using?

i looked at the scripts that you where talking about and i didn't find anything that would make them not work together.  Where in the scripts data base did you put this? (above main bellow the defaults, is it above or bellow these other scripts or not, that kinda stuff)
« Last Edit: May 21, 2010, 09:23:14 AM by Mr_Wiggles »
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 81
RMRK Junior
I placed the 2 scripts directly above the main script and underneth the rest of the custom scripts i'm using



Fixed the crashing i think i just forgot to remove a previous alchemy a call script but the pottions still dnt show in the item menus but they do show in the alchemy windows
« Last Edit: May 21, 2010, 09:29:55 PM by apoclaydon »

****
Rep:
Level 83
what ff7 script are you using i looked one up but i there might be more then one version what i think is happening is that the windows used in both scripts to show the items are sharing the same name.
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com



****
Rep:
Level 83
Try to place the alchemy script above all of your add on ones.
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 81
RMRK Junior
still dsnt show potions in inventory (snt matter gonna redo the database anyway so i'll leave slot on blank)

**
Rep: +0/-0Level 80
RMRK Junior
wow! this is awesome! thanks for posting it. I will defenitly use it in my game.
All I need to learn now is how to add and change some recipes. felt a bit wierd that a High Potion + High Potion will create a erm Bronze Helm?
And that an Iron Shield + High Potion +  Steel Spear will create a Full potion.
Ah well I hope that I will be able to undearstand how to create my own recipes.
Still new to scripting have only made games without extra scripts befour so well I am a noob a guess.
If I am to stupid to understand how to fix recipes I will come back and ask. And thank you again for making this awesome script.
O power that lies at the root of all creation, o memory inscribed in ages past,
hear my call and arise before me! Ancient Catastrophe! This is the fruit of my
research.

**
Rep: +0/-0Level 80
RMRK Junior
Oh NO! got a problem..

Made a test char with a list of event commands that looks like this
@>Show Choices: Show Recipe list, Time for Alchemy
 : When [Show Recipe list]
  @>Script: $scene = Recipes_List.new
  @>
 : When [Time for Alchemy]
  @>Script: $scene = Alchemy.new
  @>
 : Branch End
@>

well it works fine. when I choose the show recipe it shows the recipe list
and when I choose the Time for Alchemy option I get the Alchemy window
and I can create an item or two.
but if I create an Item and then talk with the guy again and choose Recipe list I get an error message that follows

Script 'Recipe' line141:NoMethodError occured.
undefined method `name' for nil:NilClass
O power that lies at the root of all creation, o memory inscribed in ages past,
hear my call and arise before me! Ancient Catastrophe! This is the fruit of my
research.

****
Rep:
Level 83
did you talk to him after you created every item you could? and are you using the latest version of the script?
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 80
RMRK Junior
Well I am using the script that is posted in this thread. And I have recreated the script and the character but as soon as I create an item the "show recipe" option makes the game to crash and I get the message

Script 'Recipe' line141:NoMethodError occured.
undefined method `name' for nil:NilClass

I can talk with him again and create more items but I can't check the recipe list again.
O power that lies at the root of all creation, o memory inscribed in ages past,
hear my call and arise before me! Ancient Catastrophe! This is the fruit of my
research.

****
Rep:
Level 83
yea i found the time to fix this, but i'm not on my computer so when i get internet on it again i can upload the new version of the script.
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 80
RMRK Junior
thanks I will be waiting
O power that lies at the root of all creation, o memory inscribed in ages past,
hear my call and arise before me! Ancient Catastrophe! This is the fruit of my
research.

****
Rep:
Level 83
*Updated the script*
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 77
RMRK Junior
Hey Mr. Wiggles I get this error Script 'Alchemy' Line 37: NameError occurred uninitialized Constant ALCHEMY::Keys. I was wondering if u could help me fix and possible to add it to my menu screen

****
Rep:
Level 83
OH sorry that's my bad, i am useing an Input module in my game so i have some extra keys i can use. To fix this just go to that line and where it says "Keys::SHIFT" Change that to any one of RPG Inputs...
#----- Button -------- #
#  A B C X Y Z L R    #
#------Key Borad ----#     The equivalent on the keyboard.
#  Z B C A S D Q W  #         
#--------------------------#

So "Input::A" would be key "Z" and so forth. (yes you have to have Input:: before your desired button)

For adding it into your game menu you'll have to edit a little bit in the menu script and a few others.
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 83
Hello, Mr. Wiggles.  This seems like it would be a great addition to any game.  However, I am new to scripting and am having some problems with the script.

First of all, there is absolutely no text on any of the items or descriptions in the alchemy menu.  Only the icons appear.  How do I fix this?

Also, when I try to load the Blue Print list in-game using a $game_system.add_blue_prints( ), I get a bad syntax on line 354 "undefined method 'size' for 'nil:NilClass'  What am I doing wrong.

I can't wait to get this script working and use it for my game.  Great job!

**
Rep: +0/-0Level 82
hey mr wiggles, iv had a few probs but iv managed to fix them by reading the forum so this question hasn't been asked before (I think...). For some reason i cant add any knew recipes, like combination's of stuff to make you know? its a syntax on line 56 please help i also tried shifting the default down a line and added my own in between and it still says the same thing so i think that iv missed something that tells the computer how many recipes there are maybe??

****
Rep:
Level 83
i will look into these errors when i find the chance i was gone for 3 weeks RL stuff and getting into college classes, chances are i will look at these errors this week end.

[edit]
   @Yggdrasil12 - you need to put the blue print number for the blue prints your adding to the list of known ones. IE add blue prints 4 you would
$game_system.add_blue_prints(4)
or like to add prints 15
$game_system.add_blue_prints(15)

[edit2]
  @dewm3734 - ca you post what you have on that line so i can see what is wrong with it.
« Last Edit: August 25, 2010, 02:02:18 AM by Mr_Wiggles »
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 71
RMRK Junior
Don't know if you even come here anymore, but Mr Wiggles, I'm having a problem with the call script command for the blueprints. When I try to add a recipe, I get a message that reads, line 357 NoMethodError occured
                             undefined method `size' for nil:NilClass

Any thoughts?

****
Rep:
Level 83
Yea sorry about the delays, but i do check this forum from time to time for support on my scripts, i have updated with a newer version which i think fixed all the problems.
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 71
RMRK Junior
Thanks, it works great now.

**
Rep: +0/-0Level 72
Not-so-Noob
this is annoying me. This script keeps putting all it's info on one line in my script editor. I'm quite frustrated. Also, the screenshots don't work anymore on this topic.  what is going on?  :-\

****
Rep:
Level 83
The img urls expired and i have no clue why its putting all the script information on one line.
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Most Missed Member2014 Zero to Hero2014 Best IRC Quote2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
It's because SMF code-boxes and Internet Explorer do not mix. It works on pretty much everything else.
it's like a metaphor or something i don't know

**
Rep: +0/-0Level 71
RMRK Junior
I don't have a clue why, but the recipe book script isn't working for me anymore. It worked when I was first using it, everything that my characters learned to make in the alchemy script would show up just fine. I haven't done anything to any other scripts or added any new ones, but now when I try to call the recipe list, I get a message reading, "...line 123 NoMethodError occurred. Undefined method `[]' for nil:NilClass.

**
Rep: +0/-0Level 71
RMRK Junior
I know it can't be a problem with your script, I just want to determine where the problem lies. 'Line 123' is in the "Draw Item" section of the script. What does that pertain to, anyway? If I know, then I can probably find the problem.

**
Rep: +0/-0Level 71
RMRK Junior
Okay, never mind. I don't know what the hell is going on, but I got it working. I needed to keep a blank line between my last creatable item and the line that says
"]# needs to be here" in the alchemy script for the recipe script to work. I don't know why exactly...I never had to do that before...

****
Rep:
Level 83
So you do in fact have this working? Also there is an edit button for your previous post and i know not using it makes mods here angry, just saying.
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 63
RMRK Junior
Help, I keep on getting this error:


Script 'Recipes' line 139: NoMethodError occured.

undefined method 'blue_prints' for #<Game_System:0x83ccd30>


I am a noob and have no idea how to fix this error. HELP!

****
Rep:
Level 83
I can fix your error but you'll need to wait till tomorrow, i don't have the time right now to fix it. I just wanted you to know that i know about it.
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com


**
Rep: +0/-0Level 63
RMRK Junior
Thanks I'll be waiting! ^-^

**
Rep: +0/-0Level 63
RMRK Junior
Mr. Wiggles?
Is anyone there? :-\

*****
my name is Timothy what's yours
Rep:
Level 79
Hello
2014 Most Missed Member2014 Zero to Hero2014 Best IRC Quote2012 Zero To HeroSecret Santa 2012 ParticipantContestant - GIAW 9For frequently finding and reporting spam and spam bots2011 Zero to Hero
An error like that is probably caused by a corrupt save file. Does the project work in a new game?
it's like a metaphor or something i don't know

**
Rep: +0/-0Level 63
RMRK Junior
Nope, I get the same error! :'(

**
Rep: +0/-0Level 63
RMRK Junior
Aaaaaahhhhhh!
I have a new error:
Script 'Alchemy' line263:NoMethodError occured.
undefined method `include?' for nil:NilClass
Help
I think I'm going crazy, I keep seeing errors everywhere :aryan:

**
Rep: +0/-0Level 63
RMRK Junior
HEY, is anyone there?

****
Rep:
Level 83
Yep, im here, and im looking into replicating the error so i can fix it.

[edit]
Can you post what your script header looks like?
« Last Edit: January 05, 2012, 08:15:55 PM by Mr_Wiggles »
Spoiler for:
METALFRESH is a paint contractor that specializes in refinishing metal and vinyl siding. We paint metal buildings as well as siding on homes.

We also

    Refinish decks
    Do custom interior painting
    Strip wallpaper
    Refinish cedar siding
    Metal front doors and sidelights
    Metal garage and service doors
    Grained fiberglass doors

    If your structure is *RUSTED *FADED *CHALKING *IN NEED OF COLOR CHANGE, we can fix it with a guarentee!

northern Illinois and southern Wisconsin.

http://metalfreshcoatings.com