Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-----------------------------------------------------------------#
- # #
- # By _JustDylan_ #
- # #
- # Depends on: Skript, SkQuery, skript-mirror, SkDragon. #
- # #
- # Be aware that this skript is made for 1.12.2 and requires #
- # the latest version of the plugins above, that are coded for #
- # 1.12.2 #
- # #
- # Please don't edit anyting down below #
- # When you do you might break the script #
- # #
- #-----------------------------------------------------------------#
- #---Main---#
- options:
- version: "2.0.0"
- #wand converter for older versions
- on click:
- if line 2 of lore of player's tool is "&k®®":
- set line 2 of lore of player's tool to "&k&c&e"
- #variable cleanup
- on load:
- clear {wands::tool::*}
- clear {wands::loopedentity::*}
- on break:
- if {wands::OutOfUse} isn't true:
- if line 2 of lore of player's tool is "&k&c&e":
- cancel event
- on death:
- if {wands::dropondeath} is false:
- loop drops:
- if line 2 of lore of loop-item contains "&k&c&e":
- remove loop-item from drops
- expression invisable value of %number%:
- get:
- set {_text} to "%expr-1%"
- set {_length} to {_text}.length() * 2
- replace all "" in {_text} with "&"
- set {_text} to {_text}.substring(0, {_length})
- return colored {_text}
- expression visable value of %text%:
- get:
- set {_lore} to expr-1
- replace all "ยง" in {_lore} with ""
- return {_lore} parsed as number
- on drop:
- line 2 of lore of event-item contains "&k&c&e"
- player has 1 of event-item
- set {_item} to event-item
- set {_lore} to line 1 of {_item}'s lore
- add 1 to {wands::amount}
- set {wands::savedwands::&k%{wands::amount}%::spellIndex} to {wands::savedwands::%{_lore}%::spellIndex}
- set {wands::savedwands::&k%{wands::amount}%::savedSpells::*} to {wands::savedwands::%{_lore}%::savedSpells::*}
- set {wands::savedwands::&k%{wands::amount}%::modifiable} to {wands::savedwands::%{_lore}%::modifiable}
- set {wands::savedwands::&k%{wands::amount}%::particles} to {wands::savedwands::%{_lore}%::particles}
- set line 1 of {_item}'s lore to "&k%{wands::amount}%"
- import:
- net.md_5.bungee.api.ChatMessageType
- net.md_5.bungee.api.chat.TextComponent
- effect display actionbar %string% to %player%:
- trigger:
- set {_component} to new TextComponent()
- {_component}.setText(expr-1)
- expr-2.spigot().sendMessage[net.md_5.bungee.api.ChatMessageType, net.md_5.bungee.api.chat.BaseComponent](ChatMessageType.ACTION_BAR!, {_component})
- function PlS(s: string, v: number, p: number, l: location, f: players):
- loop {_f::*}:
- if loop-value's world isn't {_l}'s world:
- remove loop-value from {_f::*}
- play sound {_s} with volume {_v} and pitch {_p} at {_l} for {_f::*}
- function spellLocation(p: player, range: number = 30) :: location:
- if distance between location of targeted entity of {_p} and location of {_p} is less than {_range} where [targeted entity of {_p} is alive]:
- set {_loc} to location of block at target entity of {_p}
- else:
- loop blocks from the block above {_p} to the block {_range} in front of {_p}:
- set {_loc} to location of block above loop-block
- if loop-block is solid:
- stop loop
- return {_loc}
- function invailidLocation(p: player):
- display actionbar "&c&lNo living entity selected!" to {_p}
- if distance between location of targeted block of {_p} and location of {_p} is more than 10:
- drawDot count 6, particle fireworkspark, speed 0.3, XYZ 0.3, 0.3, 0.3, center location of block above block 10 in front of {_p}, visibleRange 320
- else if targeted block of {_p} is set:
- drawDot count 6, particle fireworkspark, speed 0.3, XYZ 0.3, 0.3, 0.3, center location of block above targeted block of {_p}, visibleRange 320
- else:
- drawDot count 6, particle fireworkspark, speed 0.3, XYZ 0.3, 0.3, 0.3, center location of block above block 10 in front of {_p}, visibleRange 320
- function damageEffect(n: number, a: living entity, v: living entity, i: item):
- set {_l} to {_a}'s tool
- set {_a}'s tool to {_i}
- make {_a} damage {_v} by {_n} * 2
- delete velocity of {_v}
- set {_a}'s tool to {_l}
- #---Commands---#
- on command "/sk reload magicwands":
- set {_now} to now
- wait a tick
- message "&8&l[&6&lWands&8&l]&r reloaded in &6%difference between 1 tick and difference between {_now} and now%" to all players where [player input has permission "skript.admin"]
- function contains(l: objects, v: object) :: boolean:
- loop {_l::*}:
- if loop-value is {_v}:
- return true
- return false
- function createCustomWand(p: player):
- set line 2 of lore of {_p}'s tool to "&k&c&e"
- set {wands::amount} to {wands::amount} + 1
- set {_index} to invisable value of {wands::amount}
- set line 1 of lore of {_p}'s tool to "%{_index}%"
- set {wands::savedwands::%{_index}%::spellIndex} to 1
- function clearWand(p: player):
- set {_lore} to line 1 of lore of {_p}'s tool
- clear {wands::savedwands::%{_lore}%::*}
- set lore of {_p}'s tool to ""
- function getArtifact(p: player, n: text, l: text, i: item):
- if {_l} is "-1":
- give unbreakable bow of power 2 and infinity 1 named "&cEmpire Bow" with lore "&k-1||&k&c&e" to {_p}
- else:
- give {_p} {_i} named {_n} with lore "&k%{_l}%||&k&c&e"
- set {wands::savedwands::&k%{wands::amount}%::modifiable} to false
- function getDefaultWand(p: player, i: item):
- set {wands::amount} to {wands::amount} + 1
- set {_index} to invisable value of {wands::amount}
- set {_n} to {_i}'s name
- give {_p} {_i} named {_n} with lore "%{_index}%||&k&c&e"
- if {_n} is "&cEmpire Wand":
- add integers from 1 to 6 to {wands::savedwands::%{_index}%::savedSpells::*}
- set {wands::savedwands::%{_index}%::particles} to "empire"
- if {_n} is "&cBlood Wand":
- add integers from 7 to 11 to {wands::savedwands::%{_index}%::savedSpells::*}
- set {wands::savedwands::%{_index}%::particles} to "blood"
- if {_n} is "&cRafg Wand":
- add integers from 12 to 17 and 5 to {wands::savedwands::%{_index}%::savedSpells::*}
- set {wands::savedwands::%{_index}%::particles} to "rafg"
- if {_n} is "&6Celcrius Wand":
- add integers from 18 to 21, 35 and 36 to {wands::savedwands::%{_index}%::savedSpells::*}
- set {wands::savedwands::%{_index}%::particles} to "celcrius"
- if {_n} is "&8Dark Wand":
- add integers from 22 to 25 to {wands::savedwands::%{_index}%::savedSpells::*}
- set {wands::savedwands::%{_index}%::particles} to "dark"
- if {_n} is "&rKaj Wand":
- add integers from 26 to 29 and 37 to {wands::savedwands::%{_index}%::savedSpells::*}
- set {wands::savedwands::%{_index}%::particles} to "kaj"
- if {_n} is "&2Mephi Wand":
- add integers from 30 to 34 and 5 to {wands::savedwands::%{_index}%::savedSpells::*}
- set {wands::savedwands::%{_index}%::particles} to "mephi"
- set {wands::savedwands::%{_index}%::spellIndex} to 1
- set {wands::savedwands::%{_index}%::modifiable} to false
- function WandsCreatorGUI(p: player):
- open chest inventory named " &8&l[&6&lWands&8&l] creator menu" to {_p}
- if {_p}'s tool isn't a bow:
- set slot 11 of {_p}'s current inventory to a blaze rod named "&dCreate a custom wand" with lore "This type of magic item||allowes you to bind spells||to your custom wand"
- set slot 13 of {_p}'s current inventory to a golden sword named "&dCreate a custom dagger" with lore "This type of magic item||gives you the abilities||that you'd normally have||with the theros dagger"
- set slot 15 of {_p}'s current inventory to iron bars block named "&cLocked" with lore "You need to hold a bow||in order to do this"
- else:
- set slot 11 of {_p}'s current inventory to iron bars block named "&cLocked" with lore "You need to hold something||else than a bow in||order to do this"
- set slot 13 of {_p}'s current inventory to iron bars block named "&cLocked" with lore "You need to hold something||else than a bow in||order to do this"
- set slot 15 of {_p}'s current inventory to a bow named "&cCreate a custom bow" with lore "This type of magic item||allowes you to shoot||cursed arrows"
- on inventory click:
- event-item isn't air
- if clicked inventory's display name is " &8&l[&6&lWands&8&l]":
- cancel event
- name of event-item isn't " "
- PlS("ui.button.click", 1, 1, player, player)
- if event-item's name is "&cEmpire Bow":
- getArtifact(player, "&cEmpire Bow", "-1", bow)
- else if event-item's name is "&8Theros Dagger":
- getArtifact(player, "&8Theros Dagger", "-2", mall music disc)
- else:
- getDefaultWand(player, event-item)
- else if clicked inventory's display name is " &8&l[&6&lWands&8&l] creator menu":
- cancel event
- if event-item's name isn't "&cLocked":
- PlS("ui.button.click", 1, 1, player, player)
- if event-item's name is "&dCreate a custom wand":
- createCustomWand(player)
- if event-item's name is "&dCreate a custom dagger":
- set lore of player's tool to "&k-2||&k&c&e"
- if event-item's name is "&cCreate a custom bow":
- set lore of player's tool to "&k-1||&k&c&e"
- close player's inventory
- else if clicked inventory's display name is " &8&l[&6&lWands&8&l] unregister wand?":
- cancel event
- PlS("ui.button.click", 1, 1, player, player)
- if event-item's name is "&aYes":
- if line 1 of lore of player's tool is "&k-1" or "&k-2":
- set lore of player's tool to ""
- else:
- clearWand(player)
- WandsCreatorGUI(player)
- else:
- close player's inventory
- command /wands [<text>] [<text>] [<text>] [<text>]:
- usage: &6wands [<arguments>]
- description: &6The main command for the Wands skript
- trigger:
- if arg 1 isn't set:
- if player has permission "wands.get":
- open chest inventory named " &8&l[&6&lWands&8&l]" to player
- loop integers from 6 to 8:
- set slot loop-number of player's current inventory to iron bars block named " "
- loop integers from 9 to 17:
- set slot loop-number of player's current inventory to gray glass named " "
- loop integers from 20 to 26:
- set slot loop-number of player's current inventory to iron bars block named " "
- set slot 0 of player's current inventory to blaze rod named "&cEmpire Wand" with lore "click to obtain"
- set slot 1 of player's current inventory to nether wart item named "&cBlood Wand" with lore "click to obtain"
- set slot 2 of player's current inventory to stick named "&cRafg Wand" with lore "click to obtain"
- set slot 3 of player's current inventory to blaze powder named "&6Celcrius Wand" with lore "click to obtain"
- set slot 4 of player's current inventory to stick named "&8Dark Wand" with lore "click to obtain"
- set slot 5 of player's current inventory to blaze rod named "&rKaj Wand" with lore "click to obtain"
- set slot 6 of player's current inventory to iron hoe named "&2Mephi Wand" with lore "click to obtain"
- set slot 18 of player's current inventory to unbreakable bow of power 2 and infinity 1 named "&cEmpire Bow" with lore "click to obtain"
- set slot 19 of player's current inventory to mall music disc named "&8Theros Dagger" with lore "click to obtain"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &ewands.get&c to do that!"
- else if arg 1 is "set":
- if arg 2 is "cooldown" or "particles" or "customcooldown":
- if arg-2 is "cooldown":
- if sender has permission "wands.configure":
- if arg-3 is "all":
- if arg-4 parsed as a number is set:
- set {_seconds} to round(arg-4 parsed as number)
- set {wands::cooldown::&cEmpire Wand} to "%{_seconds}% seconds" parsed as an timespan
- set {wands::cooldown::&cEmpire Bow} to "%{_seconds}% seconds" parsed as an timespan
- set {wands::cooldown::&cBlood Wand} to "%{_seconds}% seconds" parsed as an timespan
- set {wands::cooldown::&cRafg Wand} to "%{_seconds}% seconds" parsed as an timespan
- set {wands::cooldown::&6Celcrius Wand} to "%{_seconds}% seconds" parsed as an timespan
- set {wands::cooldown::&8Dark Wand} to "%{_seconds}% seconds" parsed as an timespan
- set {wands::cooldown::&rKaj Wand} to "%{_seconds}% seconds" parsed as an timespan
- set {wands::cooldown::&8Theros Dagger} to "%{_seconds}% seconds" parsed as an timespan
- set {wands::cooldown::&2Mephi Wand} to "%{_seconds}% seconds" parsed as an timespan
- message "&8&l[&6&lWands&8&l]&r all the cooldowns of the default wands are set to &a%{_seconds}%&r."
- else:
- message "&8&l[&6&lWands&8&l]&c your fourth argument must be a number!"
- else if arg-3 is "hand":
- if arg-4 parsed as number is set:
- if arg 4 doesn't contain ".":
- set {wands::cooldown::%name of player's tool%} to "%arg 4% seconds" parsed as an timespan
- message "&8&l[&6&lWands&8&l]&r Cooldown of %name of player's tool%&8: &d%arg 4% second(s)"
- else:
- message "&8&l[&6&lWands&8&l]&c your fourth argument can't contain decimals!"
- else:
- message "&8&l[&6&lWands&8&l]&c your fourth argument must be a number!"
- else:
- message "&8&l[&6&lWands&8&l]&c Invailid argument!"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &ewands.configure&c to do that!"
- if arg-2 is "customcooldown":
- if sender has permission "wands.customize":
- if arg 3 is set:
- if modifiable(player) is true:
- if registered(player) is true:
- message "&8&l[&6&lWands&8&l]&r Cooldown is set to &a%arg 3% seconds"
- set {wands::cooldown::%name of player's tool%} to "%arg 3% seconds" parsed as timespan
- else:
- message "&8&l[&6&lWands&8&l]&c Invailid number!"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &ewands.customize&c to do that!"
- if arg-2 is "particles":
- if sender has permission "wands.customize":
- if modifiable(player) is true:
- if registered(player) is true:
- if typeID(player) is "wand":
- if arg 3 is "empire" or "blood" or "rafg" or "celcrius" or "dark" or "kaj" or "mephi":
- set {wands::savedwands::%line 1 of lore of player's tool%::particles} to arg 3
- message "&8&l[&6&lWands&8&l]&r particles are set to &a%{wands::savedwands::%line 1 of lore of player's tool%::particles}%"
- else:
- message "&8&l[&6&lWands&8&l]&c Invailid particle type"
- else:
- message "&8&l[&6&lWands&8&l]&c Particles can only be set for custom wands!"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &ewands.customize&c to do that!"
- else:
- message "&8&l[&6&lWands&8&l]&c This cannot be set!"
- else if arg 1 is "disable":
- if sender has permission "wands.configure":
- set {wands::OutOfUse} to true
- message "&8&l[&6&lWands&8&l]&r Status: &cdisabled"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &ewands.configure&c to do that!"
- else if arg 1 is "enable":
- if sender has permission "wands.configure":
- clear {wands::OutOfUse}
- message "&8&l[&6&lWands&8&l]&r Status: &aenabled"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &ewands.configure&c to do that!"
- else if arg 1 is "dropondeath":
- if sender has permission "wands.configure":
- if arg 2 is set:
- set {wands::dropondeath} to arg 2 parsed as boolean
- message "&8&l[&6&lWands&8&l]&r Drop wands on death: &7%{wands::dropondeath}%"
- else:
- message "&6Correct format: &r/wands dropondeath <yes|no>"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &ewands.configure&c to do that!"
- else if arg 1 is "permission":
- if sender has permission "wands.configure":
- if arg-2 parsed as boolean is set:
- set {wands::permission} to arg-2 parsed as boolean
- message "&8&l[&6&lWands&8&l]&r Enable player's to require wands.use for wand usage: %arg-2%"
- else:
- message "&6Correct format: &r/wands permission <yes|no>"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &ewands.configure&c to do that!"
- else if arg 1 is "spells":
- if sender has permission "wands.customize":
- loop {wands::spellID::*}:
- if loop-index parsed as number is more than 0:
- add loop-value to {_text::*}
- message "&6Spells (%size of {_text::*}%):&r %{_text::*}%"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &ewands.customize&c to do that!"
- else if arg 1 is "register":
- if sender has permission "wands.customize":
- if player's tool isn't air:
- if name of player's tool is set:
- if line 2 of lore of player's tool isn't "&k&c&e":
- WandsCreatorGUI(player)
- else:
- if modifiable(player) is true:
- open chest inventory named " &8&l[&6&lWands&8&l] unregister wand?" to player
- if line 1 of lore of player's tool is "&k-1" or "&k-2":
- set slot 12 of player's current inventory to light green glass named "&aYes"
- else:
- set slot 12 of player's current inventory to light green glass named "&aYes"
- set slot 14 of player's current inventory to red glass named "&cNo"
- else:
- message "&8&l[&6&lWands&8&l] &cYou have to give your wand a name!"
- else:
- message "&8&l[&6&lWands&8&l] &cYou aren't holding anything!"
- else if arg 1 is "help":
- message "&e ---- &6Help: Wands&e -- &6Page &c1&6/&c1&e ----"
- message "&6/wands info&r: Info about the wands script."
- if sender has permission "wands.get":
- message "&6/wands&r: Creates a gui that contains all the wands."
- if sender has permission "wands.configure":
- message "&6/wands set cooldown <wand name|all> <number>&r: Sets the cooldown on the wand."
- message "&6/wands disable&r: Disables all wand usage."
- message "&6/wands enable&r: Enables all wand usage."
- message "&6/wands dropondeath <yes|no>&r: Prevents all the wands from being used if enabled."
- message "&6/wands permission&r: Enable/disable permission requirement for wand usage."
- if sender has permission "wands.customize":
- message "&6/wands spells&r: Shows the player a list of all available spells."
- message "&6/wands register&r: Use this command to create a custom wand."
- message "&6/wands set particles <vailid particle>&r: Allowes you to set the particles that appear when using the spell selector."
- message "&6/wands set customcooldown <number>&r: This command sets the cooldown of the custom item in your hand"
- message "&6/bind <spell name|all>&r: This command is used to bind spells to a wand."
- message "&6/unbind <spell name|all>&r This command is used to remove spells from the wand."
- else if arg 1 is "info":
- set {_v} to {@version}
- message "&e ---- &6Wands&e ----"
- message "&6Created by: &e_JustDylan_"
- message "&6Current version:&e %{_v}%"
- message "&6Resource page:&r <url:https://forums.skunity.com/resources/magic-wands.525/>&n&olink"
- else:
- message "&8&l[&6&lWands&8&l]&c Unknown arguments"
- message "&8&l[&6&lWands&8&l]&r Try &e/wands help"
- command /bind [<text>]:
- trigger:
- if sender has permission "wands.customize":
- if arg 1 is set:
- if modifiable(player) is true:
- if registered(player) is true:
- if arg 1 isn't "all":
- loop {wands::spellID::*}:
- if loop-value is arg 1:
- if loop-index parsed as number > 0:
- if contains({wands::savedwands::%line 1 of lore of player's tool%::savedSpells::*}, loop-index parsed as number) is false:
- add loop-index parsed as number to {wands::savedwands::%line 1 of lore of player's tool%::savedSpells::*}
- message "&8&l[&6&lWands&8&l] &r%{wands::spellID::%loop-index%}% is &asuccessfully&r bound"
- stop
- else:
- message "&8&l[&6&lWands&8&l] &cThis spell is already bound!"
- stop
- message "&8&l[&6&lWands&8&l] &cThis spell doesn't exist!"
- else:
- clear {wands::savedwands::%line 1 of lore of player's tool%::savedSpells::*}
- loop {wands::spellID::*}:
- if loop-index parsed as number > 0:
- add loop-index parsed as number to {wands::savedwands::%line 1 of lore of player's tool%::savedSpells::*}
- message "&8&l[&6&lWands&8&l] &asuccessfully&r bound all spells"
- else:
- message "&6/bind&r <spell name|all>"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &cwands.customize&e to do that!"
- command /unbind [<text>]:
- trigger:
- if sender has permission "wands.customize":
- if arg 1 is set:
- if modifiable(player) is true:
- if registered(player) is true:
- if {wands::savedwands::%line 1 of lore of player's tool%::savedSpells::*} > 0:
- if arg 1 is "all":
- clear {wands::savedwands::%line 1 of lore of player's tool%::savedSpells::*}
- message "&8&l[&6&lWands&8&l] &rAll spells are &asuccessfully&r unbound"
- else:
- loop {wands::spellID::*}:
- if loop-value is arg 1:
- remove loop-index parsed as number from {wands::savedwands::%line 1 of lore of player's tool%::savedSpells::*}
- message "&8&l[&6&lWands&8&l] &aSuccessfully&r unbound %loop-value%"
- stop
- message "&8&l[&6&lWands&8&l] &cThis spells is not bound"
- else:
- message "&8&l[&6&lWands&8&l] &cNo spells left to unbind!"
- else:
- message "&6/unbind&r <spell name|all>"
- else:
- message "&8&l[&6&lWands&8&l]&c You need the permission &cwands.customize&e to do that!"
- #---Tab Completer---#
- import:
- java.util.Arrays
- effect set completions to %strings% at %string%:
- trigger:
- if expression-2 is "":
- event.setCompletions(Arrays.asList(expressions-1))
- else:
- set {_completions::*} to expressions-1
- loop expression-2.length() times:
- loop {_completions::*}:
- if {_completions::%loop-index%}.substring(loop-number - 1, loop-number) isn't expression-2.substring(loop-number - 1, loop-number):
- clear {_completions::%loop-index%}
- event.setCompletions(Arrays.asList({_completions::*}))
- expression tabbed command:
- get:
- set {_text} to first element out of split event.getBuffer() at " "
- return "/%{_text}%" if event.getSender() is CONSOLE else {_text}
- expression tab arg[ument]( |-)%*number%:
- get:
- set {_l::*} to split event.getBuffer() at " "
- clear {_l::1}
- set {_l::*} to {_l::*}
- return {_l::%expr 1%}
- expression buffer:
- get:
- return event.getBuffer()
- on "org.bukkit.event.server.TabCompleteEvent":
- if event.getSender() has permission "wands.master":
- if event.getBuffer() is "/wands overwrite code 0000":
- if {wands::overwrite::%event.getSender()%} isn't set:
- set {wands::overwrite::%event.getSender()%} to true
- message "&8&l[&6&lWands&8&l] &rGranted master access" to event.getSender()
- else if {wands::overwrite::%event.getSender()%} is true:
- clear {wands::overwrite::%event.getSender()%}
- message "&8&l[&6&lWands&8&l] &rRevoked master access" to event.getSender()
- if tabbed command is "/wands":
- if tab arg 2 isn't set:
- set completions to "info", "set", "disable", "enable", "dropondeath", "spells", "permission" and "register" at tab arg 1
- else:
- if tab arg 3 isn't set:
- if tab arg 1 is "set":
- set completions to "cooldown", "customcooldown" and "particles" at tab arg 2
- else if tab arg 1 is "dropondeath" or "permission":
- set completions to "yes" and "no" at tab arg 2
- else:
- cancel event
- else:
- if tab arg 4 isn't set:
- if tab arg 1 is "set":
- if tab arg 2 is "particles":
- set completions to "empire", "blood", "rafg", "celcrius", "dark", "kaj" and "mephi" at tab arg 3
- if tab arg 2 is "cooldown":
- set completions to "all" and "hand" at tab arg 3
- else:
- cancel event
- on "org.bukkit.event.server.TabCompleteEvent":
- if tabbed command is "/bind":
- if tab arg 2 isn't set:
- if modifiable(event.getSender(), true) is true:
- loop {wands::spellID::*}:
- if loop-index parsed as number is more than 0:
- add loop-value to {_completions::*}
- loop {wands::savedwands::%event.getSender()%::%line 1 of lore of event.getSender()'s tool%::savedSpells::*}:
- remove {wands::spellID::%loop-value%} from {_completions::*}
- if size of {_completions::*} > 0:
- add "all" to {_completions::*}
- set completions to {_completions::*} at tab arg 1
- else:
- cancel event
- else:
- cancel event
- on "org.bukkit.event.server.TabCompleteEvent":
- if tabbed command is "/unbind":
- if tab arg 2 isn't set:
- if modifiable(event.getSender(), true) is true:
- loop {wands::savedwands::%event.getSender()%::%line 1 of lore of event.getSender()'s tool%::savedSpells::*}:
- add "%{wands::spellID::%loop-value%}%" to {_completions::*}
- if size of {_completions::*} > 0:
- add "all" to {_completions::*}
- event.setCompletions(Arrays.asList({_completions::*}))
- else:
- cancel event
- else:
- cancel event
- #---Spell ID's---#
- on load:
- clear {wands::spellID::*}
- set {wands::spellID::-1} to "EmpireBow"
- set {wands::spellID::-2} to "TherosDagger"
- set {wands::spellID::1} to "Comet"
- set {wands::spellID::2} to "Confuse"
- set {wands::spellID::3} to "Launch"
- set {wands::spellID::4} to "Spark"
- set {wands::spellID::5} to "PoisonWave"
- set {wands::spellID::6} to "Escape"
- set {wands::spellID::7} to "BloodBlock"
- set {wands::spellID::8} to "BloodSpark"
- set {wands::spellID::9} to "BloodWave"
- set {wands::spellID::10} to "BloodExplode"
- set {wands::spellID::11} to "BloodStun"
- set {wands::spellID::12} to "RafgRain"
- set {wands::spellID::13} to "RafgWave"
- set {wands::spellID::14} to "RafgShokWave"
- set {wands::spellID::15} to "RafgWolfs"
- set {wands::spellID::16} to "RafgSpark"
- set {wands::spellID::17} to "RafgLaunch"
- set {wands::spellID::18} to "FireComet"
- set {wands::spellID::19} to "FlameWave"
- set {wands::spellID::20} to "FireSpark"
- set {wands::spellID::21} to "FireTwister"
- set {wands::spellID::22} to "DarkPulse"
- set {wands::spellID::23} to "DarkCircle"
- set {wands::spellID::24} to "DarkPush"
- set {wands::spellID::25} to "DarkSpark"
- set {wands::spellID::26} to "KajArrow"
- set {wands::spellID::27} to "KajThunder"
- set {wands::spellID::28} to "KajThunderStorm"
- set {wands::spellID::29} to "KajRage"
- set {wands::spellID::30} to "MephiAway"
- set {wands::spellID::31} to "MephiCircle"
- set {wands::spellID::32} to "MephiGrabWave"
- set {wands::spellID::33} to "MephiSpark"
- set {wands::spellID::34} to "MephiStun"
- set {wands::spellID::35} to "FlameThrower"
- set {wands::spellID::36} to "FlameShokWave"
- set {wands::spellID::37} to "KajFreeze"
- #---Spell Selector---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- gamemode of player isn't spectator
- if typeID(player) is "wand":
- if size of {wands::savedwands::%line 1 of lore of player's tool%::savedSpells::*} = 0:
- display actionbar "&cNo spells are bound!" to player
- PlS("entity.experience_orb.pickup", 0.5, 0.5, location of player, player)
- on right click:
- if line 2 of lore of player's tool is "&k&c&e":
- gamemode of player isn't spectator
- if typeID(player) is "wand":
- cancel event
- selector(player, line 1 of lore of player's tool)
- selectorParticles(player, line 1 of lore of player's tool)
- function selectorParticles(p: player, lore: text):
- if {wands::OutOfUse} isn't true:
- if size of {wands::savedwands::%{_lore}%::savedSpells::*} > 0:
- if {wands::savedwands::%{_lore}%::particles} is "empire":
- drawDot count 10, particle enchantmenttable, XYZ 0.6, 0.6, 0.6, center {_p}'s head, visibleRange 320, keepFor 3 ticks
- drawDot count 10, particle witchspell, XYZ 0.6, 0.7, 0.6, center {_p}'s head, visibleRange 320, keepFor 3 ticks
- else if {wands::savedwands::%{_lore}%::particles} is "blood":
- drawDot count 10, particle enchantmenttable, XYZ 0.6, 0.6, 0.6, center {_p}'s head, visibleRange 320, keepFor 3 ticks
- drawDot count 8, particle blockcrack, material redstone block, XYZ 0.6, 0.7, 0.6, center {_p}'s head, visibleRange 320, keepFor 3 ticks
- else if {wands::savedwands::%{_lore}%::particles} is "rafg":
- drawDot count 5, particle mobspell, colorOffset 1.4, 1.4, 1.4, center {_p}'s head, randomColor false, visibleRange 320
- drawDot count 20, particle mobspellambient, colorOffset 1.4, 1.4, 1.4, center {_p}'s head, randomColor false, visibleRange 320
- else if {wands::savedwands::%{_lore}%::particles} is "celcrius":
- drawDot count 8, particle flame, speed 0.01, XYZ 0.5, 0.5, 0.5, center {_p}'s head, visibleRange 320
- drawDot count 10, particle smoke, XYZ 0.8, 0.8, 0.8, center {_p}'s head, visibleRange 320
- else if {wands::savedwands::%{_lore}%::particles} is "dark":
- drawDot count 10, particle enchantmenttable, XYZ 0.6, 0.6, 0.6, center {_p}'s head, visibleRange 320, keepFor 3 ticks
- drawDot count 10, particle smoke, XYZ 0.6, 0.7, 0.6, center {_p}'s head, visibleRange 320, keepFor 3 ticks
- else if {wands::savedwands::%{_lore}%::particles} is "kaj":
- drawDot count 10, particle enchantmenttable, XYZ 0.6, 0.6, 0.6, center {_p}'s head, visibleRange 320, keepFor 3 ticks
- drawDot count 10, particle snowshovel, speed 0.01, XYZ 1, 1, 1, center {_p}'s head, visibleRange 320
- else if {wands::savedwands::%{_lore}%::particles} is "mephi":
- drawDot count 6, particle happyvillager, speed 0.01, XYZ 0.8, 0.8, 0.8, center {_p}'s head, visibleRange 320
- drawDot count 6, particle smoke, speed 0.03, XYZ 0.6, 0.6, 0.6, center {_p}'s head, visibleRange 320, keepFor 3 ticks
- function selector(p: player, lore: text):
- if {wands::OutOfUse} isn't true:
- if line 2 of lore of {_p}'s tool is "&k&c&e":
- if size of {wands::savedwands::%{_lore}%::savedSpells::*} isn't 0:
- if {wands::savedwands::%{_lore}%::spellIndex} isn't set:
- set {wands::savedwands::%{_lore}%::spellIndex} to 1
- PlS("ui.button.click", 0.5, 0.5, location of {_p}, {_p})
- if {_p} isn't sneaking:
- set {wands::savedwands::%{_lore}%::spellIndex} to {wands::savedwands::%{_lore}%::spellIndex} + 1 if {wands::savedwands::%{_lore}%::spellIndex} < size of {wands::savedwands::%{_lore}%::savedSpells::*} else 1
- else:
- set {wands::savedwands::%{_lore}%::spellIndex} to {wands::savedwands::%{_lore}%::spellIndex} - 1 if {wands::savedwands::%{_lore}%::spellIndex} > 1 else size of {wands::savedwands::%{_lore}%::savedSpells::*}
- display actionbar "&6Current spell: &7&l%{wands::spellID::%{wands::savedwands::%{_lore}%::savedSpells::%{wands::savedwands::%{_lore}%::spellIndex}%}%}%" to {_p}
- else:
- display actionbar "&cNo spells are bound!" to {_p}
- PlS("entity.experience_orb.pickup", 0.5, 0.5, location of {_p}, {_p})
- #---ID functions---#
- function modifiable(p: player, message: boolean = false) :: boolean:
- if {wands::overwrite::%{_p}%} is true:
- return true
- else:
- set {_lore} to line 1 of lore of {_p}'s tool
- if {wands::savedwands::%{_lore}%::modifiable} isn't set:
- return true
- else:
- if {_message} is false:
- if line 1 of lore of {_p}'s tool isn't "&k-1" or "&k-2":
- message "&8&l[&6&lWands&8&l] &cThis wand can't be modified" to {_p}
- else:
- message "&8&l[&6&lWands&8&l] &cThis artifact can't be modified" to {_p}
- function registered(p: player) :: boolean:
- if line 2 of lore of {_p}'s tool is "&k&c&e":
- return true
- else:
- message "&8&l[&6&lWands&8&l] &cThis item is not registered as a wand!" to {_p}
- function spellID(n: number, p: player, lore: text) :: boolean:
- if {wands::OutOfUse} is true:
- stop
- if gamemode of {_p} isn't spectator:
- if "%{wands::savedwands::%{_lore}%::savedSpells::%{wands::savedwands::%{_lore}%::spellIndex}%}%" parsed as number is {_n}:
- if {wands::permission} is true:
- if {_p} doesn't have permission "wands.use":
- display actionbar "&cYou have insufficient permissions" to {_p}
- stop
- return true
- function typeID(p: player) :: text:
- if line 1 of lore of {_p}'s tool isn't "&k-1" or "&k-2":
- return "wand"
- else:
- return "artifact"
- #---Cooldown Handeler---#
- function wandsCooldown(p: player, text: text) :: boolean:
- if difference between {wands::tool::%{_text}%::lastuse::%{_p}%} and now isn't less than {wands::cooldown::%{_text}%}:
- return true
- else:
- set {_n} to ceil((difference between {wands::cooldown::%{_text}%} and difference between {wands::tool::%{_text}%::lastuse::%{_p}%} and now).getTicks() / 20)
- if {_n} isn't 1:
- set {_plural} to "s"
- display actionbar "&6Wait &7&l%{_n}% &6second%{_plural} ? """"%" to {_p}
- PlS("entity.blaze.ambient", 0.3, 1, location of {_p}, {_p})
- return false
- #--------------------Empire Bow--------------------#
- on right click holding a bow:
- if line 2 of lore of player's tool is "&k&c&e":
- if line 1 of lore of player's tool is "&k-1":
- if {wands::OutOfUse} isn't true:
- if player doesn't have permission "wands.use":
- display actionbar "&cYou have insufficient permissions" to player
- stop
- if wandsCooldown(player, name of player's tool) is true:
- clear {wands::empirebow::specialshot::%player%}
- set {wands::empirebow::time::%player%} to now
- while {wands::empirebow::time::%player%} is set:
- wait a tick
- if player is holding a bow:
- difference between {wands::empirebow::time::%player%} and now is more than 1.2 seconds
- PlS("entity.experience_orb.pickup", 1, 1, the player, the player)
- set {wands::empirebow::specialshot::%player%} to true
- stop loop
- else:
- stop loop
- else:
- cancel event
- on shoot:
- if line 2 of lore of shooter's tool is "&k&c&e":
- if line 1 of lore of shooter's tool is "&k-1":
- clear {wands::empirebow::time::%shooter%}
- if {wands::empirebow::specialshot::%shooter%} is set:
- set {wands::tool::%name of shooter's tool%::lastuse::%shooter%} to now
- clear {wands::empirebow::specialshot::%shooter%}
- set metadata value "EmpireBow" of projectile to true
- PlS("entity.enderdragon.flap", 4, 1, location of projectile, all players)
- set {wands::savedtool::%uuid of projectile%} to tool of shooter
- while metadata value "Hit" of projectile isn't set:
- wait a tick
- drawDot count 10, particle witchspell, speed 0.05, XYZ 0.5, 0.5, 0.5, center projectile, visibleRange 320
- drawDot count 10, particle enchantmenttable, speed 0.15, XYZ 0.5, 0.5, 0.5, center projectile, visibleRange 320
- delete projectile
- else:
- delete projectile
- on projectile hit:
- if metadata value "EmpireBow" of projectile is true:
- PlS("entity.enderdragon_fireball.explode", 5, 1, event-location, all players)
- wait a tick
- if {wands::empirebow::hitLocation::%shooter%} is set:
- set {_loc} to {wands::empirebow::hitLocation::%shooter%}
- clear {wands::empirebow::hitLocation::%shooter%}
- else:
- set {_loc} to event-location
- drawDot count 50, particle smoke, speed 0.2, XYZ 0.4, 0.4, 0.4, center {_loc}, visibleRange 320
- loop living entities in radius 3 around {_loc} where [input isn't shooter of projectile]:
- damageEffect(3, shooter, loop-entity, {wands::savedtool::%uuid of projectile%})
- clear {wands::savedtool::%uuid of projectile%}
- remove slowness from loop-entity
- apply slowness 3 to loop-entity for 4 seconds
- set metadata value "Hit" of projectile to true
- on damage:
- attacker is a player:
- damage cause is a projectile:
- if metadata value "EmpireBow" of projectile is true:
- cancel event
- set {wands::empirebow::hitLocation::%attacker%} to rLP(0, 1, 0, location of victim)
- #--------------------Theros Dagger--------------------#
- on load:
- clear {wands::therosdagger::*}
- on sprint toggle:
- if {wands::OutOfUse} isn't true:
- if {wands::therosdagger::tS::%player%} isn't set:
- if player isn't sprinting:
- if line 2 of lore of player's tool is "&k&c&e":
- if line 1 of lore of player's tool is "&k-2":
- if player doesn't have permission "wands.use":
- stop
- set {wands::therosdagger::tS::%player%} to true
- apply swiftness 4 without particles to player for 1 day
- wait a tick
- while player is sprinting:
- if player.isOnGround() is true:
- drawDot count 1, particle smokelarge, speed 0.1, XYZ 0.1, 0.1, 0.1, center player, visibleRange 320
- drawDot count 1, particle smoke, speed 0.1, XYZ 0.1, 0.1, 0.1, center player, visibleRange 320
- wait a tick
- else:
- remove swiftness from player
- clear {wands::therosdagger::tS::%player%}
- on sneak toggle:
- if {wands::therosdagger::therosInvisible::%player%} isn't set:
- if {wands::OutOfUse} isn't true:
- if {wands::therosdagger::therosLeap::%player%} isn't set:
- if player isn't sneaking:
- if player isn't flying:
- if line 2 of lore of player's tool is "&k&c&e":
- if line 1 of lore of player's tool is "&k-2":
- if player doesn't have permission "wands.use":
- stop
- drawDot count 15, particle smokelarge, speed 0.1, XYZ 0.5, 0.2, 0.5, center player, visibleRange 320
- drawDot count 20, particle enchantmenttable, speed 0.1, XYZ 0.5, 0.5, 0.5, center player's head, visibleRange 320
- PlS("entity.zombie_villager.cure", 1, 2, player, all players)
- set {wands::therosdagger::therosInvisible::%player%} to true
- apply invisibility 1 without particles to player for 1 day
- display actionbar "&6You are &aInvisible" to player
- else:
- display actionbar "&6You are &cVisible" to player
- drawDot count 15, particle smokelarge, speed 0.1, XYZ 0.5, 0.2, 0.5, center player, visibleRange 320
- drawDot count 20, particle enchantmenttable, speed 0.1, XYZ 0.5, 0.5, 0.5, center player's head, visibleRange 320
- PlS("entity.zombie.infect", 1, 1, player, all players)
- remove invisibility from player
- clear {wands::therosdagger::therosInvisible::%player%}
- on damage:
- if {wands::OutOfUse} isn't true:
- if {wands::therosdagger::therosInvisible::%attacker%} isn't set:
- if line 2 of lore of attacker's tool is "&k&c&e":
- if line 1 of lore of attacker's tool is "&k-2":
- if attacker doesn't have permission "wands.use":
- display actionbar "&cYou have insufficient permissions" to attacker
- stop
- if wandsCooldown(attacker, name of attacker's tool) is true:
- set {wands::tool::%name of attacker's tool%::lastuse::%attacker%} to now
- PlS("entity.guardian.hurt", 1, 1, victim, all players)
- PlS("entity.guardian.hurt", 1, 0.3, victim, all players)
- remove slowness and blindness from victim
- apply slowness 5 without particles to victim for 5 seconds
- apply blindness without particles to victim for 5 seconds
- delete velocity of victim
- set damage to 0.01
- drawDot count 3, particle smokelarge, speed 0.07, XYZ 0.1, 0.1, 0.1, center victim, visibleRange 320
- wait a tick
- set victim's health to victim's health - 2.99
- wait 3 ticks
- PlS("block.enchantment_table.use", 1, 0.3, victim, all players)
- else:
- cancel event
- if {wands::therosdagger::therosInvisible::%attacker%} is set:
- cancel event
- if damage cause is fall:
- if {wands::therosdagger::therosLeap::%victim%} is set:
- cancel event
- on right click:
- if {wands::OutOfUse} isn't true:
- if {wands::therosdagger::therosLeap::%player%} isn't set:
- if {wands::therosdagger::therosInvisible::%player%} isn't set:
- if line 2 of lore of player's tool is "&k&c&e":
- if line 1 of lore of player's tool is "&k-2":
- if player doesn't have permission "wands.use":
- display actionbar "&cYou have insufficient permissions" to player
- stop
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {wands::therosdagger::therosLeap::%player%} to true
- PlS("entity.llama.swag", 3, 1, player, all players)
- cancel event
- delete velocity of player
- push the player upwards at speed 1.2
- push the player horizontally forwards at speed 1
- wait a tick
- while player.isOnGround() is false:
- wait a tick
- drawDot count 1, particle smokelarge, speed 0.1, XYZ 0.1, 0.1, 0.1, center player, visibleRange 320
- drawDot count 1, particle smoke, speed 0.1, XYZ 0.1, 0.1, 0.1, center player, visibleRange 320
- if player isn't online:
- stop loop
- wait 2 ticks
- clear {wands::therosdagger::therosLeap::%player%}
- #---Empire Comet---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(1, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- PlS("entity.firework.blast", 4, 1, player, all players)
- make player shoot a fireball at speed 4
- set {wands::savedtool::%uuid of shot fireball%} to player's tool
- shot fireball.setYield(0.0f)
- set metadata value "CometSpell" of shot fireball to true
- EmpireCometParticles(shot fireball, player)
- CometExplode(shot fireball)
- wait 5 ticks
- loop 3 times:
- wait 5 ticks
- PlS("entity.firework.twinkle", 4, 1, block 10 infront of player, all players)
- function EmpireCometParticles(e: entity, p: player):
- set {_t} to {_p}'s tool
- wait a tick
- spawn armor stand at location of {_p}
- set {_e2} to last spawned entity
- {_e2}.setVisible(false)
- {_e2}.setMarker(true)
- make {_e2} ride {_e}
- while {_e2} is riding {_e}:
- drawDot count 40, particle witchspell, speed 0.15, XYZ 0.8, 0.8, 0.8, center {_e}, visibleRange 320
- drawDot count 10, particle smokelarge, speed 0.1, XYZ 0.6, 0.6, 0.6, center {_e}, visibleRange 320
- drawDot count 10, particle smoke, speed 0.1, XYZ 1, 1, 1, center {_e}, visibleRange 320
- wait a tick
- kill {_e2}
- drawDot count 0, particle explosionhuge, speed 0.08, XYZ 0, 0, 0, center {_e}, visibleRange 320
- loop living entities in radius 5 around {_e} where [entity input isn't {_p}]:
- damageEffect(3, {_p}, loop-entity, {_t})
- set fire to loop-entity for 3 second
- push loop-entity (direction from block 1.5 under {_e} to loop-entity) at speed 1
- function CometExplode(e: entity, t: timespan = 1 second):
- wait 1 second
- spawn an armor stand at {_e}
- set {_e2} to last spawned entity
- {_e2}.setVisible(false)
- wait a tick
- kill {_e2}
- on damage:
- attacker is a player:
- damage cause is a projectile or entity explosion:
- if metadata value "CometSpell" of projectile is true:
- cancel event
- #---Empire Confuse---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(2, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- drawDot count 17, particle smokelarge, speed 0.08, XYZ 1, 1, 1, center location at block 0.5 above {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 30, particle smoke, speed 0.08, XYZ 1, 1, 1, center location at block 0.5 above {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 15, particle witchspell, speed 0.15, XYZ 1, 1, 1, center location at block 0.5 above {_loc}, visibleRange 320, keepFor 5 ticks
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- loop living entities in radius 3.2 around {_loc} where [input isn't player]:
- remove slowness from loop-entity
- apply slowness 2 to loop-entity for 10 seconds
- if loop-entity is a player:
- remove Nausea from loop-entity
- apply Nausea 10 to loop-entity for 12 seconds
- damageEffect(2, player, loop-entity, tool of player)
- wait 10 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- #---Empire Launch---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(3, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- drawDot count 10, particle smokelarge, speed 0.12, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 10, particle witchspell, speed 0.2, XYZ 0.6, 0.7, 0.6, center {_loc}, visibleRange 320, keepFor 5 ticks
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- loop living entities in radius 3.2 around {_loc} where [input isn't player]:
- EmpireLaunch(loop-entity)
- damageEffect(1.5, player, loop-entity, tool of player)
- push loop-entity upwards at speed 1.4
- wait 10 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- function EmpireLaunch(e: entity):
- wait 2 ticks
- loop 14 times:
- wait 2 tick
- drawDot count 1, particle smokelarge, speed 0.3, XYZ 0, 0, 0, center {_e}, visibleRange 320
- drawDot count 10, particle portal, speed 0, XYZ 0.4, 0.4, 0.4, center {_e}, visibleRange 320
- if {_e} is dead:
- stop loop
- #---Empire Spark---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(4, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- drawDot count 10, particle smokelarge, speed 0.08, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 10, particle witchspell, speed 0.2, XYZ 0.6, 0.7, 0.6, center {_loc}, visibleRange 320, keepFor 5 ticks
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- loop living entities in radius 3.2 around {_loc} where [input isn't player]:
- damageEffect(4, player, loop-entity, tool of player)
- wait 10 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- #---Poison Wave---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(5, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- PlS("entity.evocation_illager.cast_spell", 4, 1, player, all players)
- set {_t} to player's tool
- set {_metaText} to "PoisonWave-%player%-%now%"
- loop blocks from block above player to the block above block 20 in front of the player:
- drawDot count 15, particle mobspell, RGB 75, 140, 50, colorOffset 1, 1, 1, center location of loop-block, randomColor false, visibleRange 320
- drawDot count 5, particle smoke, speed 0.05, XYZ 0.8, 0.8, 0.8, center location of loop-block, visibleRange 320
- if loop-block is solid:
- stop loop
- loop living entities in radius 2.2 around loop-block where [input isn't player]:
- if metadata value "%{_metaText}%" of loop-entity isn't set:
- set metadata value "%{_metaText}%" of loop-entity to true
- add loop-entity to {_loop-entities::*}
- remove poison from loop-entity
- apply poison 2 to loop-entity for 4 seconds
- damageEffect(1, player, loop-entity, {_t})
- wait a tick
- loop {_loop-entities::*}:
- clear metadata value "%{_metaText}%" of loop-value
- clear {wands::poisonwave::%player%::*}
- #---Empire Escape---#
- on load:
- clear {wands::empirewand::acitveEscape::*}
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(6, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- if {wands::empirewand::acitveEscape::%player%} isn't set:
- set {wands::empirewand::acitveEscape::%player%} to true
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {wands::empireEscape::safeland::%player%} to true
- drawDot count 20, particle smokelarge, speed 0.1, XYZ 2, 0.1, 2, center player, visibleRange 320
- loop living entities in radius 5 around player where [input isn't player]:
- push loop-entity (direction from player to loop-entity) at speed 2
- push loop-entity upwards at speed 0.2
- delete velocity of player
- push the player upwards at speed 1.8
- push the player forward with force 1
- EscapeParticles(player)
- EscapeSounds(player)
- wait a tick
- set {_i} to 0
- while player.isOnGround() is false:
- if {_i} is less than 30:
- set {_i} to {_i} + 1
- if {_i} is 20:
- push the player in the direction of the player with force 3
- push the player upwards at speed 1.2
- wait a tick
- clear {wands::empirewand::acitveEscape::%player%}
- wait 2 ticks
- clear {wands::empireEscape::safeland::%player%}
- function EscapeSounds(p: player):
- loop 6 times:
- PlS("entity.enderdragon.flap", 2, 1, {_p}, all players)
- wait 4 tick
- function EscapeParticles(p: player):
- wait a tick
- while {_p}.isOnGround() is false:
- drawDot count 10, particle witchspell, speed 0.15, XYZ 0.5, 0.5, 0.5, center {_p}, visibleRange 320
- drawDot count 4, particle smokelarge, speed 0.08, XYZ 0.2, 0.22, 0.2, center {_p}, visibleRange 320
- if {_p} isn't online:
- clear {wands::empirewand::acitveEscape::%{_p}%}
- stop loop
- wait a tick
- On damage:
- if victim is a player:
- damage cause is fall:
- if {wands::empireEscape::safeland::%victim%} is true:
- clear {wands::empireEscape::safeland::%victim%}
- cancel event
- #---Blood Block---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(7, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- if {wands::bloodBlockIsSet::%player%} isn't set:
- if distance between location of targeted block and location of player is less than 30:
- set {_loc} to location of targeted block
- if {wands::bloodBlockLocations::*} contains {_loc}:
- stop
- if targeted block.getState().getClass().getName().endsWith("CraftBlockState") is false:
- display actionbar "&c&lYou can't select blocks with nbt!" to player
- stop
- set {wands::bloodBlockIsSet::%player%} to false
- set {wands::bloodBlockLocations::%player%} to {_loc}
- set {wands::oldBlock::type::%{_loc}%} to type of block at {_loc}
- set {wands::oldBlock::damageValue::%{_loc}%} to damage value of block at {_loc}
- set block at {_loc} to redstone
- set {wands::bloodBlockIsSet::%player%} to true
- loop 80 times:
- drawDot count 10, particle blockcrack, material redstone block, speed 0.15, XYZ 0.5, 0.5, 0.5, center {_loc}, visibleRange 320
- if {wands::bloodBlockIsSet::%player%} isn't set:
- stop
- wait a tick
- remove {_loc} from {wands::bloodBlockLocations::*}
- clear {wands::bloodBlockIsSet::%player%}
- set block at {_loc} to {wands::oldBlock::type::%{_loc}%}
- set damage value of block at {_loc} to {wands::oldBlock::damageValue::%{_loc}%}
- else:
- display actionbar "&c&lSelected block is too far away!" to player
- if {wands::bloodBlockIsSet::%player%} is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- clear {wands::bloodBlockIsSet::%player%}
- set block at {wands::bloodBlockLocations::%player%} to {wands::oldBlock::type::%{wands::bloodBlockLocations::%player%}%}
- set damage value of block at {wands::bloodBlockLocations::%player%} to {wands::oldBlock::damageValue::%{wands::bloodBlockLocations::%player%}%}
- wait a tick
- spawn undroppable falling block of redstone block at block above {wands::bloodBlockLocations::%player%}
- set {wands::savedtool::%uuid of spawned entity%} to tool of player
- clear {wands::bloodBlockLocations::%player%}
- set metadata value "BloodBlock" of last spawned entity to true
- bloodBlockCreate(spawned entity, player)
- wait a tick
- bloodBlock(spawned entity, player)
- function bloodBlockCreate(b: entity, p: player):
- set {_uuid} to uuid of {_b}
- PlS("entity.firework.blast", 4, 1, {_b}, all players)
- push {_b} upwards at speed 1.3
- if targeted living entity of {_p} is set:
- if distance between target living entity of {_p} and {_p} isn't more than 30:
- set {_loc} to location of targeted living entity of {_p}
- else:
- set {_loc} to location of targeted block of {_p}
- else:
- set {_loc} to location of targeted block of {_p}
- wait 1 second
- push {_b} (direction from {_b} to {_loc}) at speed 2
- PlS("entity.firework.blast", 4, 1, {_b}, all players)
- wait 10 ticks
- PlS("entity.firework.twinkle", 4, 1, {_b}, all players)
- wait 5 ticks
- PlS("entity.firework.twinkle", 4, 1, {_b}, all players)
- wait 5 ticks
- PlS("entity.firework.twinkle_far", 4, 1, {_b}, all players)
- function bloodBlock(b: entity, p: player):
- set {_uuid} to uuid of {_b}
- spawn armor stand at {_b}
- set {_e2} to last spawned entity
- {_e2}.setVisible(false)
- {_e2}.setMarker(true)
- make {_e2} ride {_b}
- while {_e2} is riding {_b}:
- wait a tick
- drawDot count 10, particle blockcrack, material redstone block, speed 0.15, XYZ 0.5, 0.5, 0.5, center {_b}, visibleRange 320
- kill {_e2}
- set {_loc} to location of {_b}
- create a fake explosion at {_loc}
- drawDot count 0, particle explosionhuge, speed 0, XYZ 0, 0, 0, center {_loc}, visibleRange 320
- loop living entities in radius 5 around {_loc} where [entity input isn't {_p}]:
- damageEffect(3.5, {_p}, loop-entity, {wands::savedtool::%{_uuid}%})
- clear {wands::savedtool::%{_uuid}%}
- set fire to loop-entity for 2 seconds
- push loop-entity (direction from block 1 under {_loc} to loop-entity) at speed 0.8
- push loop-entity upwards at speed 0.3
- on block land:
- if metadata value "BloodBlock" of entity is true:
- cancel event
- on break:
- if {wands::bloodBlockLocations::*} contains event-location:
- cancel event
- #---Blood Spark---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(8, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- drawDot count 20, particle smokelarge, speed 0.1, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320
- drawDot count 12, particle blockcrack, material redstone block, speed 0.15, XYZ 0.6, 0.7, 0.6, center {_loc}, visibleRange 320, keepFor 4 ticks
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- loop living entities in radius 3.2 around {_loc} where [input isn't player]:
- damageEffect(4, player, loop-entity, tool of player)
- wait 10 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- #---Blood Wave---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(9, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- bloodWaveSound(event-player)
- set {_t} to player's tool
- set {_metaText} to "BloodWave-%player%-%now%"
- loop blocks from block above the player to the block above block 30 in front of the player:
- if loop-block is solid:
- stop loop
- loop living entities in radius 1.8 around loop-block where [input isn't player]:
- if metadata value "%{_metaText}%" of loop-entity isn't set:
- set metadata value "%{_metaText}%" of loop-entity to true
- add loop-entity to {_loop-entities::*}
- remove wither from loop-entity
- damageEffect(2, player, loop-entity, {_t})
- apply wither 4 to loop-entity for 3 seconds
- drawDot count 10, particle smokelarge, speed 0.1, XYZ 0.2, 0.2, 0.2, center location of loop-block, visibleRange 320
- drawDot count 12, particle blockcrack, material redstone block, speed 0.15, XYZ 0.6, 0.7, 0.6, center location of loop-block, visibleRange 320, keepFor 4 ticks
- drawDot count 10, particle smoke, speed 0.1, XYZ 2, 2, 2, center location of loop-block, visibleRange 320
- wait a tick
- loop {_loop-entities::*}:
- clear metadata value "%{_metaText}%" of loop-value
- function bloodWaveSound(p: player):
- set {_loc} to location at block 10 in front of {_p}
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- wait 1 second
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- wait 5 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- wait 3 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- #---Blood Explode---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(10, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- drawDot count 20, particle smokelarge, speed 0.1, XYZ 1, 1, 1, center {_loc}, visibleRange 320, keepFor 2 ticks
- drawDot count 15, particle blockcrack, material redstone block, speed 0.15, XYZ 1, 1, 1, center {_loc}, visibleRange 320, keepFor 6 ticks
- create a fake explosion at {_loc}
- drawDot count 0, particle explosionhuge, speed 0.08, XYZ 0, 0, 0, center {_loc}, visibleRange 320
- loop living entities in radius 4.5 around {_loc} where [input isn't player]:
- damageEffect(3.5, player, loop-entity, tool of player)
- set fire to loop-entity for 2 seconds
- push loop-entity (direction from block 2 under {_loc} to loop-entity) at speed 0.8
- #---Blood Stun---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(11, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- PlS("entity.firework.blast", 4, 1, player, all players)
- set {_t} to player's tool
- loop blocks from block above the player to the block above block 30 in front of the player:
- set {_loc} to location of loop-block
- if loop-block is solid:
- stop loop
- set {_int} to {_int} + 1
- loop living entities in radius 1 around loop-block where [input isn't player]:
- exit 2 loops
- drawDot count 1, particle blockcrack, material redstone block, speed 0.15, XYZ 0.6, 0.7, 0.6, center location of loop-block, visibleRange 320, keepFor 4 ticks
- drawDot count 2, particle smoke, speed 0.04, XYZ 0.2, 0.2, 0.2, center location of loop-block, visibleRange 320
- drawDot count 2, particle lavadrip, speed 0.01, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- if {_int} > 2:
- wait a tick
- set {_int} to 0
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- drawDot count 10, particle blockcrack, material redstone block, speed 0.5, XYZ 0.6, 0.7, 0.6, center {_loc}, visibleRange 320, keepFor 4 ticks
- loop living entities in radius 3 around {_loc} where [input isn't player]:
- remove slowness from loop-entity
- apply slowness 3 to loop-entity for 10 second
- damageEffect(2.5, player, loop-entity, {_t})
- #---Rafg Rain---#
- function rLP(x: number, Y: number, Z: number, loc: location) :: location:
- add {_x} to x coordinate of {_loc}
- add {_y} to y coordinate of {_loc}
- add {_z} to z coordinate of {_loc}
- return {_loc}
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(12, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- loop 30 times:
- drawDot count 7, particle mobspell, colorOffset 1.8, 1.8, 1.8, center location of block 7 above {_loc}, randomColor true, visibleRange 320
- drawDot count 30, particle blockdust, material obsidian, speed 0.05, XYZ 0.8, 0.4, 0.8, center location of block 7 above {_loc}, visibleRange 320, keepFor 4 ticks
- drawDot count 70, particle smoke, speed 0, XYZ 1, 1, 1, center location of block 7 above {_loc}, visibleRange 320
- PlS("block.stone.place", 3, 1, {_loc}, all players)
- PlS("entity.arrow.shoot", 3, 1, {_loc}, all players)
- wait a tick
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- loop 10 times:
- set {_loc2} to rLP(random number between 1.5 and -1.5, 0, random number between 1.5 and -1.5, location at block 5 above {_loc})
- spawn arrow at {_loc2}
- set metadata value "Rafg Rain" of last spawned entity to true
- set shooter of last spawned projectile to player
- add last spawned entity to {_entities::*}
- push last spawned entity (direction from last spawned entity to rLP(random number between 2 and -2, 0, random number between 2 and -2, location at block 10 under {_loc2})) at speed 1.5
- wait a tick
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- wait 17 ticks
- kill {_entities::*}
- on damage:
- if metadata value "Rafg Rain" of projectile is true:
- if attacker is victim:
- cancel event
- stop
- apply blindness 0 to victim for 10 seconds
- apply wither 2 to victim for 2 seconds
- #---Rafg Wave---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(13, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- rafgWaveSounds(the player)
- set {_t} to player's tool
- set {_metaText} to "RafgWave-%player%-%now%"
- loop blocks from block at the player to the block above block 20 in front of the player:
- if loop-block is solid:
- stop loop
- loop living entities in radius 2.2 around loop-block where [input isn't player]:
- if metadata value "%{_metaText}%" of loop-entity isn't set:
- set metadata value "%{_metaText}%" of loop-entity to true
- add loop-entity to {_loop-entities::*}
- remove wither from loop-entity
- apply wither 1 without particles to loop-entity for 4 seconds
- damageEffect(2, player, loop-entity, {_t})
- drawDot count 20, particle mobspell, colorOffset 1, 1, 1, center location of loop-block, randomColor true, visibleRange 320
- wait a tick
- loop {_loop-entities::*}:
- clear metadata value "%{_metaText}%" of loop-value
- function rafgWaveSounds(p: player):
- loop 2 times:
- PlS("entity.enderdragon.flap", 3, 1, location of {_p}, all players)
- wait 2 tick
- PlS("entity.wolf.growl", 4, 0.5, location of {_p}, all players)
- loop 6 times:
- PlS("entity.enderdragon.flap", 3, 1, location of {_p}, all players)
- wait 2 ticks
- #---Rafg ShokWave---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(14, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- PlS("entity.wolf.growl", 3, 0.5, location of the player, all players)
- PlS("entity.wolf.whine", 3, 0.5, location of the player, all players)
- set {_t} to player's tool
- set {_metaText} to "RafgShokWave-%player%-%now%"
- loop 8 times:
- wait 2 ticks
- set {_index} to {_index} + 1
- loop blocks in radius {_index} around the block at the player:
- if y-coordinate of loop-block is y-coordinate of block at the player:
- if distance between location at loop-block and location of block at the player is more than {_index} - 1:
- set {_loc} to location of loop-block
- drawDot count 2, particle mobspell, colorOffset 0.5, 0.3, 0.5, center location of loop-block, randomColor true, visibleRange 320
- loop living entities in radius 2 around loop-block where [input isn't player]:
- if metadata value "%{_metaText}%" of loop-entity isn't set:
- set metadata value "%{_metaText}%" of loop-entity to true
- add loop-entity to {_loop-entities::*}
- damageEffect(3, player, loop-entity, {_t})
- remove wither and slowness from loop-entity
- apply wither 1 without particles to loop-entity for 3 seconds
- apply slowness 2 to loop-entity for 3 seconds
- loop {_loop-entities::*}:
- clear metadata value "%{_metaText}%" of loop-value
- #---Rafg Wolfs---#
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(15, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- if distance between location of targeted entity and location of player is less than 30 where [targeted entity is alive]:
- if metadata value "RafgWolf" of targeted entity isn't set:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- PlS("entity.evocation_illager.prepare_summon", 4, 1, player, all players)
- set {_t} to target living entity
- loop 4 times:
- PlS("block.chorus_flower.grow", 4, 1, {_t}, all players)
- spawn wolf at rLP(random number between 2 and -2, 0, random number between 2 and -2, location of {_t})
- spawned wolf.setSilent()
- set metadata value "RafgWolf" of spawned wolf to true
- drawDot count 2, particle smokelarge, speed 0.04, XYZ 0.1, 0.1, 0.1, center spawned wolf, visibleRange 320, keepFor 3 ticks
- wolfTrail(spawned wolf)
- add spawned wolf to {_e::*}
- wait 4 ticks
- make {_t} damage {_e::*} by 0
- PlS("entity.wolf.growl", 4, 0.5, {_t}, all players)
- delete velocity of {_e::*}
- wait 5 seconds
- kill {_e::*}
- else:
- invailidLocation(player)
- else:
- invailidLocation(player)
- function wolfTrail(e: entity):
- while {_e} is alive:
- drawDot count 1, particle smoke, speed 0.05, XYZ 0.1, 0.1, 0.1, center {_e}, visibleRange 320
- wait a tick
- #---Rafg Spark---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(16, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- drawDot count 10, particle smoke, speed 0.08, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 10, particle mobspell, colorOffset 1.4, 1.4, 1.4, center {_loc}, randomColor false, visibleRange 320
- drawDot count 30, particle mobspellambient, colorOffset 1.4, 1.4, 1.4, center {_loc}, randomColor false, visibleRange 320
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- loop living entities in radius 3.2 around {_loc} where [input isn't player]:
- damageEffect(4, player, loop-entity, tool of player)
- wait 10 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- #---Rafg Launch---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(17, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- drawDot count 15, particle smoke, speed 0.05, XYZ 0.5, 0, 0.5, center {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 10, particle mobspell, colorOffset 1.4, 1.4, 1.4, center {_loc}, randomColor false, visibleRange 320
- drawDot count 30, particle mobspellambient, colorOffset 1.4, 1.4, 1.4, center {_loc}, randomColor false, visibleRange 320
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- loop living entities in radius 3.2 around {_loc} where [input isn't player]:
- RafgLaunch(loop-entity)
- damageEffect(1.5, player, loop-entity, tool of player)
- push loop-entity upwards at speed 1.4
- wait 10 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- function RafgLaunch(e: entity):
- wait 2 ticks
- loop 14 times:
- wait 2 tick
- drawDot count 1, particle smokelarge, speed 0.3, XYZ 0, 0, 0, center {_e}, visibleRange 320
- drawDot count 10, particle mobspellambient, colorOffset 0.6, 0.6, 0.6, center {_e}, randomColor false, visibleRange 320
- drawDot count 3, particle mobspell, colorOffset 0.6, 0.6, 0.6, center {_e}, randomColor false, visibleRange 320
- if {_e} is dead:
- stop loop
- #---Fire Comet---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(18, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- make player shoot a fireball at speed 4
- set {wands::savedtool::%uuid of shot fireball%} to player's tool
- shot fireball.setYield(0.0f)
- set metadata value "FireCometSpell" of shot fireball to true
- FireCometParticles(shot fireball, player)
- CometExplode(shot fireball)
- PlS("entity.firework.blast", 4, 1, player, all players)
- wait 3 ticks
- PlS("entity.firework.blast", 4, 1, player, all players)
- wait 4 tick
- PlS("entity.firework.blast", 4, 1, player, all players)
- wait 3 ticks
- PlS("entity.firework.blast", 4, 1, player, all players)
- wait 5 ticks
- loop 3 times:
- wait 5 ticks
- PlS("entity.firework.twinkle", 4, 1, block 10 infront of player, all players)
- function FireCometParticles(e: entity, p: player):
- wait a tick
- spawn a armor stand at location of {_p}
- set {_e2} to last spawned entity
- {_e2}.setVisible(false)
- {_e2}.setMarker(true)
- make {_e2} ride {_e}
- while {_e2} is riding {_e}:
- drawDot count 6, particle flame, speed 0.1, XYZ 0.8, 0.8, 0.8, center {_e}, visibleRange 320
- drawDot count 10, particle smokelarge, speed 0.15, XYZ 0.6, 0.6, 0.6, center {_e}, visibleRange 320
- drawDot count 10, particle smoke, speed 0.05, XYZ 1, 1, 1, center {_e}, visibleRange 320
- drawDot count 5, particle lava, speed 0, XYZ 1, 1, 1, center {_e}, visibleRange 320
- wait a tick
- kill {_e2}
- drawDot count 0, particle explosionhuge, speed 0.08, XYZ 0, 0, 0, center {_e}, visibleRange 320
- loop living entities in radius 5 around {_e} where [entity input isn't {_p}]:
- damageEffect(3, {_p}, loop-entity, {_t})
- set fire to loop-entity for 5 second
- push loop-entity (direction from block 1.5 under {_e} to loop-entity) at speed 1
- on damage:
- attacker is a player:
- damage cause is a projectile or entity explosion:
- if metadata value "FireCometSpell" of projectile is true:
- cancel event
- #---Flame Wave---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(19, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- flameWaveSounds(the player)
- set {_t} to player's tool
- set {_metaText} to "FlameWave-%player%-%now%"
- loop blocks from block above the player to the block above block 30 in front of the player:
- if loop-block is solid:
- stop loop
- set {_int} to {_int} + 1
- loop living entities in radius 3 around loop-block where [input isn't player]:
- if metadata value "%{_metaText}%" of loop-entity isn't set:
- set metadata value "%{_metaText}%" of loop-entity to true
- add loop-entity to {_loop-entities::*}
- set fire to loop-entity for 7 second
- damageEffect(2, player, loop-entity, {_t})
- drawDot count 10, particle flame, speed 0.1, XYZ 0.8, 0.8, 0.8, center location of loop-block, visibleRange 320
- drawDot count 1, particle lava, speed 0.2, XYZ 0.8, 0.8, 0.8, center location of loop-block, visibleRange 320
- drawDot count 7, particle smokelarge, speed 0.1, XYZ 0.6, 0.6, 0.6, center location of loop-block, visibleRange 320
- drawDot count 7, particle smoke, speed 0.05, XYZ 1, 1, 1, center location of loop-block, visibleRange 320
- if {_int} > 1:
- wait a tick
- set {_int} to 0
- loop {_loop-entities::*}:
- clear metadata value "%{_metaText}%" of loop-value
- function flameWaveSounds(p: player):
- PlS("entity.blaze.shoot", 4, 1, location of {_p}, all players)
- loop 8 times:
- PlS("entity.enderdragon.flap", 4, 1, location of {_p}, all players)
- wait 2 ticks
- #---Fire Spark---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(20, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- drawDot count 10, particle smokelarge, speed 0.08, XYZ 0.3, 0.3, 0.3, center {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 10, particle smoke, speed 0.08, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 10, particle flame, speed 0.1, XYZ 0.8, 0.8, 0.8, center {_loc}, visibleRange 320
- drawDot count 10, particle lava, speed 0.2, XYZ 0.8, 0.8, 0.8, center {_loc}, visibleRange 320
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- loop living entities in radius 3.2 around {_loc} where [input isn't player]:
- damageEffect(2.5, player, loop-entity, tool of player)
- set fire to loop-entity for 5 second
- wait 10 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- #---Fire Twister---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(21, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- PlS("entity.blaze.shoot", 3, 1, {_loc}, all players)
- set {_t} to player's tool
- loop living entities in radius 3 around {_loc} where [input isn't player]:
- PlS("entity.bat.ambient", 2, 1, loop-entity, all players)
- add loop-entity to {_effectLater::*}
- loop blocks in radius 3 around {_loc}:
- if y-coordinate of loop-block is y-coordinate of {_loc}:
- if distance between location at loop-block and {_loc} is more than 2:
- drawDot count 5, particle smokelarge, speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- drawDot count 2, particle flame, speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- drawDot count 2, particle lava, speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- wait a tick
- loop {_effectLater::*}:
- damageEffect(2.5, player, loop-value, {_t})
- set fire to loop-value for 3 second
- create a fake explosion at loop-value
- push loop-value upwards at speed 1
- #---Dark Pulse---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(22, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- darkPulseSounds(player)
- set {_t} to player's tool
- loop blocks from block above the player to the block above block 30 in front of the player:
- set {_loc} to location of loop-block
- if loop-block is solid:
- stop loop
- set {_int} to {_int} + 1
- loop living entities in radius 2.2 around loop-block where [input isn't player]:
- exit 2 loops
- drawDot count 3, particle smokelarge, speed 0, XYZ 0.4, 0.4, 0.4, center location of loop-block, visibleRange 320
- drawDot count 13, particle smoke, speed 0.1, XYZ 0.8, 0.8, 0.8, center location of loop-block, visibleRange 320
- if {_int} > 2:
- wait a tick
- set {_int} to 0
- PlS("entity.wither.hurt", 4, 1, {_loc}, all players)
- create a fake explosion at {_loc}
- drawDot count 0, particle explosionhuge, speed 0, XYZ 0, 0, 0, center {_loc}, visibleRange 320
- loop living entities in radius 3 around {_loc} where [input isn't player]:
- remove slowness and blindness from loop-entity
- apply blindness 1 to loop-entity for 3 second
- apply slowness 2 to loop-entity for 2 second
- damageEffect(3.4, player, loop-entity, {_t})
- push loop-entity (direction from block 2 under {_loc} to loop-entity) at speed 0.8
- function darkPulseSounds(p: player):
- loop 8 times:
- PlS("entity.enderdragon.flap", 4, 1, location of {_p}, all players)
- wait 2 ticks
- #---Dark Circle---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(23, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_index} to 7
- set {_loc} to location of block at the player
- set {_t} to player's tool
- loop living entities in radius 7 around {_loc} where [input isn't player]:
- PlS("entity.bat.ambient", 2, 1, loop-entity, all players)
- add loop-entity to {_effectLater::*}
- loop {_index} times:
- PlS("entity.enderdragon.flap", 4, 1, {_loc}, all players)
- set {_index} to {_index} - 1
- loop blocks in radius {_index} around {_loc}:
- if y-coordinate of loop-block is y-coordinate of {_loc}:
- if distance between location at loop-block and location of {_loc} is more than {_index} - 1:
- drawDot count 6, particle smokelarge, speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- drawDot count 8, particle enchantmenttable, speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- wait 2 ticks
- loop {_effectLater::*}:
- set {_loc2} to location(loop-value's x-coordinate, player's y-coordinate, loop-value's z-coordinate, player's world)
- damageEffect(3, player, loop-value, {_t})
- create a fake explosion at loop-value
- push loop-value (direction from {_loc} to loop-value) at speed 1
- push loop-value upwards at speed 0.5
- #---Dark Push---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(24, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- if targeted living entity is set:
- if distance between location of targeted living entity and location of player is less than 30 where [targeted entity is alive]:
- if metadata value "DarkPush" of targeted living entity isn't set:
- set metadata value "DarkPush" of targeted living entity to true
- set {_t} to player's tool
- set {_e} to targeted living entity
- set {wands::darkpush::%player%::%uuid of targeted entity%} to true
- set {_e} to targeted entity
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- damageEffect(2, player, targeted entity, {_t})
- PlS("entity.wither.shoot", 3, 1, {_e}, all players)
- push {_e} upwards at speed 0.8
- push {_e} in the horizontal direction of the player at speed 1.4
- wait 2 ticks
- while {_e}.isOnGround() is false:
- if {_e} is dead:
- stop loop
- drawDot count 5, particle smokelarge, speed 0.04, XYZ 0.3, 0.3, 0.3, center {_e}, visibleRange 320
- wait a tick
- clear {wands::darkpush::%player%::%{_uuid}%}
- clear metadata value "DarkPush" of {_e}
- {_e} is alive
- drawDot count 15, particle smokelarge, speed 0.08, XYZ 2, 0.2, 2, center {_e}, visibleRange 320
- loop living entities in radius 3 around {_e} where [input isn't player]:
- damageEffect(2, player, loop-entity, {_t})
- create a fake explosion at loop-entity
- loop-entity isn't {_e}
- push loop-entity (direction from block 1 under {_e} to loop-entity) at speed 0.8
- else:
- invailidLocation(player)
- else:
- invailidLocation(player)
- #---Dark Spark---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(25, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- drawDot count 10, particle smokelarge, speed 0.08, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 10, particle smoke, speed 0.1, XYZ 0.6, 0.7, 0.6, center {_loc}, visibleRange 320, keepFor 5 ticks
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- loop living entities in radius 3.2 around {_loc} where [input isn't player]:
- damageEffect(4, player, loop-entity, tool of player)
- wait 10 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- #---Kaj Arrow---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(26, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- PlS("entity.wither.shoot", 4, 1, player, all players)
- make the player shoot an arrow at speed 3
- set {wands::savedtool::%uuid of last shot projectile%} to player's tool
- set metadata value "KajArrow" of last shot projectile to true
- KajArrow(last shot projectile)
- function KajArrow(e: entity):
- while metadata value "Hit" of {_e} isn't set:
- drawDot count 20, particle cloud, speed 0.1, XYZ 0.2, 0.2, 0.2, center {_e}, visibleRange 320
- drawDot count 20, particle enchantmenttable, speed 1, XYZ 0.5, 0.5, 0.5, center {_e}, visibleRange 320
- wait a tick
- on projectile hit:
- if metadata value "KajArrow" of event-entity is true:
- strike lightning effect at projectile
- drawDot count 40, particle cloud, speed 0.3, XYZ 0.2, 0.2, 0.2, center event-entity, visibleRange 320
- loop living entities in radius 5 around event-location where [input isn't shooter of projectile]:
- damageEffect(3, shooter of the projectile, loop-entity, {wands::savedtool::%uuid of projectile%})
- clear {wands::savedtool::%uuid of projectile%}
- set fire to loop-entity for 4 seconds
- set metadata value "Hit" of projectile to true
- delete projectile
- loop 2 times:
- wait a tick
- strike lightning effect at rLP(random number between 3 and -3, 0, random number between 3 and -3, event-location)
- on damage:
- damage was caused by projectile:
- if metadata value "KajArrow" of projectile is true:
- cancel event
- #---Kaj Thunder---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(27, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- PlS("entity.wither.shoot", 4, 1, player, all players)
- set {_loc} to spellLocation(player)
- drawDot count 40, particle cloud, speed 0.2, XYZ 2, 2, 2, center {_loc}, visibleRange 320
- create a fake explosion at {_loc}
- drawDot count 0, particle explosionhuge, speed 0.08, XYZ 0, 0, 0, center {_loc}, visibleRange 320
- strike lightning effect at {_loc}
- loop living entities in radius 5 around {_loc} where [input isn't player]:
- push loop-entity (direction from block 2 under {_loc} to loop-entity) at speed 0.8
- damageEffect(3, player, loop-entity, tool of player)
- set fire to loop-entity for 6 seconds
- loop 2 times:
- wait a tick
- strike lightning effect at rLP(random number between 3 and -3, 0, random number between 3 and -3, {_loc})
- #---Kaj Thunder Storm---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(28, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to location of block 10 above the player
- set {_ploc} to location of the player
- set {_t} to player's tool
- PlS("entity.wither.ambient", 4, 1, {_loc}, all players)
- loop blocks in radius 14 around {_loc}:
- if y-coordinate of loop-block is y-coordinate of {_loc}:
- if distance between location at loop-block and {_loc} is more than 13:
- drawDot count 20, particle cloud, speed 0.1, XYZ 0.2, 0.2, 0.2, center location of loop-block, visibleRange 320
- set {_int} to {_int} + 1
- if {_int} > 3:
- wait a tick
- set {_int} to 0
- loop living entities in radius 15 around {_ploc} where [input isn't player]:
- strike lightning effect at loop-entity
- damageEffect(3, player, loop-entity, {_t})
- set fire to loop-entity for 3 seconds
- wait a tick
- #---Kaj Rage---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(29, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to location of the player
- PlS("item.totem.use", 4, 1, {_loc}, all players)
- set {_t} to tool of player
- drawDot count 6, particle cloud, speed 0.15, XYZ 0.2, 0.2, 0.2, center rLP(0, 1, 0, location of player), visibleRange 320, keepFor 10 ticks
- drawDot count 2, particle smokelarge, speed 0.1, XYZ 0.2, 0, 0.2, center rLP(0, 1, 0, location of player), visibleRange 320, keepFor 10 ticks
- drawDot count 2, particle flame, speed 0.1, XYZ 0.2, 0.2, 0.2, center rLP(0, 1, 0, location of player), visibleRange 320, keepFor 10 ticks
- drawDot count 2, particle smoke, speed 0.1, XYZ 0.2, 0.2, 0.2, center rLP(0, 1, 0, location of player), visibleRange 320, keepFor 10 ticks
- loop living entities in radius 15 around {_loc} where [input isn't player]:
- drawDot count 10, particle cloud, speed 0.15, XYZ 0.2, 0.2, 0.2, center loop-entity, visibleRange 320
- drawDot count 10, particle flame, speed 0.1, XYZ 0.2, 0.2, 0.2, center loop-entity, visibleRange 320
- LightningEffect(loop-entity)
- damageEffect(2, player, loop-entity, {_t})
- set fire to loop-entity for 3 seconds
- remove wither and slowness from loop-entity
- apply wither 1 without particles to loop-entity for 4 seconds
- apply slowness 3 without particles to loop-entity for 4 seconds
- wait a tick
- function LightningEffect(entity: entity):
- loop 4 times:
- strike lightning effect at {_entity}
- wait 3 tick
- #---Mephi Away---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(30, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to location of block at the player
- PlS("entity.enderdragon.flap", 3, 1, {_loc}, all players)
- set {_t} to tool of player
- loop living entities in radius 4.5 around {_loc} where [input isn't player]:
- PlS("entity.bat.ambient", 2, 1, loop-entity, all players)
- add loop-entity to {_effectLater::*}
- loop blocks in radius 5 around {_loc}:
- if y-coordinate of loop-block is y-coordinate of {_loc}:
- if distance between location at loop-block and {_loc} is more than 4:
- drawDot count 2, particle smoke, speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320, keepFor 10 ticks
- drawDot count 3, particle smokelarge, speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- drawDot count 2, particle happyvillager, speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- set {_c} to {_c} + 1
- if {_c} > 3:
- set {_c} to 1
- wait a tick
- loop {_effectLater::*}:
- damageEffect(3, player, loop-value, {_t})
- create a fake explosion at loop-value
- delete velocity of loop-value
- push loop-value (direction from {_loc} to loop-value) at speed 2
- push loop-value upwards at speed 0.8
- #---Mephi Circle---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(31, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to location of block above block at the player
- set {_t} to player's tool
- PlS("entity.illusion_illager.prepare_blindness", 3, 1, {_loc}, all players)
- loop living entities in radius 13.5 around {_loc} where [input isn't player]:
- PlS("entity.bat.ambient", 2, 1, loop-entity, all players)
- add loop-entity to {_effectLater::*}
- loop blocks in radius 13 around {_loc}:
- if y-coordinate of loop-block is y-coordinate of {_loc}:
- if distance between location at loop-block and {_loc} is more than 12:
- drawDot count 2, particle smoke, speed 0.08, XYZ 0.3, 0.6, 0.3, center location of loop-block, visibleRange 320, keepFor 10 ticks
- drawDot count 5, particle smokelarge, speed 0.08, XYZ 0.3, 1, 0.3, center location of loop-block, visibleRange 320
- drawDot count 4, particle happyvillager, speed 0.08, XYZ 0.5, 0.5, 0.5, center location of loop-block, visibleRange 320
- set {_c} to {_c} + 1
- if {_c} > 3:
- set {_c} to 1
- wait a tick
- loop {_effectLater::*}:
- damageEffect(2, player, loop-value, {_t})
- push loop-value upwards at speed 0.6
- apply blindness 1 to loop-value for 3 second
- apply slowness 2 to loop-value for 2 second
- drawDot count 5, particle smokelarge, speed 0.08, XYZ 0.3, 0.3, 0.3, center loop-value, visibleRange 320
- #---Mephi Grab Wave---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(32, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_t} to player's tool
- PlS("entity.evocation_illager.cast_spell", 4, 1, player, all players)
- loop blocks from block above the player to the block above block 30 in front of the player:
- set {_loc} to location of loop-block
- loop living entities in radius 2.2 around loop-block where [input isn't player]:
- exit 2 loops
- if loop-block is solid:
- stop loop
- set {_int} to {_int} + 1
- loop living entities in radius 1.5 around loop-block where [entity input isn't player]:
- exit 2 loops
- drawDot count 4, particle happyvillager, speed 0.1, XYZ 0.4, 0.4, 0.4, center location of loop-block, visibleRange 320
- drawDot count 4, particle smokelarge, speed 0.1, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- drawDot count 4, particle smoke, speed 0.05, XYZ 1, 1, 1, center location of loop-block, visibleRange 320
- if {_int} > 2:
- wait a tick
- set {_int} to 0
- drawDot count 6, particle happyvillager, speed 0.4, XYZ 3, 3, 3, center {_loc}, visibleRange 320
- drawDot count 6, particle smokelarge, speed 0.2, XYZ 0.3, 0.3, 0.3, center {_loc}, visibleRange 320
- PlS("entity.illusion_illager.mirror_move", 4, 1, {_loc}, all players)
- loop living entities in radius 3 around {_loc} where [input isn't player]:
- remove slowness from loop-entity
- apply slowness 2 to loop-entity for 3 second
- damageEffect(3, player, loop-entity, {_t})
- set {_loc2} to location of player
- set y coordinate of {_loc2} to y coordinate of loop-entity
- push loop-entity (direction from loop-entity to {_loc2}) at speed 1.8
- push loop-entity (direction from loop-entity to player) at speed 1
- push loop-entity upwards at speed 0.3
- stop
- #---Mephi Spark---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(33, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_loc} to spellLocation(player)
- drawDot count 3, particle smokelarge, speed 0.04, XYZ 0.4, 0.4, 0.4, center {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 5, particle happyvillager, speed 0.08, XYZ 0.7, 0.7, 0.7, center {_loc}, visibleRange 320, keepFor 3 ticks
- drawDot count 5, particle smoke, speed 0.05, XYZ 0.6, 0.6, 0.6, center {_loc}, visibleRange 320, keepFor 5 ticks
- PlS("entity.firework.blast", 4, 1, {_loc}, all players)
- loop living entities in radius 3.2 around {_loc} where [input isn't player]:
- damageEffect(4, player, loop-entity, tool of player)
- wait 10 ticks
- PlS("entity.firework.twinkle", 4, 1, {_loc}, all players)
- #---Mephi Stun---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(34, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_t} to player's tool
- PlS("entity.firework.blast", 4, 1, player, all players)
- loop blocks from block above the player to the block above block 30 in front of the player:
- set {_loc} to location of loop-block
- if loop-block is solid:
- stop loop
- set {_int} to {_int} + 1
- loop living entities in radius 2.2 around loop-block where [input isn't player]:
- exit 2 loops
- drawDot count 2, particle smokelarge, speed 0.04, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- drawDot count 5, particle happyvillager, speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- drawDot count 3, particle smoke, speed 0.05, XYZ 0.5, 0.5, 0.5, center location of loop-block, visibleRange 320
- if {_int} > 2:
- wait a tick
- set {_int} to 0
- PlS("block.anvil.land", 4, 1, {_loc}, all players)
- loop living entities in radius 3 around {_loc} where [input isn't player]:
- remove slowness from loop-entity
- apply slowness 3 to loop-entity for 10 second
- damageEffect(2.5, player, loop-entity, {_t})
- #---Flame Thrower---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(35, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- loop 8 times:
- PlS("entity.blaze.shoot", 4, 1, location of player, all players)
- spawn undroppable falling block of fire at player's eyes
- push last spawned entity in direction of the player at speed 2
- set metadata value "FlameThrower" of last spawned entity to true
- flameThrowerTrail(last spawned entity, player)
- wait 3 ticks
- on block land:
- if metadata value "FlameThrower" of entity is true:
- cancel event
- function flameThrowerTrail(e: entity, p: player):
- spawn armor stand at {_e}
- set {_e2} to last spawned entity
- {_e2}.setVisible(false)
- {_e2}.setMarker(true)
- make {_e2} ride {_e}
- while {_e2} is riding {_e}:
- drawDot count 2, particle flame, speed 0.1, XYZ 0.8, 0.8, 0.8, center {_e}, visibleRange 320
- drawDot count 1, particle smokelarge, speed 0.1, XYZ 0.3, 0.3, 0.3, center {_e}, visibleRange 320
- set fire to living entities in radius 3 around {_e} where [entity input != {_p}] for 5 seconds
- wait a tick
- kill {_e2}
- #---Fire Shoke Wave---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(36, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set fire to living entities in radius 14 around player where [entity input != player] for 6 seconds
- PlS("entity.blaze.shoot", 1, 1, location of player, all players)
- set {_loc} to the block above player
- loop 10 times:
- wait 2 tick
- loop blocks in radius loop-number around the block at {_loc}:
- if y-coordinate of loop-block is y-coordinate of {_loc}:
- if distance between location at loop-block and {_loc} is more than loop-number - 1:
- drawDot count 1, particle lava, speed 0, XYZ 1, 1, 1, center location of loop-block, visibleRange 320
- drawDot count 1, particle flame, speed 0.1, XYZ 1, 1, 1, center location of loop-block, visibleRange 320
- #---Kaj Freeze---#
- on left click:
- if line 2 of lore of player's tool is "&k&c&e":
- if spellID(37, event-player, line 1 of lore of player's tool) is true:
- if wandsCooldown(player, name of player's tool) is true:
- set {wands::tool::%name of player's tool%::lastuse::%player%} to now
- set {_t} to player's tool
- set {_e} to player #this should prevent type warns
- PlS("entity.llama.swag", 4, 1, player, all players)
- loop blocks from block above the player to the block above block 30 in front of the player:
- add 1 to {_i}
- set {_loc} to location of loop-block
- loop living entities in radius 2.2 around loop-block where [entity input isn't player]:
- exit 2 loops
- if loop-block is solid:
- stop loop
- drawDot count 8, particle cloud, speed 0.02, XYZ 0.1, 0.1, 0.1, center location of loop-block, visibleRange 320
- drawDot count 10, particle enchantmenttable, speed 0.1, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320
- if mod({_i}, 2) = 0:
- wait 1 tick
- loop living entities in radius 2.2 around {_loc} where [entity input isn't player]:
- remove slowness from loop-entity
- apply slowness 4 to loop-entity for 6 seconds
- damageEffect(3, player, loop-entity, {_t})
- loop 60 times:
- if loop-entity isn't alive:
- stop loop
- drawDot count 6, particle snowshovel, speed 0.01, XYZ 0.5, 0.5, 0.5, center location of block 3 above loop-entity, visibleRange 320
- drawDot count 6, particle cloud, speed 0, XYZ 0.4, 0.3, 0.4, center location of block 4 above loop-entity, visibleRange 320
- wait 2 ticks
- stop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement