1.「結果」見出しの中央寄せから左寄せへの変更
2.総経験値の描画
3.結果別経験値の描画
4.levelup表記の削除
1.の影響でaliasが使えなくなりましたけど流石にスペース上仕方がないかな
違和感がある気がしますけど慣れですかね
コード: 全て選択
#==============================================================================
# ■ 零の軌跡風料理システム拡張
#------------------------------------------------------------------------------
# 「零の軌跡風料理システム」よりも下のセクションに追加してください
#==============================================================================
module RENNE::COOKING
#--------------------------------------------------------------------------
# ◆ 設定項目
#--------------------------------------------------------------------------
# ITEMS[レシピID][:exp] = [大成功経験値, 成功経験値, 予想外経験値]
ITEMS[2][:exp] = [99999, 500, 200]
ITEMS[7][:exp] = [128, 64, 8]
STR_22 = "#{STR_14}【経験値】"
STR_23 = "経験値+%dexp"
STR_24 = "%dexp×%d"
module_function
#--------------------------------------------------------------------------
# ● レシピに対応した獲得経験値の取得
#--------------------------------------------------------------------------
def exp(recepe_id, idx)
ITEMS[recepe_id][:exp] ? (ITEMS[recepe_id][:exp][idx] || 0) : 0
end
end
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# ○ 料理開始
#--------------------------------------------------------------------------
alias :_old_go_cooking :go_cooking
def go_cooking(actor, item, number)
_old_go_cooking(actor, item, number)
gain_cooking_exp #
end
#--------------------------------------------------------------------------
# ● 料理による経験値獲得
#--------------------------------------------------------------------------
def gain_cooking_exp
actor = @cooking[:a]
exp_total = 0
@cooking[:oc].each_with_index do |item, i|
exp_total += RENNE::COOKING::exp(@cooking[:i].id, i) * item.size
end
actor.change_exp(actor.exp + exp_total, false)
end
end
class Window_Cooking_Member_Info < Window_Base
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(mw_w)
super(mw_w + 32, 48, 200 + 80, 144)
hide
draw_title
end
#--------------------------------------------------------------------------
# ○ タイトルの描画
#--------------------------------------------------------------------------
def draw_title
draw_text(0, 0, contents.width, 24, STR_22, 2)
draw_horz_line(24)
end
#--------------------------------------------------------------------------
# ○ リフレッシュ
#--------------------------------------------------------------------------
alias :_old_refresh :refresh
def refresh(actor)
_old_refresh(actor)
draw_gain_exp
end
#--------------------------------------------------------------------------
# ○ 成功率の描画
#--------------------------------------------------------------------------
def draw_suc_rate
[STR_8, STR_9, STR_10].each_with_index do |str, idx|
draw_text(0, (idx+2)*24, 104, 24, str)
draw_text(100, (idx+2)*24, 56, 24, suc_rate(idx).to_s + "%",2)
end
end
#--------------------------------------------------------------------------
# ● 取得経験値の描画
#--------------------------------------------------------------------------
def draw_gain_exp
3.times do |idx|
draw_text(160, (idx+2)*24, 88, 24, "#{exp(c_item.id, idx)}exp", 2)
end
end
end
class Window_Cooking_Result < Window_Base
#--------------------------------------------------------------------------
# ○ リザルトの描画
#--------------------------------------------------------------------------
def draw_result
# 左寄せに変更(この仕様変更のせいでaliasが使えない)
draw_text(0, 0, contents.width, 24, STR_15)
draw_horz_line(24)
a1 = [4,9,14,19]
a2 = [STR_8, STR_9, STR_10, STR_17]
3.times do |i|
draw_text(0, a1[i] * 12, contents.width, 24, STR_18 + a2[i])
if @result[i][0]
draw_item_name(@result[i][0], 0, (a1[i]+2)*12)
draw_text(196, (a1[i]+2)*12, 56, 24, "#{STR_16} #{@result[i][1]}")
end
end
# 失敗アイテムは複数の種類があるので別に描画する
draw_text(0, a1[3] * 12, contents.width, 24, STR_18 + a2[3])
draw_fail_item(a1[3] * 12 + 24) if !@fail.empty?
# 取得経験値の描画
exps = []
$game_party.cooking[:oc].each_with_index{ |item, i|
exps[i] = {:exp => exp($game_party.cooking[:i].id, i), :num => item.size}
}
exp_sum = exps.inject(0){|r, exp| r + exp[:exp] * exp[:num]}
contents.font.size = 18
draw_text(0, 0, contents.width, 24, sprintf(STR_23, exp_sum), 2)
3.times do |i|
draw_text(0, a1[i] * 12, contents.width, 24,
sprintf(STR_24, exps[i][:exp], exps[i][:num]), 2)
end
reset_font_settings
end
end