Project1

标题: 请教如何实现技能连击效果 [打印本页]

作者: 峰星    时间: 2011-1-30 22:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 步兵中尉    时间: 2011-1-30 22:26
先明确一点——比如主角装备钢剑攻击敌人每次能砍掉100点hp,是分多次显示后总共扣100点hp还是多次扣100点hp
作者: enghao_lim    时间: 2011-1-31 01:00
请使用彩虹神剑...
作者: tamashii    时间: 2011-1-31 04:45
请使用RTAB
作者: 阿夏依岚    时间: 2011-1-31 11:24
本帖最后由 阿夏依岚 于 2011-1-31 11:29 编辑

彩虹神剑、R-TAB神马的只不过是浮云而已~~看起来是多段扣血,其实只是以动画闪烁次数来判定的。
这里有一个真正的连击脚本,自己看看吧,内容写的很详细。看了一下,这个的作用这合汝意,以沙发的例子,连击3次,每次100HP,三次就是300HP了。伤害有浮动。另:如果是将武器定为要连击的话,要使用一个名为“将武器攻击变为特技”的脚本,搜索一下就有了。
  1. # ===================================================================
  2. # 连击效果(完美版) v1.2 by SailCat
  3. # ===================================================================
  4. # 数据库设定(特技):
  5. #   名称:技能名称,连击次数(要用半角逗号)
  6. #   例如:超究舞神霸斩,11
  7. #         狮子心,16
  8. #         陨石,9
  9. # 注意这是连击次数,实际攻击的回数是这个回数+1回。
  10. # 省略逗号连同后面的参数的话,连击次数默认为零。
  11. # 连击次数是负数的话,将取绝对值处理。
  12. # 视觉效果是发动动画只放1回,击中动画放N回,伤害值显示N次,
  13. # 所以,如使用了齐时战斗的话,要修改倒数第四行,该行内容为:
  14. #     @phase4_step = 4
  15. # 改为@phase4_step = 3
  16. # 其他:RTAB不适用
  17. # ===================================================================
  18. module RPG
  19. class Skill
  20.    def name
  21.      name = @name.split(/,/)[0]
  22.      return name != nil ? name : ""
  23.    end
  24.    def hit_count
  25.      name = @name.split(/,/)[1]
  26.      return name != nil ? name.to_i.abs : 0
  27.    end
  28. end
  29. class Sprite < ::Sprite
  30.    def effect?
  31.      @_whiten_duration > 0 or
  32.      @_appear_duration > 0 or
  33.      @_escape_duration > 0 or
  34.      @_animation_duration > 0
  35.    end
  36.    def damage_effect?
  37.      @_damage_duration > 0 or
  38.      @_collapse_duration > 0
  39.    end
  40. end
  41. end
  42. class Spriteset_Battle
  43. def damage_effect?
  44.    for sprite in @enemy_sprites + @actor_sprites
  45.      return true if sprite.damage_effect?
  46.    end
  47.    return false
  48. end
  49. end  
  50. class Scene_Battle
  51. alias sailcat_update_phase4_step1 update_phase4_step1
  52. alias sailcat_make_skill_action_result make_skill_action_result
  53. alias sailcat_update_phase4_step5 update_phase4_step5
  54. def update_phase4_step1
  55.    @hit_count = 0
  56.    sailcat_update_phase4_step1
  57. end
  58. def make_skill_action_result
  59.    sailcat_make_skill_action_result
  60.    @hit_count = @skill.hit_count
  61. end
  62. def update_phase4_step5
  63.    sailcat_update_phase4_step5
  64.    if @hit_count > 0
  65.      for target in @target_battlers.clone
  66.        if target.dead?
  67.          if @target_battlers.size > 1
  68.            @target_battlers.delete(target)
  69.          else
  70.            @target_battlers.delete(target)
  71.            if target.is_a?(Game_Enemy)
  72.              target = $game_troop.smooth_target_enemy(target.index)
  73.            else
  74.              target = $game_party.smooth_target_actor(target.index)
  75.            end
  76.            if target.is_a?(Game_Battler)
  77.              @target_battlers.push(target)
  78.            end
  79.          end
  80.        end
  81.      end
  82.      if @target_battlers.size == 0
  83.        return
  84.      end
  85.      for target in @target_battlers
  86.        if target.damage != nil
  87.          @phase4_step = 5
  88.          return
  89.        end
  90.        target.skill_effect(@active_battler, @skill)
  91.      end
  92.      # 如果你应用了23种战斗特效的公共事件版脚本请去掉下面几行的注释
  93.      # if @common_event_id > 0
  94.      #   common_event = $data_common_events[@common_event_id]
  95.      #   $game_system.battle_interpreter.setup(common_event.list, 0)
  96.      # end
  97.      @hit_count -= 1
  98.      @phase4_step = 4
  99.    end
  100. end
  101. end
复制代码

作者: 步兵中尉    时间: 2011-1-31 20:33
我爱龙整合的RTAB就是浮动型扣血,用闪光控制次数;每次扣血都独立
例如我用那个实验过八神的八稚女,普通情况下八神总共扣血约1200,而用了那个RTAB就扣了约9000点
作者: 429259591    时间: 2011-1-31 20:43
其实用公共事件强制行动就OK了...




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