查看: 4819|回复: 10

[已经解决] 合力技

[复制链接]
梦石
0
星屑
95
在线时间
9 小时
注册时间
2018-12-31
回帖
7
发表于 2019-1-13 14:37:34 | 显示全部楼层 |阅读模式
悬赏35星屑已解决
请问如何让两个角色发动合力技?
我的意思是一个角色使用一个技能,另一个角色使用对应的技能,那么原来的技能失效,自动触发新技能。
举个栗子:吕布发动技能“天下无双”,同时貂蝉发动技能“离间计”,然后这两个技能都没有被发动,发动的是消耗两人的SP的另一个技能“天下离间”...
最难想象的是速度方面的问题。不过我打算把大部分角色的速度调得差不多。
这个问题可能有点难吧......真的有人能答得上来吗

最佳答案

查看完整内容

原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_action_orders 这段 这样, 只要有同时使用 10086号技能 和 10087号技能的时候, 第一个人就会什么都不做, 第二个人使用 10088号技能 [pre lang="ruby"] class Game_Actor < Game_Battler def skill_can_use?(skill_id) return super end end class Scene_Battle def make_action_orders # 初始化序列 @action_battle ...
我是一具行尸走肉
梦石
0
星屑
42235
在线时间
6017 小时
注册时间
2006-11-10
回帖
6966
发表于 2019-1-13 14:37:35 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2019-1-16 21:00 编辑

原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_action_orders 这段

这样, 只要有同时使用 10086号技能 和 10087号技能的时候, 第一个人就会什么都不做, 第二个人使用 10088号技能

[pre lang="ruby"]
class Game_Actor < Game_Battler
  def skill_can_use?(skill_id)
    return super
  end
end

class Scene_Battle
  def make_action_orders
    # 初始化序列 @action_battlers
    @action_battlers = []
    # 添加敌人到 @action_battlers 序列
    for enemy in $game_troop.enemies
      @action_battlers.push(enemy)
    end
    # 添加角色到 @action_battlers 序列
    a = 0
    for actor in $game_party.actors
      if actor.current_action.kind == 1 and [10086,10087].include?(actor.current_action.skill_id)
          a += 1
          actor.current_action.skill_id = 10088 if a == 2
      end
      @action_battlers.push(actor)
    end
    if a == 2
      for actor in @action_battlers
        if actor.current_action.kind == 1 and [10086,10087].include?(actor.current_action.skill_id)
            actor.current_action.kind = 0
            actor.current_action.basic = 3
            a = 0
            break
       end
     end
    end
    # 确定全体的行动速度
    for battler in @action_battlers
      battler.make_action_speed
    end
    # 按照行动速度从大到小排列
    @action_battlers.sort! {|a,b|
      b.current_action.speed - a.current_action.speed }
  end
end[/pre]

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
95
在线时间
9 小时
注册时间
2018-12-31
回帖
7
 楼主| 发表于 2019-1-14 21:44:05 | 显示全部楼层
灯笼菜刀王 发表于 2019-1-13 17:47
原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_ ...

请问10086、10087和10088都指的是技能名字吗?
再就是这个脚本该放到哪个地方?我不是很了解剧本

点评

脚本里一共有5个地方, 技能编号改成你对应的3个技能的编号就可以  发表于 2019-1-15 09:53
是技能编号哦, 也就是你数据库里技能的编号, 你把它们替换成你要的技能的编号就可以了, 位置嘛, 上面那些复制下来塞到main 前面就好  发表于 2019-1-15 09:49
我是一具行尸走肉
回复

使用道具 举报

梦石
0
星屑
95
在线时间
9 小时
注册时间
2018-12-31
回帖
7
 楼主| 发表于 2019-1-16 00:00:49 | 显示全部楼层
灯笼菜刀王 发表于 2019-1-13 17:47
原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_ ...

我试过了,结果是第一个人使用了普攻,第二个人没有行动。是不是脚本哪里出了问题

点评

= = 因为默认脚本里, 你没学会的技能不让那个你用, 要先去掉这个判定, 你重新复制下,现在可以了  发表于 2019-1-16 20:55
我是一具行尸走肉
回复

使用道具 举报

梦石
0
星屑
95
在线时间
9 小时
注册时间
2018-12-31
回帖
7
 楼主| 发表于 2019-1-17 14:17:07 | 显示全部楼层
本帖最后由 粗布蚕宝宝 于 2019-1-17 14:18 编辑
灯笼菜刀王 发表于 2019-1-13 17:47
原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_ ...


我又复制了一次,还是不行,依然是普攻。
顺便说一下其实你说的这个可能性我也想到过,所以我曾尝试让他先学会合力技,但结果依然是普攻果然这个问题可能太难了吧

点评

经过我的测试, 新开个工程, 直接把脚本复制进去是有效果的  发表于 2019-1-17 15:51
我是一具行尸走肉
回复

使用道具 举报

梦石
0
星屑
95
在线时间
9 小时
注册时间
2018-12-31
回帖
7
 楼主| 发表于 2019-1-18 17:19:33 | 显示全部楼层
灯笼菜刀王 发表于 2019-1-13 17:47
原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_ ...

wooooo又试了好几次最后成功了不过为什么有时候管用有时候不管用啊...不过这个问题不重要了。十分感谢
我是一具行尸走肉
回复

使用道具 举报

梦石
0
星屑
90
在线时间
11 小时
注册时间
2017-6-8
回帖
13
发表于 2019-1-29 11:11:08 | 显示全部楼层
灯笼菜刀王 发表于 2019-1-13 14:37
原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_ ...

所以最后只用改相应技能的序号就可以了??
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部