饥荒联机版中漂流瓶怎么玩?新手玩家可能对其不太了解,下面一起来看看饥荒联机版漂流瓶机制详解吧。
饥荒联机版漂流瓶机制详解
一、表面逻辑
1.首次打开会显示老奶奶位置。
2.除首次外,每次打开漂流瓶都有66%的概率出现消息。另外34%的概率会产生宝藏消息。
3.当当前激活的宝藏数小于最大宝藏数(目前游戏内置的最大宝藏数为4)时,会根据玩家当前的位置来新生成一个宝藏,并显示在玩家小地图上。而当当前激活的宝藏数等于最大宝藏数时,会随即在已有宝藏中随机选择一个并显示在小地图上。
4.当出现消息时,则在所有可能的消息列表中,以相同的概率随机选择一条消息展示。
二、内在逻辑
当玩家对漂流瓶进行操作时,会调用mapspotrevealer组件下的RevealMap方法。
在RevealMap方法内,会先调用messagebottle预设物下的prereveal方法来决定生成消息还是宝藏,还是显示老奶奶位置。如果生成消息,则该方法返回false,并退出RevealMap方法。操作结束。
如果选择宝藏或老奶奶分支。则在 RevealMap方法内调用messagebottle预设物下的getrevealtargetpos方法来获取坐标。而getrevealtargetpos方法直接调用messagebottlemanager组件下的UseMessageBottle方法来获取老奶奶或者宝藏的坐标。
UseMessageBottle方法会先判断玩家是否已经知道老奶奶坐标,如果不知道则直接返回老奶奶坐标。(注意,此处Klei设置了一个参数来判断该漂流瓶是否来自老奶奶,因此我们可以假设未来会出现其他并非来自老奶奶的漂流瓶或其他相同机制的物品。)
如果已知老奶奶坐标,会对当前激活的宝藏数进行判断,如果小于最大宝藏数(目前是4),则根据玩家当前坐标生成一个新的宝藏,并返回新宝藏坐标。否则随机显示一个已有宝藏。生成宝藏坐标的函数为messagebottlemanager组件下的gettreasurepos方法,有兴趣的朋友可以自行看一下。
附录
"I know you're still out there, my dear. I won't ever give up.",
"I'm waiting for you. At the spot where we first met. I've been waiting so long...",
"Please come home. I miss you so much.",
"I still have the last gift you gave me. "A pearl for Pearl"... remember?",
"I'll keep sending messages, until one reaches you...",
"Have you found your treasure yet? When you do, will you come home?"
"我知道你还在外面,我亲爱的。我不会放弃的。"
"我一直在等你。就在我们第一次见面的地方。我等了好久……"
"请回家吧。我真的好想你。"
"我还留着你上次送我的礼物。 "送给珍珠的珍珠"……你还记得吗?"
"我会一直写信给你,直到你收到……"
"你找到了要找的宝藏吗?找到以后,你会回家吗?"