Help - Search - Members - Calendar
Full Version: The Project Zelda Engine (aka Zelda Starter Kit)! *With Download Links & Pictures*
RPG RPG Revolution Forums > Game Engines > RPG Maker XP Discussion
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33
Chakanevil
here are the new screen shots for the inventory system I am working on, looking for some feedback.



I decided to make the items menu a lighter blue, and I may make the mask menu a darker blue then what is above, the mask menu I tried to get the color from the majora mask menu, which is a brown sandstone color, but with the gold of quest, I think it could use another color or darker blue, or do you think the color is good, I'm really thinking about royal purple, as purple is the color of shadow, and most mask are dark in nature, in majora mask.

Edit: Added The bars at the bottom of the screen

Items


Status


Map


Masks


Quest


Save


I realize mask and quest are close in color so i was wanting to ask if anyone had a color suggestion, I was thinking maybe a darker blue or royal purple.

Edit2: Later today or tomorrow, I will work on the cursor.
zhoul
did you made the titel menu darker? huh.gif

@ in game menu: well done dude. It looks very good and i think its ok that mask and quest are smiliar cause if you use
too many colors it looks like a rainbow menu xD too many colors isnt the best way. Btw...since when has Zelda a quest page?
OoT and Majoras Mask or other Zelda games dont have a quest window. Normaly you know where you need to go next.



off topic: which prog do you use for spriting? (character sprites, item sprites)
Chakanevil
QUOTE (zhoul @ Jul 13 2011, 03:35 AM) *
did you made the titel menu darker? huh.gif

@ in game menu: well done dude. It looks very good and i think its ok that mask and quest are smiliar cause if you use
too many colors it looks like a rainbow menu xD too many colors isnt the best way. Btw...since when has Zelda a quest page?
OoT and Majoras Mask or other Zelda games dont have a quest window. Normaly you know where you need to go next.



off topic: which prog do you use for spriting? (character sprites, item sprites)


nope, it's not any darker for the title screen i haven't touched that, i was saying that i was thinking of making the mask screen a darker shade of blue then what is seen in the title screen, and there's no quest system, quest menu refers to what you have received during your journey, such as heart pieces, medallions, etc....

so you can relax there, i didn't know what to call it, but i ensure you it will not be anything like an rpg, such as world of warcraft, which tells you where you should head to, but rather a display of your accomplishments, such as you are 3/4 of the way to completing another heart container, you have collected all 3 spirtual stones and collected all medallions, sorry if that confused you, hope that me clarifying makes sense.
zhoul
QUOTE
nope, it's not any darker for the title screen i haven't touched that, i was saying that i was thinking of making the mask screen a darker shade of blue then what is seen in the title screen, and there's no quest system, quest menu refers to what you have received during your journey, such as heart pieces, medallions, etc....

so you can relax there, i didn't know what to call it, but i ensure you it will ot be anything like an rpg, that tells you where you should head to, but rather a display of your accomplishments, such as you are 3/4 of the way of completing another heart container, sorry if that confused you, hope that me clarifying makes sense.


ok ^^ But i still think that this one is definitley ok. Perhaps you reduce the color a bit but another color would be too colorfull
Chakanevil
QUOTE (zhoul @ Jul 13 2011, 05:13 AM) *
QUOTE
nope, it's not any darker for the title screen i haven't touched that, i was saying that i was thinking of making the mask screen a darker shade of blue then what is seen in the title screen, and there's no quest system, quest menu refers to what you have received during your journey, such as heart pieces, medallions, etc....

so you can relax there, i didn't know what to call it, but i ensure you it will ot be anything like an rpg, that tells you where you should head to, but rather a display of your accomplishments, such as you are 3/4 of the way of completing another heart container, sorry if that confused you, hope that me clarifying makes sense.


ok ^^ But i still think that this one is definitley ok. Perhaps you reduce the color a bit but another color would be too colorfull


Well i was trying to follow this as much as possible, but I agree completely, mm is a a tan sandstone color all the way through out the menu.

Image
I would have thought that seeing this



and this



would have been a dead ringer as to what screen it was for


so as i was saying the mask screen is the tan sandstone like color is is seen in mm, not an exact match but i think it fits in here.
Chakanevil

I was following this and these colors are way off.



Later I will redo the colors, and layout to match as close as possible to the images seen below









Chakanevil
New colors are done, I think these match the colors more closely, the title screen isn't exactly the right color, but I think it catches the essence, and it's been agreed upon by silent, so there's gonna be no edit to that.


File Select


Items


Status


Map


Quest Status


Masks


Save


Well it 6:37 am my time, i'm heading off for today, tc everyone.
zhoul
very good. I think there should be no color change anymore. Just stay with your updated one. Its definitley good.
SilentResident
I like the color you gave to the Inventory Screen, Equipment Screen, Quest Status Screen, World Map Screen, Save Game Screen,

But for the Mask Screen, the yellow does not exactly fits well. Not sure why.





EDIT:

QUOTE (Chakanevil @ Jul 10 2011, 01:23 PM) *
if you want send me a sketch of a purposed scree, silent, what i was thinking is displaying the running link in the sword and shield menu, then have it display the red and blue tunics on link, and other gear..


About this, I am thinking of possible ways to do it. Perhaps we do this in the same way as seen in that fan-made Zelda game in Game Maker, where tunics/swords/shields are displayed on LInk in 2D mode..
Chakanevil
how's this?

SilentResident
QUOTE (Chakanevil @ Jul 14 2011, 12:14 AM) *
how's this?




Hehe the purple screen is exactly what we needed here, for the Masks smile.gif
Chakanevil
so silent hows the weapons and other items coming?
SilentResident
QUOTE (Chakanevil @ Jul 14 2011, 05:24 AM) *
so silent hows the weapons and other items coming?


While I am looking for more items to add to PZE, (beside those you already got from the archive you downloaded), sdly there are no more items we can add to the PZE at all. There are some items we still can add but I am afraid they cannot function properly in the RPG Maker XP platform at all.
Items such as the Gust Jar (Minish Cap) and the Seed Shooter (Oracle games), which are difficult to make them function in PZE, at least until we replace the old action battle system with a better one...


Anyways, for now, we already got a lot of work to do... There are so many things to work with for now - All those new items (such as the Magic Mirror, the Light Arrows, the Deku Nuts, the Magic Beans, the Ball with Chain, the Magic Cape, the Deku Stick, etc) to function and make them work in PZE. We have to create the Common Events for all the new items.

Unfortunately I can't work in PZE those days, as I don't find it wise to start working on my old version of the engine while there are already other teammates working on it and have updated/improved it furtgher. Until the other teammates are done with PZE, they will send to me the most updated version so I can create the rest of the items on it and then release it to the public. Waiting for the others to finish with their changes on the Engine, helps to avoid a mess and confusion with the engine's changes and conflicts.


BTW, which of the 2 bows I created is closer to the Fairy Bow in appearance? (Note that I zoomed them by 100% so they are easier comparable)
Chakanevil
they both look really close, but i have to say bow 1
Redd
At a far-away view, they look exactly the same. I personally don't think it would matter since they will be much smaller in-game, but the first one definitely looks better.

BTW, what's up with the bow on the top that is completely different colors from the ones on the bottom?
Chakanevil
ok so after asking for some help i was directed to gameface101, and this is what he said about the cursor.

OK, as for your request, I take it that your icon graphics are not the same in size and you would like to have the cursor graphic change when highlighting an item with a larger than standard icon. correct?

if so then you are looking into making the necessary edits to Night_Runner's Zelda_CMS script.

Night_Runner = cool peeps, he whipped me up an event telepathy script sometime ago He is far beyond me when it comes to RGSS. Is he still a part of the team??

Well after taking a look at the script I see that it refers to a CSV file for the table / position of items. (clever)
So the position of items won't change, meaning you just need to know the index number (position) for what ever item you want the cursor to change for.

I've made edits to the 'def draw_cursor' method
(start at line 174) so that all you have to do is add to the 'if' statement for the cursor change.

CODE
#==============================================================================
# ** Night_Runner's Zelda Style CMS (edited)
#------------------------------------------------------------------------------
# History:
#  Date Created: 4/May/10
#  Created for: Project Zelda Game Engine
#
# Description:
#  This script allows the changing of tilesets/autotiles on a map.
#
# How to Install:
#  In your game, go Tools >> Script Editor. In the left panel, scroll down
#  to the bottom, right click on Main, and select Insert. Paste this script
#  in the Main Window on the right.
#
# Customization:
#  Make the items you want to show in the menu in the database.
#  To customize the positions of the items in the menu, edit the cvs files
#  in the Data/MenuSetup/ folder
#==============================================================================



#==============================================================================
# ** Customization
#==============================================================================

module NR_Zelda_CMS
  # Format the csv file to a rxdata file
  def self.formatData(string)
    # Store the strings inside an array
    output_s = []
    # Break up each line
    string = string.split("\n")
    # Break up each line at the comma and store type, id, x, y, etc.
    string.each { |line| output_s << line.split(/(\t)|\,/)[1..8] }
    # Delete the metadata
    output_s.delete_at(0)
    # Convert the item, armor & weapon to symbols
    output_typ = output_s.map { |item| item[0].to_sym }
    # Read the ID
    output_ID = output_s.map { |item| item[1] }
    # Convert the numbers' that's been read in from strings to numbers
    output_pos = output_s.map { |list| list[2..5].map! { |item| item.to_i } }
    # Merge
    output = output_typ.zip(output_ID, output_pos)
    output.map! { |item| item.flatten }
    # Return back the formatted data
    return output
  end
  # If the designer is testing, then relaod the inventory, etc csv data.
  if $DEBUG
    # Loading the Inventory.csv, and save as a rxdata file
    file = File.open("Data/MenuSetup/Inventory.csv", "r")    # Load
    inventory = self.formatData(file.read)                    # Convert
    save_data(inventory, "Data/MenuSetup/Inventory.rxdata")  # Save
    file.close                                                # Close
    # Loading the Equipment.csv, and save as a rxdata file
    file = File.open("Data/MenuSetup/Equipment.csv", "r")    # Load
    equipment = self.formatData(file.read)                    # Convert
    save_data(equipment, "Data/MenuSetup/Equipment.rxdata")  # Save
    file.close                                                # Close
    # Loading the QuestStatus.csv, and save as a rxdata file
    file = File.open("Data/MenuSetup/QuestStatus.csv", "r")  # Load
    equipment = self.formatData(file.read)                    # Convert
    save_data(equipment, "Data/MenuSetup/QuestStatus.rxdata") # Save
    file.close                                                # Close                            # Close
  end
  # Make the data for the CMS available
  InventoryData = load_data("Data/MenuSetup/Inventory.rxdata")
  EquipmentData = load_data("Data/MenuSetup/Equipment.rxdata")
  QuestStatusData = load_data("Data/MenuSetup/QuestStatus.rxdata")
end

#==============================================================================
# ** End of Customization
#==============================================================================



#==============================================================================
# ** Window_NR_Zelda_CMS
#------------------------------------------------------------------------------
#  The base for the CMS Windows
#==============================================================================

class Window_NR_Zelda_CMS < Window_Base
  #--------------------------------------------------------------------------
  # * Include Modules
  #--------------------------------------------------------------------------
  include NR_Zelda_CMS
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(-16, -16, 672, 512)
    self.z = 999999
    # Recall the index from the last time the inventory was called
    @index = 0
    # Draw the bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    # Hide the window background
    self.opacity = 0
    # Refresh
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_background('inventoryscreen')
    reload_data(:items)
  end
  #--------------------------------------------------------------------------
  # * Draw the Background for the window
  #--------------------------------------------------------------------------
  def draw_background(windowskin)
    bitmap = RPG::Cache.windowskin(windowskin)
    self.contents.blt(0, 0, bitmap, bitmap.rect)
  end
  #--------------------------------------------------------------------------
  # * Reload the items being shown
  #--------------------------------------------------------------------------
  def reload_data(inputData)
    # Initialise the list of items being shown, the coordinates to show
    # them at, and what do do if the item is selected.
    @items = []
    @xy_pos = []
    @selected_data = []
    # Check the inputData, when it is items
    # Read the items input
    for data in inputData
      # Skip if there is already an item at the XY position
      next if @xy_pos.include?(data[2..3])
      case data[0]
      when :item
        @items << $data_items[eval(data[1]).to_i]
      when :weapon
        @items << $data_weapons[eval(data[1]).to_i]
      when :armor
        @items << $data_armors[eval(data[1]).to_i]
      else
        raise('Sorry, the item type "' + data[0].to_s + '" is not recognised')
      end
      # Store the x & y for the items separately (for speed)
      @xy_pos << data[2..3]
      # Store what to do with the item if selected
      @selected_data << data[4..6]
    end
    # Draw the data and the cursor
    draw_data
    draw_cursor
    draw_description
  end
  #--------------------------------------------------------------------------
  # * Draw the Items for the window
  #--------------------------------------------------------------------------
  def draw_data
    # Loop through every item
    for i in 0...[@items.size, @xy_pos.size].min
      # Skip drawing the icon if the item is diabled
      next if item_disabled?(i)
      # Get the bitmap, x & y
      bitmap = RPG::Cache.icon(@items[i].icon_name)
      x, y = @xy_pos[i][0] - bitmap.width / 2, @xy_pos[i][1] - bitmap.height / 2
      # copy the bitmap onto the window
      self.contents.blt(x, y, bitmap, bitmap.rect)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Cursor (cursor change example edit by g@Mef@Ce 7/14/2011)
  #--------------------------------------------------------------------------
  def draw_cursor
  if @index == 1 or @index == 3 or @index == 6
    bitmap = RPG::Cache.windowskin('Cursor-enlarged')
    icon_x, icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
    x = icon_x - bitmap.width / 2
    y = icon_y - bitmap.height / 2
    self.contents.blt(x, y, bitmap, bitmap.rect)
  else
    bitmap = RPG::Cache.windowskin('Menu Cursor')
    icon_x, icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
    x = icon_x - bitmap.width / 2
    y = icon_y - bitmap.height / 2
    self.contents.blt(x, y, bitmap, bitmap.rect)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Description
  #--------------------------------------------------------------------------
  def draw_description
    # Skip drawing the description if the icon is disabled
    return if item_disabled?(@index)
    # Initialize a bitmap variable in this block
    bitmap = nil
    # If it doesn't error out
    begin
      # Load the description picture
      bitmap = RPG::Cache.icon(@items[@index].description)
    # If that errored, rescue the block and run the code
    rescue
      # Make a blank bitmap to draw
      bitmap = Bitmap.new(184, 32)
      # Draw the text in the description
      bitmap.draw_text(0, 0, bitmap.width-32,32,@items[@index].description,2)
    end
    # Center the bitmap in the middle
    dest_x = 515 - bitmap.width / 2
    dest_y = 80 - bitmap.height / 2
    # Draw the bitmap on the window
    self.contents.blt(dest_x, dest_y, bitmap, bitmap.rect)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Call Window_Base's update
    super
    # If the window is active
    if self.active
      # If the player is trying to highlight an item below the current one
      if Input.repeat?(Input::DOWN)
        # Get the xy of the last item highlighted
        old_icon_x, old_icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
        # Loop to the bottom of the page
        for dy in 1..(480-old_icon_y)
          # Make a temp array of the items on this y
          index_of_items_on_this_line = []
          # Loop through every item
          for item_index in 0...[@items.size, @xy_pos.size].min
            # If the y is in line
            if @xy_pos[item_index][1] == old_icon_y + dy
              # Store the item
              index_of_items_on_this_line << item_index
            end
          end
          # If there was an item on this line
          if index_of_items_on_this_line.size > 0
            # Sort by the x distance from the current item
            index_of_items_on_this_line.sort! { |i, j|
              (@xy_pos[i][0]-old_icon_x).abs <=> (@xy_pos[j][0]-old_icon_x).abs
            }
            # If the closest is close enough to be used
            if (@xy_pos[index_of_items_on_this_line[0]][0]-old_icon_x).abs < dy
              # Select that item as the next in line
              @index = index_of_items_on_this_line[0]
              refresh
              return
            end
          end
        end
      end
      # If the player is trying to highlight an item above the current one
      if Input.repeat?(Input::UP)
        # Get the xy of the last item highlighted
        old_icon_x, old_icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
        # Loop to the bottom of the page
        for dy in 1..old_icon_y
          # Make a temp array of the items on this y
          index_of_items_on_this_line = []
          # Loop through every item
          for item_index in 0...[@items.size, @xy_pos.size].min
            # If the y is in line
            if @xy_pos[item_index][1] == old_icon_y - dy
              # Store the item
              index_of_items_on_this_line << item_index
            end
          end
          # If there was an item on this line
          if index_of_items_on_this_line.size > 0
            # Sort by the x distance from the current item
            index_of_items_on_this_line.sort! { |i, j|
              (@xy_pos[i][0]-old_icon_x).abs <=> (@xy_pos[j][0]-old_icon_x).abs
            }
            # If the closest is close enough to be used
            if (@xy_pos[index_of_items_on_this_line[0]][0]-old_icon_x).abs < dy
              # Select that item as the next in line
              @index = index_of_items_on_this_line[0]
              refresh
              return
            end
          end
        end
      end
      # If the player is trying to highlight an item to the left of the active 1
      if Input.repeat?(Input::LEFT)
        # Get the xy of the last item highlighted
        old_icon_x, old_icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
        # Loop to the bottom of the page
        for dx in 1..old_icon_x
          # Make a temp array of the items on this y
          index_of_items_on_this_line = []
          # Loop through every item
          for item_index in 0...[@items.size, @xy_pos.size].min
            # If the x is in line
            if @xy_pos[item_index][0] == old_icon_x - dx
              # Store the item
              index_of_items_on_this_line << item_index
            end
          end
          # If there was an item on this line
          if index_of_items_on_this_line.size > 0
            # Sort by the x distance from the current item
            index_of_items_on_this_line.sort! { |i, j|
              (@xy_pos[i][1]-old_icon_y).abs <=> (@xy_pos[j][1]-old_icon_y).abs
            }
            # If the closest is close enough to be used
            if (@xy_pos[index_of_items_on_this_line[0]][1]-old_icon_y).abs < dx
              # Select that item as the next in line
              @index = index_of_items_on_this_line[0]
              refresh
              return
            end
          end
        end
      end
      #If the player is trying to highlight an item to the rght of the current one
      if Input.repeat?(Input::RIGHT)
        # Get the xy of the last item highlighted
        old_icon_x, old_icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
        # Loop to the bottom of the page
        for dx in 1..(640-old_icon_x)
          # Make a temp array of the items on this y
          index_of_items_on_this_line = []
          # Loop through every item
          for item_index in 0...[@items.size, @xy_pos.size].min
            # If the x is in line
            if @xy_pos[item_index][0] == old_icon_x + dx
              # Store the item
              index_of_items_on_this_line << item_index
            end
          end
          # If there was an item on this line
          if index_of_items_on_this_line.size > 0
            # Sort by the x distance from the current item
            index_of_items_on_this_line.sort! { |i, j|
              (@xy_pos[i][1]-old_icon_y).abs <=> (@xy_pos[j][1]-old_icon_y).abs
            }
            # If the closest is close enough to be used
            if (@xy_pos[index_of_items_on_this_line[0]][1]-old_icon_y).abs < dx
              # Select that item as the next in line
              @index = index_of_items_on_this_line[0]
              refresh
              # And exit
              return
            end
          end
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Item Disabled?
  #--------------------------------------------------------------------------
  def item_disabled?(index)
    # For the item in question, it is disabled if the player doesn't have one.
    case @items[index]
    when RPG::Item          # If it is an item
      return true if $game_party.item_number(@items[index].id) == 0
      return true if not ((1..($data_items.size-1)).include?(@items[index].id))
    when RPG::Weapon        # If it is a weapon
      return true if $game_party.weapon_number(@items[index].id) == 0
      return true if not (1..($data_weapons.size-1)).include?(@items[index].id)
    when RPG::Armor        # If it is an armor
      return true if $game_party.armor_number(@items[index].id) == 0
      return true if not (1..($data_armors.size-1)).include?(@items[index].id)
    # If it's none of the above, it's unusable
    else
      return true
    end
    # It passes all the tests
    return false
  end
  #--------------------------------------------------------------------------
  # * Item Highlighted
  #--------------------------------------------------------------------------
  def item
    # If the item is disabled
    if item_disabled?(@index)
      # Return nil
      return nil
    # If the item is available
    else
      return @items[@index]
    end
  end
  #--------------------------------------------------------------------------
  # * Select Highlighted Item
  #--------------------------------------------------------------------------
  def select_item
    # Get the item to be selected
    item = self.item
    # Do nothing if the item doesn't exist
    return if item.nil?
    # Get the data on the item (and its group)
    selected_switchID, selected_group= @selected_data[@index]
    # Loop through every item in the selected_data
    for (switchID, group) in @selected_data
      # If the item is in the same group
      if group == selected_group
        # Turn the switch off
        $game_switches[switchID] = false
      end
    end
    # Activate the switch
    $game_switches[@selected_data[@index][0]] = true
  end
