| 赞 | 0  | 
 
| VIP | 157 | 
 
| 好人卡 | 6 | 
 
| 积分 | 1 | 
 
| 经验 | 113829 | 
 
| 最后登录 | 2014-1-16 | 
 
| 在线时间 | 26 小时 | 
 
 
 
 
 
Lv1.梦旅人 B 
	- 梦石
 - 0 
 
        - 星屑
 - 50 
 
        - 在线时间
 - 26 小时
 
        - 注册时间
 - 2007-8-26
 
        - 帖子
 - 3693
 
 
 
 | 
	
- #=====================================================================
 
 - # 本脚本来自www.66RPG.com,使用和转载请保留此信息
 
 - #==================================================================== 
 
  
 
- #====================================================================
 
 - # ■ スキルアップデート   Ver. 4.4.0                     by Claimh
 
 - #---------------------------------------------------------------
 
 - #     スキルごとにレベル制を導入する
 
 - #     戦闘中にスキルを使用するほど、威力上昇、消費SP減少、命中率上昇
 
 - #==============================================================
 
  
- module Skill_updata
 
 -   S_MIGHT = []
 
 -   S_COST = []
 
 -   S_HIT = []
 
 -   S_LEVEL = []
 
 -   S_INTER = []
 
 -   S_SLOPE = []
 
 -   S_ANIME = []
 
 -   S_ELEMENT = []
 
 -   S_STATE_P = []
 
 -   S_STATE_N = []
 
 - #=============================================================
 
 - # □ 自定义内容
 
 - #==============================================================
 
 -   # 威力上升使用true/false
 
 -   SKILL_MIGHT_UP = true
 
 -   
 
 -   # SP消耗减少使用true/false
 
 -   SP_COST_DOWN = true       
 
 -   
 
 -   # 命中率上升使用true/false
 
 -   SKILL_HIT_UP = true       
 
 -   
 
 -   # 属性变化的使用true/false
 
 -   ELEMENT_CHANGE = true    
 
 -   
 
 -   # 状态变化的使用true/false
 
 -   STATE_CHANGE = true
 
 -   
 
 -   # 显示特技等级上升true/false
 
 -   SHOW_SKILL_LV_UP = true
 
 -   
 
 -   # 等级上升的声效,不用的时候就=nil
 
 -   SKILLUP_SE = "056-Right02"
 
 -   
 
 -   # 菜单使用计数true/false
 
 -   MENU_COUNT = false
 
  
-   # 升级所需次数
 
 -   UPDATA_INTERVAL = 1
 
 -   
 
 -   # 等级上限
 
 -   LEVEL_LIMIT = 20
 
  
-   # 威力上升率(%%)
 
 -   MIGHT_RATE = 0.5
 
 -   
 
 -   # SP消耗减少率(%)
 
 -   COST_RATE = 3
 
 -   
 
 -   # 命中上升率(%)
 
 -   HIT_RATE = 1
 
  
-   #-------------------------------------------------------------
 
 -   # 特别技能的详细设定,57和61号特技分别是十字斩和扫荡,大家最熟悉的两个招数
 
 -   #----------------------------------------------------------------
 
 -   
 
 -   # 界限水平
 
 -   # S_LEVEL[技艺ID]=[角色ID=>界限,…]
 
 -   S_LEVEL[57] = {1=>18, 2=>12, 3=>5, 4=>12, 5=>12, 6=>12, 7=>12, 8=>12}
 
 -   S_LEVEL[61] = {1=>12, 2=>18, 3=>15, 4=>12, 5=>12, 6=>12, 7=>12, 8=>12}
 
 -      
 
 -   # 技艺&actor威力上升率
 
 -   # S_MIGHT[技艺ID]=[角色ID=>威力上升率,…]
 
 -   S_MIGHT[57] = {1=>8, 2=>2, 3=>5, 4=>2, 5=>2, 6=>2, 7=>2, 8=>2}
 
 -   S_MIGHT[61] = {1=>2, 2=>8, 3=>5, 4=>2, 5=>2, 6=>2, 7=>2, 8=>2}
 
  
-   # 技艺&actorSP消费减少率
 
 -   # S_COST[技艺ID]=[角色ID=>SP消费减少率,…]
 
 -   S_COST[57] = {1=>8, 2=>2, 3=>5, 4=>2, 5=>2, 6=>2, 7=>2, 8=>2}
 
 -   S_COST[61] = {1=>2, 2=>8, 3=>5, 4=>2, 5=>2, 6=>2, 7=>2, 8=>2}
 
  
