(早期文章,基本全部为黑盒测试,后半部分一些错漏已经修正。)
本来这个月是想研究undertale.ini来着,结果过程中ini还没测完,就出了一组和战斗系统有关的高价值数据。后来看这边相对成体系一点,干脆去外网又找了点关键数据,花这两周测了几百场战斗,基本算是把整个战斗系统搞明白了。
以下主要从相关数据、存储调用、伤害计算以及特殊机制等方面讲解攻击与防御端的战斗细节,对于正常游戏流程来说以下内容可能对屠杀线最有用,不过即使是和平线也可以了解到不少关键知识。而如果是想通过修改存档文件来快速进入某段剧情/测试某场战斗的话,利用下述结论修改攻防数据也有利于更快得到结果。另外部分战斗数值的特殊设置也能看出些剧情中没能明说的隐藏信息。
使用工具包括纯净无补丁版游戏本体,GitHub上的Underwatch工具(有自用添加配置信息),Reddit用户HylianAngel提供的大量不同时间节点存档,国外数据网站的部分游戏内部数据信息,方便文件阅读的SublimeText。如果有人需要这些工具的话可以自行查找下载,不保证汉化版能正常使用。
如果嫌太长不想看,每段都有加粗字体作为重点知识与最终结论,可以节省些时间。
————————————————————————————————————————
一、战斗系统数据基础
(旁白果然不靠谱……)
首先要明确一个重要的问题:在正常游戏界面(STAT,CHECK)查看到的敌我攻防数据,基本都是不准确的,倒不如说与游戏内部完全一致的才是少数。其实这点从一开始就应该能看出来了,毕竟Frisk的初始状态面板攻击完全是0,按理说怎么可能打出伤害?另外还有羊爸羊妈的双80攻防,如果真的都是这样的话那也没有战胜可能了。以下具体说说游戏中的数据都有哪些不是“所见即所得”的吧。
1.自机数据
先上图,用的是(关键部分)未修改过的存档,可以用来参考看一下游戏内的STAT。
LV部分没什么可说的,显示的基本就是游戏内的真实数据,在战斗内有一些特殊计算可以在后面说。由于各LV所需EXP以及战斗结算所得EXP的部分特殊设定,在完成部分战斗后LV会自动增加为9/19/20这些特定数值。
HP一行的两个数值分别是【当前HP】与【满格HP】,这两个概念应该都很容易理解,另外在旅店休息过的也都知道当前HP是可以超出满格一部分的,但也有上限。存档时当前HP自动加满,但不会减去溢出值。所以如果在Papyrus战前去过旅店加血,也可以放心地先存个档再出战。
AT,即攻击(Attack),括号前面的数值是当前自身攻击力减10,括号内的数值则是武器攻击力。同理,DF代表防御(Defense),括号前的数值是当前自身防御力减10,括号内的数值是防具的防御力。以本图为例,此时的总攻击力实际为13,总防御力也是13。而若是在拿到“最强装备”的屠杀线末期(LV19),对应的自身攻防分别为46和14,加上双99的武器,总攻防则会变成145和113。然而我们都知道这并没有什么卵用。
2.状态修改
虽然这么早就开始进入“肮脏黑客”领域有些奇怪,但为了下一小节一些特殊数值的讲解不得不提前说明如何修改这些游戏内数值,毕竟有很多测试是正常游戏流程中完全无法完成的。