4/01/2014

缅怀即将放开的dota1

dota这个游戏可以说几乎是贯穿我的全部青春的游戏了。时间太过久远以至于我都忘记了最开始玩的是哪个版本了,印象中玩过的一个较早的版本是4.38,loading图是斧王冰女等四个英雄╮(╯▽╰)╭。最初是经由《电子竞技》这款杂志的介绍开始对这个游戏有了一点兴趣。于是发动各路朋友陪我玩,那时候也是各种泡网吧,刷夜,就连高考前一天我都在网吧打dota,而讽刺的是第二天早上直面的语文考试却是帮我砍下高分的一科,还记得那一年的语文卷,基础知识很难,而我竟然72分全拿……那一段时间,QQ对战平台,浩方,vs,到处都是我和我的小伙伴的身影;茶余饭后,dota成为了不尽的谈资,研究各种英雄的路线、配合,研究战术。步入大学时代,新生杯的时候误打误撞得还拿了个准优胜,后来在学校的战网上玩,那段时间也是最快乐的时光了,已刀会友,认识了不少朋友。之后混迹11平台,开黑,刷分,看09.再后来,dota2诞生了,dota1的玩家出现了dota2方向的分流。我的古董机跑不起来,一起玩的朋友分道扬镳,之后就玩的少了。

dota2我最开始接触是在2012年中,当时就觉得dota1到dota2是一种进步,不过因为琐事缠身所以也没有怎么玩,想来我这一退也快两年了,经历各种版本变迁现在的dota2已然两个游戏了。重拾dota2之前不免想要缅怀一下陪我度过了那么多愉悦的时光的dota1,基于war3引擎的rpg类地图。其实现在叫dota类地图比较合适吧,回首当年,澄海3c,忍者村,是我最初接触的这类型游戏了。

下面我所介绍的内容都是基于war3引擎、和dota1密切相关的东西,是这些年我一直关注的比较多的东西。

魔法免疫可以免疫所有魔法属性的东西,而虚无形态可以免疫所有物理属性的东西。
定义:魔法属性,物理属性和通用属性
    称对魔免单位无效的xx为具有魔法属性;对虚无单位无效的xx为具有物理属性;对魔免和虚无单位均有效的xx为具有通用属性。称对魔免和虚无单位均无效的xx为同时具有魔法和物理属性,或称具有物理魔法属性。
    以上xx处可以是攻击、技能或伤害。

Magic Immunes Resist Leech:魔法免疫是否抵御吸血。如果选了“True”,用吸血光环、法球和药水就吸不到魔免单位的血了。
Magic Immunes Resist Ultimates:魔法免疫是否抵御终极技能。终极技能的判断标准很简单:只要是学习第1级技能要求的英雄等级大于1的技能都被认为是终极技能。非英雄技能也可以设置成终极技能:先把它改成英雄技能,把学习要求的等级改成大于1,再改回非英雄技能即可。如果设置成魔法免疫不能抵御终极技能,所有终极技能将获得无视魔免的特性。

直接攻击的属性
    很简单,在TFT机制下,魔法攻击是魔法属性,法术攻击是通用属性,其他类型的攻击均是物理属性;在ROC机制下,所有类型的攻击都是物理属性。
    也就是说,在我们熟悉的TFT机制下,只有类型为魔法或法术的攻击可以直接攻击虚无单位,而魔法攻击不能直接攻击魔免单位。但是注意法术攻击虽然可以打魔免单位,但却不能造成伤害,原因如下

魔法技能,通用技能和物理技能
    首先要声明一点,游戏内部的技能分类方式与我这里的定义在说法上略有不同。当然,我并没有拆开War3的主程序看过,不过我们可以通过通魔(channel)这个技能窥探到一点War3内部的机制。通魔是所有需引导的技能的空白模板,它可以设置成具有通用技能(universal spell)或物理技能(physical spell)属性:
    选上通用技能属性则技能固定无视魔免且永远不会触发魔法护盾;选上物理技能属性则技能会被虚无形态所免疫并且在虚无形态下无法使用;全不选则成为非常普通的技能,即无视虚无形态但会被魔免所免疫。
    看起来程序内部很可能实际存在一个和我这里的分类相对应的技能分类:内部的普通技能(非物理、非通用)对应这里的魔法属性;内部的物理技能对应这里的物理魔法属性;内部的通用技能对应这里的通用属性;内部的物理+通用技能对应这里的物理属性。
    下面进入正题。绝大部分主动技能都是魔法属性。已知的例外是(可能有遗漏):