-   # 技艺&actor命中率
 
 -   # S_HIT[技艺ID]=[角色ID=>命中上升率,…]
 
 -   S_HIT[57] = {1=>2, 2=>1, 3=>1, 4=>1, 5=>1, 6=>1, 7=>1, 8=>1}
 
 -   S_HIT[61] = {1=>1, 2=>2, 3=>1, 4=>1, 5=>1, 6=>1, 7=>1, 8=>1}
 
  
-   #-----------------------------------------------------------------
 
 -   # 技能成长的具体调节
 
 -   #-----------------------------------------------------------------
 
 -   # 技艺的增长图形
 
 -   # 0:使用技艺一定回数的话提高水平
 
 -   # 1:技艺一定回数+每水平の使用提高水平
 
 -   SKILL_PATTERN = 0
 
 -   
 
 -   # 技艺水平上升间隔每(使用几回Lv提高)
 
 -   #   ※没有设定的情况→基本设定被适应
 
 -   # S_INTER[技艺ID]=[actorID=>上升间隔,…]
 
 -   S_INTER[57] = {1=>5, 2=>8, 3=>8, 4=>8, 5=>8, 6=>8, 7=>8, 8=>8}
 
 -   
 
 -   # スキルレベル上昇の傾き(パターン1を使用する場合のみ必要)
 
 -   #   ※設定がない場合は1となります。
 
 -   # S_SLOPE[スキルID] = [アクターID=>上昇の傾き, …]
 
 -   S_SLOPE[57] = {1=>5, 2=>8, 3=>8, 4=>8, 5=>8, 6=>8, 7=>8, 8=>8}
 
  
-   #-------------------------------------------------------------
 
 -   # 技艺增长的话使之动画变化
 
 -   #  记录格式: S_ANIME[技艺ID] = [角色ID=>[[等级, 动画ID]], ・・・]
 
 -   #------------------------------------------------------------
 
 -   # 实施技艺增长的动画变化?
 
 -   USE_S_ANIME = true
 
 -   
 
 -   # 設定例
 
 -   # 1号角色,57号特技,lv5,lv10动画变化
 
 -   # 2号角色,Lv.11动画变化
 
 -   S_ANIME[57] = {1=>[[5, 69], [10, 70]], 2=>[[11, 70]]}
 
  
-   #-------------------------------------------------------------------
 
 -   # 属性変化/状态変化
 
 -   #------------------------------------------------------------------
 
 -   # 属性変化
 
 -   # S_ELEMENT[技艺ID] = {角色ID=>{水平=>[属性ID,属性ID…]}, ・・・・}
 
 -   S_ELEMENT[57] = {1=>{1=>[1], 2=>[2], 3=>[3]}, 2=>{1=>[2], 2=>[5]}}
 
  
-   # 状态変化+
 
 -   # S_STATE_P[技艺ID] = {角色ID=>{水平=>[属性ID,属性ID…]}, ・・・・}
 
 -   S_STATE_P[57] = {1=>{1=>[1], 2=>[2], 3=>[3]}, 2=>{1=>[2], 2=>[5]}}
 
  
-   # 状态変化-
 
 -   # S_STATE_N[技艺ID] = {角色ID=>{水平=>[属性ID,属性ID…]}, ・・・・}
 
 -   S_STATE_N[57] = {1=>{1=>[1], 2=>[2], 3=>[3]}, 2=>{1=>[2], 2=>[5]}}
 
  
- #==================================================================
 
 - # □ 自定义内容终了
 
 - #==================================================================
 
 - end
 
  
 
- class Game_Actor
 
 -   include Skill_updata
 
 -   attr_accessor   :skill_use      # スキル使用回数
 
 -   attr_accessor   :skill_level    # スキルレベル
 
 -   attr_accessor   :skill_power    # スキル威力更新値
 
 -   attr_accessor   :skill_sp_cost  # スキルSP消費更新値
 
 -   attr_accessor   :skill_hit      # スキル命中率
 
 -   attr_accessor   :skill_up       # レベルアップフラグ
 
 -   attr_accessor   :skill_list     # スキルEXPリスト
 
 -   alias skill_updata_init setup
 
 -   def setup(actor_id)
 
 -     skill_updata_init(actor_id)
 
 -     @skill_use = []
 
 -     @skill_level = []
 
 -     @skill_power = []
 
 -     @skill_sp_cost = []
 
 -     @skill_hit = []
 
 -     @skill_up = false
 
 -     @skill_list = []
 
 -     for id in 1...$data_skills.size
 
 -       @skill_use[id] = 0
 
 -       @skill_level[id] = 0
 
 -       @skill_power[id] = $data_skills[id].power
 
 -       @skill_sp_cost[id] = $data_skills[id].sp_cost
 
 -       @skill_hit[id] = $data_skills[id].hit
 
 -       @skill_list[id] = make_skill_list(id)
 
 -     end
 
 -   end
 
  
-   #-------------------------------------------------------------
 
 -   # ● スキルEXP 計算
 
 -   #------------------------------------------------------------
 
 -   def make_skill_list(skill_id)
 
 -     interval = S_INTER[skill_id]
 
 -     up_interval = ( (interval != nil and interval[@actor_id] != nil) ? interval[@actor_id] : UPDATA_INTERVAL )
 
 -     slope = S_SLOPE[skill_id]
 
 -     up_slope = ( (slope != nil and slope[@actor_id] != nil) ? slope[@actor_id] : 1 )
 
 -     limit = S_LEVEL[skill_id]
 
 -     limit_lv = ( (limit != nil and limit[@actor_id] != nil) ? limit[@actor_id] : LEVEL_LIMIT )
 
 -     list = []
 
 -     list[0] = 0
 
 -     for lv in 1...limit_lv+1
 
 -       exp = 0
 
 -       case SKILL_PATTERN
 
 -       when 0
 
 -         exp = up_interval * lv
 
 -       when 1
 
 -         exp = list[lv-1] + up_slope * lv + up_interval
 
 -       end
 
 -       list[lv] = exp.truncate
 
 -     end
 
 -     return list
 
 -   end
 
 - end
 
  
 
- class Game_Battler
 
 -   include Skill_updata
 
 -   #-----------------------------------------------------------------
 
 -   # ● スキルの効果適用
 
 -   #     user  : スキルの使用者 (バトラー)
 
 -   #     skill : スキル
 
 -   #-------------------------------------------------------------
 
 -   alias skill_effect_update skill_effect
 
 -   def skill_effect(user, skill)
 
 -     up_flag = false
 
 -     if user.is_a?(Game_Actor) and ($scene.is_a?(Scene_Battle) or MENU_COUNT)
 
 -       skill_update_main(user, skill)
 
 -       skill_base = skill.dup
 
 -       # 威力上昇
 
 -       if SKILL_MIGHT_UP
 
 -         skill.power = user.skill_power[skill.id]
 
 -       end
 
 -       # 命中率上昇
 
 -       if SKILL_HIT_UP
 
 -         skill.hit = user.skill_hit[skill.id]
 
 -       end
 
 -       # 属性変化
 
 -       if ELEMENT_CHANGE and S_ELEMENT != []
 
 -         ele1 = S_ELEMENT[skill.id]
 
 -         if ele1 != nil and ele1[user.id] != nil
 
 -           ele2 = ele1[user.id]
 
 -           if ele2 != [] and ele2[user.skill_level[skill.id]] != nil
 
 -             skill.element_set = ele2[user.skill_level[skill.id]]
 
 -           end
 
 -         end
 
 -       end
 
 -       # ステート変化
 
 -       if STATE_CHANGE
 
 -         if S_STATE_P != []
 
 -           pst1 = S_STATE_P[skill.id]
 
 -           if pst1 != nil and pst1[user.id] != nil
 
 -             pst2 = pst1[user.id]
 
 -             if pst2 != nil and pst2[user.skill_level[skill.id]] != nil
 
 -               skill.plus_state_set = pst2[user.skill_level[skill.id]]
 
 - #              p skill.plus_state_set
 
 -             end
 
 -           end
 
 -         end
 
 -         if S_STATE_N != []
 
 -           nst1 = S_STATE_N[skill.id]
 
 -           if nst1 != nil and nst1[user.id] != nil
 
 -             nst2 = nst1[user.id]
 
 -             if nst1 != nil and nst2[user.skill_level[skill.id]] != nil
 
 -               skill.minus_state_set = nst2[user.skill_level[skill.id]]
 
 -             end
 
 -           end
 
 -         end
 
 -       end
 
 -       up_flag = true
 
 -     end
 
 -     ret = skill_effect_update(user, skill)    # 原物
 
 -     if up_flag
 
 -       skill = skill_base
 
 -       # Miss時には後戻し
 
 -       if self.damage == "Miss"
 
 -         skill_use_recount(user, skill)
 
 -       end
 
 -     end
 
 -     return ret
 
 -   end
 
 -   
 
 -   #------------------------------------------------------------
 
 -   # ● スキルアップデータメイン
 
 -   #-------------------------------------------------------------
 
 -   def skill_update_main(actor, skill)
 
 -     # スキル使用回数のカウント
 
 -     actor.skill_use[skill.id] += 1
 
 -     # リミット取得
 
 -     limit = S_LEVEL[skill.id]
 
 -     s_limit = ( (limit != nil and limit[actor.id] != nil) ? limit[actor.id] : LEVEL_LIMIT)
 
 -     # 書き換え限界到達
 
 -     if s_limit == false or actor.skill_level[skill.id] < s_limit
 
 -       # レベルアップ間隔取得
 
 -       interval = actor.skill_list[skill.id]
 
 -       # 書き換え回数到達
 
 -       if actor.skill_use[skill.id] == interval[actor.skill_level[skill.id]+1]
 
 -         # スキルレベル上昇
 
 -         actor.skill_level[skill.id] += 1
 
 -         actor.skill_up = true
 
 -         # 威力上昇 = 有効
 
 -         if SKILL_MIGHT_UP
 
 -           might = S_MIGHT[skill.id]
 
 -           might_rate = ((might != nil and might[actor.id] != nil) ? might[actor.id] : MIGHT_RATE)
 
 -           # 補正値更新
 
 -           actor.skill_power[skill.id] += skill.power * might_rate / 100
 
 -           actor.skill_power[skill.id] = actor.skill_power[skill.id].truncate
 
 -         end
 
 -         # SP消費減少 = 有効
 
 -         if SP_COST_DOWN
 
 -           cost = S_COST[skill.id]
 
 -           cost_rate = ((cost != nil and cost[actor.id] != nil) ? cost[actor.id] : COST_RATE)
 
 -           actor.skill_sp_cost[skill.id] += skill.sp_cost * cost_rate / 100
 
 -           actor.skill_sp_cost[skill.id] = actor.skill_sp_cost[skill.id].truncate
 
 -           # SP消費が0以下はありえない
 
 -           if actor.skill_sp_cost[skill.id] < 0
 
 -             actor.skill_sp_cost[skill.id] = 0
 
 -           end
 
 -         end
 
 -         # 命中率上昇 = 有効
 
 -         if SKILL_HIT_UP
 
 -           hit = S_HIT[skill.id]
 
 -           hit_rate = ((hit != nil and hit[actor.id] != nil) ? hit[actor.id] : HIT_RATE)
 
 -           actor.skill_hit[skill.id] += skill.hit * hit_rate / 100
 
 -           actor.skill_hit[skill.id] = actor.skill_hit[skill.id].truncate
 
 -           # 100以上はありえない
 
 -           if actor.skill_hit[skill.id] > 100
 
 -             actor.skill_hit[skill.id] = 100
 
 -           end
 
 -         end
 
 -       end
 
 -     end
 
 -   end
 
 -   
 
 -   #---------------------------------------------------------
 
 -   # ● 再カウント
 
 -   #------------------------------------------------------
 
 -   def skill_use_recount(actor, skill)
 
 -     if actor.skill_up
 
 -       actor.skill_level[skill.id] -= 1
 
 -       # 威力を再計算
 
 -       if SKILL_MIGHT_UP
 
 -         actor.skill_power[skill.id] = skill.power
 
 -         might = S_MIGHT[skill.id]
 
 -         might_rate = ((might != nil and might[actor.id] != nil) ? might[actor.id] : MIGHT_RATE)
 
 -         for i in 1...actor.skill_level[skill.id]
 
 -           actor.skill_power[skill.id] += skill.power * might_rate / 100
 
 -           actor.skill_power[skill.id] = actor.skill_power[skill.id].truncate
 
 -         end
 
 -       end
 
 -       # SP消費再計算
 
 -       if SP_COST_DOWN
 
 -         actor.skill_sp_cost[skill.id] = skill.sp_cost
 
 -         cost = S_COST[skill.id]
 
 -         cost_rate = ((cost != nil and cost[actor.id] != nil) ? cost[actor.id] : COST_RATE)
 
 -         for i in 1...actor.skill_level[skill.id]
 
 -           actor.skill_sp_cost[skill.id] += skill.sp_cost * cost_rate / 100
 
 -           actor.skill_sp_cost[skill.id] = actor.skill_sp_cost[skill.id].truncate
 
 -         end
 
 -         # SP消費が0以下はありえない
 
 -         if actor.skill_sp_cost[skill.id] < 0
 
 -           actor.skill_sp_cost[skill.id] = 0
 
 -         end
 
 -       end
 
 -       # 命中率再計算
 
 -       if SKILL_HIT_UP
 
 -         actor.skill_hit[skill.id] = skill.hit
 
 -         hit = S_HIT[skill.id]
 
 -         hit_rate = ((hit != nil and hit[actor.id] != nil) ? hit[actor.id] : HIT_RATE)
 
 -         for i in 1...actor.skill_level[skill.id]
 
 -           actor.skill_hit[skill.id] += skill.hit * hit_rate / 100
 
 -           actor.skill_hit[skill.id] = actor.skill_hit[skill.id].truncate
 
 -         end
 
 -         # 100以上はありえない
 
 -         if actor.skill_hit[skill.id] > 100
 
 -           actor.skill_hit[skill.id] = 100
 
 -         end
 
 -       end
 
 -       actor.skill_up = false
 
 -     end
 
 -     actor.skill_use[skill.id] -= 1
 
 -   end
 
 - end
 
  
