Project1

标题: [应求脚本]连击效果 [打印本页]

作者: SailCat    时间: 2005-11-1 13:58
标题: [应求脚本]连击效果
# ===================================================================
# 连击效果 v1.0 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
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
作者: SailCat    时间: 2005-11-1 13:58
标题: [应求脚本]连击效果
# ===================================================================
# 连击效果 v1.0 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
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
作者: ikki    时间: 2005-11-1 22:51
可以修改一个乱射效果和打死敌人后次数没用完接着打其他敌人的吗?
作者: SailCat    时间: 2005-11-1 23:11
乱射效果 -> 应用23种战斗特效的公共事件 那个"对象随机"的事件

打死敌人后次数没用完接着打其他敌人 -> 还没看到过有游戏这样设定的,虽然理论上不是不可以
作者: 亿万星辰    时间: 2005-11-1 23:46
他的意思就是打第一个,结果打死了,然后接着打下一个~~应该可以的~~
作者: ikki    时间: 2005-11-2 00:08
魔力宝贝就有这样的啊,我想要魔力宝贝那种连击和乱射,还有,你这个脚本怎么打死一个敌人后,后边的剩余攻击都打自己了?还有就是,如果等级1的人物打两个速度比他快的怪物就会出现错误。{/pz}{/dk}
作者: SailCat    时间: 2005-11-2 00:10
应该不会打自己的了....
@target_battlers如果为空时就退出,中止连击执行
昨天特意在默认工程测了N遍....
作者: ikki    时间: 2005-11-2 00:20
敌人队伍多余1人,普通攻击和连击都出错,55555555
作者: ikki    时间: 2005-11-2 00:23
难道跟等级上限、人物上限之类的脚本不兼容?连击效果我放到最下方了啊。{/pz}
作者: ikki    时间: 2005-11-2 00:28
   if @hit_count > 0
提示出错是这行的这个“>”。默认工程普通攻击也出错。。。。。。{/dk}{/dk}{/dk}{/dk}
作者: bluefool    时间: 2005-11-2 00:45
万能的sailcat  mm,勤快的sailcat mm
{/se}{/se}{/se}{/dy}{/dy}{/ll}{/ll}{/hx}{/hx}
作者: ikki    时间: 2005-11-2 01:32
{/dk}{/dk}{/dk}出错,555555555
作者: 光灵旋影    时间: 2005-11-2 01:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 绳の男    时间: 2005-11-2 04:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 绿时    时间: 2005-11-2 05:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: SailCat    时间: 2005-11-2 05:28
汗啊,发现哪里错了
@hit_count如果不是在使用技能中就没有定义

现在加了一个普遍的定义,初始值为零,这样不用技能也没问题了
作者: SailCat    时间: 2005-11-2 05:35
感谢测试脚本的ikki等....
有些东西看来还是没有完全注意到.....
作者: ikki    时间: 2005-11-3 00:39
希望能让连击次数没用完打死敌人还可以接着打随机的存活敌人的设置哦。{/wx}
作者: 地瓜    时间: 2005-11-3 07:10
这个脚本支持多个技能连击吗》?还有连击的节奏好慢啊~~
作者: ikki    时间: 2005-11-3 23:50
希望能让连击次数没用完打死敌人还可以接着打随机的存活敌人的设置哦。
作者: 亿万星辰    时间: 2005-11-3 23:51
以下引用ikki于2005-11-3 15:50:17的发言:

希望能让连击次数没用完打死敌人还可以接着打随机的存活敌人的设置哦。

我那里做了最后一次更新{/pz}
作者: ikki    时间: 2005-11-3 23:58
{/lh}晕倒,怎么我刚放弃你的那个,你就做出来了?不过,我怕还会出现打乱套的BUG。
作者: SailCat    时间: 2005-11-4 04:40
修改了一下,现在的攻击判定是
当打全体时,打死以后就直接将打击对象删除
当打单体时,打死以后若还有剩余次数,就转移到队伍中的另外一个人身上,如果被打死的是最后一个人还有剩余次数,就结束攻击

作者: forestyu    时间: 2006-8-31 21:09
不知道如何使得连击次数随机化?
比如连击次数为随机3~10次
>_< 在下刚学这个,不会吖,请各位斑竹指点下
作者: zzoac    时间: 2006-11-5 07:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 口水怪    时间: 2008-7-16 17:57
我是新手,请教一下:
我在数据库的技能里设置了85号技能,名称是“华丽的连击,11”然后,测试,在战斗时可以选用“华丽的连击”,发动动画也有。但是没有攻击效果和攻击动画。然后就轮到的角色行动了。
请问除了数据库里面设置一个新的技能以外,还需要在脚本或者其他的地方修改啥么?
多谢!!
作者: myzchh    时间: 2008-7-23 04:05
哈,好不错呀!!!
作者: WildDagger    时间: 2009-6-6 01:00
這個好像也和我發在世界村的SRPG腳本衝突

一開始會說「@spriteset.damage_effect?未定義」
然後改好後會發生連擊似乎有作用,但沒有出現動畫的錯誤......

請問這要怎麼辦?
作者: 很牛滴靓仔⒅    时间: 2009-6-28 08:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 封神魔剑传说    时间: 2010-2-15 21:03
提示: 作者被禁止或删除 内容自动屏蔽




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