Project1

标题: 连续攻击方法 [打印本页]

作者: 天下^_^帅涵    时间: 2011-2-15 08:52
标题: 连续攻击方法
小弟做了一个技能(连着公共事件),一攻击对方就会再用此技能攻击一次,但是为什么会共计起来没完没了?求教!
作者: tamashii    时间: 2011-2-15 09:15
公共事件怎么写的?
作者: clap_pl    时间: 2011-2-15 09:25
比如你的技能1带有公共事件 公共事件使你再使用一次技能1
但是技能1 还会再次使用公共事件呀 如此下来就是没完没了了

你可以设置一个同名 同内容的技能 但是不带公共事件
这样把技能1 给角色学会
角色使用后用公共事件 让角色使用 这个同名技能
就不会没完没了了
作者: Wind2010    时间: 2011-2-15 09:30
  1. module RPG
  2. class Skill
  3.    def name
  4.      name = @name.split(/,/)[0]
  5.      return name != nil ? name : ""
  6.    end
  7.    def hit_count
  8.      name = @name.split(/,/)[1]
  9.      return name != nil ? name.to_i.abs : 0
  10.    end
  11. end
  12. class Sprite < ::Sprite
  13.    def effect?
  14.      @_whiten_duration > 0 or
  15.      @_appear_duration > 0 or
  16.      @_escape_duration > 0 or
  17.      @_animation_duration > 0
  18.    end
  19.    def damage_effect?
  20.      @_damage_duration > 0 or
  21.      @_collapse_duration > 0
  22.    end
  23. end
  24. end
  25. class Spriteset_Battle
  26. def damage_effect?
  27.    for sprite in @enemy_sprites + @actor_sprites
  28.      return true if sprite.damage_effect?
  29.    end
  30.    return false
  31. end
  32. end  
  33. class Scene_Battle
  34. alias sailcat_update_phase4_step1 update_phase4_step1
  35. alias sailcat_make_skill_action_result make_skill_action_result
  36. alias sailcat_update_phase4_step5 update_phase4_step5
  37. def update_phase4_step1
  38.    @hit_count = 0
  39.    sailcat_update_phase4_step1
  40. end
  41. def make_skill_action_result
  42.    sailcat_make_skill_action_result
  43.    @hit_count = @skill.hit_count
  44. end
  45. def update_phase4_step5
  46.    sailcat_update_phase4_step5
  47.    if @hit_count > 0
  48.      for target in @target_battlers.clone
  49.        if target.dead?
  50.          if @target_battlers.size > 1
  51.            @target_battlers.delete(target)
  52.          else
  53.            @target_battlers.delete(target)
  54.            if target.is_a?(Game_Enemy)
  55.              target = $game_troop.smooth_target_enemy(target.index)
  56.            else
  57.              target = $game_party.smooth_target_actor(target.index)
  58.            end
  59.            if target.is_a?(Game_Battler)
  60.              @target_battlers.push(target)
  61.            end
  62.          end
  63.        end
  64.      end
  65.      if @target_battlers.size == 0
  66.        return
  67.      end
  68.      for target in @target_battlers
  69.        if target.damage != nil
  70.          @phase4_step = 5
  71.          return
  72.        end
  73.        target.skill_effect(@active_battler, @skill)
  74.      end
  75.      # 如果你应用了23种战斗特效的公共事件版脚本请去掉下面几行的注释
  76.      # if @common_event_id > 0
  77.      #   common_event = $data_common_events[@common_event_id]
  78.      #   $game_system.battle_interpreter.setup(common_event.list, 0)
  79.      # end
  80.      @hit_count -= 1
  81.      @phase4_step = 3
  82.    end
  83. end
  84. end
复制代码
技能名字写成 技能名,连击次数 就可以了
例如 火焰,2 就会连击两次
作者: liweiliniu    时间: 2011-2-15 09:39
回复 Wind2010 的帖子

这个,需要用脚本吗.......
作者: qq113694569    时间: 2011-2-15 19:51
Arpg?....
作者: 壬穹雷光    时间: 2011-2-15 20:08
板凳正解,另外如果想要多次的话,就再加一个强制行动就好了
作者: 天下^_^帅涵    时间: 2011-2-16 17:00
:)谢谢大家~~~




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