1.通用属性的:死亡之指,哨兵,火山。
2.物理属性的:自爆技能(地精的Kaboom!、蝙蝠的不稳定化合物和地雷的爆炸),特定情况下的诱捕或蛛网,多重箭,疾病云雾。(一个平衡性常数Gameplay – Ensnare Checks Magic Immunity决定了诱捕的属性:选“True”时诱捕是魔法属性;选“False”时诱捕是通用+物理属性。蛛网同理,只不过决定其特性的是另一个常数Gameplay – Web Checks Magic Immunity。)
    魔法技能并非都是对魔免单位无效的。如果它有如下的额外属性之一,则可获得无视魔法免疫的特性(但和真正的通用技能还是略有差别的):
1.治疗属性。War3中的治疗技能均是魔法技能,但自从某个版本更新以后,治疗类技能无视魔免了。
2.终极属性。如果平衡性常数中设定了魔法免疫不能抵御终极技能,所有终极技能将无视魔免。
3.被动属性。绝大多数被动技能和由几率法球施放的技能具有此项属性。(以下几种被动技能除外:反馈,被动献祭,凤凰之火。)
    注意,自从某个版本更新以后,无视魔免的技能不一定能对魔免单位造成伤害了,因为现在的系统在每一次伤害之前都会对本次伤害做一次独立的判定,只有通过了判定才能造成伤害:魔法属性的伤害对魔免单位无效,物理属性的伤害对虚无单位无效。什么样的伤害是魔法属性的,什么样的是物理属性的,又有什么样的是通用属性的呢?这就要涉及到另一种类型:伤害类型。

攻击伤害类型和伤害的属性
    War3里有多达22种伤害类型,它们是:未知(unknown),普通(normal),加强(enhanced),火焰(fire),冰霜(cold),闪电(lightning),毒药(poison),疾病(disease),神圣(divine),魔法(magic),声音(sonic),酸性(acid),力量(force),死亡(death),心智(mind),植物(plant),防御(defensive),破坏(demolition),慢性毒药(slow poison),灵魂链接(spirit link),暗影突袭(shadow strike)和通用(universal)。
    记不住这么多类型?没关系,有很多种类型的效果是雷同,可以按照效果将伤害类型分为7类。到目前为止还没有人发现每一类中不同的具体类型在实际效果上有什么区别。这7类是:
1.普通伤害。只包括普通这一种类型。
2.加强伤害。只包括加强这一种类型。
3.破坏伤害。只包括破坏这一种类型。
4.毒伤害。包括以下类型:毒药,疾病,酸性,慢性毒药。
5.魔法伤害。包括以下类型:火焰,冰霜,闪电,神圣,魔法,声音,力量,死亡,心智,植物,防御,灵魂链接,暗影突袭。
6.通用伤害。只包括通用这一种类型。
7.未知伤害。只包括未知这一种类型。
    令人有点头疼的是,只看伤害类型有时是不能判断伤害的属性的,它必须和攻击类型结合起来才能完全决定伤害的属性。

定义:攻击伤害类型
    所有伤害都有攻击类型和伤害类型这两个独立的类型参数。攻击类型和伤害类型合称攻击伤害类型。
伤害的魔法、物理或通用属性:
1.TFT机制下
    魔法攻击、任意伤害是魔法属性;
    任意攻击、魔法伤害是魔法属性;
    除魔法攻击外的任意攻击类型、普通伤害是物理属性;
    除魔法攻击外的任意攻击类型、加强伤害是物理属性;
    除魔法攻击外的任意攻击类型、破坏伤害是物理属性;
    除魔法攻击外的任意攻击类型、毒伤害是物理属性;
    除魔法攻击和法术攻击外的任意攻击类型、通用伤害是物理属性;
    除魔法攻击和法术攻击外的任意攻击类型、未知伤害是物理属性;
    法术攻击、通用伤害是通用属性;
    法术攻击、未知伤害是通用属性。
2.ROC机制下
    不用再看攻击类型了,只看伤害类型:
    魔法伤害是魔法属性;
    毒伤害是魔法属性;
    其他伤害类型均是物理属性。

与攻击伤害类型有关的减(加)伤效果
    再提一遍,各种减少伤害的效果即便是把伤害减到了0,单位仍将受到0点伤害,而不是完全不受伤害。其区别在于0点伤害仍被视为一次伤害,可以触发触发里的受伤害事件等。
1.防御力
    是否起作用只看伤害类型:所有普通伤害都受目标的防御力影响,所有非普通伤害都不受防御力影响。
2.硬化皮肤
    该技能的减伤效果和防御力类似,只看伤害类型,不看攻击类型:普通伤害受其影响,所有非普通伤害都不受其影响。另外,只有当攻击者与该技能所允许的目标匹配时该技能才起作用。
    多个硬化皮肤技能的触发是相互独立的,但多个此类技能同时触发时,只有最后获得的那个起作用。
    硬化皮肤的减伤发生在按比例修正最终伤害(护甲、抗性、攻防相克关系等)之前。
例:DotA
    DotA里圆盾/穷鬼盾/先锋盾/海妖外壳能减少几乎所有的普通伤害,但来自无敌单位或守卫的普通伤害和自爆的普通伤害除外,因为相应技能允许的目标里没有选上“无敌的”、“守卫”和“自杀”这几项。
3.能增加抗性的技能
    一般将攻防相克关系提供的伤害减少称为基础抗性,而以下技能可以额外减少特定攻击类型的伤害,一般称为增加相应的抗性。
(1)防御/艾露恩之优雅。可以增加穿刺抗性和魔法/法术抗性,其增加的魔法和法术抗性共用同一个参数。
(2)神秘护腕这个物品的技能。只能增加法术抗性。
    以上两类技能是否能减少伤害只看攻击类型,不看伤害类型。此外它们还受允许的目标的限制,当伤害来源的单位不在技能允许的目标之列时,技能不起作用,不能减少伤害。
抗性叠加规律:
·按照通常的表述,攻防相克表提供基础抗性。
·上边的(1)和(2)技能提供额外的抗性。
·所有的叠加都是按照所受伤害比例叠乘的方式进行叠加。
·额外的抗性和基础抗性总是能完美叠加。
·有多个(1)类技能时,它们的抗性完美叠加。
·有多个(2)类技能时,只有最后获得的技能的额外法术抗性有效。
·(1)+(2)的著名bug:先获得(2)类技能再获得(1)类技能的,二者的额外法术抗性叠加;先获得(1)类技能再获得(2)类技能的,(1)类技能的额外法术抗性无效。(1)类技能的穿刺抗性和魔法抗性总是有效,不受(2)类技能影响。
·N个技能:最后获得的(2)类技能的法术抗性有效;在最后获得的(2)类技能之后获得的(1)类技能的法术抗性有效;其余技能的法术抗性无效。所有(1)类技能的穿刺抗性和魔法抗性均有效,不受(2)类技能影响。
4.反魔法外壳(这里指的是吸收伤害那个,不是旧版本里魔免的那个技能)
    有且只有以下类型的伤害会被该技能吸收(即减少,因为外壳生效后要减少相应的生命值,故这里称作“吸收”以示却别,本质上还是一样的):攻击类型为魔法或法术,且伤害类型不为通用。
    外壳吸收的是税前伤害,即外壳吸收伤害后减少的生命值不受任何效果的减少或加成。
例:有一个带有400点剩余生命值的外壳、总法术抗性为30%的单位。它受到400点的法术攻击、未知伤害后,外壳将完全消失(而不是还剩120点生命值),本体受到伤害为0。如果是受到500点的法术攻击、未知伤害,除外壳消失外本体还将受到70点伤害((500-400)×70%=70)。

攻击和技能的攻击伤害类型
    显然,光知道有哪些攻击类型和伤害类型是没用的,还需要知道具体的攻击或技能的攻击伤害类型是什么。
1.所有的攻击都造成普通伤害。
例:TFT机制下,类型为魔法或法术的攻击都可以直接攻击虚无单位,但其中只有魔法攻击能造成伤害。原因是魔法攻击、普通伤害是魔法属性的,而法术攻击、普通伤害是物理属性的。
2.技能的伤害类型则因技能而异。
(1)大部分的主动伤害技能造成法术攻击,魔法伤害,其中包括驱散类技能对召唤生物的伤害。当然,有一些例外:
法术攻击、普通伤害的有:火山,自爆类技能(包括地雷的自爆),蝗虫群(其实质是召唤蝗虫攻击敌人,攻击类型可以自行设定)
法术攻击、加强伤害的有:剑刃风暴,刀扇
法术攻击、毒伤害的有:暗影突袭的初始伤害(持续伤害则是法术攻击,魔法伤害),寄生虫
法术攻击、通用伤害的有:死亡凋零,星落,末日,惊吓,地震(只能对建筑造成伤害),季风
    至于说一般的召唤技能就不用再写了吧。
    主动法球的情况我列在下一类里。
例:为什么蝙蝠骑士自爆的伤害既能被反魔法外壳吸收,又受到护甲的影响?
正解:自爆的攻击类型为法术,所以受反魔法外壳影响;伤害类型为普通,所以受护甲影响。是攻击类型与伤害类型独立的设定造就了这样的怪胎技能。

例:为什么对战里的剑刃风暴对魔免单位有伤害但Dota里的却没有?Dota里的剑刃风暴的技能原型不就是对战里的剑刃风暴吗?伤害类型应该是一样的?(注:DotAv6.70以后情况有变,这里仅讨论DotAv6.69以前的情况)
正解:剑刃风暴造成加强伤害,确实是能伤害到魔免单位的。但是Dota里的剑刃风暴不是终极技能,无法影响到魔免单位,更别提造成伤害了。对战里的剑刃风暴是终极技能,而游戏平衡性常数设定的是魔法免疫不能抵御终极技能,所以它对魔免单位有效且有伤害。
辨析:有种说法是,非终极技能的加强伤害不能伤害魔免单位。
正确答案:这种说法是错误的。伤害的属性是独立的,和造成伤害的技能的属性没有必然的联系。实际上,只要设法使不能无视魔免的非终极技能对魔免单位施放成功了(比如在技能施放后再变成魔免状态),其加强伤害仍是有效的。DotAer们可以用修补匠的导弹试验一下(这是个造成加强伤害的技能),看看如果在导弹发射后再开黑皇杖或者用全能的技能变成魔免,能否不受导弹的伤害(答案是不能,但是如果在修补匠放技能时就已经魔免了,导弹是不会被发射出来的)。所以不要试图开黑皇杖来躲飞行中的热导飞弹!同理,不要等到牛头大招的回音波都追着屁股跑了再开黑皇!我将在“二次技能假说”一讲中对这种情况给出更加详细的说明。

法球效果/攻击特效,溅射和被动技能等。
·溅射武器的溅射、高射火炮的溅射、碎片攻击的溅射、两种弹射和多重箭,攻击类型和伤害类型与直接攻击的相同。
·粉碎,法术攻击、加强伤害。
·分裂攻击,攻击类型与普攻相同,伤害类型为加强。
·火焰之球的溅射是法术攻击、通用伤害。
·被燃灰击中的单位死亡时的爆炸效果是法术攻击、魔法伤害。
·凤凰之火,法术攻击、魔法伤害。
·荆棘类(荆棘光环、尖刺障碍和尖刺外壳),法术攻击、魔法伤害。
·液态火焰,法术攻击、魔法伤害。
·燃烧之油,法术攻击、加强伤害。
·淬毒之箭、浸毒长矛,慢性毒药和疾病云雾,法术攻击、毒伤害。
·淬毒之珠的毒伤害,法术攻击、通用伤害。所有被动毒里面只有这个比较特殊。
·重击,其效果因武器类型不同而不同:武器类型为普通或立即,重击的眩晕效果无视魔免,额外伤害是法术攻击、魔法伤害;武器类型为投射类,非终极技能的重击无法击晕魔免单位,造成附加伤害而不是额外伤害;武器类型为炮火类,重击无效。

魔法和物理状态,状态的驱散
    在本讲的最后顺便提一下这个东西。触发编辑器里有一个按类型驱散状态(buff)的动作(Unit - Remove Buffs By Type),其中对状态有这样一种分类:魔法(magical),物理(physical),物理或魔法(magical or physical),物理和魔法(magical and physical)。
    这种分类方式和状态的施加没有任何联系,在施加状态时并没有独立的判定过程,只要相应技能对魔免或虚无单位有效就可以施加相应的状态。这种分类实际上是和状态的驱散联系在一起的,具体说来就是:驱散类魔法可以驱散除净化状态外的所有魔法状态;从非魔免状态变成魔免状态时会驱散所有的魔法状态;从实体状态变成虚无状态时会驱散所有的物理状态。而物理或魔法状态其实是指所有状态,并不是指物理状态或魔法状态。物理和魔法状态则似乎不存在。
例6:把根须缠绕设定成终极技能。那么魔免单位也可以被其缠住——在状态施加时是不会去检查目标的情况的。但被缠绕后变成魔免却可以解除缠绕状态——缠绕是魔法状态,可以被魔免解除。
    至于说哪些状态是魔法状态,哪些是物理状态不是本文的重点,我就不在这里一一列出了。