If you're familar with RPG maps, you may have seen some side quests here and there. Most likely you never completed them, yet they're there for anyone wanting to try that out and extend the lifespan of the map currently played.
I was interested by this stuff for a map i was building for an upcoming event, so i asked, and Maxi031 gave me his script on which most quests are based if i'm not mistaken.
After many hours on all this, the v1.0 of MlSideQuests is there. See download link(s) below.
To clarify what MlSideQuests does: It allows you to add quests inside your maps, or more specifically, to keep track of the players who completed these quests as the rest is managed by the MediaTracker.
Everything you need should be in the .zip archive. Start with the README.md.
It's coded in PHP/MySQL. And how it works is that you put some MediaTracker clips in your map that will call a Manialink which will load a ManiaScript.
Initially the script used MySQLi, i switched to PDO. I also integrated a cache system called Memcached that i use on my own server.
I can't promise anything on the tool evolution, like a better way to create your quests (web admin), etc. Maxi031 was maybe interested to integrate some theming for the window and such. It may or may not happen.
If you want to improve the tool yourself, it's also possible. I'd appreciate you to share it also. You can do so on GitHub.
Enjoy!
Little tip: You can Ctrl+G to see the logs. By default, if you're the author of the map, you'll always be in debug mode. Otherwise nothing is logged for players except for the quest completion request result.
Additional note: It works in ShootMania too.
Download link(s): Releases on GitHub.
Changelog:
- 2019-12-24 - v1.014:
- Now possible to sort the players list who completed a quest also by best/first completion time.
- Added a little ML function to display map name & display cost in the top left corner (can be useful for making of).
- A few minor fixes, to avoid any style propagation (like italic) from the quest description for instance.
- [Minor] Display hours in completion times.
- 2019-12-02 - v1.013 - In ShootMania Obstacle, you can jump to any CP you want. We cancel the quest if any jump is made during it.
- 2019-12-02 - v1.012:
- Minor check on QuestInfo empty
- SM (Obstacle only?) has a bug where a MT Clip X triggered also triggers the MT Clip X-1 previously triggered (if it exists) at the same time. We now prevent any position overwrite for the quests to work.
- Small update of the tokens table structure so Y positions can be negative as they're underground. You may need to do a small SQL migration, see migration file migrating_v1010_to_v1012.sql in _private.
- 2019-11-24 - v1.011:
- Using the moment the player clicked on "start quest button" for instance could lead to the player letting the window open until being close to a token. (Race)StartTime taken instead.
- Refactored the times formatting for the board a bit.
- URLEncoding Username.
- 2019-11-24 - v1.01 - Now register the time a player takes to complete a quest. If the player beats his/her PB, it's also updated.
- 2019-11-19-2019-11-23 - v1.003:
- A little precision on what MlSideQuests does really, added in the README intro.
- Minor fix on the $_SERVER used in a check which has the wrong name to constitute the urls to request.
- The block size of the EditorPlugin was still set on Canyon blocks. It now adapts itself with the environment you're in.
- Added a little script as manialink: "MLSideQuests?DisplayPosition=1" to get the current player position, useful while mapping your quests for the right tokens positions.
- 2019-11-16 - v1.002 - No need to edit the script anymore to set your own URLs for the few requests made by the script. It's automatically handled. Also updated the readme a bit to cover how it works exactly and what's possible.
- 2019-11-15 - v1.001 - Update of the readme and Main.php to make it work in ShootMania. You only need to add "&SM=1" in the manialink calls.
- 2019-11-14 - v1.0 - Release of the v1.0.