58 lines
3 KiB
Markdown
58 lines
3 KiB
Markdown
# NPCs Go Home #
|
|
|
|
A no-longer-lightweight fork of [OEA's Lightweight Lua Scheduling](https://www.nexusmods.com/morrowind/mods/48584) version 1.1 (I implemented most of the changes from 1.2 though)
|
|
|
|
## Things I've Added, Changed or Fixed ##
|
|
|
|
### The "Big" Stuff ###
|
|
|
|
- NPC "homes"
|
|
- Outside NPCs who have homes (local cell that contains their name, i.e.: NPC Fargoth and cell "Seyda Neen, Fargoth's House") are currently paired with the inside cell of their home
|
|
- Other NPCs are configurably paired with local public houses (Inns, temples, and guildhalls of their faction)
|
|
- Option to move NPCs into their home rather than disable them
|
|
- Working on a better variety of positions in cells
|
|
- Moved NPCs persist on save/load
|
|
|
|
### Other Stuff ###
|
|
|
|
- Timer for updating everything, configurable interval
|
|
- Disabled NPCs are reenabled even if the option to disable NPCs is off
|
|
- Silt Striders and pack guars are disabled as well
|
|
- Inclement weather toggle removed, in favour of dropdown with "None" option
|
|
- Travel agents, their silt striders, and configured races/classes optionally stay in inclement weather
|
|
- When locking doors, cells that contain NPCs of any class on the ignore list are left alone
|
|
- Cells that are >= 67% (configurable) one faction will be public, if that faction is on the ignore list
|
|
- Cells of player joined factions are also public
|
|
- Additionally, NPCs in those cells can still be interacted with
|
|
- Cells with no NPCs are not locked
|
|
- Ignore list now supports NPC class and faction. Any interior cell with an NPC of
|
|
ignored class or faction will not be locked, or have its NPCS disabled.
|
|
|
|
### Debug / Devel Stuff ###
|
|
|
|
- data/positions.lua contains positions used for NPC placement in homes and public houses
|
|
- I haven't done many as it's tedious work, so I've added debug some debug keybinds to help:
|
|
- ctrl + c prints to mwse.log position data sorta properly formatted for positions.lua
|
|
- alt + c prints to mwse.log all the current runtime data, found in common.runtimeData
|
|
- includes: public houses and homes found for NPCs: cells that NPCs will be moved to, needing position data
|
|
|
|
## WIP ##
|
|
|
|
- Currently NPCs without a home are moved into local cells with matching faction, or a random public cell
|
|
- NPCs are classed based on the worth of their equipped items, and inventory
|
|
- NPC worth is a table of: equipped items worth, inventory items worth, barter
|
|
gold and if a merchant with a cell, the worth of items in containers in that
|
|
cell that the NPC sells is added, and the total of all calculated values
|
|
- Public houses are classed based on the worth of NPCs in the cell
|
|
|
|
## TODO ##
|
|
|
|
- Move non-faction NPCs who don't have homes to temples or inns based on their "worth"
|
|
- Pick temple for the poorest NPCs, or classed inns based on NPC/inn "worth"
|
|
|
|
## Known issues ##
|
|
|
|
- ~~If NPCs in a town are moved, and the player moves far away from that town before they're moved back, then
|
|
saves and reloads, those NPCs will probably stay moved.~~ should be fixed
|
|
- It's probably one big bowl of spaghetti
|