晚上好,


是时候简单的说下过去两周发生的事情了,因为数据库的问题减少了,所以我们可以专心解决核心问题了。所以我们也拿了点假期,处理一下生活上的杂事。Asura被做了很多法术参数,法术增益,法术减益,法系归类的工作。我们修复了很多触发性法术,非常多的时间被花在了血性狂暴上。现在只要听到血性狂暴就感到恶心。我们还修复了各种杂七杂八的问题,包括物品保存,一个一直让物品冷却的奇怪问题,并去除了一些过去没有用的零时补丁,现在被妥善处理了。


还有什么呢?...魔法护盾被修复了,变形物的生命回复,一些看不见的问题...除了一两个大问题都是杂七杂八的问题。举个例子,Rodeg写了一个处理器让杀怪可以合理分配休息间的经验。


除了上面的,我们也在做上一次更新的事情,三分之二已经完成了。保存/加载的问题被修复了,这其实是关于战士的问题,无论什么时候战斗姿态的威胁会替代其他姿态的威胁。我只是把结束


动作中放到可以妥善处理刺激状态下的威胁的代码中了,结果就是要分两步处理。第一步是防止周期性的魔法增加产生威胁(如 魔法泉水图腾)。起初Ascent 模拟器的法术代码直接修改目标的魔法,所以并没有增加威胁。Asura 修改并优化了一些代码,所以这些周期的激励状态可以调用


周期的激励代码,他们已经有威胁元件了,所以可以忽略周期魔法产生的威胁,比如魔法泉水和智慧祝福.


其次,我们的Beta测试人员研究发现从怒气(也是一种激励效应)获得的威胁不应被百分比威胁


修改器修改(比如姿态)。因此当你从盾牌专精或者血性狂暴获得5威胁,就只有5威胁,永远只有5威胁。救赎,宁静,防御姿态...不应修改这个数值。一个自定义的属性就可以让威胁修改器忽


略这些相关的法术了。我试过其他很多方法,但自定义属性似乎是最简洁的。


我还看一看连击点这个烂东西。我很确定我知道问题在哪里,似乎与连续事件和连击点移除时间有关。我们之前实施法术延迟系统时就有个相关的问题,当法术完成时连击点就被移除了。我们


打了个补丁,好了一段时间。但法术系统的重构又破坏了原有的代码,所以我们要再看一看这个顺序。


我在做而且头疼的另一件事情是额外攻击流程。这是wower迷喜欢的,而且大量的恶语,互相抵触的证据,各种困惑在beta的讨论中从未停止。但似乎没有人真正知道这是什么,怎么和其他交互。用暴雪的那些法术描述中的-困惑的术语,重复的声明并没有什么帮助。比如,剑专精说在产生伤害后给你x%的几率得到一次额外攻击, 痛击(痛击之刃触发)说下次攻击获得一个额外攻

击。


当说下次攻击的时候,意思是马上就获得,还是下次自动攻击的时候,它连续击打两次?如果是这样间隔又是多少?你能具体说明“你的下一次攻击“吗?还是走远一点,再用在另一个怪身上?你的下一次攻击是用完了就完了还是它还能产生另外一次攻击?如果是这样,它是随着同一次攻


击还是下一次攻击?这种能力可以产生多次在同一个初始的攻击上吗?(顺便说一句,我们是作用在下一次攻击,有点傻。同样的问题我在之前关于连击点的时候就说了,我认为还是他们顺序


和何时执行的问题。我以后会看这个)。一些反问即使已经我们已经知道答案,人们还是不停的问,总有些好理由。


暴雪在初始服就改了很多次这些技能,所以互相矛盾的证据在很多地方都存在。我曾经看到四种反对者(Ironfoe)的随机触发的截图,或者风怒触发风怒效果。我曾看到一次触发3种能力的战斗日


志。但只获得一次额外攻击。


告诉你们这些只是说看起来没有根据说这个一定是这样工作的,而我能做的就只是和暴雪一样,尝试排除那些不相干的东西,去除那些暴雪同样费心试图去除的。


-首先我要让所有的额外攻击过程在触发的那次攻击是立即触发。你不能把额外攻击带到另外一个目标上(除了清算,另外一个故事)。如果目标死亡或者免疫/无法选中,所有的额外攻击会被浪费掉。这是困扰我们的另外一个问题,但我觉得尽快解决他。


-其次,一次单独攻击只能产生一次“额外攻击”计数。举个例子,如果反对者(Ironfoe)获得灼热武器,和正义之手,你做了一次自动攻击并且产生了三次触发,那将要发生的是你通过首次攻击


