Arrow Spell
箭矢法术
警告
!!
此法术已经废弃且从
Beta5
开始和
Bow Spell
弓法术合并
常规法术
。
这是一种
用于作用于
弓的
法术
,当箭击中一个实体或地面时,
将会让bow-name设置的弓名释放一个箭矢法术
。
弓名区分大小写
。
可配置项目
:
举例
:
arrow:
spell-class: ".ArrowSpell"
bow-name: "
毁灭之弓
"
spell-on-hit-entity: explode
spell-on-hit-ground: explode
use-bow-force: true
Bow Spell
弓法术
常规法术
,
当设定名字的弓射出箭时触发一个法术
,
弓名区分大小写
可配置项目
:
在
beta 5
版本后的
magicspells
才具备以下设置。截至
2020/4/3
,上面的设置项还未完全更新完。编辑者
只是想把
这一技能举例
放
wiki
上以便查阅。
翻译者在部分设置内容后加注
,
来源于个人经验总结
,
这是原
WIKI
所没有的内容。
举例
:
bow:
spell-class: ".BowSpell" #
技能的归属类型
bow-names: #
以下名字的弓能够触发这一法术
,
建议把这几行全删了
- "Bow Of Volley"
- "Bow Of Volley2"
cooldown: 1 #
冷却时间
,
秒
cancel-shot: false #
是否能取消射击
?
use-bow-force: true #
是否启用弓力度
cancel-shot-on-fail: false #
施法失败是否撤销技能
?
str-modifier-failed: "
你未满足施法条件
!" #
条件不满足的提示消息
minimum-force: 0.5 #
最小力度
spell: EFF_ARROW #
使用时触发哪一技能
?
这也是你已经写好的技能才有效
spell-on-hit-ground: ARROW_GROUND #
射中地面时触发哪一技能
?
spell-on-hit-entity: ARROW_ENTITY #
射中实体时触发哪一技能
?
modifiers: #
技能所需条件
- sneaking required #
必须要潜行射击
target-modifiers: #
目标所需条件
- entitytype pig required #
目标种类必须是猪
location-modifiers: #
位置所需条件
- inblock grass_block required
必须在草方块里面
EFF_ARROW: #
弓技能的本体里有写这个技能
,
作为它技能体系的一部分
spell-class: ".instant.DummySpell"
effects: #
效果
,
以下的层次名可以随便取
,
建议英文、数字和下划线组成
eff1:
position: caster #
以施法者为效果的位置
effect: effectlib
effectlib:
class: SphereEffect #
球形粒子
particle: REDSTONE #
这里是红石粉末效果
particleSize: 0.8 #
粒子大小
color: ffff00 #
颜色
,
仅对某些可配置颜色的粒子有用
iterations: 20 #
重复次数
period: 3 #
时效
radius: 1.25 #
范围
particles: 40 #
粒子数目
visibleRange: 60 #
可见范围
ARROW_ENTITY:
spell-class: ".targeted.DummySpell"
effects:
eff1:
position: target
effect: effectlibentity
effectlib:
class: SphereEffect
particle: REDSTONE
particleSize: 0.8
color: 00ff00
iterations: 20
period: 3
radius: 1.25
particles: 40
visibleRange: 60
ARROW_GROUND:
spell-class: ".targeted.DummySpell"
effects:
eff1:
position: target
effect: effectlib
effectlib:
class: SphereEffect
particle: REDSTONE
particleSize: 0.8
color: 00ffff
iterations: 20
period: 3
radius: 1.25
particles: 40
visibleRange: 60
Buff Spell Configuration
BUFF
类技能的配置
:
|
|
|
|
|
|
|
|
can-cast-by-command
指令释放开启
|
是否可以用/cast 技能名 ||指令释放?设置为true将不能用/cast
|
|
|
|
如果你的MS版本低于4.0,此选项将无法锁定除玩家之外的其他实体
|
|
|
|
是否可以在激活状态下停止释放。冷却只会在持续阶段结束后计算
|
|
|
|
BUFF激活所用的消耗物。The cost will be charged on the interval defined with the option below. 可用消耗物类型: health生命, mana法力, hunger饥饿, experience经验, levels等级, durability耐久, money钱 (必须有前置插件Vault),或物品种类(ID)。所有列表里的物品必须指定数量,或者默认为1,不同消耗品之间需要用空格隔开。
|
|
|
|
|
|
|
|
|
|
|
|
以秒为单位控制技能失效前的使用时间。设置为0代表使用时间不受限制
|
|
|
power-affects-duration
强度对时间的影响
|
|
|
|
cancel-on-give-damage
致伤取消
|
|
|
|
cancel-on-take-damage
受伤取消
|
|
|
|
|
|
|
|
|
|
|
|
cancel-on-change-world
跨世界撤销
|
|
|
|
cancel-on-spell-cast
同时撤销
|
|
|
|
|
|
|
|
spell-on-use-increment
附带法术
|
当BUFF法术使用时将会触发的另一法术。即便把 num-uses设置为0也会触发一次
|
|
|
|
|
|
|
Dummy Spell
虚拟技能
这类技能没有设置项的限制、没有专门的设置项
,
可用于各种各样的技能体系中。
例如使用
instantdummyspell
来改变
变量
变量举例
:
variablechangedummyspell:
spell-class: ".instant.DummySpell"
variable-mods-cast: #
对变量的处理
- variable +1
这样改变变量很方便
,
因为它
对
玩家或者周边事物没有什么影响
,
藉此可以优化你的法术构造,让它更加简单易懂。
种类举例
:
instantdummyspell:
spell-class: ".instant.DummySpell"
buffdummyspell:
spell-class: ".buff.DummySpell"
duration: 20
targeteddummyspell1:
spell-class: ".targeted.DummySpell"
External Command Spell
外部命令类技能
可以让技能执行指令
。
可以指定
caster
施法者
, targeted player
目标玩家或
console
控制台执行指令。最多支持
10
个自定义的参数供指令使用
。
Spell Options
法术设置项
|
|
|
|
|
|
|
|
|
|
执行的命令列表,忽略指令的第一个斜杠
可用参数请看
这里
|
|
command-to-execute-later
延迟触发
|
和
command-to-execute类似但是这里的命令将会在延迟后触发延迟请在command-delay里设置。
出于某些原因, 参数
%var
和
%playervar
不能在这里使用
|
|
|
|
|
temporary-permissions
暂时权限
|
一个可供短期提供权限的列表,如若玩家没有执行某些指令的权限就可以用这个功能暂时充当一下。当然使用temporary-op选项会更简便一些。
|
|
|
一目了然。
这一操作近似瞬间发生,所以你不必担心玩家在被赋予暂时OP权限时使用其他指令干坏事
|
|
|
|
|
|
|
|
str-blocked-output
屏蔽输出文本
|
当
bloc
k
-chat-output设为true时发送给玩家的自定义字符串
|
|
execute-as-target-instead
以目标代替执行
|
如果require-player-target设置为true则以目标玩家身份执行命令
|
|
execute-on-console-instead
以后台代替执行
|
|
|
str-cant-use-command
无法使用提示
|
|
&4You don't have permission to do that.
|
do-variable-replacement
变量替代
|
你可以使用%var
或
%playervar参数运用在指令里
|
|
use-target-variables-instead
使用目标参数替代
|
如果do-variable-replacement
和
require-player-target设置为true, 则会分析目标玩家的%var变量参数并取代施法者的
|
|
参数
你设置的
命令
中可以使用以下
参数来
丰富某些内容
|
|
|
|
|
如果require-player-target设置为true,会填写目标玩家的用户名
|
|
Index参数。输入指令/c extCmdSpell hi there
将会用 %1 取代 "hi" ;用 %2 取代 "there".
相当于执行命令中空格后内容的描述符号
|
|
需要do-variable-replacement设置为true.
p
layerstring变量只可以在此参数中被插件成功解析。插件将会把varName填充为变量值。
在变量名后添加
:(英文冒号
)
来指定变量所用的小数的位数(小数点后精确值)。假如varName数值是10.51。如果没有指定则会被分析为 "10.51"。设置为1将会分析为 "10.5", 0则会成 "10". 如果require-player-target
和
use-target-variables-instead都设置为true
,
则将会使用目标玩家的变量
|
%playervar:playerName:varName:0%
|
需要do-variable-replacement设置为true。和上面参数设置类似但是它不支持全局变量
(
或上文提到的playerstring变量).你可以借助ExternalCommandSpell 最后两个设置项来用目标玩家的用户名实现此功能
|
%arg:(index):defaultValue%
|
|
举例
console: #
以控制台身份,发出指令
/say
施法者
执行了一个外部命令
!
spell-class: ".ExternalCommandSpell"
execute-on-console-instead: true
command-to-execute: ["say %a
执行了一个外部命令
!"]
version: #
以暂时
OP
身份,发出指令查看
MS
及其效果库的版本
spell-class: ".ExternalCommandSpell"
temporary-op: true
command-to-execute: [version MagicSpells]
command-delay: 20
command-to-execute-later: [version Effectlib]
maxhp:
#
设置最大生命值
:
# /c maxhp (
数值
)
spell-class: ".ExternalCommandSpell"
temporary-op: true
command-to-execute: ["c modifyvariable meta_max_health %a =%1"]
tpToBed: #
回到床上
spell-class: ".ExternalCommandSpell"
incantations: ["/home bed"]
temporary-op: true
do-variable-replacement: true
command-to-execute: ["minecraft:teleport %a %var:meta_bed_location_x:0% %var:meta_bed_location_y:0% %var:meta_bed_location_z:0%"]
str-cast-self: "
回到了床的位置
.
如果啥也没发生
,
只能说明你没有床或者后台出错了
."
Instant Spell
瞬发法术
Instant Spell
设置
:
Location Spell
位置法术
描述
:
位置法术可以在一个确定的位置释放另一个法术。并非使用施法者的位置或他们所盯着的位置,此法术总会在指定位置释放而不能重定向
可配置项目
:
|
|
|
|
法术将会在此位置释放,请遵守此格式:世界名,x,y,z,yaw偏航角,pitch俯仰角
|
|
|
|
|
举例
:
location:
spell-class: ".LocationSpell"
location: world,0,0,0
spell: blink
Menu Spell
菜单法术
可以打开
GUI
的一个法术
配置
:
|
|
|
|
|
"Window Title + (internalName)"
|
|
以tick计算延迟打开菜单。当你使用菜单技能链接技能时,请至少设置值为1
|
|
require-entity-target
需要实体目标
|
|
|
require-location-target
需要位置目标
|
|
|
target-opens-menu-instead
让目标打开菜单
|
设置为true则会让目标实体打开菜单而不是使用者,还需要require-entity-target 设置为true
|
|
|
设置为false则会正常检查消耗物/条件/提示消息/冷却
也就是说默认菜单技能是不需要检测这些东西的
|
|
|
|
|
stay-open-non-option
保持开启
|
设置为true则会在空槽位被点击时仍然保持菜单开启。
|
|
|
设置为true,将会创建并填充预定行数的菜单。
为false,行数将依据已填充的物品位置确立其行数。
|
|
|
可开启Option configuration设置,名字可以随意
|
|
Option configuration
选项设置
:
|
|
|
放置物品的槽位。如果两个物品有同样的槽位,后一个将覆盖前一个。modifiers条件可以被用于控制槽位并且根据条件显示特定物品。
|
|
放置物品的槽位。和上面的一样。如果都填了内容, slot里的内容则会被忽略
|
|
展示用的魔法物品。可以用遵从
魔法物品格式
的字符串形式或设置部分。自定义物品名称和lore都支持变量参数 。
|
|
展示用的魔法物品的清单。遵从
魔法物品格式
以随机选择一个物品。同理如果这里设置了内容那么上面的就会取消。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
当菜单内物品被点击时是否还开启菜单。如果物品附带一个成功释放的法术,菜单将会重新开启(刷新)。如果没有成功释放也不会关闭菜单。
|
举例
:
Menu:
spell-class: ".MenuSpell"
cooldown: 2
bypass-normal-cast: false
options: #
你可以设置多个选项
option1: #
名字随便取
slot: 0 #
首个槽位,请在
0
到
53
的自然数里写一个
item: stone
quantity: 64
stay-open: false
option2:
slot: 1
item: stone
quantity: 32
stay-open: true #
选定时保持开启菜单
CoordsMenu: #
一个简单的使用条件变量的菜单法术的例子
spell-class: ".MenuSpell"
cast-item: compass
title: "&4
这个
GUI
可以显示你的状态
!"
options:
coordinates:
slot: 1
item: # 在本例中,item选项
作为
一个配置部分
type: compass
name: "&7&l
位置
"
lore:
- "&9
你现在位于
..."
- "&cX: &4%var:meta_location_x:0% &cY: &4%var:meta_location_y:0% &cZ: &4%var:meta_location_z:0%"
stay-open: true
bedcordinates:
slot: 7
item:
type: bed
name: "&b&l
床的位置
"
lore:
- "&9
你的床现在在
..."
- "&cX: &4%var:meta_bed_location_x:0% &cY: &4%var:meta_bed_location_y:0% &cZ: &4%var:meta_bed_location_z:0%"
stay-open: true
MultiSpell
多重法术
多重法术可以用来组合多个法术形成一个新法术,这样你就可以同时用不止一个法术了,或者在几个法术里面随机触发一个
。
可配置项目
:
|
|
|
cast-random-spell-instead
使用随机法术
|
是否使用列表内的随机一个法术,否的话则是使用列表内全部法术。
|
|
enable-custom-spell-cast-chance
开启自定义概率法术
|
是否在法术后带一个权重(和概率类似不过可以总量可以自定义) (例如: 火球术:2
)
而不是在所有法术里随机加权选择(乱选)
|
|
enable-individual-chances
开启单独概率
|
设置为true
,
则每个法术都将被单独处理,这意味着随机概率将会被分开计算,并且可能对每个将释放的法术都会计算。设置为false
,
概率将会一起计算,所以只有一个法术将会被释放。
|
|
|
多重法术的列表。默认地,法术将会同时释放,但你可以使用使用特殊的“DELAY #”延迟伪法术来增加法术间的延迟。(见下文)
|
|
Delays
延迟
:
你可以把延迟安插在法术之间,只需要使用
“DELAY #”
来伪造法术
(
把延迟也视作一个法术
)
,
这里的
#
单位是服务器
ticks(
正常情况下
1
秒
=20ticks)
。这么做只是简单地延迟了法术的释放,并不能保持多重法术中法术的具体组成状态
(
比如粒子效果并不能延缓抛出
)
。如果玩家移动或转向,那么被延迟的法术将会重新按照它真正开始时的状态计算,而不是保持第一个法术释放的状态来。举例说明:两个对着准星位置发射火球的技能合并为一个多重法术,延迟为
20ticks
,那么,玩家第一颗火球会正常发射,然后玩家把准星从正东转向正西,第二颗火球就会朝着正西发射
(
这两个火球技能完全一样
)
。
举例
:
延迟技能
froghop: #
蛙跳
,
大概用途就是连续冲刺跳三次
spell-class: ".MultiSpell"
spells:
- froghop_leap1
- DELAY 12 #(
约等待
0.6
秒
)
- froghop_leap2
- DELAY 16 #(
约等待
0.8
秒
)
- froghop_leap3
froghop_leap1: #
蛙跳
1
spell-class: ".instant.LeapSpell"
forward-velocity: 2
upward-velocity: 2
froghop_leap2: #
蛙跳
2
spell-class: ".instant.LeapSpell"
forward-velocity: 4
upward-velocity: 4
froghop_leap3: #
蛙跳
3
spell-class: ".instant.LeapSpell"
forward-velocity: 6
upward-velocity: 6
Example:
使用
随机法术
coinflip:
spell-class: ".MultiSpell"
cast-random-spell-instead: true
spells:
- coinflip_heads(mode=hard)
- coinflip_tails(mode=hard)
coinflip_heads:
spell-class: ".instant.DummySpell"
str-cast-self: "硬币正面朝上!"
coinflip_tails:
spell-class: ".instant.DummySpell"
str-cast-self: "硬币
背面
朝上
!"
Example:
开启自定义概率法术
rigged_coinflip:
spell-class: ".MultiSpell"
cast-random-spell-instead: true
enable-custom-spell-cast-chance: true
spells:
- rigged_coinflip_heads(mode=hard):1 #
概率为十一分之一
- rigged_coinflip_tails(mode=hard):10 #
概率为十一分之十
rigged_coinflip_heads:
spell-class: ".instant.DummySpell"
str-cast-self: "
硬币正面朝上
!"
rigged_coinflip_tails:
spell-class: ".instant.DummySpell"
str-cast-self: "
硬币背面朝上
!"
Example:
开启单独概率
flowergarden:
spell-class: ".MultiSpell"
cast-random-spell-instead: true
enable-individual-chances: true
str-cast-self: "----------"
spells:
- flower1(mode=hard):75 #(75%的几率被施放,
不论
其他两个法术
触发概率如何
)
- flower2(mode=hard):50 #(50%的几率被施放,
不论
其他两个法术
触发概率如何
)
- flower3(mode=hard):25 #(25%的几率被施放,
不论
其他两个法术
触发概率如何
)
flower1: #
有
75%
概率触发
flower1
spell-class: ".instant.DummySpell"
str-cast-self: "
玫瑰绽放
!"
flower2: #
有
50%
概率触发
flower2
spell-class: ".instant.DummySpell"
str-cast-self: "
紫罗兰盛开
!"
flower3: #
有
25%
概率触发
flower3
spell-class: ".instant.DummySpell"
str-cast-self: "
牵牛花开花
!"
Offhand Cooldown Spell
副手冷却法术
描述
:
显示玩家的副手槽中
堆叠的物品
物品
附带的
的
法术
冷却时间
可配置项目
:
举例
:
offhandcooldown:
spell-class: ".OffhandCooldownSpell"
item: stone
spell: prayer
Permission Spell
权限法术
描述
:
临时给使用者一个权限
可配置项目
:
举例
:
permission:
spell-class: ".PermissionSpell"
duration: 100
permission-nodes:
- magicspells.grant.*
PassiveSpell
被动法术
描述
:
被动法术和其他法术不同,它们不可以用命令释放或用物品或点击或作为多重技能的组成部分
。
相反地,被动法术有时被视为很有用的法术,并且它们只能
在触发器中的
监听内容被触发时才能成功释放
。
只有这样,被动法术才会继续处理子法术
。
根据触发器的指定设置,子法法可以只作用于触发它们的实体
。
譬如说,无论何时施法者受到攻击,一个
takedamage
类法术将会触发,可连接撕裂法术以反击攻击者
。
可配置项目
:
|
|
|
|
|
|
|
以ticks为单位控制被动法术释放前的延迟。
特例:resourcepack触发器
需要
这个值为0(同步执行)或者大于0(此时被动法术监听的内容不能被撤销)。
|
|
|
即使触发器被撤销了,如果使用了其他插件,被动法术的子法术依旧会启用。
|
|
|
|
|
send-failure-messages
发送失败提示消息
|
如果施法失败了,插件会发送一条提示消息及原因给玩家。
|
|
cancel-default-action
取消默认行为
|
取消激活被动咒语的事件。 举例说明,取消一个takedamage触发器将会只抵消伤害。
|
|
require-cancelled-event
需要撤销事件
|
如果启用,必须禁用触发器,因为被动法术触发其子法术需要这样。
If enabled the trigger must be cancelled for the passive spell to cast its subspells.
|
|
cancel-default-action-when-cast-fails
当施法失败时撤销默认行为
|
|
|
|
|
|
|
按照顺序将会触发的法术。
DELAY
(延迟) 不能像在
多重法术
里那种方式被指定 ,但是你可以使用[Cast Modes]法术模式
|
|
触发器
:
TriggerVar
(
触发器变量
)
后面紧跟的字符串需要用空格分隔
。
一些监听项有着额外的数据,在这都可自定义。
|
|
|
|
当一个实体受到伤害时触发。
触发器变量
可以不填,但是它可以识别一系列的
伤害原因
(请点击超链接)或物品(可以使用自定义名字,用|分隔)
|
|
|
当一个实体对其他实体造成伤害时触发
触发器变量
可以不填。但是它可以识别一系列的物品(可以使用自定义名字,用|分隔)
|
|
|
|
|
|
当一个实体击杀其他实体时触发。
触发器变量
仅可以识别这里的
生物类型
。
|
|
|
|
|
|
|
|
|
|
|
|
检测到玩家“跳跃”时触发。(这里监听的疑似是统计数据里的跳跃次数的变动).
|
|
|
|
|
|
当玩家拉弓射中一个实体时触发。
触发器变量
必须是一个弓或者用“|”分隔的多个弓。
|
|
|
当玩家从一个弓射出来的箭旁闪过时触发。
触发器变量
必须是一个弓或者用“|”分隔的多个弓。
|
|
|
当玩家打破一个方块时触发.
触发器变量
可以是空,这样不管破坏什么方块都可以。否则,你就需要指定一个方块列表来限制侦听器
|
|
|
当玩家放置一个方块时触发.
触发器变量
可以是空,这样不管放置什么方块都可以。否则,你就需要指定一个方块列表来限制侦听器
|
|
|
当玩家右键一个方块或手持一个物品时触发.
触发器变量
可以指定物品列表,列表中物品自定义名可用“|”分隔
Fires whenever a player right clicks a block or airwhile holding an item
.
|
|
rightclickblocktype
右键方块类型
|
当玩家右键一个指定的方块类型时触发。
触发器变量
可以监听一系列方块(列表)。
|
|
rightclickblockcoord
右键方块位置
|
当右键特定位置的方块时触发。
触发器变量
可以识别多个坐标。
格式为世界名,x,y,z, ,多个坐标间请用“;”符号连接。
|
|
leftclickblocktype
左键方块类型
|
当玩家左键一个指定的方块类型时触发。
触发器变量
可以监听一系列方块(列表)。
|
|
leftclickblockcoord
左键方块位置
|
当左键特定位置的方块时触发。
触发器变量
可以识别多个坐标。
格式为世界名,x,y,z, ,多个坐标间请用“;”符号连接。
|
|
|
|
|
|
当一个法术被“释放”时触发,但不是“被触发”
"casted"
.
触发器变量
可以是一系列可用技能作为白名单。
|
|
|
当一个法术被“被释放”
"casted"
时触发,但不是“触发”.
触发器变量
可以是一系列可用技能作为白名单。
|
|
|
当一个实体用法术锁定目标时触发。
触发器变量
可以是一系列可用技能作为白名单。
|
|
|
当一个实体音被法术为锁定目标时触发。
触发器变量
可以是一系列可用技能作为白名单。
|
|
|
当一个玩家开始冲刺时触发。这一事件可被撤销,但只会在服务器层面发生
but this only happens on the server side.
使用meta变量来衡量饥饿值
to mess with food
,而不是阻止玩家疾跑。
|
|
|
当一个玩家停止冲刺时触发。这一事件不可被撤销, 但只会在服务器层面发生
but this only happens on the server side.
这个没有解决方法(如何让一个玩家保持疾跑?似乎服务端办不到这样,但是可以让玩家不疾跑)。
|
|
|
当一个玩家开始潜行时触发。这一事件可被撤销, 但只会在服务器层面发生。
|
|
|
当一个玩家停止潜行时触发。这一事件可被撤销, 但只会在服务器层面发生。
|
|
|
|
|
|
|
|
|
如果玩家可以飞行,那么在他开始飞行时(双空格跳跃)触发。
|
|
|
如果玩家可以飞行,那么在他停止飞行时(双空格跳跃)触发。
|
|
|
当玩家选定一个与
触发器变量
符合的特定
物品
时触发。
|
|
|
当玩家不选定一个与
触发器变量
符合的特定
物品
时触发。
|
|
|
当玩家尝试丢弃与
触发器变量
符合的特定
物品
时触发,物品之间请用英文逗号隔开,并遵循
此格式
。此列表留空以适应任何一个物品,即丢弃任何物品都触发。
|
|
|
当玩家尝试丢弃与
触发器变量
列表相符的物品时触发 (可以使用自定义名字,请用“|”隔开)。此列表留空以适应任何一个物品,即捡起任何物品都触发。
|
|
|
当玩家尝试合成与
触发器变量
列表相符的物品时触发,多个物品用英文逗号隔开并符合
此格式
。此列表留空以适应任何一个物品
|
|
|
当玩家吊起鱼事件发生时触发
触发器变量
可以依次限制条件 fish, ground, fail, 或
实体类型
|
|
|
|
|
|
当玩家传送时触发。
触发器变量
可以作为白名单指定一些
原因
|
|
|
此事件用以确认被动法术列表中指定的buff法术在可能的情况下对所有实体始终有效
|
|
|
当所有实体占用tick达到
触发器变量
数值时触发。
Fires for all entities on interval specified with
TriggerVar
(server ticks).
|
|
|
当一个玩家传送到一个指定世界或符合列表的世界里时触发。
触发器变量
可以是一个或多个用英文逗号隔开的世界。
|
|
|
当玩家模式切换时触发。
触发器变量
可以为空或是要监听的的模式。
|
|
|
|
|
|
当一个玩家打开或关闭物品栏时触发 (如果你打开别人的不管用).
触发器变量
可以留空,这样开启或关闭都会触发;当然你可以写 open开启/close关闭 来决定触发方式。
此事件只能在开启行为中撤销(服务器可以组织玩家开启物品栏,但关闭不可以) 。
|
|
|
当玩家点击物品栏时触发。
触发器变量
形式是 (inventoryAction) (itemCurrent) (itemCursor) -所有参数都是可选填的或具都可以使用通配符(*)。inventoryAction是物品栏物品/槽位/空位所执行的
操作
[??],与此同时null 可以作为通配符使用。
itemCurrent指的是玩家对物品的点击,与此同时null 可以作为通配符使用。
itemCursor 是玩家鼠标所指的物品[??
]
is the item on the player's cursor.
物品格式请参考
此格式
。
|
|
|
当玩家使用触发法术的物品选定一个法或绑定后施法时触发。
触发器变量
可以是一个法术名(真名而非使用名) 或者用英文逗号隔开的多个法术名。
|
|
|
当实体获得药水效果应用或效果消失时触发。
触发器变量
格式为: (type种类) (action行为) (cause原因).
所有参数都是可选填的或具都可以使用通配符(*)。
action 为
药水效果操作
(ADDED/CHANGED/CLEARED/REMOVED等), *可作为通配符使用。
cause 为
药水效果原因
,或事件的起源[?]
source of the event
|
|
|
当玩家更换资源包时触发。
触发器变量
可以是以下之一: loaded加载, declined去除, failed失败, accepted接受.
|
|
|
|
|
|
|
|
|
|
|
|
当玩家把主手物品切换到副手时触发,或者颠倒过来 - 请使用
物品格式
.
|
|
|
|
|
|
|
|
|
当玩家编辑书本时触发。
触发器变量
可作为白名单,只有包含由它指定的页面的书籍才会触发。
|
|
举例
:
darkcloak:
spell-class: ".PassiveSpell"
triggers:
- ticks 20
spells:
- darkcloak_invis
modifiers:
- lightlevelbelow 7 required
Player Menu Spell
玩家菜单法术
描述
:
这个
法术可以
打开一个
上面印有当前在线玩家头的
菜单
。
法术可以指定选定玩家为目标释放。大多数设置项都是可编辑的
,
即使它们不必要被编辑
。
比如你可以专门地使用函数
function
技能来用变量记录玩家名字被点击的次数
。
你也可以借助特殊的条件或范围来限制菜单里展示的内容。
注:个人认为这玩意可以当成生死簿
/OP
管理菜单
,
毕竟它可以展示所有玩家的状态并且对他们放技能,至于技能是击杀、传送还是啥其他的就太多了
可配置项目
:
|
|
|
|
支持颜色代码、变量参数,可用%a代表施法者的用户名
|
|
|
|
|
|
设置为0, 则显示所有在线玩家,否则则会显示某范围内的。
|
|
|
当一个玩家在菜单中被选定,这将会决定插件是否把菜单关闭
|
|
|
支持颜色代码、变量参数,可用%a代表施法者的用户名,可用%t代表目标名
|
|
|
|
|
|
如果启用了距离,那么玩家超出这个距离就会显示头颅名字。[?]
Skull name displayed if the player is out of range, if range is used.
|
|
skull-name-offline
下线头颅名字
|
|
|
|
|
|
|
如果选中的玩家超出了Spell casted if selected player is out of range.
|
|
|
当头被左键点击时释放法术。如果是目标类法术则将会把选定玩家作为目标。否则就只会正常释放。
|
|
|
|
|
|
|
|
spell-on-sneak-left
潜行左键法术
|
|
|
spell-on-sneak-right
潜行右键法术
|
|
|
|
如果这些条件不可通过,那么玩家将不会显示在菜单里。
|
|
|
|
|
举例
:
damagePlayerMenu: #
玩家伤害记录菜单
spell-class: ".PlayerMenuSpell"
always-granted: true
title: "L - Smite | R - Teleport"
#
为目标打开菜单
。
我们需要施法者在这里打开
target-self: true
#
如果是
false,
将会在点击后关闭菜单
stay-open: true
spell-on-left: lightning
#
点击触发的法术可以不指定。如果没有被指定
,
点击将不会有任何操作
spell-on-right: teleport
#
对目标的条件将会被逐一检查
。
如果留空或未指定,将不会检查,这里的意思是玩家不能潜行
player-modifiers: [sneaking deny]
lightning:
spell-class: ".targeted.PainSpell"
helper-spell: true
damage: 5
effects:
Lightning:
position: target
effect: lightning
teleport:
spell-class: ".targeted.ShadowstepSpell"
helper-spell: true
distance: 0
str-no-landing-spot: "
不可以传送这个玩家
."
variables:
username: {type: playerstring}
selectPlayerMenu:
spell-class: ".PlayerMenuSpell"
always-granted: true
target-self: true
title: "&9
选定传送
"
add-opener: true
# ExternalCommandSpell外部命令类技能
扩展可以没有目标
,
而且我们也无须让他此时必须有目标
cast-spells-on-target: false
spell-on-left: teleport
#
这里的字符串数值变量可以在其它法术里使用
variable-target: username
teleport:
spell-class: ".ExternalCommandSpell"
helper-spell: true
do-variable-replacement: true
command-to-execute: ["minecraft:tp %a %var:username%"]
随机法术
从指定设置里释放一个随机法术
|
|
|
|
|
|
|
将会被检验的法术列表。必须后面跟着一个权重(你可以理解为概率...吧)
且权重必须大于 0 ,用空格分隔
|
|
举例:
真实的骰子将会按顺序检验
dice:
spell-class: ".RandomSpell"
pseudo-random: false
spells:
- say1 1
- say2 1
- say3 1
- say4 1
- say5 1
- say6 1
伪随机举例:
notSoRandom:
spell-class: ".RandomSpell"
pseudo-random: true
spells:
- say1 1
- say2 1
- say3 1
无论权重是不是在选项中被设置为
10
。此法术将会切换这两个设置的组成部分
(
预设
)
以实现伪随机
switch:
spell-class: ".RandomSpell"
pseudo-random: true
spells:
- say1 1
- say2 10
Targeted Spell
目标法术
目标法术配置
:
|
|
|
|
|
此选项决定:如果法术无法锁定一个有效目标,该法术的状态[?]
reagents
是否会被充能
charged
,冷却时间是否照常启用
|
|
|
play-fizzle-sound
发出火熄灭的声音
|
如果法术无法锁定一个有效目标,是否播放火焰熄灭的音效以提示玩家(我不明白为什么非要是这个音效)
|
|
|
|
|
|
|
|
如果当前法术施法失败则触发另一个法术(e.g. 当技能找不到目标时)
|
|
|
|
|
|
|
|
如若找不到目标,就发送一个字符串的提示消息给施法者。
|
|
|
TargetedMultiSpell
多重目标法术
这是一个特殊的多重法术,它只对
目标法术
起效
。它
对
于
一切
可以
以
实体或地面
为目标
的
法术都有效。不同之处在于此法术保留了最初的用法,甚至施法者移动或转动视角,而一般的多重法术就做不到。
[?]
The difference with this spell is that it maintains the initial target, even if the caster moves or looks around, unlike the normal Multi Spell.
可配置项目
:
|
|
|
require-entity-target
需要实体为目标
|
|
|
|
法术是否以玩家为中心,或者法术必须为目标类法术[??]
Whether the spell should be centered on the player, or if it should be targeted.
设置为true,此法术将会以施法者为中心。
设置为false,此法术将会以目标方块为中心。
|
|
|
修改法术相交于目标位置的Y轴偏移量
例如:5即以目标上方5格为实际目标位置,可写负数。可用此功能造陨石雨。
|
|
cast-random-spell-instead
释放随机法术以替代
|
|
|
|
设置为true,那么当法术列表里的一个法术释放失败,插件会停止这一套法术的执行。
|
|
|
按顺序键入可用的法术。
你可以使用使用特殊的“DELAY #”延迟伪法术来增加法术间的延迟(见下文)
|
|
Delays
延迟
:
你可以把延迟安插在法术之间,只需要使用
“DELAY #”
来伪造法术
(
把延迟也视作一个法术
)
,
这里的
#
单位是服务器
ticks(
正常情况下
1
秒
=20ticks)
。这么做只是简单地延迟了法术的释放,并不能保持多重法术中法术的具体组成状态
(
比如粒子效果并不能延缓抛出
)
。如果玩家移动或转向,那么被延迟的法术将会重新按照它真正开始时的状态计算,而不是保持第一个法术释放的状态来。举例说明:两个对着准星位置发射火球的技能合并为一个多重法术,延迟为
20ticks
,那么,玩家第一颗火球会正常发射,然后玩家把准星从正东转向正西,第二颗火球就会朝着正西发射
(
这两个火球技能完全一样
)
。
举例
:
这个技能意味着消耗
5
魔法
,
无需锁定实体为目标
,
冷却为
10
秒,连续使用三次、每次间隔为
10tick(
一般是
0.5
秒
)
雷击目标
(
位置
)
。
smite:
spell-class: ".TargetedMultiSpell"
name:
惩罚
cooldown: 10
cost:
- mana 5
str-cost: 5 mana
stop-on-fail: false
require-entity-target: false
spells:
- lightning
- DELAY 10
- lightning
- DELAY 10
- lightning
|