技能是RPGItems中制作道具的核心机制,你可以使用不同的技能来制作出各种各样的道具。
技能是按照顺序执行的,并且只在有对应触发时才会执行。
部分时候技能参数命令字节会超出 Minecraft 聊天栏限制,此时可以使用命令方块完成命令的输入
以下是部分技能的通用参数:
cooldown
在下次可以使用前的冷却时间(单位:Ticks)。cost
每次使用时消耗的耐久值。condition
用来触发技能的条件。trigger
技能的触发。displayName
技能的备注信息。requiredContext
限制技能执行的一个值。requireHurtByEntity
当触发设置为HURT
或HIT_TAKEN
时,将此值设置为true
可以使仅来自于生物的有源伤害能够触发技能(不包括中毒、凋零、火焰、摔落伤害等)。默认为true
。selectors
技能选择器,使技能仅对部分实体生效。如需为技能指定选择器,首先使用markers
标记定义一个选择器,并将技能中的selectors
参数设置为选择器的id。setBaseDamage
设置为 true 时,后续的伤害加成技能将基于此伤害值计算,武器的最终伤害取叠加值。 设置为false
时,后续的伤害加成技能将基于原伤害值计算,武器的最终伤害取最高值。 默认为false
。powerId
用于模板技能占位符的ID。powerTags
暂无作用
以下是用来修改一个道具技能的命令:
/rpgitem power [operation] [item] [params]
可使用的Operations:
add
增加一个技能remove
移除一个指定技能list
列出所有技能prop
列出一个指定技能的详细参数或是使用额外参数修改技能。reorder
调整一个技能到新的顺序位,这个功能会影响到技能的执行逻辑。
示例:
/rpgitem power add mysword rpgitems:beam cost:1 damage:10 ttl:20 triggers:LEFT_CLICK speed:16 particle:CRIT_MAGIC length:24
对范围内的目标释放药水效果。
amplifier
效果倍率duration
效果持续时间range
范围半径selfapplication
效果是否会应用给自己name
效果名字,详见:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
对范围内的目标执行命令
type
目标种类,可以是:entity
实体player
玩家mobs
怪物
r
目标范围rm
最小范围facing
角度范围,可以由0至180度c
目标数量mustsee
在你与目标之间是否不得有方块阻拦command
执行的命令permission
指令命令所需要的权限节点
对范围内的目标造成伤害。
range
目标范围minrange
最小范围angle
角度范围, 可以由0至180度count
会被攻击的目标数量incluePlayers
(typo) 是否包含玩家selfapplication
是否包含自身mustsee
在你与目标之间是否不得有方块阻拦damage
造成的伤害量,独立于于道具属性的伤害delay
造成伤害前的延时(单位:Ticks)selectAfterDelay
当延时(delay)不为0时,将此参数设置为false可以使得目标脱离范围时仍然受到伤害firingRange
技能生效中心最远距离firingLocation
技能生效中心位置, 可以是自身SELF
或是光标指向处TARGET
castOff
当技能生效位置firingLocation
是目标TARGET
且延时(delay)不为0时,设置此参数为true
可以在延时前设定范围中心
在飞行时增加伤害
cap
可造成伤害的最大值percentage
飞行时造成伤害的增加百分比量
发射箭矢,不推荐使用。请使用弹射物 Projectile
。
用于触发其他道具的ATTACHMENT触发。
allowInvSlots
可用的背包格位置,设置为-1为禁用allowItems
可用的RPGItemlimit
配件数量
吸引范围内的目标
radius
范围半径maxSpeed
吸引实体的最大速度duration
吸引实体的持续时间attractingTickCost
使用技能时每Tick所消耗的耐久attractingEntityTickCost
使用时每个实体每Tick所消耗的耐久attractPlayer
是否会吸引玩家firingLocation
技能生效中心位置, 可以是自身SELF
或是光标指向处TARGET
firingRange
技能生效中心最远距离
发射由粒子组成的光束. 这是到目前为止RPGItems中最为复杂也是最为强大的技能。
length
粒子束长度ttl
粒子存在时间(单位Ticks)particle
粒子种类:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.htmlmode
可以设置为BEAM
(1Tick内运行)或是PROJECTILE
(在多Ticks内运行)pierce
可以穿透的目标数量ignoreWall
粒子束飞行途中是否无视完整方块,默认为true
damage
粒子束的伤害量,此参数独立于道具参数的伤害设置speed
粒子束飞行速度(单位:方块/s)offsetX
粒子生成X轴范围offsetY
粒子生成Y轴范围offsetZ
粒子生成Z轴范围particleSpeed
粒子速度参数particleDensity
在一个方块空间内生成的粒子量cone
从自身发射粒子束的离散角度homing
追踪半径homingAngle
从自身到目标之间的追踪角度homingRange
从自身到目标之间的追踪方块距离homingMode
追踪模式,可以是以下类型:ONE_TARGET
追踪单一目标MULTI_TARGET
在上一次击中后更换目标MOUSE_TRACK
追踪距离光标指向位置最近的目标
homingTarget
追踪目标类型,可以是MOBS
/ENTITY
/PLAYER
ticksBeforeHoming
追踪前的等待时间(单位:Ticks)beamAmount
单次运行时发射的粒子束数量burstCount
单次触发时发射的粒子束波数burstInterval
下一波发射前的等待时间(单位:Ticks)bounce
粒子束会在完整方块上弹射的次数,需要将ignoreWall
设置为false
hitSelfWhenBounced
粒子束弹射后是否能击中自己gravity
粒子束重力,可以设置为负数(粒子束可以逆而上天)extraData
红石粒子REDSTONE
的颜色参数,格式为r,g,b,size
。示例:extraData:`51,204,255,0.35` 青色粒子束。speedBias
使用表达式来控制粒子束速度。示例:4+x*10*t
其中x为粒子束已飞行路程,t为飞行时间。behavior
控制粒子束行为initialRotation
firingLocation
粒子束发射位置,可以是自己SELF
或是光标指向位置TARGET
firingRange
粒子束发射位置的最远距离effectOnly
仅作为视觉效果,不会触发任何HIT事件firingR
极坐标R参数firingTheta
极坐标θ参数firingPhi
极坐标ρ参数castOff
取消弓的箭矢,不会造成任何箭矢的消耗也不会发射任何箭矢。常用于使用了其他技能的弓道具。
cancelArrow
是否取消箭矢发射
奔跑时增加伤害。
percentage
伤害增加的百分比量speedPercentage
根据速度增加伤害增加的百分比量。cap
最大伤害上限
使用时执行命令。
command
执行的命令. 当命令中包含空格时请使用`
符号。示例:command:`minecraft:give {player} stone`
display
在道具描述中显示的展示名permission
执行命令所需要的命令节点
可在命令中使用的变量:
{player}
玩家名{player.x}
玩家的X轴坐标{player.y}
玩家的Y轴坐标{player.z}
玩家的Z轴坐标{player.yaw}
玩家的yaw坐标{player.pitch}
玩家的pitch
在击中时执行命令。
command
执行的命令permission
执行命令需要的命令节点minDamage
触发技能所需要的最低伤害
命令中可以使用的变量:
{entity}
目标名{entity.uuid}
目标的UUID{entity.x}
目标的X轴坐标{entity.y}
目标的Y轴坐标{entity.z}
目标的Z轴坐标{entity.yaw}
目标的yaw坐标{entity.pitch}
目标的pitch
使用时消耗道具。
击中时消耗道具。
造成暴击伤害。
chance
暴击概率,N%backstabchance
背刺概率,N%factor
暴击伤害倍率backstabFactor
背刺伤害倍率
以一定概率即死目标并执行命令。
chance
执行概率,1/Ncommand
执行的命令des
技能提示的文字permission
执行命令所需要的命令节点count
将飞来的弹射物弹反回去。
chance
被动弹反的百分比概率cooldownPassive
被动弹反的冷却时间,单位Ticksduration
弹反持续时间,单位Ticksfacing
最大有效角度,从0至180度deflectCost
每次弹反的耐久消耗
在延时后执行命令。
delay
延时时间,单位Ticksdisplay
显示在道具描述中的展示名command
执行的命令permission
执行命令需要的命令节点cmdInPlace
空技能虽然不会做任何事情但是它提供了许多可以帮助您理清技能运行逻辑的通用选项。
checkDurabilityBound
触发前检查物品的耐久上下界,一旦耐久超出上下界空技能将不会被触发。costByEnchantment
依赖附魔来计算耐久消耗,用于doEnchReduceCost
doEnchReduceCost
类似于耐久附魔 ,可以降低道具耐久消耗(几率性不消耗耐久)enchCostPercentage
每一附魔等级可以减少耐久消耗的几率enchantmentType
附魔名字,可以像unbreaking
(默认)costbyDamage
根据伤害消耗耐久值cooldownKey
当有多个空技能时,设定一个唯一的string字符串来让冷却时间互相独立successResult
在空技能成功执行后的动作,默认值为OK
,用于继续执行下一个技能costResult
在耐久消耗后执行的动作。默认设置为COST
,在消耗耐久后继续下一个技能;ABORT
,中断并中止整个技能进程;OK
,无视耐久消耗并继续下一个技能。cooldownResult
冷却后执行的动作。默认设置为COOLDOWN
,中断空技能并继续下一个技能;ABORT
中断并中止整个技能进程;OK
,无视冷却时间并继续下一个技能。showCDwarning
如果你不希望显示任何冷却信息,将它设置为false
globalCooldown
设置全体的冷却时间
使用空技能来禁用冷却信息的显示并统一控制技能冷却时间与耐久消耗
你应当知道了RPGItems中的道具技能是需要触发执行的, 比如RIGHT_CLICK
或是LEFT_CLICK
然后根据顺序来一个一个的执行。所以如果你的道具设置的技能如同以下这样:
- PowerProjectile, trigger
LEFT_CLICK
- PowerBeam, trigger
RIGHT_CLICK
- PowerSound, trigger
RIGHT_CLICK
- PowerParticle, trigger
LEFT_CLICK
当你点击了鼠标左键,只有1和4会被触发执行,并且是在同一个Tick中执行的。
如果你想要在每次点击鼠标左键时会消耗1耐久,冷却时间20Ticks并且不希望显示冷却消息提示, 那么你可以把一个空技能放置在技能顺位的第一位并设置空技能为所示参数:cooldown:20 cooldownKey:left cooldownResult:ABORT cost:1 showCDWarning:false triggers:LEFT_CLICK
。同时你也需要设置PowerProjectile与PowerParticle的耐久消耗cost
与冷却时间cooldown
为0,因为你不再需要它们,只需要用空技能来控制所有的技能。
点击鼠标左键后,RPGItems会首先检查空技能,如果它还在冷却时间内将会中止后续技能的执行,也就是说PowerProjectile与PowerParticle不会被执行。当它不在冷却时间内且满足所有条件(如果有的话)时,就会消耗1耐久并执行后续技能(发射弹射物与生成粒子)。
同样,如果你将 costResult
设置为ABORT
,当道具耐久低于耐久下界时,技能也会被中止。
请注意空技能的使用仅适用于对应的触发,如果你将空技能的触发设置为RIGHT_CLICK
,它的执行不会影响到其他任何触发为RIGHT_CLICK
之外的技能。
消耗或给予使用者金钱。
abortOnFailure
是否在触发失败时中止amountToPlayer
消耗或给予使用者的金额,负数为消耗,正数为给予showFailMassege
是否显示失败信息
让附魔来增强伤害量。
mode
可以是增加量ADDITION
或是倍率增加MULTIPLICATION
amountPerLevel
每一附魔等级增加百分比,1 = 100%enchantmentType
详见:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html
使用表达式来计算伤害。
expression
用于计算伤害的表达式
在使用区产生一个爆炸。
chance
发生爆炸的百分比几率distance
发生爆炸的最远距离explosionPower
爆炸强度
发射火焰来点燃目标。
burnduration
燃烧持续时间distance
可点燃的最远距离
发射火焰弹,不推荐使用.建议使用弹射物技能Projectile
。
点燃被击中的目标。
burntime
点燃持续时间
回复饥饿值。(此技能使用会必然消耗一个道具)
foodpoint
回复的饥饿值量
生成一个护盾来保护自己。
base
护盾的地基,必填cooldown
护盾的冷却时间,必填height
护盾的高度,必填radius
护盾的半径,必填ttl
护盾持续时间
抓住实体并将它扔出去。
maxDistance
最大抓取距离maxTicks
最大抓取时间throwSpeed
抓取结束后的投掷速度
使弹射物追踪目标。
delay
索敌延时distance
最大索敌距离forceFactor
力度倍率initVelFactor
初速度倍率maxTicks
最大追踪时间VelFactor
每Tick速度改变倍率viewAngle
最大索敌角度
弹射物击中目标头部造成额外伤害。
factor
伤害倍率soundEnemy
是否播放被爆头粒子音效soundSelf
是否播放爆头粒子音效particle
是否显示爆头粒子
发射冰块并形成一个冰牢。
将目标击飞。
chance
击飞概率,1/NknockUpPower
击飞力度
根据击中伤害吸取生命值
chance
吸取百分比几率factor
吸取倍率
生成闪电造成雷击。
chance
雷击概率,1/N
可以骑在生物上。
maxDistance
生物最远距离maxTicks
最大乘骑时间
无视无敌时间。
immuTime
无敌时间,单位Ticks
将受到的攻击转化为粒子效果。
barrierHealth
屏障生命值effect
屏障效果energyDecay
能量每秒的衰减energyPerBarrier
屏障能提供的能量energyPerLevel
每级力量效果所需要的能量projected
是否为投射屏障
在使用或击中时生成粒子。
delay
延时时间dustColor
尘埃粒子颜色dustSize
尘埃粒子大小effect
粒子效果extra
REDSTONE粒子颜色参数material
FALLING_DUST粒子颜色对应的原物品playLocation
生成位置HIT_LOCATION
击中位置SELF
自身TARGET
光标指向位置
force
是否设置粒子为随时可见particle
粒子类型particleCount
粒子数量offsetX
粒子生成X轴偏移offsetY
粒子生成Y轴偏移offsetZ
粒子生成Z轴偏移
在持有或穿戴时生成粒子。
见粒子效果(Particle)
在击中时赋予状态效果。
amplifier
效果倍率duration
效果持续时间,单位Tickschance
效果发生概率,1/Ntype
效果类型
赋予使用者状态效果。
clear
是否清除所有效果
其他参数见效果命中(PotionHit)
在持有或穿戴时赋予状态效果。
interval
生效间隔时间,单位Tickeffect
效果类型
其他参数见**效果命中(PotionHit)
发射弹射物,弹射物的参数有多种选项。
isCone
弹射物是否离散发射,默认设置为false
gravity
弹射物是否受重力影响,默认设置为true
range
发射的离散角度amount
每一波发射多少弹射物speed
弹射物飞行速度burstCount
发射多少波数burstInterval
下一波发射前的间隔时间setFireballDirection
火焰弹的轨迹是否会浮动,默认设置为true
yield
爆炸物的爆炸半径isIncendiary
是否会点燃,默认设置为false
projectileType
弹射物类型,可以是下列内容:arrow
箭矢snowball
雪球fireball
火焰弹smallfireball
烈焰人的火焰球llamaspit
羊驼口水shulkerbullet
潜影弹dragonfireball
龙息弹trident
三叉戟skull
凋零头颅
suppressArrow
取消箭矢的发射但仍然消耗箭矢applyForce
是否应用弓的拉伸力度到箭矢与火焰弹上,会影响到飞行速度firingLocation
发射位置,可以是自身SELF
或是光标指向位置TARGET
firingRange
发射位置最远距离firingR
极坐标R参数firingTheta
极坐标θ参数firingPhi
极坐标ρ参数castOff
攻击僵尸或者骷髅时给他们戴上南瓜头。
chance
触发几率,百分比drop
南瓜头掉落几率
随机发射各种颜色的羊毛。
count
发射数量isFire
是否发射火焰
造成无视护甲的真实伤害。
minDamage
触发的最低伤害realDamage
造成的真实伤害
消耗材料来回复或是消耗道具耐久。
durability
每一个修复材料会回复或是消耗的耐久量display
在道具lore中展示的信息。material
用与修复的材料。你可以使用HAND
来将主手中持有的物品作为修复材料。isSneak
是否在潜行状态时才能触发。mode
可以是默认DEFAULT
,允许超出上限ALLOW_OVER
或是总是可以修复ALWAYS
。allowBreak
是否会把道具修爆,默认设置为true
abortOnSuccess
是否在修理成功后中止后续技能abortOnFailure
是否在修理失败后中止后续技能(比如没有材料了)customMessage
在聊天栏中展示的信息amount
每次触发时会消耗的最大材料量showFailMsg
是否显示修理失败后的信息。默认设置为true
受到过量伤害或者血量即将低于指定值时拯救玩家,比不死图腾更好!
damageTrigger
伤害量触发值healthTrigger
生命触发值inPlace
是否原地拯救useBed
是否回到床上
在地面上生成一个冲击波将目标击飞。
power
击飞力度distance
冲击波最大距离damage
冲击波伤害
修改玩家的计分板标签或数值。
objective
计分项delay
延时,单位TicksreverseTagAfterDelay
是否在延时后回收tagscoreOperation
分数计算规则ADD_SCORE
增加分数NO_OP
RESET_SCORE
重置分数SET_SCORE
设置分数
tag
增加的tagteam
队伍名value
分数值
发射追踪目标的潜影弹。
range
追踪范围
发射钩爪用于钩住指定方块。
railMaterial
允许被钩住的材质,必填hookDistance
钩爪距离hookingTickCost
钩住时每Tick耐久消耗
在使用或击中实体时播放声音。
delay
延时时间,单位Tickspitch
音高playLocation
播放中心HIT_LOCATION
击中位置SELF
自身TARGET
光标指向位置
sound
声音类型volume
音量
使目标无法移动或是传送。
chance
定身概率,1/NcostAOE
范围定身耐久消耗costPerEntity
每一个实体的耐久消耗duration
持续时间facing
角度范围range
距离范围
发送TNT。
传送一段距离。
distance
传送距离targetMode
寻找传送点的模式DEFAULT
RAY_TRACING
RAY_TRACING_EXACT
RAY_TRACING_EXACT_SWEEP
RAY_TRACING_SWEEP
投掷实体。
entityName
实体名,必填speed
投掷速度,必填display
技能在道具描述中的展示名,必填cooldown
冷却时间,必填entityData
实体数据isPersistent
实体是否写入世界存档
发射带有药水效果的箭矢,不推荐使用。请使用弹射物Projectile
与命中效果PotionHit
技能。
投掷一些火把来照亮一片区域。
投掷一个传送信标并传送到信标所在地。
speed
setupCost
设立信标的耐久消耗tpCost
传送耐久消耗