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 跨世界撤销 | | | | | | | | | | | | 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权限时使用其他指令干坏事 | | | | | | | | | 当block-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. playerstring变量只可以在此参数中被插件成功解析。插件将会把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则会正常检查消耗物/条件/提示消息/冷却 也就是说默认菜单技能是不需要检测这些东西的 | | | | | | 设置为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, ,多个坐标间请用“;”符号连接。 | | | 当玩家左键一个指定的方块类型时触发。 触发器变量 可以监听一系列方块(列表)。 | | 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. |
| | |
| | |
| | 如果选中的玩家超出了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
|