end



#==============================================================================
# ** Window_Inventory
#------------------------------------------------------------------------------
#  This window is designed to show the inventory window of the pause menu.
#==============================================================================

class Window_Inventory < Window_NR_Zelda_CMS
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # Clear the window
    self.contents.clear
    # Load the backdrop labeled [i]inventoryscreen[/i] (from Windowskins)
    draw_background('inventoryscreen')
    # Load the rxdata file called InventoryData
    reload_data(InventoryData)
  end
end



#==============================================================================
# ** Window_Equipment
#------------------------------------------------------------------------------
#  This window is designed to show the equipment window of the pause menu.
#==============================================================================

class Window_Equipment < Window_NR_Zelda_CMS
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # Clear the window
    self.contents.clear
    # Load the backdrop labeled [i]inventoryscreen[/i] (from Windowskins)
    draw_background('equipmentscreen')
    # Load the rxdata file called InventoryData
    reload_data(EquipmentData)
  end
end



#==============================================================================
# ** Window_Equipment
#------------------------------------------------------------------------------
#  This window is designed to show the equipment window of the pause menu.
#==============================================================================

class Window_QuestStatus < Window_NR_Zelda_CMS
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # Clear the window
    self.contents.clear
    # Load the backdrop labeled [i]inventoryscreen[/i] (from Windowskins)
    draw_background('queststatusscreen')
    # Load the rxdata file called InventoryData
    reload_data(QuestStatusData)
    # Draw the heart containers
    draw_heart_containers
  end
  #--------------------------------------------------------------------------
  # * Draw Hearts
  #--------------------------------------------------------------------------
  def draw_heart_containers
    name = "QM_Heart_#{$game_party.actors[0].maxhp % 4}.4"
    bitmap = RPG::Cache.windowskin(name)
    self.contents.blt(493, 387, bitmap, bitmap.rect)
  end
end



#==============================================================================
# ** Window_Map
#------------------------------------------------------------------------------
#  Displays the map in the pause menu.
#==============================================================================

class Window_Map < Window_Base
  #--------------------------------------------------------------------------
  # * Class Variables
  #--------------------------------------------------------------------------
  @@zoomed_in = false
  @@x = 0
  @@y = 0
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(-16, -16, 672, 512)
    self.z = 999999
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    bitmap_name = @@zoomed_in ? 'World_Map' : 'mapscreen'
    bitmap = RPG::Cache.windowskin(bitmap_name)
    @@x = [[@@x, 0].min, 640 - bitmap.width].max
    @@y = [[@@y, 0].min, 480 - bitmap.height].max
    self.contents.clear
    if @@zoomed_in == true
      self.contents.blt(@@x, @@y, bitmap, bitmap.rect)
    else
      self.contents.blt(0, 0, bitmap, bitmap.rect)
    end
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    super
    # Do nothing if not active
    return if self.active == false
    speed = Input.press?(Input::SHIFT) ? 6 : 2
    if Input.trigger?(Input::C)
      @@zoomed_in = !@@zoomed_in
      refresh
    elsif @@zoomed_in
      last_xy = [@@x, @@y]
      @@x += speed if Input.press?(Input::LEFT)
      @@x -= speed if Input.press?(Input::RIGHT)
      @@y += speed if Input.press?(Input::UP)
      @@y -= speed if Input.press?(Input::DOWN)
      refresh if last_xy != [@@x, @@y]
    end
  end
end



#==============================================================================
# ** Window_NR_Zelda_CMS
#------------------------------------------------------------------------------
#  The base for the CMS Windows
#==============================================================================

class Scene_Menu
  #--------------------------------------------------------------------------
  # * Include Modules
  #--------------------------------------------------------------------------
  include NR_Zelda_CMS
  #--------------------------------------------------------------------------
  # * Invariables
  #--------------------------------------------------------------------------
  WindowMovementSpeed = 10
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Initialize an array to put the windows in
    @windows = []
    # Create the backdrop
    @spritemap = Spriteset_Map.new
    # Create the windows
    @windows << Window_Inventory.new
    @windows << Window_Equipment.new
    @windows << Window_QuestStatus.new
    @windows << Window_Map.new
    # Hide the windows
    @windows.each { |window| window.visible = window.active = false }
    # Show the main window
    @windows[0].visible = true
    @windows[0].active = true
    @windows[0].y = 480
    # Transition
    Graphics.transition
    # Move the window up
    move_window(8)
    # Main Processing
    begin
      Graphics.update
      Input.update
      update
    end while not Input.trigger?(Input::B)
    # Move the window down
    move_window(2)
    # Freeze the graphics
    Graphics.freeze
    # Dispose the windows
    @windows.each { |window| window.dispose }
    # Dispose the map
    @spritemap.dispose
    # Call Scene_Map
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Move Window
  #--------------------------------------------------------------------------
  def move_window(dir)
    case dir
    when 2      # Moving Down
      while @windows[0].y < 480
        Graphics.update
        @windows[0].y += WindowMovementSpeed
      end
      @windows[0].y = 480
    when 4      # Moving Left
      # Skip if there is only 1 menu
      return if @windows.size <= 1
      # Move the second window to place and make visible
      @windows[1].x = 640+16
      @windows[1].y = -16
      @windows[1].visible = @windows[1].active = true
      # Move the window
      while @windows[1].x > -16
        Graphics.update
        @windows[0].x -= WindowMovementSpeed
        @windows[1].x -= WindowMovementSpeed
      end
      # Hide & rotate the last active window
      @windows[0].visible = @windows[0].active = false
      @windows.push(@windows.shift)
      # Force the x position of the active window
      @windows[0].x = -16
    when 6      # Moving Right
      # Skip if there is only 1 menu
      return if @windows.size <= 1
      # Move the last window to place and make visible
      last_window_index = @windows.size-1
      @windows[last_window_index].x = -640-32
      @windows[last_window_index].y = -16
      @windows[last_window_index].visible = true
      @windows[last_window_index].active = true
      # Move the window
      while @windows[last_window_index].x < -16
        Graphics.update
        @windows[0].x += WindowMovementSpeed
        @windows[last_window_index].x += WindowMovementSpeed
      end
      # Force the positon of the window
      @windows[last_window_index].x = -16
      # Deactivate, hide and rotate the last window
      @windows[0].visible = @windows[0].active = false
      @windows.unshift(@windows.pop)
    when 8      # Moving Up
      while @windows[0].y > -16
        Graphics.update
        @windows[0].y -= WindowMovementSpeed
      end
      @windows[0].y = -16
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update each window
    @windows.each { |window| window.update }
    # If the L number was triggered, move the windows
    if Input.trigger?(Input::L)
      move_window(4)
    end
    # if the R bumper was triggered
    if Input.trigger?(Input::R)
      move_window(6)
    end
    # If C was pressed
    if Input.trigger?(Input::C)
      # Do nothing if the window doesn't have an item
      return if not @windows[0].methods.include?('item')
      item = @windows[0].item
      # If the item exists
      if not item.nil?
        # Tell the window to fix the item grouping / switches (window specific)
        @windows[0].select_item
        # Vary what happens depending on if the item is an item, weapon or armor
        case item
        when RPG::Item
          run_selected_item(item)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # â—Ź Run Selected Item
  #--------------------------------------------------------------------------
  def run_selected_item(item)
    # Make sure the item can be used in the menu
    if not $game_party.item_can_use?(item.id)
      # If it can't, play the buzzer
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # It can be selected, play the decision SE
    $game_system.se_play($data_system.decision_se)
    # If the item runs a common event
    if item.common_event_id > 0
      # Set the common event to run
      $game_temp.common_event_id = item.common_event_id
    end
    # Play the item's SE
    $game_system.se_play(item.menu_se)
    # If the item is consumable
    if item.consumable
      # Decrement the number of the item you have
      $game_party.lose_item(item.id, 1)
    end
    # Return to the map
    $scene = Scene_Map.new
  end
end


in my example, the cursor should change according to the yellow numbers in the inventory menu.



the only catch is that the cursor will change in quest stats and equipment menu... one step closer?

so my question is about the cvs file can you include one for each screen?

QUOTE (Redd @ Jul 14 2011, 10:29 PM) *
At a far-away view, they look exactly the same. I personally don't think it would matter since they will be much smaller in-game, but the first one definitely looks better.

BTW, what's up with the bow on the top that is completely different colors from the ones on the bottom?


thats because its an image taken from OoT he's trying to recreate it.
SilentResident
QUOTE (Chakanevil @ Jul 15 2011, 06:51 AM) *
ok so after asking for some help i was directed to gameface101, and this is what he said about the cursor.

OK, as for your request, I take it that your icon graphics are not the same in size and you would like to have the cursor graphic change when highlighting an item with a larger than standard icon. correct?

if so then you are looking into making the necessary edits to Night_Runner's Zelda_CMS script.

Night_Runner = cool peeps, he whipped me up an event telepathy script sometime ago He is far beyond me when it comes to RGSS. Is he still a part of the team??

Well after taking a look at the script I see that it refers to a CSV file for the table / position of items. (clever)
So the position of items won't change, meaning you just need to know the index number (position) for what ever item you want the cursor to change for.

I've made edits to the 'def draw_cursor' method
(start at line 174) so that all you have to do is add to the 'if' statement for the cursor change.

CODE
#==============================================================================
# ** Night_Runner's Zelda Style CMS (edited)
#------------------------------------------------------------------------------
# History:
#  Date Created: 4/May/10
#  Created for: Project Zelda Game Engine
#
# Description:
#  This script allows the changing of tilesets/autotiles on a map.
#
# How to Install:
#  In your game, go Tools >> Script Editor. In the left panel, scroll down
#  to the bottom, right click on Main, and select Insert. Paste this script
#  in the Main Window on the right.
#
# Customization:
#  Make the items you want to show in the menu in the database.
#  To customize the positions of the items in the menu, edit the cvs files
#  in the Data/MenuSetup/ folder
#==============================================================================



#==============================================================================
# ** Customization
#==============================================================================

module NR_Zelda_CMS
  # Format the csv file to a rxdata file
  def self.formatData(string)
    # Store the strings inside an array
    output_s = []
    # Break up each line
    string = string.split("\n")
    # Break up each line at the comma and store type, id, x, y, etc.
    string.each { |line| output_s << line.split(/(\t)|\,/)[1..8] }
    # Delete the metadata
    output_s.delete_at(0)
    # Convert the item, armor & weapon to symbols
    output_typ = output_s.map { |item| item[0].to_sym }
    # Read the ID
    output_ID = output_s.map { |item| item[1] }
    # Convert the numbers' that's been read in from strings to numbers
    output_pos = output_s.map { |list| list[2..5].map! { |item| item.to_i } }
    # Merge
    output = output_typ.zip(output_ID, output_pos)
    output.map! { |item| item.flatten }
    # Return back the formatted data
    return output
  end
  # If the designer is testing, then relaod the inventory, etc csv data.
  if $DEBUG
    # Loading the Inventory.csv, and save as a rxdata file
    file = File.open("Data/MenuSetup/Inventory.csv", "r")    # Load
    inventory = self.formatData(file.read)                    # Convert
    save_data(inventory, "Data/MenuSetup/Inventory.rxdata")  # Save
    file.close                                                # Close
    # Loading the Equipment.csv, and save as a rxdata file
    file = File.open("Data/MenuSetup/Equipment.csv", "r")    # Load
    equipment = self.formatData(file.read)                    # Convert
    save_data(equipment, "Data/MenuSetup/Equipment.rxdata")  # Save
    file.close                                                # Close
    # Loading the QuestStatus.csv, and save as a rxdata file
    file = File.open("Data/MenuSetup/QuestStatus.csv", "r")  # Load
    equipment = self.formatData(file.read)                    # Convert
    save_data(equipment, "Data/MenuSetup/QuestStatus.rxdata") # Save
    file.close                                                # Close                            # Close
  end
  # Make the data for the CMS available
  InventoryData = load_data("Data/MenuSetup/Inventory.rxdata")
  EquipmentData = load_data("Data/MenuSetup/Equipment.rxdata")
  QuestStatusData = load_data("Data/MenuSetup/QuestStatus.rxdata")
end

#==============================================================================
# ** End of Customization
#==============================================================================



#==============================================================================
# ** Window_NR_Zelda_CMS
#------------------------------------------------------------------------------
#  The base for the CMS Windows
#==============================================================================

class Window_NR_Zelda_CMS < Window_Base
  #--------------------------------------------------------------------------
  # * Include Modules
  #--------------------------------------------------------------------------
  include NR_Zelda_CMS
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(-16, -16, 672, 512)
    self.z = 999999
    # Recall the index from the last time the inventory was called
    @index = 0
    # Draw the bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    # Hide the window background
    self.opacity = 0
    # Refresh
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_background('inventoryscreen')
    reload_data(:items)
  end
  #--------------------------------------------------------------------------
  # * Draw the Background for the window
  #--------------------------------------------------------------------------
  def draw_background(windowskin)
    bitmap = RPG::Cache.windowskin(windowskin)
    self.contents.blt(0, 0, bitmap, bitmap.rect)
  end
  #--------------------------------------------------------------------------
  # * Reload the items being shown
  #--------------------------------------------------------------------------
  def reload_data(inputData)
    # Initialise the list of items being shown, the coordinates to show
    # them at, and what do do if the item is selected.
    @items = []
    @xy_pos = []
    @selected_data = []
    # Check the inputData, when it is items
    # Read the items input
    for data in inputData
      # Skip if there is already an item at the XY position
      next if @xy_pos.include?(data[2..3])
      case data[0]
      when :item
        @items << $data_items[eval(data[1]).to_i]
      when :weapon
        @items << $data_weapons[eval(data[1]).to_i]
      when :armor
        @items << $data_armors[eval(data[1]).to_i]
      else
        raise('Sorry, the item type "' + data[0].to_s + '" is not recognised')
      end
      # Store the x & y for the items separately (for speed)
      @xy_pos << data[2..3]
      # Store what to do with the item if selected
      @selected_data << data[4..6]
    end
    # Draw the data and the cursor
    draw_data
    draw_cursor
    draw_description
  end
  #--------------------------------------------------------------------------
  # * Draw the Items for the window
  #--------------------------------------------------------------------------
  def draw_data
    # Loop through every item
    for i in 0...[@items.size, @xy_pos.size].min
      # Skip drawing the icon if the item is diabled
      next if item_disabled?(i)
      # Get the bitmap, x & y
      bitmap = RPG::Cache.icon(@items[i].icon_name)
      x, y = @xy_pos[i][0] - bitmap.width / 2, @xy_pos[i][1] - bitmap.height / 2
      # copy the bitmap onto the window
      self.contents.blt(x, y, bitmap, bitmap.rect)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Cursor (cursor change example edit by g@Mef@Ce 7/14/2011)
  #--------------------------------------------------------------------------
  def draw_cursor
  if @index == 1 or @index == 3 or @index == 6
    bitmap = RPG::Cache.windowskin('Cursor-enlarged')
    icon_x, icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
    x = icon_x - bitmap.width / 2
    y = icon_y - bitmap.height / 2
    self.contents.blt(x, y, bitmap, bitmap.rect)
  else
    bitmap = RPG::Cache.windowskin('Menu Cursor')
    icon_x, icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
    x = icon_x - bitmap.width / 2
    y = icon_y - bitmap.height / 2
    self.contents.blt(x, y, bitmap, bitmap.rect)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Description
  #--------------------------------------------------------------------------
  def draw_description
    # Skip drawing the description if the icon is disabled
    return if item_disabled?(@index)
    # Initialize a bitmap variable in this block
    bitmap = nil
    # If it doesn't error out
    begin
      # Load the description picture
      bitmap = RPG::Cache.icon(@items[@index].description)
    # If that errored, rescue the block and run the code
    rescue
      # Make a blank bitmap to draw
      bitmap = Bitmap.new(184, 32)
      # Draw the text in the description
      bitmap.draw_text(0, 0, bitmap.width-32,32,@items[@index].description,2)
    end
    # Center the bitmap in the middle
    dest_x = 515 - bitmap.width / 2
    dest_y = 80 - bitmap.height / 2
    # Draw the bitmap on the window
    self.contents.blt(dest_x, dest_y, bitmap, bitmap.rect)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Call Window_Base's update
    super
    # If the window is active
    if self.active
      # If the player is trying to highlight an item below the current one
      if Input.repeat?(Input::DOWN)
        # Get the xy of the last item highlighted
        old_icon_x, old_icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
        # Loop to the bottom of the page
        for dy in 1..(480-old_icon_y)
          # Make a temp array of the items on this y
          index_of_items_on_this_line = []
          # Loop through every item
          for item_index in 0...[@items.size, @xy_pos.size].min
            # If the y is in line
            if @xy_pos[item_index][1] == old_icon_y + dy
              # Store the item
              index_of_items_on_this_line << item_index
            end
          end
          # If there was an item on this line
          if index_of_items_on_this_line.size > 0
            # Sort by the x distance from the current item
            index_of_items_on_this_line.sort! { |i, j|
              (@xy_pos[i][0]-old_icon_x).abs <=> (@xy_pos[j][0]-old_icon_x).abs
            }
            # If the closest is close enough to be used
            if (@xy_pos[index_of_items_on_this_line[0]][0]-old_icon_x).abs < dy
              # Select that item as the next in line
              @index = index_of_items_on_this_line[0]
              refresh
              return
            end
          end
        end
      end
      # If the player is trying to highlight an item above the current one
      if Input.repeat?(Input::UP)
        # Get the xy of the last item highlighted
        old_icon_x, old_icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
        # Loop to the bottom of the page
        for dy in 1..old_icon_y
          # Make a temp array of the items on this y
          index_of_items_on_this_line = []
          # Loop through every item
          for item_index in 0...[@items.size, @xy_pos.size].min
            # If the y is in line
            if @xy_pos[item_index][1] == old_icon_y - dy
              # Store the item
              index_of_items_on_this_line << item_index
            end
          end
          # If there was an item on this line
          if index_of_items_on_this_line.size > 0
            # Sort by the x distance from the current item
            index_of_items_on_this_line.sort! { |i, j|
              (@xy_pos[i][0]-old_icon_x).abs <=> (@xy_pos[j][0]-old_icon_x).abs
            }
            # If the closest is close enough to be used
            if (@xy_pos[index_of_items_on_this_line[0]][0]-old_icon_x).abs < dy
              # Select that item as the next in line
              @index = index_of_items_on_this_line[0]
              refresh
              return
            end
          end
        end
      end
      # If the player is trying to highlight an item to the left of the active 1
      if Input.repeat?(Input::LEFT)
        # Get the xy of the last item highlighted
        old_icon_x, old_icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
        # Loop to the bottom of the page
        for dx in 1..old_icon_x
          # Make a temp array of the items on this y
          index_of_items_on_this_line = []
          # Loop through every item
          for item_index in 0...[@items.size, @xy_pos.size].min
            # If the x is in line
            if @xy_pos[item_index][0] == old_icon_x - dx
              # Store the item
              index_of_items_on_this_line << item_index
            end
          end
          # If there was an item on this line
          if index_of_items_on_this_line.size > 0
            # Sort by the x distance from the current item
            index_of_items_on_this_line.sort! { |i, j|
              (@xy_pos[i][1]-old_icon_y).abs <=> (@xy_pos[j][1]-old_icon_y).abs
            }
            # If the closest is close enough to be used
            if (@xy_pos[index_of_items_on_this_line[0]][1]-old_icon_y).abs < dx
              # Select that item as the next in line
              @index = index_of_items_on_this_line[0]
              refresh
              return
            end
          end
        end
      end
      #If the player is trying to highlight an item to the rght of the current one
      if Input.repeat?(Input::RIGHT)
        # Get the xy of the last item highlighted
        old_icon_x, old_icon_y = @xy_pos[@index][0], @xy_pos[@index][1]
        # Loop to the bottom of the page
        for dx in 1..(640-old_icon_x)
          # Make a temp array of the items on this y
          index_of_items_on_this_line = []
          # Loop through every item
          for item_index in 0...[@items.size, @xy_pos.size].min
            # If the x is in line
            if @xy_pos[item_index][0] == old_icon_x + dx
              # Store the item
              index_of_items_on_this_line << item_index
            end
          end
          # If there was an item on this line
          if index_of_items_on_this_line.size > 0
            # Sort by the x distance from the current item
            index_of_items_on_this_line.sort! { |i, j|
              (@xy_pos[i][1]-old_icon_y).abs <=> (@xy_pos[j][1]-old_icon_y).abs
            }
            # If the closest is close enough to be used
            if (@xy_pos[index_of_items_on_this_line[0]][1]-old_icon_y).abs < dx
              # Select that item as the next in line
              @index = index_of_items_on_this_line[0]
              refresh
              # And exit
              return
            end
          end
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Item Disabled?
  #--------------------------------------------------------------------------
  def item_disabled?(index)
    # For the item in question, it is disabled if the player doesn't have one.
    case @items[index]
    when RPG::Item          # If it is an item
      return true if $game_party.item_number(@items[index].id) == 0
      return true if not ((1..($data_items.size-1)).include?(@items[index].id))
    when RPG::Weapon        # If it is a weapon
      return true if $game_party.weapon_number(@items[index].id) == 0
      return true if not (1..($data_weapons.size-1)).include?(@items[index].id)
    when RPG::Armor        # If it is an armor
      return true if $game_party.armor_number(@items[index].id) == 0
      return true if not (1..($data_armors.size-1)).include?(@items[index].id)
    # If it's none of the above, it's unusable
    else
      return true
    end
    # It passes all the tests
    return false
  end
  #--------------------------------------------------------------------------
  # * Item Highlighted
  #--------------------------------------------------------------------------
  def item
    # If the item is disabled
    if item_disabled?(@index)
      # Return nil
      return nil
    # If the item is available
    else
      return @items[@index]
    end
  end
  #--------------------------------------------------------------------------
  # * Select Highlighted Item
  #--------------------------------------------------------------------------
  def select_item
    # Get the item to be selected
    item = self.item
    # Do nothing if the item doesn't exist
    return if item.nil?
    # Get the data on the item (and its group)
    selected_switchID, selected_group= @selected_data[@index]
    # Loop through every item in the selected_data
    for (switchID, group) in @selected_data
      # If the item is in the same group
      if group == selected_group
        # Turn the switch off
        $game_switches[switchID] = false
      end
    end
    # Activate the switch
    $game_switches[@selected_data[@index][0]] = true
  end
