第二节 走进触发器之「奏乐」特技的实现(一)

从这一节开始,我们开始进入正式的脚本修改跟创造。
学习,从模仿开始。
请记住这句话。
pk2.2的脚本都是开放不加密的,所以每个人都可以轻松查看学习跟修改。
所以要做的是多看+多写。
一开始看,肯定是看不懂,这个时候要结合文档(上一节有提过)去查看各个数据类型,各种函数的意思。
好了,我们直接进入正文。
这是打基础的章节,我们分三个小节去讲。
第一小节 触发器的认识及简单例子
第二小节 「奏乐」特技的实现
第三小节 其他若干例子

第一小节 触发器的认识及简单例子
1 触发器的概念
触发器的概念为:指某个行为/时间发生的时机或者时点。
举个例子,“晚上吃饭”,晚上是时机,吃饭是行为。晚上就是一个时间类别的触发器
我们来看特技「奏乐」的描述:己方部队每回合回复气力5点。
其中的每回合就是1个触发器,已方部队是目标,回复气力5点是行为。(这将是后面高频用到的特技分析思维)
看不懂也没关系,可以先跳过,看后面的实际例子后再回来理解。
2 触发器的分类
打开pk2.2/script/html,找到page_event.html,用浏览器打开。
如图,这些都是游戏里的触发器。
分为
时间维度:随着游戏时间变化引起的触发器
行为维度:由游戏过程中各种行为改变引发的时机,主要是建筑跟部队,武将。

这些分类,看几遍熟悉一下,需要的时候再回来找。
常用的是 新天(每旬), 回合开始两个
3 触发器的例子
概念讲完了,我们正式进入脚本的编写。
我们打开几个cpp观察,发现大多数文档都是这样的。(cpp用记事本或者写字板打开,哪个不乱码就用那个)
这里先不用理是什么意思,知道这是基础的文本结构即可。进阶我们再详细介绍,一开始依葫芦画瓢就行。
触发器的核心代码就一句
打开pk2.2/script文件夹
1 新建文本,取名为触发器.cpp. (当然,由于是自定义包,加上custom,再加上个人标识,比如我的是zzdiy)

2 用记事本或者写字板打开,将上面的代码粘贴。

3 将namespace 后的xxx 改为触发器,按ctrl+s 保存。

4 在Main() {}里面写上以下代码
5 在Main() {}外面写上以下代码
聪明的你肯定发现旬初前面有个void单词,这里是函数的返回值类型,也就是上一节说到的游戏数据类型以及基础类型。
一样,我们不用在触发器这章节纠结,因为所有触发器返回值类型都是void。
还记得第一节,我们将吕布忠诚设置为120吗?当时留了个小问题,什么时候触发。
现在可以直接把这句代码写到旬初函数内。
最后变成
以上代码的意思是:每旬开始时,将吕布的忠诚设置为120。

所以触发器的编写步骤
1 在 Main() {}里面写上 pk::bind(107, pk::trigger107_t(旬初)); 其中数字根据文档来,函数自己取名。
2 在 Main() {}外面,写void 旬初(){}。
3 根据文档看是否有指定参数,调整函数。(时间维度函数一般没指定参数,下个例子我们讲111触发器的时候再说)
第一小节就到这结束了,建议先动手试试,并且试试比如把其他武将的忠诚或者吕布的其他信息更改要怎么改。
(完)