Project1

标题: 技能连击 [打印本页]

作者: songokuu    时间: 2008-3-10 23:57
标题: 技能连击
按照技能连击的版本,我设置了连击技能,可是为什么发动动画显示有错,不是说发动动画显示1次,击中显示N次吗,实在不明白 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: darkten    时间: 2008-3-11 00:26
什么错误?可以截张图上来看看吗?

至于连击,是动画的se与闪烁效果那里设置闪烁的次数来决定连击数。
作者: songokuu    时间: 2008-3-11 00:31
# ===================================================================
# 连击效果(完美版) 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
   sailcat_update_phase4_step1
end
def make_skill_action_result
   sailcat_make_skill_action_result
   @hit_count = @skill.hit_count
end
def update_phase4_step5
   sailcat_update_phase4_step5
   if @hit_count > 0
     for target in @target_battlers.clone
       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
       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
     @phase4_step = 4
   end
end
end


就是这个脚本,我看过范例上用了之后效果就是视觉效果是发动动画只放1回,击中动画放N回,伤害值显示N次
可是我用了之后时发动动画也显示了N回,为什么?
作者: darkten    时间: 2008-3-11 00:43
原来是这个脚本...

可是我用了之后时发动动画也显示了N回,为什么?
没有问题啊,设置了连击N次,这个技能就会被连续使用N次,动画当然会显示N次啊...
作者: songokuu    时间: 2008-3-11 00:46
我看到的范例是发动动画只有1回,击中N回,它的设置是和我一样的
作者: darkten    时间: 2008-3-11 00:50
战斗的脚本...有改过/加过什么吗?
作者: songokuu    时间: 2008-3-11 01:02
没有改过其他的
作者: darkten    时间: 2008-3-11 01:17
我照做了一个,完全没问题...

搂主可以把工程上传上来吗?
作者: songokuu    时间: 2008-3-11 01:26
你用出来效果是比如说用一个2连击的技能,它先发动动画1回,再击中敌人2回,是这样吗
作者: darkten    时间: 2008-3-11 01:27
以下引用songokuu于2008-3-10 17:26:03的发言:

你用出来效果是比如说用一个2连击的技能,它先发动动画1回,再击中敌人2回,是这样吗

是的...
作者: songokuu    时间: 2008-3-11 01:44
你能上传你尝试的吗,我那个太大不好搞了,让我看一下,谢谢
作者: darkten    时间: 2008-3-11 01:49
使用阿尔西斯的十字斩...
http://rpg.blue/upload_program/files/连击_85600121.rar [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: songokuu    时间: 2008-3-11 04:04
实在是非常感谢,我查出问题所在了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1