Stoneshard Wiki

遭遇生成

遭遇生成负责在世界生成时为营地、怪物地点和狩猎地点提出数量目标、筛选候选地块并写入地图标记。候选不足时,生成器会按阶段放宽部分条件;模板选择和地图发现又是后续步骤。本文把“生成器尝试多少”和“你的存档实际得到什么”分开说明。

目录

生成流程回答什么

世界生成先为一类地点提出目标请求,再从可用地块中选择位置并写入地图标记。进入场景后,房间模板、初始对象、动态召唤和战利品还会由各自规则处理;本页只解释放置和发现这条链。

因此“请求 3 个”表示生成器尝试满足的目标,不等于每个存档一定得到 3 个,也不等于进入地点时会看到固定数量的敌人。具体怪物、资源和刷新请回到对应事件词条。

目标请求与实际结果

同版世界初始化分别请求营地、怪物地点和狩猎地点。营地先以总目标组织,怪物和狩猎则按概念各自请求;候选为空、创建失败或房间重启都会影响最终结果。

目标请求与实际结果
类别生成器目标玩家应怎样读
营地35 个目标位置Point of Interest;具体模板和变体另行选择
怪物地点6 类各请求 3 个目标数不是成功创建数;候选不足时可能短缺
狩猎地点7 类各请求 3 个地图事件概念与怪物地点共用放置流程

怎样筛选候选地块

初始筛选会检查生物群系、森林值、Wilderness、与既有遭遇的距离以及地块是否可用。某些地点的调用还传入区域起始参数,但当前候选数组函数只是复制全局遭遇区域;这项参数不能当作已经生效的地域锁定。

怎样筛选候选地块
阶段来源行为玩家应怎样读
初始候选按生物群系、森林值、Wilderness、遭遇安全区和占用情况筛选满足全部条件才进入候选池
放宽阶段 1Wilderness > 40,保留其他主要限制降低门槛,不代表忽略地形
放宽阶段 2Wilderness > 30仍是候选筛选,不是强制坐标
放宽阶段 3不再比较 Wilderness,保留遭遇安全区候选范围变大但仍可能为空
放宽阶段 4保留生物群系,允许同类在区域重复并调整森林限制最后的补救路径仍可能无法完成目标数

候选池怎样被取用

生成器从候选地块中取出一个位置并继续处理下一项请求。选择不到位置时会停止剩余请求;某类一个位置也没有创建时会触发房间重启。只要已经创建过至少一个,目标数量仍可能留下短缺。

模板池的取用另有无放回规则:抽到的模板会从当前池删除,池空后才重新补充。模板覆盖数量描述可用布局,不是敌人数量、掉落数量或每局遭遇率。

候选池怎样被取用
营地变体模板池取用方式
普通强盗营地15 个模板无放回抽取,池空后补充
河畔与草原强盗营地4 个模板按河岸帧或无放回复用
巨蛛占据的营地3 个模板无放回抽取
亡蜂占据的营地3 个模板无放回抽取

怪物地点的模板范围

下表列出已经由同版房间模板核实的怪物地点概念。它说明生成器可从多少种场景布局中选择;地点词条才负责解释进入后预置的怪物、资源、掉落和刷新。

怪物地点的模板范围
地点概念放置目标模板池
巨蛛洞每类请求 3 个3 个场景模板
亡蜂巢每类请求 3 个6 个场景模板
食尸鬼巢穴每类请求 3 个3 个场景模板
谷隆巢穴每类请求 3 个1 个场景模板
哈比窝每类请求 3 个3 个场景模板
巨魔的领地每类请求 3 个3 个场景模板

玩家何时看到标记

世界地图雾更新会调用兴趣点标记流程,在以当前位置为中心的一格邻域检查尚未设置传闻的 Point of Interest、Dungeon 和 Random Encounter,并写入可发现的兴趣点提示。这里是发现提示的范围,不是生成地点的固定坐标。

这套规则不能推出什么

示例地图上的坐标、文章里显示的标记数量和模板池大小都不能当作所有存档的固定结果。生成失败、候选不足和放宽阶段会改变结果;进入一个标记也不能仅凭放置规则预测敌人下一招、掉落或任务奖励。

参考资料

资料版本 0.9.4.25

  1. 0.9.4.25 世界初始化与遭遇放置源码
  2. 0.9.4.25 候选地块筛选与放宽源码
  3. 0.9.4.25 地图兴趣点发现与模板池源码
回到开头