Magasin Amelioré
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 :
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 :
- 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 LifeMembre
- Nombre de messages : 870
Age : 28
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
Re: Magasin Amelioré
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 )
Voila, voila !
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égassanMembre
- Nombre de messages : 59
Distinction : aucune
Date d'inscription : 25/07/2010
Re: Magasin Amelioré
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.
- MaloumeMembre
- Nombre de messages : 623
Age : 30
Localisation : Marseille mon con
Distinction : aucune
Date d'inscription : 28/05/2010
Re: Magasin Amelioré
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 !
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum