操心这破事儿多久了
为了这回《哥布林杀手》的日志更新,我差点把头发薅光。上周不是有人反馈吗?就是那个治疗术的数值问题,老是算不对。特别是当队伍里有高等妖精或者圣女这种高魔力输出的时候,治疗溢出或者根本没生效,直接导致战斗崩盘。我查了三天代码,头都大了。
这种算不明白的感觉,让我想起以前在厂子里做KPI的日子,上面的人屁都不懂,非要你交出一堆根本不可能达到的数字。我他妈当时就是被那套傻逼算法搞崩了心态,一气之下辞了职。当时存款也没多少,整天在家对着电脑发呆,老婆说我再这样下去就得去街上要饭了。为了不真去要饭,我就琢磨着干点能让我静下心来的活儿,才把这个《哥布林杀手》的数据库和模拟器给搭起来,纯属自娱自乐。
现在回想起来,我能坐在这里改这些参数,不是因为我技术有多牛逼,纯粹是因为我他妈那时候真的走投无路了,必须要找点事干。所以说,这更新日志看起来是技术活,是我当时为了活下去搞出来的一堆烂摊子,现在得捏着鼻子收拾。
这回主要动了哪些刀
既然要改,就不能光修那个破治疗术。我干脆把整个职业系数的底层逻辑都动了。以前的逻辑太死板,完全没考虑职业和装备带来的动态加成。我决定这回要彻底把“神官酱的治愈力”和“重战士的力量”区分开来。
我先拉了一个职业-魔力基数的对照表,用的就是最土的JSON格式,好维护。以前是写死的,现在要根据等级和职业特性动态去抓这个系数。整个过程说起来简单,做起来简直是折磨。
- 第一步:定位所有涉及治疗和辅助技能的脚本文件,大概翻了二十多个,一个一个手动核对变量名。妈的,我以前写的变量名简直是灾难。
- 第二步:在每个脚本文件里,我加了个“系数检索函数”。这个函数很蠢,就是一层一层的查字典(JSON),看当前角色是哪个职业,拿多少基础魔力。这里我加了一个临时变量叫做“信仰值修正”,让神官这种角色在特定情况下能多奶一点。
- 第三步:最操蛋的是平衡性调整。神官妹子和高等妖精的系数完全不一样。我对着漫画和小说里的描述,自己瞎琢磨了一套“施法疲劳度”的算法,硬是把连续高强度施法的效率降下来,这才显得合理。这个算法就是一堆if/else嵌套,简单粗暴,但管用。
- 第四步:跑了五十多次战斗模拟,重点测试了几个高风险的哥布林巢穴,确保治疗量既不会溢出太多,也不会像以前那样突然断奶。
现在测试下来,那个治疗溢出的BUG算是被我按死了。虽然代码看起来有点糙,效率可能也没那么高,但好歹结果是对的,能跑起来。我可没工夫去搞什么面向对象的高级货,能用就行。这东西本来就是我自己捣鼓的,目的就是让自己爽。
不过在测试的时候,我又发现了一个新问题,就是那个“地母神的神迹”的触发机制,好像有点太频繁了。行了,不说了,我要去泡杯茶,看看下一版怎么搞死这个新BUG。