欢迎光临散文网 会员登陆 & 注册

新元的无名杀扩展教程(一)技能_11 事件与set函数

2023-01-09 23:42 作者:新元noname  | 我要投稿

前言

在之前10期,我们已经了解了很多与trigger类技能相关的内容,这期是trigger类技能教学的最后一期,接下来会有2~3期的主动技讲解,这之后,技能的所有讲解内容就结束了,不定期的更新将会转向解释技能。本期中,将会讲到一些函数的等价写法。就是说不用在小括号里填东西,而直接


事件

事件及事件的触发

我们把摸牌,弃牌,用牌,恢复体力,失去体力,造成伤害,摸牌阶段,弃牌阶段等等称作一个事件。

比如,我们都知道,摸牌的函数是

player.draw()

这就是一个事件。事件就可以触发对应触发器的技能。

比如,如果我们的技能触发时机设置为摸牌。

trigger:{

player:'drawBegin'

},

当我们执行了函数:player.draw()后,就会触发带有trigger:{player:"drawBegin"},的技能

以上就是对于事件和触发事件的说明。


事件的数据表

我们根据经验可以知道,content函数中的trigger是和事件有关的对象。

还是以刚才的摸牌事件和触发器为摸牌的技能为例,

这时,在技能content函数中写的trigger.player是谁呢?

正是player。

此时,trigger.player与player是指向同一角色的。

从字面理解,trigger.player就是触发事件的角色。

有时,我们也可以看到,触发和用牌相关的技能时,会有trigger.card,trigger.cards的出现。

造成属性伤害,会有trigger.nature的出现。

多摸牌,会有trigger.num的出现

等等

把以上这些总结,可以得到两点:

①任何事件都有trigger.player

②其他的属性,如num,source,target,card,cards,nature,prompt,forced等等是根据不同的事件而出现或不出现的。

由此可见,content函数中的trigger就是事件的数据表。在下文中我们用next表示事件的数据表


set函数

而想要弄清楚trigger中的属性具体意思,就不如实战出真知。

而现在我们将用到一个set函数,它是专门为事件设置的函数。用法如下:

比如说有一个事件,其全部数据都在next这个obj中,我们现在要给他添加一个叫做'xinyuan'的属性,属性值设置成100,该怎么做?

next.set('xinyuan',100)

set要用到两个参数

参数1是属性名

参数2是属性值

除了以上演示的添加属性值外,也可以以此法更改属性值。


next属性的对应关系

我们通过日常代码的编写,可以察觉到next中属性的关系,而为了让这种关系更加明显,我将采用对比的方式来呈现。为了更加直观,会出一个关于set的视频系列。


新元的无名杀扩展教程(一)技能_11 事件与set函数的评论 (共 条)

分享到微博请遵守国家法律