[YERD] Scene Shop ReDux

0 Members and 1 Guest are viewing this topic.

*
Rep:
Level 84
Scene Shop ReDux
Last Update: 2009.06.08
By: Yanfly Engine ReDux
 
Introduction
The shop scene was more or less fine by itself aside from a few efficiency issues. This script patches up those efficiency problems in and displays more data given for buyable items. Before, we received nothing but a blank number input window only to show us how much of the item is being bought. The script makes use of that empty space to give a little more detail on what is being purchased. The status window also more or less compares only one stat. This script will increase that to the four ADSA stats. For games with more than 4 party members, you may have experienced that the status window didn't have enough room to show. Imported from KGC is the ability to scroll that window to allow for a more comfortable and informative shop scene.

Screenshots

 
Script
Click here to view the main script.

Instructions
There’s a few things to go through so I’ll post some screenshots.

---------



Of the things that prompted me actually do this makeover script is the fact that very little information is shown about the items you've bought from the shop. The only thing that can even remotely suggest what you were buying before was the help window at the top of the screen. Even then, it wasn't too helpful (despite being a help window). Now, once you've decided to make a purchase on the item, at the amount number window, you'll see nearly all the item information placed on there (that I can fit).

To change the text displayed, just scroll down (in the script) to the module and edit what you see there. You may change the icons representative of the effects there as well.

---------



When choosing equipment to buy rather than usable items, a different set of information appears. Any stat boosts will be shown in the window as well as the weapon elements and status effects applied by the weapons. Note that an extra effects such as dual attack, half MP cost, etc. will not show. This is mostly due to room limitations. That's no biggie however since players generally only look at stats when buying equipment anyway.

---------



And finally, for those who have more than 4 party members at a time, you may scroll the status window upward and downward by holding Input::X (or on the keyboard, the A button). This was a feature implemented by KGC's help-extension, but non-help-extension users should also receive this benefit (and so here it is in this very script!).

---------
IF YOU ARE HAVING PROBLEMS WITH THESE SCRIPTS, REVIEW THE TROUBLESHOOTING PAGE FIRST!

Compatibility
- I'm pretty sure it'll be compatible with anything that doesn't affect shops.
Please report any compatibility issues and I'll try my best to fix them.

Terms and Conditions
Just give credit where due.
 
Credits and Thanks
- Credits to KGC for the status window scrolling method.
 
Originally Found Here: Here
« Last Edit: June 09, 2009, 02:07:19 AM by Yanfly »
Side-battle systems are the lens flare of RPG Maker.

**
Rep: +0/-0Level 81
Let the battle begin.
The link is broken. Same with the scene status redux link.

***
Rep:
Level 81
Where did all these bellybuttons come from *^^*
The link is broken. Same with the scene status redux link.
Yanfly Engine ReDux is obsolete compared to her new engine. You can find what you want here: http://wiki.pockethouse.com/index.php?title=Main_Page


****
Rep:
Level 83
The link is broken because Yanfly dumped the ReDux version and password protected the blog.
So, MA, or any of the other mods, could you close this? No reason for it being open any longer

***
Rep:
Level 77
RMRK Junior
It's worth noting they can't be downloaded anywhere anymore. Trust me, I've searched everywhere.

Maybe this thread bump will get it locked...

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Best RPG Maker User (Scripting)2010 Most Mature Member
There's no reason to lock it, since it gives people a place where they can ask about the script. If it were locked and they wanted this script, they'd have to create a new thread.

As far as I know, all of the YERD scripts are contained in the KGC & YanflyPLUS demo

Here is the SceneShop script from that demo. It may rely on some other scripts as well; I don't know. If that is the case, then just download the KGCYanfly Demo:

