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
2020-05-04 21:44:55 -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 Fixed the quest info textarea element so it is readonly when displaying a quest's description. Also removed the word wrap function because it was not used that I could tell and minetest provides one in the API so it isn't needed. 2020-05-04 21:44:55 -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