(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]] 原来推导(倒)公式已经被全盘否定鸟.. 那个。。。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]] 同意楼上的,最大的困难来自于实测数据本身已经是经过取整之后了 [quote]原帖由 [i]メイドの心[/i] 于 2005-12-27 17:17 发表
那个。。。54楼的问题。。。
有人去验证过了没。。。。
如果我推测的没错,那些伤害值,可是会有0-9点的误差啊。。。
(我觉得,最好是用怪物情报测Mob的HP残量,对人战本身会有个减半的算法在内了)
- ... [/quote]
似乎让计算更加麻烦了-O- 我只能说
公式可能类似于S=1/2at^
匀加速运动
[[i] 本帖最后由 auglock18 于 2005-12-27 18:49 编辑 [/i]] 我感觉
相同i的情况下
v越高影响越小
所以v不应该是平方关系吧。。。 怎么说呢
如果能取得更多的数据,也许公式就能推出来了
比如int不变,取得vit从0~n的n+1个伤害值
或者vit不变,取得int从1~m的m个伤害值
感觉应该用控制变量法做 [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]
仅供参考,可能完全不对 楼上能不能把公式翻成我能看懂的... 100*VIT
开平方
除以3
取整
结果*INT
最终伤害.....
计算步骤是这样吧... damage = int * Floor( (100*Vit)^0.5 ) / 3; 原来...如此 那个(INT)是取整吧...... [quote]
[color=Red]damage = int_ * (int)(sqrt(100*status_get_vit(target))) / 3[/color][/quote]
變作數學公式是怎麼樣呢?
[[i] 本帖最后由 喜樂 于 2005-12-27 20:43 编辑 [/i]] 都写了,自己看
上面是eAthena的猜测算法,其实也就是和我们一样的在猜
国内用SourceForge真慢
jAthena有更新的算法,继续去找找看 damage = int_ * (int)(sqrt(100*status_get_vit(target))) / 3;
if (tsd) damage/=2;
这个····我个人意思上的翻译
伤害=练金INT×练金INT(sqrt(100×攻击目标的VIT))/3 sqrt就是返还平方根就是(100*目标VIT)的平方根·····
tsd是什么意思····天啊···[???] -v- 虽然它猜错了`不过楼上的楼上加油
[[i] 本帖最后由 永恒の繁星 于 2005-12-27 20:53 编辑 [/i]] [quote]原帖由 [i]rufus[/i] 于 2005-12-27 20:39 发表
damage = int * Floor( (100*Vit)^0.5 ) / 3; [/quote]
這個是對人的還是對怪的呢? if TSD 是判断攻击对象是否玩家.....
非代码模式的都写出来了......还猜什么猜..... [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]] OTL 怎么感觉像最初的公式....
说实话`没看懂
[[i] 本帖最后由 永恒の繁星 于 2005-12-27 20:57 编辑 [/i]] 事实上rufus贴的。。也是别人的猜测。。。 我自閉算了...
[[i] 本帖最后由 喜樂 于 2005-12-27 21:06 编辑 [/i]] 谁教育一下楼上……
感觉哈浆糊
我都说清楚了,可能完全不对
只是贴一些别人也在做的猜测而已 越来越复杂了,期待早日有rufus大大做的计算器 推算对相同VIT 每点INT的伤害增量为 (230-vit)*vit/300 感觉都不是很准确
我创造者 INT 115的情况下投酋长 52240
INT 125的情况下投 59470
用上面这些公式计算的话相差都挺大的
鼓掌
你们才是ro的忠实玩家。我已经有基本的思路了。这个公式有别于所有其他ro的公式。难道真的是从魔兽那里得来的灵感? 越看越看不懂了……