Code: [Select]
#===============================================================================
#
# Yanfly Engine RD - Scene Shop ReDux
# Last Date Updated: 2009.06.08
# Level: Normal
#
# The shop scene was more or less fine by itself aside from a few efficiency
# issues. This script patches up those efficiency problems in and displays more
# data given for buyable items. Before, we received nothing but a blank number
# input window only to show us how much of the item is being bought. The script
# makes use of that empty space to give a little more detail on what is being
# purchased. The status window also more or less compares only one stat. This
# script will increase that to the four ADSA stats. For games with more than 4
# party members, you may have experienced that the status window didn't have
# enough room to show. Imported from KGC is the ability to scroll that window
# to allow for a more comfortable and informative shop scene.
#
#===============================================================================
# Updates:
# ----------------------------------------------------------------------------
# o 2009.06.08 - Finished script.
# o 2009.06.07 - Started script.
#===============================================================================
# Instructions
#===============================================================================
#
# For the most part, this script is plug and play. Scroll down and change the
# various settings under the module.
#
#===============================================================================
#
# Compatibility
# - Works With: KGC's Equip Extension
# - Works With: Yanfly's Extra Equipment Options
# - Overwrites: Scene_Shop: update
# - Overwrites: Window_ShopNumber: refresh
# - Overwrites: Window_ShopStatus: refresh
#
#===============================================================================
# Credits:
# KGC for shop status scrolling method.
#===============================================================================

$imported = {} if $imported == nil
$imported["SceneShopReDux"] = true

module YE
  module REDUX
    module SHOP
     
      #------------------------------------------------------------------------
      # STATUS WINDOW OPTIONS
      #------------------------------------------------------------------------
     
      # This adjusts the text for the status window over on the right.
      POSSESSION = "Possession"       # How many items in possession of party.
      EQUIPPED   = "Equipped"         # Appears if actor has item equipped.
     
      # This button is used to scroll the status window if it is too short.
      # This has been made mostly for games with more than 4 party members.
      SCROLL_KEY = Input::X
     
      # The following adjusts the icons used for stat increases and decreases.
      # Just refer them to ATK, DEF, SPI, and AGI in that order.
      STAT_INCREASE = [120, 121, 122, 123]
      STAT_DECREASE = [124, 125, 126, 127]
     
      #------------------------------------------------------------------------
      # PURCHASE WINDOW OPTIONS
      #------------------------------------------------------------------------
     
      # The following determines the text displayed at the amount selection
      # screen. Change the information here accordingly.
      PURCHASE = "Purchase"           # Title of purchasing information.
      COST_ICN = 205                  # Icon of total cost.
      COST_TXT = "Total Cost"         # Text for total cost.
      ITEMSTAT = "Item Info"          # Text for item data.
      WPN_STAT = "Weapon Info"        # Text for weapon data.
      ARM_STAT = "Armour Info"        # Text for armour data.
      NOEFFECT = "----------"         # Text if no data is revealed.
      FONTSIZE = 16                   # Font size used for data text.
     
      # The following adjusts extra increment increases for pressing L or R
      # while the number window is open.
      LR_INCREMENT = 100
     
      # This part defines the data used for item/equipment properties.
      HP_HEAL_TEXT = "HP Effect"      # Text used for HP recovery.
      HP_HEAL_ICON = 128              # Icon used for HP recovery.
      MP_HEAL_TEXT = "MP Effect"      # Text used for MP recovery.
      MP_HEAL_ICON = 202              # Icon used for MP recovery.
      ERASE_STATE  = "Removes Status" # Text used for removing states.
      APPLY_STATE  = "Applies Status" # Text used for applying states.
      PARAM_BOOST  = "Raises %s"      # Text used for parameter raising.
      SPELL_EFFECT = "Spell Effect"   # Text used for spell effect items.
      SPELL_DAMAGE = "%d Base Dmg"    # Text used for spell damage.
      SPELL_HEAL   = "%d Base Heal"   # Text used for spell healing.
      NO_EQ_STAT   = "---"            # Text used when no equip
      EQ_ELEMENT_W = "Apply Element"  # Text used to represent equip elements.
      EQ_ELEMENT_A = "Guard Element"  # Text used to represent equip elements.
      EQ_STATUS_W  = "Apply Status"   # Text used to represent equip states.
      EQ_STATUS_A  = "Guard Status"   # Text used to represent equip states.
     
      # These are the general icons and text used for various aspects of new
      # shop windows. Used for items and equips alike.
      ICON_HP  = 99            # Icon for MAXHP
      TEXT_HP  = "MaxHP"       # Text for MAXHP
      ICON_MP  = 100           # Icon for MAXMP
      TEXT_MP  = "MaxMP"       # Text for MAXMP
      ICON_ATK = 2             # Icon for ATK
      TEXT_ATK = "ATK"         # Text for ATK
      ICON_DEF = 52            # Icon for DEF
      TEXT_DEF = "DEF"         # Text for DEF
      ICON_SPI = 21            # Icon for SPI
      TEXT_SPI = "SPI"         # Text for SPI
      ICON_AGI = 48            # Icon for AGI
      TEXT_AGI = "AGI"         # Text for AGI
      ICON_HIT  = 135          # Icon for HIT
      TEXT_HIT  = "HIT"        # Text for HIT
      ICON_EVA  = 158          # Icon for EVA
      TEXT_EVA  = "EVA"        # Text for EVA
      ICON_CRI  = 119          # Icon for CRI
      TEXT_CRI  = "CRI"        # Text for CRI
      SHOW_CRI  = true         # Display CRI?
      ICON_ODDS = 137          # Icon for ODDS
      TEXT_ODDS = "LUK"        # Text for ODDS
      SHOW_ODDS = true         # Display ODDS?
      ICON_BASEDMG  = 119      # Used for base damage.
      ICON_BASEHEAL = 128      # Used for base healing.
     
      # The following determines which elements can be shown in the elements
      # list. If an element is not included here, it is ignored.
      SHOWN_ELEMENTS ={
      # ElID => IconID
           2 => 10,
           3 => 4,
           4 => 14,
           5 => 16,
           6 => 12,
           9 => 104,
          10 => 105,
          11 => 106,
          12 => 107,
          13 => 108,
          14 => 109,
          15 => 110,
          16 => 111,
      } # Do not remove this.
     
    end # SHOP
  end # REDUX
