插件手册:betonquest:事件列表

这是本文档旧的修订版!


事件列表

(版本:2018-02-25 翻译:Afry、kjiang 原文链接

static

可以向玩家对话框中发送一条消息. 可以用&显示颜色 . 可以用 {lang} 区分多语言. 这里可以使用和聊天中一样的参数. 但是不能用 %npc%.

例子: message {en} &4You are banned, %player%! {pl} &4Jestes zbanowany, %player%! {de}&4Ich weiß nicht.

persistent, static

通过控制台执行命令. 这里只能用 %player% 属性. 可以执行多条指令,用 | 分隔.

例子: command kill %player%|ban %player%

传送玩家到一个位置,可以控制玩家视角. 这个指令会导致强制关闭当前对话. 只有一个位置参数: 100;200;300;world 或者 100;200;300;world;90;45 (最后两个值控制玩家视角)

例子: teleport 123;32;-789;world_the_nether;180;45

persistent

指定玩家一种积分进行操作. 可以用乘法. 第一个操作是积分的类型, 第二个参数是 加/减/乘.

例子: point npc_attitude 10 例子: point village_reputation *0.75

persistent

为玩家添加(add)或者移除(del)标签. 多标签可以用逗号分隔.

例子: tag add quest_started,new_entry

persistent

启动/删除/完成任务。格式是objective <action> 任务名称<action>可以是startdeletecomplete。后面的任务名称应该提前在objectives.yml中定义。

例子: objective start wood

添加或删除玩家的日记. 第一个参数是添加(add)或删除(del), 第二个参数定义在 journal.yml 中. 也可以直邮一个参数update, 据说挺有用.

例子: journal add quest_started

例子: journal update

static

根据给出的位置搞一个闪电出来. 只有一个这样的参数: 100;200;300;world

例子: lightning 100;64;-100;survival

static

制造一个爆炸. 据说能着火和摧毁方块. 能定义爆炸能量,但是不要炸服. TNT能量是4,凋零是7. 第一个参数定义是否着火(类似恶魂). 第二个参数定义是否会破坏方块. 第三个是爆炸能量. 最后一个参数是位置.

例子: explosion 0 1 4 100;64;-100;survival

给玩家物品. 这些物品在 item.yml定义. 用逗号隔开,每个物品可以用分号指定数量,默认数量是1. 如果背包没有位置,会掉在地上, 除非他们是任务物品. 这些东西会放在玩家背包,你可以写一个提示.

例子: give emerald:5,emerald_block:9

从玩家背包移除物品. 要注意的是,不要让玩家钻了“把扔物品扔地上再执行这个事件”的空子. 需要先判断玩家是否有这些物品!

例子: take emerald:120,sword

给玩家药水效果. 效果列表. 第二个参数代表药水效果的时间是多少秒. 第三个代表了药水的等级. 可以使用--ambient 可以让玩家看不到药水的视觉特效(类似于信标).

例子: effect ABSORPTION 120 1 --ambient

让玩家开始一个对话,只有一个参数,对话的ID. 这个需要对话的权限(应该都有)!

例子: conversation village_smith

一言不合就杀玩家.

例子: kill

static

在指定的位置放置一定数量的某种生物。第一个参数是坐标位置,然后第二个是怪物类型。第三个是数量,最后可以给怪物个名字,名字内所有的空格需要用_代替。You can also mark the spawned mob with a keyword using `marked:` argument. It won't show anywhere, and you can check for only marked mobs in `mobkill` objective.

你还可以指定生物的装备和手持物品,如h:头盔、c:胸甲、l:腿部、b:鞋子、m:主手、o:副手,每样只可以规定一个物品所以不用填数量。物品名称来自items.yml。另外你还可以通过drops:指定生物死亡时的掉落物品,物品名称后面用:填写数量,多个物品用,隔开。

例子: spawn 100;200;300;world SKELETON 5 marked:targets

例子: spawn 100;200;300;world ZOMBIE name:Bolec 1 h:blue_hat c:red_vest drops:emerald:10,bread:2

设置或增减时间,24小时制。分钟可以用小数表示。

例子: time +6

设置天气. 参数是不需要翻译的 sun, rain or storm.

例子: weather rain

persistent, static

可以一次性执行多个事件任务。每个任务之间可以延时执行。这个是持续persistent事件,所以即使玩家退出游戏了,BetonQuest依然会执行folder内的任务。需要注意的是,当玩家退出游戏后所有的条件Conditions都会变成失效false,所以这些事件都不能有任何前提条件!

这个事件有两个可选参数,delay:random:delay默认是0,单位是秒。random是事件执行的个数,如果为0或者不写这个参数,将会执行folder内的全部事件

例子: folder event1,event2,event3 delay:5 random:1

persistent, static

可以给一个位置设置材料. 第一个参数是材料的名字 (材料列表). 有个可选参数data: 是材料的子ID(比如木头就有好多种),整数,默认0。

例子: setblock REDSTONE_BLOCK 100;200;300;world

用小拳拳给玩家一定的伤害,可以为小数。

例子: damage 20

团队Party内的所有成员执行一系列事件。关于团队Party的更多信息请参阅团队 Party章节。

例子: party 10 has_tag1,!has_tag2 give_reward

清除一定区域内的指定生物。第一个参数是(生物类型),第二个参数是 坐标100;200;300;world;10,然后是刷怪半径。可以指定名字 name: 参数。

例子: clear ZOMBIE,CREEPER 100;200;300;world 10 name:Monster

可以一次性执行多个事件event。为了区分每个任务,开头部分需用^标记。有别于任务包folder,你需要填写具体的event而不是event的名字。另外,这些event会在一个时刻tick内一次性执行而不是逐个tick轮流执行。因为Bug的原因,请不要使用条件Condition判断,作者表示此问题将会在1.9版修复。

例子: run ^tag add beton ^give emerald:5 ^entry add beton ^kill

类似于 /j 命令.

例子: givejournal

类似于command指令,但是这个相当于玩家自己输入指令。

例子: sudo spawn

persistent, static

往箱子/容器里添加物品。如果容器满了,那么加不进去的物品就会掉到地上。添加的对象可以是箱子/陷阱箱/漏斗/投掷器/熔炉等等。当所在位置并没有任何容器的时候,BetonQuest会在服务器控制台console中显示一个错误。

例子: chestgive 100;200;300;world emerald:5,sword

persistent, static

和take类似,但这个事件会从箱子等容器移除物品,参数定义和chestgive事件一样。

事件: chesttake 100;200;300;world emerald:5,sword

persistent, static

这个事件会清空箱子等容器内的全部东西,唯一的参数是坐标。

例子: chestclear 100;200;300;world

当启动这个事件的时候,玩家可以让他的指南针指向特定的坐标。玩家还需要打开他的背包并点击“指南针”才可以选择坐标。第一个参数是添加add删除del,第二个参数是坐标的名字,坐标名字在main.yml中定义。

目的地坐标必须提前在main.yml定义。你可以根据不同语言指定目的地的名字,你也可以干脆为所有语言直接写一个通用名字而不用管翻译问题。另外可选的你还可以自定义一个物品(在items.yml中定义)作为按钮图标,用于在玩家背包中展示。一个compass的配置文件例子如下:

compass:
  beton:
    name:
      en: Target
      pl: Cel
    location: 100;200;300;world
    item: scroll

例子: compass add beton

类似于GUI里面的任务取消按钮,这个事件用来取消某个任务。启动这个事件相当与玩家自己点击取消任务按钮。唯一的参数是需要取消的任务名称,这个名称来自配置文件main.yml

例子: cancel wood

积分point类似,唯一的区别是这个功能使用的是Minecraft自带的记分板Scoreboard。你可以加/减/乘/除某个记分项目的积分。第一个参数是记分项目名称,第二个是加减乘除的分数,正数加,负数减,*n乘,乘以小数则是除。

例子: score kills 1

持续的, 静态的

这个事件可以用来控制拉杆。第一个参数是拉杆所在的坐标,第二个是on打开、off关闭、或toggle扳动。

例子: lever 100;200;300;world toggle

持续的, 静态的

可以用来控制门、陷阱门、栅栏门等。参数和上面的lever拉杆一样。

例子: door 100;200;300;world off

此事件可以根据某个condition的判断结果,决定执行第一个还是第二个event。基本格式是if condition1 event1 else event2,这里condition1来自于conditions.ymlevent1event2则是另外两个来自events.yml的事件名称。基本逻辑是,如果conditions1是满足的,那么启动事件event1,否则就启动事件event2

例子: if sun rain else sun

这个事件只有一个功能:改变某个保存在变量任务目标 Variable Objective中的值。第一个参数是来自variable objective的ID(输入其它ID将会报错),第二个是变量的名称,第三个是需要更改的值。第二和第三个参数你可以直接使用%…%这样的值。关于变量目标 variable objective的更多信息请参阅任务目标:变量variable了解跟多关于变量的信息。

(kj:我看到也一脸懵比,可能翻译有误,所以英文原文摆这里了)This events has only one purpose - to change variables stored in `variable` objective. The first argument is the ID of a `variable` objective (if you use any other type you will get an error). Second one is the key of the variable and the third is the value. Both can use `%…%` variables. Refer to `variable` objective documentation for information about storing variables.

例子: variable some_var_obj name %player%

  • 插件手册/betonquest/事件列表.1529474522.txt.gz
  • 最后更改: 2018/06/20 14:02
  • JohnHo