elona吧 关注:76,080贴子:1,131,320

回复:E+代码分析讨论

只看楼主收藏回复

【关于宠物的训练费】
嘿嘿嘿,这回凭借自己的力量解决了一个搁置很久的小问题。(大雾)
宠物的训练费,更新日志上明确写明是和INIT有关。但是具体公式为何,前人并未说过。
所以就有了 /p/4889518466 16L @每日c的花生 列举的特殊情况。
简单的找了下,发现对应公式如下。
训练费a=属性INIT*8+速度INIT*10 (就是属性界面里INIT那两项)
训练费b=训练费a-宠物魅力*5
然后再从 训练费a/2 与 训练费b 中选取大者,作为最终训练费。
由此可知,在魅力很低时,1点魅力可以节省5GP
此时训练费为 属性INIT*8+速度INIT*10-宠物魅力*5
在魅力足够高时(既魅力大于 速度INIT+0.8属性 INIT),训练费固定为最低值。
此时训练费为 属性INIT*4+速度INIT*5
形象来说,用了链接之网(速度INIT50 属性INIT 258-600)的宠物大概训练费就是1082-2859。
而用链接之网之前的喵神(速度INIT240 属性INIT 2552)在魅力1000的情况下依然是17816。
所以INIT好重要呀(点头)