end # YE

#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================

#===============================================================================
# Scene_Shop
#===============================================================================

class Scene_Shop < Scene_Base
 
  #--------------------------------------------------------------------------
  # overwrite update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    if @command_window.active
      @command_window.update
      @dummy_window.update
      update_command_selection
    elsif @status_window.visible and Input.press?(YE::REDUX::SHOP::SCROLL_KEY)
      update_scroll_status
    elsif @buy_window.active
      @gold_window.update
      @help_window.update
      @buy_window.update
      @status_window.cursor_rect.empty
      @status_window.update
      update_buy_selection
    elsif @sell_window.active
      @gold_window.update
      @help_window.update
      @sell_window.update
      update_sell_selection
    elsif @number_window.active
      @number_window.update
      @status_window.cursor_rect.empty
      @status_window.update
      update_number_input
    end
  end
 
  #--------------------------------------------------------------------------
  # update_scroll_status
  #--------------------------------------------------------------------------
  def update_scroll_status
    @status_window.cursor_rect.width = @status_window.contents.width
    @status_window.cursor_rect.height = @status_window.height - 32
    @status_window.update
    if Input.press?(Input::UP)
      @status_window.oy = [@status_window.oy - 4, 0].max
    elsif Input.press?(Input::DOWN)
      max_pos = [@status_window.contents.height -
        (@status_window.height - 32), 0].max
      @status_window.oy = [@status_window.oy + 4, max_pos].min
    end
  end
 
end # Scene_Shop

#===============================================================================
# Window_ShopNumber
#===============================================================================

