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

编辑器飞升速学04-事件编辑

2023-01-17 10:07 作者:异星前哨  | 我要投稿

船长们春节快乐,小梅本次给各位带来的编辑器教学是事件编辑,涵盖触发器的相关操作讲解。内容可能会比较硬核,一定要认真哦~

 

本节课会结合官方示例塔防地图(地图可前往编辑者作者交流群:786665922群文件中获取)演示说明,请跟着节奏学习。

 

一、基础介绍

1、事件编辑

此功能模块在编辑器的菜单栏,通过它你可以定义独一无二的规则,来创造各类丰富的玩法!你的地图的自由度、内容深度可通过事件编辑有效提高。

比如,在特定时间出现各类不同的敌人、修改单位的数值属性、设置特定任务、胜利和失败条件、通过模板更方便地完成各种功能等。事件编辑界面如下:

2、触发器

触发器是事件编辑的重要组成部分,通过设定不同功能的触发器,并使用相应的代码,能具体实现地图中的各个事件和游玩流程。

 

你可以直接创建触发器,也可以通过预设的触发器模板创建。通过模板创建,可更快捷地完成大部分你想要实现的功能,不然你需要较熟练地了解各项表达式的作用,直接编辑触发器。

类型划分上,触发器分为3种:标准、轮询、定时

三种触发器功能完全一致,轮询和定时均自带模板,如果需求和模板一致,则建议直接使用对应的触发器,便于分类管理。

标准触发器:基础的事件触发器;

轮询触发器:默认触发事件为“每帧结束时”;

定时触发器:默认触发事件为“游戏时间变化时”。

二 实例讲解

为更好给大家讲解事件编辑的应用,小梅用官方示例塔防地图现身说法,展示这张地图的各种功能是怎么用触发器实现的。

地图说明及所在位置:自定义关卡→示例塔防

地图内展示:

1、游戏初始化触发器

在地图新建时,事件触发器处有一个默认事件-游戏初始化,此事件会在游戏中生成一个主基地,不能删除此项,会导致游戏报错。

 

有些萌新刚开始可能会不小心误删这个触发器,会产生建筑断电的影响。

2、编辑事件-创建触发器

①点击事件触发器处的+号,会创建出一个New Trigger

②点击New Trigger

③在右侧名称处填写你的自定义命名

④触发事件处填写此事件会在什么情况下触发

⑤条件检查处填写需要满足的条件

⑥执行行为处填写此事件会做什么(具体参照右上角查询数据中的表达式列表)

功能介绍完毕,接下来看我如何通过事件编辑完善塔防地图的规则。

 

3、替换主基地的建筑菜单

①点击事件触发器处的+号,创建出一个New Trigger

②点击New Trigger在右侧名称处我修改为替换基地建造菜单(此处不影响游戏功能,随自己爱好定义)

③在触发事件处,我修改为进入游戏时触发,意味着只要玩家在游戏中时,这个就会有效,玩家加载存档都不影响该事件

④条件检查处我没有填写,因为此事件不需要检查

⑤执行行为处,我使用右上角查询数据中的表达式CoverCreMenu('building',1,'111'),代表着把建筑id为1的建筑菜单替换为111菜单,ID为1的建筑就是我们的主基地,111菜单,就是我为大家内置提供好的塔防建筑列表,表达式中的标点符号要使用英文标点

4、创建异形虫潮

通过前面创建事件的形式,创建一个虫潮事件。

在触发事件处选择进入游戏时,执行行为处填写我们提供的表达式(右上角查询数据中),示例中代码为:

TriggerInsectTide(1,{{x=479,z= 265,length=10,width =10,name="南方"},{x=242,z= 460,length=10,width =10,name="北方"},{x=254,z= 249,length=10,width =10,name="西方"},{x=450,z= 484,length=10,width =10,name="东方"}},2,{{id=1501,num=300},{id=1502,num=100}},20,true,true,false,false)

 

结合表达式中的解释,剥丝抽茧后的含义为:

TriggerInsectTide(游戏时间第1天创建,{生成虫潮的坐标点,name="自定义的名称"},{生成虫潮的坐标点,name="自定义的名称"},{生成虫潮的坐标点,name="自定义的名称"},{生成虫潮的坐标点,name="自定义的名称"}},创建2处虫潮,{{id=虫子的id,num=虫潮的数量},{ id=虫子的id,num=虫潮的数量}},提前20小时预警,true(在小地图上显示进攻头像),true(在小地图上显示进攻路线),false(不震屏),false(不开启全面进攻))

 

代码从这里看有些长,但实际你配合表达式上的参数解释,相信很快就能掌握。(ง •_•)ง再次提醒,表达式标点需要用英文标点。

 

5、胜利和失败条件的设置

我们的游戏需要设置游戏是如何获胜和如何失败,这样玩家才能正常的结束我们的游戏。比如想让玩家在第15波击杀虫潮后获得胜利。

 

①创建事件后,在触发事件处选择异形进攻结束,那么当虫潮被我们击杀时,此事件生效

②但此事件并不知道我们在第几波虫潮结束时获得胜利,所以我在条件检查处填写bat == 15,这样,只有第15波虫潮结束时,此事件才会被激活

③激活后执行行为SetVictory(),获得胜利

接下来,我们来设置游戏的失败规则。比如想让玩家的主基地在被感染的时候结束游戏。

 

①在触发事件处,填写当建筑被感染时,作为触发条件

②在条件检查处填写oid==1,oid是建筑的唯一id,1为我们的主基地id。填写完成后,此事件就知道,当主基地被感染时才会生效执行

③执行行为填写我们的游戏失败表达式SetDefeat()

6、在敌人眼前建造建筑

在游戏中,如果我们想要在敌人附近建造建筑,往往系统会提醒你附近有敌人,无法建造,那么怎么才能去掉这一个限制,让我们在敌人的眼前建造我们的建筑。接下来增加一个修改建造距离的事件即可。

 

使用SafeBuildDistOffset(-3)表达式,将我们的建筑安全距离减少3格,这样我们就可以不受怪物影响的建造建筑了。

7、修改主基地的资源加成

因为我们进入游戏会携带英雄,而英雄和兵种会占用我们的资源,这个时候要么通过修改单位的属性,去掉他们的资源占用;要么给我们自己加上资源,抵消掉这部分占用。

 

以下我展示的为抵消占用的方式:修改一个建筑的属性,有两种方式,第一种就是在属性编辑中直接修改(第二讲中有讲解),另外一种就是通过事件编辑来修改,接下来,我将演示事件修改的方法。

编辑事件中,使用加资源的表达式SystemAddRes({coin_add=3}, 'sys'),代表给游戏加了3的金币产出,用于抵消英雄的3金币占用。

 

这样本次讲解我们就结束了,当然由于事件编辑涉及内容比较硬核,牵扯到各种触发器和代码。各位船长如果有不清楚的地方,欢迎加入编辑者作者交流群:786665922,里面不仅有官方技术人员在线答疑,还能和众多同好交流经验!


编辑器飞升速学04-事件编辑的评论 (共 条)

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