- #=================================================================
 
 - # スキル成長によるアニメーション変化
 
 - #=================================================================
 
 - class Scene_Battle
 
 -   include Skill_updata
 
 -   #--------------------------------------------------------------
 
 -   # ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション)
 
 -   #-----------------------------------------------------------
 
 -   alias update_phase4_step4_skillup update_phase4_step4
 
 -   def update_phase4_step4
 
 -     update_phase4_step4_skillup
 
 -     if @active_battler.is_a?(Game_Actor) and USE_S_ANIME
 
 -       s_anime = S_ANIME[@skill.id]
 
 -       # 設定がないなら無視
 
 -       if s_anime != nil and s_anime[@active_battler.id] != nil
 
 -         s_anime_set = s_anime[@active_battler.id]
 
 -         for i in 0...s_anime_set.size
 
 -           s_anime_def = s_anime_set[i]
 
 -           # 規定レベル以上
 
 -           if @active_battler.skill_level[@skill.id] >= s_anime_def[0]
 
 -             # 対象側アニメーション
 
 -             for target in @target_battlers
 
 -               target.animation_id = s_anime_def[1]
 
 -             end
 
 -           end
 
 -         end
 
 -       end
 
 -     end
 
 -   end
 
 - end
 
  
- #=================================================================
 
 - # 以下、レベルアップ表示部分(レベルアップ表示がいらないなら消してもOK)
 
 - #=================================================================
 
 - class Scene_Battle
 
 -   include Skill_updata
 
 -   if SHOW_SKILL_LV_UP
 
 -   #----------------------------------------------------------
 
 -   # ● フレーム更新 (メインフェーズ ステップ 2 : アクション開始)
 
 -   #----------------------------------------------------------
 
 -   alias update_phase4_step2_skillup update_phase4_step2
 
 -   def update_phase4_step2
 
 -     if @active_battler.is_a?(Game_Actor)
 
 -       @active_battler.skill_up = false
 
 -     end
 
 -     @skillup = false
 
 -     update_phase4_step2_skillup   # 原物
 
 -   end
 
  
-   #-------------------------------------------------------------
 
 -   # ● フレーム更新 (メインフェーズ ステップ 3 : 行動側アニメーション)
 
 -   #-----------------------------------------------------------
 
 -   alias update_phase4_step3_skillup update_phase4_step3
 
 -   def update_phase4_step3
 
 -     if @active_battler.is_a?(Game_Actor) and @active_battler.skill_up != false
 
 -       @skillup = true
 
 -       @skill_up_window = Window_Skillup.new(@active_battler)
 
 -       if SKILLUP_SE != nil
 
 -         Audio.se_play("Audio/SE/" + SKILLUP_SE)
 
 -         sleep(0.1)
 
 -       end
 
 -     end
 
 -     update_phase4_step3_skillup
 
 -   end
 
  
-   #--------------------------------------------------------------
 
 -   # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
 
 -   #--------------------------------------------------------------
 
 -   alias update_phase4_step5_skillup update_phase4_step5
 
 -   def update_phase4_step5
 
 -     if @active_battler.is_a?(Game_Actor) and @skillup
 
 -       @skill_up_window.dispose
 
 -       @active_battler.skill_up = false
 
 -       @skillup = false
 
 -     end
 
 -     update_phase4_step5_skillup     # 原物
 
 -   end
 
  
-   #---------------------------------------------------------------
 
 -   # ● フレーム更新
 
 -   #----------------------------------------------------------------
 
 -   alias update_skillup update
 
 -   def update
 
 -     if @active_battler.is_a?(Game_Actor) and @active_battler.skill_up and @skillup
 
 -       @skill_up_window.contents_opacity -= 4
 
 -     end
 
 -     update_skillup              # 原物
 
 -   end
 
 -   end # if SHOW_SKILL_LV_UP
 
 - end
 
  
- class Window_Skillup < Window_Base
 
 -   #--------------------------------------------------------------
 
 -   # ● オブジェクト初期化
 
 -   #     actor : アクター
 
 -   #-------------------------------------------------------------
 
 -   def initialize(actor)
 
 -     super(actor.screen_x-140, 260, 250, 64)
 
 -     self.contents = Bitmap.new(width - 32, height - 32)
 
 -     self.opacity = 0
 
 -     self.contents.font.color = Color.new(255, 64, 0)
 
 -     self.contents.draw_text(80, 0, 150, 32, "LEVEL UP!")
 
 -   end
 
 - end
 
  
-  
 
  
- #====================================================================
 
 - # 以下、再定義部分を含む(SP消費減少の機能がいらないなら消してもOK)
 
 - #====================================================================
 
 - class Window_Skill < Window_Selectable
 
 -   #----------------------------------------------------------------
 
 -   # ● 項目の描画
 
 -   #     index : 項目番号
 
 -   #-----------------------------------------------------------------
 
 -   def draw_item(index)
 
 -     skill = @data[index]
 
 -     if @actor.skill_can_use?(skill.id)
 
 -       self.contents.font.color = normal_color
 
 -     else
 
 -       self.contents.font.color = disabled_color
 
 -     end
 
 -     x = 4 + index % 2 * (288 + 32)
 
 -     y = index / 2 * 32
 
 -     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
 
 -     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
 
 -     bitmap = RPG::Cache.icon(skill.icon_name)
 
 -     opacity = self.contents.font.color == normal_color ? 255 : 128
 
 -     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
 
 - #-修正-----
 
 -     @actor.skill_level[skill.id] = 0 if @actor.skill_level[skill.id] == nil
 
 -     name_level = skill.name + "(Lv" + @actor.skill_level[skill.id].to_s + ")" 
 
 -     self.contents.draw_text(x + 28, y, 204, 32, name_level, 0)
 
 -     @actor.skill_sp_cost[skill.id] = skill.sp_cost if @actor.skill_sp_cost[skill.id] == nil
 
 -     self.contents.draw_text(x + 232, y, 48, 32, @actor.skill_sp_cost[skill.id].to_s, 2)
 
 - #----------
 
 -   end
 
 - end
 
  
