(据说发帖最好加上表情,因为不太懂就随便挑个表情放这里了)
本帖研究基于星露谷1.6.15版本(带一些mod方便测试,应该不影响游戏机制),其他版本,或者添加扩展类mod时可能会有区别
有效摆摊NPC列表(本帖中简称为NPC列表)、种子、游玩天数。其中只有NPC列表是可受玩家控制的,也是本帖主要讨论内容
此贴将一个不需要黑屏传送切换的整体空间称为地点(如鹈鹕镇,皮埃尔家,卡洛琳的日光房均为不同地点)。NPC列表的顺序由NPC所在地点、切换至该地点的时间、以及列表初始顺序决定
这里的初始顺序可以指两方面,一是建立存档时的NPC位于列表中的顺序(固定,不受种子等因素影响),一是一天开始时NPC列表顺序(本质上是前一天结束时NPC列表顺序,可以从存档获取当天的)
地点顺序是固定的,与存档无关,不同版本之间可能会有区别,具体数据看最后
同地点内NPC顺序受NPC切换至该地点的时间控制,越晚切换至该地点在列表中越靠后
假设皮埃尔家的一天,皮埃尔一直在家,阿比盖尔出门,卡洛琳出门,卡洛琳到家,阿比盖尔到家,此时此场景NPC顺序为:皮埃尔,卡洛琳,阿比盖尔
沙漠节摆摊依据的NPC列表为一天开始时获取的NPC列表(此时在外NPC已被强制传送回家)
NPC列表影响因素也是控制沙漠节摆摊NPC的手段
第二年:解锁肯特(影响列表长度)
雷欧6心事件:解锁雷欧(影响列表长度)
社区升级:潘妮和潘姆住址变化(问就是魔法,一系列NPC位置偏移)
待补充
NPC日程通过影响NPC地点以及切换地点的时间来影响NPC列表顺序,(可能几天内的日程都有影响,取决于NPC是否出门)
固定日程:可预测,本身不可控但是可被覆盖,影响同一地点NPC顺序
雨天,绿雨天:雨天/绿雨天日程(影响同一地点NPC顺序)
社区中心,好感度,剧情等:固定日程变动(影响同一地点NPC顺序,不可逆,好感是否可逆未确认)
沙漠节参观日程:当NPC当天为沙漠节日程时,不会作为摆摊NPC,影响摆摊NPC列表(艾米丽,哈维等提供服务的NPC不在此类)
待补充
本质上也是日程变化,不过是由玩家主动操作的结果,而且可重复
结婚/离婚:NPC住址及日程变化(一系列NPC位置偏移)
罗宾施工:罗宾住址(?)及日程变化(影响施工当天,一系列NPC位置偏移,春16日无影响)
玩家提前睡觉:NPC日程中断,在外NPC强制传送回家(按玩家睡觉时获取的NPC列表顺序传送,影响同一地点NPC顺序)
度假村:概率特殊日程(解锁后默认开启,可自由开启关闭,影响同一地点NPC顺序)
待补充
事件与限定时间范围的节日活动均不会直接影响NPC列表,不过可能会因为时间跳跃影响NPC日程进而间接影响NPC列表
数据是控制沙漠节摆摊NPC的依据

这里数据是一个后期存档某个早上得出的,同一地点内NPC之间顺序的并不固定,潘姆、潘妮居住地点取决于游戏进度
15日:亚历克斯、海莉、山姆、皮埃尔、阿比盖尔、卡洛琳、格斯、艾利欧特、塞巴斯蒂安、莉亚
16日:海莉、克林特、罗宾、玛鲁、德米特里厄斯、潘妮、潘姆
17日:乔治、艾芙琳、文森特、乔迪、肯特、谢恩、玛妮、贾斯
地点详细顺序数据

例如可以利用日光房的顺序靠后的特点,当卡洛琳处于日光房时(较多数时候上午10:00~12:00)睡觉结束一天,第二天开始时NPC列表顺序中卡洛琳会位于阿比盖尔后面(即使原本日程中阿比盖尔更晚回家)
游戏中选取NPC逻辑可以等效为:选取列表中第n1和n2个NPC作为摆摊居民,其中n1,n2仅和种子、游玩天数和NPC列表长度有关
添加或移除NPC导致列表长度变化可能会改变n1和和n2的值,同时会让该NPC后的所有NPC位置发生偏移
列表中NPC顺序变化不会影响n1和n2的值,但是可能会改变n1,n2位置指向的NPC
假设春季17日选取摆摊居民时NPC列表顺序与选取结果如下(n1指向卡洛琳的位置)
...,皮埃尔,阿比盖尔,卡洛琳,...,罗宾,...
在春季15日(或者春季16日蹲点)找罗宾建一个建筑,17日时NPC列表中罗宾会提前到最前面(农场地点位置最靠前),原本罗宾前的NPC都会往后移动一个位置,变成
罗宾,...,皮埃尔,阿比盖尔,卡洛琳,....
此时n1指向NPC变成阿比盖尔,这示例中通过罗宾建筑把原本卡洛琳摆摊调整为阿比盖尔摆摊
注意由于16日罗宾是沙漠节参观日程,这天施工对摆摊居民无影响
延伸
度假居民受NPC列表、种子、游玩天数等影响,理论上也可以预测以及一定程度上控制,但是NPC的选取比较复杂(比如小孩只能在监护人的陪同下去度假村),部分NPC顺序变动可能会影响整体结果,同时姜岛雨天是不可预测的,最终预测结果的可靠性较难保证(IslandSouth.SetupIslandSchedules)
利用NPC日程数据,存档信息(种子,进度等),预测雨天及度假居民等相关信息,或许可以准确地预测出摆摊居民(无特殊操作,不提早睡觉情况下),以及可以通过玩家操作决定的摆摊居民,更进一步的,或许可以选择一定范围内可能的摆摊NPC,反推出需要进行什么操作可以确定
StardewValley.Locations.DesertFestival.SetupFestivalDay
StardewValley.Game1._newDayAfterFade
部分内容参考 https://zh.stardewvalleywiki.com/Stardew_Valley_Wiki 以及 星露谷物语BWiki