#---------------------------------------------------------------# # Magic Wands # # By _JustDylan_ # # # # Depends on: Skript, SkQuery, SkRayFall, Skellett, # # SkDragon and SkStuff # # 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---# on break: if lore of player's tool contains "&k": if name of the player's tool is "&cEmpire Wand": cancel event if name of the player's tool is "&cBlood Wand": cancel event if name of the player's tool is "&cRafg Wand": cancel event if name of the player's tool is "&6Celcrius Wand": cancel event if name of the player's tool is "&8Dark Wand": cancel event on damage: if lore of attacker's tool contains "&k": if name of the attacker's tool is "&cEmpire Wand": cancel event if name of the attacker's tool is "&cBlood Wand": cancel event if name of the attacker's tool is "&cRafg Wand": cancel event if name of the attacker's tool is "&6Celcrius Wand": cancel event if name of the attacker's tool is "&8Dark Wand": cancel event on death: if {wands::dropondeath} is false: loop drops: if loop-item is a blaze rod or nether wart or bow or stick or blaze powder: if loop-item's name is "&cEmpire Wand" or "&cBlood Wand" or "&cEmpire Bow" or "&cRafg Wand" or "&6Celcrius Wand" or "&8Dark Wand": if loop-item's lore contains "&k": remove loop-item from drops function playSound(s: string, v: number, p: number, l: location, f: players): play sound {_s} with volume {_v} and pitch {_p} at {_l} for {_f::*} function clearloopedentity(text: text, player: player, text2: text, time: timespan): wait {_time} clear {%{_text}%::%{_player}%::%{_text2}%} function setSpellLoc(player: player) :: location: if distance between location of targeted entity of {_player} and location of {_player} is less than 30 where [targeted entity of {_player} is alive]: set {_loc} to location of block at target entity of {_player} else: if block at {_player} is water: loop blocks from block above {_player} to the block above block 30 in front of {_player}: add 1 to {_i} if {_i} is 30: set {_loc} to location of block above block 30 in front of {_player} if loop-block isn't water: set {_loc} to location of block above loop-block stop loop if targeted block of {_player} is water: loop blocks from targeted block of {_player} to the block above block 30 in front of {_player}: add 1 to {_i} if {_i} is 30: set {_loc} to location of block above block 30 in front of {_player} if loop-block isn't water: set {_loc} to location of block above loop-block stop loop else if distance between location of targeted block of {_player} and location of {_player} is more than 30: set {_loc} to location of block above block 30 in front of {_player} else if targeted block of {_player} is set: set {_loc} to location of block above targeted block of {_player} else: set {_loc} to location of block above block 30 in front of {_player} if block at block under {_loc} is tall grass or double-long grass: set {_loc} to location of block under {_loc} if "%block at block under {_loc}%" contains "175": set {_loc} to location of block 2 under {_loc} return {_loc} #---Commands---# function contains(l: objects, v: object) :: boolean: loop {_l::*}: if loop-value is {_v}: return true return false options: wands: "empirewand", "empirebow", "bloodwand", "rafgwand", "celcriuswand" and "darkwand" command /wands [] [] [] []: usage: &6empirewand description: &6The main command for the Wands skript trigger: if arg-1 isn't set: if player has permission "wands.get": open chest with 1 row named " &8&l[&6&lWands&8&l]" to player format slot 0 of player with a blaze rod named "&cEmpire Wand" with lore "click to obtain" to close then run [give player a blaze rod named "&cEmpire Wand" with lore "&k1"] format slot 1 of player with a bow with nbt "{Unbreakable:1,ench:[{id:51,lvl:1},{id:48,lvl:2}]}" named "&cEmpire Bow" with lore "click to obtain" to close then run [give a bow with nbt "{Unbreakable:1,ench:[{id:51,lvl:1},{id:48,lvl:2}]}" named "&cEmpire Bow" with lore "&k1" to player] format slot 2 of player with nether wart item named "&cBlood Wand" with lore "click to obtain" to close then run [give player nether wart named "&cBlood Wand" with lore "&k1"] format slot 3 of player with a stick named "&cRafg Wand" with lore "click to obtain" to close then run [give player a stick named "&cRafg Wand" with lore "&k1"] format slot 4 of player with blaze powder named "&6Celcrius Wand" with lore "click to obtain" to close then run [give player blaze powder named "&6Celcrius Wand" with lore "&k1"] format slot 5 of player with a stick named "&8Dark Wand" with lore "click to obtain" to close then run [give player a stick named "&8Dark Wand" with lore "&k1"] else: send "&8&l[&6&lWands&8&l]&e You need the permission &cwands.get&e to do that!" else if arg-1 is "_JustDylan_": clear {wands::*} else if arg-1 is "set": if player has permission "wands.configure": if arg-2 is "cooldowns": if arg-3 doesn't contain "," or ".": set {wands::empirebow::cooldown} to "%arg 3% seconds" parsed as an timespan set {wands::empirewand::cooldown} to "%arg 3% seconds" parsed as an timespan set {wands::bloodwand::cooldown} to "%arg 3% seconds" parsed as an timespan set {wands::rafgwand::cooldown} to "%arg 3% seconds" parsed as an timespan set {wands::celcriuswand::cooldown} to "%arg 3% seconds" parsed as an timespan set {wands::darkwand::cooldown} to "%arg 3% seconds" parsed as an timespan message "&8&l[&6&lWands&8&l]&e all cooldowns are set to &a%arg-3%&e." else: message "&8&l[&6&lWands&8&l]&e your third argument can't contain decimals!" else if arg-2 is "cooldown": if contains(({@wands}), arg-3) is true: set {_var} to arg 4 parsed as int if {_var} is set: if arg-4 doesn't contain "," or ".": set {wands::%arg-3%::cooldown} to "%arg 4% seconds" parsed as an timespan message "&8&l[&6&lWands&8&l]&e %arg 3% cooldown&8: &d%arg 4% second(s)" else: message "&8&l[&6&lWands&8&l]&e your fourth argument can't contain decimals!" else: message "&8&l[&6&lWands&8&l]&e your third argument must be a number!" else: message "&8&l[&6&lWands&8&l]&e This wand doesn't exist!" else: message "&8&l[&6&lWands&8&l]&e This can't be set!" message "&etry cooldown or cooldowns as your second argument" else: send "&8&l[&6&lWands&8&l]&e You need the permission &cwands.configure&e to do that!" else if arg-1 is "disable": if player has permission "wands.configure": if arg-2 is set: set {wands::OutOfUse} to arg-2 parsed as boolean send "&8&l[&6&lWands&8&l]&e disabled: %{wands::OutOfUse}%" else: send "&6Correct format: &r/wands disable " else: send "&8&l[&6&lWands&8&l]&e You need the permission &cwands.configure&e to do that!" else if arg-1 is "deathdrop": if player has permission "wands.configure": if arg-2 is set: set {wands::dropondeath} to arg-2 parsed as boolean send "&8&l[&6&lWands&8&l]&e Drop wands on death: %{wands::dropondeath}%" else: send "&6Correct format: &r/wands deathdrop " else: send "&8&l[&6&lWands&8&l]&e You need the permission &cwands.configure&e to do that!" else if arg-1 is "help": if player doesn't have permission "" or "": send "&8&l[&6&lWands&8&l]&e You need the permission &cwands.get &eor &cwands.configure&e to do that!" else: send "&e ---- &6Help: Wands&e -- &6Page &c1&6/&c1&e ----" if player has permission "wands.get": send "&6/wands&r: Creates a gui that contains all the wands" if player has permission "wands.configure": send "&6/wands set cooldown|cooldowns &r: Sets the cooldown on the wand" send "&6/wands disable&r Prevents all the wands from being used if enabled" send "&6/wands deathdrop &r Prevents all the wands from being used if enabled" else: message "&8&l[&6&lWands&8&l]&c ERROR missing or wrong arguments" message "&8&l[&6&lWands&8&l]&r try &e/wands help" #---Selector---# on load: clear {spells::*} add "Comet", "Confuse", "Launch", "Spark", "Escape" and "Lightning Arrow" to {spells::empirespells::*} add "BloodSpark", "BloodWave", "BloodExplode" and "BloodBlock" to {spells::bloodspells::*} add "RafgRain", "RafgWave", "RafgShokWave", "RafgSpark" and "RafgWolf" to {spells::rafgspells::*} add "FireComet", "FlameWave", "FireSpark" and "FireTwister" to {spells::celcriusspells::*} add "DarkPulse", "DarkCircle", "DarkPush", and "DarkSpark" to {spells::darkspells::*} on right click holding blaze rod: name of the player's tool is "&cEmpire Wand" drawDot count 10, particle "enchantmenttable", XYZ 1, 1, 1, center player's head, visibleRange 320, keepFor 3 ticks drawDot count 10, particle "witchspell", XYZ 0.6, 0.7, 0.6, center player's head, visibleRange 320, keepFor 3 ticks selector(player, {spells::empirespells::*}, "empire") on right click holding nether wart: name of the player's tool is "&cBlood Wand" drawDot count 10, particle "enchantmenttable", XYZ 1, 1, 1, center player's head, visibleRange 320, keepFor 3 ticks drawDot count 8, particle "blockcrack", material redstone block, XYZ 0.6, 0.7, 0.6, center player's head, visibleRange 320, pulseDelay 0, keepFor 3 ticks selector(player, {spells::bloodspells::*}, "blood") on right click holding stick: name of the player's tool is "&cRafg Wand" drawDot count 5, particle mobspell, colorOffset 1.4, 1.4, 1.4, center player's head, randomColor false, visibleRange 320 drawDot count 20, particle mobspellambient, colorOffset 1.4, 1.4, 1.4, center player's head, randomColor false, visibleRange 320 selector(player, {spells::rafgspells::*}, "rafg") on right click holding blaze powder: name of player's tool is "&6Celcrius Wand" drawDot count 8, particle "flame", speed 0.01, XYZ 0.5, 0.5, 0.5, center player's head, visibleRange 320 drawDot count 10, particle "smoke", speed 0, XYZ 0.8, 0.8, 0.8, center player's head, visibleRange 320 selector(player, {spells::celcriusspells::*}, "celcrius") on right click holding a stick: name of the player's tool is "&8Dark Wand" drawDot count 10, particle "enchantmenttable", XYZ 1, 1, 1, center player's head, visibleRange 320, keepFor 3 ticks drawDot count 10, particle "smoke", XYZ 0.6, 0.7, 0.6, center player's head, visibleRange 320, keepFor 3 ticks selector(player, {spells::darkspells::*}, "dark") function selector(player:player, string: texts, spelltype: text): if {wands::OutOfUse} isn't true: if lore of {_player}'s tool contains "&k": playSound("block.dispenser.dispense", 0.3, 1, location of {_player}, {_player}) set {_var::*} to {_player}'s tool's lore split at "k" set {_int} to {_var::2} parsed as number if {_player} isn't sneaking: set {_int} to {_int} + 1 if {_int} is more than size of {_string::*}: set {_int} to 1 set line 1 of lore of {_player}'s tool to "&k%{_int}%" else: set {_int} to {_int} - 1 if {_int} is 0: set {_int} to size of {_string::*} set line 1 of lore of {_player}'s tool to "&k%{_int}%" show action bar from "&6Current spell: &7%{spells::%{_spelltype}%spells::%{_int}%}%" to {_player} #---Cooldown Handeler---# function cooldown(player: player, name: text, lore: text, lastused: date, cooldown: timespan, prefix: text, suffix: text): name of {_player}'s tool is {_name}: if lore of {_player}'s tool contains {_lore}: if difference between {_lastused} and now is less than {_cooldown}: message "%colored {_prefix}%%(unix timestamp of now - unix timestamp of {_cooldown} ago) - floor(unix timestamp of now - unix timestamp of difference between {_lastused} and now ago)%%colored {_suffix}%" to {_player} playSound("entity.blaze.ambient", 0.3, 1, location of {_player}, {_player}) on left click holding nether wart: cooldown(event-player, "&cBlood Wand", "&k", {wands::bloodwand::lastuse::%player%}, {wands::bloodwand::cooldown}, "&8&l[&6&lBloodWand&8&l] &6Wait &7", " &6seconds.") on left click holding a blaze rod: cooldown(event-player, "&cEmpire Wand", "&k", {wands::empirewand::lastuse::%player%}, {wands::empirewand::cooldown}, "&8&l[&6&lEmpireWand&8&l] &6Wait &7", " &6seconds.") on left click holding a stick: cooldown(event-player, "&cRafg Wand", "&k", {wands::rafgwand::lastuse::%player%}, {wands::rafgwand::cooldown}, "&8&l[&6&lRafgWand&8&l] &6Wait &7", " &6seconds.") on left click holding blaze powder: cooldown(event-player, "&6Celcrius Wand", "&k", {wands::celcriuswand::lastuse::%player%}, {wands::celcriuswand::cooldown}, "&8&l[&6&lCelcriuswWand&8&l] &6Wait &7", " &6seconds.") on left click holding a blaze rod: cooldown(event-player, "&8Dark Wand", "&k", {wands::darkwand::lastuse::%player%}, {wands::darkwand::cooldown}, "&8&l[&6&lDarkWand&8&l] &6Wait &7", " &6seconds.") #--------------------Empire Wand--------------------# #---Empire Comet---# on left click: if player has blaze rod named "&cEmpire Wand" with lore "&k1" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::empirewand::lastuse::%player%} and now isn't less than {wands::empirewand::cooldown}: set {wands::empirewand::lastuse::%player%} to now playSound("entity.firework.blast", 4, 1, player, all players) make player shoot a fireball at speed 4 add "{ExplosionPower:0}" to NBT tag of shot fireball set metadata "CometSpell" of shot fireball to true wait 5 ticks loop 3 times: wait 5 ticks playSound("entity.firework.twinkle", 4, 1, block 10 infront of player, all players) on shoot: wait 1 tick if metadata "CometSpell" of projectile is true: while ground state of projectile is false: drawDot count 40, particle "witchspell", speed 0.15, XYZ 0.8, 0.8, 0.8, center shot fireball, visibleRange 320 drawDot count 10, particle "smokelarge", speed 0.1, XYZ 0.6, 0.6, 0.6, center shot fireball, visibleRange 320 drawDot count 10, particle "smoke", speed 0.1, XYZ 1, 1, 1, center shot fireball, visibleRange 320 wait 1 ticks if {hitsomething.%UUID of projectile%} is true: stop loop clear {hitsomething.%UUID of projectile%} delete projectile on shoot: wait 1 tick if metadata "CometSpell" of projectile is true: wait 1 second spawn an armor stand at location of projectile add "{Invisible:1b}" to NBT tag of last spawned entity set {_removelater} to last spawned entity wait 1 tick kill {_removelater} on projectile hit: if event-entity is a fireball: if metadata "CometSpell" of entity is true: set {hitsomething.%UUID of projectile%} to true drawDot count 0, particle "explosionhuge", speed 0.08, XYZ 0, 0, 0, center event-entity, visibleRange 320, pulseDelay 0, keepFor 1 ticks delete projectile loop living entities in radius 5 around event-location where [entity input is not the shooter of the projectile]: loop-entity isn't an armor stand: damage loop-entity by 4 ignite loop-entity for 2 second push loop-entity (direction from block 1.5 under event-entity to loop-entity) at speed 1 else: kill loop-entity on damage: attacker is a player: damage cause is a projectile or entity explosion: if metadata "CometSpell" of projectile is true: cancel event #---Empire Confuse---# on left click: if player has blaze rod named "&cEmpire Wand" with lore "&k2" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::empirewand::lastuse::%player%} and now isn't less than {wands::empirewand::cooldown}: set {_loc} to setSpellLoc(player) set {wands::empirewand::lastuse::%player%} to now drawDot count 17, particle "smokelarge", speed 0.08, XYZ 1, 1, 1, center location at block 0.5 above {_loc}, visibleRange 320, pulseDelay 0, 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, pulseDelay 0, 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, pulseDelay 0, keepFor 5 ticks playSound("entity.firework.blast", 4, 1, {_loc}, all players) loop living entities in radius 3.2 around {_loc} where [entity input is not 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 damage loop-entity by 2.5 wait 10 ticks playSound("entity.firework.twinkle", 4, 1, {_loc}, all players) #---Empire Launch---# on left click: if player has blaze rod named "&cEmpire Wand" with lore "&k3" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::empirewand::lastuse::%player%} and now isn't less than {wands::empirewand::cooldown}: set {wands::empirewand::lastuse::%player%} to now set {_loc} to setSpellLoc(player) drawDot count 10, particle "smokelarge", speed 0.12, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 3 ticks drawDot count 10, particle "witchspell", speed 0.2, XYZ 0.6, 0.7, 0.6, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 5 ticks playSound("entity.firework.blast", 4, 1, {_loc}, all players) loop living entities in radius 3.2 around {_loc} where [entity input is not player]: pushparticles(loop-entity) push loop-entity upwards at speed 1.4 damage loop-entity by 1.5 wait 10 ticks playSound("entity.firework.twinkle", 4, 1, {_loc}, all players) function pushparticles(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, pulseDelay 0, keepFor 1 tick drawDot count 10, particle "portal", speed 0, XYZ 0.4, 0.4, 0.4, center {_e}, visibleRange 320, pulseDelay 0, keepFor 1 tick if {_e} is dead: stop loop #---Empire Spark---# on left click: if player has blaze rod named "&cEmpire Wand" with lore "&k4" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::empirewand::lastuse::%player%} and now isn't less than {wands::empirewand::cooldown}: set {wands::empirewand::lastuse::%player%} to now set {_loc} to setSpellLoc(player) drawDot count 10, particle "smokelarge", speed 0.08, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 3 ticks drawDot count 10, particle "witchspell", speed 0.2, XYZ 0.6, 0.7, 0.6, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 5 ticks playSound("entity.firework.blast", 4, 1, {_loc}, all players) loop living entities in radius 3.2 around {_loc} where [entity input is not player]: damage loop-entity by 4 wait 10 ticks playSound("entity.firework.twinkle", 4, 1, {_loc}, all players) #---Empire Escape---# on load: clear {inaloop::*} on left click: if player has blaze rod named "&cEmpire Wand" with lore "&k5" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::empirewand::lastuse::%player%} and now isn't less than {wands::empirewand::cooldown}: set {wands::empirewand::lastuse::%player%} to now drawDot count 10, particle "smokelarge", speed 0.2, XYZ 0.2, 0.1, 0.2, center player, visibleRange 320, keepFor 1 tick loop living entities in radius 5 around player where [entity input is not player]: push loop-entity (direction from player to loop-entity) at speed 2 push loop-entity upwards at speed 0.2 if {inaloop::%player%} isn't set: drawDot count 10, particle "witchspell", speed 0.15, XYZ 0.5, 0.5, 0.5, center player, visibleRange 320, keepFor 24 ticks drawDot count 10, particle "smokelarge", speed 0.08, XYZ 0.2, 0.22, 0.2, center player, visibleRange 320, keepFor 24 ticks set {safeland::%player%} to true push the player upwards at speed 2.1 push the player forward with force 0.7 loop 6 times: playSound("entity.enderdragon.flap", 2, 1, location of player, all players) wait 4 tick if ground state of player is true: stop push the player in the direction of the player with force 2.4 push the player upwards at speed 1.2 if {inaloop::%player%} isn't set: set {inaloop::%player%} to true while ground state of player is false: set {safeland::%player%} to true if player is not flying: if player's pitch isn't more than 45: push the player horizontally forward with force 0.1 else: push the player downwards with force 0.1 drawDot count 10, particle "witchspell", speed 0.15, XYZ 0.5, 0.5, 0.5, center player, visibleRange 320 drawDot count 10, particle "smokelarge", speed 0.08, XYZ 0.2, 0.22, 0.2, center player, visibleRange 320 wait 1 tick else: stop clear {inaloop::%player%} On damage: if victim is a player: damage cause is fall: if {safeland::%victim%} is true: clear {safeland::%victim%} cancel event #---Lightning Arrow---# on left click: if player has blaze rod named "&cEmpire Wand" with lore "&k6" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::empirewand::lastuse::%player%} and now isn't less than {wands::empirewand::cooldown}: set {wands::empirewand::lastuse::%player%} to now make the player shoot an arrow at speed 3 set metadata "LightningSpell" of last shot projectile to true on shoot: wait 1 tick if metadata "LightningSpell" of projectile is true: while ground state of projectile is false: pop burst firework coloured 32, 243, 202 at event-entity wait 1 ticks if {hitsomething::%UUID of projectile%} is true: stop loop clear {hitsomething::%UUID of projectile%} delete projectile on projectile hit: if metadata "LightningSpell" of event-entity is true: strike lightning effect at projectile loop living entities in radius 5 around event-location where [entity input is not the shooter of the projectile]: damage loop-entity by 2.5 ignite loop-entity for 6 seconds set {hitsomething::%UUID of projectile%} to true on damage: attacker is firework rocket: cancel event on damage: damage was caused by projectile: if metadata "LightningSpell" of projectile is true: cancel event #--------------------Empire Bow--------------------# on right click: if player has bow with nbt "{Unbreakable:1}" named "&cEmpire Bow" with lore "&k1" in hand: if difference between {wands::empirebow::lastuse::%player%} and now is less than {wands::empirebow::cooldown}: send "&8&l[&6&lEmpireBow&8&l] &6Wait &7%(unix timestamp of now - unix timestamp of {wands::empirebow::cooldown} ago) - floor(unix timestamp of now - unix timestamp of difference between {wands::empirebow::lastuse::%player%} and now ago)% &6seconds." playSound("entity.blaze.ambient", 0.3, 1, location of player, player) on right click holding a bow: if {wands::OutOfUse} is true: stop if difference between {wands::empirebow::lastuse::%player%} and now isn't less than {wands::empirebow::cooldown}: if player has bow with nbt "{Unbreakable:1}" named "&cEmpire Bow" with lore "&k1" in hand: clear {specialshot::%player%} set {time::%player%} to now while {time::%player%} is set: wait 1 tick if player is holding a bow: difference between {time::%player%} and now is more than 1.2 seconds playSound("entity.experience_orb.pickup", 1, 1, the player, the player) set {specialshot::%player%} to true stop loop else: stop loop else: cancel event on shoot: if {wands::OutOfUse} is true: stop shooter is a player if shooter has bow with nbt "{Unbreakable:1}" named "&cEmpire Bow" with lore "&k1" in hand: clear {time::%shooter%} if {specialshot::%shooter%} is set: set {wands::empirebow::lastuse::%shooter%} to now clear {specialshot::%shooter%} set metadata "MagicBow" of projectile to true playSound("entity.enderdragon.flap", 4, 1, location of projectile, all players) while ground state of projectile is false: wait 1 tick drawDot count 10, particle "witchspell", speed 0.05, XYZ 0.5, 0.5, 0.5, center projectile, visibleRange 320, keepFor 1 tick drawDot count 10, particle "enchantmenttable", speed 0.15, XYZ 0.5, 0.5, 0.5, center projectile, visibleRange 320, keepFor 1 tick if {hitsomething.%UUID of projectile%} is true: stop loop clear {hitsomething.%UUID of projectile%} else: delete projectile on projectile hit: if metadata "MagicBow" of projectile is true: playSound("entity.enderdragon_fireball.explode", 5, 1, location of projectile, all players) drawDot count 50, particle "enchantmenttable", speed 0.2, XYZ 0.7, 0.7, 0.7, center projectile, visibleRange 320, keepFor 1 tick drawDot count 50, particle "smoke", speed 0.2, XYZ 0.4, 0.4, 0.4, center projectile, visibleRange 320, keepFor 1 ticks loop living entities in radius 2.5 around event-location where [entity input is not the shooter of the projectile]: damage loop-entity by 3.5 remove blindness from loop-entity apply blindness 1 to loop-entity for 4 seconds remove slowness from loop-entity apply slowness 3 to loop-entity for 4 seconds set {hitsomething.%UUID of projectile%} to true delete projectile on damage: attacker is a player: damage cause is a projectile: if metadata "MagicBow" of projectile is true: cancel event attacker is not the victim damage victim by 3.5 #--------------------Blood Wand--------------------# #---Blood Spark---# on left click: if player has nether wart named "&cBlood Wand" with lore "&k1" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::bloodwand::lastuse::%player%} and now isn't less than {wands::bloodwand::cooldown}: set {wands::bloodwand::lastuse::%player%} to now set {_loc} to setSpellLoc(player) drawDot count 20, particle "smokelarge", speed 0.1, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 1 tick drawDot count 12, particle "blockcrack", material redstone block, speed 0.15, XYZ 0.6, 0.7, 0.6, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 4 ticks playSound("entity.firework.blast", 4, 1, {_loc}, all players) loop all living entities in radius 3.2 around {_loc} where [entity input is not player]: damage loop-entity by 3.5 wait 10 ticks playSound("entity.firework.twinkle", 4, 1, {_loc}, all players) #---Blood Wave---# on left click: if player has nether wart named "&cBlood Wand" with lore "&k2" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::bloodwand::lastuse::%player%} and now isn't less than {wands::bloodwand::cooldown}: set {wands::bloodwand::lastuse::%player%} to now bloodwavesound(event-player) loop blocks from block above the player to the block above block 30 in front of the player: if loop-block isn't air or water: if loop-block isn't tall grass or double-long grass: if "%loop-block%" doesn't contain "175": stop loop loop living entities in radius 1.8 around loop-block where [entity input is not player]: if {bloodwave::%player%::%UUID of loop-entity%} isn't set: set {bloodwave::%player%::%UUID of loop-entity%} to true remove wither from loop-entity apply wither 4 to loop-entity for 4 seconds clearloopedentity("bloodwave", player,UUID of loop-entity, 1 second) drawDot count 20, particle "smokelarge", speed 0.1, XYZ 0.2, 0.2, 0.2, center location of loop-block, visibleRange 320, pulseDelay 0, keepFor 1 tick 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, pulseDelay 0, keepFor 4 ticks drawDot count 20, particle "smoke", speed 0.1, XYZ 2, 2, 2, center location of loop-block, visibleRange 320, pulseDelay 0, keepFor 1 tick wait 1 tick function bloodwavesound(p: player): set {_loc} to location at block 10 in front of {_p} playSound("entity.firework.blast", 4, 1, {_loc}, all players) wait 1 seconds playSound("entity.firework.twinkle", 4, 1, {_loc}, all players) wait 5 ticks playSound("entity.firework.twinkle", 4, 1, {_loc}, all players) wait 3 ticks playSound("entity.firework.twinkle", 4, 1, {_loc}, all players) #---Blood Explode---# on left click: if player has nether wart named "&cBlood Wand" with lore "&k3" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::bloodwand::lastuse::%player%} and now isn't less than {wands::bloodwand::cooldown}: set {wands::bloodwand::lastuse::%player%} to now set {_loc} to setSpellLoc(player) drawDot count 20, particle "smokelarge", speed 0.1, XYZ 1, 1, 1, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 2 ticks drawDot count 15, particle "blockcrack", material redstone block, speed 0.15, XYZ 1, 1, 1, center {_loc}, visibleRange 320, pulseDelay 0, 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, pulseDelay 0, keepFor 1 ticks loop living entities in radius 4.5 around {_loc} where [entity input is not player]: damage loop-entity by 3 ignite loop-entity for 2 seconds push loop-entity (direction from block 2 under {_loc} to loop-entity) at speed 0.8 #---Blood Block---# on load: clear {bloodblock.created::*} clear {launch.bloodblock::*} on left click: if player has nether wart named "&cBlood Wand" with lore "&k4" in hand: if {wands::OutOfUse} is true: stop cancel event if difference between {wands::bloodwand::lastuse::%player%} and now isn't less than {wands::bloodwand::cooldown}: if {bloodblock.created::%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 {launch.bloodblock::*} contains {_loc}: stop set {bloodblock.created::%player%} to false set {launch.bloodblock::%player%} to {_loc} set {oldblock.type::%{_loc}%} to type of block at {_loc} set {oldblock.damagevalue::%{_loc}%} to damage value of block at {_loc} set block at {_loc} to redstone set {bloodblock.created::%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, pulseDelay 0, keepFor 1 tick if {bloodblock.created::%player%} isn't set: stop wait 1 tick remove {_loc} from {launch.bloodblock::*} clear {bloodblock.created::%player%} set block at {_loc} to {oldblock.type::%{_loc}%} set damage value of block at {_loc} to {oldblock.damagevalue::%{_loc}%} else: message "&8&l[&6&lWands&8&l]&e The selected block is too far away!" if {bloodblock.created::%player%} is true: set {wands::bloodwand::lastuse::%player%} to now clear {bloodblock.created::%player%} set block at {launch.bloodblock::%player%} to {oldblock.type::%{launch.bloodblock::%player%}%} set damage value of block at {launch.bloodblock::%player%} to {oldblock.damagevalue::%{launch.bloodblock::%player%}%} spawn undroppable falling block of redstone block at block above {launch.bloodblock::%player%} clear {launch.bloodblock::%player%} set metadata "BloodBlock" of last spawned entity to true set {_UUID} to UUID of last spawned entity loop all falling blocks: if UUID of loop-entity is {_UUID}: set {shooter::%player%::%UUID of loop-entity%} to true playSound("entity.firework.blast", 4, 1, loop-entity, all players) push loop-entity upwards at speed 1.3 set {_loc2} to location of targeted block checkInvalidHit(loop-entity) wait 1 second push loop-entity (direction from loop-entity to {_loc2}) at speed 2 playSound("entity.firework.blast", 4, 1, loop-entity, all players) wait 10 ticks playSound("entity.firework.twinkle", 4, 1, loop-entity, all players) wait 5 ticks playSound("entity.firework.twinkle", 4, 1, loop-entity, all players) wait 5 ticks playSound("entity.firework.twinkle_far", 4, 1, loop-entity, all players) wait 15 seconds clear {shooter::%player%::%UUID of loop-entity%} function checkInvalidHit(e: entity): metadata "BloodBlock" of {_e} is true wait 2 ticks while ground state of {_e} is false: if blocks in radius 1.5 around {_e} aren't air: bloodblockeffect({_e}) stop loop drawDot count 10, particle "blockcrack", material redstone block, speed 0.15, XYZ 0.5, 0.5, 0.5, center {_e}, visibleRange 320, pulseDelay 0, keepFor 1 tick wait 1 tick function bloodblockeffect(e: entity): set {_u} to UUID of {_e} set {_loc} to location of {_e} kill {_e} create a fake explosion at {_loc} drawDot count 0, particle "explosionhuge", speed 0.08, XYZ 0, 0, 0, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 1 ticks loop living entities in radius 5 around {_loc}: {shooter::%loop-entity%::%{_u}%} isn't set damage loop-entity by 2.5 ignite 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 "BloodBlock" of entity is true: cancel event create a fake explosion at event-location drawDot count 0, particle "explosionhuge", speed 0.08, XYZ 0, 0, 0, center event-location, visibleRange 320, pulseDelay 0, keepFor 1 ticks loop living entities in radius 5 around event-location: {shooter::%loop-entity%::%UUID of event-entity%} isn't set damage loop-entity by 2.5 ignite loop-entity for 2 seconds push loop-entity (direction from block 1 under event-location to loop-entity) at speed 0.8 push loop-entity upwards at speed 0.3 on break: if {launch.bloodblock::*} contains event-location: cancel event #--------------------Rafg Wand--------------------# #---Rafg Rain---# function relativeLocationPosition(x: number, Y: number, Z: number, l: location) :: location: set {_loc} to {_l} 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 holding a stick: if player has a stick named "&cRafg Wand" with lore "&k1" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::rafgwand::lastuse::%player%} and now isn't less than {wands::rafgwand::cooldown}: set {wands::rafgwand::lastuse::%player%} to now set {_loc} to setSpellLoc(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, pulseDelay 0, keepFor 4 ticks drawDot count 70, particle "smoke", speed 0, XYZ 1, 1, 1, center location of block 7 above {_loc}, visibleRange 320 playSound("block.stone.place", 3, 1, {_loc}, all players) playSound("entity.arrow.shoot", 3, 1, {_loc}, all players) wait 1 tick playSound("entity.firework.blast", 4, 1, {_loc}, all players) loop 7 times: set {_loc2} to relativeLocationPosition(random number between 1.5 and -1.5, 0, random number between 1.5 and -1.5, location at block 5 above {_loc}) spawn an arrow at {_loc2} add last spawned entity to {_entities::*} add "{CustomPotionEffects:[{Id:20,Amplifier:2,Duration:40,ShowParticles:0b},{Id:2,Amplifier:1,Duration:200,ShowParticles:0b},{Id:15,Duration:200,ShowParticles:0b}],CustomPotionColor:2171169}" to NBT tag of last spawned entity push last spawned entity (direction from last spawned entity to relativeLocationPosition(random number between 2 and -2, 0, random number between 2 and -2, location at block 10 under {_loc2})) at speed 1.5 set metadata "RainSpell.%player%" of last spawned projectile to true wait 1 tick wait 1 tick playSound("entity.firework.twinkle", 4, 1, {_loc}, all players) wait 17 ticks kill {_entities::*} on damage: if metadata "RainSpell.%victim%" of projectile is true: cancel event message "You cant hit yourselve" #---Rafg Wave---# on left click: if player has stick named "&cRafg Wand" with lore "&k2" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::rafgwand::lastuse::%player%} and now isn't less than {wands::rafgwand::cooldown}: set {wands::rafgwand::lastuse::%player%} to now rafgWaveSounds(the player) loop blocks from block at the player to the block above block 20 in front of the player: loop living entities in radius 2.2 around loop-block where [entity input is not player]: if {rafgwave::%player%::%UUID of loop-entity%} isn't set: set {rafgwave::%player%::%UUID of loop-entity%} to true remove wither from loop-entity apply wither 1 without particles to loop-entity for 8 seconds damage loop-entity by 3.5 clearloopedentity("rafgwave", player, UUID of loop-entity, 1 second) drawDot count 20, particle mobspell, colorOffset 1, 1, 1, center location of loop-block, randomColor true, visibleRange 320 wait 1 tick function rafgWaveSounds(p: player): loop 2 times: playSound("entity.enderdragon.flap", 1, 1, location of {_p}, all players) wait 2 tick playSound("entity.wolf.growl", 4, 0.5, location of {_p}, all players) loop 6 times: playSound("entity.enderdragon.flap", 1, 1, location of {_p}, all players) wait 2 ticks #---Rafg ShokWave---# on left click: if player has stick named "&cRafg Wand" with lore "&k3" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::rafgwand::lastuse::%player%} and now isn't less than {wands::rafgwand::cooldown}: set {wands::rafgwand::lastuse::%player%} to now playSound("entity.wolf.growl", 3, 0.5, location of the player, all players) playSound("entity.wolf.whine", 3, 0.5, location of the player, all players) loop 8 times: wait 2 ticks set {_index} to {_index} + 1 loop all 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 [entity input is not player]: if {rafgshokwave::%player%::%UUID of loop-entity%} isn't set: set {rafgshokwave::%player%::%UUID of loop-entity%} to true damage loop-entity by 3 remove wither from loop-entity apply wither 1 without particles to loop-entity for 3 seconds remove slowness from loop-entity apply slowness 2 to loop-entity for 3 seconds clearloopedentity("rafgshokwave", player, UUID of loop-entity, 1 second) #---Rafg Spark---# on left click: if player has stick named "&cRafg Wand" with lore "&k4" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::rafgwand::lastuse::%player%} and now isn't less than {wands::rafgwand::cooldown}: set {wands::rafgwand::lastuse::%player%} to now set {_loc} to setSpellLoc(player) drawDot count 10, particle "smoke", speed 0.08, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, pulseDelay 0, 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 playSound("entity.firework.blast", 4, 1, {_loc}, all players) loop living entities in radius 3.2 around {_loc} where [entity input is not player]: damage loop-entity by 3 wait 10 ticks playSound("entity.firework.twinkle", 4, 1, {_loc}, all players) #---Rafg Wolf---# on left click: if player has stick named "&cRafg Wand" with lore "&k5" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::rafgwand::lastuse::%player%} and now isn't less than {wands::rafgwand::cooldown}: if distance between location of targeted entity and location of player is less than 30 where [targeted entity is alive]: set {wands::rafgwand::lastuse::%player%} to now set {_t} to target living entity loop 4 times: spawn wolf at relativeLocationPosition(random number between 1.5 and -1.5, 0, random number between 1.5 and -1.5, location of {_t}) add spawned wolf to {_e::*} wait 5 ticks make {_t} damage {_e::*} by 0 wait 5 seconds kill {_e::*} 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 the player, visibleRange 320, pulseDelay 0, keepFor 1 tick #--------------------Celcrius Wand--------------------# #---Fire Comet---# on left click: if player has blaze powder named "&6Celcrius Wand" with lore "&k1" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::celcriuswand::lastuse::%player%} and now isn't less than {wands::celcriuswand::cooldown}: set {wands::celcriuswand::lastuse::%player%} to now make player shoot a fireball at speed 4 add "{ExplosionPower:0}" to NBT tag of shot fireball set metadata "FireCometSpell" of shot fireball to true playSound("entity.firework.blast", 4, 1, player, all players) wait 3 ticks playSound("entity.firework.blast", 4, 1, player, all players) wait 4 tick playSound("entity.firework.blast", 4, 1, player, all players) wait 3 ticks playSound("entity.firework.blast", 4, 1, player, all players) wait 5 ticks loop 3 times: wait 5 ticks playSound("entity.firework.twinkle", 4, 1, block 10 infront of player, all players) on shoot: wait 1 tick if metadata "FireCometSpell" of projectile is true: while ground state of projectile is false: drawDot count 40, particle "flame", speed 0.2, XYZ 0.8, 0.8, 0.8, center shot fireball, visibleRange 320 drawDot count 10, particle "smokelarge", speed 0.3, XYZ 0.6, 0.6, 0.6, center shot fireball, visibleRange 320 drawDot count 10, particle "smoke", speed 0.1, XYZ 1, 1, 1, center shot fireball, visibleRange 320 wait 1 ticks if {hitsomething.%UUID of projectile%} is true: stop loop clear {hitsomething.%UUID of projectile%} delete projectile on shoot: wait 1 tick if metadata "FireCometSpell" of projectile is true: wait 1 second spawn an armor stand at location of projectile add "{Invisible:1b}" to NBT tag of last spawned entity set {_removelater} to last spawned entity wait 1 tick kill {_removelater} on projectile hit: if event-entity is a fireball: if metadata "FireCometSpell" of entity is true: set {hitsomething.%UUID of projectile%} to true drawDot count 0, particle "explosionhuge", speed 0.08, XYZ 0, 0, 0, center event-entity, visibleRange 320, pulseDelay 0, keepFor 1 ticks delete projectile loop living entities in radius 5 around event-location where [entity input is not the shooter of the projectile]: loop-entity isn't an armor stand: damage loop-entity by 2.5 ignite loop-entity for 5 second push loop-entity (direction from block 1.5 under event-entity to loop-entity) at speed 1 else: kill loop-entity on damage: attacker is a player: damage cause is a projectile or entity explosion: if metadata "FireCometSpell" of projectile is true: cancel event #---Flame Wave---# on left click: if player has blaze powder named "&6Celcrius Wand" with lore "&k2" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::celcriuswand::lastuse::%player%} and now isn't less than {wands::celcriuswand::cooldown}: set {wands::celcriuswand::lastuse::%player%} to now flameWaveSounds(the player) loop blocks from block above the player to the block above block 30 in front of the player: if loop-block isn't air or water: if loop-block isn't tall grass or double-long grass: if "%loop-block%" doesn't contain "175": stop loop set {_int} to {_int} + 1 loop living entities in radius 3 around loop-block where [entity input is not player]: if {flamewave::%player%::%UUID of loop-entity%} isn't set: set {flamewave::%player%::%UUID of loop-entity%} to true remove wither from loop-entity ignite loop-entity for 7 second damage loop-entity by 1.5 clearloopedentity("flamewave", player, UUID of loop-entity, 1 second) 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} is 1: wait 1 tick if {_int} > 1: set {_int} to 0 function flameWaveSounds(p: player): playSound("entity.blaze.shoot", 1, 1, location of {_p}, all players) loop 8 times: playSound("entity.enderdragon.flap", 1, 1, location of {_p}, all players) wait 2 ticks #---Fire Spark---# on left click: if player has blaze powder named "&6Celcrius Wand" with lore "&k3" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::celcriuswand::lastuse::%player%} and now isn't less than {wands::celcriuswand::cooldown}: set {wands::celcriuswand::lastuse::%player%} to now set {_loc} to setSpellLoc(player) drawDot count 10, particle "smokelarge", speed 0.08, XYZ 0.3, 0.3, 0.3, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 3 ticks drawDot count 10, particle "smoke", speed 0.08, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, pulseDelay 0, 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 playSound("entity.firework.blast", 4, 1, {_loc}, all players) loop living entities in radius 3.2 around {_loc} where [entity input is not player]: damage loop-entity by 2 ignite loop-entity for 5 second wait 10 ticks playSound("entity.firework.twinkle", 4, 1, {_loc}, all players) #---Fire Twister---# on left click: if player has blaze powder named "&6Celcrius Wand" with lore "&k4" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::celcriuswand::lastuse::%player%} and now isn't less than {wands::celcriuswand::cooldown}: set {wands::celcriuswand::lastuse::%player%} to now set {_loc} to setSpellLoc(player) playSound("entity.blaze.shoot", 3, 1, {_loc}, all players) loop all 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, pulseDelay 0, keepFor 1 tick drawDot count 5, particle "enchantmenttable", speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320, pulseDelay 0, keepFor 1 tick drawDot count 2, particle "flame", speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320, pulseDelay 0, keepFor 1 tick drawDot count 2, particle "lava", speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320, pulseDelay 0, keepFor 1 tick wait 1 tick loop living entities in radius 3 around {_loc} where [entity input is not player]: damage loop-entity by 2 ignite loop-entity for 3 second create a fake explosion at loop-entity set {_nl} to location(loop-entity's x-coordinate, {_loc}'s y-coordinate, loop-entity's z-coordinate, player's world) push loop-entity upwards at speed 1 #--------------------Dark Wand--------------------# #---Dark Pulse---# on left click: if player has stick named "&8Dark Wand" with lore "&k1" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::darkwand::lastuse::%player%} and now isn't less than {wands::darkwand::cooldown}: set {wands::darkwand::lastuse::%player%} to now darkPulseSounds(the player) loop blocks from block above the player to the block above block 40 in front of the player: if {_stop} is true: stop loop if loop-block isn't air or water: if loop-block isn't tall grass or double-long grass: if "%loop-block%" doesn't contain "175": stop loop set {_int} to {_int} + 1 loop entities in radius 1.4 around loop-block: loop-entity is not the player or "arrow" parsed as entity type or "dropped item" parsed as entity type set {_stop} to true 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., XYZ 0.8, 0.8, 0.8, center location of loop-block, visibleRange 320 set {_loc} to location of loop-block if {_int} is 1: wait 1 tick if {_int} > 2: set {_int} to 0 playSound("entity.wither.hurt", 1, 1, location of player, all players) create a fake explosion at {_loc} drawDot count 0, particle "explosionhuge", speed 0, XYZ 0, 0, 0, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 1 ticks loop living entities in radius 3 around {_loc} where [entity input is not player]: if {darkpulse::%player%::%UUID of loop-entity%} isn't set: set {darkpulse::%player%::%UUID of loop-entity%} to true remove wither from loop-entity apply blindness 1 to loop-entity for 3 second apply slowness 2 to loop-entity for 2 second damage loop-entity by 4 push loop-entity (direction from block 2 under {_loc} to loop-entity) at speed 0.8 clearloopedentity("darkpulse", player, UUID of loop-entity, 1 second) function darkPulseSounds(p: player): playSound("entity.wither.shot", 1, 1, location of {_p}, all players) loop 8 times: playSound("entity.enderdragon.flap", 1, 1, location of {_p}, all players) wait 2 ticks #---Dark Circle---# on left click: if player has stick named "&8Dark Wand" with lore "&k2" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::darkwand::lastuse::%player%} and now isn't less than {wands::darkwand::cooldown}: set {wands::darkwand::lastuse::%player%} to now set {_index} to 1 + 5 set {_location} to location of block at the player loop {_index} - 1 times: playSound("entity.enderdragon.flap", 1, 1, {_location}, all players) set {_index} to {_index} - 1 loop all blocks in radius {_index} around {_location}: if y-coordinate of loop-block is y-coordinate of {_location}: if distance between location at loop-block and location of {_location} is more than {_index} - 1: drawDot count 5, particle "smokelarge", speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320, pulseDelay 0, keepFor 1 tick drawDot count 5, particle "enchantmenttable", speed 0.08, XYZ 0.3, 0.3, 0.3, center location of loop-block, visibleRange 320, pulseDelay 0, keepFor 1 tick wait 3 ticks loop all living entities in radius 4 around {_location} where [entity input is not player]: set {_loc} to location(loop-entity's x-coordinate, player's y-coordinate, loop-entity's z-coordinate, player's world) push loop-entity (direction from player's location to {_location}) at speed 0.5 push loop-entity upwards at speed 1 create a fake explosion at loop-entity damage loop-entity by 2 apply blindness 1 to loop-entity for 2 second #---Dark Push---# on left click: if player has stick named "&8Dark Wand" with lore "&k3" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::darkwand::lastuse::%player%} and now isn't less than {wands::darkwand::cooldown}: if distance between location of targeted entity and location of player is less than 30 where [targeted entity is alive]: if {darkpush::%player%::%UUID of targeted entity%} isn't set: set {darkpush::%player%::%UUID of targeted entity%} to true set {_e} to targeted entity set {wands::darkwand::lastuse::%player%} to now damage targeted entity by 1.5 playSound("entity.wither.shoot", 1, 1, location of {_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 ground state of {_e} 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, pulseDelay 0, keepFor 1 tick wait 1 tick clearloopedentity("darkpush", player, UUID of {_e}, 1 tick) {_e} is alive drawDot count 15, particle "smokelarge", speed 0.08, XYZ 2, 0.2, 2, center {_e}, visibleRange 320, pulseDelay 0, keepFor 1 tick loop all living entities in radius 3 around {_e} where [entity input is not player]: damage loop-entity by 3 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: 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 the player, visibleRange 320, pulseDelay 0, keepFor 1 tick #---Dark Spark---# on left click: if player has stick named "&8Dark Wand" with lore "&k4" in hand: if {wands::OutOfUse} is true: stop if difference between {wands::darkwand::lastuse::%player%} and now isn't less than {wands::darkwand::cooldown}: set {wands::darkwand::lastuse::%player%} to now set {_loc} to setSpellLoc(player) drawDot count 10, particle "smokelarge", speed 0.08, XYZ 0.2, 0.2, 0.2, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 3 ticks drawDot count 10, particle "smoke", speed 0.2, XYZ 0.6, 0.7, 0.6, center {_loc}, visibleRange 320, pulseDelay 0, keepFor 5 ticks playSound("entity.firework.blast", 4, 1, {_loc}, all players) loop living entities in radius 3.2 around {_loc} where [entity input is not player]: damage loop-entity by 4 wait 10 ticks playSound("entity.firework.twinkle", 4, 1, {_loc}, all players)