- class Scene_Skill
 
 -   #----------------------------------------------------------
 
 -   # ● フレーム更新 (ターゲットウィンドウがアクティブの場合)
 
 -   #-------------------------------------------------------------
 
 -   def update_target
 
 -     # B ボタンが押された場合
 
 -     if Input.trigger?(Input::B)
 
 -       # キャンセル SE を演奏
 
 -       $game_system.se_play($data_system.cancel_se)
 
 -       # ターゲットウィンドウを消去
 
 -       @skill_window.active = true
 
 -       @target_window.visible = false
 
 -       @target_window.active = false
 
 -       return
 
 -     end
 
 -     # C ボタンが押された場合
 
 -     if Input.trigger?(Input::C)
 
 -       # SP 切れなどで使用できなくなった場合
 
 -       unless @actor.skill_can_use?(@skill.id)
 
 -         # ブザー SE を演奏
 
 -         $game_system.se_play($data_system.buzzer_se)
 
 -         return
 
 -       end
 
 -       # ターゲットが全体の場合
 
 -       if @target_window.index == -1
 
 -         # パーティ全体にスキルの使用効果を適用
 
 -         used = false
 
 -         for i in $game_party.actors
 
 -           used |= i.skill_effect(@actor, @skill)
 
 -         end
 
 -       end
 
 -       # ターゲットが使用者の場合
 
 -       if @target_window.index <= -2
 
 -         # ターゲットのアクターにスキルの使用効果を適用
 
 -         target = $game_party.actors[@target_window.index + 10]
 
 -         used = target.skill_effect(@actor, @skill)
 
 -       end
 
 -       # ターゲットが単体の場合
 
 -       if @target_window.index >= 0
 
 -         # ターゲットのアクターにスキルの使用効果を適用
 
 -         target = $game_party.actors[@target_window.index]
 
 -         used = target.skill_effect(@actor, @skill)
 
 -       end
 
 -       # スキルを使った場合
 
 -       if used
 
 -         # スキルの使用時 SE を演奏
 
 -         $game_system.se_play(@skill.menu_se)
 
 - #-----修正---------------------------------------------
 
 -         @actor.skill_sp_cost[@skill.id] = @skill.sp_cost if @actor.skill_sp_cost[@skill.id] == nil
 
 -         # SP 消費
 
 -         @actor.sp -= @actor.skill_sp_cost[@skill.id]
 
 - #------------------------------------------------
 
 -         # 各ウィンドウの内容を再作成
 
 -         @status_window.refresh
 
 -         @skill_window.refresh
 
 -         @target_window.refresh
 
 -         # 全滅の場合
 
 -         if $game_party.all_dead?
 
 -           # ゲームオーバー画面に切り替え
 
 -           $scene = Scene_Gameover.new
 
 -           return
 
 -         end
 
 -         # コモンイベント ID が有効の場合
 
 -         if @skill.common_event_id > 0
 
 -           # コモンイベント呼び出し予約
 
 -           $game_temp.common_event_id = @skill.common_event_id
 
 -           # マップ画面に切り替え
 
 -           $scene = Scene_Map.new
 
 -           return
 
 -         end
 
 -       end
 
 -       # スキルを使わなかった場合
 
 -       unless used
 
 -         # ブザー SE を演奏
 
 -         $game_system.se_play($data_system.buzzer_se)
 
 -       end
 
 -       return
 
 -     end
 
 -   end
 
 - end
 
  
- class Scene_Battle
 
 -   include Skill_updata
 
 -   #------------------------------------------------------
 
 -   # ● スキルアクション 結果作成
 
 -   #-------------------------------------------------------
 
 -   alias make_skill_action_result_skill_update make_skill_action_result
 
 -   def make_skill_action_result
 
 -     make_skill_action_result_skill_update
 
 -     # SP 消費
 
 -     if SP_COST_DOWN and @active_battler.is_a?(Game_Actor)
 
 -       @active_battler.sp += @skill.sp_cost
 
 -       @active_battler.sp -= @active_battler.skill_sp_cost[@skill.id]
 
 -     end
 
 -   end
 
 - end
 
  
- class Game_Battler
 
 -   #--------------------------------------------------------
 
 -   # ● スキルの使用可能判定
 
 -   #     skill_id : スキル ID
 
 -   #------------------------------------------------------
 
 -   alias skill_update_can_use? skill_can_use?
 
 -   def skill_can_use?(skill_id)
 
 -     ret = skill_update_can_use?(skill_id)
 
 -     if !ret and SP_COST_DOWN
 
 -       # SP が足りない場合は使用不可となった?
 
 -       if $data_skills[skill_id].sp_cost > self.sp
 
 -         if self.is_a?(Game_Actor)
 
 -           skill_sp_cost = self.skill_sp_cost[skill_id]
 
 -           if skill_sp_cost < self.sp
 
 -             ret = true
 
 -           end
 
 -         end
 
 -       end
 
 -     end
 
 -     return ret
 
 -   end
 
 - end
 
  
