#============================================================================== #===== 合成スキル表示スクリプト VX===== #===== 最終更新 2011/4/11 ===== #===== 内容 変数を利用しての合成スキルを表示します。 ===== #===== 作者 RRR ===== http://oniwakachildren.web.fc2.com/index.html #============================================================================== # ★ 使い方 ★ # イベントコマンド「スクリプト」に # $scene = Scene_Synthesis_Skill.new # と記述し使用してください。 # ★ 説明 ★ # 変数1〜9の値を順番に表示しているだけです。 # 変数10〜18に、それぞれのスキルランクキャップを代入出来ます。 # これにより、キャップに達したスキルランクを青字で表示することが可能です。 # (変数1のスキルランクキャップは10を使用。 # (変数2のスキルランクキャップは11を使用。 # (変数3のスキルランクキャップは12を使用。。。。以下同様 # ◆ 例 (デフォルト状態で説明)◆ # 釣りスキルのスキルランクキャップは変数10を使用しています。 # 釣りスキルが10になった時、変数10が0だった場合、 # スキルランクを「素人(青字)」と表示します。 # 変数10が1になった時、スキルランクを「素人(白字)」と表示します。 # 変数10が1の時、釣りスキルが20になったら、「見習い(青字)」と表示します。 # 変数10が2になった時、スキルランクを「見習い(白字)」と表示します。以下同様。 # ● 注意 ● # 変数10が0でも、増やそうと思えばいくらでも釣りスキルを増やすことが出来ます。 # あくまで”スキルランクがキャップしたかのように見せている”だけなので、 # その辺はうまく使ってください。 #============================================================================== # ■ Vocab #============================================================================== module Vocab SS1 = "釣り" SS2 = "木工" SS3 = "鍛冶" SS4 = "彫金" SS5 = "裁縫" SS6 = "革細工" SS7 = "骨細工" SS8 = "錬金術" SS9 = "調理" # 増やしたい場合はここにSS10,SS11...と追加してください。 # 79行目以降も同じように追加してください。 # $game_variables[]の[]の中の数字を変える事で、対応する変数を変更できます。 # ↑デフォルトでは1〜9の変数を使用しています。 # 項目を増やしたり減らしたりした場合、 # 63行目の値を変更してウィンドウの大きさを調整してください。 # 左から、表示するウィンドウのx座標、y座標、横への大きさ、縦への大きさです。 end #============================================================================== # □ Window_Synthesis_Skill #------------------------------------------------------------------------------ #  合成スキルを表示するウィンドウです。 #============================================================================== class Window_Synthesis_Skill < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(144, 84, 256, 248) #ウィンドウの表示位置&大きさ self.openness = 0 # ウィンドウを閉じる refresh end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear draw_synthesis_skill(0, 0) end #-------------------------------------------------------------------------- # ● 合成スキルの描画 # x : 描画先 X 座標 # y : 描画先 Y 座標 #-------------------------------------------------------------------------- def draw_synthesis_skill(x, y) sss1 = $game_variables[1] # 変数1を使っている。 sss2 = $game_variables[2] # 変数2を使っている。。。以下同様。 sss3 = $game_variables[3] sss4 = $game_variables[4] sss5 = $game_variables[5] sss6 = $game_variables[6] sss7 = $game_variables[7] sss8 = $game_variables[8] sss9 = $game_variables[9] for i in 1..9 # iに1〜9を代入し、9回繰り返す(勘) # このforは、162行目のendで括った中の処理を繰り返します。 if $game_variables[i] >= 0 and $game_variables[i] < 11 # ゲーム変数 i が0以上11未満のとき srankに「素人」と代入する。↓ # ↑(このiは90行目の繰り返された回数によって変化) ↓ srank = "素人" # srankに「素人」と代入された行         ← elsif $game_variables[i] >= 11 and $game_variables[i] < 21 srank = "見習い" elsif $game_variables[i] >= 21 and $game_variables[i] < 31 srank = "徒弟" elsif $game_variables[i] >= 31 and $game_variables[i] < 41 srank = "下級職人" elsif $game_variables[i] >= 41 and $game_variables[i] < 51 srank = "名取" elsif $game_variables[i] >= 51 and $game_variables[i] < 61 srank = "目録" elsif $game_variables[i] >= 61 and $game_variables[i] < 71 srank = "印可" elsif $game_variables[i] >= 71 and $game_variables[i] < 81 srank = "高弟" elsif $game_variables[i] >= 81 and $game_variables[i] < 91 srank = "目録" elsif $game_variables[i] >= 91 and $game_variables[i] <= 100 srank = "師範" end dy = y + WLH * (i - 1) # 繰り返されるごとにiが増えるので、 # 表示されるy座標をずらす。 sc = i + 9 # scはスキルランクキャップの変数 # もし繰り返しが3回目だとiが3なので、3+9で12。 # つまり変数12の値を↓で参照している。 if $game_variables[sc] == 0 and $game_variables[i] == 10 # 変数sc(スキルランクキャップ)の値が0 かつ # 変数i(合成スキル)の値が10なら、 # フォントカラーをsystem_colorにして # srankに代入された文字を表示する。  self.contents.font.color = system_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) elsif $game_variables[sc] == 1 and $game_variables[i] == 20 self.contents.font.color = system_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) elsif $game_variables[sc] == 2 and $game_variables[i] == 30 self.contents.font.color = system_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) elsif $game_variables[sc] == 3 and $game_variables[i] == 40 self.contents.font.color = system_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) elsif $game_variables[sc] == 4 and $game_variables[i] == 50 self.contents.font.color = system_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) elsif $game_variables[sc] == 5 and $game_variables[i] == 60 self.contents.font.color = system_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) elsif $game_variables[sc] == 6 and $game_variables[i] == 70 self.contents.font.color = system_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) elsif $game_variables[sc] == 7 and $game_variables[i] == 80 self.contents.font.color = system_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) elsif $game_variables[sc] == 8 and $game_variables[i] == 90 self.contents.font.color = system_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) elsif $game_variables[sc] == 9 and $game_variables[i] == 100 self.contents.font.color = system_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) else # 以上のどの条件にも当てはまらなかった場合は、 # (つまりスキルランクがキャップしていない場合) # フォントカラーをnormal_colorにして # srankの中の文字を表示する。 self.contents.font.color = normal_color self.contents.draw_text(x, dy, 224, WLH, srank, 1) end end self.contents.font.color = system_color # 合成スキル名をsystem_colorで表示。 self.contents.draw_text(x, y + WLH * 0, 224, WLH, Vocab::SS1) # Vocab::SS1てのは34行目のSS1の中身を表示するってことです。 # Vocab::SS1を"釣り"と直接書いても同じです。以下同様。 self.contents.draw_text(x, y + WLH * 1, 224, WLH, Vocab::SS2) self.contents.draw_text(x, y + WLH * 2, 224, WLH, Vocab::SS3) self.contents.draw_text(x, y + WLH * 3, 224, WLH, Vocab::SS4) self.contents.draw_text(x, y + WLH * 4, 224, WLH, Vocab::SS5) self.contents.draw_text(x, y + WLH * 5, 224, WLH, Vocab::SS6) self.contents.draw_text(x, y + WLH * 6, 224, WLH, Vocab::SS7) self.contents.draw_text(x, y + WLH * 7, 224, WLH, Vocab::SS8) self.contents.draw_text(x, y + WLH * 8, 224, WLH, Vocab::SS9) self.contents.font.color = normal_color # 合成スキルの値をnormal_colorで表示。 self.contents.draw_text(x, y + WLH * 0, 224, WLH, sss1, 2) # sss1は80行目で変数1から代入された値。 # ちなみに最後の2は、表示位置です。 # 0または省略した場合は左端、1は真中、2は右端に表示されます。 # 224という幅の中のどの位置に表示するかっつーことです。 self.contents.draw_text(x, y + WLH * 1, 224, WLH, sss2, 2) self.contents.draw_text(x, y + WLH * 2, 224, WLH, sss3, 2) self.contents.draw_text(x, y + WLH * 3, 224, WLH, sss4, 2) self.contents.draw_text(x, y + WLH * 4, 224, WLH, sss5, 2) self.contents.draw_text(x, y + WLH * 5, 224, WLH, sss6, 2) self.contents.draw_text(x, y + WLH * 6, 224, WLH, sss7, 2) self.contents.draw_text(x, y + WLH * 7, 224, WLH, sss8, 2) self.contents.draw_text(x, y + WLH * 8, 224, WLH, sss9, 2) end end #============================================================================== # □ Scene_Synthesis_Skill #------------------------------------------------------------------------------ #  合成スキル表示の処理を行うクラスです。 #============================================================================== class Scene_Synthesis_Skill < Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- def start create_menu_background @synthesis_skill_window = Window_Synthesis_Skill.new @synthesis_skill_window.open # ウィンドウを開く end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- def terminate @synthesis_skill_window.dispose end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update @synthesis_skill_window.update # ウィンドウが閉じている状態ならマップヘ戻る $scene = Scene_Map.new if @synthesis_skill_window.openness == 0 # キャンセルボタンが押されたら、ウィンドウを閉じる if Input.trigger?(Input::B) Sound.play_cancel @synthesis_skill_window.close # ウィンドウを閉じる end end end