yl_speak_up/README.md

90 lines
3.4 KiB
Markdown

This mod allows to set RPG-like texts for NPC where the NPC "says" something
to the player and the player can reply with a selection of given replies -
which most of the time lead to the next dialog.
Terminology
===========
dialog A text said by the NPC, with diffrent replys the player can
select from.
option A reply/answer to the text the NPC said.
precondition All listed preconditions have to be true in order for the NPC
to offer this option.
effect Further effects (like setting variables, handing out items)
selecting a particular option has.
How to configure NPC and add dialogs
====================================
There are two ways:
1. Just talk to them and click on the "I am your owner"-Dialog. This opens up
a menu where you can edit most things.
2. Use /giveme to get the staff you want, wield the staff and point it at the
NPC you want to change. This is much more powerful. Lua code can be
entered and later executed by the NPC.
The privs
=========
npc_talk_owner will allow players to edit their *own* NPC by talking to them.
Does *not* include usage of the staffs!
Ought to be given to all players.
npc_talk_master allows players to edit *any* NPC supported by this mod.
Does *not* include usage of the staffs!
Ought to be given to selected trusted players who want to
help others with their NPC configuration and/or support
NPCs owned by the server.
npc_master allows players to edit *any* NPC supported by this mod.
*Does* include usage of the staffs.
This is very powerful and allows to enter and execute lua
code without restrictions.
Only grant this to staff members you really trust.
Mute
====
When you edit an NPC, you might want to stop it from talking to other players
and spoiling unifinished texts/options to the player.
For this case, the NPC can be muted. This works either with the staff or by
selecting the appropriate option in the talk menu after having started edit
mode by claiming to be the NPC's owner.
Skin
====
The skin and what the NPC wields can be changed via the "Edit Skin" button.
Simple variables
================
If you want to let your NPC greet the player by name, you can do so. Some
variables/texts are replaced appropriately in the text the NPC says and
the player can reply:
$MY_NAME$ will be replaced by the name of the NPC
$NPC_NAME$ same as above
$OWNER_NAME$ will be replaced by the name of the owner of the NPC
$PLAYER_NAME$ will be replaced by the name of the player talking to the NPC
$GOOD_DAY$ will be replaced by "Good morning", "Good afternoon" or
"Good evening" - depending on the ingame time of day
$good_DAY$ same as above, but starts with a lowercase letter (i.e.
"good morning")
Note: If you want to extend this, you can do the following in your own mod:
local old_function = yl_speak_up.replace_vars_in_text
yl_speak_up.replace_vars_in_text = function(text, dialog, pname)
-- do not forget to call the old function
text = old_function(text, dialog, pname)
-- do your own replacements
text = string.gsub(text, "$TEXT_TO_REPLACE$", "new text")
-- do not forget to return the new text
return text
end
The replacements will not be applied in edit mode.