设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1830|回复: 2
打印 上一主题 下一主题

[已经过期] CP制战斗模式下可以攻击敌人两次吗

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2180
在线时间
1011 小时
注册时间
2015-10-17
帖子
1285
跳转到指定楼层
1
发表于 2016-3-25 22:31:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
两连击或3连击,要是技能能连击感觉也可以

Lv2.观梦者

梦石
0
星屑
596
在线时间
797 小时
注册时间
2014-7-1
帖子
578

开拓者

2
发表于 2016-3-25 22:55:00 | 只看该作者
本帖最后由 jiushiainilip19 于 2016-3-25 23:01 编辑

方法有很多 就看你想用哪一种了

第一方法: 在Game_Battler 3战斗类中定义 直接指定CP值 CP的初始化是0  最高是65535
            
于是可以写成这样 以技能类来说明
RUBY 代码复制
  1. if user.is_a?(Game_Actor) && user.id==1
  2.    user.cp+=65535 if rand(100)<30
  3. end
  4. #角色是一号角色 30%的几率CP+满=连击


第二方法:用脚本 技能连击脚本 你搜索一下 我暂时贴出我用到的
RUBY 代码复制
  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.    $game_variables[51] = 0
  57.    #$game_variables[86] = 0
  58.    sailcat_update_phase4_step1
  59. end
  60. def make_skill_action_result
  61.    sailcat_make_skill_action_result
  62.    @hit_count = @skill.hit_count
  63. end
  64. def update_phase4_step5
  65.    sailcat_update_phase4_step5
  66.    if @hit_count > 0
  67.      $game_variables[51] += 1
  68.      for target in @target_battlers.clone
  69.        if @active_battler.dead?
  70.          return
  71.        end
  72.        if target.dead?
  73.          if @target_battlers.size > 1
  74.            @target_battlers.delete(target)
  75.          else
  76.            @target_battlers.delete(target)
  77.            if target.is_a?(Game_Enemy)
  78.              target = $game_troop.smooth_target_enemy(target.index)
  79.            else
  80.              target = $game_party.smooth_target_actor(target.index)
  81.            end
  82.            if target.is_a?(Game_Battler)
  83.              @target_battlers.push(target)
  84.            end
  85.          end
  86.        end
  87.      end
  88.  
  89.  
  90.  
  91.      if @target_battlers.size == 0
  92.        return
  93.      end
  94.      for target in @target_battlers
  95.        if target.damage != nil
  96.          @phase4_step = 5
  97.          return
  98.        end
  99.        target.skill_effect(@active_battler, @skill)
  100.      end
  101.      # 如果你应用了23种战斗特效的公共事件版脚本请去掉下面几行的注释
  102.      if @common_event_id > 0
  103.  
  104.     common_event = $data_common_events[@common_event_id]
  105.        $game_system.battle_interpreter.setup(common_event.list, 0)
  106.       end
  107.      @hit_count -= 1
  108.      $game_temp.enemy_hpsp_refresh = false
  109.      @phase4_step = 4
  110.    end
  111. end
  112. end




第三方法:在  Scene_Battle 4 中  全局搜索 def make_action_orders

在数据编辑器中翻到系统--然后在属性那里
$data_skills[enemy.current_action.skill_id].element_set.include?(40)
就是在那里选择一个作为双击选择 40是我的 你可以随便添加到多少
然后在技能对应的属性那里打上勾勾就代表这个技能50%几率打出双击
@action_battlers.push(enemy) 敌人行动一次  
继续添加@action_battlers.push(enemy)就是在行动一次
如果想要角色就在角色的行动结果中写 下面有定义 可以无限添加

RUBY 代码复制
  1. def make_action_orders
  2.     # 初始化序列 @action_battlers
  3.     @action_battlers = []
  4.     # 添加敌人到 @action_battlers 序列
  5.     for enemy in $game_troop.enemies
  6.   #--------------------------------------------------------------------------
  7.   #当敌人行为为特技并且使用了带有40号属性的特技 #敌人几率二连击
  8.     if enemy.current_action.kind == 1 and $data_skills[enemy.current_action.skill_id].element_set.include?(40)
  9.       if rand(100) <= 50
  10.       @action_battlers.push(enemy)
  11.       end
  12.     end
  13.   #--------------------------------------------------------------------------
  14.       @action_battlers.push(enemy)
  15.     end
  16.     # 添加角色到 @action_battlers 序列
  17.     for actor in $game_party.actors
  18.   #--------------------------------------------------------------------------
  19.   #当角色行为为特技并且使用了带有18号属性的特技#剑几率三连击
  20.   #  if actor.current_action.kind == 1 and $data_skills[actor.current_action.skill_id].element_set.include?(18)
  21.   #    if rand(100) <= 20
  22.   #    @action_battlers.push(actor)
  23. #     @action_battlers.push(actor)
  24.   #    end
  25.   #  end
  26.   #--------------------------------------------------------------------------
  27.  
  28.       @action_battlers.push(actor)
  29.     end
  30.     # 确定全体的行动速度
  31.     for battler in @action_battlers
  32.       battler.make_action_speed
  33.     end
  34.     # 按照行动速度从大到小排列
  35.     @action_battlers.sort! {|a,b|
  36.       b.current_action.speed - a.current_action.speed }
  37.   end



以上方法都可以做出连击效果  第一种绝对没有冲突  第二种看注释就好 第三种只要没有在其他地方定义的话就不会有问题 如果有就仔细看看是否可以自行更改
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2180
在线时间
1011 小时
注册时间
2015-10-17
帖子
1285
3
 楼主| 发表于 2016-3-28 17:02:35 | 只看该作者
jiushiainilip19 发表于 2016-3-25 22:55
方法有很多 就看你想用哪一种了

第一方法: 在Game_Battler 3战斗类中定义 直接指定CP值 CP的初始化是0   ...


多谢,我是新手,还是有点没明白,第一个的话在第几行修改呢,第二个的话,改了名称以后第108行会出错,第三个没明白
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-30 05:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表