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

    tharvoil

    Ever consider spout support? You could use it to display the mana on the screen without having to type a command, or could also add a spellbook gui where it shows a list of known spells.
     
  3. Offline

    Rpa;otj

    Requesting an option to allow or deny damaging yourself with Fireball. A player on my server has found a way to cheat with this spell by getting a set of equipment from a minigame and then standing against a wall fireballing himself to death to sneak the items out. I have pvp disabled in this zone, and once they proceed from the lobby the items are deleted automatically if they die.

    If I could simply disable self damage somehow it would be perfect!
     
  4. Offline

    Plantjen

    Love the mod!
    Some things that would make it even better:
    - A maximum ammount of spells that a player can learn option in the config
    - Some way of being able to assign shortcuts to spells
    - Being able to set multiple cast-items in the config(for example if you want buffs not only on gold boots but others as well)
    - An MP bar in a top corner instead of in chat
     
  5. Offline

    sleite

    Request: Could you enable the following configuration variable for the lightning spell:

    additional-damage: 5

    It works for fireball, but not for lightning.

    Thx
     
  6. Offline

    Altobot

    hey guy,
    still love that plugin, but I changed the costs in the config into mana costs and now it isnt working anymore!

    please help!
     
  7. Offline

    LucidLethargy

    A spout mana bar would make this plugin the coolest thing on bukkit... please look into it if there's time! (Check out McMMO's xp guage to get an idea)
     
  8. Offline

    sleite

    Absolutely love this idea.

    I'm already doing this on my server, but I have to do everything manually.

    First I setup my own grouping for spells called Sphere's - All spells are either EARTH, WATER, AIR, or FIRE sphere.

    Then within those groupings, I created levels for spells (1-4). The simple/weak spells (gills, light, volley, etc) are "level 1", and the more powerful (lightning, firenova, fireball, etc) are the "level 4" spells. I then allow players to choose a "sphere".

    Then, based on each player's McMMO "power level", I grant spells to them. So for example, I assign a power level requirement of 100 for a level 1 spell, 300 for a level 2 spell, 600 for a level 3 spell, and 1,000 powerlevel requirement for a level 4 spell.

    It's a bit of work, but well worth it. Players really enjoy working for the spells, and no 2 players have the exact same spells. Some players can blink but not heal. Other's have certain immunities.

    I also modified a lot of the spells, for example, the invulnerability spells is way too powerful in my opinion, so what I did was created copies of the spell (one for each sphere), and then broke the immunities down according to sphere's. So I ended up with protfire, protwater, protearth, protair (protection from ....). So, a person with the Fire sphere that has taken the protfire spell get's immunity to fire and lava (only). Air get's protection from suffocation (sand/gravel), etc. You get the idea.
     
  9. Offline

    Woolcity

    I've got a few Ideas you might try. =]
    1) An easier way to update the spells list without having to rewrite all the ingredients and cool times.
    2) A way to "travel outside your virtual character". -- Noclip but only for viewing.
    3) speed buffs
    4) defense and attack buffs. maybe a jump buff? idk.
    5) look into using spout for something. If you ever manage to make a fly mod (like the zombe one) for spout this magic spells plugin will become the best magic plugin out there. People are desperate for spout fly mods right now.

    edit: you have some of these things already, I've just been too lazy to re-write all my config files from scratch again. >.<
     
  10. Hello, can you make so like my players online are enemies? because i want to use like push spells on them or like that , plz answer
     
  11. Most spells have a "target-players" option, set it to true.
     
  12. Offline

    Kashius1138

    Great job on the multi-spells and backward cycling. That is going to make life so much better on my server.

    Any possibility of answers to some of the other questions I had?

    I could be wrong and I'll have to test it later or tomorrow...BUT - it seems that with multi-spells you can combine Pain (or a custom variant) and Lightning to get a spell that does the lightning effect with increased damage from the Pain spell.

    Try it! If you get to it before I do post your results!


    -Kash
     
  13. Offline

    nisovin

    I guess I should mention that 1.0.3 is out! Some bug fixes, some new features, no new spells. New spells are coming soon though, I promise! The biggest new feature is multi-spells, which allows you to combine two spells into one spell.
    To answer your questions:
    1. I'll add a spell to give mana.
    2. I'll probably just add a separate spell that applies velocity to a target, like a single-target forcepush.
    3. Forcepush wasn't really designed to do this. I could try to modify it to allow it to work this way.
    4. Lightning has no damage option. I'll add this as well, since it's been requested multiple times.
    5. The explode spell has an explosion-size option that you can use to specify the radius of the explosion. There's no way to specify not to destroy blocks, but it will attempt to obey other plugins' restrictions.
    6. Minions should attack the target you attack. I guess it's possible another plugin is interfering. I do know that not all minions will follow you, but skeletons and zombies seem to work pretty well.
    7. Use entomb and set the tomb-block-type to whatever the web id is.
    8. Done! Yay!
    9. This is difficult. There is no "just allow" it here. Each parameter would have to be coded for each spell. So no, I don't see this happening. However, this is one of the reasons I created the multi-spells option.
     
  14. Anyone else having problems with 1.0.3? or is it because I'm loading spells that were built against 1.0.2? Bukkit 1060.

    Code:
    2011-08-22 18:26:51 [SEVERE] Could not pass event PLAYER_ANIMATION to MagicSpells
    java.lang.NullPointerException
        at com.nisovin.MagicSpells.Util.SpellReagents.<init>(SpellReagents.java:18)
        at com.nisovin.MagicSpells.Spell.cast(Spell.java:167)
        at com.nisovin.MagicSpells.Spell.cast(Spell.java:144)
        at com.nisovin.MagicSpells.MagicPlayerListener.onPlayerAnimation(MagicPlayerListener.java:141)
        at org.bukkit.plugin.java.JavaPluginLoader$16.execute(JavaPluginLoader.java:349)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:338)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:810)
        at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:100)
        at net.minecraft.server.Packet18ArmAnimation.a(SourceFile:35)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:89)
        at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:436)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:454)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
     
  15. Offline

    Kashius1138

    1. BAM!
    2. BAM!
    3. Cool. I'm kinda wondering how the existing vertical parameters work then (Velocity/Max Velocity.).
    4. BAM! I don't know if you saw my reply to another poster asking for this - but it seems multi-spells would allow us to customize the damage. It's a bit more complicated than a simple "Damage" option, but it should work - right?
    5. Hmmm, ok. And as to the damage of the spell itself? Is it based on the damage radius? Or is it a set amount of damage?
    6. Yes, most will follow. My server didn't like the summoning of Ghasts, but I'm going to try again with the newest release versions of Magis Spells and CraftBukkit. And do minions attack even on a ranged attack? I've been having trouble with this. I'll try disabling everything but your plug to see if there is anything preventing this from happening.
    7. Duuuuuh - thank you :)
    8. BAM!!!
    9. BAM! Multi-spell is a good workaround for this restriction. Pain (and custom variants) should be able to add/increase damage and other combinations can achieve some pretty good effects as well. Is Multi-spell limited to 2 spells? Or can 3+ be combined...not like that would be common or anything.

    Thank you for the replies - this really is the best magic plugin I've used. Great stuff man!

    -Kash
     
  16. Offline

    nisovin

    Redownload it. You must have been the clever one that downloaded it before I realized there was a major bug. ;)
    Edit: Just kidding. There's another bug.

    Version 1.0.4 released. Mostly a bug fix version. Oops!

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

    ryanjjjj

    is there anyway you can add some feature where after a certain amount of time an external spell will use another external command to disable the buff. i want to allow a player to temporary enchant bows to shoot fire arrows then change back to normal. a multi/external spell with a delay would do the trick but no such work around does the trick.
    would be greatly apreciated thx :D
     
  18. Offline

    burnteggoz

    ok so ive been trying to make the no cool down thing and no cost work could someone plz help me i did
    - burnteggoz
    but nothing seems to work
     
  19. Offline

    x5StArNRz

    I am trying it out now... It looks AMAZING!
     
  20. It seems the anti-magic zones are not correctly adhering to multiworld.

    I have a certain zone around spawn set to anti-magic on another world, but it also fizzles spells within the same coordinates in our main world.
     
  21. Offline

    ryanjjjj

    your post says v1.0.4 but when i download it it says: [INFO] MagicSpells v1.0.3 loaded!
    I am also getting this funky little error when i use fireball on an entity, it still damages them but appears to nag my server console.

    15:25:03 [SEVERE] Could not pass event ENTITY_DAMAGE to MagicSpells
    java.lang.ClassCastException: org.bukkit.craftbukkit.entity.CraftPig cannot be c
    ast to org.bukkit.entity.Fireball
    at com.nisovin.MagicSpells.Spells.FireballSpell.onEntityDamage(FireballS
    pell.java:142)
    at com.nisovin.MagicSpells.MagicEntityListener.onEntityDamage(MagicEntit
    yListener.java:26)
    at org.bukkit.plugin.java.JavaPluginLoader$58.execute(JavaPluginLoader.j
    ava:649)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:332)
    at net.minecraft.server.Explosion.a(Explosion.java:140)
    at net.minecraft.server.World.createExplosion(World.java:1466)
    at net.minecraft.server.WorldServer.createExplosion(WorldServer.java:145
    )
    at net.minecraft.server.EntityFireball.m_(EntityFireball.java:168)
    at net.minecraft.server.World.entityJoinedWorld(World.java:1198)
    at net.minecraft.server.WorldServer.entityJoinedWorld(WorldServer.java:4
    8)
    at net.minecraft.server.World.playerJoinedWorld(World.java:1180)
    at net.minecraft.server.World.cleanUp(World.java:1104)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:447)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    if you could provide version 1.0.4 and fix this error it would be appresiated
    Bukkit = 1060
    MagicSpells = 1.0.3

    also i upgraded from v 0.8 to 1.0.3 so if there was and config changes i haven't yet implemented them.
     
  22. Request:

    A new permission node, such as "magicspells.silence". If a player has that node, his spells do not show the broadcast message in chat.
     
  23. Offline

    Werzieq

    3 suggestions
    - invisibility
    - fly
    - snare (surround with cobwebs)
     
  24. Offline

    seiyaryu666

    i've been using your plugin for a bit now, and only have one thing i'd like to see.
    spell mastery: players can learn how to cast a spell without reagents. should include things like: how many spells can be mastered, how many times they have to cast it to master it, still cost mana?, and "wand" item.

    i do have a question though, is there a way to collect the arrows from volley? or set it so they can be collected?

    are you talking about astral projection dude? thats where you leave your body and travel around in a "ghostly" form.
    (please note this is a simplified definition, i am very aware of what astral projection really is.)

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

    Werzieq

    Would be still a good idea, something like the BirdView Plugin ;) what about the ensnare?
     
  26. Offline

    IronPython

    so this is how i have it set up,

    im trying to get it so you can only play song if you have a scroll for that song, but even with command to block: rm (tried rm, rm play, rm play 1) it still will let me do the normal command /rm play 1. is there something i might be missing or dose the command to block not work with bukkit 1060 for some odd reason

    edit: could not get it working so for now ill just another plugin commandDisabler to stop people from using the command (only bad thing about that is it even disables me from using the command, but oh well ill live)

    just a side note i tried to make another external spell but it keep giving me an error i found out that it had to do with the fact that both spells had
    it was thinking the &4you was an anchor so when i copied it over it was telling me there was a duplicate anchor for that line. even though the &4 was for a colour argument i removed it and it all worked out fine. dont know if there is a fix you can do for that but just wanted to tell you whats up.

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

    Woolcity

    Exactly the words I wasn't able to come up with. =]
     
  28. Offline

    IronPython

    Just wondering (i think i read this in another post here) but you thinking of adding a way to have a duration for a custom spell? lets say i wanted to use the mob disguise plug in to let ppl with the pig scroll to change it to a pig. as of now they can but they will stay a pig as long as they want tell they type /md. it would be nice to have it so that you can set a duration (or delay) then set another command to use, so in this case the first command would be "/md pig" and after 30 ticks "/md" would then be used.

    also i wanted to know (i was going to test this out ether way) but is there a way to add in markers like the %a to custom spells? lets say i wanted to use my music plug in and i had a song that would bug ppl like then nyan cat song. i want to make a curse spell called the nyan curse. so that when ur looking at a player and right click it sets that player as the target and they hear the song. then they ether have to hear it for the next 3 min or use the anti song spell. spell would look like so

    /rm play <song #> <player>
    /rm stop

    the stop one is an easy one to get working but the play one needs a target for exp.

    /rm play 2 %t

    and %t is who your looking at. dont know if that can be done but i think it would allow for a much larger rang of spells one could add to your plugin.
     
  29. Offline

    ryanjjjj

    the post says this is version 1.0.4 but the download link is not updated my server tells me its still v1.0.3 i thought i already post a comment but i think my internet crapped out lol so it didnt go thru, also when i injust an entity with a spell i get this nag console message:

    08:37:50 [SEVERE] Could not pass event ENTITY_DAMAGE to MagicSpells
    java.lang.ClassCastException: org.bukkit.craftbukkit.entity.CraftSheep cannot be
    cast to org.bukkit.entity.Fireball
    at com.nisovin.MagicSpells.Spells.FireballSpell.onEntityDamage(FireballS
    pell.java:142)
    at com.nisovin.MagicSpells.MagicEntityListener.onEntityDamage(MagicEntit
    yListener.java:26)
    at org.bukkit.plugin.java.JavaPluginLoader$58.execute(JavaPluginLoader.j
    ava:649)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:332)
    at net.minecraft.server.Explosion.a(Explosion.java:140)
    at net.minecraft.server.World.createExplosion(World.java:1466)
    at net.minecraft.server.WorldServer.createExplosion(WorldServer.java:145
    )
    at net.minecraft.server.EntityFireball.m_(EntityFireball.java:168)
    at net.minecraft.server.World.entityJoinedWorld(World.java:1198)
    at net.minecraft.server.WorldServer.entityJoinedWorld(WorldServer.java:4
    8)
    at net.minecraft.server.World.playerJoinedWorld(World.java:1180)
    at net.minecraft.server.World.cleanUp(World.java:1104)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:447)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
     
  30. Offline

    gangetsu

    it does not work with me i'm op but i dont have any spells
     
  31. Offline

    samknash222

    Does this support the * for permission nodes? Such as magicspells.grant.* ?
     

Share This Page