- #===============================================================
 
 - # イベントスクリプト操作
 
 - #===============================================================
 
 - class Interpreter
 
 -   include Skill_updata
 
 -   #-----------------------------------------------------------
 
 -   # ● スキルレベル設定(レベルセット)
 
 -   #     actor_id  :   アクターID
 
 -   #     skill_id  :   スキルID
 
 -   #     level     :   設定レベル
 
 -   #-----------------------------------------------------------
 
 -   def set_skill_level(actor_id, skill_id, level)
 
 -     actor = $game_actors[actor_id]
 
 -     skill = $data_skills[skill_id]
 
 -     # リミット取得
 
 -     limit = S_LEVEL[skill_id]
 
 -     s_limit = ( (limit != nil and limit[actor.id] != nil) ? limit[actor.id] : LEVEL_LIMIT)
 
 -     if level > s_limit or level < 0
 
 -       return
 
 -     end
 
 -     # レベル
 
 -     actor.skill_level[skill.id] = level
 
 -     # 使用回数
 
 -     use_list = actor.skill_list[skill.id]
 
 -     actor.skill_use[skill.id] = use_list[level]
 
 -     # 威力を再計算
 
 -     if SKILL_MIGHT_UP
 
 -       actor.skill_power[skill.id] = skill.power
 
 -       might = S_MIGHT[skill.id]
 
 -       might_rate = ((might != nil and might[actor.id] != nil) ? might[actor.id] : MIGHT_RATE)
 
 -       for i in 0...level
 
 -         actor.skill_power[skill.id] += skill.power * might_rate / 100
 
 -         actor.skill_power[skill.id] = actor.skill_power[skill.id].truncate
 
 -       end
 
 -     end
 
 -     # SP消費再計算
 
 -     if SP_COST_DOWN
 
 -       actor.skill_sp_cost[skill.id] = skill.sp_cost
 
 -       cost = S_COST[skill.id]
 
 -       cost_rate = ((cost != nil and cost[actor.id] != nil) ? cost[actor.id] : COST_RATE)
 
 -       for i in 0...level
 
 -         actor.skill_sp_cost[skill.id] += skill.sp_cost * cost_rate / 100
 
 -         actor.skill_sp_cost[skill.id] = actor.skill_sp_cost[skill.id].truncate
 
 -       end
 
 -       # SP消費が0以下はありえない
 
 -       if actor.skill_sp_cost[skill.id] < 0
 
 -         actor.skill_sp_cost[skill.id] = 0
 
 -       end
 
 -     end
 
 -     # 命中率再計算
 
 -     if SKILL_HIT_UP
 
 -       actor.skill_hit[skill.id] = skill.hit
 
 -       hit = S_HIT[skill.id]
 
 -       hit_rate = ((hit != nil and hit[actor.id] != nil) ? hit[actor.id] : HIT_RATE)
 
 -       for i in 0...level
 
 -         actor.skill_hit[skill.id] += skill.hit * hit_rate / 100
 
 -         actor.skill_hit[skill.id] = actor.skill_hit[skill.id].truncate
 
 -       end
 
 -       # 100以上はありえない
 
 -       if actor.skill_hit[skill.id] > 100
 
 -         actor.skill_hit[skill.id] = 100
 
 -       end
 
 -     end
 
 -   end
 
 -   
 
 -   #---------------------------------------------------------
 
 -   # ● スキルレベル設定(レベルアップ)
 
 -   #     actor_id  :   アクターID
 
 -   #     skill_id  :   スキルID
 
 -   #--------------------------------------------------------
 
 -   def skill_level_up(actor_id, skill_id)
 
 -     actor = $game_actors[actor_id]
 
 -     set_skill_level(actor_id, skill_id, actor.skill_level[skill_id]+1)
 
 -   end
 
 -   
 
 -   #-------------------------------------------------------
 
 -   # ● スキルレベル設定(レベルダウン)
 
 -   #     actor_id  :   アクターID
 
 -   #     skill_id  :   スキルID
 
 -   #--------------------------------------------------------
 
 -   def skill_level_down(actor_id, skill_id)
 
 -     actor = $game_actors[actor_id]
 
 -     set_skill_level(actor_id, skill_id, actor.skill_level[skill_id]-1)
 
 -   end
 
 - end
 
  
- #==================================================================
 
 - # 本脚本来自www.66RPG.com,使用和转载请保留此信息
 
 - #================================================================== 
 
 
  复制代码 系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~ |   
 
 
 
 |