222 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			222 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -- Note: This config file is not intended to be edited directly.
 | |
| --       Like all my mods, it foremost provides an interface/api so
 | |
| --       that another mod (i.e. a server specific one written by you)
 | |
| --       can call functions here and do the settings.
 | |
| --
 | |
| --       That way you can update this mod easily and keep your settings
 | |
| --       in a seperate mod and even override functions there if you
 | |
| --       want.
 | |
| --
 | |
| --       So please use a seperate config mod!
 | |
| 
 | |
| -- Do the NPCs talk right after they spawned?
 | |
| yl_speak_up.talk_after_spawn = true
 | |
| 
 | |
| yl_speak_up.nametag_color_when_not_muted = "#00DDDD"
 | |
| yl_speak_up.nametag_color_when_muted     = "#FF00FF"
 | |
| 
 | |
| 
 | |
| -- diffrent NPC may use diffrent models
 | |
| -- IMPORTANT: If you want to support an NPC with a diffrent model, provide
 | |
| --            an entry in this array! Else setting its skin will fail horribly.
 | |
| yl_speak_up.mesh_data = {}
 | |
| yl_speak_up.mesh_data["error"] = {
 | |
| 	texture_index = 1,
 | |
| 	can_show_wielded_items = false,
 | |
| 	}
 | |
| -- this model is used by mobs_npc
 | |
| yl_speak_up.mesh_data["mobs_character.b3d"] = {
 | |
| 	-- the first texture is the skin
 | |
| 	texture_index = 1,
 | |
| 	-- there is no support for capes or wielded items
 | |
| 	can_show_wielded_items = false,
 | |
| 	-- textures are applied directly
 | |
| 	textures_to_skin = false,
 | |
| 	animation = {
 | |
| 		-- {x = start_frame, y = end_frame, collisionbox}
 | |
| 		stand_still = {x =   0, y =   0, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}},
 | |
| 		stand       = {x =   0, y =  79, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}},
 | |
| 		sit         = {x =  81, y = 160, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.0, 0.3}},
 | |
| 		lay         = {x = 162, y = 166, collisionbox = {-0.6, 0.0, -0.6, 0.6, 0.3, 0.6}},
 | |
| 		walk        = {x = 168, y = 187, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}},
 | |
| 		mine        = {x = 189, y = 198, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}},
 | |
| 		walk_mine   = {x = 200, y = 219, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}},
 | |
|         },
 | |
| 	}
 | |
| yl_speak_up.mesh_data["skinsdb_3d_armor_character_5.b3d"] = {
 | |
| 	-- the second texture is the skin
 | |
| 	texture_index = 2,
 | |
| 	-- they can wear and show capes and wield items
 | |
| 	can_show_wielded_items = true,
 | |
| 	-- call textures2skin in order to convert the textures (wielded items)
 | |
| 	textures_to_skin = true,
 | |
| 	animation = {
 | |
| 		-- {x = start_frame, y = end_frame, collisionbox}
 | |
| 		stand_still = {x =   0, y =   0, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}},
 | |
| 		stand       = {x =   0, y =  79, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}},
 | |
| 		sit         = {x =  81, y = 160, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.0, 0.3}},
 | |
| 		lay         = {x = 162, y = 166, collisionbox = {-0.6, 0.0, -0.6, 0.6, 0.3, 0.6}},
 | |
| 		walk        = {x = 168, y = 187, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}},
 | |
| 		mine        = {x = 189, y = 198, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}},
 | |
| 		walk_mine   = {x = 200, y = 219, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}},
 | |
|         },
 | |
| 
 | |
| }
 | |
| yl_speak_up.mesh_data["mobs_sheep.b3d"] = {
 | |
| 	texture_index = 1,
 | |
| }
 | |
