(Idea inspired by the existance of the abandonned MyQuest@WoW-UI.)
CommonersQuest by Kärbär@EU-Proudmoore
This is a still pretty 'raw' first attempt for "hand-made" quests. The new edit window smoothens that out some though.
TO SEE ANYTHING YOU *NEED* AN LDB DISPLAY ADDON. Possible choices are e.g. Ninjapanel, Carousel, StatBlockCore or Fortress (my favorite), but there are probably others as well. (If you installed one of them and still don't see a yellow ? somewhere, make sure CommonersQuest is enabled, it currently defaults to DISABLED.)
ANY TEST REPORTS ARE WELCOME! (Except reporting that the addon is clunky and spams too much currently... I am well aware of that. )
To generate useful test reports, it's necessary to *see* if any error happens and where exactly the error happened. Therefore the interface option Interface->Help->Show Lua errors should be activated to answer the "if" part. It is also advisable to install Bugsack to have an interface to manage the errors and properly answer the "where" part. Should some error show up (and this is currently likely due to the beta stage), the *first* error should be posted.
Sensible suggestions are as well welcome, unless they involve support for cross-faction pvp (duels are not pvp).
- a full cycle has been tested and completed successfully with v30103.4 (which doesn't mean that it won't break from version to version... I'm not thoroughly testing every element after changing something at this stage of development)
- two full cycles have been tested and completed with v30200.02! (one quest with and one quest without a binding item)
- quests can be specified, requested, encrypted, given, taken, decrypted, completed and abandonned
- quests without binding item are now available (removed all restrictions to that, it will be possible for any quest, it will just remain *not recommended* to do, because the trade result might be ambiguous)
- the required trades are in place and working (again... if you find a trade related issue, *please* report it, it's not that easy to test)
- survive requirement
- quest taker: feeding required items to trade window
- a restriction to give a quest not more than x times total
- diminishing money reward (e.g. first person to hand in 5g, second 2g50s, third 1g25s)
-- ( for mass quests ) --
- quest distribution via raid communication channel
- a restriction to allow the completion of a quest not more than x times total on a first come first serve basis
- a restriction to allow a quest to be given without verifying that the reward is available in sufficient quantity
A) Trading (VERY IMPORTANT)
It's most important that you do NOT initiate a trade manually if it is supposed to be relevant to CommonersQuest.
CommonersQuest AUTOMATICALLY initiates trades as required, if you target the quest giver and the quest giver is not already locked in a trade.
Please do NOT pickup binding items manually and drop them on the quest giver/taker. This will create all kinds of weird states.
Just do what you do with normal quests, i.e. use the quest dialogs as appropriate while keeping your target. If a trade window opens, CommonersQuest will try to help you as much as possible to fill in the right items by picking them up from your inventory. Just check your chatlog and put whatever comes to your cursor in your trade window (and nothing else).
CommonersQuest should as well notify you if everything is as expected, by telling you to ACCEPT the trade. Exception: The binding item is already 'protected' by an extra dialog, therefore you can ACCEPT immediately after you agreed to the item.
B) Creation of the quest itself
1. Add a new quest via the right-click menu or the button in the main edit window.
2. Click the texts to edit them.
3. Click the requirements to add/modify/remove. You can edit all but the rewards in this mode. Some requirements need *multiple* steps (middle click!) until they are properly defined (duels: must set faction, riddles: must set solution etc.). Use quest validation to see if something is missing!
When you're done with creating why and what should be done for your quest, you can start with a reward set. Right-click the menu and choose "Edit quest reward sets" => your new quest => "Add a new reward set".
C) reward set & activation
1. Left click on "reward" adds a fixed reward / money, middle click on "reward" adds a "choosable" reward, right click removes whatever you choose to remove.
2. Add the identical item again to get a dialog to enter a stacksize (if it is stackable).
3. When your quest has all basic elements plus a valid rewardset, you can enable the quest. Right-click the menu and choose "Enable quest" => your new quest.
D) Giving the quest
1. Another player with this addon can then target you and look at your quest(s) by clicking left at the quest sign in his LDB panel. (As the data is transferred in-game, the Blizzard limitations for data transfer require some delay.) This LOCKS the quest (requirements & texts).
2. When they want to do your quest, they accept it. This LOCKS the current quest rewardset until step 8.
3. You get a message that someone wants to do quest # and that you have to choose a "binding item".
4. You then choose a grey or white non-stacking not-bound item to give them as a token ("binding item").
5. If they have still targetted you, they automatically initiate a trade dialog, you automatically pickup the token item.
6. Put the token item in the trade window. Accept in the popup dialog, that you are sure.
7. The other player is asked the same and has to accept.
8. If both accepted, the trade can be completed and the quest is bound to this item for this player. The rewardset gets unlocked, so another player can then also get the quest.
The player then does what he has to do. Currently, emotes, kills and survives are valid requirements. ("Survive" is not properly validated yet.)
E) Quest completion and reward exchange
1. The player on your quest targets you and clicks the quest sign in his LDB panel again.
2. Then he can choose a reward (if there was something choosable), and hand-in the quest.
3. This will automatically pickup the binding item on his end to put in the trade window.
4. As soon as he laid it into the trade window, you are expected to put the reward into it as well. For this, the reward is picked up from your inventory if possible, so you just need to drop it on your side. (If your inventory is a mess, CQ doesn't try to pile up stacks of sufficient size!)
5. If the rewards are complete, you get a message and can complete the trade.
6. Most of the information that was stored in the process is dropped at this point, just the player and the quest # he completed are stored (to allow follow-up quests).
(See Changes.txt for older entries.)
- 30103.B also fixed a bug in "Survive" requirements (missing in changelog)
- riddle: new requirement "solve a riddle, textual answer" (implementation not yet complete)
- riddle: answer button available in progress frame (also planned in questlog)
- riddle: unsolved issue of missing forward encryption to check for valid answer without the quest giver unsolved yet
- questlog: questlog is now opened even if empty
- quest editing: enabled quests were accidently immediately locked, fixed
- main edit window: "invalid quest" color wins now over "enabled/disabled quest" color in quest title
- item information is now stored per server/faction instead of globally
- encrypted quests: quests can be encrypted, so one can share to multiple people without anyone getting a head start (the decryption key is shouted)
- encrypted quests: older versions won't be able to receive encrypted quests (and wouldn't know what to do with them anyways...)
- fixed error message for quest giving refused due to not enough items in your inventory to hand out the rewards
- riddle: almost complete to work :) can now be modified with middle-click, and the solution can be set as well...
- due to riddle, slight change in quest information transferral, older versions won't be able to receive quests with riddle requirement
- quest validation is a tiny bit more informative
- fixed some bugs in quest validation
- riddle: requirement can now be completed
- riddle: added lockout time (at least one minute) for the taker to try another answer after a wrong one
- quest without binding item: halfway there, missing some of the complicated part (final trade)
- .TOC bump
- adapted to new dual-pane questlog
- more progress with quests without binding item
- duel: outcome works now also with non-target duels
- trade: more checks to avoid the wrong quest/trade combination
- riddle: multiple solutions can now be prepared by chaining them together with |, the quest taker must get *one* right ("A | B" => A or B is correct)
- not-yet-bound quests: accepting but then declining them now also clears the state correctly
- duel by name: player description is now optional (faction still *must* be selected)
- validation: added some more obvious hints
- riddle: missing reference or short description don't hinder the editing anymore
- encrypted quests: questlog shows them now like you saw them when accepting
- editing texts: you can now insert "\n" in the text, which will translate into a newline at that position
- pending-for-binding quests: questlog now shows them as pending, as intended, not any longer as proposed
- requirements: tooltip should now better cope with long riddle hints
- trade: required items to complete the quest should now as well be queued at the cursor to insert into the trade window
- quests without binding item are now available
- fixed a number of bugs, mostly trade related
- trade should now work again, both for quests with and without binding item
- reorganized the main edit window, should be a *LOT* less laggy now
- switched to regular panel logic for the quest dialog window
- added shift-left click to reopen quest dialog without requerying for available quests
- fixed numerous bugs regarding encryption/decryption
- fixed a bug when deleting reward sets