Lv1.梦旅人
泽
您需要 登录 才可以下载或查看,没有帐号?注册会员
使用道具 举报
Lv3.寻梦者 (暗夜天使)
精灵族の天使
以下引用kaze于2007-6-25 20:48:15的发言: 本帖为提问贴,由论坛自动悬赏论坛经验100点 *^__^* 画面比默认的战斗系统多一个顺序表,以速度为顺序,一个人结束后立即切换到下个人 实际也就是将RATB的等待系统去掉,在默认脚本上改变了每回所有人行动一次 这样的话,应该能有效的减少冲突吧
Lv1.梦旅人 (禁止发言)
RTAB和不少战斗脚本冲突,所以……这也是为什么几乎所有战斗脚本都不能用于RTAB的原因 要了解RTAB的战斗原理,先说一下回合战斗的原理: phase1 -> phase2 -> phase3 -> phase4 | ^-------------------/ V phase5 这个phase分别代表什么我就不再多说,去看Scene_Battle的相关注释就会明白 站上的RTAB脚本,其原理是: +---------+ V -->phase4 phase1 -> phase0 -->phase3 | A -->phase2 V +---------+ phase5 RTAB的战斗方式,它最主要的不同点在于: RTAB之所以和其他不少战斗脚本发生冲突,是因为它把phase4这个表现战斗效果的部分切碎了,为了能够实现“绝对的实时”,也就是任何动作过程都不等待,RTAB不得不将phase4分担到每一个战斗者头上去,并在phase0控制中根据每一个战斗者的phase4_step值来决定这个战斗者应该表现出什么效果。伤害值也是一样,为了实现多人攻击一人时伤害值不覆盖,不得不将damage这个基本属性分开定义,这就是RTAB和几乎所有战斗表现类、战斗系统伤害修改类冲突的原因。 如果要实现没有冲突,那就必须放弃“绝对的实时”,在RTAB的实时设定中,有4级 1. 绝对的实时 2. 动作表现时等待 3. 2以外,选择道具、特技时等待 4. 所有动作全部等待,只在没人可以行动时实施CP积累和控制 除了1级以外,以下的3级,全都可以在不对phase4相关部分重定义中实现。 比如说实现2级实时: phase1 进入CP积累控制进程 有人可以行动的情况: 是敌人->生成行动后进入phase4,执行行动,这个中途不需要积累CP 是我方->进入phase3(选择行动),这个中途继续积累CP,如果敌人积满了就让敌人行动(反正这个时候我方那个角色在phase3,不会执行动作),我方选好行动以后进入phase4,执行行动,行动过程中不需要积累CP 无人可以行动的情况: 积累到有人可以行动为止 这样,phase4虽然也从敌我双方各行动一次变成了敌我双方中一个角色行动一次,但这一次行动是完整的(step1到step6一气呵成),中间没有打断的可能,这就不需要去定义各角色的phase4_step,也无需重定义damage属性(因为攻击者在一时间只有1个人)。 而3级、4级的实时战斗就更简单了……(顺便说一下,樱雅的RTAB脚本就是实现的4级实时战斗) 自写RTAB有一个问题要解决,就是phase3的打断问题,比如当一个角色在输入命令时,敌人行动,把它打死了,或中了某个状态让它动不了了,或不能使用魔法了等等,这时phase3都要强行结束而让这个正在输命令的角色直接进入phase4去。此外还有一个小问题,就是我方有多人可以同时行动时如何切换输入命令的问题。所以RTAB对phase3_update的改动一定是相当大的。 主控(CP积累)回合可以另行定义phase0,但也可以不这么做,把phase2“挪作它用”,要知道phase2原来在回合制里是回合的标记,现在RTAB根本无所谓“回合”这个概念,所以当然可以这么来用。phase2的逃跑功能,可以另作安排,比如热键逃跑(如我的游戏就用了按压L+R在战斗中逃跑)。 图示: <----------------------+ phase1 -> phase2 ->(我) phase3 -> phase4 | ->(敌)---------> phase4 V phase5 由于phase4不和主控回合并行,所以原理上相对简单了很多 RTAB的另一个大问题是修改“强制行动”的解释器(Interpreter command_338好像是),这个解释器必须重写(特别是当设定为“按正常的顺序行动”时)RTAB脚本用的办法是另行定义一个"forcing_action"属性,如果有强制行动,在phase4时临时赋给current_action,我也基本上沿用了这个办法。 最后还有一个战斗事件的解释触发(回合),这个算法可以自己写,以前在旧站讨论过有这么几种算法: --每人行动一次算一回合,缺点是有人不能行动时,甚至有人CP不能积累时(比如中了停止状态)回合数就卡死了 --每人行动次数除以战场上存活人数,每满人数次算一回合,在战斗事件触发上这是个比较好的办法,但是有速度快的人陷入战斗不能时,回合数会混乱,另外,怪物的动作过快(过慢)时,行动会和设置的预期相去比较远 --每人行动一次自己算一回合,没有全局回合数,这样怪物的行动会比较正常,但是战斗事件的触发以哪个为准呢……可以另设一个全局回合数,比如以所有人平均速度值积累…… 最后一句话,无冲突实现RTAB的话就是照着2级实时的方法去实现,这样大多数的战斗特效、血条什么的基本都可以用,反击也没问题,原有的RTAB预留的“咏唱”“连体技”都可以实现……RTAB自带的近大远小的功能,站上也有单独功能的脚本可以套用 除非是一定要实现1级实时的效果,那就用RTAB脚本吧……
本版积分规则 发表回复 回帖后跳转到最后一页
献给最先抵达这片土地的你。参加预注册的用户即可获得。
这里的今天,有我过往努力的见证~
折叠内容标题(非必须)
折叠内容
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-9-21 08:23
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.