星露谷物语吧 关注:516,581贴子:3,079,974

【分析】源代码分析星露谷物语的运势系统

只看楼主收藏回复

新人第一次发帖,多多关照!


IP属地:辽宁1楼2016-06-03 08:59回复
    lz4月末入手stardew valley,玩了一个档。基本上能玩的元素都玩到了,觉得这个游戏的许多地方都很有趣,重要的是这个游戏是xna的,因此想看一下。在网上也没有什么比较好的关于运势系统的分析攻略,所以就选择了这个来分析。现场码字可能比较慢


    IP属地:辽宁2楼2016-06-03 09:03
    回复
      首先打开游戏中的人物状态这里,发现有5个人物的属性等级,farming,mining,foraging,fishing,combat这5个技能类型,在这里lz发现其实同等级的技能类型不止有5个,而是6个。

      第六个是Luck,也就是幸运等级,只不过这个不会显示在玩家可见的状态栏里。


      IP属地:辽宁3楼2016-06-03 09:10
      回复
        这就解释了吃某一些料理的时候会增加人物的运气等级,其实增加的就是这个属性


        IP属地:辽宁4楼2016-06-03 09:11
        收起回复
          前排支持


          5楼2016-06-03 09:17
          回复
            顶顶


            来自Android客户端7楼2016-06-03 09:25
            回复
              暖贴 楼主更更


              IP属地:陕西8楼2016-06-03 09:39
              回复
                技术贴,顶


                IP属地:上海来自iPhone客户端9楼2016-06-03 09:44
                回复
                  那这个运势都会影响什么东西:
                  1.动物出产的产品
                  2.矿洞死亡后物品掉落
                  3.夏天的闪电
                  4.作物收获
                  5.蟹笼
                  6.送礼
                  7.敲碎石头后掉落物品


                  IP属地:辽宁11楼2016-06-03 10:08
                  收起回复
                    lz先去上课了,下午有空更


                    IP属地:辽宁12楼2016-06-03 10:09
                    回复
                      支持


                      IP属地:河北来自iPhone客户端13楼2016-06-03 10:10
                      回复
                        回来了,开更。


                        IP属地:辽宁14楼2016-06-03 13:18
                        回复

                          1.运势对动物出产的产品的影响
                          每个动物在购买/出生后会有一个开心值,代码中叫happiness。初始值是0xff(255)。也就是你每天摸动物之后,动物头上会出现一个心,就是代表这个动物的开心情况以及表示动物增加了开心值(表示一团乱麻的时候也会加开心值),开心值和点击动物出现的信息里面的心(好感度)是不一样的两个东西。
                          开心值<30 : look sad
                          30<开心值<200 : look fine
                          开心值>200 :looks really happy today!
                          根据观察发现好感度的取值是0-1000,对应0-5心。
                          根据算法,目前来看,是否产出物品完全与开心值有关,当动物的开心值高于150时产出概率是100%,当小于150时,值越小产出几率越小(75开心值产出率为50%)。
                          而运势仅仅是在动物有产出的情况下,决定了产出特殊物品的概率(鸭毛、兔脚)。
                          产出特殊产品的算法的大概意思是:
                          鸭子:
                          当动物开心值大于200时
                          ((开心值+好感度)/5000 + 今日的运势)+(玩家幸运等级*0.01)
                          当动物开心值小于200时
                          ((好感度-开心值)/5000 + 今日的运势)+(玩家幸运等级*0.01)
                          兔子:
                          当动物开心值大于200时
                          ((开心值+好感度)/5000 + 今日的运势)+(玩家幸运等级*0.02)
                          当动物开心值小于200时
                          ((好感度-开心值)/5000 + 今日的运势)+(玩家幸运等级*0.02)
                          根据实际情况估算一下:
                          某天,一只鸭子的好感为3心,开心值满,你的幸运等级默认为1的情况,这只兔子在不同的运势情况(取中间值)下产出情况为:
                          非常开心:26.6%
                          开心:22.6%
                          命运在自己手中:18.1%
                          不开心:13.6%
                          捣蛋:9.6%
                          兔子同理。可见运势对动物产出的影响还是很大的。


                          IP属地:辽宁15楼2016-06-03 13:49
                          收起回复
                            技术贴好赞~ 先加个精~


                            IP属地:上海16楼2016-06-03 14:02
                            收起回复

                              2.运势对矿洞死亡后物品掉落的影响
                              相信大家都在矿洞里挂过,lz也挂过两次,一次掉了武器(我 的黑曜石剑啊啊),还有一次掉了背包里的不少东西(包括我给penny送礼用的好几十个甜瓜)。
                              这个矿洞死亡掉落也是和运势有关的:
                              首先死亡掉落有限制:
                              1.工具不能掉
                              2.特定武器不能掉(编号为47,编号为4的武器,可能是初始武器,没仔细研究)
                              3.戒指不能掉
                              4.掉的物品都是可丢弃的,也就是可以把它丢垃圾桶的
                              这是四条限制,满足这四条限制后,就会对每个这样的物品进行一个算法:
                              (0.25-幸运等级*0.05)-今日的运势
                              满足条件的会掉落。
                              不同的运势的掉落率(默认幸运等级为1):
                              非常开心:11.5%
                              开心:15.5%
                              命运在自己手中:20%
                              不开心:24.5%
                              捣蛋:28.5%
                              不过估计一般也没人运气不好的时候下矿吧。


                              IP属地:辽宁17楼2016-06-03 14:11
                              收起回复