#============================================================================== # ■ RGSS3 未習得スキルをスキル画面に表示 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # スキル画面において、スキルウィンドウに未収得スキルを表示し # スキル習得レベルをヘルプウィンドウに表示します。 #============================================================================== module SLCInSS #未習得スキルの表示タイプを指定 #0の場合、アイコンを表示せずスキル名1文字毎にFormat1の文字列に置き換える。 #1の場合、アイコンを表示せずスキル名をFormat2の文字列に置き換える。 #2の場合、そのままのスキル名とアイコンを表示する。 Type1 = 0 #未習得スキルのヘルプウィンドウへの表示内容を指定 #0の場合、習得レベルを表示する。 #1の場合、なにも表示しない。 #2の場合、そのままのスキルの説明文を表示する。 Type2 = 0 #名称変更後の一文字毎の文字を指定 Format1 = "?" #未習得スキルの名称を固定する場合の表示内容を指定 Format2 = "????" #未収得スキルのヘルプメッセージのフォーマットを指定。 #%sの部分には実際の習得レベルが自動的に入ります。 Format3 = "レベル%sで習得" end class Window_SkillList < Window_Selectable #-------------------------------------------------------------------------- # スキルリストの作成 #-------------------------------------------------------------------------- alias make_item_list_skill_learn_level make_item_list def make_item_list f = SceneManager.scene.is_a?(Scene_Skill) @skill_id_level = {} make_item_list_skill_learn_level if f && @actor @actor.class.learnings.each {|l| lsi = l.skill_id s = $data_skills[lsi] if include?(s) && !@actor.skill_learn?(s) @skill_id_level[lsi] = l.level @data.push(s) end} end end #-------------------------------------------------------------------------- # スキルの取得 #-------------------------------------------------------------------------- alias item_skill_learn_level item def item r = item_skill_learn_level if r @skill_id_level[r.id] && !@skill_learn_check_mode ? nil : r else r end end #-------------------------------------------------------------------------- # スキルを許可状態で表示するかどうか #-------------------------------------------------------------------------- alias enable_skill_learn_level? enable? def enable?(item) return false if item && @skill_id_level[item.id] enable_skill_learn_level?(item) end #-------------------------------------------------------------------------- # 項目の描画 #-------------------------------------------------------------------------- alias draw_item_skill_learn_level draw_item def draw_item(index) @skill_learn_check_mode = true skill = @data[index] if SceneManager.scene.is_a?(Scene_Skill) && skill && @skill_id_level[skill.id] rect = item_rect(index) rect.width -= 4 if SLCInSS::Type1 != 2 rect.x += 24 rect.width -= 24 change_color(normal_color, false) end case SLCInSS::Type1 when 0 draw_text(rect, SLCInSS::Format1 * skill.name.size) when 1 draw_text(rect, SLCInSS::Format2) when 2 draw_item_name(skill,rect.x,rect.y,false) end else draw_item_skill_learn_level(index) end @skill_learn_check_mode = nil end #-------------------------------------------------------------------------- # ヘルプテキスト更新 #-------------------------------------------------------------------------- alias update_help_skill_learn_level update_help def update_help @skill_learn_check_mode = true if SceneManager.scene.is_a?(Scene_Skill) && item && @skill_id_level[item.id] && SLCInSS::Type2 < 2 text = SLCInSS::Type2 == 0 ? sprintf(SLCInSS::Format3,@skill_id_level[item.id]) : "" @help_window.set_text(text) else update_help_skill_learn_level end @skill_learn_check_mode = nil end end