【食物系统初探】1
源码版本:V1.64
测试环境:1.62Custom
考虑到参数编号因版本而变化,本次解析不太好设置定位行,因为基本上每句代码都和编号有关...
大致定位从 if ( ibit(18, var_522) == 1 ) { 开始,进入药草套餐的效果代码。
由于食物种类很多,这里只给出重要道具的解析,其他道具相关代码将暂以[未整理]处理。
那么开始正文。
程序跳转 *label_1936 后。先赋值 var_244 = var_243 ,两者皆指代(吃食物的)角色。
然后声明一个哑变量数组var_1377(10行两列,默认0),用于储存食物营养效果。
var_1378代表饱食度。默认2500,如果是货物,那么默认5000。(问题是货物能吃?)
不过没关系,这些变量大多都会随具体情况而重新赋值。
接下来是各种情况的处理,同层判定会以同类型编号处理,从(01)开始。
(01) 首先是(混入药物)←即药草套餐 的处理。
对于PC是八维+速度经验+800
对于宠物是八维+速度经验+8000
(02) 然后是对一般各类食物的基本营养处理。
基本规则是,每类食物会对几项属性有20-50不等的基本经验增加,我们称之为营养(Nutrition)。
然后对于个别类食物,附加值(就是食物后面的+1,+4,+9这样的,类似武器强化)也会增加到相应经验上。
对此,WIKI已经做了非常详细的整理:
http://elona.wikia.com/wiki/Food/TechnicalLZ就不再特意重复一个中文版了。
那么怎么看这个表呢?比如水果(Fruit)这项,
是感知(PER)+30,魔力(MAG)+50,魅力(CHR)+20经验。
30和50下面有(PV),就表示附加值会加到这个经验上面。
而20下面没有(PV),那就是说附加值不会影响这个经验。
比如柠檬+5, 就是35感知,55魔力,20魅力。
而基本饱食度(Satiation)就是最后一列,比如水果就是1500,而鱼是3000。
食物种类有8大类,基本经验只取决于种类,与具体食物编号无关。
比如鲸鱼和蝌蚪,虽然卖价差别极大,但是作为同类食物,他们的基本营养是相同的。
(03) 接下来是根据食物料理等级来对营养做修正。
修正饱食度=基础饱食度*(100+料理等级*15)/100
如果料理等级<3, 那么 修正营养=基础营养/2
否则 修正营养=基础营养*(50+料理等级*20)/100
当然,理论上如果 基础营养 为负值,会有另一套计算公式,因为实际碰不到,所以这里就略过了。
料理等级共分9级,未料理算0级。
(04) 如果角色是PC的话,会根据不同食物输出不同提示。
基本上,料理等级越高,评价也会越好。吃到生的或腐败的东西也会分情况提示。
宠物基本上只有吃到生的食物会给出“一脸痛苦”的提示。
(05) 然后是各类药草的处理
具体数值还是见WIKI的整理表。有(G)的表示会加潜力。
这里需要说明的是箭毒草加潜力和其他药草不同。
其他加潜力的药草都是+40潜力,而箭毒草虽然每项都加,但是只加1。(多到让人无言以对)
(06) PC吃到腐烂食物又没有相应特殊能力的话,此时八维营养(经验)全部减100
(07) PC如果有相应变异特征(喜好人肉),那么吃非人肉时饱食度修正为2/3倍。
如果没有相应特征,那么吃人肉后会受到一些负面影响,但同时也有1/5的概率获得该变异特征。
(08) 接下来是对于各种特殊尸体的处理(如果晒成肉干的话只有1/3几率触发)。
特殊肉的效果在Wiki有总结,这里灰常复杂,所以楼主就只Mark个位置不整理了。
需要强调的是:所有尸体的特殊营养,都不参与后续计算。
比如快可灵系列的2000速度经验,是不会因为(09)中饱食度的影响而有损失。
当然,之前(03)中料理等级对营养的修正显然也不适用于此处。
还有,宠物在此处获取的经验是PC的4倍。比如2000速度经验在这里变为8000速度经验。
(09) 最后就是把营养通过 skillexp 换算成经验了。
对于PC,默认100%将营养转化为经验。
但是如果饱食度>=5000时(非饥饿状态),那么转化率将修正为:
转换率=100/(100+A),其中A的计算公式为:A=(饱食度-5000)/25
对于宠物,默认转化率为1500%。
但是如果材质是生的(35),且已经腐烂。那么转换率减少为500%。
(10) 祝福的食物饱食度*1.5,诅咒的食物饱食度*0.5
如果此时饱食度>=3000,那么角色会有1/10的概率增重。
肉干的饱食度*0.5,且下限为1000,上限为3000
然后修正完毕的饱食度会累加到当前角色的饱食状态中(Fullness),上限为15000。
(11) 对于PC,吃到3级及以上料理时,会恢复 附加值*1.5+料理等级 的SP。
这个恢复量上限为31,下限为3。
以上便是最基础的食物系统解析。
简要总结:想直接看基本结论的可以参考 p/4340352641 美食学。
根据上述解析,几个附加补充是
<1> 一般食物的修正值基本没啥软用。
比如+10的修正值,不过强化了相应属性10点经验而已。
至于回的那些SP,一顿吃饱了不知道下次再回要到什么时候。远不如其他办法。
<2> 一般食物基本没啥软用。好吧这个结论有点快,我们稍微分析一下。
对于宠物而言,箭毒草药草套餐,其为八维+速度每项提供的经验为:
8000+100*15=9500。9项共计:9500*9=85500经验
而与此相对,一般食物最多单项只能提供50*(50+9*20)/100*15=1725点经验。
按照平均3项来算,不过是1725*3=5175点经验。(实际可能还并没有这么多)
那么也就是说,将近16+个一般食物才顶的上一颗草。
先不说成长的速度,但就是多喂了16倍次数,就够麻烦的。
对于PC而言,300点经验和的最高等一般食物,似乎也就是几次哑铃(快进不到一秒)的事情...
因此,别纠结一般食物了。PC哪怕顿顿吃旅粮也不会弱到哪里去。
留着纠结食物的心,干点其他啥都是好的。
宠物就是一辈子的灵草套餐,省心,更省力。
<3> 食物不需要祝福,除非你特别想增重。
祝福的食物并不加影响,只加饱食度。这意味着同样时间反而能吃的东西更少了。
更可怕的是...诅咒的药草套餐加成并不会有任何损失。
只要你能习惯宠物一直吐啊吐的,那么这种方式的进食效率是最高的...(虽然楼主不会这样虐待喵神啦)
<4> 只要到最轻程度的饥饿状态就可进食,否则就算拖到快饿死也不会有更多收益的。
<5> 虽然食物没啥用,但是你一定想靠吃锻炼的话,请尽量做成高等料理。
当然也不用太纠结。因为对7-9级的料理,同等饱食度所能提供的营养基本上已经差不了多少了。
<6> 还有食物卖价和食物营养是两回事,贵的不代表好的。所以料理最主要的用途是提价卖钱。