Description of plugin

This is the description of the plugin I typed up in notepad++, I didn't think through how I would structure it too well and this is all H

Parts of plugin
    - Commands
    - Game

Features of Blocks Verses Zombies plugin
    Block v Zombies Game from Sethbling’s Redstone game (http://sethbling.com/BlocksVsZombies)
    The basic wave survival game
    Custom Mobs
    Walls with configurable costs
    Turrets at a set 15 points
    Shop with items
    Customizable difficulty
    Team play (up to 15 players per game I think)
    Giant bosses that may or  may not work
    Multiple Arenas
    Multi-world support
    Even one arena across multiple worlds (I don’t recommend it)
    Multiverse Inventories is supported for multiple worlds without screwing up the inventories of players across any world (mostly, it's tricky)

Planed features
    Weapons, that actually have effects
    Multi-language
    Customizable shops
    Cannons
    Customizable waves
    Sign join
    Competitive Play

Using the plugin (players) perm is bvz.user
    For players, they only have 3 (4) commands
        /bvz [join, leave, list, (help)]
        /bvz join <arena>     | <arena>  is needed, but if not supplied, the player will join, if existent, the arena named “arena”
        /bvz leave            | leaves current game
        /bvz list            | list’s arenas that are in, GREEN is running, RED is stopped (can’t join)
        /bvz help            | this information here

When in game, there are a few things to know
1. Kill zombies
2. You get 1 points per zombie killed
3. If you kill zombies in rapid succession, you can get gold for kill-streak rewards
4. Walls can be bought, at configurable costs, by right clicking on a corresponding color of wool, it is good to mark the price so players know, and the plugin won’t tell them how much more they need. That takes work and I’m lazy, what can I say?
5. Turrets can be bought for 15 points by standing on a diamond block and shooting an arrow at a dispenser within the lawn and it will automatically fire and mark itself with glow stone.
6. Gold can be traded at Crazy Dave’s shop (only one trader at a time for now needs to work that out) for weapons that will have abilities in the future.
7. You can only use white-listed commands set by admins/owners and no perm can block this, I don’t want people messing with it.
8. Zombies spawn in a wave pattern (and may be configurable later), equations may be posted and they are off sine and cosine waves.
9. use the command /bvz leave to leave.
10. when a player quits a game, all his turrets de-activate.

Using the plugin (Admins / owners) perm is bvz.admin
    Installation
        Put the BvZ.jar (with whatever version number) in your plugins folder and reboot or turn on the server. It should generate a config and language file in a directory called BlocksVerseusZombies
            in your plugins folder. Don't mess with the language file because it's the start for multi-language compatibility later.
        Tutorials on how to control the plugin are later.

    Admin have a bunch of commands
        /bvz admin stop <arena>        | stops the game <arena>, it can no longer be joined by players and needs to be stopped for admins to edit it.
        /bvz admin start <arena>    | Starts the game <arena>, it can now be joined by players, the arena must be enabled, and it can no longer be edited by admins until stopped.
        /bvz admin enable <arena>    | Enables an arena, it must meet requirements (link it) and can now started, if it can’t be enabled, it will be stopped and disabled. Being enabled will also automatically start it when the server boots up.
        /bvz admin disable <arena>    | Disables an arena, must be stopped in order to do so, and it can no longer be started. It will also not start up on boot up.
        /bvz admin create <arena>    | Creates an arena with default data, will reference data in \plugins…\arenas\<arena>.ser if it exists. <arena> must be an original name, and it is not case-sensitive.
        /bvz admin remove <arena>    | Removes the arena <arena> from the server but does not delete the data in \plugins…\arenas\<arena>.ser.
        /bvz admin info <arena>        | Gives information about all saved data for an arena, can be configured with /bvz admin set <args>
        /bvz admin set <args>        | command used to set data for an arena, description later
        /bvz admin cmds <args>        | command used to edit commands in the game’s global whitelist, description later
        /bvz admin set <args>         | command used to edit arenas, description later

    /bvz admin set <arena> <object> <value>
        <arena>     | arena that is being edited, needs to be valid
        <object>    | thing to edit, list of things
            Nums: [min, max, wait]
            Locs: [lobby, ledge1, ledge2, lawn1, lawn2]
            Vols: [lawn, ledge]
            Dbls: [diff]
            Data: [wool]
        <value>    | what object will be set to
            Nums: use an integer value (no decimal but it can be negative)
            Locs: use “me” or “x y z” (with spaces), “x y z” will use the player’s current world for the location’s world.
                Ex: /bvz admin set arena lobby me
                Ex: /bvz admin set arena lobby 100 128 -100
            Vols: need WorldEdit and set by supplying “we” in value’s spot
            Dbls: doubles, or real numbers, can include a decimal; ex: 2.35
            Data: use a block, wool, followed by a ‘:’ with a data type (link it) after it and then a number to specify cost
                Ex: '/bvz admin set arena wool:5 8' set wool with data type 5 (lime color) to cost 8 points
    /bvz admin cmds <args> (perm is bvz.admin)
        Include the ‘/’ in the command, also, it’s just a string comparison so ‘/gamemode’ is different from ‘/gamemode 1’ or ‘/gamemode 1 flyguy23ndm’
        /bvz admin cmds add <cmd>    | adds a command to the whitelisted commands
        /bvz admin cmds remove <cmd>    | remove a command from the whitelisted commands
        /bvz admin cmds list        | lists the current command in the whitelisted commands

Making your first arena
    For your first arena, you should probably name it 'arena' because that's the default game's name.,
    to create it, do /bvz admin create arena.
    Then when you do '/bvz list', it should show an arena named arena in red/
    when you do '/bvz admin info arena' it should look like:
        Max: 4 | Min: 1 | wait: 30
        Enabled: false
        Running: false
        Difficulty: 1.0
        Lobby x: 0 y:128 z:0 world: world
        ...
        WoolCosts: WHITE 10 | ...
    now before you can configure stuff, you need to build an arena!
    A bvz arena has three major components, a lobby, a lawn and a ledge.
        Lobby: lobby is the place where players wait, they can walk freely and aren't bound but can't break blocks or interact with blocks (but can break item frames, sorry). All that an admin needs to set for this is the teleport location. when the 'min' amount is reached, the countdown of 'wait' seconds will start'. The game will not allow more than max players to join. This can all be configured with /bvz admin set <args>. A lobby can even be in a different world and players are given books with instructions on how to play the game. When the lobby times out, the game will start and all players will be teleported to the ledge
        Ledge: Where the players will be contained during the game, the two points (ledge1, ledge2 or just ledge with WorldEdit) form a cuboid that the players will be contained within. There needs to be a sponge for the players to teleport to, it is also where they will be teleported when they try to leave the ledge. It is optional to have a gold block, that is where Crazy Dave will spawn and trade with players.There needs to be wool blocks within reach of right-clicking, they are needed to buy walls.There needs to be diamond blocks to stand on for players to be able to buy turrets.Without Sponge, the game can't be enabled.
        Lawn: There is a cuboid (defined by lawn1, lawn2 or just by lawn with WorldEdit) that needs to contain the path, zombie spawn, and villager spawn.Zombies spawn on Emerald_blocks and villagers spawn on Netherrack. Walls are marked by colored wool in the ground, and turrets are only dispensers placed in target-able areas from diamond blocks. Without Emerald and Netherack, the game can't be enabled.

        Making an arena: tips
            Tall enough for Giant zombie (boss monster every 20 waves, one giant, then two...), at least 12 blocks, 20 is good and wide enough on all of the path, 4 blocks. In order to
                permit the giant to move through the course (which it may or may not do).
            Walls and turrets will replace the blocks above them to the original form after the game is over
            players need to stand on diamond block to buy a turret
                Turrets can buy turrets for you
                Turrets can’t harm villagers
            Villagers will spawn on Netherrack
                One villager will spawn per Netherrack
                Need 2 height, and don’t light the netherrack
            Zombies spawn on Emerald Blocks
                Zombies need enough room for giants
            Any Color wool for walls
                To buy a wall, all a player needs to do is right click on a piece of wool of that color
                The cost is configurable, non-existent walls can’t be bought
                Every wool of that color within the lawn’s volume has a fence put on it
            Lawn needs to contain:
                Villager spawn blocks, Zombie Spawn blocks, (optional) Walls, (optional) Turrets
            Ledge needs to contain
                1 sponge: spawn block, (optional) Gold Block for Crazy Dave
            If you have the area protected and don't want mobs spawning besides the game, just enable spawning on the emerald, gold and netherrack blocks.
            Zombies spawn one block above the ground, it is good to leave some room and the giant is very tall.

    After you have built your arena, you can set values. Setting values can be done with '/bvz admin set <args>', and is sadly the most annoying part of the game. The set command can only be done by an in-game player, no console after now. There are three (five) necessary values that need to be set: lawn (lawn1 and lawn2), ledge (ledge1 and ledge2) and lobby.

        <arena> is the name of the arena you're using; and x y z need to be replaced with numbers. This assumes you read it in sequential order.

        We'll start with lobby, to set the lobby, there are two ways of setting locations with '/bvz amdin set <args>'. Here is a link to that command's page LINK. One is 'me' and the other is 'x y z'. Either way it uses your world. I'll explain 'me', to do this, walk to the area where you want the lobby to be (facing direction doesn't matter, it's not saved) and once you're sure you're in the right place, do '/bvz admin set <arena> lobby me' where <arena> is the arena's name. If you want to do x, y and z by '/bvz amdin set <arena> lobby x y z' where x, y and z are replacedby numbers. Once you have finished this, you can check the locations with '/bvz admin info <arena>'.

        Next we'll set the ledge. This is much easier to do with WorldEdit (link), but I'll explain it both ways. First, without World edit, stand on one point of the cuboid that defines the ledge. This can be the bottom, left, front vertex, (include floor) move there and do the command '/bvz admin set <arena> ledge1 me' (or 'x y z' instead of 'me'). Next, go to the top, right, back vertex and do the command '/bvz admin set <arena> ledge2 me' (again, or 'x y z' instead of 'me'). Make sure these points contain the sponge that players will spawn on and, if you want, the golden block for Crazy Dave. To do this with world edit, select the two points described before with the '//wand' and then do the command '/bvz admin set <arena> ledge we'. If the cuboid doesn't contain the sponge, the  game won't start. Again, you can check this with '/bvz admin info <arena>'.

        Now we set the lawn. the lawn is set the same as the ledge but it needs to contain the turrets, walls, netherrack and emerald blocks. If the lawn doesn't contain the netherrack or emerald blocks, the game can't be enabled. Reference the instructions for setting the points in the ledge for the lawn, but replace ledge1 and ledge2 in the commands with lawn1 and lawn2. I recommend making the lawn larger than it needs to be. When zombies leave the lawn (fall, walk out, etc...) they will be teleported back to the start, but this doesn't negate fall damage so the can die if they fell out of the lawn.

    Once you have set all your points, you can now enable it. To enable an arena do '/bvz amdin enable <arena>' where <arena> is the arena name. Hopefully it tells you 'Arena <arena> has been enabled', but if not, check the requirements above. If the game ever does not meet the requirements (contain the certain blocks in certain zones), it will be disabled and stopped. If at any point the game doesn't meet the requirements, any time, it will be disabled and stopped. To confirm the arena being enabled, you can do '/bvz admin info <arena>'.

    Now that you have enabled game, you can start it. Do '/bvz admin start <arena>' to start the game. If you wish to edit it later, the game must be stopped (not disabled) before you can edit it. To stop a game, use the command '/bvz admin stop <arena>'.
    You can join with '/bvz join <arena>' and see if you like the game.

    There are may configurable aspects of the game, see the command /bvz admin set <args> (link it) for details.

    Explanation of all save data
        Integers:
            Min: min number of players to start, not contiue, but start a game.
            Max: max number of players allowed in a game at any time.
            Wait: wait time for players in lobby before start.
        Locations:
            Lobby: where players are teleported for lobby.
            Ledge1 & 2: bounding points for ledge.
            Lawn1 & 2: same as ledge, but for lawn.
        Booleans:
            Enabled: self-explanatory.
        Doubles:
            Diff: difficulty factor for game, all zombie's stats are multiplied by this. by default 1.0 (no modification), can be raised or lowered.
                if put at 0, all zombies will instantly die because their health is multiplied by 0 and therefore is 0. factors affected are health, speed and damage
        Data:
            Wool: wool is for the costs of different walls, defined wool:0 through wool:15 (white wool to black wool). by default they are all set to 10.

All commands with perms:
    /bvz join <arena>             | bvz.user    | <arena>  is needed, but if not supplied, the player will join, if existent, the default arena named “arena”
    /bvz leave                    | bvz.user    | leaves current game, if in game
    /bvz list                    | bvz.user    | list’s arenas that are in bvz, GREEN is running, RED is stopped (can’t join)

    /bvz admin stop <arena>        | bvz.admin    | stops the game <arena>, it can no longer be joined by players and needs to be stopped for admins to edit it.
    /bvz admin start <arena>    | bvz.admin    | Starts the game <arena>, it can now be joined by players, the arena must be enabled, and it can no longer be edited by admins until stopped.
    /bvz admin enable <arena>    | bvz.admin    | Enables an arena, it must meet requirements (link it) and can now started, if it can’t be enabled, it will be stopped and disabled. Being enabled will also automatically start it when the server boots up.
    /bvz admin disable <arena>    | bvz.admin    | Disables an arena, must be stopped in order to do so, and it can no longer be started. It will also not start up on boot up.
    /bvz admin create <arena>    | bvz.admin    | Creates an arena with default data, will reference data in \plugins…\arenas\<arena>.ser if it exists. <arena> must be an original name, and it is not case-sensitive.
    /bvz admin remove <arena>    | bvz.admin    | Removes the arena <arena> from the server but does not delete the data in \plugins…\arenas\<arena>.ser.
    /bvz admin info <arena>        | bvz.admin    | Gives information about all saved data for an arena, can be configured with /bvz admin set <args>
    /bvz admin set <args>        | bvz.admin    |  bvz.admin    |command used to set data for an arena, description later
    /bvz admin cmds <args>        | bvz.admin    | command used to edit commands in the game’s global whitelist, description later
    /bvz admin set <args>         | bvz.admin    | (can only be performed by in-game player)

    /bvz admin cmds add <cmd>    | bvz.admin    | adds a command to the whitelisted commands
    /bvz admin cmds remove <cmd>| bvz.admin    | remove a command from the whitelisted commands
    /bvz admin cmds list        | bvz.admin    | lists the current command in the whitelisted commands

    /bvz admin set     (link it)    | bvz.admin    | used to set values for an arena

Description of waves:
    Waves are a mixture of zombies with their own spawn patters, they are close to (and may be configurable later):
    Numbers are all modified by sqrt(x) where 'x' is the number of players in game.
        Zombie Type        equation (|| is absolute value)
        basic zombie    |cos(x)*x*.2+1.5|
        fast zombie     |sin(x)*x*.15+.5|
        fat zombie         |cos(x)*x*.15+.5|
        baby zombie        |cos(x)*x*.1+.5|
        invisible zombie|sin(x)*x*.05+.5|
        leather zombie    |cos(x)*x*.15+.5|
        iron zombie        |sin(x)*x*.03+.5|
        diamond zombie    |sin(x)*x*.015+.5|
        chick jockey    |cos(x)*x*.05+.5|
        Giant zombie    every 20 waves, x/20

End of file :)


Comments

Posts Quoted:
Reply
Clear All Quotes