[FUN/MECH] Campaign Beta v0.4 [1.4.7-R0.1]

Discussion in 'Archived: Plugin Releases' started by Roadkill909, Jul 14, 2012.

  1. Offline

    Roadkill909

    Campaign
    Version 0.4

    Campaign is a plugin that allows you to construct detailed quests and elaborate dungeons for your players. No programming experience is required as the plugin will turn your text files into memorable adventures. The plugin was designed from the very beginning to be as customizable as possible so that the only thing limiting mission designers would be their imagination.

    Campaign also features Heroes support. Heroes is not required to run, but if you have it installed and a mission allows multiple players to join, the players will automatically party up. More Heroes features are planned like experience rewards and class and level limits.

    Features
    • Customizable and Creatable missions.
    • Per mission settings: Control inventories, lives, and player counts with per mission settings.
    • Phases: Missions can have multiple phases to split things up. Each phase can have multiple objectives
    • Goals: Players on a mission can be given goals to complete. There are many types of goals that can have your players kill mobs, fetch items, press buttons, kill each other, and even protect whole villages.
    • Tasks: Procedures you can specify to run during parts of a phase like teleport players, reward them with the price system, or start other phases.
    • Lobbies: Missions always have a lobby that players join and ready up in before starting. Optionally lobbies can have a location that players are teleported to.
    • Requestable assets: Procedures that activate themselves while a phase is using it and deactivate themselves when not being used. Examples of assets are mob spawners, redstone devices, and map restorers.
    • Kits and Equipment: Groups of items your players can choose in a lobby. You can even initiate tasks that resupply players with items specifically for their kit.
    Documentation
    This plugin has a wiki.

    Beta To-Do list and Planned Features
    As always I release my plugins as soon as they are usable to collect feedback, suggestions, and find bugs. This plugin is usable, but is not fully fleshed out. Here are some of the major things planned and the versions they will come in.
    • Synchronous Missions (Quests) (0.1)
    • More Objectives (0.2)
    • Assets (0.3)
    • Equipment and kits (Give players armor, tools, items) (0.4)
    • Quest cooldowns and user requests (0.5)
    • Modified Mob types and waves(0.6+)
    • More tasks, goals, and assets (0.7)+
    Changelog

    Version 0.3 ChangeLog (open)

    Not currently compatible with LegendaryItems or Imprison

    WARNING If you have declared locations or goals in the assets folder, you will need to move them to .yml files into the "locations" and "goals" folder.

    Additions:
    • You can now specify the price required to join a mission
    • New Command "Campaign" or "ca" for short. Gives plugin info and command help. The reload, debug, and mark commands were moved here.
    • New Mission subcommand: "/mission info <mission name>" - gets configurable info on that mission and the join price
    • You can disable information gathering on missions through the info command
    • You can configure what the info command says for each mission
    • When all players in a lobby are ready, they are given three seconds to unready before the mission starts
    New Tasks that do the following
    • Spawns mobs at a location
    • Toggles a redstone lever
    • Ensures a redstone lever is set to either on or off (Your choice)
    • Sends a button-like signal from a lever
    • Changes a block at a location
    • Adds a price amount to a mission reward pool. The reward pool is split by surviving players if the mission is won.
    • Immediately gives the players a reward
    • Performs tasks after a specified amount of time
    New Goals that require you
    • To protect a village. If a certain amount of villagers die within an area, the goal is failed. Can also restore doors broken by zombies
    • Destroy spawned ender crystals
    New "requestable" assets that are activated and deactivated by phases and can perform the following functions:
    • Redstone Clock - alternates between on and off.
    • Redstone Pulsar - repeatedly sends pulses.
    • Redstone Source - Turns on when in use, off when not. Accomplishes the same function as two SetLever Tasks but is easier to use.
    • A vanilla mob spawner THAT will appear only when activated. Follows vanilla spawner code.
    • An invisible mob spawner that is much more configurable than the vanilla mob spawner.
    • Specified tasks will run periodically while a phase is running
    • will restore doors broken by zombies in an area.
    • will restore destroyed endercrystals in an area.
    Changes:
    • KILLSPAWNEDMOBS attribute "location asset" changed to "location" (defining the location works like anywhere else)
    • Location containers will need to be moved to a locations folder
    • Goal assets will need to be moved to a goals folder
    • ADDREWARD paramater "amount" replaced with "reward". 'amount' still works for now, it is recommended you change this.
    • the reload, debug, and mark subcommands have been moved to the new campaign command /campaign
    • the tasks STARTPHASE,CALLPHASE, and CALLRUNNINGPHASE and PROMPTGROUP now accept lists of strings to allow easier use.
    Fixes
    • Fixed /ca mark saving things in a "project delve" folder (left over from alpha).
    • Fixed SETRESPAWN
    • Fixed the message "You have been set to ready" showing up after the first mission prompt
    Removed
    • Reloading individual missions. This was removed due to internal complexity, being difficult to maintain, and currently shortcomings.
    Major Internal Library Changes
    • Vault is now optional for users who don't have an economy or permission plugin - If vault is not present
    • A permissions plugin is now optional.
    • If vault or a permissions plugin is not present it uses superperms and OP to check permissions.
    • An economy plugin is now optional.
    • If vault or an economy plugin is not present. It disables the money price option, meaning you cannot charge or give economy currency to players.
    • If heroes is not present, the Heroes experience rewards will not register as a valid price
    • Major internal improvements to the price system
    • Developers can create their own price. There will be a guide soon.

    Version 0.2 ChangeLog (open)

    Additions
    • New Phase setting "briefing". If set to true it tells players details about objectives. false by default
    • Some goals can now be failed triggering the onFailure tasks.
    • Any objective that asks for an "amount" can be set to "RANDOM". You can specify a maximum and/or minumum amount that the plugin will respect when it generates a random number. It will default to 1 to 10.
    New Assets
    • GOAL - you can declare a goal object. This can be used by different phases or missions.
    • RANDOMGOAL - you can declare several goals and it will choose randomly from them when the plugin is loaded.
    New Goal/Objective Types
    • ASSET - Specify the "asset name" of either a GOAL or RANDOMGOAL asset. If you pick a RANDOMGOAL asset, it will randomly choose a goal on start up.
    • RANDOM- Specify the "asset name" of a RANDOMGOAL asset, and it will pick randomly from that assets list of goals each time the mission is run.
    • BREAKBLOCKS - players must destroy a certain amount of blocks
    • PLACEBLOCKS - players must place a certain amount of blocks
    • FETCHITEM - Players must right-click the block at the specified location and deposit a specified amount of blocks
    • PLAYERSURVIVING - Recommended Multiplayer only. If the amount of players falls below this amount, it will result in failure.
    • PROTECTRANDOMPLAYER - Recommended Multiplayer only. Letting the randomly chosen player die once results in failure.
    • KILLSPAWNEDMOBS - Players must kill an amount of spawned mobs of a specified type to continue
    • ELIMINATEPLAYERS - Multiplayer only. Players in the group must kill each other until the amount of surviving players is less than or equal to the specified amount.
    • TRAITOR - Multiplayer only. A random player in the group is chosen as the "Traitor", and the player is notified of this. The rest of the group is told that they must kill the traitor to continue, but they are not told who the traitor is.
    • TRIMPLAYERS - Multiplayer only. Players in the group must kill each other until the amount of surviving players meets the specified amount. Killing too many will result in failure.
    • HEALTHPOOL - Players cannot lose more than a certain amount of health. Internally is practically two seperate goals. If heroes is present, it will detect skill damage and modified weapon damage.
    • LIFEPOOL - Players cannot lose more than a certain amount of lives.
    • MANAPOOL - Heroes only. Players cannot lose more than a certain amount of mana.
    New Command Tasks
    • Command task requires a "command" string. If you put %player% in the command string, it will substitute in the player's name
    • CONSOLECOMMAND - performs a command from the console. Performs the command for each player if you add %player%.
    • PLAYERCOMMAND - performs a command as if the player entered it. Does this for each player.
    Fixes
    • All players in a multiplayer lobby have to be ready to start
    • RELEASEGROUP releases everyone instead of one person
    • Quitting a mission no longer multiplies rewards
    • Missions can no longer end several times internally.
    • Clear mission inventory option removes armor
    • When players die in missions it now says "died during mission:" not "died during test". This was leftover from alpha testing
    Changes
    • All players running out of lives no longer triggers onFailure tasks.
    • The help screen no longer says "Project Delve." This was leftover from alpha testing.


    Comments
    Please do not post bug reports on this page. Please make a ticket instead. Feel free to post questions or suggestions here or on the forums.
     
  2. Offline

    LiLChris

    Looks interesting will give it a try. :)
     
  3. Offline

    ShinyDialga

    Looks awesome, might try this out. :)
     
  4. Offline

    Roadkill909

    Updated OP for version 0.2. Enjoy the fourteen new objective types, two new asset types, and two new task types.
     
  5. Offline

    md_5

    Approved.
     
  6. Offline

    Roadkill909

    I've uploaded version 0.3 and updated the OP. The focus of this update was to add "requestable assets." You can read more about them on the wiki, which should be updated, let me know if anything is missing or unclear. Here's an excerpt:

    "Requestable Assets are procedures that activate themselves while a phase is using it and deactivate themselves when not being used. Examples of assets are mob spawners, redstone devices, and map restorers. As you can expect, these are essential for dungeons."

    After I update my other plugins, I'll start be working on 1.4 which will implement "Kits" and "Supplies" which I have lots of cool ideas for. I'll also try to implement some sort of NPC support in this version as well.
    Enjoy your new village sieges, redstone contraptions, and enderdragon battles!
     
  7. Offline

    devoid v3

    Any chance on getting a short video tutorial? My friend and I are having some difficulty getting it to work right, I am sure its stupidity on our part but we probably missed something somewhere.

    Thanks
     
  8. Offline

    Roadkill909

    I don't have any recording software and FRAPS's 30 second limit drives me nuts. I plan to buy FRAPS and make some videos when I have the money.

    Let me know if there's anything not covered by the wiki, in this thread. I'm also available for support questions
     
  9. Offline

    devoid v3

    This is the issue he is running into with it



    Note: Our current Minecraft server is on an offsite server.

    That aside, we are attempting to use Campaign on our server but there are no walkthroughs
    that explain which folder, if there are none auto-created when unzipped and installed, the
    YML file goes into. Also, a written walkthrough might be nice if at all possible (especially
    those of us who enjoy using these types of plugins without knowing too much of the Java programming
    language.

    The current YML, as follows, is written for a quest:

    starting lives: 0
    persistent inventory: false
    empty inventory to join: false
    keep mission inventory: true
    clear drops: false
    location: trial_release_location
    lobby:
    minimum players: 1
    maximum players: 1
    location: trial_lobby
    phases:
    main:
    goals:
    PushButton:
    type: ACTIVATE
    location: main_trial_goal
    onStart:
    TeleportToStart:
    type: TELEPORTGROUP
    location: trial_spawn
    WelcomePrompt:
    type: PROMPTGROUP
    prompt: Welcome to the Trial mission.
    onSuccess:
    ReleasePlayers:
    type: RELEASEGROUP
    SuccessPrompt:
    type: PROMPTGROUP
    prompt: Congratulations, you completed the Trial mission.

    The locations for:
    trial_release_location
    trial_lobby
    main_trial_goal (a lever to switch on a lamp)
    trial_spawn

    ...each of these locations have been verified by the mod and already placed into the locations file that was
    auto-created upon install of the mod and after the restart of the server.

    I named the quest: trial
    and it is currently a YML file located in: Minecraft --> Plugins --> Campaign --> Missions

    Did I miss anything/ leave anything out that is important?
    Did I put it in the wrong folder? Are the quests supposed to go into the general Capaign folder instead?

    It is currently telling me that the quest "trial" doesn't exist.
    Is trial too general of a name? Is is not reading it porperly due to this?
     
  10. Offline

    Roadkill909

    Thanks for pointing out the lack of documentation on the folders. Short summary, there are currently four folders, make sure your locations .yml files are in the locations folder, and your missions .yml files in the missions folder. You can also define a location with wxyz instead of using the locations folder. Folder names are lowercase. The name trial is fine, any string allowed by your file system will work.

    I have a walkthrough, don't know if you've read it, which I just updated. If you want, let me know what I can improve upon in that walkthrough.

    At a glance, I don't see anything wrong with your mission (pretty sure it's the tutorial mission that's included). It is hard to read on the forums, so remember to use pastie, pastebin, or use the forums to mark it as code.
     
  11. Offline

    Fauvic

    I cant seem to get the activation to work.. I used your tutorial example and just changed the locations to reflect my mission. http://pastebin.com/szK7fpT2
    Do you have to use a redstone lamp or glowstone block for the "type: ACTIVATE"? Also, the location needs to be the lamp/block right? Or the switch? Is this used in combination with craftbookcircuits that allows you to switch the glowstone block on and off with redstone? The hunt and fetch missions work fine and I am able to join this mission but just not able to activate the switch as to complete the mission. Thanx for any help!
     
  12. Offline

    Roadkill909

    Fauvic Currently the code requires the block to be a glowstone lamp (block 123/124). When the lamp is changed from unlit to lit, the code is triggered saying that the goal has been completed.
     
  13. Offline

    Fauvic

  14. Offline

    Roadkill909

    Everything seems right. Here's some troubleshooting problems.
    • Do you have Vault?
    • Is your economy plugin supported by Vault?
    • With verbose-logging on, when the Library boots up does it say it hooked into an economy plugin? You can find the verbose-logging option in the LegendaryLibrary config file.
    • Try "reward" instead of "amount". They both should work, or I missed a bug
     
  15. Offline

    Fauvic


    I have vault and I use BOSEconomy.
    "2012-09-24 22:37:59 [INFO] [Vault][Economy] BOSEconomy hooked."​

    When Library boots up it does hook into the economy plugin.
    "2012-09-24 22:38:00 [INFO] [LegendaryLibrary] LegendaryLibrary hooked into BOSEconomy via Vault!"​

    Tried "reward" instead of "amount" and still didn't work.
    Getting this error: http://pastebin.com/QQxzkUX4
    Here is my mission yml: http://pastebin.com/8SbckzX0

    Thank you for your time and help I really appreciate it!
     
  16. Offline

    Roadkill909

    It's been a long week, but I haven't forgotten about you. Found the issue. The plugin makes it seem like it's a config issue but it is actually a bug with the way prices with amounts are parsed.

    Surprised that this slipped through testing and that nobody reported it in a month. The money price must not be popular. Will be fixed in next release, which may be a while as I got the mid semester crunch coming up. Thank you for your patience.
     
  17. Offline

    Fauvic

    Thanx alot for the update. Good luck!
     
  18. Offline

    vilemaxim

    I'm having a tough time getting this plugin to work. I feel like I'm just missing something simple. Can any post a sample PROTECTVILLAGE mission and goal ymls. I've been fighting with it for hours trying different configuration.
     
  19. Offline

    Roadkill909

    vilemaxim Hopefully this helps, it is taken directly from one of my test missions:
    Code:
    protect:
        type: PROTECTVILLAGE
        maximum losses: 20
        location: center
        radius: 80
        door asset: true
    
     
  20. Offline

    vilemaxim

    Roadkill909 Thanks! I'm guessing that is in your goal file. Is that the only thing in your goals for PROTECTVILLAGE? What does your mission file look like?

    I still get an error, so I'm thinking I have something wrong on my other files. When my server launches and gets to the campaign plugin I get...
    http://pastebin.com/5vavdDH0

    Thanks again for your help.
     
  21. Offline

    Roadkill909

    You can declare goals two different ways: In a YAML file inside the goals folder, or you can define it in your mission. The point of the goals folder is so that you can reuse the exact same goal across multiple phases and missions, but the goals folder is entirely optional.

    These sample "goals" sections would work in your main phase:

    Goal folder example
    Code:
    goals:
        access_village_defense:
            type: ASSET
            asset name: village_defense
    
    This is the way you're trying to do it, by declaring a goal in the goals folder. If there is a properly formatted goal in your goals folder that has the name village_defense (yours is properly formatted), this will work in your mission

    In-Mission example
    Or you can do it this way, but you can't reuse it:
    Code:
    goals:
      village_defense:
            type: PROTECTVILLAGE
            maximum losses: 20
            location: save_village
            radius: 80
            door asset: true
    
     
  22. Offline

    vilemaxim

    ohhhh. I'm starting to get it. I just tested it and I have no errors now. I'm going to playtest the goal now.
    Thanks Roadkill909

    vile
     
  23. Offline

    gamma26

    This looks cool! Imma use it for my server :D lets see how it works...
     
    Roadkill909 likes this.
  24. Offline

    Roadkill909

    [​IMG]
    Quick Update News and Sneak peak

    To lessen the wait time, I've decided to postpone feature releases and split them up over several different versions. The rest of Version 0.4 is quickly nearing completion, and here's a quick sneak peak. Details of the version split:
    • Equipment and kits will be in the next version along with a handful of tasks that go with them. There are also some new options to control player inventory and Heroes users can turn off auto-party. There are also was a good bit of under-the-hood improvements.
    • Citizens support and LegendaryItems support are postponed because they require LegendaryItems to be updated. These features will be relatively quick to implement as it is majorly depends on partially finished external work. It will be released in the earliest possible build.
    • Quest cooldowns have been postponed until the next available build (0.5)
    • I've added a new beta goal: "Modified Mob types". The goal of that update is to replace the "mob type" field in certain tasks, goals, and assets with a feature that provides more control over aspects of the spawned mobs.
     
    popingthepig and Fauvic like this.
  25. Offline

    popingthepig

    Oh my god... Roadkill909 You are amazing. there are soo many posiblites you can do with this.. thank you and keep it up. i might do a video spotlight on this. i might be a small youtuber but i will do it because of its awsomneess
     
  26. Offline

    Roadkill909

    Forgot to update this page. Version 0.4 is out! Enjoy!
     

Share This Page