Discussion in 'WIP and Development Status' started by Bilkokuya, Aug 26, 2011.
Please keep it as lightweight as possible. xLevel is very restrictive when customizing the features.
sound very good so far.
Do you have any plans on implementing an API which enables us to create custom rewards aka EXP for our plugin or have events that trigger when someone turned in a quest?
How far is this away from a first release?
I'm really wanting to get this out on our server in time for the 1.8 restart.
Wow this is amazing, you are now my new most favorite plugin dev.
How goes the progress?
Hopefully it's out in a few days !
First off, I just want to say thanks to you all for the continuing support; you've really been a great boost in helping me work through this.
To answer the questions of the last few days:
API - I have decided the best way to implement an API will be to create event listeners for rewards. This way, you would be able to implement a reward that does absolutely anything in a similar way to how we currently listen for Bukkit's player listeners etc. Because I've never created events before, I can't guarantee how long that will take after release to be functional.
Lightweight - Making this efficient for your server is something I'm conscious of, and I definitely don't want to overload this with unrelated features (especially those that would suit a different plugin). However, some of what this does, requires a certain amount of work to do it - there's a limit to how lightweight this can really become without losing functionality. I'll bear the concern in mind though, especially when updating.
Progress - Probably the one thing you're all wanting to hear about. As of last night - it's testably ready. I'm now quickly getting it sorted onto Bukkit Dev; making a quick example quest and making sure there's nothing too obvious that's not working. I should have the test version ready for download either tonight, or if not - tomorrow. Currently it works with CB1060 (MC1.7) and CB1118(MC1.8) although the latest CB is obviously not a recommended build.
So, as I say - I'm quickly throwing some basic documentation together to let everybody see how to make a quick quest file. The example will NOT be the best quest you've seen and I can't guarantee it'll use all the features of the plugin either. I do plan on making and releasing some proper test examples afterwards though, and then work on some real documentation (so you'll not be stuck without knowing how to do something).
Thanks again everybody. I'm hoping you enjoy using the test version either today or tomorrow and hopefully there aren't too many terrible bugs in it.
On the subject of being lightweight, I don't think it's something you should overly concern yourself with. While it's true that it's good practice to be efficient, etc. and if you're not conscious of efficiency you might have to do a refactor down the line, I think it's not such a problem if LDQuest turns out to be a little memory-hogging. It is, after all, quite a heavy-duty quest plugin.
Awesome ! Keep up the good work !
Just cant wait for test release
I CANT WAIT TO TEST THIS!
Don't use all caps.
sorry force of excitement 0_0
i need to finish my plugin so i can release it....
still wondering if this is coming out today like he said
Yes, I'm just having some trouble with Bukkit Dev and getting documentation together for this.
Here's the working plugin file - works with CB1060 and possibly some of the 1.8 builds.
<Edit by Moderator: Redacted mediafire url>
Here's a very quick test file. Just put a sign, or Citizens NPC with the name "Dave" for it to work:
<Edit by Moderator: Redacted mediafire url>
I hope you forgive me for having absolutely no decent documentation to help explain the files - it's what I'm trying to get done right now (as well as ironing out a bug in the repetition limits). The test-file I've uploaded for you to try; is the single worst quest you will ever see - do not ever make something as terrible as that. As I say, I'll put up some exemplar files later with explanation of what can go where.
[A note on repetition: You'll notice a value called Limit: in the quest. This currently has issues I need to explain when the value is set higher than 1 (if you don't actually put it in the file, it assumes the value is 1, so there are no issues with that). It's not a game-killer, but it's something you'll need to know - so don't use it untill you understand it later]
Anyway, I hope you enjoy testing it and messing around with it. I'll be posting details about how to use it properly in a little bit tonight. I really apologise for how messy this release seems - it's just a lot of things have happened/gone wrong all at once.
LDQuest.jar: <Edit by Moderator: Redacted mediafire url>
Exemplar: <Edit by Moderator: Redacted mediafire url>
CompactExemplar: <Edit by Moderator: Redacted mediafire url>
Alright, I've done some quick fixes for a few things and finished writing an exemplar file.
The exemplar shows you how to make a quest file and what to put where. It doesn't show you how to make a good quest, it shows you how to make something that works. Branching etc isn't shown, you can do that using the knowledge you learn in the file.
The compact exemplar file here is a working one that looks more like what your quest files will look like. It has no comments, (the function is identical to the main exemplar, but it's what I'd recommend you actually run to test things).
The exemplar file requires an NPC called Dave (or a sign with the first line: #quest# and second line Dave).
Put the exemplar file in /plugins/LDQuest/Quests/<put it here>.
These directories are created when you first run the plugin.
You will need to make sure you have permissions (using Bukkit standard Permissions):
* LD.Quest.*: (all functions)
* LD.Quest.Quest: (Allows you to use the quests/right-click things [EVERYBODY])
* LD.Quest.Create: (Allows you to create quest signs [ADMIN])
* LD.Quest.Destroy: (Allows you to destroy quest signs [ADMIN])
* LD.Quest.Admin: (Functionality removed but adding back in soon [ADMIN])
To make a quest-sign, make a new sign (Line1: #quest# , Line2: Name)
To talk to an NPC or sign, right-click it.
To reply to an NPC or sign, type /LDreply <number> where the number is the option number.
That's all there is to it. I hope you enjoy it.
EDIT by Moderator: merged posts, please use the edit button instead of double posting.
For those of you who might be a little bit confounded (as I was) about how the NPC part of it works, you will need Citizens version 1.0.9d - after giving yourself permissions, use "/npc create Dave", and sometime after that LDQuest will kick in and right-clicking Dave will do everything the video leads you to expect it will.
I couldn't find any bug/problems, and the server showed no signs of memory leaks or performance issues. Near-vanilla RB 1060, Beta 1.7.3. NPC section functioned flawlessly.
On a not-quite-related subject, global quests would be amazing. If you could branch global quests, it would be even better. Say, give users a moral/ethical/difficult decision, and change the results based on how many people did what.
This plug-in looks amazing! Sad part is.. It's not compatible with my servers needs.
Our first quest was a chain of quest and as a reward for completing the chain, you get a rank up in Permissions/SuperPerms/Group Manager. But as I was browsing the exemplar, I saw that only money and items were rewards. I was hoping you'd read this and hopefully integrate a rank up reward system and what about HeroesCraft? Maybe an exp system for that? Just suggestions.
Also, the exemplar is a bit confusing for someone like me. Could you perhaps upload a tutorial video whenever you aren't busy? I reallyy want to intergrate this amazing quest system.. I just can't.
Feel free to use something more stable and documented out there.
I would.. Only this questing system is so intricate and amazing!
Thanks for testing it, I'll be using what you've all said and say in future, to improve this and work on the documentation. Here's some quick responses to what's been mentioned above:
BukkitDev: We are now on BukkitDev - I'll be using that from now on to release files and information. There is a forum on that to discuss this plugin beyond suggestions and bugs.
New Rewards: Integrating new rewards is something that's planned to be released quickly - it's not a particularly difficult task in many cases (so long as the plugin required has a decent API). I just felt that if I try to cover everything, I could be here for half a year without a release - it's better to just get a stable base out and work from that. I'd hope to have the following added quite soon (Teleport, Permission/Group, WorldGuard Regions).
Confusing Documentation: I completely understand, and I'm more than happy to make videos and proper documentation. Writing that exemplar took around 2 hours last night - which is a fair amount of time; I'm sure you can understand why it's not all written before release. Hopefully I'll have some proper docs written within the week to detail not only how to use it - but some tips and tricks you guys have come up with. One of the things with this is that there are many ways to do a single task.
Global Quests: It's a feature I'd considered originally but not put much thought into. I'll get working on it within the next week or two. My take on what you mean, is a system where instead of checking has PlayerX completed the quest - it can check if AnyPlayer has completed the quest? If so, I can't see any reason not to put it in - definitely a good idea.
A Note on Limit: And something I just felt I should put out there, since I forgot to mention it last night:
The Limit system for the Quest: , is not working properly. This is an issue in it's design and not a small programming bug (I know what's causing it, I'm currently working out the best solution for it).
Currently, you should be able to set a Limit: , so long as there are no "branches" in the quest, or parts of the quest that you aren't guaranteed to complete. For example:
If your quest requires you to go 1->2->3->4->Complete , there is no issue at all.
If your quest allows you to go 1->2->3 or 4-> Complete , you'll cause an issue.
The issue caused is that you'll complete the quest - and some of the optional parts will be open to you from the start, as if you'd already done part of the quest.
As I say, if you have an 100% linear quest, there is no problem known of - it should function as you expect.
A Note on "Jobs": Something we originally wanted for our server, was a job system. Where instead of just being paid for collecting materials, you could be paid for doing a job - such as working in a blacksmith. When making this quest system, I realised you could do just that.
To make a quick black-smith system:
Make a quest with a very high limit (100,000 or so).
Make the first marker give you a reward of a piece of coal and a piece of iron.
Add a furnace in your "blacksmith" area.
Make a second marker that has an objective, asking for an iron ingot.
Make the second marker have a small reward of money (the "pay" per time completed)
Make the second marker end the quest.
This will mean that players need to collect the iron ore + coal, smelt it and then get the "pay" by handing it in to the last marker. because of the high limit, they can repeat the quest.
Of course, you could add a lot of other tasks in a row, instead of just collecting and smelting iron ore. But it's an example of how this can be used for non-standard "quests".
Works really great so far!
You've done an amazing job there =)
One request though: Maybe with 1.8 you could add a somewhat EXP Reward System so if a player completes a Quests the NPC drops EXP Balls for that player.
This way other plugins can hook into the standard Bukkit API to handle the EXP to their liking.
That would be less work for you and also a lot more flexibility for other plugin authors that do some kind of RPG plugin.
Thanks first off - I'm glad it's working well.
For adding the EXP in 1.8 - definitely a great idea. However, I will be waiting a couple of days before doing that (for a recommended 1.8) before implementing it - so that I don't end up with a half-broken system.
Just as a progress update, I've added the ability to give somebody an individual permission. However, adding them to a permission group is proving to be more of a problem.
[Join us on BukkitDev where you can add suggestions in the new "Ticket" system - making sure your idea never gets missed: http://dev.bukkit.org/server-mods/ldquest/].
Awesome work! Tell me if you ever need help with anything!
I'm thinking that rather than have a "limit", thing, wouldn't it be more logical to have one conversation node close a quest?
On a simpler note, how far can you check things? Can I check stages that a player has completed outside of the current quest? Can I cause long-term consequences for a player based on what they have done in the past?
very exciting to see a release of this. congrats on getting it out. i just ran a test and everything seemed to work fine...hopefully soon ill get some time to try creating a quest or two with a bit of depth to them...
Whats the ETA on interface for makeing quests?
Learn how to modify configs.
The limit thing is only there for allowing you to repeat the quest. The idea being that you'd set a number of times that a player can repeat that same quest. It's more of a check to see if you're allowed to do it again - than a check to see if it should be completed.
To make one node close the quest, you just add the End: true , to it and whenever that marker becomes complete - it completes the quest. Normally that would mean you'd never be able to go back and do the quest again (generally it doesn't make sense for you to repeat it). But the limit value allows you, in some circumstances, to set it that once complete - they could go back to the start and repeat it until they have reached the limit of times.
In terms of scope of how far back - the plugin remembers all the actions you've taken. It could be that you force people to make a tough choice at the very start of a quest, then twenty quests later, you check what decision was made (By using the UUID and UID for that marker).
I hope that all made sense.
The ETA on an interface; I'm not sure to be honest. There are parts of the system itself that need some re-coding and I do also have a fair bit of term work. I wouldn't say it's cancelled, but the main reason for needing it was because the plugin used to be MySQL - having it in a human-readable/writable flatfile means that's not such an issue.
Ah, all is clear now.
Excellent. That's precisely the idea I had in mind!
so my server has no plugins because of 1.8 but when we get economy back quests and eci\onomy willl work together and people can do quests?
Unless something breaks within LDQuest when the new 1.8 build comes out - everything should allow you to link your economy plugin as a reward.
As a note, if anybody has any special rewards they need in - that have an existing API where I can easily add these rewards; feel free to let me know. This includes various economy plugins etc.
(I do still plan on releasing an API for rewards, but it would obviously be beneficial to also have built-in support for the more common ones).
Separate names with a comma.