Partagez
Aller en bas
Yoshi-Dragon
Yoshi-Dragon
Membre

Nombre de messages : 752
Age : 23
Localisation : J'ai peur.
Distinction : aucune
Date d'inscription : 19/06/2009
http://smashbrosbrawl.e-monsite.com

Magasin Amelioré Empty Magasin Amelioré

le Dim 24 Jan 2010 - 15:05
Auteur : Yanfly

Utilité :
Permet de voir TOUT les caracteristiques qui vont subir un changement
Permet d'avoir l'entiereté des details de l'objets acheter
(pas sur)Permet d'equiper tout de suite apres l'achat
Ect !

Screens :
Magasin Amelioré Shop_title
Magasin Amelioré Shop_howto1
Magasin Amelioré Shop_howto2
Magasin Amelioré Shop_howto3

Spoiler:
Code:
#===============================================================================
#
# 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
#
#===============================================================================
Shadow of Life
Shadow of Life
Membre

Nombre de messages : 870
Age : 22
Localisation : Joyeux. Comment ça c'est pas la bonne case ?
Distinction : Artiste de la flagornerie.
Porte parole du Ô grand Voilà voilà.
Président du club des masochistes du forum
Fake Gentleman

Soumis ^^
Date d'inscription : 13/09/2009

Magasin Amelioré Empty Re: Magasin Amelioré

le Dim 24 Jan 2010 - 15:59
Décidément, aujourd'hui, Yoshi', tu mérites un gros câlin !
Vient dans mes bras poilus !
Non, autrement, je penses que ... ce script va encore m'être utile !
Voila, voila !

Edit : Je vais même en faire la traduction française .
Je re - Edit avec le script en français.

Re-EDIT : Voici le script à placer au dessus de Main : ( version traduite par moi même sauf les commentaires de l'auteur )

Code:

#===============================================================================
# Traduit en français par Shadow of Life
#===============================================================================
# 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 = "Objet possédés"      # How many items in possession of party.
      EQUIPPED  = "Equipé"        # 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 = "Acheter"          # Title of purchasing information.
      COST_ICN = 205                  # Icon of total cost.
      COST_TXT = "Coût total"        # Text for total cost.
      ITEMSTAT = "Infos sur l'objet"          # Text for item data.
      WPN_STAT = "Infos sur l'arme"        # Text for weapon data.
      ARM_STAT = "Infos sur l'armure"        # 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 = "Effets HP"      # Text used for HP recovery.
      HP_HEAL_ICON = 128              # Icon used for HP recovery.
      MP_HEAL_TEXT = "Effets MP"      # Text used for MP recovery.
      MP_HEAL_ICON = 202              # Icon used for MP recovery.
      ERASE_STATE  = "Supprime l'état" # Text used for removing states.
      APPLY_STATE  = "Applique le statut" # Text used for applying states.
      PARAM_BOOST  = "Raises %s"      # Text used for parameter raising.
      SPELL_EFFECT = "Effets du sort"  # Text used for spell effect items.
      SPELL_DAMAGE = "%d base de dommage"    # Text used for spell damage.
      SPELL_HEAL  = "%d base de guérison"  # Text used for spell healing.
      NO_EQ_STAT  = "---"            # Text used when no equip
      EQ_ELEMENT_W = "Classe de l'objet"  # Text used to represent equip elements.
      EQ_ELEMENT_A = "Classe de l'armure"  # Text used to represent equip elements.
      EQ_STATUS_W  = "Élément de l'objet"  # Text used to represent equip states.
      EQ_STATUS_A  = "Élément de l'armure"  # 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
#
#===============================================================================

Voila, voila !
héhégassan
héhégassan
Membre

Nombre de messages : 59
Distinction : aucune
Date d'inscription : 25/07/2010

Magasin Amelioré Empty Re: Magasin Amelioré

le Jeu 27 Jan 2011 - 14:08
Heu s'il vous plait, je n'ai pas accèes aux images, je voudrais vous demander si ce script permet d'avoir des objets limités en magasin.
Maloume
Maloume
Membre

Nombre de messages : 623
Age : 25
Localisation : Marseille mon con
Distinction : aucune
Date d'inscription : 28/05/2010

Magasin Amelioré Empty Re: Magasin Amelioré

le Sam 29 Jan 2011 - 13:55
Il est super ce script ! Néanmoins, j'aimerai savoir si on peut changer la police d'écriture du magasin !
Contenu sponsorisé

Magasin Amelioré Empty Re: Magasin Amelioré

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum