查看: 1722|回复: 3

[已经过期] 技能连击脚本报错的问题

[复制链接]
梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

发表于 2016-11-13 15:49:32 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
有时候有出这个错误 有时候又不出这个错误,到底那里出了错呢? 晕啊{:2_264:}


[pre lang="ruby"]
# ===================================================================
# 连击效果(完美版) v1.2 by SailCat
# ===================================================================
# 数据库设定(特技):
#   名称:技能名称,连击次数(要用半角逗号)
#   例如:超究舞神霸斩,11
#         狮子心,16
#         陨石,9
# 注意这是连击次数,实际攻击的回数是这个回数+1回。
# 省略逗号连同后面的参数的话,连击次数默认为零。
# 连击次数是负数的话,将取绝对值处理。
# 视觉效果是发动动画只放1回,击中动画放N回,伤害值显示N次,
# 所以,如使用了齐时战斗的话,要修改倒数第四行,该行内容为:
#     @phase4_step = 4
# 改为@phase4_step = 3
# 其他:RTAB不适用
# ===================================================================
module RPG
class Skill
   def name
     name = @name.split(/,/)[0]
     return name != nil ? name : ""
   end
   def hit_count
     name = @name.split(/,/)[1]
     return name != nil ? name.to_i.abs : 0
   end
end
class Sprite < ::Sprite
   def effect?
     @_whiten_duration > 0 or
     @_appear_duration > 0 or
     @_escape_duration > 0 or
     @_animation_duration > 0
   end
   def damage_effect?
     @_damage_duration > 0 or
     @_collapse_duration > 0
   end
end
end
class Spriteset_Battle
def damage_effect?
   for sprite in @enemy_sprites + @actor_sprites
     return true if sprite.damage_effect?
   end
   return false
end
end   
class Scene_Battle
alias sailcat_update_phase4_step1 update_phase4_step1
alias sailcat_make_skill_action_result make_skill_action_result
alias sailcat_update_phase4_step5 update_phase4_step5
def update_phase4_step1
   @hit_count = 0
   #$game_variables[3618] = 0
   $game_variables[51] = 0
   $game_variables[3589] = 0
   $game_variables[3387]=0
   $game_variables[3622]=0
   $game_variables[3370]=0
   $game_variables[3368]=0
   $game_variables[3357]=0
   $game_variables[3366]=0
   sailcat_update_phase4_step1
end
def make_skill_action_result
   sailcat_make_skill_action_result
    @hit_count = @skill.hit_count
   
    if @skill.id==977 or @skill.id==923 or @skill.id==893
      @hit_count+=$game_variables[3387]
    end
    if @skill.id==922
      @hit_count+=$game_variables[3622]
    end
    if @skill.id==127
      @hit_count+=$game_variables[3589]
    end
   
    if @skill.id==260 #葵花宝典
      @hit_count+=$game_variables[3370]
    end
    if @skill.id==261
      @hit_count+=$game_variables[3368]
    end
    if @skill.id==265
      @hit_count+=$game_variables[3357]
    end
   
     if @skill.id == 262
       @hit_count+=$game_variables[3366]
     end
  
   end
   
=begin
def update_phase4_step5
   sailcat_update_phase4_step5
   if @hit_count > 0
     $game_variables[51] += 1
     for target in @target_battlers.clone
       if @active_battler.dead?
         return
       end
       if target.dead?
         if @target_battlers.size > 1
           @target_battlers.delete(target)
         else
           @target_battlers.delete(target)
           if target.is_a?(Game_Enemy)
             target = $game_troop.smooth_target_enemy(target.index)
           else
             target = $game_party.smooth_target_actor(target.index)
           end
           if target.is_a?(Game_Battler)
             @target_battlers.push(target)
           end
         end
       else
         
         
         
         
         
   
       end
     end
   
=end
#=begin
def update_phase4_step5
   sailcat_update_phase4_step5
   #添加防止角色阵亡时候会继续连击的BUG!
  if @active_battler.is_a?(Game_Actor)
   case @active_battler.id
    when 0..27
     if @active_battler.hp == 0
       @hit_count=0
     end
    when 29
     if @active_battler.hp == 0
       @hit_count=0
     end
  end;end
   
   if @hit_count > 0
     $game_variables[51]+= 1
     for target in @target_battlers.clone
       #if target.dead?#羞射了
      
         if @target_battlers.size > 1
           @target_battlers.delete(target)
         else
           @target_battlers.delete(target)
           if @skill.element_set.include?(50)#($data_system.elements.index("随机"))
             if target.is_a?(Game_Enemy)
                target = $game_troop.random_target_enemy
             else
               target = $game_party.random_target_actor
             end
           else  
             if target.is_a?(Game_Enemy)
                target = $game_troop.smooth_target_enemy(target.index)
             else
               target = $game_party.smooth_target_actor(target.index)
             end
           end
           if target.is_a?(Game_Battler)
             @target_battlers.push(target)
           end
        #  end
       end
     end
#=end
     
     if @target_battlers.size == 0
       return
     end
     

     for target in @target_battlers
       if target.damage != nil
         @phase4_step = 5
         return
       end
       target.skill_effect(@active_battler, @skill)
     end
     # 如果你应用了23种战斗特效的公共事件版脚本请去掉下面几行的注释
     if @common_event_id > 0
     
    common_event = $data_common_events[@common_event_id]
       $game_system.battle_interpreter.setup(common_event.list, 0)
      end
     @hit_count -= 1
     $game_temp.enemy_hpsp_refresh = false
     @phase4_step = 4
   end
end
end
[/pre]
QQ截图20161113154654.png
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
梦石
0
星屑
1788
在线时间
1313 小时
注册时间
2012-8-4
回帖
724
发表于 2016-11-13 15:57:32 | 显示全部楼层
@hit_count = @skill.hit_count  rescue
试下能不能忽略掉

点评

试了半小时没出现报错了!谢谢!  发表于 2016-11-13 17:01
好的 我试一试!  发表于 2016-11-13 16:08

评分

参与人数 1星屑 +30 收起 理由
jiushiainilip19 + 30 认可答案

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部