end



#==============================================================================
# ** Window_Inventory
#------------------------------------------------------------------------------
#  This window is designed to show the inventory window of the pause menu.
#==============================================================================

class Window_Inventory < Window_NR_Zelda_CMS
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # Clear the window
    self.contents.clear
    # Load the backdrop labeled [i]inventoryscreen[/i] (from Windowskins)
    draw_background('inventoryscreen')
    # Load the rxdata file called InventoryData
    reload_data(InventoryData)
  end
end



#==============================================================================
# ** Window_Equipment
#------------------------------------------------------------------------------
#  This window is designed to show the equipment window of the pause menu.
#==============================================================================

class Window_Equipment < Window_NR_Zelda_CMS
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # Clear the window
    self.contents.clear
    # Load the backdrop labeled [i]inventoryscreen[/i] (from Windowskins)
    draw_background('equipmentscreen')
    # Load the rxdata file called InventoryData
    reload_data(EquipmentData)
  end
end



#==============================================================================
# ** Window_Equipment
#------------------------------------------------------------------------------
#  This window is designed to show the equipment window of the pause menu.
#==============================================================================

class Window_QuestStatus < Window_NR_Zelda_CMS
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    # Clear the window
    self.contents.clear
    # Load the backdrop labeled [i]inventoryscreen[/i] (from Windowskins)
    draw_background('queststatusscreen')
    # Load the rxdata file called InventoryData
    reload_data(QuestStatusData)
    # Draw the heart containers
    draw_heart_containers
  end
  #--------------------------------------------------------------------------
  # * Draw Hearts
  #--------------------------------------------------------------------------
  def draw_heart_containers
    name = "QM_Heart_#{$game_party.actors[0].maxhp % 4}.4"
    bitmap = RPG::Cache.windowskin(name)
    self.contents.blt(493, 387, bitmap, bitmap.rect)
  end
end



#==============================================================================
# ** Window_Map
#------------------------------------------------------------------------------
#  Displays the map in the pause menu.
#==============================================================================

class Window_Map < Window_Base
  #--------------------------------------------------------------------------
  # * Class Variables
  #--------------------------------------------------------------------------
  @@zoomed_in = false
  @@x = 0
  @@y = 0
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(-16, -16, 672, 512)
    self.z = 999999
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    bitmap_name = @@zoomed_in ? 'World_Map' : 'mapscreen'
    bitmap = RPG::Cache.windowskin(bitmap_name)
    @@x = [[@@x, 0].min, 640 - bitmap.width].max
    @@y = [[@@y, 0].min, 480 - bitmap.height].max
    self.contents.clear
    if @@zoomed_in == true
      self.contents.blt(@@x, @@y, bitmap, bitmap.rect)
    else
      self.contents.blt(0, 0, bitmap, bitmap.rect)
    end
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  def update
    super
    # Do nothing if not active
    return if self.active == false
    speed = Input.press?(Input::SHIFT) ? 6 : 2
    if Input.trigger?(Input::C)
      @@zoomed_in = !@@zoomed_in
      refresh
    elsif @@zoomed_in
      last_xy = [@@x, @@y]
      @@x += speed if Input.press?(Input::LEFT)
      @@x -= speed if Input.press?(Input::RIGHT)
      @@y += speed if Input.press?(Input::UP)
      @@y -= speed if Input.press?(Input::DOWN)
      refresh if last_xy != [@@x, @@y]
    end
  end
end



#==============================================================================
# ** Window_NR_Zelda_CMS
#------------------------------------------------------------------------------
#  The base for the CMS Windows
#==============================================================================

class Scene_Menu
  #--------------------------------------------------------------------------
  # * Include Modules
  #--------------------------------------------------------------------------
  include NR_Zelda_CMS
  #--------------------------------------------------------------------------
  # * Invariables
  #--------------------------------------------------------------------------
  WindowMovementSpeed = 10
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Initialize an array to put the windows in
    @windows = []
    # Create the backdrop
    @spritemap = Spriteset_Map.new
    # Create the windows
    @windows << Window_Inventory.new
    @windows << Window_Equipment.new
    @windows << Window_QuestStatus.new
    @windows << Window_Map.new
    # Hide the windows
    @windows.each { |window| window.visible = window.active = false }
    # Show the main window
    @windows[0].visible = true
    @windows[0].active = true
    @windows[0].y = 480
    # Transition
    Graphics.transition
    # Move the window up
    move_window(8)
    # Main Processing
    begin
      Graphics.update
      Input.update
      update
    end while not Input.trigger?(Input::B)
    # Move the window down
    move_window(2)
    # Freeze the graphics
    Graphics.freeze
    # Dispose the windows
    @windows.each { |window| window.dispose }
    # Dispose the map
    @spritemap.dispose
    # Call Scene_Map
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # * Move Window
  #--------------------------------------------------------------------------
  def move_window(dir)
    case dir
    when 2      # Moving Down
      while @windows[0].y < 480
        Graphics.update
        @windows[0].y += WindowMovementSpeed
      end
      @windows[0].y = 480
    when 4      # Moving Left
      # Skip if there is only 1 menu
      return if @windows.size <= 1
      # Move the second window to place and make visible
      @windows[1].x = 640+16
      @windows[1].y = -16
      @windows[1].visible = @windows[1].active = true
      # Move the window
      while @windows[1].x > -16
        Graphics.update
        @windows[0].x -= WindowMovementSpeed
        @windows[1].x -= WindowMovementSpeed
      end
      # Hide & rotate the last active window
      @windows[0].visible = @windows[0].active = false
      @windows.push(@windows.shift)
      # Force the x position of the active window
      @windows[0].x = -16
    when 6      # Moving Right
      # Skip if there is only 1 menu
      return if @windows.size <= 1
      # Move the last window to place and make visible
      last_window_index = @windows.size-1
      @windows[last_window_index].x = -640-32
      @windows[last_window_index].y = -16
      @windows[last_window_index].visible = true
      @windows[last_window_index].active = true
      # Move the window
      while @windows[last_window_index].x < -16
        Graphics.update
        @windows[0].x += WindowMovementSpeed
        @windows[last_window_index].x += WindowMovementSpeed
      end
      # Force the positon of the window
      @windows[last_window_index].x = -16
      # Deactivate, hide and rotate the last window
      @windows[0].visible = @windows[0].active = false
      @windows.unshift(@windows.pop)
    when 8      # Moving Up
      while @windows[0].y > -16
        Graphics.update
        @windows[0].y -= WindowMovementSpeed
      end
      @windows[0].y = -16
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update each window
    @windows.each { |window| window.update }
    # If the L number was triggered, move the windows
    if Input.trigger?(Input::L)
      move_window(4)
    end
    # if the R bumper was triggered
    if Input.trigger?(Input::R)
      move_window(6)
    end
    # If C was pressed
    if Input.trigger?(Input::C)
      # Do nothing if the window doesn't have an item
      return if not @windows[0].methods.include?('item')
      item = @windows[0].item
      # If the item exists
      if not item.nil?
        # Tell the window to fix the item grouping / switches (window specific)
        @windows[0].select_item
        # Vary what happens depending on if the item is an item, weapon or armor
        case item
        when RPG::Item
          run_selected_item(item)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # â—Ź Run Selected Item
  #--------------------------------------------------------------------------
  def run_selected_item(item)
    # Make sure the item can be used in the menu
    if not $game_party.item_can_use?(item.id)
      # If it can't, play the buzzer
      $game_system.se_play($data_system.buzzer_se)
      return
    end
    # It can be selected, play the decision SE
    $game_system.se_play($data_system.decision_se)
    # If the item runs a common event
    if item.common_event_id > 0
      # Set the common event to run
      $game_temp.common_event_id = item.common_event_id
    end
    # Play the item's SE
    $game_system.se_play(item.menu_se)
    # If the item is consumable
    if item.consumable
      # Decrement the number of the item you have
      $game_party.lose_item(item.id, 1)
    end
    # Return to the map
    $scene = Scene_Map.new
  end
