第284章 什么屎山代码!(1/2)
顾凡继续解释道:“在进入游戏、选择职业的第一时间,系统不仅会硬塞给玩家一个本职业的基础攻击技能,还会再后台给玩家打上一个『职业标签』。这个职业标签与底层代码没有太多关联,但在一些特殊情况下,相关功能会对这个标签进行检测。
“比如,玩家找训练师学技能的时候。
“可现在的问题在于……因为涅法洛尔这个boss的独特机制,也同样赋予了玩家职业标签!这就导致原本游戏中的双重限制,都被攻破了!”
莉莉丝的大脑有些过载:“等一下!涅法洛尔为什么会赋予玩家职业标签?你说清楚!”
顾凡轻轻叹了口气:“这就要从涅法洛尔第三阶段的这个点名机制说起了。
“看得出来,『点名』这个机制,是制作人在设计涅法洛尔这个boss时就想到的一个独特机制,甚至可以说,就是为了这碟醋才包的饺子。
“但涅法洛尔作为第一个团本中的最终boss,它的设计本就比职业大改要更早。
“所以在最开始的时候,涅法洛尔并不能直接点名职业。因为那时候,玩家还没有职业。
“为了完成点名的效果,制作人将机制设计成『涅法洛尔会根据玩家上一次对他释放的技能来进行点名』。
“比如,上一个对他释放过盾击类技能的玩家,将会放弃使用盾牌;上一个用图腾对他造成过伤害的玩家,将会插下各种图腾反过来给他加buff。
“这种机制能够给玩家造成一定的困难,但其实也给玩家提供了足够的反制手段:只要玩家在点名前,预先学习一个特定的、无关紧要的技能摸boss一下,就可以骗过boss,破解这一机制。
“而这本来就是原制作人允许甚至鼓励的玩法。
“但后来改了职业设定,那么涅法洛尔的机制,肯定也要进行一定的修改。原制作人一番小修小补之后,发现了一个令人有些蛋疼的问题,那就是点名职业时,经常会出现一些离奇的BUG,导致游戏崩溃。
“比如,原本的设计是上一个对boss释放过盾击技能的玩家,会放弃使用盾牌;可现在盾击变成了战士和骑士都有的技能,而圣骑士又对应着其他的点名效果,必须摘出来。
“又比如,原本的设计是在团本中用变羊术控制过小怪的玩家,被点名后会对随机队友释放变羊术。
“这个设计也有独特设计意图,它鼓励玩家在之前的开荒过程中不要使用变羊术,虽然在打小怪时会大幅增加难度,但打最终boss时就会少一个灭团技能。
“这对于玩家来说,就多了一种战术与取舍。
“但现在按职业划分了,只能改成『点名法师玩家对队友使用变羊术』,可问题是,很多法师玩家压根没用过变羊术。甚至有可能没学变羊术,这就会导致系统在通过变羊术技能来判断法师玩家时,出现漏判。
“此外还可能出现一些极端的特殊情况,比如boss读到了技能,但读到了错误的玩家标签,这种情况虽然概率极低,但程序bug这种东西,也不能说就是0。只要玩家多,概率再低的问题也终究会出现。
“为了解决这些问题,尤其是为了解决漏判的情况,原制作人就又打了一个补丁,那就是当涅法洛尔点名时,优先判定玩家上一个对他的攻击技能。
“而且为了避免游戏后续可能出现的bug,在点名时,如果技能与职业标签冲突,那么以技能为准,并且还会在系统后台默认再给玩家一次对应的职业标签,防止因为读到错误的玩家标签而自相矛盾、导致bug。
“这样一来,至少玩家在打涅法洛尔这个boss的时候,不会因为点名和职业问题而发生报错、造成游戏崩溃。
“而后等玩家下线之后,系统会重新清理玩家身上的职业标签,下次上线就会回到原点。
“只是没想到……有玩家恰好没下线,而且去找其他职业的训练师对话了。”
莉莉丝都快听傻了。
这是什么屎山迭屎山的终极稀碎代码!
原本的设计是一种情况,修改的设计是另一种情况,而为了让修改后的设计能够正常运行,程序员又在上面糊了一层代码,虽然表面上也勉强完成了原本设计好的功能,但鬼知道这个功能具体是怎么实现的!
try{ggauto();} catch(ex){}
就拿这个涅法洛尔来说,原本的设计本来挺好的,可就是因为『职业设定』这个修改,让原本的设计必须调整,而这一调整就会出bug,为了修bug,又引发了更多的bug……
显然,玩家在挑战涅法洛尔的过程中,不仅是骗过了涅法洛尔,也把系统给搞混乱了。
通过玩家技能来释放点名效果,这是最初的设计,关联到太多的底层代码,所以不能改,一改就有可能出大问题。
表面上是点名职业,但实际上还是在点名技能。
本章未完,点击下一页继续阅读。