Project1

标题: 合力技 [打印本页]

作者: 粗布蚕宝宝    时间: 2019-1-13 14:37
标题: 合力技
请问如何让两个角色发动
我的意思是一个角色使用一个技能,另一个角色使用对应的技能,那么原来的技能失效,自动触发新技能。
举个栗子:吕布发动技能“天下无双”,同时貂蝉发动技能“离间计”,然后这两个技能都没有被发动,发动的是消耗两人的SP的另一个技能“天下离间”...
最难想象的是速度方面的问题。不过我打算把大部分角色的速度调得差不多。
这个问题可能有点难吧......真的有人能答得上来吗
作者: 灯笼菜刀王    时间: 2019-1-13 14:37
本帖最后由 灯笼菜刀王 于 2019-1-16 21:00 编辑

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

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

RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.   def skill_can_use?(skill_id)
  3.     return super
  4.   end
  5. end
  6.  
  7. class Scene_Battle
  8.   def make_action_orders
  9.     # 初始化序列 @action_battlers
  10.     @action_battlers = []
  11.     # 添加敌人到 @action_battlers 序列
  12.     for enemy in $game_troop.enemies
  13.       @action_battlers.push(enemy)
  14.     end
  15.     # 添加角色到 @action_battlers 序列
  16.     a = 0
  17.     for actor in $game_party.actors
  18.       if actor.current_action.kind == 1 and [10086,10087].include?(actor.current_action.skill_id)
  19.           a += 1
  20.           actor.current_action.skill_id = 10088 if a == 2
  21.       end
  22.       @action_battlers.push(actor)
  23.     end
  24.     if a == 2
  25.       for actor in @action_battlers
  26.         if actor.current_action.kind == 1 and [10086,10087].include?(actor.current_action.skill_id)
  27.             actor.current_action.kind = 0
  28.             actor.current_action.basic = 3
  29.             a = 0
  30.             break
  31.        end
  32.      end
  33.     end
  34.     # 确定全体的行动速度
  35.     for battler in @action_battlers
  36.       battler.make_action_speed
  37.     end
  38.     # 按照行动速度从大到小排列
  39.     @action_battlers.sort! {|a,b|
  40.       b.current_action.speed - a.current_action.speed }
  41.   end
  42. end



作者: 粗布蚕宝宝    时间: 2019-1-14 21:44
灯笼菜刀王 发表于 2019-1-13 17:47
原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_ ...

请问10086、10087和10088都指的是技能名字吗?
再就是这个脚本该放到哪个地方?我不是很了解剧本
作者: 粗布蚕宝宝    时间: 2019-1-16 00:00
灯笼菜刀王 发表于 2019-1-13 17:47
原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_ ...

我试过了,结果是第一个人使用了普攻,第二个人没有行动。是不是脚本哪里出了问题
作者: 粗布蚕宝宝    时间: 2019-1-17 14:17
本帖最后由 粗布蚕宝宝 于 2019-1-17 14:18 编辑
灯笼菜刀王 发表于 2019-1-13 17:47
原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_ ...


我又复制了一次,还是不行,依然是普攻。
顺便说一下其实你说的这个可能性我也想到过,所以我曾尝试让他先学会合力技,但结果依然是普攻果然这个问题可能太难了吧
作者: 粗布蚕宝宝    时间: 2019-1-18 17:19
灯笼菜刀王 发表于 2019-1-13 17:47
原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_ ...

wooooo又试了好几次最后成功了不过为什么有时候管用有时候不管用啊...不过这个问题不重要了。十分感谢
作者: 维她命i    时间: 2019-1-29 11:11
灯笼菜刀王 发表于 2019-1-13 14:37
原理:只要在确定行动的时候替换下就好了, 默认战斗的话, 用它替换掉scene_battle 4 的 def make_ ...

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




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