forked from Sokomine/yl_speak_up
90 lines
3.4 KiB
Markdown
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.
|