IP属地:湖南20楼2017-01-09 22:48
收起回复
    看到之前别的帖子里的你问了几个问题不过好像没人回答的样子。
    5 经常看到前辈们动不动好几百S的宠物装备,请问如果宠物没有自带超重装技能要怎么克服重装的命中惩罚呢?(这个是因为放弃正常的命中而靠暴击,暴击大部分情况是必中的)
    7 紧急回避配上轻装可以通过100%被暴实现100%回避吗?前两天看到有人问但是好像并没有确认这一点的样子w(首先怪物并没有什么手段达成100%暴击,意志可以,但是意志的暴击紧急回避是挡不住的,除此之外也有不少暴击紧急回避无法回避,都写在attackhit里了)


    21楼2017-01-10 12:14
    收起回复
      2025-05-24 11:12:40
      广告
      【魔法系列】01
      源码版本:V1.64
      测试环境:1.62Custom
      首先是施法威力,位置在:#defcfunc calcspellpower int prm_983, int prm_984
      prm_983代表魔法/技能编号,984代表施放角色
      对于非魔法(编号大于600的技能)
      如果PC的相应技能等级大于0,则威力=技能等级*6+10,否则为100
      如果施放角色为PC(prm_984=0):
      那么威力=魔法等级*10+50
      在特殊情况下(var_64(175) == 666,看不懂),如果吟唱等级*6+10大于上述威力,则威力更变为吟唱等级*6+10
      如果施放角色为NPC:
      施法角色吟唱等级为0,且非队友时,威力=角色等级*6+10
      其他情况威力一律=吟唱等级*7+10
      一个简单的结论是,2000级NPC无吟唱无加成时,施法威力为12010,相当于:
      (a)有1714级吟唱的队友,或
      (b)1196级魔法,但无任何加成的PC
      (c)496级魔法,封顶2.4倍加成的PC
      这4倍的差距多少算是个优势吧...
      然后是BUFF魔法,位置在开头:#deffunc calcbuff int prm_270, int prm_271, int prm_272
      270代表施放目标,271代表BUFF类型,272代表施法威力
      每个BUFF中,var_78代表有效期,var_79代表效果值(下文用A表示)
      (a)羽化(prm_271 == 31)
      介绍说明为:DV 10% + A 上升/轻装备 20% 上升/重力耐性/漂浮
      BUFF有效期=20+威力/15 回合
      轻装备20%上升check√
      重力耐性check√ (重力BUFF 赋值为0)
      漂浮check√ (漂浮Bit 赋值为1)
      DV首先上升为1.1倍
      然后继续增加A,A的计算公式为:
      A=25+威力/8,最低取1,最高取1000
      羽化魔法在320级时,A值可达到上限1000,此时有效期为540回合
      在1000级时,A值不变,有效期上升为1628回合
      这里和魔法表1.53版已有不同,应该是作者在后续版本中延长了有效期所致(同时增加了上限?)。
      *注:如未特殊说明,所有魔法增幅皆以1.62版本中2.4倍最大值为准。


      IP属地:湖南24楼2017-01-13 10:50
      收起回复
        【魔法系列】02
        (b)集中(prm_271 == 43)
        介绍说明为:感知与意志 10% + A 上升/耐睡眠/耐混乱
        BUFF有效期=20+威力/10 回合
        耐睡眠/耐混乱check√ (睡眠,混乱BUFF 赋值为0)
        感知和意志首先上升为1.1倍
        然后继续增加A,A的计算公式为:
        A=5+威力/30
        集中魔法没有上限,1000级时,A值可达809,有效期2432回合
        2000级时,A值为1609,有效期为4832回合。
        (c) 智者的加护(prm_271 == 12)
        介绍说明为:学习与魔力 10% + A 上升,读书 10% + B 上升
        BUFF有效期=20+威力/10 回合
        学习与魔力首先上升为1.1倍
        然后继续增加A,A的计算公式为:
        A=10+威力/40
        读书首先上升为1.1倍
        然后继续增加B,B的计算公式为:
        B=3+威力/100
        智者的加护魔法没有上限,1000级时,A值可达613,B值为244,有效期2432回合
        2000级时,A值为1213,B值为484,有效期为4832回合。
        (d) 神圣之盾(prm_271 == 1)
        介绍说明为:PV 10% + A 上升/盾 20% 上升/恐怖耐性
        BUFF有效期=20+威力/15 回合
        盾20%上升check√
        耐恐怖check√ (恐怖BUFF 赋值为0)
        PV首先上升为1.1倍
        然后继续增加A,A的计算公式为:
        A=25+威力/8,最低取1,最高取1000
        神圣之盾魔法在320级时,A值可达到上限1000,此时有效期为540回合
        在1000级时,A值不变,有效期上升为1628回合
        这里和魔法表1.53版已有不同,改动同羽化魔法。
        (e) 再生(prm_271 == 3)
        介绍说明为:强化了体力与耐力的回复
        BUFF有效期=10+威力/10,最低11,最高200 回合
        该魔法效果只有一个,就是将治愈技能增加A
        A=(30+威力/20)/2
        再生魔法没有上限,1000级时,A值可达618,有效期200回合
        2000级时,A值为1218,有效期不变。
        另外,目测再生BUFF可以每10回合恢复4SP,所以平时累不累的都可以考虑随时来一发。
        *注:每次除法都要取整,下同。


        IP属地:湖南26楼2017-01-13 11:37
        收起回复
          【魔法系列】03
          源码版本:V1.64
          测试环境:1.62Custom
          (f)属性保护(prm_271 == 4)
          介绍说明为:火冷雷暗幻毒狱音神混抗性的获得
          BUFF有效期=10+威力/20 回合
          相应抗性(除魔法外全抗性,共10种)增加A
          A=80+威力/20
          属性保护魔法没有上限,1000级时抗性增加1286,持续1216回合。
          2000级时抗性增加2486,持续2416回合。
          (g)加速(prm_271 == 5)
          介绍说明为:增加速度
          BUFF有效期=8+威力/20 回合
          速度增加A(最大值封顶800)
          A=50+威力/10
          加速魔法在308级时,A值可达到上限800,此时有效期为383回合。
          在1000级时,A值不变,有效期上升为1214回合。
          (h)振奋(prm_271 == 7)
          介绍说明为:力量与灵巧 10% + A 上升/耐恐怖/耐混乱
          BUFF有效期=20+威力/10 回合
          耐恐怖/耐混乱check√ (恐怖,混乱BUFF 赋值为0)
          力量与灵巧首先上升为1.1倍
          然后继续增加A,A的计算公式为:
          A=5+威力/30
          振奋魔法没有上限,1000级时,A值可达809,有效期2432回合
          2000级时,A值为1609,有效期为4832回合。
          增幅数据同集中魔法。
          (i)契约(prm_271 == 18)
          介绍说明为:有A%几率使致命的伤害归0
          BUFF有效期固定为66回合
          A值最小取25,最大取80,计算公式为:
          A=25+威力/17
          契约魔法在34级时,即可封顶80%概率。
          但由于每次使用后BUFF取消,实际上使用频率会意外的高...
          那么BUFF魔法暂时就到此为止了,对PC而言,练好BUFF也是十分重要的属性提升方式哦。


          IP属地:湖南27楼2017-01-13 19:41
          收起回复
            【经验获取完整版】
            源码版本:V1.64
            测试环境:1.62Custom
            这个函数的作用在于将某个原始经验增加量(参考等级,潜力等各种因素)修正为实际增加量。
            属性,技能,魔法的经验增加都由此函数控制。
            值得一提的是,经验减少同样由该函数控制,此时增加量为负值。
            位置:#deffunc skillexp int prm_623, int prm_624, int prm_625, int prm_626, int prm_627
            其中prm_623代表技能编号,prm_624代表角色编号,prm_625代表原始经验增加量(以下简称原始增加量)
            prm_626与技能对应属性经验获取有关,prm_627与EXP获取相关。
            在本函数中,技能等级如未特殊说明,一律采用裸装等级。(考虑各种加成时描述为[有效技能/属性])
            (01) 如果对应技能等级为0,那么完全不增加经验,程序结束。(就是说一定要先学技能才可以)
            (02) 如果原始增加量为0,那么完全不增加经验,程序结束。(呃...好有道理我竟无言以对)
            (03) 技能对应的属性,增加 prm_625 / (2 + prm_626) 经验。(以此处结果为原始增加量重新执行skillexp函数,增加对应属性经验)
            (04) 如果对应技能潜力为0,那么完全不增加经验,程序结束。(该塞钱塞钱,该嗑药嗑药,你懂哒)
            (05) 由此开始正式计算:
            经验A=原始增加量*技能潜能/(100+技能等级*10)
            <i>如果八维,速度,幸运处于成长期。(有效果为正整数m的BUFF),那么经验A(重新赋值为)=经验A*(100+m)/100
            <ii>如果此时经验A为0,那么有int(技能等级/10)的概率,经验A上调为1,(程序继续)。否则完全不增加经验,程序结束。
            此外,如果原始增加量为负值(即经验减少的情况),那么<i>-<ii>不参与计算,经验A直接=原始增加量(该值为负)。
            <iii>如果身处巨蛋空间(当前map=35),或者身为分裂生物(bit23为1),那么经验A归0
            <iv>如果技能编号大于99(非属性,技能or魔法),且 var_64(175) != 11111111 (对应gdata第175项数值)
            那么执行奖励经验修正,奖励修正发生条件为rnd([有效学习属性]+50)>rnd(1000)。rnd(r)表示从0到r-1的随机整数。
            效果为将经验A修正为经验A*B,其中B=int(sqrt([有效学习属性])/10)+2,B值下限为2,上限为5
            <v>如果技能编号大于99且为队友,那么经验A扩大为4倍。
            <vi>经验A大于20000时会修正为20000上限。
            <vii>如果游戏模式为20倍经验模式,那么此时经验A扩大为20倍。
            <viii>如果困倦度>49(似乎是达到红色睡眠提醒),那么PC和队友都不会增加经验。
            <ix>(根据经验A做)一些关于EXP经验的修正,不重要,略过。
            <x>最后,将当前技能的经验千分比(即等级后小数点后三位)叠加到经验A上。
            (06)根据此时的经验A,对技能等级,经验千分比,潜力做调整。调整规律为:
            <i>如果经验A满1000,达成升级条件,那么每升一级:
            潜力*0.9处理,如果技能编号>=400(即魔法),则再次*0.9处理
            如果此时潜力小于1,那么重置为1。
            然后是一些文字输出提醒玩家有升级。
            <ii> 如果经验A小于0,即达成降级条件,那么每降一级:
            潜力*1.1+1处理(注意魔法降级没有再次*1.1,虽然比起魔法可能只有属性才会降级)。
            如果潜力>400,则修正为400上限。
            另外,降级最多只能降到1级,经验千分比为0的情况。
            然后是一些文字输出提醒玩家有降级。
            <iii>其他情况(不升级也不降级)时,直接将等级千分比赋值为经验A,实现了经验的获取。
            此时没有文字输出。
            以上便是skillexp的全部代码解析。
            另外在测试时发现如果身为分裂生物,使用神谕时确实不增加经验,但是吃药草套餐(或面包料理)仍然有效。
            而如果修改当前地图为编号35,那么两者皆不增加经验。
            推测食物对于经验的变动由另一函数决定。(先mark之,后面研究食物代码的时候再看吧)


            IP属地:湖南28楼2017-01-19 08:54
            收起回复
              诶,另外总是这样直接(很辛苦的)摆结论有点亏呀,不太符合楼主长(骗)期(回)水(复)的初衷
              那么从现在开始把一些备忘也放上来好了。于是楼主从此走上了挖坑不填的幸福生活(大雾)
              首先是魔道具,联动 /p/4768671993 30小时内 击杀1个里神
              之前以为魔道具大削所以这个方法有些过时就没太留意。后来发现版本写的1.60fix再看了眼发帖时间觉得还是自己错过了好东西,所以就准备很积极的(并没有)研究起魔道具来。
              目前的初步测试结果是:
              (1) 对于魔法杖类,法术等级=魔道具等级+魔力加成。(前人帖子有提及,见楼中楼)
              由于享受各种2倍加成(魔法装备加成无效),威力还是很可观的。算是当前版本练习魔道具的最大动力(至于文中提及的350魔道具打里神一发12W是否依然成立还有待研究)
              (2) 对于药水类,法术等级=20+魔道具等级/2,但是不享受魔法威力加成。这就意味着,2000等级的魔道具,不过能额外提升振奋340点的力量和灵巧(而500级魔法等级已经是409的提升)。也就是说,药水类的BUFF,只能指望基础10%。即强力宠物大概能有个100-200的提升吧。
              (3) 对于卷轴类,效果与魔道具无关,对此楼主只能表示:拔拔不想理你...
              所以,就稍微攒一下药水好了。


              IP属地:湖南29楼2017-01-19 09:53
              收起回复
                接着上楼说,由于魔法杖类基本只有攻击治愈和加速/减速(还有非战斗类的魔力杖),BUFF类普遍集中在药水。
                因此在魔法大成前,以上都是比较值得期待的姿势,同时BUFF药水也多少能为强力队友锦上添花吧。
                因此这么想的话,距离魔道具邪道杀神,LZ目前只剩下最后200级的魔道具升级了嘛...如果稍微认真刷刷的话...咳咳
                然后是邪道杀神法2,栗子杀神。
                这个无论是上面那个帖子还是某个精华帖都有提到。为此楼主在一两个月前还专门研究了一下囤积栗子的姿势。
                不过在实用之前还是要稍微看一下相关代码公式,毕竟很多数据精华都神隐了想要多学一门手艺也只能自力更生了...
                最后是邪道杀神法3,咒酒杀神。
                也是帖子里面提到的,非常imba。比起楼主在系列贴2里面咒酒杀中位神。利用速度差异加快进度无疑是省时省力的好办法。
                需要研究的代码是,厌食症中吃到饭团,以及噎死(好像是1/3?)的概率,毕竟之前亲测半小时直接吐死都刷不出饭团,所以不确认下的话感觉还是有点虚。
                咒酒噎死是目前最好的邪道,基本上LZ已经满足了全部条件。所以里神武什么的,LZ表示近日有机会的话就不客气的笑纳了。
                于是LZ漫漫屠神路系列就此半路太监...(大雾)
                诶,其实这么执着于邪道杀神,主要还是希望提前拿里神武啦。LZ还是会继续养成角色,有朝一日正面肛神,走进千级觉醒新时代的~


                IP属地:湖南30楼2017-01-19 10:12
                回复
                  2025-05-24 11:06:40
                  广告
                  ……来拆拆暴击相关数据吧(


                  IP属地:中国澳门来自手机贴吧31楼2017-01-19 20:03
                  回复
                    【食物系统初探】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/Technical
                    LZ就不再特意重复一个中文版了。
                    那么怎么看这个表呢?比如水果(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> 还有食物卖价和食物营养是两回事,贵的不代表好的。所以料理最主要的用途是提价卖钱。


                    IP属地:湖南32楼2017-01-21 11:23
                    收起回复
                      【食物系统初探】2
                      源码版本:V1.64
                      测试环境:1.62Custom
                      接下来终于到楼主真正想研究的内容了。我们接着32L说。
                      (12) 如果进食角色是大妖精(收获神神仆),那么吃到饱食度4000以上食物后,会吐出1-3个种子。
                      【未整理】
                      (13) 如果进食角色是白金鹅(财富神神仆),那么吃到饱食度5000以上食物后,会吐出1枚白金币。(好弱...)
                      【未整理】
                      (14) 如果食物是小妹妹的肉,那么会做两次随机判定。
                      生命力和法力分别有 2000/相应裸装等级^2的概率 +1点。
                      同时所有技能潜力加1-10%
                      这相当于,33生命力以前,每吃1块肉必增1点生命力。(对于贫血种族)
                      100生命力时,1块肉大概有20%的概率增加生命力。(对于一般种族)
                      500生命力时,1块肉大概有0.8%的概率增加生命力。(食用极限)
                      于是好羡慕死灵神的天生500法力啊...
                      (15) 如果食物是手制巧克力,那么会回一定的HPMP和SP。还可能会根据类型附加一些BUFF。
                      【未整理】
                      (16) 一些加属性的食物,无视潜力(skillmod)增加固定经验。
                      镜饼,幸运经验固定+2000。(即2点属性,下同)
                      兔子的尾巴, 幸运经验固定+1000。
                      幸运苹果, 幸运经验固定+20000。
                      英雄奶酪,生命力固定+3000。
                      魔法果,法力固定+3000。
                      (17) 如果食物是伊斯烧,1/5概率增加幻惑抗性,增加5-14点San值。
                      (18) 如果食物是库莱姆莓,增加1-10点San值。
                      (19) 如果食物是幸运饼干,那么会给出一些小贴士。
                      祝福的是真的,未祝福的是假的。
                      (20) 如果食物是妹妹的爱心便当,-30San值。
                      (21) 如果食物是特制深海便当,会增加2500强度的超再生和500强度的再生BUFF,恢复1/8 HP,以及增加50回合的湿身状态。
                      (22) 如果食物是玉手便当,那么:
                      祝福状态增加年龄1000-2999岁,普通状态增加年龄100-299岁,诅咒状态增加年龄10-29岁。
                      (23) 如果食物是逆玉手便当,那么:
                      祝福状态变为0岁,普通状态变为6岁,诅咒状态变为10岁。
                      (24) 如果食物是不可思议国度的蘑菇汤,那么:
                      身高变为当前身高与150cm的中间值,体重变为当前体重与40KG的中间值。(兵长化!)
                      (25) 如果食物是禁忌的肉块。那么角色的显示性别会随之反转。
                      祝福状态正常反转,一般状态问号反转(伪娘这种),诅咒状态就是双性和无性两者切换。
                      附加一句。只有PC使用该食物才会真正从数据层面[cdata]反转性别。
                      对于宠物只是文字显示反转,实际性别还是未变。有点类似携带Y染色体的大姐姐这样的感觉。
                      (26) 如果食物有毒(bit),那么进食角色会扣血。送给别人吃的话视情况-善恶1点。
                      (27) 如果食物加了春天的药(bit),那么PC会表示兴奋,其他人则有可能生产蛋或奶,PC善恶-10。
                      同时好感在100以下时,会执行modimp程序提高30点好感。(modimp类似skillexp,会对30做修正)
                      【未整理】
                      (28) 如果PC食用了面包系食物或者内裤,那么在gdata相应位置或累加食用次数记录。
                      (29) 将食物(装备)中的附魔转换为相应BUFF或属性追加,其中:
                      <吸收攻击对象体力>:恢复rnd(强度/50+1)+1的SP。
                      <吸收攻击对象魔力>:恢复(rnd(强度/25+1)+1)/5的MP。
                      <终结一切>: 执行 evadd 18, var_243
                      <偶尔时停>:产生int(强度/100)+2回合的时停。
                      <属性增加>:调用skillexp,相应属性增加(INT(强度/50)+1)*100*A经验。
                      若进食角色为PC,则A=1,否则A=6。
                      这里简单说明一下,属性增加的INT(强度/50)+1就是装备上显示的增加量。
                      比如吃掉一个+1200力量的装备,可以为PC提供120000经验。
                      可以对400潜力,500力量的PC提供9点属性的提升,1000力量的PC提供4点。
                      其实也没有想象中辣么多对不对。
                      所以当说明这个方法同样可以为生命力法力速度幸运带来经验的时候,楼主的内心毫无波动。
                      <属性维持>(适用八维+速度):增加2000回合的属性成长期,成长幅度为(INT(强度/50)+1)*5*A
                      若进食角色为PC,则A=1,否则A=3。
                      根据28L 【经验获取完整版】,此处获得的成长幅度(可通过c键查看BUFF获知)即(05)<i>中的正整数m。
                      属性维持还是蛮吸引人的,中后期值得好好利用。
                      rnd(A)代表0到A-1的随机整数,具体强度可以通过Elona ME查看。
                      幸运够高时,生成装备的附魔强度普遍也会提高。
                      (30) 最后,如果食物是祝福状态,那么进入一个幸运日的判定。【未整理】
                      以上,便是食物系统的进阶解析。
                      由于相应分析以列举在条目中,这里就不再赘述啦。


                      IP属地:湖南34楼2017-01-21 13:06
                      收起回复
                        关于汉化版1.63 Elona Me 无法锁定角色名称问题的解决
                        汉化版Me无法提供角色姓名的锁定貌似是个老问题了。
                        这两天想制作一份Elona Custom 1.62的Me文件,也是遇到同样问题。
                        然而E+原版1.62(对应ME1.44)就完全没事儿,
                        甚至可以说任意版本编号的E+原版都可以用同样的Me文件。
                        这就不禁让人怀疑是由于第三方再编译所导致的指针变动。
                        因而每个不同版本的中文版,或者是英文的Elona Custom,都要随每个版本的变动而重新更正指针。
                        改就改嘛,其他都还好说,唯有角色姓名这一个指针是无法用传统办法通过CE锁定的。
                        哪怕用类似修改其他指针的办法找到PC姓名(0号角色)的基址,也会发现往后的角色姓名根本对不上号。
                        稍微看了一下这段内存,发现问题源于两点:
                        一是内存里面储存姓名等信息的顺序,其实和cdatan的排列顺序正好相反。(即倒序排列)
                        二是内存中,0号角色和1号角色完全不相连。0号角色处于段落的开头,1号角色却正好处于段落结尾。
                        当然,第二点属于猜测,因为0号角色姓名的地址比1号小非常多。(偏移量为十进制660624)
                        如果假设第二点是成立的,那么显然我们只要在ME中修改两处,就可以完成所有非PC角色的姓名查找:

                        1 将N值偏移从880改为-880。实现倒序排列。
                        2 修改OFFSET为 660624+880=661504。这个修改是我们从倒序逆推一个虚拟的0号角色地址(正好在1号角色后面一个位置),以这个值作为cdatan变量的基址指针。那么这个虚拟基址与实际基址(即0号角色姓名的虚拟位置和实际位置)之差就是上面的计算结果。
                        OK,放到1.63汉化版里测试一下,结果可行。队友,冒险者,以及当前地图的其他角色姓名都可以正常显示。
                        可以认为改进是成功的。
                        @剑牛黑猫控 大大如果感兴趣不妨参考一下哈~
                        另外我顺便放了份改好的 Skills.yas 及 States.yas 在 00代码相关 里。大家有需要欢迎自取。


                        IP属地:湖南35楼2017-01-23 08:58
                        收起回复
                          以前搞过的,略麻烦。
                          其实只要右键记事本打开cdatan.s1,随便改


                          IP属地:重庆来自Android客户端36楼2017-01-23 09:53
                          收起回复
                            【今天的我,开始魔改】
                            呃,以前憋着不改主要是想多感受E+原版风格。然后摸鱼了两个多月后,忽然感觉魔改起来没什么包袱了。
                            个人魔改的风格类似E+ custom,仅仅是为了节省游戏外时间,所以游戏内做不到的不会改。
                            好哒,那么第一个魔改点就是重要累积型道具名称了。
                            (广告,E+ Custom: https://tieba.baidu.com/p/5065908293
                            (0)由于自己反编译的hsp可能存在一些莫名BUG,休整起来很麻烦(主要很难保证完全无隐患),所以直接用的网上的1.66反编译文件:http://elona.wikia.com/wiki/Thread:22264 中搜索 Here it is, 1.66.3 Hotfix 1 on
                            (1)找个文字编写软件打开source.hsp.然后对照游戏中的名字在程序中的道具名前加特殊符号。
                            比如我们想给丰收书魔法书加标记。那么对照游戏,搜索: harvest"
                            最后加上" 是因为harvest后面没有文字,加上可以帮助减少搜索范围。(不加也可以,只要找对就行)
                            如果找对位置的话,那么应该是类似下面这样的结构:

                            (2)我们在英文名harvest前面加上五个实心方块:■■■■■
                            后,就相当于做好标记了。其他重要道具类同,结果如下:

                            次一等的重要道具可以用不同类别的特殊符号表示,比如:

                            (3)改好后保存,然后编译hsp就可以把执行文件放到游戏主目录运行了。效果如下:

                            这样的话,以后再从商店里买重要道具就很方便了,扫一眼过去把有标记的全部买下,连名字都不用看,也不用担心会漏掉。地城的随机掉落收集起来也会因此方便一些。


                            IP属地:湖南37楼2017-04-12 02:08
                            回复
                              2025-05-24 11:00:40
                              广告
                              魔改大赞!


                              IP属地:湖北来自Android客户端40楼2017-04-13 07:28
                              回复