class Window_ShopNumber < Window_Base

  #--------------------------------------------------------------------------
  # overwrite refresh
  #--------------------------------------------------------------------------
  def refresh
    dy = 0
    sw = self.width - 32
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.font.size = Font.default_size
    self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::PURCHASE, 1)
    dy += WLH
    self.contents.font.color = normal_color
    draw_item_name(@item, 0, dy)
    self.contents.draw_text(212, dy, 20, WLH, "×")
    self.contents.draw_text(218, dy, 50, WLH, @number, 2)
    self.cursor_rect.set(207, dy, 64, WLH)
    dy += WLH
    draw_icon(YE::REDUX::SHOP::COST_ICN, 0, dy)
    self.contents.draw_text(24, dy, sw-24, WLH, YE::REDUX::SHOP::COST_TXT)
    draw_currency_value(@price * @number, 4, dy, 264)
    dy += WLH
    if @item.is_a?(RPG::Item)
      draw_item_stats(dy, sw)
    else
      draw_equip_stats(dy, sw)
    end
  end
 
  #--------------------------------------------------------------------------
  # overwrite update
  #--------------------------------------------------------------------------
  def update
    super
    if self.active
      last_number = @number
      if Input.repeat?(Input::RIGHT) and @number < @max
        @number += 1
      end
      if Input.repeat?(Input::LEFT) and @number > 1
        @number -= 1
      end
      if Input.repeat?(Input::UP) and @number < @max
        @number = [@number + 10, @max].min
      end
      if Input.repeat?(Input::DOWN) and @number > 1
        @number = [@number - 10, 1].max
      end
      if Input.repeat?(Input::L) and @number > 1
        @number = [@number - YE::REDUX::SHOP::LR_INCREMENT, 1].max
      end
      if Input.repeat?(Input::R) and @number < @max
        @number = [@number + YE::REDUX::SHOP::LR_INCREMENT, @max].min
      end
      if @number != last_number
        Sound.play_cursor
        refresh
      end
    end
  end
 
  #--------------------------------------------------------------------------
  # draw_item_stats
  #--------------------------------------------------------------------------
  def draw_item_stats(dy, sw)
    start_dy = dy
    self.contents.font.color = system_color
    self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::ITEMSTAT, 1)
    self.contents.font.size = YE::REDUX::SHOP::FONTSIZE
    #-----
    if @item.base_damage != 0
      dy += WLH
      if @item.base_damage > 0
        icon = YE::REDUX::SHOP::ICON_BASEDMG
        result = sprintf(YE::REDUX::SHOP::SPELL_DAMAGE, @item.base_damage)
      else
        icon = YE::REDUX::SHOP::ICON_BASEHEAL
        result = sprintf(YE::REDUX::SHOP::SPELL_HEAL, -@item.base_damage)
      end
      if @item.element_set != []
        for ele_id in @item.element_set
          next unless YE::REDUX::SHOP::SHOWN_ELEMENTS.include?(ele_id)
          icon = YE::REDUX::SHOP::SHOWN_ELEMENTS[ele_id]
          break
        end
      end
      text = YE::REDUX::SHOP::SPELL_EFFECT
      draw_icon(icon, 0, dy)
      self.contents.draw_text(24, dy, sw/2-24, WLH, text, 0)
      self.contents.font.color = normal_color
      self.contents.draw_text(sw/2, dy, sw/2, WLH, result, 2)
    end
    #-----
    if @item.hp_recovery != 0 or @item.hp_recovery_rate != 0
      self.contents.font.color = system_color
      dy += WLH
      draw_icon(YE::REDUX::SHOP::HP_HEAL_ICON, 0, dy)
      text = YE::REDUX::SHOP::HP_HEAL_TEXT
      self.contents.draw_text(24, dy, sw/2-24, WLH, text, 0)
      self.contents.font.color = normal_color
      if @item.hp_recovery_rate != 0 and @item.hp_recovery != 0
        text = sprintf("%+d%% %s", @item.hp_recovery_rate, Vocab::hp)
        self.contents.draw_text(sw/2, dy, sw/4, WLH, text, 2)
        text = sprintf("%+d %s", @item.hp_recovery, Vocab::hp)
        self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
      elsif @item.hp_recovery_rate != 0
        text = sprintf("%+d%% %s", @item.hp_recovery_rate, Vocab::hp)
        self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
      else
        text = sprintf("%+d %s", @item.hp_recovery, Vocab::hp)
        self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
      end
    end
    #-----
    if @item.mp_recovery != 0 or @item.mp_recovery_rate != 0
      self.contents.font.color = system_color
      dy += WLH
      draw_icon(YE::REDUX::SHOP::MP_HEAL_ICON, 0, dy)
      text = YE::REDUX::SHOP::MP_HEAL_TEXT
      self.contents.draw_text(24, dy, sw/2-24, WLH, text, 0)
      self.contents.font.color = normal_color
      if @item.mp_recovery_rate != 0 and @item.mp_recovery != 0
        text = sprintf("%+d%% %s", @item.mp_recovery_rate, Vocab::mp)
        self.contents.draw_text(sw/2, dy, sw/4, WLH, text, 2)
        text = sprintf("%+d %s", @item.mp_recovery, Vocab::mp)
        self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
      elsif @item.mp_recovery_rate != 0
        text = sprintf("%+d%% %s", @item.mp_recovery_rate, Vocab::mp)
        self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
      else
        text = sprintf("%+d %s", @item.mp_recovery, Vocab::mp)
        self.contents.draw_text(sw*3/4, dy, sw/4, WLH, text, 2)
      end
    end
    #-----
    if @item.plus_state_set != []
      self.contents.font.color = system_color
      dy += WLH
      self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::APPLY_STATE, 1)
      dx = (sw - (@item.plus_state_set.size * 24)) / 2
      dy += WLH
      for state_id in @item.plus_state_set
        state = $data_states[state_id]
        next if state == nil
        next if state.icon_index == 0
        draw_icon(state.icon_index, dx, dy)
        dx += 24
      end
    end
    if @item.minus_state_set != []
      self.contents.font.color = system_color
      dy += WLH
      self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::ERASE_STATE, 1)
      dx = (sw - (@item.minus_state_set.size * 24)) / 2
      dy += WLH
      for state_id in @item.minus_state_set
        state = $data_states[state_id]
        next if state == nil
        next if state.icon_index == 0
        draw_icon(state.icon_index, dx, dy)
        dx += 24
      end
    end
    #-----
    if @item.parameter_type != 0
      self.contents.font.color = system_color
      dy += WLH
      case @item.parameter_type
      when 1
        icon = YE::REDUX::SHOP::ICON_HP
        text = YE::REDUX::SHOP::TEXT_HP
      when 2
        icon = YE::REDUX::SHOP::ICON_MP
        text = YE::REDUX::SHOP::TEXT_MP
      when 3
        icon = YE::REDUX::SHOP::ICON_ATK
        text = YE::REDUX::SHOP::TEXT_ATK
      when 4
        icon = YE::REDUX::SHOP::ICON_DEF
        text = YE::REDUX::SHOP::TEXT_DEF
      when 5
        icon = YE::REDUX::SHOP::ICON_SPI
        text = YE::REDUX::SHOP::TEXT_SPI
      when 6
        icon = YE::REDUX::SHOP::ICON_AGI
        text = YE::REDUX::SHOP::TEXT_AGI
      end
      draw_icon(icon, 0, dy)
      boost = sprintf(YE::REDUX::SHOP::PARAM_BOOST, text)
      self.contents.draw_text(24, dy, sw/2-24, WLH, boost, 0)
      self.contents.font.color = normal_color
      param = sprintf("%+d %s", @item.parameter_points, text)
      self.contents.draw_text(sw/2, dy, sw/2, WLH, param, 2)
    end
    #-----
    if start_dy == dy
      dy += WLH
      self.contents.font.color = normal_color
      self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::NOEFFECT, 1)
    end
  end
 
  #--------------------------------------------------------------------------
  # draw_equip_stats
  #--------------------------------------------------------------------------
  def draw_equip_stats(dy, sw)
    self.contents.font.color = system_color
    if @item.is_a?(RPG::Weapon)
      self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::WPN_STAT, 1)
    else
      self.contents.draw_text(0, dy, sw, WLH, YE::REDUX::SHOP::ARM_STAT, 1)
    end
    self.contents.font.size = YE::REDUX::SHOP::FONTSIZE
    dy += 24
    if $imported["ExtraEquipmentOptions"]
      #---MaxHP---
      if @item.bonus_paramp[:maxhp] != 100
        text = sprintf("%+d%%", @item.bonus_paramp[:maxhp] - 100)
        enabled = true
      elsif @item.bonus_param[:maxhp] != 0
        text = sprintf("%+d", @item.bonus_param[:maxhp])
        enabled = true
      else
        text = YE::REDUX::SHOP::NO_EQ_STAT
        enabled = false
      end
      self.contents.font.color = system_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      self.contents.draw_text(24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_HP)
      self.contents.font.color = normal_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      draw_icon(YE::REDUX::SHOP::ICON_HP, 0, dy, enabled)
      self.contents.draw_text(sw*1/4, dy, sw/5, WLH, text, 2)
      #---MaxMP---
      if @item.bonus_paramp[:maxmp] != 100
        text = sprintf("%+d%%", @item.bonus_paramp[:maxmp] - 100)
        enabled = true
      elsif @item.bonus_param[:maxmp] != 0
        text = sprintf("%+d", @item.bonus_param[:maxmp])
        enabled = true
      else
        text = YE::REDUX::SHOP::NO_EQ_STAT
        enabled = false
      end
      self.contents.font.color = system_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      self.contents.draw_text(sw/2+24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_MP)
      self.contents.font.color = normal_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      draw_icon(YE::REDUX::SHOP::ICON_MP, sw/2, dy, enabled)
      self.contents.draw_text(sw*3/4, dy, sw/5, WLH, text, 2)
      #------
      dy += 24
      #------
    end
    #---ATK---
    if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:atk] != 100
      text = sprintf("%+d%%", @item.bonus_paramp[:atk] - 100)
      enabled = true
    elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:atk] != 0
      text = sprintf("%+d", @item.bonus_param[:atk] + @item.atk)
      enabled = true
    elsif @item.atk != 0
      text = sprintf("%+d", @item.atk)
      enabled = true
    else
      text = YE::REDUX::SHOP::NO_EQ_STAT
      enabled = false
    end
    self.contents.font.color = system_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_ATK)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    draw_icon(YE::REDUX::SHOP::ICON_ATK, 0, dy, enabled)
    self.contents.draw_text(sw*1/4, dy, sw/5, WLH, text, 2)
    #---DEF---
    if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:def] != 100
      text = sprintf("%+d%%", @item.bonus_paramp[:def] - 100)
      enabled = true
    elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:def] != 0
      text = sprintf("%+d", @item.bonus_param[:def] + @item.def)
      enabled = true
    elsif @item.def != 0
      text = sprintf("%+d", @item.def)
      enabled = true
    else
      text = YE::REDUX::SHOP::NO_EQ_STAT
      enabled = false
    end
    self.contents.font.color = system_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(sw/2+24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_DEF)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    draw_icon(YE::REDUX::SHOP::ICON_DEF, sw/2, dy, enabled)
    self.contents.draw_text(sw*3/4, dy, sw/5, WLH, text, 2)
    #------
    dy += 24
    #---SPI---
    if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:spi] != 100
      text = sprintf("%+d%%", @item.bonus_paramp[:spi] - 100)
      enabled = true
    elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:spi] != 0
      text = sprintf("%+d", @item.bonus_param[:spi] + @item.spi)
      enabled = true
    elsif @item.spi != 0
      text = sprintf("%+d", @item.spi)
      enabled = true
    else
      text = YE::REDUX::SHOP::NO_EQ_STAT
      enabled = false
    end
    self.contents.font.color = system_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_SPI)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    draw_icon(YE::REDUX::SHOP::ICON_SPI, 0, dy, enabled)
    self.contents.draw_text(sw*1/4, dy, sw/5, WLH, text, 2)
    #---AGI---
    if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:agi] != 100
      text = sprintf("%+d%%", @item.bonus_paramp[:agi] - 100)
      enabled = true
    elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:agi] != 0
      text = sprintf("%+d", @item.bonus_param[:agi] + @item.agi)
      enabled = true
    elsif @item.agi != 0
      text = sprintf("%+d", @item.agi)
      enabled = true
    else
      text = YE::REDUX::SHOP::NO_EQ_STAT
      enabled = false
    end
    self.contents.font.color = system_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(sw/2+24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_AGI)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    draw_icon(YE::REDUX::SHOP::ICON_AGI, sw/2, dy, enabled)
    self.contents.draw_text(sw*3/4, dy, sw/5, WLH, text, 2)
    #------
    dy += 24
    #---HIT---
    if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:hit] != 100
      text = sprintf("%+d%%", @item.bonus_paramp[:hit] - 100)
      enabled = true
    elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:hit] != 0
      value = @item.bonus_param[:hit]
      value += @item.hit if @item.is_a?(RPG::Weapon)
      text = sprintf("%+d%%", value)
      enabled = true
    elsif @item.is_a?(RPG::Weapon) and @item.hit != 0
      text = sprintf("%+d%%", @item.hit)
      enabled = true
    else
      text = YE::REDUX::SHOP::NO_EQ_STAT
      enabled = false
    end
    self.contents.font.color = system_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_HIT)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    draw_icon(YE::REDUX::SHOP::ICON_HIT, 0, dy, enabled)
    self.contents.draw_text(sw*1/4, dy, sw/5, WLH, text, 2)
    #---EVA---
    if $imported["ExtraEquipmentOptions"] and @item.bonus_paramp[:eva] != 100
      text = sprintf("%+d%%", @item.bonus_paramp[:eva] - 100)
      enabled = true
    elsif $imported["ExtraEquipmentOptions"] and @item.bonus_param[:eva] != 0
      text = sprintf("%+d%%", @item.bonus_param[:eva] + @item.eva)
      enabled = true
    elsif @item.is_a?(RPG::Armor) and @item.eva != 0
      text = sprintf("%+d%%", @item.eva)
      enabled = true
    else
      text = YE::REDUX::SHOP::NO_EQ_STAT
      enabled = false
    end
    self.contents.font.color = system_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(sw/2+24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_EVA)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    draw_icon(YE::REDUX::SHOP::ICON_EVA, sw/2, dy, enabled)
    self.contents.draw_text(sw*3/4, dy, sw/5, WLH, text, 2)
    #------
    dy += 24
    #------
    if $imported["ExtraEquipmentOptions"] and YE::REDUX::SHOP::SHOW_CRI
      #---CRI---
      if @item.bonus_paramp[:cri] != 100
        text = sprintf("%+d%%", @item.bonus_paramp[:cri] - 100)
        enabled = true
      elsif @item.bonus_param[:cri] != 0
        text = sprintf("%+d%%", @item.bonus_param[:cri])
        enabled = true
      else
        text = YE::REDUX::SHOP::NO_EQ_STAT
        enabled = false
      end
      self.contents.font.color = system_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      self.contents.draw_text(24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_CRI)
      self.contents.font.color = normal_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      draw_icon(YE::REDUX::SHOP::ICON_CRI, 0, dy, enabled)
      self.contents.draw_text(sw*1/4, dy, sw/5, WLH, text, 2)
    end
    if $imported["ExtraEquipmentOptions"] and YE::REDUX::SHOP::SHOW_ODDS
      #---ODDS---
      if @item.bonus_paramp[:odds] != 100
        text = sprintf("%+d%%", @item.bonus_paramp[:odds] - 100)
        enabled = true
      elsif @item.bonus_param[:odds] != 0
        text = sprintf("%+d", @item.bonus_param[:odds])
        enabled = true
      else
        text = YE::REDUX::SHOP::NO_EQ_STAT
        enabled = false
      end
      self.contents.font.color = system_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      self.contents.draw_text(sw/2+24, dy, sw/2-24, WLH, YE::REDUX::SHOP::TEXT_ODDS)
      self.contents.font.color = normal_color
      self.contents.font.color.alpha = enabled ? 255 : 128
      draw_icon(YE::REDUX::SHOP::ICON_ODDS, sw/2, dy, enabled)
      self.contents.draw_text(sw*3/4, dy, sw/5, WLH, text, 2)
      #------
    end
    return if (dy + 48) >= (self.height - 32)
    #------ELEMENTS------
    drawn_elements = []
    for ele_id in YE::REDUX::SHOP::SHOWN_ELEMENTS
      break if @item.element_set == []
      if @item.element_set.include?(ele_id[0])
        drawn_elements.push(ele_id[0])
      end
    end
    if drawn_elements != [] # Draw Elements
      drawn_elements = drawn_elements.sort!
      dy += WLH
      if @item.is_a?(RPG::Weapon)
        text = YE::REDUX::SHOP::EQ_ELEMENT_W
      else
        text = YE::REDUX::SHOP::EQ_ELEMENT_A
      end
      self.contents.font.color = system_color
      self.contents.draw_text(0, dy, sw/2, WLH, text)
      dx = sw - (drawn_elements.size * 24)
      for ele_id in drawn_elements
        draw_icon(YE::REDUX::SHOP::SHOWN_ELEMENTS[ele_id], dx, dy)
        dx += 24
      end
    end
    return if (dy + 48) >= (self.height - 32)
    #------STATUS EFFECTS------
    drawn_states = []
    for state_id in @item.state_set
      state = $data_states[state_id]
      next if state == nil
      next if state.icon_index == 0
      drawn_states.push(state.icon_index)
    end
    if drawn_states != [] # Draw Elements
      dy += WLH
      if @item.is_a?(RPG::Weapon)
        text = YE::REDUX::SHOP::EQ_STATUS_W
      else
        text = YE::REDUX::SHOP::EQ_STATUS_A
      end
      self.contents.font.color = system_color
      self.contents.draw_text(0, dy, sw/2, WLH, text)
      dx = sw - (drawn_states.size * 24)
      for icon in drawn_states
        draw_icon(icon, dx, dy)
        dx += 24
      end
    end
  end
 