end


in my example, the cursor should change according to the yellow numbers in the inventory menu.



the only catch is that the cursor will change in quest stats and equipment menu... one step closer?

so my question is about the cvs file can you include one for each screen?

QUOTE (Redd @ Jul 14 2011, 10:29 PM) *
At a far-away view, they look exactly the same. I personally don't think it would matter since they will be much smaller in-game, but the first one definitely looks better.

BTW, what's up with the bow on the top that is completely different colors from the ones on the bottom?


thats because its an image taken from OoT he's trying to recreate it.


Aye correct. Cursor size change based on certain icons. Notable is the Biggoron's Sword. And the Tunics.

Of course Night_Runner is member of our team. What makes you think he isn't? tongue.gif

Not sure about this for CVS. Shall you ask Night_Runner? smile.gif
Chakanevil
no gameface was asking if he was still a member of our team.

For night,for it be possible to write and load a different cvs file for each screen, so that they all don't use the same cords, there fore they are not affected by a larger cursor at point x and y, do you have any plans for this?

If other members of the team see him before I do could you please ask him for me?
Night_Runner
Probably because I'm not great at responding to people sad.gif

The engine uses separate CSV files for each separate screen in the menu smile.gif
If you have more than 1 item in the same spot, then it will prioritise one of the items (whichever comes first in the CSV file) and it will only show that one (that way you can have upgrades replacing the original item).
It's also setup so you can change items dynamically (for example, by changing a variable you can change it from an empty bottle to a bottle with a fairy in it smile.gif). You just need to define in the CSV file that it will follow a variable, instead of just being a single item...

I didn't expect the different cursor sizes, I was assuming that the cursor would be made large enough to encapsulate even the biggest item, and if there were items smaller than it wouldn't be too bug of a deal.
I didn't expect an animated cursor either, though it looks really nice smile.gif
If you want, I can make it so the cursor will shrink to the size of the icon it's supposed to be showing (I think shrinking would be better, if it had to grow it would become pixelated), and that wouldn't be too hard (about 5 mins work).
RGSS also supports rotating sprites, so if I just have 1 picture than I can rotate it to make the circling effect
I just double checked the animation you left earlier
gif
http://i199.photobucket.com/albums/aa28/rei_wilder/xasabs/majora-mask-item-select.gif

If you could make a single image, with 5 or so sections (as many as you'd like), where each section has the cursor as it is rotating, and I'll dynamically adjust the size so it will always fit the item smile.gif

I'm a bit nervous about the map.
My concerns
It's just so different from the rest of the menu, it'll need to draw up a completely new bit of code....
My real problem with the map is that sections you've been in will be outlined, until you get the dungeon map, and then you can see all of it (so I need to keep track of which section of the image of the map corresponds to which in-game map, and keep track if the player has been there, you also need to know if the player has the dungeon map (in which case illuminate all of it), if the chest has been opened, show only it, unless you have the compass, in which case show all the chests, and then if you have the dungeon key, show a completely different for that dungeon section, and I need to keep in mind that people will have different layers in their dungeons..... and it's a completely different scenario on the main map from dungeons...
I suppose my real concern is making a simple way for the designer to edit all this information...


I've got the main functionality of the title screen working. The only downside is that it takes appx 2.6 - 3.2 seconds to load each save file (that's just a problem with how big this engine is), and you need to load all 3 save files at the start of the game to get the character's names (so the game will freeze for up to 10 seconds when you first turn it on), and it needs to reload it all again for real when you select the game you would like to load (I suppose I can find a way around this though...).
But it's fairly blank otherwise, the copy and paste will take a while to code just because of the large amount of animations, and I'm probably going to split it into a few sections just so it doesn't lag as much as the other title screen script you found a while ago Chakenevil.
I've been doing some testing, if you remove the enemy events the loading time reduces to about a third of that, so I'm thinking quite seriously about the XAS Battle System...
Chakanevil
awesome xasabs would be really cool, wish i could be a help on scripts, hope i'm not making things too difficult for you.
cruelrose
Ahoy! I just downloaded this and when I try to open it I get the following error:
SilentResident
QUOTE (cruelrose @ Jul 16 2011, 05:57 PM) *
Ahoy! I just downloaded this and when I try to open it I get the following error:



There is one more player who got the same (or similar) error as you, with the Fmod Ex sript. I am investigating this matter and I will let you know if I get more info about it.

Here is a photo where the other player got error with the Fmod Ex script.
http://imageshack.us/photo/my-images/198/53309059.png/
Redd
Well... it does look like the Title BGM wasn't found.
Klokinator
If it's the pre-preoject V3, then it's missing a lot of audio. I just copied the audio files from V2 into then PZE V3 audio folder and most of it worked fine.

Pretty cool stuff, homeslice.
Chakanevil
a bit quite, so how are things progressing?
SilentResident
QUOTE (Chakanevil @ Jul 19 2011, 10:36 AM) *
a bit quite, so how are things progressing?


Just creating the Common Events of the new weapons here.

By the way the PZE has a 5th page opened for it! smile.gif The new page of Project Zelda Engine can be found at CreationAsylum.net:

http://www.creationasylum.net/forum/index.php?showforum=50

The moderators of Creation Asylum instantly pinned the topic in place! They loved it! biggrin.gif
Chakanevil
QUOTE (SilentResident @ Jul 19 2011, 07:02 AM) *
QUOTE (Chakanevil @ Jul 19 2011, 10:36 AM) *
a bit quite, so how are things progressing?


Just creating the Common Events of the new weapons here.

By the way the PZE has a 5th page opened for it! smile.gif The new page of Project Zelda Engine can be found at CreationAsylum.net:

http://www.creationasylum.net/forum/index.php?showforum=50

The moderators of Creation Asylum instantly pinned the topic in place! They loved it! biggrin.gif


hows things, am looking forwards to some news. biggrin.gif
ShinGamix
Wow A lot has changed since Update 2 already!
It is hard to believe how much work you have put into this.
I would never make a Zelda game on RPG Maker VX now because this is the best Zelda RPGM Engine Anywhere.
Silent you have done an amazing job and really helped out all the Zelda fans all over the world.
We owe you so much thanks!
--Shin
xXpassyXx
Hi,
my name is passy and i have a short question about this engine

I downloaded it a few days before, cause I wanted to create a game with it. I created a room with a treassure with contains the boomerang. But when i got the boomerang (or any other item) I can´t hit any enemie with it. (The boomerang, arrows... move above te enemy and nothing happens) I copied every event from the kakariko startmap but it still don´t work... I also made a transport from my own room to kakariko and see on the kakariko map alll items work!
I just don´t get why the items don´t work on my own maps cause i copied the events from the kakarko map...
May you can help me with this problem?
Redd
I haven't tested the engine yet, but you might have to enable something, like a script call or a switch, for it to work.
Also, do you have the legal version of RMXP?
xXpassyXx
QUOTE (Redd @ Jul 26 2011, 03:51 PM) *
I haven't tested the engine yet, but you might have to enable something, like a script call or a switch, for it to work.
Also, do you have the legal version of RMXP?


yes i have and the strange thing is that the items work perfectly on the standartmaps just all maps I create are not "compatible" with them.. well i activate the switch for getting the item.. and just every events are jsut like them on the standartmaps.. i dont get it why they don´t work
SilentResident
QUOTE (xXpassyXx @ Jul 26 2011, 05:58 PM) *
QUOTE (Redd @ Jul 26 2011, 03:51 PM) *
I haven't tested the engine yet, but you might have to enable something, like a script call or a switch, for it to work.
Also, do you have the legal version of RMXP?


yes i have and the strange thing is that the items work perfectly on the standartmaps just all maps I create are not "compatible" with them.. well i activate the switch for getting the item.. and just every events are jsut like them on the standartmaps.. i dont get it why they don´t work



The problem xXpassyXx mentioned about the action battle system of Project Zelda Engine, unfortunately has nothing to do about legal/illegal versions of RPG Maker XP. Because I am having exactly the same problem! Exactly the same problem as xXpassyXx...

More specifically, in my sister's old PC, for some reason, the weapons don't collide properly with the enemies at any other maps beside the "Kakariko Village" Map. If I fire Boomerang in the "Kakariko Village" map, it works just fine. But in all other maps, the boomerang gets through the monsters without stunning or killing them. This is a bug pretty sure has to do with the Action Battle System of Project Zelda Engine itself.

I have already informed Night_Runner about this strange bug and we are already -seriously- planning to implement a new better Action Battle System (such as XASABS) to Project Zelda Engine. XASABS is much better Action Battle System and can be a nice replacement of the existing old Action Battle System. This idea, lately, is gaining popularity! smile.gif
xXpassyXx
QUOTE (SilentResident @ Jul 27 2011, 05:56 AM) *
QUOTE (xXpassyXx @ Jul 26 2011, 05:58 PM) *
QUOTE (Redd @ Jul 26 2011, 03:51 PM) *
I haven't tested the engine yet, but you might have to enable something, like a script call or a switch, for it to work.
Also, do you have the legal version of RMXP?


yes i have and the strange thing is that the items work perfectly on the standartmaps just all maps I create are not "compatible" with them.. well i activate the switch for getting the item.. and just every events are jsut like them on the standartmaps.. i dont get it why they don´t work



The problem xXpassyXx mentioned about the action battle system of Project Zelda Engine, unfortunately has nothing to do about legal/illegal versions of RPG Maker XP. Because I am having exactly the same problem! Exactly the same problem as xXpassyXx...

More specifically, in my sister's old PC, for some reason, the weapons don't collide properly with the enemies at any other maps beside the "Kakariko Village" Map. If I fire Boomerang in the "Kakariko Village" map, it works just fine. But in all other maps, the boomerang gets through the monsters without stunning or killing them. This is a bug pretty sure has to do with the Action Battle System of Project Zelda Engine itself.

I have already informed Night_Runner about this strange bug and we are already -seriously- planning to implement a new better Action Battle System (such as XASABS) to Project Zelda Engine. XASABS is much better Action Battle System and can be a nice replacement of the existing old Action Battle System. This idea, lately, is gaining popularity! smile.gif


You´re having the same problem? O.o wow... (shocked)
But i´m happy to hear that you have already noticed it. I hope you can fix it soon cause it´s a very frustrating bug X.x
In any case thanks for this supoort already.

xXpassyXx
Redd
XAS, go for it!! Just edit out some parts (if you can) to make it more... zelda-like. You don't need any damage points or animations floating around people wink.gif

On second thought, it would probably be EASIER to do it with Blizz-ABS, but you would have possibly less compatibility.
Good luck!
zhoul
Its very important to fix this cause this engine was made to build up a Zelda game
and if you cant use the items and so on on other maps..its useless ^^

btw..i started my game with a very old version of the engine and used some extra scripts...

i never used the import option or other things so my question is: Can i tranfser every map
to the new engine? (i think there is a way but cant remember)

wanna change soon to the new version cause i am working on a island where you can use
the season wand.

SilentResident
QUOTE (zhoul @ Jul 28 2011, 01:14 PM) *
Its very important to fix this cause this engine was made to build up a Zelda game
and if you cant use the items and so on on other maps..its useless ^^

btw..i started my game with a very old version of the engine and used some extra scripts...

i never used the import option or other things so my question is: Can i tranfser every map
to the new engine? (i think there is a way but cant remember)

wanna change soon to the new version cause i am working on a island where you can use
the season wand.



Of course we can't ignore this bug. As I said, we are planning to replace the current, slow, buggy Action Battle System of Project Zelda Engine with a better one. smile.gif All what it needs is time. And patience from the players. smile.gif

Of course you can copy/paste maps from older versions of PZE to newer versions! It is very simple and easy! smile.gif
Just don't forget that after copying/pasting that map, to update all of its (probably outdated) events. Outdated events of shrubs, rocks, NPCs, etc with the updated shrubs and rocks from the newer version of PZE.

Have a nice day! smile.gif
zhoul
thank you for your replay happy.gif

So i will go on now and looking forward to see the real update 3
Chakanevil
maybe we could get a team together to work on xasabs and a team working on the standard pze, since pze uses common event for items, while xasabs uses scripts to know what weapon is assigned to what variable, we will have to edit these menu scripts to match these variables and display the right images.
SilentResident
QUOTE (Chakanevil @ Jul 29 2011, 09:04 AM) *
maybe we could get a team together to work on xasabs and a team working on the standard pze, since pze uses common event for items, while xasabs uses scripts to know what weapon is assigned to what variable, we will have to edit these menu scripts to match these variables and display the right images.



It is getting difficult for me to maintain the PZE's teamwork and assign everybody a task, as I don't know what each thing needs. What XASABS requires? Scripters only? And when to work with XASABS? After Night_Runner has done with the File Display stuff?

I don't know what to do to help you guys, as scripting is beyond my skills and knowledge. It is up to you :S
Chakanevil
ok so perhaps maybe we should make a lsit as to what is being done and what needs done and make a time line i will explore xasabs and explain what it will need to transition, i will explain how each things works, im not really a scripter myself, i am willing to learn if someone is willing to teach me.
SilentResident
QUOTE (Chakanevil @ Jul 30 2011, 04:23 AM) *
ok so perhaps maybe we should make a lsit as to what is being done and what needs done and make a time line i will explore xasabs and explain what it will need to transition, i will explain how each things works, im not really a scripter myself, i am willing to learn if someone is willing to teach me.


Not a bad idea. smile.gif

OK, lets discuss about the plans list. I come later with some ideas. If you already have some ideas/ plans in mind, feel free to write them biggrin.gif
Chakanevil
QUOTE (SilentResident @ Jul 29 2011, 11:58 AM) *
QUOTE (Chakanevil @ Jul 29 2011, 09:04 AM) *
maybe we could get a team together to work on xasabs and a team working on the standard pze, since pze uses common event for items, while xasabs uses scripts to know what weapon is assigned to what variable, we will have to edit these menu scripts to match these variables and display the right images.



It is getting difficult for me to maintain the PZE's teamwork and assign everybody a task, as I don't know what each thing needs. What XASABS requires? Scripters only? And when to work with XASABS? After Night_Runner has done with the File Display stuff?

I don't know what to do to help you guys, as scripting is beyond my skills and knowledge. It is up to you :S


Ok so What we should do is go through all the features and mark the overall progress such as Inventory - 70%, and so on, what we should be focused on first and formost is that bug, followed by working weapons, then the quest menu, and finally the new game screen, we each should take a look at how the xasabs system runs, and start coding the quest menu, new game, and weapons to work with the scripts of xasabs, it seems a bit simple to add weapons, the part i don't get is the sprites, we might need to code the 8 way movement and item scripts for xasabs as well, so that it will display the images at their right height and width.

I will have a look at pze and list features, and you can reply with the overall progress, if it is finished, beginning programming, or not yet receiving updates.
Chakanevil
Lets me try to explain how xasabs works.

XAS uses an elaborate Tool System that allows you to heavily edit how you want a weapon, item or skill to act. The following outlines the steps you need to take to create any type of tool.

Lets say we want to add the bombos medallion to xasabs

Xasabs Tool Setup
>> the steps

>> create a new SKILL entry in the DATABASE
>> create a new event on the TOOL map
>> fill out a TOOL script for your new tool

In all the steps outlined above the IDs match:
SKILL ID = EVENT ID = Tool Script ID


>> step 1: creating a new SKILL entry in the DATABASE

Go to the SKILLS tab in the DATABASE and make a new entry.

since xasabs has 197 skills we will need to change the maxium to 198, set the name as Bombos, set the icon as whatever, the scope as none, the occasion as Always, the target animation (a fire hit?), the user animation (link bombos animation), sp ( this will need to affect the magic meter later), power (usally kills most enemies, bosses it does a good ammount of damage), element (fire), i'm guessing since bombos stops time for a few secs, we will need to tick (X Shield, X Wait Finish).

We will now need to place it on the tool map, create a new event, Choose a graphic for your tool (where applicable) then set a move route for your tool.

Every event on the TOOL map has a corresponding TOOL script, this stores more detailed information about the tool.

action_id = X
X = The TOOL ID.

Remember: SKILL ID = EVENT ID = TOOL ID

(Skill ID is 198)

LINK_ACTION_ID[action_id] = X
X = The TOOL ID you want to activate next.
You can create combos this way.
Note: Enter 0 for no TOOL to be activated next.

SUFLAGS[action_id] = X
X = Amount of frames the user stands still for when using the TOOL.

(Bombos freezes the player) while used

DURATIONS[action_id] = X
X = Amount of frames the TOOL remains in play for.

SELF_MOTIONS[action_id] = = "X"
X = Suffix of the graphic you want to be shown when the TOOL is activated.
Open: Suffix Name List

(the graphics of link using bombos)



plan = []
plan = [X]
ATTACK_ID_PLANS[action_id] = plan
X = Amount of frames before the TOOL €™s impact takes place.
This option is used to create tools such as bombs where the impact occurs after a little while.

ATTACK_RANGE_TYPES[action_id] = X
X = Type of impact area.
Options: LINE, RHOMBUS or SQUARE

(Square)



ATTACK_RANGE_PLANS[action_id] = X
X = Size of the impact area.

BLOW_POWERS[action_id] = X
X = Number of tiles you want the target to be forced back.



plan = []
plan[X] = Y
SELF_ANIMATION_PLANS[action_id] = plan
X = Amount of frames before an animation takes place.
Y = ANIMATION ID.
This option is used to create tools such as bombs where the explosion animation occurs after a little while.

SELF_ANIMATION_HIT[action_id] = X
X = ANIMATION ID shown when the user activates the TOOL.
Note: Enter 0 for no ANIMATION to be used.

TARGET_INVINCIBLES_DURATIONS[action_id] = X
X = Amount of frames the user is invincible for.

ANIMATION_SPEED[action_id] = X
X = Speed at which the ANIMATIONS are played.

FORCE_MOVE[action_id] = X
X = Amount of frames the user is invincible for.
Options: FORWARD, BACKWARD or nil

PLAYER_CAST_TIME[action_id] = X
X = Amount of time the user has to wait until they activate the TOOL.



>> define the tool as an item

so we will be adding a new line so edit line 21=>128 # Boots to 21=>128 # Boots, (we need a coma to tell the system it is no longer the last item)

