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

Project1

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

有没有这样的战斗系统(伪RATB)

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2007-2-18
帖子
2464
跳转到指定楼层
1
发表于 2007-6-26 04:48:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
画面比默认的战斗系统多一个顺序表,以速度为顺序,一个人结束后立即切换到下个人

实际也就是将RATB的等待系统去掉,在默认脚本上改变了每回所有人行动一次

这样的话,应该能有效的减少冲突吧
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2007-2-18
帖子
2464
2
 楼主| 发表于 2007-6-26 04:48:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
画面比默认的战斗系统多一个顺序表,以速度为顺序,一个人结束后立即切换到下个人

实际也就是将RATB的等待系统去掉,在默认脚本上改变了每回所有人行动一次

这样的话,应该能有效的减少冲突吧
版务信息:本贴由楼主自主结贴~

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1707
在线时间
3039 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

3
发表于 2007-6-26 05:02:50 | 只看该作者
以下引用kaze于2007-6-25 20:48:15的发言:


本帖为提问贴,由论坛自动悬赏论坛经验100点 *^__^*
画面比默认的战斗系统多一个顺序表,以速度为顺序,一个人结束后立即切换到下个人

实际也就是将RATB的等待系统去掉,在默认脚本上改变了每回所有人行动一次

这样的话,应该能有效的减少冲突吧

这个,魔神战记的原版就用了这种方式。其实还是r-tab,只不过不显示cp条并起初cp条满值或者接近于0就行了。最好把cp值设得非常快,快得不让人察觉,并且设为等待模式(选择时停止),就可以实现这个效果。 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2007-2-18
帖子
2464
4
 楼主| 发表于 2007-6-26 05:07:06 | 只看该作者
那么能不能减少冲突呢?
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-5-13
帖子
138
5
发表于 2007-6-26 05:15:29 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2007-2-18
帖子
2464
6
 楼主| 发表于 2007-6-26 05:39:48 | 只看该作者
我对RATB冲突理解原自
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脚本吧……


不可化解的冲突是没有的,我也不是针对RATB与默认脚本,而是RATB与大家编写的脚本之间。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-9-21 08:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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