首页 > 游戏新闻 > 游戏攻略

饥荒联机版海上漂浮物刷新机制介绍,饥荒联机版海上漂浮物刷新机制一览

发布时间:2022-05-08 15:57:29 来源:网络 作者:小编花魁

   饥荒在线版中海漂浮物是如何刷新的?新手玩家可能不知道它的规则。让我们来看看饥荒在线版海上漂浮物刷新机制的介绍。

       

   饥荒联机版海上浮物刷新机制介绍

   一、漂浮物种类

   重量刷新:

   中文名、代码、权重

   浮木,driftwood_log,1

   船残骸,boatfragment03,0.3

   船残骸,boatfragment04,0.3

   船残骸,boatfragment05,0.3,

   割下的草,cutgrass,1

   绳子,twigs,1

   海底垃圾,oceanfishableflotsam_water,1

   必刷物品:

   漂流瓶,messagebottle

   二、表面逻辑

   1.漂流瓶刷新和其他物品刷新是两个相互干扰的过程,但一些相关函数将共同使用。

   2.漂流瓶的刷新周期是随机的1-2天,如果随机生成的刷新点不符合条件,将在8分之一天后重新刷新。刷新位置以玩家为中心,角度随机,半径40。

   3.其他物品的第一个刷新周期是随机的1-150秒,随后的刷新周期是随机的30-180秒。地点和漂流瓶一样。

   4.每个玩家独立刷新,也就是说,聚在一起的玩家越多,感官刷新就越快(越多)。

   三、底层逻辑

   本部分所有函数默认为flotsamgerator在组件下,每个生成过程都与单个玩家绑定。

   漂流瓶刷新流程:当系统需要生成漂流瓶时,系统将首先调用StartGuaranteedSpawn函数。然后调用ScheduleGuaranteedSpawn函数为漂流瓶设置计时器1-2个游戏天数(TUNING.TOTAL_DAY_TIME)均匀分布。计时器时间结束时,会触发SpawnGuaranteedFlotsam函数。此时将调用SpawnFlotsamForPlayer函数对物品进行生成。生成之后会根据生成的结果回调ScheduleGuaranteedSpawn函数是漂流瓶的下一次更新计时。如果生成项目成功,按以前的时间计时;如果生成项目失败,计时器的周期是游戏天数的8分之一(GUARANTEED_FLOTSAM_REATTEMPT_DELAY)。

   刷新其他物品的过程:当系统需要生成其他漂浮物品时,系统将首先调用ScheduleSpawn函数1-150随机秒(150的来源写在代码中180-30)。计时周期调用SpawnFlotsamForPlayer函数生成其他物体,并重新进入计时周期。之后的计时周期是30-180随机秒数。

   SpawnFlotsamForPlayer函数:首先获取玩家的位置,判断玩家是否在船上,如果不在船上,直接返回。否则,获得船的坐标。物品刷新的位置仅与玩家的位置和船的位置有关,物品位置产生的函数是GetSpawnPoint。如果生成的坐标可用,则会产生漂浮物。这里需要注意的是,当系统需要生成漂流瓶时,它会被引入override_prefab和override_notrealflotsam当生成其他漂流物时,两个参数是空的。override_prefab和override_notrealflotsam两个参数两个参数GetSpawnPoint函数。第一个参数用于指定生成的漂浮物。如果没有指定参数,漂浮物将根据权重随机生成。(因此,漂流瓶只能在此引入漂流瓶参数时生成。)第二个参数override_notrealflotsam最终会被传递setinsttoflotsam函数,用于判断是否添加生成物"flotsam"标记。除此之外,SpawnFlotsamForPlayer函数还有一个额外的参数reschedule,该参数类型为函数名。当系统从ScheduleSpawn函数地调用SpawnFlotsamForPlayer函数是,会将ScheduleSpawn作为函数本身reschedule为下一个计时周期做准备。

   SpawnFlotsam函数:该函数共有三个参数spawnpoint,prefab,notrealflotsam。spawnpoint为从SpawnFlotsamForPlayer函数传入的物品坐标,prefab为指定生成物品(可以为空)。notrealflotsam会传给setinsttoflotsam函数。如上所述,函数将首先判断prefab是否为空,如果为空,则通过权重随机选择一个项目。然后生成一个随机数,以确定是否旋转180度。然后将物品转移到相应的坐标,然后将物品和notrealflotsam参数传入setinsttoflotsam函数。

   GetSpawnPoint函数:生成坐标。。一般思路是以玩家坐标为基础,角度随机,半径40点。判断坐标的可用性。

   setinsttoflotsam函数:函数有三个参数,inst,time,notag。inst要生成的物品。time为空,会将time赋值为3-4游戏周期(均匀分布)。这个时间被用来计算物没的时间。notag判断是否增加"flotsam"tag。同时,为物品设计了三个监控事件,即沉没时间、捡起和删除。然后将有其他函数进行相应的处理。更有趣的是,当物品沉没时,它会在物品的原始坐标处产生一个splash_sink(我在游戏中测试过,好像是个气泡。

   总体逻辑:

   变量_maxflotsam,目前,用于控制最大漂浮物数量的4(但程序中没有判断当前漂浮物数量)。因此,该变量可能不实际使用)。

   当它生成一个世界时,它将是对的_updating判断变量,如果是false,则置为true,并让所有在_activeplayers如果列表中的玩家进入漂流瓶生成过程和其他漂浮物生成过程。true,删除所有漂浮物(包括漂流瓶)的当前数据并重新生成。

   当新玩家进入游戏时,添加玩家_activeplayers列表中。同时进入生成漂流瓶的过程。此外,判断_updating变量true,进入生成其他漂浮物的过程。

最新发现

相关资讯

今日热榜

热门游戏