Add this line for Bombos
22=>198 # Bombos

Remember to set the Occasion to 'Always' in the DATABASE
otherwise you won't be able to equip your items.


I cant remember if bombos had any environment interaction

The TOOL ID defines what will happen if a tool hits an Interactive Event.

(Tool ID=198)



>> how to create an interactive event

All Interactive Events work on the same principal:

>> first page

i. Select your graphic (unlit torch, unbroken wall, uncut grass)

screenshot walkthrough



>> second page

i. Select your graphic (unlit torch, unbroken wall, uncut grass)
ii. Select Variable then select 0003: ID Impact from the list. Now put the Tool ID of your selected tool (lantern, bomb, sword) in the box below. (Tool ID=198)
iii. Under List of Event Commands put anything you want to happen when your selected tool hits this event (i.e. animations or sound effects to be played, switches to be toggled etc.)
iv. Then you can either:

>> Choose to erase the event - this means the event will be temporarily deleted and be restored when you return to the same map (good for grass or pots etc.)

screenshot walkthrough



>> Or set either a self switch or an actual switch and make a third page - (good for switches, lanterns, walls etc.)

screenshot walkthrough





In the above example when this piece of grass is cut by the TOOL with the ID of 1 (Broad Sword in the XAS demo) it €™ll play an animation and then the event will be erased.

Note: You can replicate the second page for every tool that
has the ability to interact with the event.


eXample:
You may want to play a different animation when you cut
through the bush with a burning sword or squash it with a
hammer etc.


>> (optional) third page

i. Select your graphic (lit torch, broken wall, cut grass)
ii.Select the Self Switch or Switch you activated on the second page

screenshot walkthrough



and that's how we make an Item tool, it doesn't really fit in as a skill, weapon, or shield

SilentResident
omg what a "pro" post, by Chakanevil!
Nice post, mate!

I love XASABS! Man, I will do anything to get XASABS in PZE! At any cost! <3

PS: I will keep re-reading your post as I am pretty sure I will always find it useful when time comes for XASABS.
Chakanevil
ya thats what im facing with the menu, since pze has the menu items in common events, we will need to edit the script so that item id's are what controls the image that is displayed.

so what im thinking is like with the way the items are set, we could edit the script, to work the same style, so that kokori the sword is item id 1, basically make the x and y cords at lets say, so basically if you have ever donr math then it's the same as plotting a point, since that is where the image will be placed, do if the image is 64X64 pixel then pixel 1,1 will be placed at the x and y axis, thats what i been trying to say with the cursor re-sizing, the stand image is displayed when the cursor is at the axis of 0,0 when we move over to 10,10 the scripts realizes the new axis points and updates the cursor for the increase item that we will place there, then when we move again to 20,20 the scripts see's those axis points, and changes the cursor image back to the standard size.

Here's how i would code where items are shown on the menu, we can use another script, that uses the same functions for cursors, but combining them together is pointless

Position X = X
X = x axis

Position Y = X
X = Y axis

Tool Display_id = 198
X = The TOOL ID.

the same for the cursor

Position X = X
X = x axis

Position Y = X
X = Y axis

Cursor Image = "X"
X = Image shown
0 = no cursor
1 = normal size
2 = enlarged size
Chakanevil
so what I will do is list Scripts, even if they are completed.

Progress as of so far, if completed just state they are completed, they will be updated to 100%, btw with my scripts could you give credit to Th3_W01f instead of Chakanevil, I like that name better, I hope this will also let the community see just how busy the team as a whole has been, these are just some of the things I can think of as I think of more i will update the list, apparently to get pze into xasabs we need a few of these scripts, which i will list.

Please bear in mind this is not an official list, things may be added or dropped from this list, depending on the complexity, some things are beyond the limits of Rpgmaker, although xasabs, improves these limits dramatically over PZE, which is why we are examining that option, but even xasabs has limits, we are always looking for content.

*S - Suggested not yet confirmed
*I - Ideas, not confirme
** - Add on in newer Patch
*** - Possible Future Add on

Scripts Update
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Anti Event Lag System -
Auto Font Install -
Item & Gold Cap -
CharFrameCountSet -
Pixel-Based Movement -
8-Way Move for Events -
Anti Battle-Animation Lag -
New Font Addons -
Sticky Switches -
World Map Script -
Animation Height/Priority -
Lighting System -
Tileset Swap -
Map HUD (New version by Th3_W01f) -
NR_Zelda_CMS -
Zelda Title Screen (New Version by Th3_W01f) -
*S Independent Cursor
**Name Input

Inventory Items (completed means working sprites and actions)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bow(s) -
Fire Arrows -
Ice Arrows -
Light Arrows -
Boomerang
Magical Boomerang -
Hookshot -
Longshot -
Bomb -
***Bombchu -
***Remote Bombs -
***Super Bomb -
Lens of Truth -
Mushroom -
Magic Powder -
Horse Call
Roc's Feather -
Lantern -
Hammer -
Megaton Hammer -
Fairy Ocarina -
Ocarina of Time -
***Harp of Ages -
Rod of Seasons -
Shovel -
Book of Mudora -
Bottle(s) -
Pegasus Boots -
***Deku Stick -
***Deku Nut -
***Slingshot -
***Magic Mirror
Fire Rod -
Ice Rod -
***Magic Beans -
***Cane of Byrna -
***Cane of Somaria -
***Din's Fire
***Farore's Wind
***Nayru's Love
***Bombos Medallion
***Quake Medallion
***Ether Medallion


Quest Screens
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Blank for now, will update later

Songs (completed means the songs plays and has a working effect)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Zelda's Lullaby -
Saria's Song
Sun's Song
Song of Storms
Song of Time
Epona's Song
Minuet of Fores
Bolero of Fire
Serenade of Water
Requiem of Spirit
Nocturne of Shadow
Prelude of Light
***Scarecrow's Song
***Inverted Song of Time
***Song of Double Time
***Song of Healing
***Song of Soaring
***Sonata of Awakening
***Lullabye Intro (not really a song, you forget it soon in MM)
***Goron Lullabye (may not be needed)
***New Wave Bossa nova (may not be needed)
***Elegy of Emptiness
***Oath to Order


Additional Fixes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Weapons going through enemies fixed -
Map Transfer Time -
NPC (such as chickens not moving) -
***Masks -
***Tunics -
***Xasabs -
***Sword(s) (such as the Master Sword, shown with sprite) -
***Shield(s) (shown with sprite) -
***Boots(s) (shown with sprite) -

Xasabs Scripts Written for Xasabs
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Auto Font Install -
Item & Gold Cap -
CharFrameCountSet (May or may not need)
Pixel-Based Movement (May or may not need)
8-Way Move for Events (I think xasabs has one, but we may still need this one)
Anti Battle-Animation Lag (May or may not need)
New Font Addons -
Sticky Switches (Pretty sure we may not need this, not certain though)
World Map Script (much needed)
Animation Height/Priority (certain we will need this)
Lighting System (If it's for the Lantern, xasabs has a script that handles that)
Tileset Swap (not sure if this is a must)
*Map HUD (New version by Th3_W01f, much needed)
NR_Zelda_CMS (not certain on this one)
Zelda Title Screen (New Version by Th3_W01f, Much needed)
**Independent Cursor
** Name Input

Suggestions
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*I Classic Zelda Screen Transitions (page 12)
*I Advanced Map Scrolling (page 12)
*I Advoid Guards (page 12)
*I Spriteset_Map (page 12)

One of the thing I am trying to get a hold of is this. the time system with the sun and moon. and the intelligent hud, basically it's the system we are using.





So as you can see we have / are rather busy with giving everyone the best possible before patch 3, after most of the functions are working, doesn't have to have all the feature patch 4 may have, just the speed increases and bugs reworked, and maybe the new screens, afterwards once we have all taken a few months or weeks break, we will then start on patch 4 in the future.
SilentResident
Most lists are correct and I confirm it. Your list is better than mine. Almost all your lists are accurate except the Songs list. Why some complete songs are listed as incomplete? :S

The following songs are complete and ready to use:
***Inverted Song of Time - complete - both graphics and function (Function: controls the speed of the Flow of Time - day and night will last longer)
***Song of Healing - complete
***Song of Soaring - complete - both graphics and function (Function: saves player's location and teleport back to it.)
***Sonata of Awakening - complete
***Song of Soaring - complete
***Goron Lullaby - complete
***New Wave Bossa Nova - complete

The following songs are not complete yet:
***Scarecrow's Song
***Lullaby Intro
***Elegy of Emptiness (Its functionality is similar to the weapon Cane of Byrna)

The following songs have no clear role in PZE:
***Oath to Order - complete? its function can not be the same as in Majora's Mask, unfortunately, as the PZE lacks a 3-Day Moon Fall system as seen in LoZ: Majora's Mask.
***Song of Double Time - its function can not be the same as in Majora's Mask, unfortunately, as the PZE lacks a 3-Day Moon Fall system as seen in LoZ: Majora's Mask.



EDIT: Forgot to tell you. I just noticed you have listed the "Map Transfer Time" in the 'Additional Fixes" list. smile.gif But we already fixed the slow map-to-map transfer time - Night_Runner fixed it by re-writing the map-to-map transfer script, and therefore reducing the total transfer time by 60%-70%. You can playtest it yourself if you want. The proper version of PZE that includes this fix, is the one I gave to KingCharizard. You can go some pages back and download it. Let me know if the faster transfer between maps is noticeably faster for you as well.
Chakanevil
the sword spin is a bit off, no animation of the sword in hand while charging, as well as no matter which direction you are facing link stops facing south.

it is a bit faster. by not to the pint that the actual game is, it still takes a good couple of seconds, but it is faster than it used to be, the transistion should be almost instant.
Chakanevil
im gonna be finishing up the menu's screens, and placing the slots for menu items, as well as the cursors which are nearing complete.

Also how many boots, tunics, swords will there be so i can set the equipment screen up, are we planning on adding the magic armour, just wondering?
Chakanevil
the cursors are finished and here are 4 teasers for the community.









does this take you back, i know it does me
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.