1
0
mirror of https://github.com/MinetestForFun/quests.git synced 2024-11-10 20:40:28 +01:00
Quest framework for Minetest
Go to file
DomtronVox 60b1ce2229 Updated the translation bits of the code so they use the
now builtin minetest functions. Not able to add any more translations myself though.
2020-05-04 17:54:39 -04:00
locale Updated the translation bits of the code so they use the 2020-05-04 17:54:39 -04:00
mod_integrations A bit of clean up. Moved mod integration lua files to their own folder with a single file designed to check if supported mods are present and load the appropriate local file to setup for it. 2020-05-03 19:15:16 -04:00
sounds Add central messages and sounds for quest actions 2015-07-15 14:33:43 +02:00
textures Icons, tasks 2015-07-24 22:29:05 +02:00
core.lua Updated the translation bits of the code so they use the 2020-05-04 17:54:39 -04:00
formspecs.lua Updated the translation bits of the code so they use the 2020-05-04 17:54:39 -04:00
hud.lua Updated the translation bits of the code so they use the 2020-05-04 17:54:39 -04:00
init.lua A bit of clean up. Moved mod integration lua files to their own folder with a single file designed to check if supported mods are present and load the appropriate local file to setup for it. 2020-05-03 19:15:16 -04:00
mod.conf Remove one deprecated function 2019-09-24 20:49:21 -05:00
README Replace statbar with scaled image to remove deprecation warning 2015-07-16 21:15:18 +02:00

quests 1.1

quests is a simple quest framework for minetest that lets you define your own quests and handels the representation.

Dependencies:
intllib (optional)
unified_inventory or inventory_plus (optional)
central_message (optional)

License: WTFPL
Sounds: CC-BY
Textures: CC-BY

-------------------------------------------------------------------------------

You can see a full list of your active quests with the chatcommand /quests

API:
quests.register_quest(questname,quest)
-- registers a quest for later use
--
-- questname is the name of the quest to identify it later
--      it should follow the naming conventions: "modname:questname"
-- quest is a table in the following format
--      {
--        title,                -- is shown to the player and should contain usefull information about the quest.
--        description,          -- a small description of the mod.
--        max,                  -- is the desired maximum. If max is 1, no maximum is displayed. defaults to 1
--        autoaccept,           -- is true or false, wether the result of the quest should be dealt by this mode or the registering mod.
--        callback              -- when autoaccept is true, at the end of the quest, it gets removed and callback is called.
--                              -- function(playername, questname, metadata)
--      }
--
-- returns true, when the quest was successfully registered
-- returns falls, when there was already such a quest

quests.start_quest(playername, questname)
-- starts a quest for a specified player
--
-- playername - the name of the player
-- questname  - the name of the quest, which was registered with quests.register_quest
-- metadata   - optional additional data
--
-- returns false on failure
-- returns true if the quest was started

quests.update_quest(playername, questname, value)
-- when something happens that has effect on a quest, a mod should call this method
-- playername is the name of the player
-- questname is the quest which gets updated
-- the quest gets updated by value
-- this method calls a previously specified callback if autoaccept is true
-- returns true if the quest is finished
-- returns false if there is no such quest or the quest continues

quests.accept_quest(playername, questname)
-- When the mod handels the end of quests himself, e.g. you have to talk to somebody to finish the quest,
-- you have to call this method to end a quest
-- returns true, when the quest is completed
-- returns false, when the quest is still ongoing

quests.abort_quest(playername, questname)
-- call this method, when you want to end a quest even when it was not finished
-- example: the player failed
--
-- returns false if the quest was not aborted
-- returns true when the quest was aborted

quests.show_hud(playername)
-- shows the hud to player playername

quests.hide_hud(playername)
-- hides the hud for player playername

quests.show_formspec(playername)
-- shows the player playername his/her questlog

quests.get_metadata(playername, questname)
-- get metadata of the quest if the quest exists, else return nil

quests.set_metadata(playername, questname, metadata)
-- set metadata of the quest