| yl_speak_up.mesh_data["mobs_cow.b3d"] = {
 | |
| 	texture_index = 1,
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| -- diffrent mob types may want to wear diffrent skins - even if they share the
 | |
| -- same model/mesh
 | |
| yl_speak_up.mob_skins = {}
 | |
| -- some models support capes
 | |
| yl_speak_up.mob_capes = {}
 | |
| 
 | |
| -- mobs_redo usually uses 64 x 32 textures:
 | |
| yl_speak_up.mob_skins["mobs_npc:npc"] = {
 | |
| 	"mobs_npc.png", "mobs_npc2.png", "mobs_npc3.png", "mobs_npc4.png", "mobs_npc_baby.png"}
 | |
| yl_speak_up.mob_skins["mobs_npc:igor"] = {
 | |
| 	"mobs_igor.png",  "mobs_igor2.png", "mobs_igor3.png", "mobs_igor4.png",
 | |
| 	"mobs_igor5.png", "mobs_igor6.png", "mobs_igor7.png", "mobs_igor8.png"}
 | |
| yl_speak_up.mob_skins["mobs_npc:trader"] = {
 | |
| 	"mobs_trader.png", "mobs_trader2.png", "mobs_trader3.png"}
 | |
| 
 | |
| yl_speak_up.mob_skins["mobs_animal:sheep_white"] = {
 | |
| 	"mobs_sheep_base.png^(mobs_sheep_wool.png^[colorize:#abababc0)"}
 | |
| yl_speak_up.mob_skins["mobs_animal:sheep_red"] = {
 | |
| 	"mobs_sheep_base.png^(mobs_sheep_wool.png^[colorize:#ff0000a0)"}
 | |
| yl_speak_up.mob_skins["mobs_animal:cow"] = {
 | |
| 	"mobs_cow.png", "mobs_cow2.png"}
 | |
| 
 | |
| -- this here uses 64 x 64 textures:
 | |
| yl_speak_up.mob_skins["yl_speak_up:human"] = {
 | |
| 	"yl_speak_up_main_default.png"}
 | |
| -- which capes can an NPC wear?
 | |
| yl_speak_up.mob_capes["yl_speak_up:human"] = {
 | |
| 	"yl_npc_cape_default.png"}
 | |
| 
 | |
| 
 | |
| -- some mobs (in particular from mobs_redo) can switch between follow (their owner),
 | |
| -- stand and walking when they're right-clicked; emulate this behaviour for NPC in
 | |
| -- this list
 | |
| yl_speak_up.emulate_orders_on_rightclick = {
 | |
| 	"mobs_npc:npc", "mobs_npc:igor", "mobs_npc:trader",
 | |
| 	"mobs_animal:sheep_white", "mobs_animal:sheep_red", "mobs_animal:cow"}
 | |
| 
 | |
| 
 | |
| -- some properties from external NPC can be edited and changed (they have the self. prefix),
 | |
| -- and it is possible to react to property changes with handlers;
 | |
| --     key: name of the property (i.e. self.order);
 | |
| --     value: function that reacts to attempts to change the property
 | |
| -- For an example, see custom_functions_you_can_override.lua
 | |
| yl_speak_up.custom_property_handler = {}
 | |
| 
 | |
| 
 | |
| -- What shall we call the folder all the dialogs will reside in?
 | |
| 
 | |
| yl_speak_up.path = "yl_speak_up_dialogs"
 | |
| 
 | |
| -- What shall we call the folder all the inventories of the NPC will reside in?
 | |
| yl_speak_up.inventory_path = "yl_speak_up_inventories"
 | |
| 
 | |
| -- Where shall player-specific varialbes (usually quest states) be stored?
 | |
| yl_speak_up.player_vars_save_file = "yl_speak_up_player_vars"
 | |
| 
 | |
| -- Where to store the logfiles for the individual NPC
 | |
| yl_speak_up.log_path = "yl_speak_up_log"
 | |
| 
 | |
| -- Where shall information about the quests be stored?
 | |
| yl_speak_up.quest_path = "yl_speak_up_quests"
 | |
| 
 | |
| -- amount of time in seconds that has to have passed before the above file will be saved again
 | |
| -- (more time can pass if no variable is changed)
 | |
| yl_speak_up.player_vars_min_save_time = 60
 | |
| 
 | |
| -- An option may be choosen automaticly without the player having to click if all of its
 | |
| -- preconditions are true and the mode is set to automatic. Now, if the choosen target
 | |
| -- dialog has an option that also uses this automatic mode, infinite loops might be
 | |
| -- created. This option exists to avoid them. Any small value will do.
 | |
| yl_speak_up.max_allowed_recursion_depth = 5
 | |
| 
 | |
| -- * set the name of the priv that allows to add, edit and change preconditions, actions and
 | |
| --   effects listed in yl_speak_up.npc_priv_names in npc_privs.lua
 | |
| -- * this also allows the player to use the "/npc_talk privs" command to assign these privs
 | |
| --   to NPC
 | |
| -- * it does *NOT* include the "precon_exec_lua" and "effect_exec_lua" priv - just
 | |
| --   "effect_give_item", "effect_take_item" and "effect_move_player"
 | |
| -- * default: "npc_talk_admin" (but can also be set to "npc_master" or "privs" if you want)
 | |
| yl_speak_up.npc_privs_priv = "npc_talk_admin"
 | |
| 
 | |
| 
 | |
| -- Texts
 | |
| 
 | |
| yl_speak_up.message_button_option_exit = "Farewell!"
 | |
| yl_speak_up.message_button_option_prerequisites_not_met_default = "Locked answer"
 | |
| yl_speak_up.message_tool_taken_because_of_lacking_priv = "We took the tool from you and logged this event. You used an admin item while lacking the neccessary priv npc_master"
 | |
| yl_speak_up.text_new_dialog_id = "New dialog"
 | |
| yl_speak_up.text_new_option_id = "New option"
 | |
| yl_speak_up.text_new_prerequisite_id = "New prerequisite"
 | |
| yl_speak_up.text_new_result_id = "New result"
 | |
| yl_speak_up.text_version_warning = "You are using an outdated Minetest version!\nI will have a hard time talking to you properly, but I will try my best.\nYou can help me by upgrading to at least 5.3.0!\nGet it at https://minetest.net/downloads"
 | |
| yl_speak_up.infotext = "Rightclick to talk"
 | |
| 
 | |
| -- how many buttons will be shown simultaneously without having to scroll?
 | |
| yl_speak_up.max_number_of_buttons = 7
 | |
| -- how many buttons can be added to one dialog?
 | |
| yl_speak_up.max_number_of_options_per_dialog = 15
 | |
| 
 | |
| -- how many rows and cols shall be used for the trade overview list?
 | |
| yl_speak_up.trade_max_rows = 10
 | |
| yl_speak_up.trade_max_cols = 12
 | |
| 
 | |
| -- how many prerequirements can the player define per dialog option?
 | |
| yl_speak_up.max_prerequirements = 12
 | |
| -- how many actions can there be per dialog option?
 | |
| -- for now, more than one doesn't make sense
 | |
| yl_speak_up.max_actions = 1
 | |
| -- how many effects can the player define per dialog option?
 | |
| yl_speak_up.max_result_effects = 6
 | |
| 
 | |
| -- these blacklists forbid NPC to use effects on blocks; format:
 | |
| --   yl_speak_up.blacklist_effect_on_block_interact[ node_name ] = true
 | |
| -- forbids all interactions;
 | |
| -- use this if a node isn't prepared for a type of interaction with
 | |
| -- an NPC and cannot be changed easily;
 | |
| -- Example: yl_speak_up.blacklist_effect_on_block_right_click["default:chest"] = true
 | |
| yl_speak_up.blacklist_effect_on_block_interact = {}
 | |
| yl_speak_up.blacklist_effect_on_block_place = {}
 | |
| yl_speak_up.blacklist_effect_on_block_dig = {}
 | |
| yl_speak_up.blacklist_effect_on_block_punch = {}
 | |
| yl_speak_up.blacklist_effect_on_block_right_click = {}
 | |
| -- taking something out of the inventory of a block or putting something in
 | |
| yl_speak_up.blacklist_effect_on_block_put = {}
 | |
| yl_speak_up.blacklist_effect_on_block_take = {}
 | |
| 
 | |
| -- If some items are for some reasons not at all acceptable as quest items,
 | |
| -- blacklist them here. The data structure is the same as for the tables above.
 | |
| yl_speak_up.blacklist_action_quest_item = {}
 | |
| 
 | |
| -- NPC can send a message to all players as an effect;
 | |
| -- this text will be put in front of this message so that you and your players
 | |
| -- know that it originated from an NPC (just make sure this returns a string)
 | |
| yl_speak_up.chat_all_prefix = minetest.colorize("#0000FF", "[NPC] ")
 | |
| -- the NPC will use this color when sending a chat message
 | |
| yl_speak_up.chat_all_color = "#AAAAFF"
 | |
| 
 | |
| 
 | |
| -- it's possible to prevent players from trying actions (i.e. npc_gives, text_input, ..) too often;
 | |
| -- if no special text is set, this one will be shown (tab "Limit guessing:" in edit options menu)
 | |
| yl_speak_up.standard_text_if_action_failed_too_often = "You have tried so many times. I'm tired! "..
 | |
| 	"Come back when you really know the answer - but not too soon.\n $TEXT$"
 | |
| -- it's also possible to prevent players from successfully executing actions too often (after all the
 | |
| -- quest items are created from the finite NPC's inventory); this is the standard text that will be
 | |
| -- shown by default (tab "Limit repeating:" in edit options menu)
 | |
| yl_speak_up.standard_text_if_action_repeated_too_soon = "I don't have infinite ressources. If you lost "..
 | |
| 	"something I gave you - come back later and we may talk again.\n$TEXT$"
 |