Overview
Magic is a Work-In-Progress system, the end goal of which is to bring an RPG-like experience, focused on magic spells, items and abilities, to Minecraft. A primary goal of Magic is to provide a completely new experience using the vanilla Minecraft client.
Notes
Important Note – Magic is WIP, in particular the new spell inventory system may have some kinks. Please use with caution, make backups- and maybe for the time being don’t use a wand with your most super specialest items in your inventory
Admin Instructions
Installation
Magic requires CraftBukkit, just place Magic.jar into the plugins folder. This is all you need to do to experiment with spells, by default only ops can get wands (though anyone can cast any spells if they get ahold of a wand with spells!) See the Permissions section below for more information on setting up permissions. Finally, see the Customization section if you are interested in creating your own experience.
Commands
The default permissions give several new commands to admins:
Wand Commands
- /wand : Create a new, empty wand.
- /wand <name> : Create a new wand from one of the preset wands defined in wands.yml
- /wand list : List available wand templates from wands.yml
- /wand add <spell> : Add a new spell to the currently held wand.
- /wand remove <spell> : Remove a spell from the currently held wand.
- /wand configure <property> <value> : Remove a spell from the currently held wand.
- /wand add material <material> : Add a new material to the currently held wand.
- /wand remove material <material> : Remove a material from the currently held wand.
- /wand name <name> : Name a wand (note that using an anvil on a wand will wipe out its spells!)
Utility Commands
- /magic reload : Reload config files, update spell configurations. (Console)
- /magic reset : Undo all customizations to spells.yml and reset to default. Dangerous (back up your spells.yml if you’ve made changes!), but useful if you’ve upgraded without customizing and wand to make sure you have the latest spells. (Console)
- /spells : Lists all spells that a player knows about. A player may view detailed information about any spells they have permission to cast. This command is safe to give to players, though it removes some of the mystery. Players can see the same information in-game about spells they have on their wands (via the lore tooltips).
The Cast Command
The /cast in-game command is very powerful. It lets you cast any spell directly, but (more importantly) it lets you use “command line parameters” to play around with the configurable spell system. Many spells in Magic are based on the same “building block” spell, using parameters. And, by tweaking those parameters yourself, you can create some interesting and powerful spells. A server admin can then make them “official” spells by adding them to spells.yml, so players can use the new spell on their wands. As an example, the “boom”, “kamikazee”, “kaboom” and “nuke” spells are all variants of “BoomSpell”, tweaking the “size” parameter (mainly). A “nuke” for instance is “size 20″ – want to see what a 10x nuke would look like? Try /cast boom size 200 … but be forewarned, it’s not pretty! Parameters to the cast command follow the same name and format as in spells.yml, and are passed in pairs – e.g. /cast <spell> <param> <value> <param> <value>. Browsing through the default spells.yml is the best way to get a feel for what your options are.
Customizing Spells
Magic is a configurable system, set up to let admins create their own experience on their servers. It will create a default configuration (spells.defaults.yml) with a variety of spells. If you want to add, remove or create your own spells- just create a copy of this file names “spells.yml” and edit to your heart’s content. Take a look at the spells.defaults.yml file that Magic generates at first run. It contains a list of spells, that players can use in-game, configured from building-block spells. All spells have a few common properties that you might want to tweak:
- cooldown – spells can only be cast so often (in seconds)
- range – How far a spell can target (in blocks)
- target_through – What a spell can target through (e.g. glass, water)
- costs – A list of casting costs (items and amounts) consumed when the spell is cast
- name, description, wand icon, etc – All editable in spells.yml
I’d like to add some more documentation eventually, but for now I’m hoping the default YML file will get you started.
Permissions
By default, all players have access to the wand and all spells. This can be limited using the following permission nodes:
- Magic.wand.use : Player can use a wand
- Magic.commands.spells : Player can use /spells
- Magic.commands.wand : Player can use /wand
- Magic.commands.wand.add : Player can use /wand add
- Magic.commands.wand.remove : Player can use /wand remove
- Magic.commands.wand.name : Player can use /wand name
- Magic.commands.wand.list : Player can use /wand list
- Magic.commands.wand.configure : Player can use /wand configure
- Magic.commands.cast : Player can use /cast
- Magic.cast.<spellname> : Player can cast a specific spell
And also the following admin-oriented commands:
- Magic.commands.magic.reload : Reload spells.yml
- Magic.commands.magic.reset : Delete spells.yml and re-create it from defaults
Block Populator
Magic comes with a custom Block Populator, but it is off by default to avoid making changes you don’t want. However, if you’d like to add some spice to your world (or, even better, a new world)- set “enable_block_populator” to true in magic.yml. You can also update the wand lists and probabilities in “populate_chests”, though the default list should be a good place to start. When enabled, this will randomly add wands to naturally-spawned chests, giving your players something more interesting to hunt for in dungeons, fortresses and strongholds!
Other Configuration
The magic.yml file also has a few other global tweakable parameters, such as turning on/off cast messages or changing the way all spells function at a basic level. Magic generates a magic.defaults.yml file.
Playing with Magic
In order to use magic, you will need a wand. An admin can create one using the /wand commands, it will appear as an enchanted stick named “Wand”, and its lore tooltips will tell you how many spells it knows. To get started quickly, use the following command: /wand demo This will give you the preset “demo” wand. This wand has three spells on it, blink, fling and torch. When you equip a wand, you can cast its active spell by left-clicking. This may consume XP or reagents depending on the spell, wand, and server configuration. If a wand is imbued with more than one spell, you can right-click while holding it to open and close its inventory. While the wand inventory is active, you can switch the active spell using the hotbar buttons. Spells are represented with their icons as defined in spell.yml, so you can drag them around as you would other items. If you open your inventory screen (‘E’ Button, normally) while the wand’s inventory is active, you can re-arrange spells and magic materials, putting the ones you need in your hot bar. Try casting and switching the three spells on the demo wand (casting costs are ignored with this wand!).
Casting Costs
Magic has a casting cost system built in. It is fully configurable, but the default config is set up to have most spells cost XP. Spells can also be configured to cost “reagents” (set amounts of specific items), though I don’t necessarily recommend this approach for Magic anymore, it’s not a great fit. The player will see a message on-screen if they don’t have the resources to cast, unless Magic is configured to “silent” in magic.yml.
Wand Properties
Wands can be given specific properties:
- XP Reneneration – When used with XP-based casting costs, can give a player a renewable MP supply. While it is generally kept to a minimum (e.g. under 5 levels) you should still be aware of the potential for anvil and enchanting table abuse.
- Health / Hunger Regeneration – Gives the player back health or hunger over time
- Protection – Various forms of protection can be given to a wand
- # of Uses – Wands can be made temporary, such that they break after a certain number of uses. Wands cannot be repaired.
These properties only affect a player while they are holding a wand. Properties can be configured in wands.yml, or via the “/wand configure <property> <value>” command. In both cases the available properties are:
- cost_reduction
- damage_reduction
- damage_reduction_physical
- damage_reduction_projectiles
- damage_reduction_falling
- damage_reduction_fire
- damage_reduction_explosions
- xp_regeneration
- xp_max
- health_regeneration
- hunger_regeneration
The “reduction” values range from 0-1 (where 1 is fully reduced, so prevent all damage, make spells free, etc). The “regeneration” values are in units per second. So if you want to gain back one health per second, set health_regeneration to 1.
Construction Spells
Magic has a lot of spells that focus on construction- a lot of things you might normally do with WorldEdit, for instance, you could do with “spells” – and there are also a lot of “fun” construction-oriented spells. The “engineer” wand (/wand engineer) has a good selection of construction spells, and also comes with a few basic materials so you can try out the material system.
Materials
Spells can be configured to work with a specific material (e.g. create “midas touch” type spells), but by default they work with the targeted material. So if you cast pillar on dirt, it will create a pillar of dirt. Wands can be also imbued with materials, and the player can then use the material selection system to construct with specific materials. Materials will appear in a wand’s inventory along with spell icons, and can be selected in the same way. Spells that use a material will display the active material in the wand’s tooltip. There are two special cases in the material system:
- Copy (Melon Seeds) : Means use the targeted material. This is also the default behavior if no material is assigned to a wand.
- Erase (Sulphur) : A sulphur icon actually represents “air” – it is a special material representation for turning any construction spell into a destruction (erase) spell.
These two special materials can only be given to a wand via admin commands (/wand add material {copy|erase}). Other materials may be added to a wand by a player if they have the absorb spell.
Undo
The undo spell is an undo for any construction spells. It does a pretty good job, but it is limited- keep in mind it will not undo chest or sign contents, that sort of thing- it’s not meant to replace world backups or a good WorldProtect type of system. Magic is very dangerous so please take care when installing it on your server!
Reference
Default Wands
Use /wand list in-game to see this, as this list may get out of date:
- demo : Demo Wand (torch, blink, fling)
- explorer : Explorer Wand (tesseract, torch, spawn, recall)
- psychic : Psychic wand, Airbending (fling, blink, push, pull, force)
- painter : For decorating (paint, has all wool and clay colors)
- engineer : A powerful building wand
- battle : Combat spells
- mining : Mining made easy
- farming : Build instant farms
- elementalist : Work with the base elements
- alchemy : Transform matter
- necromancer : Raise the dead and such
- elder : The Uber Wand, use with caution!
Default Spells
- alchemy:
- breach [seeds] : Breach : Temporarily destroy the target surface
- cushion [soul_sand] : Cushion : Create a safety bubble
- erase [lever] : Erase : Undo your target construction
- frost [snow_ball] : Frost : Freeze water and create snow
- paint [painting] : Paint : Fill a single block
- peek [sugar_cane] : Peek : Temporarily glass the target surface
- recurse [wood_spade] : Recurse : Recursively fill blocks
- undo [book_and_quill] : Undo : Undo your last action
- combat:
- arrow [arrow] : Arrow : Fire a magic arrow
- arrowrain [bow] : Arrow Rain : Fire a volley of arrows
- boom [red_rose] : Boom : Create an explosion
- disintegrate [bone] : Disintegrate : Damage your target
- fireball [netherrack] : Fireball : Cast an exploding fireball
- grenade [tnt] : Grenade : Place a primed grenade
- icbm [rotten_flesh] : ICBM : Cast an exploding fireball
- kaboom [redstone_wire] : KaBoom : Create a big explosion
- kamikazee [dead_bush] : Kamikazee : Kill yourself with an explosion
- lava [lava] : Lava : Fire a stream of lava
- leatherskin [leather_chestplate] : LeatherSkin : Protect you from some damage
- lightning [cooked_fish] : Lightning : Strike lighting at your target
- nuke [bed] : Nuke : Create a huge explosino
- sandblast [sandstone] : Sandblast : Drop a big block of sand
- sniper [gold_nugget] : Sniper : Fire a deadly fast arrow
- construction:
- absorb [bucket] : Absorb : Absorb some of the target
- alter [redstone_torch_on] : Alter : Alter certain objects
- blob [clay_ball] : Blob : Create a solid blob
- box [gold_helmet] : Box : Create a large hollow box
- bridge [gold_hoe] : Bridge : Extend the ground underneath you
- fill [gold_spade] : Fill : Fill a selected area (cast twice)
- pillar [gold_axe] : Pillar : Raises a pillar up
- shell [bowl] : Shell : Create a large spherical shell
- stalactite [wood_axe] : Stalactite : Create a downward pillar
- superblob [clay_brick] : SuperBlob : Create a large solid sphere
- elemental:
- day [flint] : Day : Change the time to day
- fire [flint_and_steel] : Fire : Light fires from a distance
- night [coal] : Night : Change the time to night
- storm [grilled_pork] : Storm : Start a lightning storm
- time [watch] : Time : Change the time of day
- weather [water] : Weather : Change the weather
- exploration:
- flare [firework] : Flare : Fire off a flare (firework)
- spawn [yellow_flower] : Home : Take yourself back home
- recall [compass] : Recall : Marks locations for return
- tag [sign] : Tag : Leave a sign with your name
- torch [torch] : Torch : Shed some light
- farming:
- farm [wheat] : Herd : Create a herd
- tree [sapling] : Tree : Instantly grow a tree
- master:
- gather [glowstone_dust] : Gather : Gather groups of players together
- inferno [fire] : Inferno : Burn a wide area
- invincible [golden_apple] : Invincible : Make yourself impervious to damage
- ironskin [iron_chestplate] : IronSkin : Protect you from damage
- sign [sign_post] : Sign : Give yourself some signs
- medic:
- gills [raw_fish] : Gills : Restores health while moving underwater
- heal [bread] : Heal : Heal yourself or others
- mining:
- blast [sulphur] : Blast : Mine out a large area
- mine [gold_pickaxe] : Mine : Mines and drops the targeted resources
- superblast [slime_ball] : Superblast : Mine out a very large area
- psychic:
- ascend [red_mushroom] : Ascend : Go up to the nearest safe spot
- blink [ender_eye] : Blink : Teleport to your target
- cloak [chainmail_chestplate] : Cloak : Make yourself invisible while still
- descend [brown_mushroom] : Descend : Travel underground
- fling [feather] : Fling : Sends you flying in the target direction
- force [string] : Force : Use telekinesis
- leap [leather_boots] : Leap : Take a big jump
- levitate [gold_boots] : Levitate : Levitate yourself up into the air
- portal [portal] : Portal : Create two connected portals
- pull [fishing_rod] : Pull : Pull things toward you
- push [rails] : Push : Push things away from you
- tesseract [web] : Tesseract : Blink a short distance
- summoner:
- ender [ender_pearl] : Ender : Summon an enderman
- familiar [egg] : Familiar : Create an animal familiar
- mob [jack_o_lantern] : Mob : Summon a mob of monsters
- monster [pumpkin] : Monster : Call a monster to your side
- shrink [skull] : Shrink : Damage an entity and steal its head
- wolf [pork] : Wolf : Create a wolf familiar to follow you around
Spell Parameters
This list is incomplete, and it’s always easier to play around with “/cast” rather than edit spells.yml and reload. For instance, try some of the following:
- /cast arrow fire true count 50
- /cast familiar type chicken count 30
- /cast paint material gold_block
- /cast recurse material water
Common Parameters:
- name : The “friendly” name of the spell, shown to the player. This may be different than the “key”, used when referencing the spell in commands.
- description : A longer description which will appear in the lore of the spell.
- icon : The material used as an icon to represent this spell
- category : The category of this spell, for organization in the spell list
- costs : A list of material costs and amounts, which are required to cast the spell and consumed when casting
- cooldown : How long, in seconds, the player must wait between casts of this spell.
- range : For targeted spells, how far the spell can target.
- allow_max_range : For target spells, if the spell will fail if not finding a block, or if it will still cast while targeting the air block at the max range. For example, the sandblast spell does this to let you create a block of sand up in the air.
- target_through : A spell may override the list of materials that may be targeted through. The default list normally includes the logical materials like air, glass, water, etc and is defined in magic.yml.
- parameters : These are spell-specific parameters, equivalent to what you would pass in with/cast
Spell-specific parameters: TODO : List all spells… Some common ones to try:
- size : Generally makes something bigger or smaller. Examples: fire, arrow, storm, blob, fireball, blast, boom, grenade.
- count : Used by some spells much like “size”. Examples: familiar.
- radius : Some spells also use this for “size”. (Note to self- make these consistent!). Examples: frost, fire.
- fire : Turn on/off fire. Examples: arrow, grenade, boom.
- material : Change the material used by this spell. Examples: fill, absorb, pillar, bridge.
- type : Change the type of entity (or other thing) the spell works with. Examples: familiar.
- duration : A few spells use this for timing. Examples: frost, cushion.
Changelog
Full changelog can be viewed on github
Magic Plugin 1.6.4 Download Links
http://www.dl2.9minecraft.net/index.php?act=dl&id=1385819732 http://www.dl5.9minecraft.net/index.php?act=dl&id=1385845146
Không có nhận xét nào:
Đăng nhận xét