Inactive [FUN] MagicSpells - Add magic to your server

Discussion in 'Inactive/Unsupported Plugins' started by nisovin, May 8, 2011.

  1. Offline

    nisovin

    MagicSpells - Add magic to your server!

    View the plugin on BukkitDev!

    MagicSpells is a plugin that creates spells your players can use. Its main purpose is to give your players access to certain abilities that you might not want to give them unlimited access to. Each spell can be assigned customized reagent (item) costs, cooldowns. durations, ranges, and so on. Spells can be cast by using the /cast command, swinging a wand, or both. It's all customizable.

    Download

    Important: Read before downloading! There is a lot of information in this post. I know, it's a lot to read. However, I spent quite a while writing it all in what I hope is a clear, informative, and understandable manner. So, please, read the entire post before asking a question. Chances are, the answer is already here. I also suggest taking a nice look through the configuration file. Is it a massive file? Yes, it is. But if your question is "can I do this?" then a look through the configuration options would be a good idea.
    Plugin Manual

    There is a lot of useful information in the plugin manual, which can be found here:

    MagicSpells Plugin Manual

    Usage

    Spells can be cast either by using the /cast command or by using a wand item. To cast a spell, a player must first know the spell. Server operators know all spells by default. They can teach spells to other players by using the teach spell. For example, to teach bob the blink spell, an operator would type: /cast teach bob blink.

    Bob can now use the blink spell. He can either cast it by command, by typing /cast blink, or he can cast it with a wand item. To select the spell, he holds the wand in his hand and right clicks. Right clicking will cycle through any spells assigned to the item he is holding. When he has the one he wants, he left clicks to cast.

    If Bob does not have the required reagents for the spell, or if he has cast it recently and it is still on cooldown, he will not be able to cast the spell and will instead receive an error message.

    If mana is enabled, a player can use the /mana command to see how much mana they currently have.

    Spells

    View Spell List

    Configuration

    The zip file contains a config.yml file that should go into the MagicSpells folder within your plugins directory. The default configuration has appropriate spell costs, durations, and messages for each spell. However, you will most likely want to customize this to fit your server.

    You can modify the config.yml file directly, or you can choose to leave it intact and instead create an alternate config file, by default altConfig.yml. Any configuration values in this alternate file will override the values in the main config file.

    There are some general configuration options that apply to all spells, as well as options for each individual spell. Important: The default configuration file does NOT contain all config options, it is just an example. Just because a config option isn't in the default doesn't mean it is not available. For example, it's possible to add a duration to any buff spell, even though the default configuration file does not have a duration on all buff spells.

    To reload the configuration, simply cast the fake reload spell (/cast reload). Only server operators can do this (it can also be done from the command line).

    Please see the plugin manual for information about all of the various configuration options.

    Frequently Asked Questions

    Help me! Why isn't it working?
    If - after reading through this entire post - you can't figure out why it isn't working, please take the time to submit a proper help request. You can post your request either on in this thread or in the MagicSpells forum. You should provide the following information:
    • The CraftBukkit build you're using.
    • The MagicSpells version you're using.
    • Which permissions plugin (if any) you are using.
    • The error in the console, if there is one.
    • Your config file(s). Please don't post them directly , use a service like http://pastebin.com and just post the link.
    It says I need reagents whenever I cast a spell! Where do I get reagents?
    One of the main ideas behind this plugin is to give players cool abilities, but with a cost. The reagents are the spell's cost. This can be configured in the config.yml file individually for every spell. The config option name is "cost". You can also add your name to the list of exceptions in the general.cast-for-free option.

    Can I unbind spells from items?
    Yes. Simply use the bind spell to bind the spell to your empty hand, and it will no longer be bound to any item.

    Why can't my players cast spells?
    Why does it say "You cannot cast that spell right now" when I try to cast any spell?
    If you're using Permissions, please make sure your permissions are all set up correctly. Look in the Configuration: Permissions section for more information. Also double check and make sure your use-permissions config option is set to true.

    What are the Permissions nodes?
    The nodes are listed on the permissions information page in the plugin manual.

    I can't get my Permissions working! Can you help me?
    Remember that all nodes use the "real" spell name, rather than the name you define with the "name" option. If you cannot get your permissions working, feel free to ask for help. Make sure you specify which permissions plugin you are using, and all of the items from the "Help Me!" question above.

    Will you add iConomy (or another economy plugin) support?
    With the addition of the 'tome' and 'scroll' spells, I currently have no plans to add special support for an economy plugin. You should be able to create tomes and scrolls and sell them using any plugin that allows you to sell items, thus allowing you to sell spells.

    I have a great spell idea! Will you add it?
    Please tell me about it by submitting a ticket! I can't guarantee that I'll make it, but if it's a feasible idea, I'll definitely consider it. I'm always looking for new spell ideas. Note that I may not respond directly to your idea, but I always read the suggestions.

    I've found a bug! What do I do?
    Please submit a ticket! Please include your CraftBukkit build number, any error in the console, the situation that caused the error (if known), and if you think it's applicable, the list of plugins you use.

    Change Log

    View full change log



    Donate: Always gotta have a donate link for those who love their plugin authors.
     
  2. Offline

    Joy

    Request:

    Some method to make it so I can make unlimited spellbooks, but still retain the normal setting for them otherwise.For example:

    - Add a spell "charge" that adds X charges to a bookshelf. Or sets it to unlimited.

    Or some other way to do it :p
     
  3. Offline

    WackyWocky

    I love thus mod! Is there any way to reset someones spell list? I can't seem to find out how... :x
     
  4. Offline

    nisovin

    This is something I'd like to do, but I'm not sure how to implement it yet. The main problem is it would be annoying trying to support every plugin that has some kind of team PvP feature.
    Two ways: add the can-cast-with-item option to each spell and set it to false, or change the cast-item of each spell to -1.
    Any errors when the plugin loads? I'm guessing you have a yaml error.
    I'll look into it.
    You should already be able to do this. Just do /cast spellbook spell -1. Though the post above you suggests this may not be working correctly, so I'll have to look into it. But theoretically that's how it would work.
    I'll get a "forget" spell in soon. For now, you can just modify or delete the player's file in the spellbooks folder of the plugin folder, then reload the plugin with /cast reload.
     
  5. Offline

    taisha2640

    Spot on it looks like, I checked the server.log and I found this after stopping and starting the server once:

    2011-05-23 21:32:05 [SEVERE] Could not load 'plugins\MagicSpells.jar' in folder 'plugins':
    while scanning for the next token
    found character '\t' that cannot start any token
    in "<reader>", line 252, column 1:
    explode=nuke
    ^

    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:360)
    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:183)
    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:592)
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:163)
    at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:132)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
    at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122)
    at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105)
    at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:124)
    at org.yaml.snakeyaml.Yaml.load(Yaml.java:264)
    at org.bukkit.util.config.Configuration.load(Configuration.java:74)
    at org.bukkit.plugin.java.JavaPlugin.initialize(JavaPlugin.java:156)
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:174)
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:194)
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:117)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:100)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:218)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:205)
    at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:145)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:265)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    2011-05-23 21:32:05 [INFO] MCMACOMPAT r13
    2011-05-23 21:32:05 [INFO] McMyAdmin Compatibility Plugin version r13 started.
    2011-05-23 21:32:05 [INFO] NoExplode version 1.4 is enabled!
    etc etc

    It looks like I did something wrong in the config with the copy spell.. I left out the dash in
    spellcopies:

    - explode=nuke

    I didn't leave it out the very first time I did this however, and it still didn't work.. But maybe if I swap explode=nuke so that it's nuke=explode ?

    EDIT: I removed the linebreak from spellcopies: nuke=explode, and the mod worked again. However, my added spell copy doesn't work, it just doesn't exist. There's no trace in the server.log of any error from it, it's just like I never made it. All the modifications I did on other spells work.
     
  6. Offline

    nisovin

    You have tabs in your config file. You can only use spaces. Also, that should be nuke=explode.
     
  7. Offline

    taisha2640

    Any idea about the copying spells problem?
     
  8. Offline

    WackyWocky

    I figured you would say that. Afraid that folder is empty even though we're 12 players on the server and we've been using spells without problems. Any idea as to why? :/
     
  9. Offline

    nisovin

    Can you pastebin your config file?
    Have the spells been taught (either with teach or spellbook), or were they granted another way (either with a permission or by being op)? If it's the latter, then there's no way to unlearn those spells. If it's the latter, then that's odd. Are everyone's known spells saved between reloads?
     
  10. Offline

    airsoftinva

    Have you a plan for your next update? I can't wait!
     
  11. Offline

    taisha2640

    Couldn't upload just the config so uploaded the modified zip
     

    Attached Files:

  12. Offline

    Oninova

    Is there a way to remove spells from a spellbook or switch the spell with something else?
     
  13. Offline

    monkeymii

    just go into someones config and delete that spell and replace with the new one
     
  14. Offline

    kahlilnc

    Can you get rid of the /v <bId> command? Please VoxelSnipe wont work with it.
     
  15. Offline

    nisovin

    Next update will probably be tomorrow.
    The spellcopies should be in list format:
    Code:
    spellcopies:
        - nuke=explode
    
    Not sure what you're talking about here... this plugin doesn't use the /v command.
     
  16. Offline

    kahlilnc

    For some reason I try to use voxelsnipe and i do /v 17 then it says /v <bId> then I tried /v spell and it said There is no spell called that or something like that then I deleted this plugin temp. I swear, and the /v command worked for voxelsnipe.
     
  17. Offline

    WackyWocky

    They we're granted via the player being OP and yes, I think their saved.
     
  18. Offline

    taisha2640

    I edited the line like so, but the nuke spell still doesn't work, chance that you could edit a config and upload it so that it's correct?
     
  19. Offline

    airsoftinva

    Something is wrong with one of your configs because voxelsnipe works fine for me.
     
  20. Offline

    kahlilnc

    hmmm.
     
  21. Offline

    Valkerion

    I am also trying to configure spellcopies, and I was looking through the replies here, and even though I used;
    Code:
        Spellcopies:
            - teleport=blink
            - blast=explode
            - etc=etc
    
    I have a copy of every spell, because when I tried to edit the details of the default spells, nothing changed, so I went for making my own version of every spell, with some duplicates for more powerful versions, but even still, none of my spells are owrking in game, i'm also using yeti's permissions, but I when using bukkit 766, I had many errors in the window, some saying that it couldn't find my permissions, even though they were working, so I just upgraded to 803 and all the default spells work correctly, though my custom ones still don't show. I've uploaded my config file, so maybe you can tell me where I went wrong? I'm also wondering if the order matters; I preferred to have all my custom seplls at the bottom after the defaults, but I organized them instead in hopes that that was the problem, but alas, no change.

    But other than all that, absolutely love the mod! :D
     

    Attached Files:

  22. Offline

    nisovin

    Version 0.4 is out! New spells! Bug fixes! Yay!

    @Valkerion You need to unindent your spellcopies section. It should be at the root level, not under spells.
     
  23. Offline

    elysianhero

    nisovin, this is a great plugin! I was hoping to use Volley as a special attack for archers. Is there any way I could swap the buttons (so that changing the spell doesn't fire an arrow)? Where might I find that in your source code?
     
  24. Offline

    moveandgroove

    Um it doesn't let me cast anything it just says i dont have the reagents help?
     
  25. Offline

    Joy

    Good stuff!

    I made two test walls, one disappeared, but the other one, I broke a block in it, and the rest of the wall never went away.

    Also, is it possible to have Wall check if the caster is allowed to build blocks in the location where the wall would appear?

    Any chance to make it so Volley can't hurt players in a non-PVP enabled zone? I know it works with Combust, as that is direct targetting, otherwise I'd like a Volley that requires an entity target, that should make it work then right?

    ===

    Also an error came by:

    Code:
    23:37:16 [SEVERE] Could not pass event ENTITY_DAMAGE to MagicSpells
    java.lang.NullPointerException
            at com.nisovin.MagicSpells.BuffSpell.chargeUseCost(BuffSpell.java:113)
            at com.nisovin.MagicSpells.Spells.GillsSpell.onEntityDamage(GillsSpell.java:56)
            at com.nisovin.MagicSpells.MagicEntityListener.onEntityDamage(MagicEntityListener.java:22)
            at org.bukkit.plugin.java.JavaPluginLoader$47.execute(JavaPluginLoader.java:570)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
            at net.minecraft.server.EntityLiving.N(EntityLiving.java:164)
            at net.minecraft.server.Entity.p_(Entity.java:191)
            at net.minecraft.server.EntityLiving.p_(EntityLiving.java:230)
            at net.minecraft.server.EntityHuman.p_(EntityHuman.java:90)
            at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:169)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:273)
            at net.minecraft.server.Packet10Flying.a(SourceFile:126)
            at net.minecraft.server.NetworkManager.a(NetworkManager.java:196)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:377)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:292)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 16, 2016
  26. Offline

    BACON_NATOR

    hello i was wondering if anyone else is expierencing server crashing with the force push spell and if so does anyone know a fix
     
  27. Offline

    airsoftinva

    errr... I've never got an error for this plugin till today when i tried updating :O
    I've updated it before so i know i did it right... what do i need to do?

    Code:
    00:21:15 [SEVERE] Could not load 'plugins\MagicSpells.jar' in folder 'plugins':
    
    while parsing a block mapping
     in "<reader>", line 18, column 5:
            list:
            ^
    expected <block end>, but found BlockMappingStart
     in "<reader>", line 246, column 6:
             telekinesis:
             ^
    
            at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(Par
    serImpl.java:576)
            at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:163)
            at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148)
            at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java
    :228)
            at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
            at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java
    :230)
            at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:160)
            at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:12
    2)
            at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105)
    
            at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseCons
    tructor.java:124)
            at org.yaml.snakeyaml.Yaml.load(Yaml.java:264)
            at org.bukkit.util.config.Configuration.load(Configuration.java:73)
            at org.bukkit.plugin.java.JavaPlugin.initialize(JavaPlugin.java:158)
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:166)
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:191)
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:115)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:100)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:218)
            at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:205)
            at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:145)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:260)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    If you need any more info let me know. I'm running cb 766
     
  28. Offline

    nisovin

    I need more information before I can look into this.
    1. Any console error?
    2. How many players are on your server?
    3. How many players are nearby to get pushed back?
    4. Does it happen every time, or just sometimes?
    5. Have you made any changes to the config, and if so, what are they?
    It looks like there's an error with the config file. Have you made changes? Can you post your current config?
     
  29. Offline

    airsoftinva

    Sure here it is:

    Code:
    general:
        str-cast-usage: "Usage: /cast <spell>. Use /cast list to see a list of spells."
        str-unknown-spell: You do not know a spell with that name.
        str-spell-change: You are now using the %s spell.
        str-on-cooldown: That spell is on cooldown (%c seconds remaining).
        str-missing-reagents: You do not have the required reagents for that spell.
        text-color: 3
        broadcast-range: 20
        use-permissions: false
        use-health-bars: false
        cast-for-free:
            - admin1
            - admin2
            - joemagicuser
            - airsoftinva
    spells:
    
        list:
            description: List all the spells you know.
            str-prefix: "Known spells:"
            str-no-spells: You do not know any spells.
        help:
            description: Get information about a specified spell.
            str-usage: "Usage: /cast help <spell>"
            str-no-spell: You do not know a spell by that name.
        teach:
            description: Teach a spell to another player.
            str-usage: "Usage: /cast teach <target> <spell>"
            str-no-target: No such player.
            str-no-spell: You do not know a spell by that name.
            str-cant-learn: That person cannot learn that spell.
            str-cast-self: You have taught %t the %s spell.
            str-cast-target: "%a has taught you the %s spell."
        forget:
            description: Make a player forget a spell.
            str-usage: "Usage: /cast forget <target> <spell>"
            str-no-target: No such player.
            str-no-spell: You do not know a spell by that name.
            str-doesnt-know: That person does not know that spell.
            str-cast-self: You made %t forget the %s spell.
            str-cast-target: "%a has made you forget the %s spell."
        spellbook:
            description: Create a spellbook that teaches a spell.
            default-uses: -1
            destroy-when-used-up: false
            str-use: "Usage: /cast spellbook <spell> [uses]"
            str-cast-self: You have created a spellbook with the %s spell.
            str-no-spell: You do not know a spell by that name.
            str-no-target: You must target a bookcase to create a spellbook.
            str-has-spellbook: That bookcase already has a spellbook.
            str-cant-destroy: You cannot destroy a bookcase with a spellbook.
            str-cant-learn: You cannot learn the spell in this spellbook.
            str-already-known: You already know the %s spell.
            str-learned: You have learned the %s spell!
    
        blink:
            description: Teleport a short distance.
            cast-item: 280
            cooldown: 0
            range: 40
            cost:
                - 331 2
            str-cost: 2 redstone dust
            str-cast-self:
            str-cast-others:
            str-cant-blink: You cannot blink there.
        combust:
            description: Set a target on fire.
            cast-item: 280
            cooldown: 0
            range: 20
            precision: 15
            fire-ticks: 300
            target-players: true
            cost:
                - 331 1
                - 263 1
            str-cost: 1 redstone dust and 1 coal
            str-no-target: No target found.
        entomb:
            description: Encase an enemy in glass.
            cast-item: 280
            cooldown: 0
            range: 15
            precision: 15
            target-players: True
            tomb-block-type: 20
            tomb-duration: 60
            cost:
                - 331 3
                - 20 1
            str-cost: 3 redstone dust and 1 glass
            str-no-target: No target found.
        explode:
            description: Create an explosion.
            cast-item: 280
            cooldown: 0
            range: 40
            explosion-size: 4
            backfire-chance: 0
            cost:
                - 331 5
                - 289 1
            str-cost: 5 redstone dust and 1 gunpowder
            str-no-target: You cannot create an explosion there.
            str-cast-self:
            str-cast-others:
        forcepush:
            description: Push back your enemies.
            cast-item: 339
            cooldown: 0
            range: 10
            pushback-force: 30
            additional-vertical-force: 25
            target-players: true
            cost:
                - 331 3
            str-cost: 3 redstone dust
            str-cast-self: You push back your enemies!
            str-cast-others:
        frostwalk:
            description: Lets you walk on water.
            cast-item: 340
            size: 2
            leave-frozen: false
            cooldown: 0
            cost:
                - 331 6
            use-cost:
                - 331 1
            use-cost-interval: 50
            str-cost: 6 redstone, plus 1 redstone every 50 blocks
            str-cast-self: You can now walk on water!
            str-cast-others:
            str-fade: You can no longer walk on water.
        gills:
            description: Allows you to breath underwater.
            cast-item: 340
            cooldown: 0
            duration: 300
            num-uses: 5
            cost:
                - 331 3
            use-cost:
                - 331 1
            use-cost-interval: 1
            str-cost: 3 redstone dust, plus 1 every few seconds
            str-cast-self: You form gills on your neck!
            str-fade: Your gills disappear.
        heal:
            description: Heals a target player.
            cast-item: 339
            heal-amount: 30
            precision: 10
            cooldown: 0
            range: 12
            cost:
                - 331 2
            str-cost: 2 redstone dust
            str-cast-self: You have healed %t.
            str-cast-target:
            str-no-target: No target to heal.
            str-max-health: "%t is already at max health."
        lightning:
            description: Call down lightning.
            cast-item: 280
            cooldown: 0
            range: 40
            cost:
                - 331 2
            str-cost: 2 redstone dust
            str-cast-self: You call down lightning.
            str-cast-others:
        mark:
            description: Marks your location for later recall.
            cooldown: 0
            permanent-marks: true
            cost:
                - 331 5
                - 265 5
            str-cost: 5 redstone dust and 5 iron bars
            str-cast-self: You have marked your location.
        prayer:
            description: Heals yourself for five hearts.
            cast-item: 339
            cooldown: 0
            amount-healed: 30
            cost:
                - 331 1
            str-cost: 1 redstone dust
            str-cast-self: You have healed yourself.
            str-at-full-health: You are already at full health.
        recall:
            description: Teleports you to your marked location.
            cooldown: 0
            max-range: -1
            allow-cross-world: true
            cost:
                - 331 1
                - 265 1
            str-cost: 1 redstone dust and 1 iron bar
            str-cast-self: You teleport to your marked location.
            str-no-mark: You have not marked a location to recall to.
            str-other-world: You cannot recall to another world.
            str-too-far: Your marked location is too far away.
            str-cast-others:
        safefall:
            description: Allows you to fall without taking damage.
            cast-item: 340
            cooldown: 0
            duration: 300
            num-uses: 5
            cost:
                - 331 2
            use-cost:
                - 288 1
            use-cost-interval: 1
            str-cost: 2 redstone dust, plus 1 feather each time you fall
            str-cast-self: You feel lighter.
            str-fade: Your normal weight returns.
        windwalk:
            description: Lets you walk on a platform of air.
            cast-item: 340
            cooldown: 0
            cost:
                - 331 5
                - 288 5
            use-cost:
                - 288 1
            use-cost-interval: 50
            str-cost: 5 redstone, 5 feathers, plus 1 feather every 50 blocks
            str-cast-self: You are now walking on air!
            str-cast-others:
            str-fade: You are no longer walking on air.
        zap:
            description: Instantly destroys a block.
            cast-item: 294
            cooldown: 0
            disallowed-blocks: 0,7
            range: 15
            cost:
                - 331 1
            str-cost: 1 redstone dust
            str-cast-self: You zapped a block.
            str-cant-zap: You can't zap that.
         telekinesis:
            description: Manipulate switches and buttons remotely.
            cast-item: 340
            cooldown: 0
            range: 30
            cost:
            str-cost:
            str-no-target: You must target a switch or button.
        volley:
            description: Send a volley of arrows at your targeted location.
            cast-item: 280
            cooldown: 0
            range: 30
            arrows: 10
            speed: 20
            spread: 150
            cost:
            str-cost:
            str-cast-self: You fire a volley of magic arrows.
            str-cast-others: ""
            str-no-target: No target found.
        wall:
            description: Creates a temporary wall to block your enemies.
            cast-item: 339
            cooldown: 0
            range: 10
            wall-width: 5
            wall-height: 3
            wall-type: 45
            wall-duration: 15
            cost:
            str-cost:
            str-no-target: Unable to create a wall.
     
  30. Offline

    nisovin

    @airsoftinva Your telekinesis: line is indented one space too far.
     
  31. Offline

    Joy

    bug: Blink spell also uses reagents and cooldown when the target location is out of range.
     

Share This Page