[INACTIVE][FUN/RPG] Praecantatio v1.2 - A magic plugin based on Incantatio - now with permissions!

Discussion in 'Inactive/Unsupported Plugins' started by Omnicrash, Jul 6, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    Omnicrash

    Praecantatio - A magic plugin based on Incantatio - NOW WITH PERMISSIONS!
    Version: 1.2

    [​IMG]

    Praecantatio is a magic plugin based on Incantatio v1.1, but with majorly overhauled code and spells. It started out as a simple mod of the plugin for my own server, because I didn't like some stuff in the original one.

    For those of you that don't know Incantatio, it is a plugin that allows you to say spells in order to cast them, much like is the case in popular movies/tv shows. Thanks to orion304 for his plugin and allowing me to release mine! You can check out the original plugin here.

    I changed most of the spells to be griefer-unfriendly. You cannot make any extra item or block in the world, they are all temporary and any magically created blocks that are mined won't drop anything.

    While these spells still give you a gameplay advantage compared to vanilla Minecraft, I took care of balancing every one and avoided duplicating functionality that is already present in the game.

    Also new is the ability to inscribe spells to a book. Some spells require reagents now, they are redstone or a piece of lapis by default, but can be customized through the config file.

    Editing the config files:
    Show Spoiler

    If you want a clean config file, you can just delete them, they will be regenerated the next time the plugin is loaded.

    config.yml:
    Code:
    General:
        SpellAnounceLevel: 1 // Defines the announce level for a spell: 0 = only to the casting player, 1 = only in a short range from the casting player, depending on spell strength, 2 = global
        SpellRange: 50 // Defines the range for all spells.
        SuperCommand: magna // Defines the command used to access the 3th level of a spell
        CastItem: 280 // Defines the item to use for the CastItemOnly spell option. In future updates, this will also serve as the wand item
    
    Reagents:
        Regular: 331  // Defines the item used as a reagent for regular spells
        RegularIsDye: false  // Defines if the item is a dye
        Master: 4  // Defines the item used as a reagent for master spells
        MasterIsDye: true  // Defines if the item is a dye
        Level1: 1  // The amount of reagent required for a level 1 cast
        Level2: 3  // The amount of reagent required for a level 2 cast
        Level3: 5  // The amount of reagent required for a level 3 cast
        TransmuteCost: 15  // The amount of regular material that the transmute spell transforms into master material (and vice versa)
    Spellbook:
        Enabled: true // Defines if the spellbook is enabled at all
        WriteReagent: 4  // The reagent used for writing in your spellbook
        WriteReagentIsDye: true  // Defines if the reagent is a dye
        InscriptionCommand: scripto  // The command used to write in your spellbook
        Cooldown: 5  // The cooldown between uses of your spellbook
    
    spells.yml:
    Note: You can remove a spell's section from this file to disable it completely.
    Code:
    Spells:
        Transmute:  // The description used by the plugin. DO NOT CHANGE THIS
            Name: transmutare  // The name used to cast the spell
            CastItemOnly: false  // Defines if the spell can only be cast while holding the casting item defined in the config
            Master: false  // Defines if the spell is a master spell (uses the master reagent)
            Cooldown: 0  // The cooldown for the spell
            CostMultiplier: 0  // Allows you to make spells more expensive or free
    


    NEW! Permissions:
    Show Spoiler

    praecantatio.spellbook // Allows the player to use the spellbook
    praecantatio.spells.* // Gives access to all spells
    You can also only allow individual spells for a player by using:
    praecantatio.spells.spellname // Where spellname is the DESCRIPTION of the spell as it appears in the spells.yml config file.

    Full list of individual spell permissions for your convenience:
    praecantatio.spells.wall
    praecantatio.spells.transmute
    praecantatio.spells.lightning
    praecantatio.spells.thaw
    praecantatio.spells.clear
    praecantatio.spells.protect
    praecantatio.spells.storm
    praecantatio.spells.mutate
    praecantatio.spells.slowfall
    praecantatio.spells.entomb
    praecantatio.spells.glasstoice
    praecantatio.spells.replenish
    praecantatio.spells.light
    praecantatio.spells.fireball
    praecantatio.spells.extinguish
    praecantatio.spells.silence
    praecantatio.spells.bubble
    praecantatio.spells.break
    praecantatio.spells.breathe
    praecantatio.spells.blink
    praecantatio.spells.heal
    praecantatio.spells.launch
    praecantatio.spells.waterwalking
    praecantatio.spells.activate
    praecantatio.spells.rain
    praecantatio.spells.freeze


    Spells:
    Show Spoiler

    - Sphaera: Creates a temporary bubble of ice around you lasting for 10/20/30 seconds depending on the strength with which it is cast. When used underwater, this will create a temporary pocket of air.

    - Fulmen: Creates a lightning bolt at your target. Strength 2 of this spell will also set the target on fire, and strength 3 will set the target and a small area around it on fire. When used on sand, it will turn the sand to glass.

    - Tarduscado: Slows your falling speed for 10/20/30 seconds depending on the casting strength.

    - Remedium: Heals you slowly over time to full health as long as you are standing still. Higher casting strengths will heal you faster.

    - Transulto: Transports you to the location you are looking at. This spell has a cooldown of 30 seconds.

    - Respiro: Makes you able to breathe underwater for 30/60/120 seconds depending on the casting strength.

    - Frigidus: Freezes the area you are looking at, covering blocks in snow and turning water to ice. Higher casting strengths will cover a larger area.

    - Concalesco: The opposite of frigidus, this spell turns thaws ice and removes snow. Higher casting strengths will cover a larger area.

    - Extinguo: This spell extinguishes you if you are on fire. At higher strengths, this will also extinguish an area around where you are pointing.

    - Pluvia: Makes it rain. This is a powerful spell and requires 1 piece of Lapis Lazuli.

    - Tempestas: Summons a thunderstorm. This is a powerful spell and requires 1 piece of Lapis Lazuli.

    - Sereno: Makes it sunny with clear skies. This is a powerful spell and requires 1 piece of Lapis Lazuli.

    - Mutatio: Mutates the mobs around the area you are pointing at, mostly into passive mobs. BE CAREFUL though, this spell may backfire and create evil mobs. There is a 20% chance of backfire, and for each mob in the same area there is an additional 20% chance. In extreme cases (2%), this spell can backfire miserably and mutate a mob beyond your control or open a brief portal to the nether. Higher strengths will lessen the chance of this spell backfiring.

    - Lux: Creates a glowstone block in front of the block you are pointing at, that lasts for 1/2/5 minutes depending on casting strength.

    - Clausus: Similar to sphaera, this spell creates a wall of ice at your target that lasts for 15 seconds. Higher casting strengths will make the wall wider.

    - Repleo: Admin-only spell, this spell attempts to fix water that isn't even. Unchanged from Incantatio.

    - Tueri: Makes you immune to all damage for 3/5/7 seconds depending on casting strength.

    - Ignifera: Summons a fireball. This spell only works properly at the highest level (3).

    - Sepulcrum: This spell entombs the target in an obsidian tomb for 10/20/30 seconds. When a player has been entombed, they will have immunity for 1 minute.

    - Glacia: When cast on glass, this spell turns the glass to ice and spreads to all glass around it in a small radius. Higher casting levels increase the spells radius of effect. Great for filling pools or making structures out of ice.

    - Transmutare: When holding a piece of lapis, this spell will turn it into 15 redstone, and when holding at least 15 redstone, they will turn into a piece of lapis. Great for when you cannot find any lapis.

    - Scripto: Inscribe a spell into your spellbook, see above for examples.

    - SuperAquas: Water will freeze below your feet for 10/20/30 seconds.

    - Jaceo: Launches your target into the air, or yourself if you look straight down.

    - Ruptura: Temporary creates a hole, it's size depending on the casting strength, in the direction you are looking at. WARNING: This will drop all ladders/torches/rails/... so some of you might not want it on your server. This will be fixed in the future.

    - Tincidunt: This will temporarily remove all redstone torches in a set range, great for creating hidden piston doors!

    - Silentium: Silences opponents for a 5/10/15 seconds, preventing them from saying anything at all! If you have been hit by this spell, you will be immune for 1 minute. This spell has a 30s cooldown.


    Activate 'tincidunt' spell hidden door example:
    Show Spoiler

    Door is closed:
    [​IMG]

    Door is temporary opened by the spell:
    [​IMG]

    And this is how it works:
    [​IMG]

    Simple, huh?


    Todo list has been removed, theres too much stuff and spells I still want to add, I might add it again later after I give my personal todo list a proper formatting/wording everyone can understand.


    Alright! That's it, I hope you enjoy this plugin as much as I did creating it.

    DELETE YOUR CONFIG FILES WHEN UPGRADING!
    There have been a lot of changes and both the config and spell files have been significantly changed.
    [​IMG]
    I read every post and I consider all suggestions. I also put a lot of my time and effort in this.
    So if you appreciate my work, please consider at least buying me a beer. Thanks!

    If you see a bug, or if you think a feature is not working as advertised, please report it in this thread.

     
    Noppoly and Aecnoril like this.
  2. Offline

    Bdl2

    You've added some nice stuff, but imo, rather than creating a whole new plugin with so many spells identical to Incantatio's, why not just make it an add-on. A spell-pack/expansion if you will.

    Also, configurable reagents would be nice.
     
  3. Offline

    Omnicrash

    Making it an addon would be really hard to do, and I have overhauled most of the basic code so it won't be compatible.
    Configurable reagents will probably be added when I implement permissions/config file, along with configurable cooldowns.
     
  4. Offline

    Bdl2

    Well, okay. Just be ready for lots of people who don't take the time to read the whole OP to claim you directly copied Incantatio.

    I'm not trying to discount your work or anything, by the way. This is a very interesting take on the concept of phrase-based magic, I'll be giving it a try myself to see how it stacks up. ;3
     
  5. Offline

    orion304

    You should check out the original too! :D

    Also, I'll be posting a link in my own plugin (Incantatio) to this one, for people who'd like a different "flavor". This'll of course happen after it's been moved to the Plugin Releases. Good luck ^.^
     
  6. Offline

    Omnicrash

    Thanks ^^ I'll make a direct link to yours too!
     
  7. Offline

    Omnicrash

    Phew, spend about 10 hours rewriting the threading code to only use 1 thread for everything, while also simplifying the process of adding new over time spells and channeled spells. Also added a water walking spell that temporary freezes the water under your feet. I'll upload the finished v1.1 tomorrow.
     
  8. Offline

    n33kos

    Fantastic work! The original is one of my favorites, but I like how you've balanced things out, much more fair! (Orion if your reading this the original is incredible as well!)

    Are you intending on implementing more spell modifiers than just magna? One of the things I enjoyed most about the original was the ability to mix and match those "componental spells". I feel it adds an incredible measure of depth to use your knowledge of the spells in combination with one another.

    keep up the great work!
     
  9. Offline

    Omnicrash

    Thanks!
    I don't really know how I could implement more modifiers for spell except for the 3 strength levels already included, although I'm a fan of the idea myself.
    If you have any ideas, please feel free to share them and I might implement them.
     
  10. Offline

    n33kos

    You are correct, it is a difficult brainstorm but I have some preliminary ideas that may hopefully offer you some inspiration. Im putting it in a spoiler because I dislike when people spam a page with their own ideas/direction without knowing the technical limitations or project architecture. Please excuse my general terminology as I am familiar with the concepts of game design, but haven't yet explored how this game is built.

    Show Spoiler

    I feel like a large amount could be done by adding some shorter conjunctive spells which have no use by themselves:

    Et - (and):
    In order to begin, we must be able to link spells. This may not be as simple as it sounds depending on how the whole setup handles threading, not to mention deciding how to handle conflicts between the results of the spells.

    I have thought of two possible methods of handling the spell:
    1)Both spells cast simultaneously​
    2)One spell after another in logical order (may require a "wait" spell)​
    3)"secret" spells which are a combination of two spells, but are unique in their effects​
    Example --> "fulmen et ignifera" would beget "Lightning and fire"​
    Mora - (wait):
    One thing I have found frustrating is that your target will sometimes move from your aim while you are casting. A "wait" command would act much as a pause in code, waiting for a predetermined amount of time before proceeding. We dont want to use numbers because that feels silly, so perhaps mora / MORA! / magna mora could correspond with a 1/3/5 second delay respectively.

    Additionally, this could be combined within your longer incantations to ensure you have a few seconds to aim or prepare for some gnarly effects.

    Example --> "sphaera mora mutatio" would encase you in an ice sphere then wait for 1 second before mutating nearby enemies

    Ad <target>- (at or to <target>):
    This one feels like it would be difficult both to implement and balance. An auto-targeting spell which directs the effects of the spell toward (physically or otherwise) the referenced object. I haven't been able to work out the kinks on this one yet, but maybe it will get your gears turning.

    possible targets:
    Hostis -(closest enemy)
    Amicus -(closest friend)
    <playername> -(specific player if within range)

    This spell would work well with buffs and debuffs!

    Example-->"extinguere ad hostis" would extinguish the nearest enemy.

    Im sure there are more short combination words which could be very useful, but my poor little brain is tuckered out. Please let me know how realistic these implementations are, I am really impressed with your balancing skills and feel like you are really only lacking more spells at this point.
     
  11. Offline

    orion304

    n33kos, I completely understand what you mean when you say Omnicrash has balanced Incantatio out a lot more. The original relies on a rather skewed idea of "balance" (everyone can do it, and you can't get items out of it), while Praecantatio definitely has a more real sense of balance.

    I really really like your suggestions and will probably try to incorporate them in my own plugin as well, once I get around to it again :D
     
  12. Offline

    n33kos

    :eek: - Im honored!

    spoiler again because it may be relevant but I don't want to hijack too badly
    Show Spoiler

    To be fair, your "skewed" sense of balance was one of the things I felt was missing from Praecantatio (in a manner of speaking). My interest in this plugin is driven heavily by my preoccupation with semiotics.

    To be much more specific I believe Latin is so interesting because its formation is logical as opposed to "contextual". There are a bunch of root words you can combine, plug and play, mix and match to form larger words which have an entire world of logical depth. You can transfer a lot of data in a dense format. In contrast, modern English has become "contextual" in that many of the words we use glean interpretation through reference --> (example: Democrat comes from Democrates, its an entire philosopher's worldview neatly wrapped up in one word, yet how many people have read his works?).

    What really made your version of the plugin shine for me was combining different words and seeing what happens! In the same sense that Minecraft adds a different type of realism to gaming, your plugin made it feel as though one were truly exploring magic and starting from scratch. Yes, I do feel that your version is way OP but it was incredibly exciting to "fear my own powers". I like the idea that I might make a mistake and do something horrible in my ignorance, it causes me to learn more:D

    Anyway, after much digression thank you both for your hard work, both plugins are excellent!
     
  13. Offline

    Omnicrash

    Your suggestions don't really fit my plugin, but as I suspected orion304 seems to like em, they fit his plugin better.
    While I like the idea of mixing complex combinations, I'm gearing mine towards a quickly usable version, "point and shout" so to speak, which is also why I removed spaces between multiple words in a spellname.
    What I'm probably going to add is more complex spells, or a system where you have to stand still and sporadically type different things to channel a large spell (eg. one that digs a mineshaft straight down in the earth while creating stairs), but I haven't worked out the details of how I'm going to implement this. My goal for this is to make the player 'work' for the result of the spell, since it's a really powerful one.
    What I would really like to do with spell combinations though, is combining for example something like fire and ice, but I feel like Minecraft is too limited to give me the tools to implement such spells.
     
  14. Offline

    n33kos

    Thanks for taking the time to read them though and respond anyway Omnicrash! Im excited to see the different direction you take! Am I correct in assuming that it would be unwise to use both versions at the same time or have you changed the basic code enough to avoid conflict?
     
  15. Offline

    Omnicrash

    Currently some spellnames will conflict. Once I add permissions and a config I'm going to allow for turning spells on/off or even changing the command to cast them, then with a bit of tweaking you should be able to run both versions alongside with the ability to choose which version of a duplicate spell you can use.
     
  16. Offline

    Aspernatio

    This is absolutely fantastic! All the spells are balanced, and the addition of the spellbook is wonderful! Thank you for the effort you put into this!

    What I would like to see in the next release however, as others have said, is the ability to configure reagents, as well as the option to only allow spells to be cast through the spellbook. In addition, is there currently any way to remove spells from one's spellbook? In any case, loving the plugin!
     
    Omnicrash likes this.
  17. Offline

    Omnicrash

    The option to remove is already present: just do 'scripto spellname' again and you will tear a page out of your spellbook!
     
  18. Offline

    Ramkkard

    I agree with making spells only cast-able through books. and maybe a config with adjustable regents for scribing different spells and when you cast the spell from your book.
    just fyi i just made my account to tell you this cause i really like incanto but thought it had some balance issues.
     
  19. Offline

    Aspernatio

    Okay after playing around with Praecantatio for a little while longer, I've come up with what I would like to do with it, and what features need to be added in order to acomplish what I'm trying to do.

    So, I'd like to have magic as a sort of endgame thing for my players. To do this, I only want players to be able to cast spells if they have inscribed them into their spellbook. I'd like to be able to control the cost of each spell, and also the cost of casting each spell-- I don't like how players can cast the lowest level of any spell without charge. So, keeping that in mind, here's what I'd like to see implemented into this plugin.

    Suggestions: (You've said your already implementing some of these, so just disregard those suggestions)
    1. Spells inscribed in a user's spellbook are written to a config file, so that when they login they haven't lost all of the spells that they've learned.
    2. The option to disable the message: "You mutter 'scripto fulmen'" and only show "You inscribe 'scripto fulmen' into your spellbook"
    3. The option to customize messages.
    4. The option to customize the cooldown for the spellbook.
    5. The option to disable the "you must wait _ more seconds" message.
    6. The option to disable casting spells without the spellbook
    7. The option to customize the reagents necessary for each level of each spell.
    8. The option to customize the reagents necessary to learn each level of each spell.
    So yeah, those are my suggestions. In my opinion, greater plugin flexibility always results in increased plugin quality. Thanks for reading!
     
  20. Offline

    RunicAlchemist

    I love Praecantatio! I have a suggestion though and I really hope you can implement it.
    Suggestion:
    Add a spell that makes you invisible for a certain amount of time
    the first teir could be 30 seconds
    the second teir could be 1 min
    and the third teir could be 90 seconds
    OR you could make it so you need a peice of lapis to use it and your only invisible when not under sunlight, but forever.
    (im willing to donate if you add this)
    and personally i apose having to use a spellbook to cast because that ruins the purpose of this plugin.
     
  21. Offline

    Omnicrash

    Getting ready for a new release,
    Aspernatio: I took a l0t of your suggestions in consideration, some are added, some aren't, others might be added in the future. When I release 1.1 later on you can check the changelog to see which ones are added (don't have much time atm).
    RunicAlchemist: An invisibility spell will be implemented, and I like the idea of being able to 'hide in shadows'.
    A spellbook will never be mandatory for casting spells, unless you make it so in your config file (will be in 1.1).

    1.1 is mostly ready, just need to do a lot of bugtesting before I can release it.
     
  22. Offline

    Aspernatio

    Thanks Omnicrash. At any rate, they were more or less suggestions, so I'm quite glad that you took them into consideration at all. :D
     
  23. Offline

    Omnicrash

    Updated the plugin to 1.1!
    Read the post/changelog for updates.

     
  24. Offline

    Ramkkard

    So Happy!
     
  25. Offline

    philboy11

    Possible names for the spells you need help naming.

    Hole: Cavum (latin for 'hole')
    Invisibility: Dissimulo (latin for "cloak")
    Save from death: Sanctus (latin for "holy")
    Piston: Pulsus (latin for "push")

    Idea for a spell:
    Auxilium (latin for "Assistance")
    Creates a giant pillar of glowstone for 6 second then it disappears
     
  26. Offline

    Convictjones

    Hi Im new and just downloaded this and it doesnt seem to work. I was surpried that the download wasnt a .jar but instead was a .7z . I went ahead and try to install it on my server but I got nothing. I know this sounds stupid but is there something special you need to do to install it?
     
  27. Offline

    Omnicrash

    Did you extract the .7z? 7z or 7zip is an archive format, such as winzip or winrar. The necessary files are included in the archive, but you will need to extract them first. You can download 7zip file extractor for free at http://www.7-zip.org/.
    I'm going to make it a direct jar download again though to avoid any confusion.
     
  28. Offline

    dakzerox

    i want permissions ^^
     
  29. Offline

    Aspernatio

    Awesome, this adds everything I need to officially implement it into my server! Thanks Omnicrash!
     
  30. Offline

    Convictjones

    I got it to work and i love this plugin. Is there anyway to get a fireball that actually works? The egg and snow ball is funny but i just want to be able to use a fireball from the book.
     
Thread Status:
Not open for further replies.

Share This Page