#============================================================================== # ■ VX-RGSS2-19 魔法屋 [Ver.1.0.0] by Claimh #------------------------------------------------------------------------------ # ・スキルの購入ができるショップです(売却はできません) #------------------------------------------------------------------------------ # ★魔法屋の呼び出し方 # イベントスクリプトから call_skill_shop(ショップID) # もしくは $scene = Scene_SkillShop.new(ショップID) #============================================================================== module SkillShop # メッセージ表示 MESSAGE = true # ● ショップIDの登録 # 魔法屋の呼び出しに使うショップIDです # ※ショップIDに0は指定できません SHOP_ID = { # ショップID => [[スキルID, 値段], …] 1 => [ # 回復ショップ [33, 50], [34, 1000], [35, 5000], [36, 200], [37, 2500], [38, 1500], [39, 800], [40, 1800], [41, 1200], [42, 3000] ], 2 => [ # 火・雷の店 [59, 700], [60, 4000], [61, 1000], [62, 5000] ], 3 => [ # 氷・水の店 [63, 700], [64, 4000], [65, 1000], [66, 5000], [71, 800], [72, 4500] ], 4 => [ # 雷の店 [67, 700], [68, 4000], [69, 1000], [70, 5000], [73, 800], [72, 4500] ], 5 => [ # 地・風の店 [73, 800], [74, 4500], [75, 800], [76, 4500] ], 6 => [ # 光・闇の店 [77, 1000], [78, 5000], [78, 1000], [76, 5000] ] } # ● スキル習得制限の設定 # アクター、クラスのみ設定できます # その他の条件が必要な場合はSkillShop::Skill#learn?を改造してください(★) # 特定アクターに対するスキル習得を制限します D_ACTOR = { # スキルID => [アクターID, …] 33 => [1,2,3,4,5,6,8], 34 => [1,2,3,4,5,6,8] } # 特定クラスに対するスキル習得を制限します D_CLASS = { # スキルID => [クラスID, …] 77 => [1,2,3,4,5,6,7], 78 => [1,2,3,4,5,6,7], 79 => [1,2,3,4,5,6,7], 80 => [1,2,3,4,5,6,7] } end ############################################################################## # 基本クラス(設定データ参照用) module SkillShop # 商品リスト生成 def self.make_list(id) list = [] for data in SHOP_ID[id] list.push(Skill.new(data)) end return list end # メッセージタイプ module MesCmd M_S_C = 0 # 成功 M_N_P = 10 # お金足りない M_N_S = 11 # 習得不可 M_N_N = 12 # 習得済み end # スキルクラス class Skill attr_reader :id attr_reader :price attr_reader :enable def initialize(data) @id = data[0] @price = data[1] enable? end def obj return $data_skills[@id] end def enable? return (@enable = ($game_party.gold >= @price)) end #--------------------------------------------------------------------------- # ★習得判定 #--------------------------------------------------------------------------- # [IN] actor : アクター情報(Game_Actor) #--------------------------------------------------------------------------- # [OUT] true = 習得可 false = 習得不可 #--------------------------------------------------------------------------- def learn?(actor) # 特定アクターに対するスキル習得を制限 return false if !D_ACTOR[@id].nil? and D_ACTOR[@id].include?(actor.id) # 特定クラスに対するスキル習得を制限 return false if !D_CLASS[@id].nil? and D_CLASS[@id].include?(actor.class_id) # 特定スイッチがON? #return false unless $game_switches[SW-ID] # 特定レベル以上? #return false if actor.level < LEVEL # 特定のスキルを習得しておく必要がある? #return false if actor.skill_learn?($data_skills[SKILL-ID]) # 特定熟練度以上? #return flase if SysUpdata.skill_attr(actor, @id).level < LEVEL return true end end end #============================================================================== # ■ Game_Temp #============================================================================== class Game_Temp attr_accessor :skill_shop_id alias initialize_skillshop initialize def initialize initialize_skillshop @skill_shop_id = 0 end end #============================================================================== # ■ Game_Interpreter #============================================================================== class Game_Interpreter def call_skill_shop(shop_id=1) $game_temp.next_scene = "shop" $game_temp.skill_shop_id = shop_id end end #============================================================================== # ■ Scene_Map #============================================================================== class Scene_Map alias call_skill_shop call_shop def call_shop if $game_temp.skill_shop_id != 0 $game_temp.next_scene = nil $scene = Scene_SkillShop.new($game_temp.skill_shop_id) $game_temp.skill_shop_id = 0 else call_skill_shop end end end