stendhal/doc/mkdocs/lua/objects/quests.md
2023-01-09 19:28:42 -08:00

7.4 KiB

[TOC]

Introduction

Adds helper functions for creating & manipulating quests & exposes select public methods of the {@link games.stendhal.server.core.rp.StendhalQuestSystem} class.

quests

Methods


quests:create

quests:create(slotName, name)

  • Creates a new quest.
  • Parameters:
    • slotName: (optional) The string identifier for the quest.
    • name: (optional) The human-readable name that can be shown in travel log.
  • Returns: New {@link games.stendhal.server.core.scripting.lua.LuaQuestHelper.LuaQuest LuaQuest} instance.

quests:load

quests:load(quest)

  • Adds a quest to the world.
  • Parameters:
    • quest: The {@link games.stendhal.server.maps.quests.IQuest IQuest} instance to be loaded.

quests:unload

quests:unload(questName)

  • Removes a quest from the world.
  • Parameters:
    • questName: String name of the quest to be removed.

quests:cache

quests:cache(quest)

  • Caches a quest for loading at server startup.
  • Parameters:
    • quest: {@link games.stendhal.server.maps.quests.IQuest IQuest} instance to be loaded.
  • Aliases:
    • quests:register

quests:isLoaded

quests:isLoaded(quest)

  • Checks if a quest has been loaded.
  • Parameters:
    • quest: {@link games.stendhal.server.maps.quests.IQuest IQuest} instance to check.
  • Returns: true if the instance matches stored quests.

quests:listAll

quests:listAll(player)

  • List all quests the player knows about.
  • Parameters:
    • player: Player to create the report for.
  • Returns: String report.

quests:list

quests:list(player, questName)j

  • Creates a report on a specified quest for a player.
  • Parameters:
    • player: Player to create the report for.
    • questName: Name of quest to be reported.
  • Returns: String report.

quests:listStates

quests:listStates(player)

  • Dumps the internal quest states for the specified player. This is used for the {@link games.stendhal.server.action.admin.InspectAction InspectAction}.
  • Parameters:
    • player: Player to create the report for.
  • Returns: String report.

quests:getQuest

quests:getQuest(questName)

  • Retrieves the {@link games.stendhal.server.maps.quests.IQuest IQuest} object for a named quest.
  • Parameters:
    • questName: Name of quest.
  • Returns: IQuest or null if doesn't exist.

quests:getQuestFromSlot

quests:getQuestFromSlot(questSlot)

  • Retrieves the {@link games.stendhal.server.maps.quests.IQuest IQuest} object for a quest.
  • Parameters:
    • questSlot: Quest identifier string.
  • Returns: IQuest or null if doesn't exist.

quests:getOpen

quests:getOpen(player)

  • Retrieves a list of open quests from a player.
  • Parameters:
    • player: {@link games.stendhal.server.entity.player.Player Player} instance to be checked.
  • Returns: List of string identifiers for open quests.

quests:getCompleted

quests:getCompleted(player)

  • Retrieves a list of completed quests from a player.
  • Parameters:
    • player: {@link games.stendhal.server.entity.player.Player Player} instance to be checked.
  • Returns: List of string identifiers for completed quests.

quests:getIncomplete

quests:getIncomplete(player, region)

  • Retrieves a list of incomplete quests in a specified region.
  • Parameters:
    • player: {@link games.stendhal.server.entity.player.Player Player} instance to be checked.
    • region: Region name/identifier.
  • Returns: List of string identifiers of incomplete quests in region.

quests:getRepeatable

quests:getRepeatable(player)

  • Retrieves a list of quests a player has completed, and can now do again.
  • Parameters:
    • player: {@link games.stendhal.server.entity.player.Player Player} instance to be checked.
  • Returns:

quests:getDescription

quests:getDescription(player, questName)

  • Retrieves the description of a quest.
  • Parameters:
    • player: {@link games.stendhal.server.entity.player.Player Player} instance to be checked.
    • questName: Name of the quest.
  • Returns: {@link java.lang.String String} description.

quests:getLevelWarning

quests:getLevelWarning(player, questName)

  • If the quest is too dangerous, add a warning unless the player has already completed it.
  • Parameters:
    • player: {@link games.stendhal.server.entity.player.Player Player} instance to be checked.
    • questName: Name of the quest.
  • Returns: {@link java.lang.String String}

quests:getProgressDetails

quests:getProgressDetails(player, questeName)

  • Retrieves details on the progress of the quest.
  • Parameters:
    • player: {@link games.stendhal.server.entity.player.Player Player} instance to be checked.
    • questName: Name of the quest.
  • Returns: {@link java.util.List List}<{@link java.lang.String String}>

quests:getNPCNamesForUnstartedInRegionForLevel

quests:getNPCNamesForUnstartedInRegionForLevel(player, region)

  • Retrieves a list of the unique npc names for unstarted quests in a specified region.
  • Parameters:
    • player: {@link games.stendhal.server.entity.player.Player Player} instance to be checked.
    • region: Region to check in.
  • Returns: {@link java.util.List List}<{@link java.lang.String String}>

quests:getDescriptionForUnstartedInRegionFromNPCName

quests:getDescriptionForUnstartedInRegionFromNPCName(player, region, name)

  • Retrieves quest descriptions for unstarted quests in a specified region matching a specific NPC name.
  • Parameters:
    • player: {@link games.stendhal.server.entity.player.Player Player} instance to be checked.
    • region: Region to check in.
    • name: Name of NPC.
  • Returns: {@link java.util.List List}<{@link java.lang.String String}>

Classes

LuaQuest

See: {@link games.stendhal.server.core.scripting.lua.LuaQuestHelper.LuaQuest LuaQuest}

Public Members

LuaQuest.init

LuaQuest.init

  • Called by {@link games.stendhal.server.maps.quests.IQuest#addToWorld}.
  • Type: function

Public Methods

Usage

local loadStep1 = function()
	...
end

local loadStep2 = function()
	...
end

local myQuest = quests:create("my_quest", "My Quest")
myQuest.init = function()
	loadStep1()
	loadStep2()
end

quests:register(myQuest)