From fd6880f061bbb85e72b48acce5d1fc1068668a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lilian=20J=C3=B3nsd=C3=B3ttir?= Date: Sat, 15 Aug 2020 17:14:14 -0700 Subject: [PATCH] show message when entering public space/home of wandering NPC --- MWSE/mods/celediel/NPCsGoHome/config.lua | 1 + MWSE/mods/celediel/NPCsGoHome/main.lua | 41 +++++++++--------------- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/MWSE/mods/celediel/NPCsGoHome/config.lua b/MWSE/mods/celediel/NPCsGoHome/config.lua index 11d235a..5eda873 100644 --- a/MWSE/mods/celediel/NPCsGoHome/config.lua +++ b/MWSE/mods/celediel/NPCsGoHome/config.lua @@ -19,6 +19,7 @@ local defaultConfig = { waistWorks = true, moveNPCs = false, homelessWanderersToPublicHouses = false, + showMessages = true, logLevel = common.logLevels.none, factionIgnorePercentage = 0.66 } diff --git a/MWSE/mods/celediel/NPCsGoHome/main.lua b/MWSE/mods/celediel/NPCsGoHome/main.lua index 1380b93..f300d93 100644 --- a/MWSE/mods/celediel/NPCsGoHome/main.lua +++ b/MWSE/mods/celediel/NPCsGoHome/main.lua @@ -35,6 +35,7 @@ local contextualNPCs = {"^AM_"} -- {{{ helper functions local function log(level, ...) if config.logLevel >= level then common.log(...) end end +local function message(...) if config.showMessages then tes3.messageBox(...) end end local function checkModdedCell(cellId) local id @@ -447,25 +448,26 @@ end -- {{{ cell change checks -local function checkEnteredSpawnedNPCHome(cell) - local home = homedNPCS[cell.id] +local function checkEnteredNPCHome(cell) + local home = homes.byCell[cell.id] if home then - local message = string.format("Entering home of %s, %s", home.name, home.homeName) - log(common.logLevels.medium, message) - tes3.messageBox(message) + local msg = string.format("Entering home of %s, %s", home.name, home.homeName) + log(common.logLevels.small, msg) + message(msg) end end local function checkEnteredPublicHouse(cell, city) - local type = pickPublicHouseType(cell.name) + local typeOfPub = pickPublicHouseType(cell.name) + + local publicHouse = publicHouses[city] and (publicHouses[city][typeOfPub] and publicHouses[city][typeOfPub][cell.name]) - local publicHouse = publicHouses[city] and (publicHouses[city][type] and publicHouses[city][type][cell.name]) if publicHouse then - local message = string.format("Entering public space %s, a%s %s in the town of %s. Talk to %s, %s for services.", - publicHouse.name, common.vowel(type), type:gsub("s$", ""), publicHouse.city, publicHouse.proprietor.object.name, - publicHouse.proprietor.object.class) - log(common.logLevels.small, message) - tes3.messageBox(message) + local msg = string.format("Entering public space %s, a%s %s in the town of %s. Talk to %s, %s for services.", + publicHouse.name, common.vowel(typeOfPub), typeOfPub:gsub("s$", ""), publicHouse.city, + publicHouse.proprietor.object.name, publicHouse.proprietor.object.class) + log(common.logLevels.small, msg) + message(msg) end end @@ -712,22 +714,11 @@ end local function onCellChanged(e) updateCells() - updatePlayerTrespass(e.cell) - checkEnteredSpawnedNPCHome(e.cell) + updatePlayerTrespass(e.cell, e.previousCell) + checkEnteredNPCHome(e.cell) if e.cell.name then -- exterior wilderness cells don't have name checkEnteredPublicHouse(e.cell, common.split(e.cell.name, ",")[1]) end - - --[[ - -- ! delete this - if config.logLevel == common.logLevels.none then - if (e.previousCell and e.previousCell.name and e.previousCell.name ~= e.cell.name) then - mwse.log("}\n[\"%s\"] = {", e.cell.id) - elseif not e.previousCell then - mwse.log("[\"%s\"] = {", e.cell.id) - end - end - -- ! ]] end -- }}}