战斗逻辑的构造与解释 |
您所在的位置:网站首页 › 地下城堡259层属性 › 战斗逻辑的构造与解释 |
首页汇总攻略汇总新手专区庇交所档案室资料库攻略汇总
缩 · 编 · 刷 · Tips:日冕尖碑,又叫魂圣迹。在图26以后开启。 施工中此页面正在施工中,或者内容正在优化中,请不要增加/删除内容 目录 1 前言 1.1 终极计算器 1.2 课程介绍 1.3 先修课 1.4 课程资源 2 状态 2.1 状态 2.2 状态包含的信息 2.3 状态的最终数值 2.4 被挂状态 2.5 挂状态 3 属性 3.1 属性有哪些 3.2 七维属性计算 3.2.1 裂狱附加的状态 3.2.2 鬼心附加的状态 3.2.3 护腕附加的状态 3.2.4 开始动手了 3.3 其他属性 3.4 欠债机制 4 装备特效 4.1 类型 4.2 触发条件 4.3 装备触发的顺序 4.4 具体某个装备的触发 4.4.1 环的特效 4.4.2 增幅类特效 4.4.3 状态类特效 4.4.4 连击类特效 4.4.5 回复类特效 4.4.6 真伤类特效 4.4.7 治疗抑制 4.5 举个夜莺流血甲的例子 5 状态 - 时间 6 技能 - 时间 7 主函数 7.1 先发与连击 7.2 半门力速之谜 7.3 技能冷却进度条 7.4 跳dot 8 技能选择 8.1 6个技能大类 8.2 技能设置 8.2.1 奶 8.2.2 嘲讽 8.2.3 反击 8.2.4 群攻 8.2.5 单攻 9 目标选择 9.1 优先攻击的目标 10 技能施放 10.1 准备函数 10.2 施放技能 10.3 如果冷却时间增加不到-4,更新之 10.4 清除增幅 10.5 挂状态函数 前言 终极计算器 wiki团队的基建组——天上人间,在21世纪的最重大的项目是:完成大计算器。输入你的队伍,选择要打的怪物,wiki将全真模拟游戏中的情况。此前我们有众多小计算器,他们都是针对某个小领域的计算,而这一次,我们do it once, and for all. 因为组里各人使用的编程语言、开发平台不同,我们只能共享交流算法,大家会见到多个版本。wiki测试服是我基于windows开发的桌面程序。mac用户需要等待不由制作出大计算器网页版。 课程介绍要写出完整的模拟程序,我就被迫要了解整个游戏全部的机制,并把它们整合到一起。现在算法完成了,我不妨分享一下这整个的战斗逻辑。 《战斗逻辑的构造与解释》,即是一门全面介绍战斗机制的地堡课程,也是wiki测试服的高阶使用技巧。这是一门大水课,没有期末考试,只要赏脸看一遍,就是满昏! 本课程难度较大,含有大量计算(虽然都是小学水平的计算,但计算终究是计算),适合热爱技术的萌新和中期玩家查漏补缺。 还有一种,玩上头了,资源都花光了,卡在某个boss,这时候一如果一直盯着自己的号左看右看,最终就会控制不住地把自己的手伸向右上角,几百个大洋,一通忙活,狗托们都出货了,在群里秀你一脸,而你没有,几百大洋打了水漂,于是又开始懊悔起来。这是何苦来呢!推不动图了,就老实咸鱼,咸鱼之际,来听我的课吧。 先修课出征章节的7篇攻略 程序设计中的函数概念。我们这里说的函数,不是枯燥乏味的数学,而是流程的意思。我们吃苹果,要先买苹果,然后洗,然后削皮,然后啃,最后把苹果核扔掉,这就是一个流程。函数我们用大括号括起来。现在我就可以用“吃苹果”来表示面连续的5个步骤:{买苹果,洗苹果,削苹果,啃苹果,扔果核}。以后就不需要再写出这5个步骤了。我说吃苹果,你就知道要干嘛了。具体自行百度。 课程资源wiki测试服 状态 状态在地堡中,状态不是你的冒险者今天吃得好不好,而是打的时候冒险者头上的那些小图标。 两个“凡是”:凡是有对应图标的,都是状态。凡是没有对应图标的,都不是状态。 状态包含的信息每个状态包含八个信息: 状态名称 特效名称 这两个的区别看图,看一眼就懂:
状态的类型有以下几种:力量buff,魔力buff,技巧buff,速度buff,护甲buff,抗性buff,hot,dot,物理增伤,魔法增伤,眩晕,反击。 在wiki测试服中,debuff是数值为负数的buff。 dot不是数值为负数的hot,因为hot受治疗效果属性影响,dot则被持续伤害属性加成。 剩余持续时间 每层的数值 层数 最大层数 附加者附加者决定了状态吃不吃状态效果。如果附加者属于冒险队,状态就吃状态效果,否则就不吃。 在wiki测试服中,火环负面的自残状态的附加者为空,进而不吃状态效果。用bool型变量SEA(state effext allowance)表示吃不吃状态效果,用它和状态效果相乘,这样吃状态的时候就是1*状态效果,不吃状态的时候就是0*状态效果 = 0. 状态的最终数值 SEA = 附加者属于冒险队 ? 1 : 0 状态数值 = 每层数值 * 层数 * (1+SEA*状态效果) if(状态类型==dot) 状态数值*=附加者的持续伤害 if(状态类型==hot) 状态数值*=附加者的回复效果 我们用一组统一的信息,表达了所有状态,用一个统一的公式,计算了所有状态。 被挂状态被挂状态有两种情况。队友上的增益,和来自装备的状态,都不受异常附加率的影响。敌方技能附带的状态,则要考虑异常。 挂上状态的概率 = 异常附加率 - 抗性/1000
如果挂上了的话,就要把相应的状态附加上去。 if(特效名称变了) 当前层数 = 1 if(特效名称没变) 当前层数 = min(当前层数+1,最大层数)火法挂着灼伤,这时候来一下咒火的灼烧,现在是1层而不是2层——因为特效名称从炎爆术变成了诅咒之火。 在不超过最大层数的前提下,层数会在被挂buff时加1。最大层数是可变的。火法的时候,最大层数是1,枯萎挂dot的时候,灼伤这个状态的最大层数就变成999了。 挂状态挂状态就是让对象被挂状态。“对象”分5种:对自身,对我方单体,对我方全体,对敌方单体,对敌方全体。 属性 属性有哪些讲完了状态,可以讲属性了。属性有28个,分别是: 力魔技速体甲抗,武威 物理伤害,魔法伤害,持续伤害 物理单吸,物理群吸,魔法单吸,魔法群吸 命中率,闪避率,暴击率,异常附加率 卸负 无视护甲,无视抗性 物伤格挡,魔伤格挡 回复效果,吸血效果,治疗效果,暴伤系数回复效果,在技能,特效或回春产生回复时有加成。 吸血效果,在吸血时有加成,只存在于遗迹。 治疗效果,在受到回复技能和吸到血时有加成,前两个是施加恢复,这个是受到恢复,也可以理解成治疗效果同时影响回复和吸血。治疗效果的变化都是乘或除。对面有个红审判,或者对面就是个抑制20%的怪,那么在开局的时候,我们的治疗效果就从1被乘了 (1 - 20%),变成80%。如果对面再来个红审判,那么80% * (1 - 20%),等于64%。如果拿红审判的人阵亡了,64% / (1 - 20%),回到80%。 七维属性计算战斗时,七维属性(力魔技速体甲抗)由四部分相加构成: 属性 = 面板 + 增幅 + 各种状态
举个例子,具体到力量,就是:力量 = 面板力量 + 增幅力量 + 各种类型为力量buff的状态。状态可能有多种,但增幅最多只有一个,因为增幅只生效一瞬间,并且装备特效只要生效一个,后续就不再判定了。
这节课的重点是这个蛮子的例子。假设一场紧张而激烈的战斗即将拉开帷幕,我们的蛮子已经捯饬好了:
狂战: 裂狱是提高100%的力量,而什么是力量?力量 = 面板力量 + 增幅力量 + 各种力量buff。此时没有增幅,也没别的状态,它们都是0。为了清楚,我仔细写一遍: 地狱怒吼的每层数值 = 100% * 力量 = 100% * (面板力量 + 增幅力量 + 各种力量buff) = 100% * (10000 + 0 + 0) = 10000结合上面给的公式最终数值 = 每层数值 * 层数 * (1+SEA*状态效果),最终数值可以列式计算: 地狱怒吼的最终数值 = 地狱怒吼的每层数值 * 层数 * (1+SEA*状态效果) = 10000 * 1 * (1 + 1*100%) = 20000 鬼心附加的状态鬼心提高50%的力量。什么是力量?力量 = 面板力量 + 增幅力量 + 各种力量buff。 此时没有增幅,力量buff有一个裂狱的地狱怒吼。列式计算: 战鬼徽记的每层的数值 = 50% * 力量 = 50% * (面板力量 + 增幅力量 + 各种力量buff) = 50% * (10000 + 0 + 地狱怒吼的最终数值) = 50% * (10000 + 20000) = 15000 战鬼徽记的最终数值 = 战鬼徽记每层的数值 * 层数 * 状态效果加成 = 战鬼徽记每层的数值 * 层数 * (1+SEA*状态效果) = 15000 * 1 * (1 + 1*100%) = 30000 护腕附加的状态 野蛮怒吼的每层的数值=...=9000 野蛮怒吼的最终数值=...=18000 开始动手了以上都是在战斗开始时发生的事情。现在蛮子要出手了,假设触发了通魔的特效,增幅100%力量。什么是力量?力量 = 面板力量 + 增幅力量 + 各种力量buff! 增幅力量 = 100% * 力量 = 100%*(面板力量+增幅力量+地狱怒吼+战鬼徽记+野蛮怒吼) = 100% * (10000+0+20000+30000+18000) = 78000终于到了抡出斧子的那一刻!乾坤一击!对敌方 力量 * 6。什么是力量?力量 = 面板力量 + 增幅力量 + 各种力量buff。这时候蛮子真正出手的时候的力量我们终于可以计算了: 力量 = 面板力量+增幅力量+地狱怒吼+战鬼徽记+野蛮怒吼 = 10000+78000+20000+30000+18000 = 156000我们算了很多很多,但是无非就是两个小式子: 属性 = 面板 + 增幅 + 各种状态数值状态数值 = 每层数值*层数*(1+SEA*状态效果)
不光是力量,所有25个属性都是这么算的,只不过7维属性以外没有相应的状态了,都是0,就只有面板+增幅。有时候面板或增幅也没有,比如格挡,我们下面会说到环带来的都是增幅,所以格挡是没有面板的,但只要默认为0,就可以统一地认为是面板 + 增幅。 为什么我们通常计算的时候没有这么麻烦呢?因为我们会一直记住当前是多少力量,每新考虑一个buff,就加入到当前力量里。这样对于我们来说非常轻松,但是计算机程序将面临一个巨大的问题:左脚踩右脚上天!唔,事实上,你也会上天,只不过你每个装备/技能都只计算了一次。如果事无巨细地预测战斗中每一帧细节,那么传法每次cd好了就得奶出来才行,这时候问题就暴露出来了:加多少技巧呢?如果加当前技巧的0.3,那没事了,上天!或者一个更现实的问题:如果奶了一口又不奶了,减多少技巧? 现在是不是有一点理解为什么地堡有巧手bug了?地堡的代码很烂,没有像我们这样计算属性,导致频繁上天。地堡程序员是怎样debug的呢?每次要计算的时候,就从头开始计算,从面板开始重新“开局”,重新依次挂buff,重新计算属性。所以绿龙的buff一直在刷新,由此为巧手bug埋下了祸根。 而我们是怎么处理的呢?非常简单!只需赋buff之前,先清空他自己的这个buff,令其每层数值为0。 传法带个绿龙开奶时(设面板为x): 令技巧提升buff每层数值为0。若触发了巧手: 增幅技巧 = 100% * 技巧 = 100% * (面板技巧+增幅技巧+技巧提升+凝视) = 100% * (x + 0 + 0 + 0.3x) = 1.3x 技巧提升buff的每层数值 = 5 + 0.3 * 技巧 = 5 + 0.3 * (面板技巧+增幅技巧+技巧提升+凝视) = 5 + 0.3 * (x + 1.3x + 0.3x) = 5 + 0.3 * 2.6x下一次奶时,我们还把 技巧提升buff的每层数值 赋值为 0,然后再去计算它,你看看,列出来的式子永远都是上面这样,不会上天。 这,就是属性计算的真正的逻辑。 其他属性其他属性不受状态影响,不被特效增幅,但是可能受环的影响 物理伤害 = (1 + 面板物伤 + 环物伤) * (1 + 遗迹祈愿物伤) 魔法伤害 = (1 + 面板魔伤 + 环魔伤) * (1 + 遗迹祈愿魔伤) 持续伤害 = (1 + 面板持续 + 环持续) 回复效果 = 1 + 面板回复 + 环回复 + 遗迹祈愿回复遗迹的物伤和魔伤是单独的乘区。回复是否是单独的乘区?欢迎测试后评论区留言。 环的物伤可以理解成瞬间增幅,但是深入考察后发现这种处理不妥。wiki测试服的模拟现在是非常贴近真实情况的——模拟的冒险者佩戴着模拟的环。环的物伤不是固定的,而是实时计算的。带着孤儿环和咒火的A与队友并肩战斗,此时如果A自己阵亡了,咒火的伤害会立即变化。 欠债机制状态buff也可以是debuff,如果减得太多,往往会减成负数,但最终不会是负数的,最多减到0。所以严谨地表达这些属性,需要在他们被计算出来之后,如果结果是负数,就得到0。这就是作业的答案。力量速度也不例外,下限是0。用函数max(a,b)输出a,b中大的那个数,属性的计算式应补充为: 属性 = max(面板+增幅+各种状态buff, 0)
如果,甲被对面狠狠地、无可救药的破光了,这时候神官奶上一口,能奶上护甲吗?答案是没有用的,直观地说,被对面破甲破的裤子都不剩,是不够的,还会欠债。不把欠的补上,休想护甲是正的。
我们叙述的属性计算逻辑在这里也是管用的。对面减甲很猛,那么护甲衰减buff的数值就是-99999,这时候神官给一个数值为9的护甲提升buff,照单全收,只不过最后要加所有护甲buff的总和,这一加起来,谁都敌不过这个-99999,最后就是负数,就是0。
魔煞短刃 ![]() ![]() ![]() ![]() ![]() 圣庭的特效,不属于回复类,而是属于状态这一类,而它的状态的类型为“hot”。 触发条件 战斗开始 发动物理攻击 发动魔法攻击 使用回复技能 受到物理攻击 受到魔法攻击在wiki测试服的JSON/装备数据.json中,“类型”和“触发”就是上面的这些。 装备触发的顺序 如果触发条件是“战斗开始”: 分别按照触发条件和概率,触发环、武器、衣服、饰品1、饰品2、魔石特效。 而如果是其他触发条件: 依次按照触发条件和概率,触发武器、衣服、饰品1、饰品2、魔石特效 (期间只要触发了,就结束)其实,这就是一个函数了。我们起个名字,叫做“准备”。他有个参数叫“触发条件”。他会跟据触发条件,调度各个装备特效的触发。以后我只要写: 准备(发动物理攻击) 就代表以发动物理攻击为“触发条件”,来执行上面的函数。
如果一个穿着 它就代表: 依次按照触发条件和概率,触发武器、衣服、饰品1、饰品2、魔石特效 (期间只要触发了,就结束)凯旋是没有特效的。风甲100%触发特效,触发了后面就中止不看了,最后执行的就是: 受到物理攻击时,风甲的特效。瞧,人话,都是人话。黑骑要挨打了,你就说让不让我做准备吧。这一准备,就把特效全部考虑逸当了。我们还没讲到挨打的流程,但想来你已经预想到了到时候会是怎么样。打人的人先来一个准备(发动魔法攻击),攻击时的装备特效就考虑好了,然后才举起黄瓜杖。挨打的人先来一个准备(受到魔法攻击),防御特效也到位,然后才把屁股撅起来。现在问题就聚焦到了一个点: 单个装备的触发函数是什么一个流程呢? 具体某个装备的触发 环的特效环的特效,严格来说只要处理一个东西:自杀火环在战斗开始时,给自己上一个dot。其他的环的特性,都不宜作为一个特效来处理,而是在用到的时候实时计算,啥时候用到啥时候算。特效只有开局、打人和挨打的时候,会通过准备函数来处理。 增幅类特效这个就很简单,就是去赋值增幅属性嘛。 增幅力量 = 100% * 力量至此,lecture 2 和 lecture 1 开始联系起来了:什么是力量? 状态类特效状态类特效首先跟据系数计算“每层数值”,然后挂状态,即让“对象”被挂状态。 状态类特效发生在技能释放完之后。因此要把这个状态先暂时存着,等技能放完了,技能附带的状态也附带完了,最后才打出去。 所以,流血甲出特效的那一下,是吃不到自己的技巧buff的。 连击类特效 冷却时间增加-4秒。这一操作的妙用后面会解释。 回复类特效 真伤类特效回复类和真伤类特效就是按照特效描述,直接进行回血和扣血。 治疗抑制治疗抑制看上去是一个特效,其实可以说是两个特效,也可以说不是特效。 在战斗开始时,把敌方全体的回复系数和吸血系数乘(1-治疗抑制的比例)。 在阵亡时,把敌方全体的回复系数和吸血系数除以(1-治疗抑制的比例) 举个夜莺流血甲的例子 夜莺: 它就意味着(发动物理攻击时,绿龙没特效,天使轮100%,乌鸦被覆盖): 发动物理攻击时,驱魔的特效。如果触发了,就中止。 发动物理攻击时,流血甲的特效。如果触发了,就中止。 发动物理攻击时,天使轮的特效。(100%触发)先看匕首,匕首“的特效”是这么处理的: 以(75%)的概率,如果触发,增幅技巧=2.2*技巧假设没触发,于是接着去看流血甲: 以(75%)的概率,如果触发,挂状态(...) 对象: 对自身 状态的信息: 状态名称: 专注 特效名称: 专注 状态类型: 技巧buff 持续时间: 8秒 数值: 0.5 * 技巧 (此时列式子计算技巧) 最大层数: 1 来源: 我的夜莺这一系列的连锁反应都只是一个小小的准备(发动物理攻击)所带来的!这就是lecture 2 的内容,我们把所有的装备特效,浓缩进了两个字:准备。 舒服了。 想一想开局的时候呢?只要一句准备(战斗开始),他就会分别调用各个装备的开局特效,战斗开始时走的流程是不中断的,所有装备都调用“的特效”,于是: 火环给上了自残dot,匕首给上了思维链接,绿龙给上了灵视,天使轮给上了天使之颂和天使之佑。最终出手之前,调用一次准备(发动物理攻击),决定最后的增幅。此时再计算技巧,所有的增幅和状态已经全部就绪,只等着发动技能时的灵魂拷问: 什么是力量? 什么是技巧?状态 - 时间 挂状态与被挂状态的机制已经阐述过了,但还有一些没解决: 到时间了,要自动把buff去掉 dot/hot要每过一秒扣/加血这些事情是需要不断地检查的,但你不可能一直盯着它这个状态——别的事儿不干啦?所以事实上是每过一段时间做一次检查。这个时间可能在55微妙左右,但我们不管他具体是多少,假设它叫做黑潮大陆的 普朗克时间
这样我们的手机就不会日理万机了。它设置一个时钟,每过一个普朗克时间就提醒手机处理一下所有的状态。而在这个普朗克时间的剩余时间里,它可以从容不迫地调用很多次 准备(发动物理攻击) 函数,或者下载它的小电影。这个处理状态的函数就叫做“状态处理”好了。它的内容是: 把所有状态的剩余持续时间减去普朗克时间 对所有类型为dot的状态,如果它的剩余持续时间是整数秒,就跳dot;对所有类型为hot的状态,如果它的剩余持续时间是整数秒,就回春 去掉所有剩余持续时间为0的状态 技能 - 时间想必大家看状态已经看麻了,现在终于换口味了。技能冷却结束后需要放技能,这个也是每过一个普朗克时间就不断检查的。冒险者怎么知道自己放不放技能,cd还有多久呢? 这就需要每个冒险者(和怪物)记住自己的两件事:冷却时间增加,和已等待时间。冷却时间增加,就是技能上面写的那个(冷却时间减少就当成增加一个负数)。已经等待的时间,就是从上次放技能开始经过的时间,记作WaitTime。然后这么算: 卸负后力量 = max(1, 力量-卸负) 力速比 = min(3, ⌊卸负后力量/(速度+1)⌋) CD = max(0.5, 1.5+力速比+冷却时间增加) 力速比的向下取整符号⌊ ⌋是向下取整到0.1秒。 前一节是状态处理函数,现在是冷却处理函数: 将Wait增加一个普朗克时间 计算CD 如果Wait达到了CD,放技能,Wait置0 否则憋着不放游戏中看到的冷却蓝条,显示的就是Wait/CD. 主函数 开局时, 按从左到右站位顺序, 执行所有人(和怪)的准备函数: 准备(战斗开始) 然后设置一个时钟,每过一个普朗克时间就执行: 按从左到右站位顺序, 执行所有人(和怪)的冷却处理函数 按从左到右站位顺序, 执行所有人(和怪)的状态处理函数这就是整个地堡的战斗过程,通过函数的思想,它最后就只剩下了这几行,非常清晰。下面通过几个具体的例子,说明这个逻辑的准确性。 先发与连击在战斗开始时,Wait 和 冷却时间增加 都被初始化为0,这时候计算CD就是1.5+力速比。然后经过这么长时间,Wait不断增加,直到打出技能。 先发的本质就是把 Wait 赋值为4.5(或者更大)。此时CD算出来一定没有Wait多,在第一个瞬间就出手了。 连击的本质则是把 冷却时间增加 赋值为-4(或者更小),此时CD算出来一定是0.5,而Wait从0开始计时,经过0.5秒打出连击。 半门力速之谜计算一下半门祭祀的CD。什么是力量?这次这不重要,因为影兽假面卸负500,那么力量-卸负就是个负数,卸负后力量就是1. 什么是速度?速度=max(0, 面板速度+增幅速度+各种速度buff),因为吃了一个巨额的减速,算出来肯定是负数,那么速度就是0. 于是力速比 = min(3, ⌊卸负后力量/(速度+1)⌋) = 力速比 = min(3, ⌊1/(0+1)⌋) = 1。 进而CD = max(0.5, 1.5+1+3.5) = 6秒 而门呢?门的力量5400,速度3600,冷却时间增加3秒。力速比 = min(3, ⌊5400/(3600+1)⌋) = ⌊1.4996⌋ = 1.4,CD = 1.5+力速比+冷却时间增加 =1.5+1.4+3 = 5.9秒! 血法CD是3秒,半门CD是5.9秒,所以不能稳定吸两口血,不是网络问题。 恭喜你,你的力速比理解已经是大气层级别了! 技能冷却进度条有时候打带有速度衰减的boss,你有没有过这样的经验:还没开出嘲讽呢,被怪打了一下,然后进度条就好像不动了,嘲讽开不出来,直接寄。 怎么解释呢?观察我们的冷却处理函数,在每个普朗克时间,她都会重新计算CD。被减速后,力速比变大了,算出来CD长了,进度条就不会进了。本来该后退的,但是那样看起来太奇怪了,所以就停在了那里。而如果你给boss减力,下一个普朗克时间就会算得CD很小,然后就发现Wait比CD大了,瞬间出手!你再次团灭。 跳dot夜莺挂dot,剩余时间8秒,那么在剩余时间为7,6,5,4,3,2,1,0秒时跳出dot。剩余时间为0秒时,先跳出dot,随后因为剩余时间为0,状态被删除。 技能选择 主函数轮流调用每个人的状态处理和冷却处理函数。其中冷却处理函数中有“放技能”这件事,接下来继续展开技能施放的细节。 手动模式,指哪打哪,不必多说,我们关注自动的时候,包括怪物AI。 6个技能大类 自奶类 嘲讽类 反击类 奶人类 群攻类 单攻类每个技能都属于这6种技能中的一个,放技能的时候,是按这个顺序判定的,回忆元素法的技能设置,就是奶自己、奶队友、群攻、单攻的顺序。 能奶队友的技能,必然也能奶自己。 这6个大类,只是形象化地起个名字,属于“群攻”类的技能,不一定是群体攻击技能,只要技能施放的判定,是“敌方不少于X人时施放”,就属于这一类。 一字马(图25伊兹玛尔)。在队伍减员时,它就会掏出魔将(图22)的通魔战刃(我捡到的通魔是假的?)。它的“群攻”技能是正常的技能,设置成敌方不少于4人时施放。“单攻”技能是插人。如果少人了,就不满足群攻的施放条件,按顺序判定下一类技能,就到单攻了。 裂隙87,“群攻”技能非常凶猛,设置成敌方不少于2人时施放。图29癫狂之花同理。 不死虫,“奶自己”技能设置了当自己血量少于15%时施放。 所以这些怪,看上去机制特殊,其实一点也不特殊,就是这5个大类,改改技能设置。 技能设置我们说区分这5个大类的唯一标准,就是一个技能的技能设置长啥样。具体来说: 奶
先选好技能,才能选目标。不然咋知道是不是无视嘲讽呢? 攻击技能选攻击目标,群攻技能不选目标?错误的。 无论放啥技能,都要把单攻、单奶的目标选出来。如果技能是群攻,装备是对敌方单体上buff,装备哪里知道buff上给谁呢?昏掉嘞。 优先攻击的目标 随意攻击 剩余生命最少/最多 总生命值最少/最多 护甲最少/最多 抗性最少/最多优先治疗的目标,就是除了自己以外,剩余生命百分比最少的。 再谈“挂状态”函数。我们讲过挂状态的对象了,有对敌方全体,敌方单体,自身,己方全体,己方单体。现在我们就知道,如果挂状态的对象是敌方单体或己方单体,就是跟据在这里选择好了的目标,来执行被挂状态函数。 技能施放 准备函数 施放技能 如果冷却时间增加不到-4,更新之; 清除增幅 挂状态函数 准备函数准备函数已在lecture 2介绍。 准备函数有多种,这里只出现准备(发动物理攻击),准备(发功魔法攻击),准备(发动治疗)。 施放技能这是下节课的内容。 如果冷却时间增加不到-4,更新之通常,放完了技能,要按照技能上面写的,设置冷却时间增加多少多少秒。但如果在执行准备函数时,装备触发了连击,连击特效的本质在lectue 3讲过,是把冷却时间增加设置为-4。这时候就不要再按照技能去设置冷却时间增加了,跳过这一步。 清除增幅准备函数会有增幅特效,放完了技能要把增幅去掉。增幅联系着lectue 1讲的属性 = max(0,面板+增幅+各种buff)。 挂状态函数这是lecture 2的homework,装备如果要挂状态,要等技能放完了再挂。 技能也会有挂状态,技能挂状态包含在“施放技能”的过程中,这里只是装备挂的状态。
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |