浆糊论坛-RO小站's Archiver

上杉谦信 发表于 2005-12-27 14:23

[quote]原帖由 [i]MiRacle·Ky☆[/i] 于 2005-12-26 23:27 发表
(INT*0.281)*(1+VIT*142/100)*skilllv

这个是技能模拟器里给出的公式  
我时间到了 哪位有空带数值进去算下看有点启示没 [/quote]

I95  6010
I96  6080

对于这个公式,INT的偏导数是0.281*(1+Vit*142/100)*10
那么对于VIT=10的情况下,INT每增加1,伤害增加值应该很近似70
对VIT=10时的INT偏导数的值=0.281*(1+14.2)*10=42.7

同样,对于VIT=70时,这个数据也不对
如果考虑因取整而产生的误差的话,那么这个误差会这么大吗?

这个公式我不太认同

[[i] 本帖最后由 上杉谦信 于 2005-12-27 14:27 编辑 [/i]]

永恒の繁星 发表于 2005-12-27 14:28

原来推导(倒)公式已经被全盘否定鸟..

メイドの心 发表于 2005-12-27 17:17

那个。。。54楼的问题。。。
有人去验证过了没。。。。

如果我推测的没错,那些伤害值,可是会有0-9点的误差啊。。。
(我觉得,最好是用怪物情报测Mob的HP残量,对人战本身会有个减半的算法在内了)


--------
当然,还有种可能,这技能的算法是,先得出一个伤害值(根据某种公式),技能等级,单纯的就是把该伤害值乘以一个倍数。。。如果是这样。。。:ph34r:

例如:
1.0~1.9->1
10倍后
10~19->10
理应打10~19点伤害,但是由于取整问题,实际都只打了10点伤害。

[[i] 本帖最后由 メイドの心 于 2005-12-27 17:37 编辑 [/i]]

首席 发表于 2005-12-27 17:30

同意楼上的,最大的困难来自于实测数据本身已经是经过取整之后了

永恒の繁星 发表于 2005-12-27 18:14

[quote]原帖由 [i]メイドの心[/i] 于 2005-12-27 17:17 发表
那个。。。54楼的问题。。。
有人去验证过了没。。。。

如果我推测的没错,那些伤害值,可是会有0-9点的误差啊。。。
(我觉得,最好是用怪物情报测Mob的HP残量,对人战本身会有个减半的算法在内了)


- ... [/quote]


似乎让计算更加麻烦了-O-

auglock18 发表于 2005-12-27 18:48

我只能说
公式可能类似于S=1/2at^
匀加速运动

[[i] 本帖最后由 auglock18 于 2005-12-27 18:49 编辑 [/i]]

八仔 发表于 2005-12-27 19:04

我感觉
相同i的情况下
v越高影响越小
所以v不应该是平方关系吧。。。

auglock18 发表于 2005-12-27 19:11

怎么说呢
如果能取得更多的数据,也许公式就能推出来了
比如int不变,取得vit从0~n的n+1个伤害值
或者vit不变,取得int从1~m的m个伤害值
感觉应该用控制变量法做

rufus 发表于 2005-12-27 20:32

[code]
        case CR_ACIDDEMONSTRATION:
                //This equation is not official, but it's the closest to the official one
                //that Viccious Pucca and the other folks at the forums could come up with. [Skotlex]
                damage = int_ * (int)(sqrt(100*status_get_vit(target))) / 3;
                if (tsd) damage/=2;
                aflag = (aflag&~BF_RANGEMASK)|BF_LONG;
                break;
        }
[/code]
仅供参考,可能完全不对

永恒の繁星 发表于 2005-12-27 20:35

楼上能不能把公式翻成我能看懂的...

らёгαρん 发表于 2005-12-27 20:39

100*VIT
开平方
除以3
取整
结果*INT
最终伤害.....
计算步骤是这样吧...

rufus 发表于 2005-12-27 20:39

damage = int * Floor( (100*Vit)^0.5 ) / 3;

永恒の繁星 发表于 2005-12-27 20:39

原来...如此

らёгαρん 发表于 2005-12-27 20:40

那个(INT)是取整吧......

喜樂 发表于 2005-12-27 20:42

[quote]
[color=Red]damage = int_ * (int)(sqrt(100*status_get_vit(target))) / 3[/color][/quote]

變作數學公式是怎麼樣呢?

[[i] 本帖最后由 喜樂 于 2005-12-27 20:43 编辑 [/i]]

rufus 发表于 2005-12-27 20:46

都写了,自己看
上面是eAthena的猜测算法,其实也就是和我们一样的在猜

国内用SourceForge真慢
jAthena有更新的算法,继续去找找看

shine7th 发表于 2005-12-27 20:49

damage = int_ * (int)(sqrt(100*status_get_vit(target))) / 3;
                if (tsd) damage/=2;
      

这个····我个人意思上的翻译

伤害=练金INT×练金INT(sqrt(100×攻击目标的VIT))/3                              sqrt就是返还平方根就是(100*目标VIT)的平方根·····
tsd是什么意思····天啊···[???]

永恒の繁星 发表于 2005-12-27 20:50

-v- 虽然它猜错了`不过楼上的楼上加油

[[i] 本帖最后由 永恒の繁星 于 2005-12-27 20:53 编辑 [/i]]

喜樂 发表于 2005-12-27 20:52

[quote]原帖由 [i]rufus[/i] 于 2005-12-27 20:39 发表
damage = int * Floor( (100*Vit)^0.5 ) / 3; [/quote]
這個是對人的還是對怪的呢?

らёгαρん 发表于 2005-12-27 20:53

if TSD 是判断攻击对象是否玩家.....
非代码模式的都写出来了......还猜什么猜.....

rufus 发表于 2005-12-27 20:53

[code]
case CR_ACIDDEMONSTRATION:        /* アシッドデモンストレーション */
        hitrate= 1000000;
        damage = s_int*281/1000;
        damage2 = s_int*281/1000;
        if(t_vit>6){
                damage *= 1+t_vit*142/100;
                damage2 *= 1+t_vit*142/100;
        }
        if(target->type==BL_PC){
                damage /= 2;
                damage2 /= 2;
        }
        damage *= skill_lv;
        damage2 *= skill_lv;
        div_=skill_get_num( skill_num,skill_lv );
        s_ele = 0;
        s_ele_ = 0;
        no_cardfix = 1;
        flag=(flag&~BF_RANGEMASK)|BF_LONG;
        break;
        case ITM_TOMAHAWK:                /* トマホーク投げ */
                flag=(flag&~BF_RANGEMASK)|BF_LONG;
                break;
        }
}[/code]
jAthena的写法
复杂的多,楼楼上两个好好看贴了么,在搞什么……

也就是
对象vit>6
damage = int*0.281*(1+vit*1.42)*skill_lv
对象vit<=6
damage = int*0.281*skill_lv

嗯,发现上面有一样的了

[[i] 本帖最后由 rufus 于 2005-12-27 21:08 编辑 [/i]]

永恒の繁星 发表于 2005-12-27 20:54

OTL 怎么感觉像最初的公式....
说实话`没看懂

[[i] 本帖最后由 永恒の繁星 于 2005-12-27 20:57 编辑 [/i]]

keith 发表于 2005-12-27 20:57

事实上rufus贴的。。也是别人的猜测。。。

喜樂 发表于 2005-12-27 20:59

我自閉算了...

[[i] 本帖最后由 喜樂 于 2005-12-27 21:06 编辑 [/i]]

rufus 发表于 2005-12-27 21:03

谁教育一下楼上……
感觉哈浆糊

我都说清楚了,可能完全不对
只是贴一些别人也在做的猜测而已

看客 发表于 2005-12-27 21:42

越来越复杂了,期待早日有rufus大大做的计算器

永恒の繁星 发表于 2005-12-27 21:43

推算对相同VIT  每点INT的伤害增量为 (230-vit)*vit/300

asinny 发表于 2005-12-27 21:50

感觉都不是很准确
我创造者 INT 115的情况下投酋长 52240
              INT 125的情况下投 59470
用上面这些公式计算的话相差都挺大的

celestials 发表于 2005-12-27 21:54

鼓掌

你们才是ro的忠实玩家。

我已经有基本的思路了。这个公式有别于所有其他ro的公式。难道真的是从魔兽那里得来的灵感?

出云隐者 发表于 2005-12-27 21:57

越看越看不懂了……

页: 1 2 [3] 4 5

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.