Project1

标题: 如何修改RM的回合方式~ [打印本页]

作者: 土萌萤    时间: 2010-9-25 16:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: 【紫雨】    时间: 2010-9-25 17:08
SF  RM的默认就是我方一回合完后,敌方一回合,不懂LZ说什么
作者: 土萌萤    时间: 2010-9-25 17:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: SVM伟    时间: 2010-9-25 18:07
额,就是说,不管你先后攻击,只要你攻击了,就算一回合
但是LZ你不觉得这样很不公平吗?只要速度慢附带属性就没一回合。。。啊呜
作者: 土萌萤    时间: 2010-9-25 18:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 后知后觉    时间: 2010-9-25 19:53
本帖最后由 后知后觉 于 2010-9-25 19:59 编辑

在 Scene_Battle 4 里
把 def start_phase4 里面的 增加回合数
放到 def update_phase4_step1 里面的 start_phase2 下面.
再把 def update_phase4_step1 里面对 @active_battler 的状态更新注释掉.
然后在 增加回合数下面 循环所有角色和敌人 来更新他们的状态.

额.这个有很多细节要考虑.
比如:如果这样改的话.那战斗事件的执行回合就会往后延迟一回合了.
当然也可以不挪动 增加回合数的位置.

因为马上要去干别的事了.思路有些混乱.大概就这样吧= =b
p.s.具体怎么改就自己去看吧.= =b.那段代码是有中文注释的.

作者: 退屈£无聊    时间: 2010-9-25 20:29
呃...我想LZ的意思是..本来是我们每个人行动一次完毕后才算一回合.
他想要一个人行动完之后就算回合数 + 1 了.
虽然LS的东西我也看得半懂不懂 - -
作者: 后知后觉    时间: 2010-9-25 23:28
本帖最后由 后知后觉 于 2010-9-25 23:42 编辑

用默认工程来说.
找到 Scene_Battle 4
把第 135 行
  1.     @active_battler.remove_states_auto
复制代码
注释掉
  1.     #@active_battler.remove_states_auto
复制代码
然后在上面 114 行左右 有这样的一段代码
  1.     # 未行动的战斗者不存在的情况下 (全员已经行动)
  2.     if @action_battlers.size == 0
  3.       # 开始同伴命令回合
  4.       start_phase2
  5.       return
  6.     end
复制代码
把这段代码改成这样
  1.     # 未行动的战斗者不存在的情况下 (全员已经行动)
  2.     if @action_battlers.size == 0
  3.       for battler in $game_party.actors + $game_troop.enemies
  4.         battler.remove_states_auto if battler.exist?
  5.       end
  6.       @status_window.refresh
  7.       # 开始同伴命令回合
  8.       start_phase2
  9.       return
  10.     end
复制代码
这样就OK了.
应该不需要范例了吧?(我已经测试过了)
这个问题其实就是 改变战斗状态的刷新时机.

像我这样改的话.就是在每个回合结束的时候
对所有的战斗者统一刷新他们的状态(战斗者必须可见且hp>0).
而默认的则是轮到谁行动了谁刷新(在行动前刷新).
而输入行动命令又是在刷新状态之前.
但是在输入行动命令的时候又会根据已经存在的状态限制一些行动命令的输入.
比如某个状态的限制方式为 不能行动.
那么在输入行动命令的时候.带有该状态的战斗者则无法输入命令而被直接跳过.


作者: 土萌萤    时间: 2010-9-26 18:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: 土萌萤    时间: 2010-10-6 16:29
提示: 作者被禁止或删除 内容自动屏蔽




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