34 lines
1.0 KiB
Markdown
34 lines
1.0 KiB
Markdown
# Dialogue
|
|
|
|
Formspec API to chat with NPCs
|
|
|
|
```lua
|
|
minetest.register_chatcommand("a", {
|
|
func = function(name, param)
|
|
local d = dialogue.new("Hi! I'm the blacksmith. How can I help you?")
|
|
d:add_option("What do you have for sale?", function(name)
|
|
print("ans: sale")
|
|
end)
|
|
d:add_option("Could you use any help?", function(name)
|
|
print("ans: ask for quests")
|
|
end)
|
|
d:add_option("Nevermind", function(name)
|
|
print("ans: nevermind")
|
|
end)
|
|
d:show(name)
|
|
end
|
|
})
|
|
```
|
|
|
|
## Methods
|
|
|
|
* `dialogue.new(question_text)` - returns dialogue builder (used below as `d` variable)
|
|
* `d:add_option(answer_text, callback_func)` - adds option to dialogue builder
|
|
* `d:show(player_name)` - show to player name using dialogue.ask
|
|
* `callback_func` - called like callback_func(name_of_player_shown_to)
|
|
* `dialogue.ask(name, question, answers)`
|
|
* Shouldn't be used directly unless you need finer control.
|
|
* `name`: player to show formspec to
|
|
* `question`: text, what the NPC said
|
|
* `answer`: array of objects. `{ { text = "answer", callback = function(name) end } }`
|