878 lines
No EOL
34 KiB
Ruby
878 lines
No EOL
34 KiB
Ruby
#==============================================================================
|
||
# ■ RGSS3 白の魔様アイテム図鑑特徴欄変更 Ver1.04 by 星潟
|
||
#------------------------------------------------------------------------------
|
||
# このスクリプトを導入することで白の魔様で配布されている
|
||
# アイテム図鑑スクリプトで図鑑での特徴欄の記述を変更します。
|
||
#
|
||
# 既存の特徴記述を無効化し
|
||
# 装備品の場合は、本来のゲームシステムとしての「特徴」を
|
||
# アイテムの場合は、「使用効果」を表示するように変更します。
|
||
#
|
||
# 必ず、アイテム図鑑スクリプトよりも下側に導入して下さい。
|
||
#------------------------------------------------------------------------------
|
||
# 当方のパーティ能力詳細設定スクリプトにも対応しており
|
||
# その場合はパーティ能力の記述が若干変更されます。
|
||
#------------------------------------------------------------------------------
|
||
# Ver1.01 特定の値の場合、表示される数値が1ずれる不具合を修正しました。
|
||
#------------------------------------------------------------------------------
|
||
# Ver1.02 アイテムに対しては使用効果を表示するように変更しました。
|
||
# バージョンアップの際は設定変更を忘れずにお願いします。
|
||
# (特にANOTHER_ELEMENT等)
|
||
#------------------------------------------------------------------------------
|
||
# Ver1.03 割合回復時の表記異常を修正しました。
|
||
#------------------------------------------------------------------------------
|
||
# Ver1.04 装備固定/装備封印の表示時にエラーが発生する不具合を修正しました。
|
||
#==============================================================================
|
||
module IDS_FEATURES_EX
|
||
#------------------------------------------------------------------------------
|
||
# HP回復効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
HPR_NAME = "HP回復"
|
||
#------------------------------------------------------------------------------
|
||
# HP減少効果(HP回復効果がマイナス時)の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
HPD_NAME = "HP減少"
|
||
#------------------------------------------------------------------------------
|
||
# MP回復効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
MPR_NAME = "MP回復"
|
||
#------------------------------------------------------------------------------
|
||
# MP減少効果(MP回復効果がマイナス時)の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
MPD_NAME = "MP減少"
|
||
#------------------------------------------------------------------------------
|
||
# TP増加効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
TPR_NAME = "TP増加"
|
||
#------------------------------------------------------------------------------
|
||
# ステート付与効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
STA_NAME1 = "付与"
|
||
#------------------------------------------------------------------------------
|
||
# 通常攻撃依存ステート付与効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
STA_NAME2 = "攻撃依存"
|
||
#------------------------------------------------------------------------------
|
||
# ステート解除効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
STR_NAME = "解除"
|
||
#------------------------------------------------------------------------------
|
||
# 強化/弱体のターン表記に使う単語を指定
|
||
#------------------------------------------------------------------------------
|
||
TURN_NAME = "T"
|
||
#------------------------------------------------------------------------------
|
||
# 能力強化効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
BFA_NAME = "強化付与"
|
||
#------------------------------------------------------------------------------
|
||
# 能力弱体効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
DBA_NAME = "弱体付与"
|
||
#------------------------------------------------------------------------------
|
||
# 能力強化解除効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
BFR_NAME = "強化解除"
|
||
#------------------------------------------------------------------------------
|
||
# 能力弱体効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
DBR_NAME = "弱体解除"
|
||
#------------------------------------------------------------------------------
|
||
# 特殊効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
SPE_NAME = "逃走"
|
||
#------------------------------------------------------------------------------
|
||
# 成長効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
ADP_NAME = "成長"
|
||
#------------------------------------------------------------------------------
|
||
# スキル習得効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
SKL_NAME = "スキル習得"
|
||
#------------------------------------------------------------------------------
|
||
# 整腸効果の単語を指定
|
||
#------------------------------------------------------------------------------
|
||
CMN_NAME = "その他"
|
||
#------------------------------------------------------------------------------
|
||
# 属性有効度で属性名の後につく単語を指定
|
||
#------------------------------------------------------------------------------
|
||
EL_NAME0 = "耐性"
|
||
#------------------------------------------------------------------------------
|
||
# 属性有効度に対し、他の使い道を考慮して耐性の文字を付与しない場合は
|
||
# 下記配列に数字を加える。(「,」で区切る)
|
||
#------------------------------------------------------------------------------
|
||
ANOTHER_ELEMENT = [11,12,13]
|
||
#------------------------------------------------------------------------------
|
||
# ステート有効度でステート名の後につく単語を指定
|
||
#------------------------------------------------------------------------------
|
||
ST_NAME0 = "耐性"
|
||
#------------------------------------------------------------------------------
|
||
# 弱体有効度で弱体ステータス名の後につく単語を指定
|
||
#------------------------------------------------------------------------------
|
||
ST_NAME1a = "弱体耐性"
|
||
#------------------------------------------------------------------------------
|
||
# 最大HP弱体有効度名を別途指定(最大HPだと長いので短く)
|
||
#------------------------------------------------------------------------------
|
||
ST_NAME1b = "HP"
|
||
#------------------------------------------------------------------------------
|
||
# 最大MP弱体有効度名を別途指定(最大MPだと長いので短く)
|
||
#------------------------------------------------------------------------------
|
||
ST_NAME1c = "MP"
|
||
#------------------------------------------------------------------------------
|
||
# 命中率の名称
|
||
#------------------------------------------------------------------------------
|
||
XP_NAME0 = "命中率"
|
||
#------------------------------------------------------------------------------
|
||
# 回避率の名称
|
||
#------------------------------------------------------------------------------
|
||
XP_NAME1 = "回避率"
|
||
#------------------------------------------------------------------------------
|
||
# 会心率の名称
|
||
#------------------------------------------------------------------------------
|
||
XP_NAME2 = "会心率"
|
||
#------------------------------------------------------------------------------
|
||
# 会心回避率の名称
|
||
#------------------------------------------------------------------------------
|
||
XP_NAME3 = "会心回避率"
|
||
#------------------------------------------------------------------------------
|
||
# 魔法回避率の名称
|
||
#------------------------------------------------------------------------------
|
||
XP_NAME4 = "魔法回避率"
|
||
#------------------------------------------------------------------------------
|
||
# 魔法反射率の名称
|
||
#------------------------------------------------------------------------------
|
||
XP_NAME5 = "魔法反射率"
|
||
#------------------------------------------------------------------------------
|
||
# 反撃率の名称
|
||
#------------------------------------------------------------------------------
|
||
XP_NAME6 = "反撃率"
|
||
#------------------------------------------------------------------------------
|
||
# HP再生率の名称
|
||
#------------------------------------------------------------------------------
|
||
XP_NAME7 = "HP再生率"
|
||
#------------------------------------------------------------------------------
|
||
# MP再生率の名称
|
||
#------------------------------------------------------------------------------
|
||
XP_NAME8 = "MP再生率"
|
||
#------------------------------------------------------------------------------
|
||
# TP再生率の名称
|
||
#------------------------------------------------------------------------------
|
||
XP_NAME9 = "TP再生率"
|
||
#------------------------------------------------------------------------------
|
||
# 狙われ率の名称
|
||
#------------------------------------------------------------------------------
|
||
SP_NAME0 = "狙われ率"
|
||
#------------------------------------------------------------------------------
|
||
# 防御効果率の名称
|
||
#------------------------------------------------------------------------------
|
||
SP_NAME1 = "防御効果率"
|
||
#------------------------------------------------------------------------------
|
||
# 回復効果率の名称
|
||
#------------------------------------------------------------------------------
|
||
SP_NAME2 = "回復効果率"
|
||
#------------------------------------------------------------------------------
|
||
# 薬の知識の名称
|
||
#------------------------------------------------------------------------------
|
||
SP_NAME3 = "薬の知識"
|
||
#------------------------------------------------------------------------------
|
||
# MP消費率の名称
|
||
#------------------------------------------------------------------------------
|
||
SP_NAME4 = "MP消費率"
|
||
#------------------------------------------------------------------------------
|
||
# TPチャージ率の名称
|
||
#------------------------------------------------------------------------------
|
||
SP_NAME5 = "TPチャージ率"
|
||
#------------------------------------------------------------------------------
|
||
# 物理ダメージ率の名称
|
||
#------------------------------------------------------------------------------
|
||
SP_NAME6 = "物理ダメージ率"
|
||
#------------------------------------------------------------------------------
|
||
# 魔法ダメージ率の名称
|
||
#------------------------------------------------------------------------------
|
||
SP_NAME7 = "魔法ダメージ率"
|
||
#------------------------------------------------------------------------------
|
||
# 床ダメージ率の名称
|
||
#------------------------------------------------------------------------------
|
||
SP_NAME8 = "床ダメージ率"
|
||
#------------------------------------------------------------------------------
|
||
# 経験獲得率の名称
|
||
#------------------------------------------------------------------------------
|
||
SP_NAME9 = "経験獲得率"
|
||
#------------------------------------------------------------------------------
|
||
# 攻撃時属性の名称
|
||
#------------------------------------------------------------------------------
|
||
EP_NAME0 = "攻撃時属性"
|
||
#------------------------------------------------------------------------------
|
||
# 攻撃時ステートの記述
|
||
#------------------------------------------------------------------------------
|
||
#ステート名前の前に記述
|
||
EP_NAME1a = ""
|
||
#ステート名前の後に記述
|
||
EP_NAME1b = "付与"
|
||
#------------------------------------------------------------------------------
|
||
# 攻撃速度補正の名称
|
||
#------------------------------------------------------------------------------
|
||
EP_NAME2 = "攻撃速度補正"
|
||
#------------------------------------------------------------------------------
|
||
# 攻撃追加回数の名称
|
||
#------------------------------------------------------------------------------
|
||
EP_NAME3 = "攻撃追加回数"
|
||
#------------------------------------------------------------------------------
|
||
# スキルタイプ追加
|
||
#------------------------------------------------------------------------------
|
||
#追加するスキルタイプ名の前に記述
|
||
EP_NAME4a = ""
|
||
#追加するスキルタイプ名の後に記述
|
||
EP_NAME4b = "追加"
|
||
#------------------------------------------------------------------------------
|
||
# スキルタイプ封印
|
||
#------------------------------------------------------------------------------
|
||
#封印するスキルタイプ名の前に記述
|
||
EP_NAME5a = ""
|
||
#封印するスキルタイプ名の後に記述
|
||
EP_NAME5b = "封印"
|
||
#------------------------------------------------------------------------------
|
||
# スキル追加
|
||
#------------------------------------------------------------------------------
|
||
#追加するスキル名の前に記述
|
||
EP_NAME6a = ""
|
||
#追加するスキル名の後に記述
|
||
EP_NAME6b = "使用可"
|
||
#------------------------------------------------------------------------------
|
||
# スキル封印
|
||
#------------------------------------------------------------------------------
|
||
#封印するスキル名の前に記述
|
||
EP_NAME7a = ""
|
||
#封印するスキル名の後に記述
|
||
EP_NAME7b = "使用不可"
|
||
#------------------------------------------------------------------------------
|
||
# 武器タイプ装備
|
||
#------------------------------------------------------------------------------
|
||
EP_NAME8 = "武器タイプ"
|
||
#------------------------------------------------------------------------------
|
||
# 防具タイプ装備
|
||
#------------------------------------------------------------------------------
|
||
EP_NAME9 = "防具タイプ"
|
||
#------------------------------------------------------------------------------
|
||
# 装備固定の装備箇所名の後に記述
|
||
#------------------------------------------------------------------------------
|
||
EP_NAMEA = "固定"
|
||
#------------------------------------------------------------------------------
|
||
# 装備封印の装備箇所名の後に記述
|
||
#------------------------------------------------------------------------------
|
||
EP_NAMEB = "封印"
|
||
#------------------------------------------------------------------------------
|
||
# スロットタイプ
|
||
#------------------------------------------------------------------------------
|
||
EP_NAMEC = "二刀流"
|
||
#------------------------------------------------------------------------------
|
||
# 行動回数追加
|
||
#------------------------------------------------------------------------------
|
||
EP_NAMED = "行動回数追加"
|
||
#------------------------------------------------------------------------------
|
||
# 自動戦闘
|
||
#------------------------------------------------------------------------------
|
||
SF_NAME0 = "自動戦闘"
|
||
#------------------------------------------------------------------------------
|
||
# 防御
|
||
#------------------------------------------------------------------------------
|
||
SF_NAME1 = "自動防御"
|
||
#------------------------------------------------------------------------------
|
||
# 身代わり
|
||
#------------------------------------------------------------------------------
|
||
SF_NAME2 = "身代わり"
|
||
#------------------------------------------------------------------------------
|
||
# TP維持
|
||
#------------------------------------------------------------------------------
|
||
SF_NAME3 = "TP維持"
|
||
#------------------------------------------------------------------------------
|
||
# エンカウント半減
|
||
#------------------------------------------------------------------------------
|
||
#通常時
|
||
PT_NAME0a = "敵遭遇率半減"
|
||
#パーティ能力詳細設定時
|
||
PT_NAME0b = "敵遭遇率-50%"
|
||
#------------------------------------------------------------------------------
|
||
# エンカウント無効
|
||
#------------------------------------------------------------------------------
|
||
PT_NAME1 = "敵遭遇無効"
|
||
#------------------------------------------------------------------------------
|
||
# 不意打ち無効
|
||
#------------------------------------------------------------------------------
|
||
PT_NAME2 = "不意打ち無効"
|
||
#------------------------------------------------------------------------------
|
||
# 先制攻撃率アップ
|
||
#------------------------------------------------------------------------------
|
||
#通常時
|
||
PT_NAME3a = "先制攻撃率アップ"
|
||
#パーティ能力詳細設定時
|
||
PT_NAME3b = "先制攻撃率+400%"
|
||
#------------------------------------------------------------------------------
|
||
# 獲得金額二倍
|
||
#------------------------------------------------------------------------------
|
||
#通常時
|
||
PT_NAME4a = "獲得金額二倍"
|
||
#パーティ能力詳細設定時
|
||
PT_NAME4b = "獲得金額+200%"
|
||
#------------------------------------------------------------------------------
|
||
# ドロップ率二倍
|
||
#------------------------------------------------------------------------------
|
||
#通常時
|
||
PT_NAME5a = "ドロップ率二倍"
|
||
#パーティ能力詳細設定時
|
||
PT_NAME5b = "ドロップ率+200%"
|
||
#------------------------------------------------------------------------------
|
||
# パーティ能力詳細設定導入時用
|
||
#------------------------------------------------------------------------------
|
||
PT_NAME6 = "敵遭遇率"
|
||
PT_NAME7 = "先制攻撃率"
|
||
PT_NAME8 = "獲得金額"
|
||
PT_NAME9 = "ドロップ率"
|
||
#------------------------------------------------------------------------------
|
||
# 特徴欄の文字の大きさを指定(数字と特徴数によっては途中で途切れるので注意)
|
||
#------------------------------------------------------------------------------
|
||
FONTSIZE = 20
|
||
|
||
end
|
||
class Window_ItemDictionaryStatus < Window_Selectable
|
||
#------------------------------------------------------------------------------
|
||
# リフレッシュ
|
||
#------------------------------------------------------------------------------
|
||
alias refresh_features refresh
|
||
def refresh
|
||
|
||
#元の処理を実行
|
||
|
||
refresh_features
|
||
|
||
#表示する場合&アイテムが存在する場合だけ続行
|
||
|
||
return unless @print
|
||
return unless @item
|
||
|
||
#フォント・座標指定
|
||
|
||
width = self.contents.width / 2 - 8
|
||
font_size = IDS_FEATURES_EX::FONTSIZE
|
||
|
||
if @item.is_a?(RPG::Item)
|
||
y = WD_itemdictionary_layout::I_option_display_y - 10
|
||
elsif @item.is_a?(RPG::Weapon)
|
||
y = WD_itemdictionary_layout::W_option_display_y - 10
|
||
elsif @item.is_a?(RPG::Armor)
|
||
y = WD_itemdictionary_layout::A_option_display_y - 10
|
||
end
|
||
|
||
#元から記述されている内容を消す
|
||
|
||
self.contents.clear_rect(0, y, self.contents.width, self.contents.height - y)
|
||
|
||
#種類別の描写実行
|
||
|
||
if @item.is_a?(RPG::Item)
|
||
items_features_draw(y, width, font_size)
|
||
else
|
||
equips_features_draw(y, width, font_size)
|
||
end
|
||
end
|
||
def items_features_draw(y, width, font_size)
|
||
|
||
#X座標補正を設定
|
||
|
||
x_data = 0
|
||
|
||
#フォントサイズの取得
|
||
|
||
contents.font.size = font_size
|
||
|
||
#行数を設定
|
||
|
||
i = 0
|
||
|
||
#効果別に処理
|
||
@item.effects.each do |e|
|
||
cd = e.code#コード
|
||
dd = e.data_id#データのID
|
||
vd1 = e.value1#値1
|
||
vd2 = e.value2#値2
|
||
ex_name = ""#値が複数ある場合の処理用1
|
||
ex_point = 0#値が複数ある場合の処理用2
|
||
#コード別に処理
|
||
case cd
|
||
when 11#HP回復
|
||
|
||
#無意味な場合は処理しない
|
||
|
||
next if vd1 == 0 && vd2 == 0
|
||
|
||
if vd1 != 0 && vd2 != 0
|
||
name = vd1 > 0 ? IDS_FEATURES_EX::HPR_NAME : IDS_FEATURES_EX::HPD_NAME
|
||
point = (vd1 * 100).to_i.to_s + "%"
|
||
ex_name = vd2 > 0 ? IDS_FEATURES_EX::HPR_NAME : IDS_FEATURES_EX::HPD_NAME
|
||
ex_point = vd2.to_i.to_s
|
||
elsif vd1 != 0
|
||
name = vd1 > 0 ? IDS_FEATURES_EX::HPR_NAME : IDS_FEATURES_EX::HPD_NAME
|
||
point = (vd1 * 100).to_i.to_s + "%"
|
||
else
|
||
name = vd2 > 0 ? IDS_FEATURES_EX::HPR_NAME : IDS_FEATURES_EX::HPD_NAME
|
||
point = vd2.to_i.to_s
|
||
end
|
||
type = 0
|
||
|
||
when 12
|
||
|
||
#無意味な場合は処理しない
|
||
|
||
next if vd1 == 0 && vd2 == 0
|
||
|
||
if vd1 != 0 && vd2 != 0
|
||
name = vd1 > 0 ? IDS_FEATURES_EX::MPR_NAME : IDS_FEATURES_EX::MPD_NAME
|
||
point = (vd1 * 100).to_i.to_s + "%"
|
||
ex_name = vd2 > 0 ? IDS_FEATURES_EX::MPR_NAME : IDS_FEATURES_EX::MPD_NAME
|
||
ex_point = vd2.to_i.to_s
|
||
elsif vd1 != 0
|
||
name = vd1 > 0 ? IDS_FEATURES_EX::MPR_NAME : IDS_FEATURES_EX::MPD_NAME
|
||
point = (vd1 * 100).to_i.to_s + "%"
|
||
else
|
||
name = vd2 > 0 ? IDS_FEATURES_EX::MPR_NAME : IDS_FEATURES_EX::MPD_NAME
|
||
point = vd2.to_i.to_s
|
||
end
|
||
type = 0
|
||
|
||
when 13
|
||
|
||
#無意味な場合は処理しない
|
||
|
||
next if vd1 == 0
|
||
|
||
name = IDS_FEATURES_EX::TPR_NAME
|
||
point = vd1.to_i.to_s
|
||
type = 0
|
||
|
||
when 21
|
||
|
||
next if vd1 == 0
|
||
name = dd != 0 ? $data_states[dd].name + IDS_FEATURES_EX::STA_NAME1 : IDS_FEATURES_EX::STA_NAME2 + IDS_FEATURES_EX::STA_NAME1
|
||
point = (vd1 * 100).to_i.to_s + "%"
|
||
type = 0
|
||
|
||
when 22
|
||
|
||
next if vd1 == 0
|
||
name = $data_states[dd].name + IDS_FEATURES_EX::STR_NAME
|
||
point = (vd1 * 100).to_i.to_s + "%"
|
||
type = 0
|
||
|
||
when 31
|
||
|
||
next if vd1 == 0
|
||
case dd
|
||
when 0#最大HP
|
||
name = IDS_FEATURES_EX::ST_NAME1b
|
||
when 1#最大MP
|
||
name = IDS_FEATURES_EX::ST_NAME1c
|
||
else#その他
|
||
name = Vocab.param(dd)
|
||
end
|
||
name = name + IDS_FEATURES_EX::BFA_NAME
|
||
point = vd1.to_i.to_s + IDS_FEATURES_EX::TURN_NAME
|
||
type = 0
|
||
|
||
when 32
|
||
|
||
next if vd1 == 0
|
||
case dd
|
||
when 0#最大HP
|
||
name = IDS_FEATURES_EX::ST_NAME1b
|
||
when 1#最大MP
|
||
name = IDS_FEATURES_EX::ST_NAME1c
|
||
else#その他
|
||
name = Vocab.param(dd)
|
||
end
|
||
name = name + IDS_FEATURES_EX::DBA_NAME
|
||
point = vd1.to_i.to_s + IDS_FEATURES_EX::TURN_NAME
|
||
type = 0
|
||
|
||
when 33
|
||
|
||
case dd
|
||
when 0#最大HP
|
||
name = IDS_FEATURES_EX::ST_NAME1b
|
||
when 1#最大MP
|
||
name = IDS_FEATURES_EX::ST_NAME1c
|
||
else#その他
|
||
name = Vocab.param(dd)
|
||
end
|
||
name = name + IDS_FEATURES_EX::BFR_NAME
|
||
type = 1
|
||
|
||
when 34
|
||
|
||
case dd
|
||
when 0#最大HP
|
||
name = IDS_FEATURES_EX::ST_NAME1b
|
||
when 1#最大MP
|
||
name = IDS_FEATURES_EX::ST_NAME1c
|
||
else#その他
|
||
name = Vocab.param(dd)
|
||
end
|
||
name = name + IDS_FEATURES_EX::DBR_NAME
|
||
type = 1
|
||
|
||
when 41
|
||
name = IDS_FEATURES_EX::SPE_NAME
|
||
type = 1
|
||
when 42
|
||
case dd
|
||
when 0#最大HP
|
||
name = IDS_FEATURES_EX::ST_NAME1b
|
||
when 1#最大MP
|
||
name = IDS_FEATURES_EX::ST_NAME1c
|
||
else#その他
|
||
name = Vocab.param(dd)
|
||
end
|
||
name = name + IDS_FEATURES_EX::ADP_NAME
|
||
point = "+" + vd1.to_i.to_s
|
||
type = 0
|
||
when 43
|
||
name = IDS_FEATURES_EX::SKL_NAME
|
||
type = 1
|
||
when 44
|
||
name = IDS_FEATURES_EX::CMN_NAME
|
||
type = 1
|
||
else
|
||
next
|
||
end
|
||
if type == 0
|
||
text = name + point.to_s
|
||
else
|
||
text = name
|
||
end
|
||
self.contents.draw_text(x_data, y + font_size * i, width, font_size, text, 0)
|
||
if x_data == 0
|
||
x_data = self.contents.width / 2
|
||
else
|
||
i += 1
|
||
x_data = 0
|
||
end
|
||
if ex_name != ""
|
||
if type == 0
|
||
text = ex_name + ex_point.to_s
|
||
else
|
||
text = ex_name
|
||
end
|
||
self.contents.draw_text(x_data, y + font_size * i, width, font_size, text, 0)
|
||
if x_data == 0
|
||
x_data = self.contents.width / 2
|
||
else
|
||
i += 1
|
||
x_data = 0
|
||
end
|
||
end
|
||
end
|
||
end
|
||
def equips_features_draw(y, width, font_size)
|
||
|
||
#X座標補正を設定
|
||
|
||
x_data = 0
|
||
|
||
#フォントサイズの取得
|
||
|
||
contents.font.size = font_size
|
||
|
||
#行数を設定
|
||
|
||
i = 0
|
||
|
||
#特徴別に処理
|
||
@item.features.each do |f|
|
||
cd = f.code#コード
|
||
dd = f.data_id#データのID
|
||
vd = f.value#値
|
||
#コード別に処理
|
||
case cd
|
||
when 11# 属性有効度
|
||
|
||
#初期値の場合は処理しない
|
||
|
||
next if vd == 1.0
|
||
|
||
if IDS_FEATURES_EX::ANOTHER_ELEMENT.include?(dd)#「耐性」の文字を記述しない場合
|
||
name = $data_system.elements[dd]
|
||
|
||
#1より大きい場合、+をつける。
|
||
|
||
point = (vd > 1 ? "+" : "") + ((vd * 100) - 100).round.to_s + "%"
|
||
else#「耐性」の文字を記述する場合
|
||
name = $data_system.elements[dd] + IDS_FEATURES_EX::EL_NAME0
|
||
point = (vd < 1 ? "+" : "") + (100 - (vd * 100)).round.to_s + "%"
|
||
end
|
||
type = 0
|
||
when 12# 弱体有効度
|
||
|
||
#初期値の場合は処理しない
|
||
|
||
next if vd == 1.0
|
||
|
||
case dd
|
||
when 0#最大HP
|
||
name = IDS_FEATURES_EX::ST_NAME1b
|
||
when 1#最大MP
|
||
name = IDS_FEATURES_EX::ST_NAME1c
|
||
else#その他
|
||
name = Vocab.param(dd)
|
||
end
|
||
name = name + IDS_FEATURES_EX::ST_NAME1a
|
||
point = (vd < 1 ? "+" : "") + (100 - (vd * 100)).round.to_s + "%"
|
||
type = 0
|
||
when 13# ステート有効度
|
||
|
||
#初期値の場合は処理しない
|
||
|
||
next if vd == 1.0
|
||
|
||
name = $data_states[dd].name + IDS_FEATURES_EX::ST_NAME0
|
||
point = (vd < 1 ? "+" : "") + (100 - (vd * 100)).round.to_s + "%"
|
||
type = 0
|
||
when 14# ステート無効化
|
||
name = $data_states[dd].name + "無効"
|
||
type = 1
|
||
when 21# 通常能力値
|
||
|
||
#初期値の場合は処理しない
|
||
|
||
next if vd == 1.0
|
||
|
||
name = Vocab.param(dd)
|
||
point = (vd < 1 ? "" : "+") + ((vd * 100) - 100).round.to_s + "%"
|
||
type = 0
|
||
when 22# 追加能力値
|
||
|
||
#初期値の場合は処理しない
|
||
|
||
next if vd == 0
|
||
|
||
case dd
|
||
when 0
|
||
name = IDS_FEATURES_EX::XP_NAME0
|
||
when 1
|
||
name = IDS_FEATURES_EX::XP_NAME1
|
||
when 2
|
||
name = IDS_FEATURES_EX::XP_NAME2
|
||
when 3
|
||
name = IDS_FEATURES_EX::XP_NAME3
|
||
when 4
|
||
name = IDS_FEATURES_EX::XP_NAME4
|
||
when 5
|
||
name = IDS_FEATURES_EX::XP_NAME5
|
||
when 6
|
||
name = IDS_FEATURES_EX::XP_NAME6
|
||
when 7
|
||
name = IDS_FEATURES_EX::XP_NAME7
|
||
when 8
|
||
name = IDS_FEATURES_EX::XP_NAME8
|
||
when 9
|
||
name = IDS_FEATURES_EX::XP_NAME9
|
||
end
|
||
point = (vd < 0 ? "" : "+") + (vd * 100).round.to_s + "%"
|
||
type = 0
|
||
when 23# 特殊能力値
|
||
|
||
#初期値の場合は処理しない
|
||
|
||
next if vd == 1.0
|
||
|
||
case dd
|
||
when 0
|
||
name = IDS_FEATURES_EX::SP_NAME0
|
||
when 1
|
||
name = IDS_FEATURES_EX::SP_NAME1
|
||
when 2
|
||
name = IDS_FEATURES_EX::SP_NAME2
|
||
when 3
|
||
name = IDS_FEATURES_EX::SP_NAME3
|
||
when 4
|
||
name = IDS_FEATURES_EX::SP_NAME4
|
||
when 5
|
||
name = IDS_FEATURES_EX::SP_NAME5
|
||
when 6
|
||
name = IDS_FEATURES_EX::SP_NAME6
|
||
when 7
|
||
name = IDS_FEATURES_EX::SP_NAME7
|
||
when 8
|
||
name = IDS_FEATURES_EX::SP_NAME8
|
||
when 9
|
||
name = IDS_FEATURES_EX::SP_NAME9
|
||
end
|
||
point = (vd < 1 ? "" : "+") + ((vd * 100) - 100).round.to_s + "%"
|
||
type = 0
|
||
when 31# 攻撃時属性
|
||
name = IDS_FEATURES_EX::EP_NAME0 + $data_system.elements[dd]
|
||
type = 1
|
||
when 32# 攻撃時ステート
|
||
|
||
#初期値の場合は処理しない
|
||
|
||
next if vd == 0
|
||
|
||
name = IDS_FEATURES_EX::EP_NAME1a + $data_states[dd].name + IDS_FEATURES_EX::EP_NAME1b
|
||
point = ((vd * 100)).round.to_s + "%"
|
||
type = 0
|
||
when 33# 攻撃速度補正
|
||
|
||
#初期値の場合は処理しない
|
||
|
||
next if vd == 0
|
||
|
||
name = IDS_FEATURES_EX::EP_NAME2
|
||
point = vd.to_i
|
||
type = 0
|
||
when 34# 攻撃追加回数
|
||
|
||
#初期値の場合は処理しない
|
||
|
||
next if vd == 0
|
||
|
||
name = IDS_FEATURES_EX::EP_NAME3
|
||
point = vd.to_i
|
||
type = 0
|
||
when 41# スキルタイプ追加
|
||
name = IDS_FEATURES_EX::EP_NAME4a + $data_system.skill_types[dd] + IDS_FEATURES_EX::EP_NAME4b
|
||
type = 1
|
||
when 42# スキルタイプ封印
|
||
name = IDS_FEATURES_EX::EP_NAME5a + $data_system.skill_types[dd] + IDS_FEATURES_EX::EP_NAME5b
|
||
type = 1
|
||
when 43# スキル追加
|
||
name = IDS_FEATURES_EX::EP_NAME6a + $data_skills[dd].name + IDS_FEATURES_EX::EP_NAME6b
|
||
type = 1
|
||
when 44# スキル封印
|
||
name = IDS_FEATURES_EX::EP_NAME7a + $data_skills[dd].name + IDS_FEATURES_EX::EP_NAME7b
|
||
type = 1
|
||
when 51# 武器タイプ装備
|
||
name = IDS_FEATURES_EX::EP_NAME8 + $data_system.weapon_types[dd]
|
||
type = 1
|
||
when 52# 防具タイプ装備
|
||
name = IDS_FEATURES_EX::EP_NAME9 + $data_system.armor_types[dd]
|
||
type = 1
|
||
when 53# 装備固定
|
||
name = $data_system.terms.etypes[dd] + IDS_FEATURES_EX::EP_NAMEA
|
||
type = 1
|
||
when 54# 装備封印
|
||
name = $data_system.terms.etypes[dd] + IDS_FEATURES_EX::EP_NAMEB
|
||
type = 1
|
||
when 55# スロットタイプ
|
||
name = IDS_FEATURES_EX::EP_NAMEC
|
||
type = 1
|
||
when 61# 行動回数追加
|
||
|
||
#初期値の場合は処理しない
|
||
|
||
next if vd == 0
|
||
|
||
name = IDS_FEATURES_EX::EP_NAMED
|
||
point = (vd * 100).round.to_s + "%"
|
||
type = 0
|
||
when 62# 特殊フラグ
|
||
case dd
|
||
when 0#自動戦闘
|
||
name = IDS_FEATURES_EX::SF_NAME0
|
||
type = 1
|
||
when 1#自動防御
|
||
name = IDS_FEATURES_EX::SF_NAME1
|
||
type = 1
|
||
when 2#身代わり
|
||
name = IDS_FEATURES_EX::SF_NAME2
|
||
type = 1
|
||
when 3#TP持ち越し
|
||
name = IDS_FEATURES_EX::SF_NAME3
|
||
type = 1
|
||
end
|
||
when 63# 消滅エフェクト
|
||
when 64# パーティ能力
|
||
case dd
|
||
when 0#エンカウント半減
|
||
name = (defined? $game_party.extra_pta(0)) ? IDS_FEATURES_EX::PT_NAME0b : IDS_FEATURES_EX::PT_NAME0a
|
||
type = 1
|
||
when 1#エンカウント無効
|
||
name = IDS_FEATURES_EX::PT_NAME1
|
||
type = 1
|
||
when 2#不意打ち無効
|
||
name = IDS_FEATURES_EX::PT_NAME2
|
||
type = 1
|
||
when 3#先制攻撃率アップ
|
||
name = (defined? $game_party.extra_pta(0)) ? IDS_FEATURES_EX::PT_NAME3b : IDS_FEATURES_EX::PT_NAME3a
|
||
type = 1
|
||
when 4#獲得金額二倍
|
||
name = (defined? $game_party.extra_pta(0)) ? IDS_FEATURES_EX::PT_NAME4b : IDS_FEATURES_EX::PT_NAME4a
|
||
type = 1
|
||
when 5#アイテム入手率二倍
|
||
name = (defined? $game_party.extra_pta(0)) ? IDS_FEATURES_EX::PT_NAME5b : IDS_FEATURES_EX::PT_NAME5a
|
||
type = 1
|
||
end
|
||
else
|
||
next
|
||
end
|
||
if type == 0
|
||
text = name + point.to_s
|
||
else
|
||
text = name
|
||
end
|
||
self.contents.draw_text(x_data, y + font_size * i, width, font_size, text, 0)
|
||
if x_data == 0
|
||
x_data = self.contents.width / 2
|
||
else
|
||
i += 1
|
||
x_data = 0
|
||
end
|
||
end
|
||
#パーティ能力詳細設定導入時のみ処理続行
|
||
if defined? $game_party.extra_pta(0)
|
||
@item.note.each_line do |line|
|
||
memo = line.scan(/<#{DETAIL_PTA::WORD1}[::](\S+)>/).flatten
|
||
if memo != nil && !memo.empty?
|
||
text = IDS_FEATURES_EX::PT_NAME6 + (memo[0].to_i > 0 ? "+" + memo[0] : memo[0]) + "%"
|
||
self.contents.draw_text(x_data, y + font_size * i, width, font_size, text, 0)
|
||
if x_data == 0
|
||
x_data = self.contents.width / 2
|
||
else
|
||
i += 1
|
||
x_data = 0
|
||
end
|
||
end
|
||
memo = line.scan(/<#{DETAIL_PTA::WORD2}[::](\S+)>/).flatten
|
||
if memo != nil && !memo.empty?
|
||
text = IDS_FEATURES_EX::PT_NAME7 + (memo[0].to_i > 0 ? "+" + memo[0] : memo[0]) + "%"
|
||
self.contents.draw_text(x_data, y + font_size * i, width, font_size, text, 0)
|
||
if x_data == 0
|
||
x_data = self.contents.width / 2
|
||
else
|
||
i += 1
|
||
x_data = 0
|
||
end
|
||
end
|
||
memo = line.scan(/<#{DETAIL_PTA::WORD3}[::](\S+)>/).flatten
|
||
if memo != nil && !memo.empty?
|
||
text = IDS_FEATURES_EX::PT_NAME8 + (memo[0].to_i > 0 ? "+" + memo[0] : memo[0]) + "%"
|
||
self.contents.draw_text(x_data, y + font_size * i, width, font_size, text, 0)
|
||
if x_data == 0
|
||
x_data = self.contents.width / 2
|
||
else
|
||
i += 1
|
||
x_data = 0
|
||
end
|
||
end
|
||
memo = line.scan(/<#{DETAIL_PTA::WORD4}[::](\S+)>/).flatten
|
||
if memo != nil && !memo.empty?
|
||
text = IDS_FEATURES_EX::PT_NAME9 + (memo[0].to_i > 0 ? "+" + memo[0] : memo[0]) + "%"
|
||
self.contents.draw_text(x_data, y + font_size * i, width, font_size, text, 0)
|
||
if x_data == 0
|
||
x_data = self.contents.width / 2
|
||
else
|
||
i += 1
|
||
x_data = 0
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end
|
||
end |