04. 创建技能的语法,以及触发技入门

好了好了,说了这么多,我们来开始创建技能吧。

创建技能的语法

'$' <标识符> <字符串> [<技能频率>] {<技能主体内容>} '以上'

其中,标识符里面是技能的名字,字符串是技能描述。技能频率则是一个可选项。技能主体内容被用花括号,表示它可以在这里出现0次或者很多次,至于他具体是什么后面再介绍。这些都弄完之后,用一个“以上”表示这一整个技能创建结束。

技能频率,其实就是一个作用于整个技能的标签。它有以下五种可能形式:普通技锁定技默认技觉醒技限定技。普通技是在不填技能频率时的默认情况,没有什么特别的意义。而默认技就是在询问发动技能时,会跳过对玩家的询问而直接发动的技能。

剩下最重要的部分就是技能的主体内容了。正如前面所示,单纯写个技能描述是不能达到制作新技能的目的的。我们需要按照一定的语法规范去编写技能的主体内容,才能让fkparse生成相应的技能代码。

技能主体内容分为这三种:<触发型技能>主动型技能状态型技能。这就意味着,fkp中可以创建这三大类技能:

  • 触发技:所有被动发动的技能,典型的例子有卖血技
  • 主动技:所有在出牌阶段空闲时间点主动发动的技能
  • 状态技:除了上面两种技能之外的技能

在语法规则中,技能主体内容被用花括号包括着,意味着它可以出现许多次。这样就相当于允许fkp创建既有触发部分又有主动部分的复合型技能。

下面来介绍触发技。


触发型技能的语法

触发技是最为复杂的技能,但它的形式却可以写成最简单的样子。这也是用触发技作为第一个例子的原因。总之,我先把触发技的完整语法贴在这,别被吓到咯。

'触发技' <触发技主干> {<触发技主干>}

而触发技主干的语法规则为:

'时机:' <时机>
['条件:' <代码块>] 
[ ['如何执行:' <代码块>] ['消耗:' <代码块>] ]
'效果:' <代码块>

或者:

'时机:' <时机>
['条件:' <代码块>] 
[ ['如何执行:' <代码块>] ['消耗:' <代码块>] ]
'刷新:' <代码块>

真复杂啊,这种东西怎么适合给新人看呢,看一眼就觉得劝退的。不过呢,我们可以注意到,语法中有许多可有可无的组成部分,那就一律不写吧!经过这么一简化之后,触发技的最简单格式就变为了:

'触发技'
'时机:' <时机>
'效果:' <代码块>

这样一来简单多了吧?我们回过头看看创建的第一个技能——“奸雄”(摸四神将)的代码:

$ ‘奸雄’ “你受到伤害后,可摸4张牌。”
  触发技
  时机:受到伤害后
  效果:
    你说出“奸雄”的台词
    你摸4张牌
以上

其实也不复杂对不?这样的一个技能就已经是最为简单的技能了。

时机是什么?

所谓时机...自然就是触发时机了。时机有哪些可选项呢?这个实在是太多了,小小的一篇文章实在无法尽述。不过,fkparse软件包里面不是附送了pdf嘛。打开pdf,查看目录:第12章 - 所有触发时机。没错,所有的触发时机都在这了,一共有好几页呢。这些时机也不需要一一掌握,照着这系列文章来就行了。我以后会经常拿pdf里面那张表作为参考的。

代码块是什么?

所谓代码块,自然就是一系列<语句>的结合体了。代码块的语法规则为:

{<语句>}

没错,就算什么都没有,编译器也会把它当做一个代码块处理的。

而在触发技中,效果:后面跟随的那个<代码块>,就是这个技能真正执行效果的地方了。下一篇文章将向大家介绍各种各样的语句。


文章都结束了,说好的创建技能呢?没办法,那就用本文介绍的内容赶紧创建一个技能吧。

$ ‘英姿’ “摸牌阶段,你可以多摸7张牌。”
  触发技
  时机:摸牌阶段摸牌时
  效果:
以上

技能创建了,但是效果呢?下一篇再来讨论吧。

你可能感兴趣的:(04. 创建技能的语法,以及触发技入门)