end # Window_ShopNumber

#===============================================================================
# Window_ShopStatus
#===============================================================================

class Window_ShopStatus < Window_Base
 
  #--------------------------------------------------------------------------
  # overwrite refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.size = Font.default_size
    return if @item == nil
    number = $game_party.item_number(@item)
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 200, WLH, YE::REDUX::SHOP::POSSESSION)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 200, WLH, number, 2)
    return if @item.is_a?(RPG::Item)
    for actor in $game_party.members
      dx = 4
      dy = WLH * (2 + actor.index * 2)
      draw_actor_parameter_change(actor, dx, dy)
    end
  end
 
  #--------------------------------------------------------------------------
  # overwrite draw_actor_parameter_change
  #--------------------------------------------------------------------------
  def draw_actor_parameter_change(actor, x, y)
    enabled = actor.equippable?(@item)
    sw = self.width - 32
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.font.size = YE::REDUX::SHOP::FONTSIZE
    cx = contents.text_size(YE::REDUX::SHOP::EQUIPPED).width
    self.contents.font.size = Font.default_size
    self.contents.draw_text(x, y, sw-cx-4, WLH, actor.name)
    self.contents.font.size = YE::REDUX::SHOP::FONTSIZE
    if @item.is_a?(RPG::Weapon)
      item1 = weaker_weapon(actor)
    elsif actor.two_swords_style and @item.kind == 0
      item1 = nil
    else
      if $imported["EquipExtension"]
        index = actor.equip_type.index(@item.kind)
        item1 = (index != nil ? actor.equips[1 + index] : nil)
      else
        item1 = actor.equips[1 + @item.kind]
      end
    end
    if item1 == @item
      self.contents.draw_text(x, y, sw-4, WLH, YE::REDUX::SHOP::EQUIPPED, 2)
      draw_item_name(item1, x, y + WLH, enabled)
      return
    end
    #-----
    if enabled
      dx = 0
      dy = y + WLH
      for i in 0..3
        case i
        when 0
          atk1 = item1 == nil ? 0 : item1.atk
          atk2 = @item == nil ? 0 : @item.atk
          change = atk2 - atk1
        when 1
          def1 = item1 == nil ? 0 : item1.def
          def2 = @item == nil ? 0 : @item.def
          change = def2 - def1
        when 2
          spi1 = item1 == nil ? 0 : item1.spi
          spi2 = @item == nil ? 0 : @item.spi
          change = spi2 - spi1
        when 3
          agi1 = item1 == nil ? 0 : item1.agi
          agi2 = @item == nil ? 0 : @item.agi
          change = agi2 - agi1
        end
        if change > 0
          draw_icon(YE::REDUX::SHOP::STAT_INCREASE[i], dx, dy)
        elsif change < 0
          draw_icon(YE::REDUX::SHOP::STAT_DECREASE[i], dx, dy)
        end
        if change != 0
          text = sprintf("%+d", change)
          self.contents.draw_text(dx+24, dy, sw/4-24, WLH, text, 0)
        end
        dx += sw/4
      end
    end
    #-----
  end
 