得到了灼热武器的触发,并且你得到了两次额外攻击(都是通过反对者-正义之手触发被忽略掉了,因为他是低版本的反对者触发),而不是加入三次额外触发。这个行为在1.12版本提及剑专精的时候很明显,风怒图腾和正义之手都是同时进行单只产生了一次额外攻击而不是三个。简短的


说,只有最高的的指令会产生一次攻击,这是个很麻烦的东西,现在还不知道怎么做。


-第三,一次额外攻击可以触发另一次额外攻击,但只能通过其他途径,而且一次一个。我已经有一个能用的代码版本了,但需要优化。举个例子:


可行的:初始攻击触发风怒->风怒又出发了正义之手->正义之手又触发了反对者


不可行的:初始攻击触发了风怒->风怒触发了另一个风怒


这也是不可行的:初始攻击触发了风怒->风怒的额外攻击触发了正义之手->正义之手的额外攻击触发了另一次风怒


我理解这不是100%的暴雪类似的做法,但这明显是暴雪一直尝试改正的;他们做了一系列努力去解决这个问题,并且我不认同你可以一直连续下去并来回保持触发额外攻击,任何游戏的东西都只要一下。这种行为是明显不提倡的有破坏性的,并且我觉得没有理由去维持一个暴雪都希望修复的机制,包括半测量,潜行路径,暗夜精灵,增益,机制,来让他们重新运行。我希望听到


别人的观点,但我不一定会改变我的想法。很明显有很多自相矛盾的证据证明各种运行机制,所以这是我希望的CF(Crestfall)运行的方式。


好了,我估计有些讨论可能激怒了所有的看来这文章的部落玩家,这个或者那个原因。我暂时保持我的想法,再说多一次,我希望听取别人的意见。如果我没有做过的我肯定不会说,但拜托你们不要像猩猩发火一样对我。


目前要说的就这么多。我的下一次更新会在五月一号的星期一,一如既往,随意留下你的评论或者提问。不久再聊,再次感谢你对Crestfall的兴趣



以下为英文原文:


Good evening,


Time for a quick rundown of the last two weeks.  The database bugs have been slower in coming so we've been focusing more on core work.  We've also been taking a bit of vacation and dealing with other miscellaneous real-life business.


Asura has been doing a lot of work on spellpower coefficients, buffs and debuffs, and spell family assignments.  We've been fixing a bunch of triggered spells and spending an inordinate amount of time on Bloodrage.  I'm quite sick of that spell by now.  Some other miscellaneous bugs we've fixed up include issues with item saving, a weird bug that made abilities go on permanent cooldown, and some junky old Ascent hacks that needed to be removed and done properly.


What else.. mana shield fixes, polymorph health regen, some visual bugs.. Just a lot of miscellaneous stuff rather than one or two big things.  Rodeg, for example, wrote up a handler so that rested XP properly applies to mob kills.


Of the things I mentioned we were working on last update, two of the three are done. The save/load issue with Auras is fixed, it was actually a problem with Warriors such that the threat modifier from Battle Stance applied all the time on top of whatever stance you were in at the time.


I just put the finishing touches on some code that properly handles the threat from Energize effects, which ended up having to be done in two different stages.  First was preventing threat from periodic mana gains (ie. Mana Spring Totem).  Originally the Ascent spell code for this effect just directly modified the target's Mana field, so it never got into the threat code.  Asura did some updating and modernization of the code, and now those periodic Energize effects call the regular Energize code, which does have a threat component, so it became necessary to identify and ignore threat generation from periodic mana sources like Mana Spring or Blessing of Wisdom.

Secondly, research from our Beta testers indicated that threat from Rage gains (also an Energize effect) should be unmodified by percentage threat modifiers (ie. Stances).  That is, when you gain a point of rage from an effect like Shield Specialization or Bloodrage, it should give you 5 threat, only 5 threat, and always 5 threat.  Salvation, Tranquil Air, Defensive Stance, etc. cannot modify that amount.  This was corrected by implementing a custom attribute that allowed threat modifiers to be ignored and applying it to the relevant spells.  I tried a couple different ways of doing this but the custom attrib came out the cleanest.


I still need to look at that junk about combo points.  I'm pretty sure I know what the problem is, likely something to do with the sequence of events and the timing of when the combo points are removed again.  We had a problem with this before when the spell delay system was implemented, where the combo points were being removed as soon as the cast completed, but if the effect was delayed by the queue, then when the effect fired off, the combo points were already gone.  We put in a fix for this that worked for a while, but obviously the spell system refactoring has broken that again, so I'll have to take another look at the sequencing.


The other thing I'm working on and am currently neck-deep in is Extra Strike processing.  This is a fan favorite and never fails to generate a huge amount of acrimony, contradictory evidence and utter confusion in the beta chat.  Nobody seems to really, fully understand how these things are supposed to work and interact with each other.  It doesn't help that Blizzard used some doublespeak and confusing terms in their spell descriptions.  Sword Specialization, for example, says "Gives you an x% chance to get an extra attack on the same target after dealing damage with your sword", where Thrash (the triggered spell from the Thrash Blade) says "Grants an extra attack on your next swing."


When they say "next swing", does that mean it applies that second swing instantly, or does it save up the attack and the next time you autoattack, it hits twice?  If that is the case, does it matter how long it is between attacks?  Can you proc an extra attack for "your next swing", run around a bit, and then use it against a different mob?  When do extra attacks "on your next swing" actually get used up?  Can the extra attacks you get proc additional extra attacks?  If so, do they apply on the same swing, or on the next swing?  Can the same ability proc multiple times on the same initial swing?  (Btw, right now, ours is applying on the next swing, which is goofy.  Similar to the issue I mentioned above with combo points, I believe this has to do with the sequencing of when the extra attacks are queued up versus when they are executed.  I'm going to look into that.)  Some of these are rhetorical questions to which we already know the answers, but people ask nonetheless, and with good reason.


Blizzard changed many of these abilities several times over the course of Vanilla, so contradictory evidence exists for a number of different situations.  I've seen screenshots of quadruple Ironfoe procs, or Windfury proccing Sword Spec proccing Windfury again.  I've seen combat log entries where three different abilities proc on the same swing but only one extra attack is actually granted.


Given that there seems to be virtually no consensus on how this stuff is supposed to work, my opinion is that I'm going to go Blizzlike+ and try to untangle it into something coherent, removing some of the shenanigans that Blizzard apparently tried to remove.

鉴于似乎几乎没有共识来说明这个东西应该是如何工作的,我的观点是,通过“Blizzlike +“来试图解开这些问题,以前后连贯,删除一些奇怪恶作剧似的参数(暴雪显然懒得删除)。

- First, I'm going to have all extra strikes process immediately after the strike that procced them.  You can't build up extra strikes on one target and carry them to another (Except for Reckoning, different story there). If the target dies or becomes immune/untargetable, any remaining extra strikes will be wasted.  This is a bug affecting us right now but I mean to get rid of that ASAP.


- Secondly, a single strike can only proc one "extra strike" counter.  For example, if you have Ironfoe enchanted with Fiery Weapon, and a Hand of Justice, you make an autoattack and all three proc on that swing, what will happen is you get the Fiery Weapon proc on the initial autoattack, and you gain two extra strikes (both from Ironfoe - the Hand of Justice proc is ignored because it is a weaker version of the Ironfoe proc), instead of adding them together for three extra attacks.  This behavior is made fairly clear in 1.12-era references whereby Sword Spec, Windfury Totem and Hand of Justice all proccing simultaneously only results in 1 extra attack rather than three.  In short, only the highest procced value applies on a given strike.  This is the tricky one, not sure how to do this just yet.


- Thirdly, the extra strikes can proc additional extra strikes, but only from other sources, and only once per source.  I already have a working version of this code but it needs further refinement.  Ie.

This is OK: Initial Autoattack procs Windfury ->  Windfury extra attack procs HoJ -> HoJ extra attack procs Ironfoe

This is not:  Initial Autoattack procs Windfury -> Windfury extra attack procs ANOTHER Windfury

This is also not:   Initial Autoattack procs Windfury -> Windfury extra attack procs HoJ ->  HoJ extra attack procs ANOTHER Windfury


I realize this isn't 100% Blizzlike, but it's obviously something Blizzard was trying to correct all along; they made a number of efforts to resolve it, and I don't like the idea that you could have the stars align and just keep chain proccing extra attacks back and forth and one-shot anything in the game.  That kind of behavior is clearly unintended and exploitative, and I see no reason to leave in a broken mechanic just because Blizzard's attempts to fix it were a hamfisted series of half-measures, stealth patches, nerfs, buffs and mechanic reworks.  I'm willing to listen to opinions on this, but I don't promise I'll change my mind.  It's obvious that there are a lot of contradictory evidences for this mechanic working a lot of different ways, so I'm just setting out an intention and saying, "this is how I plan to have it working on CF".


Alright, I suppose that bit of discussion has thoroughly enraged all horde players reading this for one reason or another.  I'll leave it there for now, and again, I'm willing to listen to some opinion on it.  If I wasn't I wouldn't mention it, but don't take that as license to go ape crazy on me, please.

That's all for now.  My next update will be on Monday May 1st.  As always, feel free to leave comments or ask questions below.  Talk to you soon, and thanks again for your continued interest in Crestfall.