存入金币和补充补给¶
如果你想让角色连续挂机数天,你需要存款器和补给器。存款器可以把战利品存入银行或仓库,补给器补充药水、符文和其他补给。这些功能可以用六个基本状态描述:
离开出生点:角色在出生区域或洞穴、没有可存物品且有足够补给时条件满足。达成方式是退出出生区域或洞穴。
走到城镇:角色在出生区域或洞穴时条件满足。达成方式是从出生点或洞穴走到城镇。
存款:角色在出生区域或洞穴,或角色在城镇且无可存物品时条件满足。达成方式是把战利品放入银行或仓库。
取现金:角色在出生区域或洞穴、在城镇但无需购买补给,或有足够金币购买补给时条件满足。达成方式是从银行或仓库取出金币。
购买补给:角色在出生区域或洞穴,或角色有足够补给开始狩猎时条件满足。达成方式是购买补给。
进入出生点:角色在出生区域或洞穴时条件满足。达成方式是走到出生区域或洞穴。
这些状态会放在与跟随航点相关的状态(我在第二百二十八页「一个复杂的假设状态机」中描述了其中几个状态)前,位于 StateDefinition 对象向量中。把它们放在前面,让它们优先于留在洞穴中,同时仍然允许角色在回城路上瞄准、击杀和搜刮怪物。
取决于你在哪里狩猎以及你希望机器人如何表现,你也可以告诉瞄准状态在角色不在出生区域或洞穴时不要攻击生物,你还可以在走到城镇之前添加一个只攻击阻挡角色进城路径的生物的额外状态。指定那个额外状态会提高机器人效率,因为如果路上的怪物不值得击杀,进出城镇的行程会快得多。