end # Window_ShopStatus

#===============================================================================
#
# END OF FILE
#
#===============================================================================

**
Rep:
Level 76
Just wondering, why did Yanfly dump the ReDux and password protect the blog?
On topic: Thanks, Modern Algebra! I needed that!

*
Rep:
Level 97
2014 Most Unsung Member2014 Best RPG Maker User - Engine2013 Best RPG Maker User (Scripting)2012 Most Mature Member2012 Favorite Staff Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best Use of Avatar and Signature Space2011 Best RPG Maker User (Scripting)2011 Most Mature Member2011 Favourite Staff Member2011 Best Veteran2010 Best RPG Maker User (Scripting)2010 Most Mature Member
Tanfly rewrote most of them as Yanfly Engine Melody

as for why YERD was dropped, I don't know. I think there was some talk of harassment of some sort.

****
Rep:
Level 83
Yanfly said it was because Yanfly doesn't want any one to use 'subpar' scripts when I asked. I am not sure if that is the true reason however.

**
Rep:
Level 76
"Subpar"? What's that?

***
Rep:
Level 76
~Crazy Lazy Workaholic~
"Subpar" being scripts that are not as good as they could be.

Yanfly probably had an epiphany on how to code things more concisely or organize the scripts better or something. So Yanfly also no longer follows the same logic used in the older scripts, so it's no longer as easy to update them to work with everything he's doing now without a complete rewrite first.

So as a secondary reason, it's to keep people from bugging him about errors found while using the older scripts most likely. Also, Yanfly has not posted Melody anywhere like he posted ReDux. Frankly I think it makes his scripts that much more impressive for having a good following of people who will refer people to the one location all the new scripts are. I think it's pretty impressive anyway.

~My Projects~

~ VocaloidVX ~ Second Life Project ~
~ RPG Maker Collective ~
To support this forum, it's the first place that will gets posted some updates of mine, check it out ^_~