题:分别计算原始问题与对偶问题伤害100加强30%伤害是多少

查看: 10024|回复: 64
贡献一个骑砍伤害计算公式
在线时间 小时
本帖最后由 独孤后人 于
14:02 编辑
&&骑砍战团的完整伤害计算公式一直是T社的商业机密,但是WSE的作者在11年就通过逆向骑砍程序得到了这个计算公式并在网上公布了出来。这也就是网上很多伤害模拟器使用的公式的来源了。
WSE作者的原贴在:
我在后面会把代码搬运过来方便大家直接看。
一、原始伤害raw_damage
&&首先,是计算原始伤害(raw_damage),这一步以武器伤害的数值为基准,通过蓄力时间、速度奖励、熟练度、技能等级、天气、角色力量、双手惩罚等因素进行数值的计算和修正:
if hold_time &= 1.1
& && &&&hold_bonus = 1.2
elif hold_time &= 0.6:
& && &&&hold_bonus = (1.1 - hold_time) * 0.6 + 1.2
elif hold_time &= 0.5:
& && &&&hold_bonus = 1.5
else:
& && &&&hold_bonus = hold_time + 1.0
raw_damage = weapon_damage * (clamp(hold_bonus, 1.0, 2.0) * 0.5 + 0.5)
if weapon_type == 'one_handed' or weapon_type == 'two_handed' or weapon_type == 'polearm':
& && &&&raw_damage *= math.pow(melee_damage_speed_power, speed_bonus)
elif weapon_type == 'crossbow' or weapon_type == 'bow' or weapon_type == 'throwing':
& && &&&raw_damage *= math.pow(missile_damage_speed_power, speed_bonus)
if weapon_type == 'crossbow':
& && &&&if raining:
& && && && && & raw_damage *= 0.75
else:
& && &&&raw_damage *= proficiency * 0.01 * 0.15 + 0.85
& && &&&
& && &&&if weapon_type == 'bow':
& && && && && & raw_damage *= min(power_draw, difficulty + 4) * 0.14 + 1
& && && && && &
& && && && && & if mounted:
& && && && && && && && &raw_damage *= horse_archery * 0.019 + 0.8
& && && && && &
& && && && && & if raining:
& && && && && && && && &raw_damage *= 0.9
& && &&&elif weapon_type == 'throwing':
& && && && && & raw_damage *= power_throw * 0.1 + 1.0
& && && && && &
& && && && && & if mounted:
& && && && && && && && &raw_damage *= horse_archery * 0.019 + 0.8
& && &&&elif weapon_type == 'one_handed' or weapon_type == 'two_handed' or weapon_type == 'polearm':
& && && && && & raw_damage *= power_strike * 0.08 + 1.0
& && &&&raw_damage += strength / 5.0
& && &&&if (weapon_type == 'two_handed' or weapon_type == 'polearm') and (has_shield or mounted):
& && && && && & raw_damage *= 0.85
& && && && && &
& && && && && & if weapon_type == 'polearm':
& && && && && && && && &raw_damage *= 0.85
& && && && && &
& && && && && & if weapon_flags & itp_two_handed:
& && && && && && && && &raw_damage *= 0.9
raw_damage = clamp(raw_damage, 0, 500)
复制代码
有几点说明一下
1.蓄力会有一个伤害的奖励。具体来说,蓄力奖励在0-0.5秒之间逐步上升,在0.5秒至0.6秒之间达到最大,即伤害为武器数值的1.5倍。 蓄力0.6秒之后就开始下降,蓄力超过1.1秒,奖励就变成1.2倍不会再变化。
2.熟练度会影响除弩之外所有武器的伤害, 至少保证加100点熟练度,才能保证发挥武器数值100%的伤害,此外,每额外100点熟练度会加15%的武器伤害。
3.弩比较特殊:
它的伤害既不受熟练度影响,也不受骑射技能影响,只在下雨天气时才会受到影响,发挥75% 的威力。这很符合真实世界中弩的特性 :一把上好弦的弩,即使交给小孩子来扣动扳机也是一样的威力。
4.另外,长杆和双手武器在持盾和骑马的时候,伤害会受到负面影响:
最惨的情况:双手长杆骑在马上(双手长杆就是无法拿盾的长杆),只能发挥原本65%的威力!
其次就是: 普通长杆骑着马,或者普通长杆拿个盾,只能发挥72.25% 。
再次就是:纯双手武器骑马(比如双手剑),只能发挥76.5%
单/双手两用的武器(比如手半剑),不论骑马还是持盾,都是发挥85%威力,这点相比纯双手武器还算好一些。
5.关于速度加成的奖励,战团有一个被诟病的BUG,就是两个速度相同,一前一后同向全速前进的骑兵(简单说就是追击战), 如果前面的骑兵向后面的骑兵射一箭或者丢一镖,那么在计算后面被打中骑兵受到的伤害时,会有一个很高的速度加成,相当于后面的骑兵正面冲向一个静止目标,被静止目标投出的道具射中时的相对速度。
这显然是不符合真实世界中的物理规则的,否则,你在高铁上拿小球砸一下你后座的人,就会出人命了。所以,追击一个有远程武器的骑兵,在此BUG影响下是有额外的风险的。
二、有效伤害effective_damage
&&经过代码1计算后得出了原始的伤害raw_damage后,下一步开始在原始伤害的基础上,进行护甲对伤害的吸收及减免,最后得出最终的有效伤害值effective_damage。这一部分的计算过程是存在随机值的,也就是说,骑砍里最终的有效伤害是在一定范围内随机浮动的,不受玩家控制。
armor = appropriate_armor_value_for_hit_location
if hit_shield_on_back:
& && &&&armor += shield_resistance + 10
soak_factor = armor * module.ini_soak_factor_for_damage_type
reduction_factor = armor * module.ini_reduction_factor_for_damage_type
if item_flags & itp_extra_penetration:
& && &&&soak_factor *= module.ini_extra_penetration_soak_factor
& && &&&reduction_factor *= module.ini_extra_penetration_reduction_factor
randomized_soak = (random.random() * 0.55 + 0.45) * soak_factor
randomized_damage = (random.random() * 0.1 + 0.9) * raw_damage
soaked_damage = randomized_damage - randomized_soak
if (soaked_damage & 0.0):
& && &&&soaked_damage = 0.0
randomized_reduction = math.exp((random.random() * 0.55 + 0.45) * reduction_factor * 0.014)
reduced_damage = (1.0 - 1.0 / randomized_reduction) * soaked_damage
if (reduction_factor & 0.00001):
& && &&&reduced_damage&&= 0.0
damage_difference = round(reduced_damage + randomized_soak)
effective_damage = randomized_damage - damage_difference
if hit_bone == head:
& && &&&effective_damage *= 1.2
& && &&&if item_is_ranged:
& && && && && & effective_damage *= 1.75
elif hit_bone == calf or hit_bone == thigh:
& && &&&effective_damage *= 0.9
effective_damage = clamp(effective_damage, 0.0, 500.0)
复制代码
&&简单来说,根据武器的伤害类型,护甲会吸收及减免一部分伤害,对不同伤害类型吸收减免的系数在module.ini里有定义。比较有意思的是,在计算完护甲对伤害的吸收及减免后,还有一个对击中部位的处理,即无论近战还是远程,打击头部都是最有效的(近战120%,远程210%),打击腿、脚部是伤害最低的(90%)。所以打架时劈头盖脸的乱砍准没错的,说不定就砍到大动脉了,哈哈。
&&另外,根据代码内容,背在背后的盾牌也大有用处。具体来说,如果敌人正好击中了你背后背盾牌的地方,那么在这一部分计算伤害减免的时候,你的护甲会按照被击打部位的护甲值+盾牌抗击+10 来计算,这可是很高的一个加强了呢,皮甲直接变板甲了有没有!
&&所以笔者本人在了解到这个公式后, 有时候拿双手武器向对方弓箭手冲锋时,在他射出箭时,我在躲箭时通常最后会屁股对着来箭方向,万一被射中背后,有盾牌还能少点伤害嘛~
&&其实在战团初期,大约还是测试版本的时候,背后盾牌有一个更逆天的设定,就是在盾牌在背后也能起到完全挡住远程武器的作用,这就和现在在手里拿着盾牌但是不举起来也能挡住箭是差不多的。后来因为影响平衡及游戏性,就改成现在这样了。
&&以上搬运来的代码只能算是伪代码。掌握了算法,就可以自己写出模拟器了。比如笔者之前写了一个CRPG的模拟器地址是
主要就是用的上面的公式,不过CRPG里面对伤害还有其他的附加处理,这里只把战团部分的主要代码分享出来供参考(PHP代码,非专业码农,将就看吧)。
function random()
& & return mt_rand()/mt_getrandmax();
//clamp a number just like how clamp() use in other language.
function clamp($x,$min,$max)
& & if ($x&$min){
& && &&&return $
& & }elseif ($x&$max){
& && &&&return $
& & }else{
& && &&&return $x;
function raw_damage($weapon_type,$weapon_damage,$difficulty,$hold_time,$speed_bonus,$strength,$proficiency,$power_skill,$horse_archery,$has_shield,$mounted,$raining)
& && &&&if(func_num_args()!=12){return -1;}
& && &&&$is_melee=($weapon_type==one_handed)||($weapon_type==two_handed)||($weapon_type==polearm);
& && &&&$is_ranged=($weapon_type==crossbow)||($weapon_type==bow)||($weapon_type==thrown);
& && &&&//$hold_time=round(random()*2, 2);//this is for test use.randomized a hold time from 0 - 2 seconds.
& && &&&if ($hold_time&=1.1){
& && && && && & $hold_bonus = 1.2;
& && &&&}elseif ($hold_time &= 0.6){
& && && && && & $hold_bonus = (1.1-$hold_time)*0.6+1.2;
& && &&&}elseif ($hold_time &= 0.5){
& && && && && & $hold_bonus = 1.5;
& && &&&}else{
& && && && && & $hold_bonus = $hold_time+1.0;
& && &&&$raw_damage = $weapon_damage*(clamp($hold_bonus,1.0,2.0)*0.5+0.5);
& && &&&if ($is_melee){
& && && && && & $raw_damage *= pow(melee_damage_speed_power,$speed_bonus);
& && &&&}elseif ($is_ranged){
& && && && && & $raw_damage *= pow(missile_damage_speed_power,$speed_bonus);
& && &&&if ($weapon_type==crossbow){
& && && && && & if ($raining){
& && && && && && && && &$raw_damage *= 0.75;
& && && && && & }
& && &&&}else{
& && && && && & $raw_damage *= $proficiency*0.01*0.15+0.85;
& && && && && & if ($weapon_type == bow){
& && && && && && && && &$raw_damage *= min($power_skill, $difficulty + 4) * 0.14 + 1;
& && && && && && && && &if ($mounted){
& && && && && && && && && && &&&$raw_damage *= $horse_archery * 0.019 + 0.8;
& && && && && && && && &}
& && && && && && && && &if ($raining){
& && && && && && && && && && &&&$raw_damage *= 0.9;
& && && && && && && && &}
& && && && && & }elseif ($weapon_type==thrown){
& && && && && && && && &$raw_damage *= $power_skill * 0.1 + 1.0;
& && && && && && && && &if ($mounted){
& && && && && && && && && && &&&$raw_damage *= $horse_archery * 0.019 + 0.8;
& && && && && && && && &}
& && && && && & }elseif ($is_melee){
& && && && && && && && &$raw_damage *= $power_skill * 0.08 + 1.0 ;
& && && && && & }
& && && && && & $raw_damage += $strength / 5.0;
& && && && && & if ((($weapon_type==two_handed)||($weapon_type==polearm)) && ($has_shield||$mounted)){
& && && && && && && && &$raw_damage *= 0.85;& & //2s,ps,2m,22m,pm,2pm, 2sm, psm
& && && && && && && && &if ($weapon_type==polearm){& & //ps,pm,psm,2pm
& && && && && && && && && && &&&$raw_damage *= 0.85;
& && && && && && && && &}& && &&&
& && && && && && && && &if ( (($weapon_type==two_handed)&&(!$has_shield)&&($mounted))||(($weapon_type==polearm)&&(!$has_shield)&&($mounted)) ){//22m,2pm
& && && && && && && && && && &&&$raw_damage *= 0.9;
& && && && && && && && &}
& && && && && & }
& && &&&$raw_damage = clamp($raw_damage, 0, 500);
& && &&&return $raw_
function effective_damage($hit_bone,$raw_damage,$damage_type,$extra_penetration,$hit_shield_on_back,$shield_resistance,$armor,$low_high)
& & if(func_num_args()!=8){return -1;}
& & $is_melee=($weapon_type==one_handed)||($weapon_type==two_handed)||($weapon_type==polearm);
& & $is_ranged=($weapon_type==crossbow)||($weapon_type==bow)||($weapon_type==thrown);
& & if( $damage_type==cut ){
& && &&&$soak_factor_for_damage_type=armor_soak_factor_against_
& && &&&$reduction_factor_for_damage_type=armor_reduction_factor_against_
& & }elseif ($damage_type=pierce){
& && &&&$soak_factor_for_damage_type=armor_soak_factor_against_
& && &&&$reduction_factor_for_damage_type=armor_reduction_factor_against_
& & }elseif ($damage_type=blunt){
& && &&&$soak_factor_for_damage_type=armor_soak_factor_against_
& && &&&$reduction_factor_for_damage_type=armor_reduction_factor_against_
& & if ($hit_shield_on_back){
& && &&&$armor += $shield_resistance+10;
& & $soak_factor= $armor*$soak_factor_for_damage_
& & $reduction_factor = $armor*$reduction_factor_for_damage_
& & if ($extra_penetration){
& && &&&$soak_factor *= extra_penetration_soak_
& && &&&$reduction_factor *= extra_penetration_reduction_
& & if ($low_high==highest){
& && &&&$randomized_soak= (0.0 + 0.45)*$soak_
& && &&&$randomized_damage= (0.1 + 0.9)*$raw_
& & }elseif ($low_high==lowest){
& && &&&$randomized_soak= (0.55 + 0.45)*$soak_
& && &&&$randomized_damage= (0.0 + 0.9)*$raw_
& & }elseif ($low_high==random){
& && &&&$randomized_soak= (random()*0.55 + 0.45)*$soak_
& && &&&$randomized_damage= (random()*0.1+0.9)*$raw_
& & $soaked_damage=$randomized_damage - $randomized_
& & if ($soaked_damage & 0.0){
& && &&&$soaked_damage=0;
& & if ($low_high==highest){
& && &&&$randomized_reduction = exp((0.0 + 0.45)*$reduction_factor*0.014);
& & }elseif ($low_high==lowest){
& && &&&$randomized_reduction = exp((0.55 + 0.45)*$reduction_factor*0.014);
& & }elseif ($low_high==random){& &
& && &&&$randomized_reduction = exp((random()*0.55+0.45)*$reduction_factor*0.014);
& & $reduced_damage = (1.0-1.0/$randomized_reduction)*$soaked_
& & if ($reduction_factor & 0.00001){
& && &&&$reduced_damage = 0.0;
& & $damage_difference = round($reduced_damage + $randomized_soak);
& & $effective_damage = $randomized_damage - $damage_
& & if ($hit_bone==head){
& && &&&$effective_damage*=1.2;
& && &&&if ($is_ranged){
& && && && &$effective_damage *= 1.75;
& & }elseif (($hit_bone==calf)||($hit_bone==thigh)){
& && &&&$effective_damage *= 0.9;
& & $effective_damage=clamp($effective_damage,0.0,500.0);
& & return $effective_
}
复制代码
另外,骑砍中远程飞行道具,随着飞行时间的增长,伤害就会下降,在击中目标后,会根据飞行时间计算伤害。 但具体计算公式还没有,希望有知道的骑友能补充一下。
题外话:国内的MOD似乎侧重于单机剧情,建模、功能设计、历史、文化展示方向的多一些,而涉及联机或竞技的较少。上文公式引用的帖子是WSE作者在11年就发布过的,在国内就少有问津。&&CRPG MOD应该说是在这方面钻研是比较深的了,WSE的作者就在他们团队中。 因此,在他们的联机MOD中,如何重新设计各种数值来提升游戏体验及平衡性,他们是能从数学建模上来进行分析和设计的。&&如果说对于单机MOD来说,平衡还能靠参考原版数值、或通过主观感觉和不断手动调试来进行而不会引起平衡性问题,或者平衡性问题根本不是一个需要考量的因素的话,那么想要做联机MOD,尤其是竞技性或对抗性比较高的联机MOD的话,这些底层的公式就不能不考虑了。
第纳尔 +100
鲜花鸡蛋&&在 00:13&&送朵鲜花&&并说:我非常同意你的观点,送朵鲜花鼓励一下&&在 23:43&&送朵鲜花&&并说:我非常同意你的观点,送朵鲜花鼓励一下&&在 13:13&&送朵鲜花&&并说:楼主好样的,这样的转贴也是很重要的技术贴,不要因为某些人莫名其妙的恶意坏了心情&&在 12:53&&送朵鲜花&&并说:感谢您的转贴,多年来的谜题终于得解&&在 14:08&&送朵鲜花&&并说:我非常同意你的观点,送朵鲜花鼓励一下&&在 00:29&&送朵鲜花&&并说:我非常同意你的观点,送朵鲜花鼓励一下&&在 16:39&&送朵鲜花&&并说:我非常同意你的观点,送朵鲜花鼓励一下&&在 13:57&&送朵鲜花&&并说:我非常同意你的观点,送朵鲜花鼓励一下&&在 12:09&&送朵鲜花&&并说:强烈要求加精&&在 17:06&&送朵鲜花&&并说:为了贴近真实,做单机史实mod也要大力研究伤害公式的
在线时间 小时
多年前老A给过的一个简粗的伤害公式:
#Reduced_damage =base_damage - (armor * armor_soak_factor_against)& &
#Final damage =&&Reduced_damage * (1 -&&(armor/100 * armor_reduction_factor_against))
在线时间 小时
本帖最后由 独孤后人 于
17:07 编辑
多年前老A给过的一个简粗的伤害公式:
#Reduced_damage =base_damage - (armor * armor_soak_factor_again ...
那个是很久以前官网有人贴出自己猜测的计算护甲对伤害的减免的公式,老A对他猜测的公式做出的答复。老A只给了一部分,但已经很厚道了。曾经国内某骑砍类网游上线,加了设计师QQ聊天,聊到伤害计算公式,设计师只肯透露“某某因素会有影响”,具体公式是一点点也不肯透露的。 不过这个跟身份也有关,毕竟老A是老板。 不然怎么没见T社其他员工敢透露呢。
在线时间 小时
本帖最后由 rubik 于
20:38 编辑
原来,弓箭在雨天也受影响,伤害*0.9,但下降得没有弩突出伤害*0.75。 骑射的效果是每级挽回1.9%的伤害,我以前目测的是2%。 力量居然是简单粗暴地除以5来增加伤害,我以前都以为是像熟练度那样的一个百分比。
还有火枪的问题,新版的战团为了迁就维京征服的投石索(替换火器),改成和投掷武器类似的算法了,只不过没有技能去增强投石索,但力量和熟练度会增加火枪的伤害。
在线时间 小时
原来,弓箭在雨天也受影响,伤害*0.9,但下降得没有弩突出伤害*0.75。 骑射的效果是每级挽回1.9%的伤害,我 ...
火枪这个确实不知道。你是说现在拿破仑战争里的火枪也跟投掷的机制类似了?
在线时间 小时
火枪这个确实不知道。你是说现在拿破仑战争里的火枪也跟投掷的机制类似了?
官方也提供了补救措施,就是module.ini里面的这一行:
use_crossbow_as_firearm = 0
我没有试验过。推测用这个可以将火枪判定为弩,从而不然火器的熟练度,以及力量影响输出伤害。
在线时间 小时
看来以前听见有人说 , 熟练度是 每点增加 0.5% 的伤害值是错误的咯 ?
这个确实给了大家很大一个参考!
在线时间 小时
官方也提供了补救措施,就是module.ini里面的这一行:
use_crossbow_as_firearm = 0
那个应该是把弩当作火枪用,启用之后会改变弩的填装动作。
在线时间 小时
关于熟练度对于伤害的增益部分,个人持保留意见。看过那段后,在下又拿草人试了试,数值有些对不上。不过,因为最近几天还没继续测试,所以依旧是保留意见。另,单就个人手感来说,双手长枪直刺的伤害,反而比带盾的要高。当然,可能是综合因素的结果,比如最适合的速度带来的好手感。
在线时间 小时
本帖最后由 独孤后人 于
13:15 编辑
达尔克内斯 发表于
关于熟练度对于伤害的增益部分,个人持保留意见。看过那段后,在下又拿草人试了试,数值有些对不上。不过, ...
最好拿人来实验。草人是否与人一样还不清楚。另外,保持原地站立以消除速度加成的影响,不要蓄力以消除蓄力的影响,这样结果就最直观了。&&这个我之前做的模拟器,在游戏中实验,数值是完全一致的,其中raw damage 完全符合公式计算的值,&&effective damage在数十次测试样本中达到过计算出来的最小值和最大值,但始终不会超出计算的界限,因此我认为这个公式是正确的。
在线时间 小时
最好拿人来实验。草人是否与人一样还不清楚。另外,保持原地,不要蓄力。&&这个我之前做的模拟器,在游戏 ...
保持原地还好说,但不要蓄力这点真的很难。因为,人手能够控制的时间难以精确到零点几秒。所以,之前在下测试的方式都是在保证其伤害稳定后再进行的。至少,在保证修正系数一致的条件下,只要再去掉修正系数就好了。(顺带,之前测试的手半折减基本也是如此,并且已经精确到16~17%)
在线时间 小时
保持原地还好说,但不要蓄力这点真的很难。因为,人手能够控制的时间难以精确到零点几秒。所以,之前在下 ...
轻点一下鼠标就是不蓄力状态了。& &最好下一个WSE 的SDK , 里面的ti_on_agent_hit 这个触发器的参数可以直接获取到raw_damage的值。&&原版的只能获得一个inflict damage 应该就是最终的伤害, 那么这会是一个浮动的值, 中间有护甲的影响,更容易影响你对熟练度对伤害影响的判断。
在线时间 小时
轻点一下鼠标就是不蓄力状态了。& &最好下一个WSE 的SDK , 里面的ti_on_agent_hit 这个触发器的参数可以 ...
好吧,在下之前可能记错了些东西。
说一下再验证的具体结果吧。
首先,能不要以人为目标还是最好不要。因为部位的损益比草人更严重。
然后,关于草人自身的损益,目前只发现上半身与下半身有些许差别,砍中上半身的伤害大致是砍中下半身的1.1倍不到的样子。
而按照阁下说的,轻点攻击下半身的话,伤害随熟练递增基本正好是15%每100点。而如果是超时蓄力的话,基本是18%~19%或是20%的样子。比例正好为1.1~1.2左右。
最后……就算给在下说什么WSE 的SDK,在下也用不转啊。
不管怎么说,在下现在可以接受这组公式了。感谢楼主分享了。
在线时间 小时
本帖最后由 rubik 于
20:14 编辑
关于畜力那一点,可以开发出一个力量条。玩家畜力时间是很容易获取的,然后根据畜力时间与伤害的线性关系,绘制力量条的长度。玩家看着力量条,就能尽可能做到最大输出。玩家也可以通过力量条来训练节奏感,达到不看力量条,也能掌握最佳畜力时间。
线性关系很简单,前0.5秒,每0.1秒增加0.1倍的伤害。0.5秒达峰值:1.5倍,0.5-0.6秒维持这个峰值。0.6秒开始,每0.1秒下降0.05倍伤害。0.6秒整的时候,已经是1.45倍。以此类推,1.1秒整的时候,就是1.2倍。然后,一直维持1.2倍,不随畜力时间变化。
我记得某个关于维京的游戏里就有这个东西。
在线时间 小时
rubik 发表于
关于畜力那一点,可以开发出一个力量条。玩家畜力时间是很容易获取的,然后根据畜力时间与伤害的线性关系, ...
进一步提升的话,不知道还能不能用动作开体现,用弓来做必须,不续力的话,才半开弓就射出去了,所以伤害较低,而蓄力的过程就是弓拉到最大值的过程!&&
近战武器也一样,不蓄力的话,还没抬到最佳位置就出剑了,而蓄力就是抬到最佳位置的过程!
在线时间 小时
头像被屏蔽
远程武器好像没什么减免
在线时间 小时
本帖最后由 Borr 于
12:15 编辑
这种东西有必要藏着掖着么,还什么机密,搞笑呢。
稍微懂点物理的人,搞一个也就是几分钟的事,说不好比他那个还强些。这种程度的计算还要打探别人的算法,物理得多烂啊。
在线时间 小时
本帖最后由 独孤后人 于
08:26 编辑
这种东西有必要藏着掖着么,还什么机密,搞笑呢。
稍微懂点物理的人,搞一个也就是几分钟的事,说不好比 ...
说的好,那么请问,骑砍开源不?&&不开源的项目,它的全部或部分代码,是不是商业机密? 它们公司自己设计的不对外公开的算法,是不是商业机密?
至于你说的第二部分,研究这个算法根本与物理好不好没有关系,这个算法并没有用到什么物理学的定律或公式,本身也没有什么特别复杂的计算。但是,若不是有人通过逆向工程的手段拿到算法的话,请问之前国内外有任何人自己推算出或者猜出这个算法吗?&&如果像你所说的不需要没必要藏着掖着,何以一个09年就公测的游戏,到现在国内才有我一篇帖子来说这个公式呢?&&强如你进来就一通高论,请问你之前推算出来过完整的算法吗? 你公布过吗?
最后就是别人设计不设计的出来的问题,其他游戏的设计者当然能设计出来很好的算法来为他们自己的项目服务,但是那和骑砍有关系吗? 对于骑砍玩家和MOD作者有用吗?你设计个果粒橙配方也许很多人喜欢喝,但那和可口可乐配方是一回事吗?你设计出个其他什么可乐,你能保证和可口可乐自己的配方一样吗?
在线时间 小时
说的好,那么请问,骑砍开源不?&&不开源的项目,它的全部或部分代码,是不是商业机密? 它们公司自己设 ...
这公式对我来说也就是10分钟的难度。
唉。 你高兴就好。
鲜花鸡蛋&&在 13:41&&砸了鸡蛋&&并说:看你也是个做mod的?放点干货啊 一通BB谁不会&&在 00:17&&砸了鸡蛋&&并说:我不同意你的观点,砸个鸡蛋反对一下
在线时间 小时
本帖最后由 蛋清 于
21:42 编辑
讲道理,藏着伤害公式无非两个目的:1.保持游戏神秘感 2.让玩家自行摸索 (3.懒得公布)
一开始就给答案只会让玩家对某种计算得出来的优越结果(使用某某装备伤害最佳)趋之若鹜。如果游戏只围绕着某种特定的配装进行,那这游戏就是失败的。所以,公布这玩意没什么益处甚至还有害处,不公布这玩意一点影响都没有。正常人会怎么选一目了然。
试想如果是商业机密,反工程得出来公式不就是泄露机密,TW会让你到处乱发吗?WSE还能在TW公开发表么?
↓直接攻击人身的你可以继续了,请继续你的表演
我提高身价干什么,你能给我什么利益? 倒是你这样的人,不讨论内容本身,尽在人家帖子里发点阴阳怪气的言论,还能负责技术板块我也是服了。&
在线时间 小时
本帖最后由 独孤后人 于
13:04 编辑
↑ 请看楼上的这位管理员,他就是下面点评我的人,他被我回帖反驳后,直接给我点评,说我“抬高身价”,“表演” ,我质疑他这种品行根本不配做管理员,他就给我扣个“攻击人身” 的帽子,还是在他自己帖子里编辑个箭头来说我, 你们看看这是个光明磊落的人的行为吗? 你既然是管理人员,你还这样搞,那我有样学样咯。~
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
讲道理,藏着伤害公式无非两个目的:1.保持游戏神秘感 2.让玩家自行摸索 (3.懒得公布)
一开始就给答案 ...
TW没让到处乱发。帖子很快沉了,总共没几个人回复。 在这个帖子发布之后这么多年直到目前为止,还有不少人想知道伤害是如何计算的,但是又不知道具体算法,只能通过做实验来摸索出一个模棱两可的结果。这一点只要用论坛的搜索功能一试就知道有多少人在做无用功了,真像你说的可以到处发,这些人怎么没找到??
制作组对于什么能公布,什么不能公布是有自己的标准的,不是你说的什么懒得公布。 讲道理,制作组想公布出来的东西,早通过MS公布出来了,都可以让你自己动了。这个计算过程怎么这么多年了也不开放到MS里给你修改呢???
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
请大家看看,到这里为止,下面这个管理员突然开始发点评,说些贬损我的怪话。是因为我已经连发了2个贴了,他想让我再发个贴3连他好处罚。这就是一个负责技术板块的管理人员的“计谋”和“胸怀”。我的帖子里不欢迎你这种人来讨论,你但凡还有点自尊心就别再在我帖子里出现↓↓↓
可以到处发≠流传甚广;允许发≠遍地开花;游戏主程序是引擎写的,游戏初始MOD native是用MS写的。
我不否认你这转帖的贡献,但你要非向通过“***机密”来抬高身价,请继续你的表演&
在线时间 小时
这公式对我来说也就是10分钟的难度。
唉。 你高兴就好。
好,既然你这么厉害,我帖子里也说了,目前远程武器的伤害计算,在飞行时间对伤害的影响上还有缺失,请你把那部分算法给补全,我就佩服你,什么话也不说了。你也为论坛做了贡献,你看好不好?
或者你也可以通过给T社写信或发帖询问,看他们是否公布,你看行不行?
在线时间 小时
好,既然你这么厉害,我帖子里也说了,目前远程武器的伤害计算,在飞行时间对伤害的影响上还有缺失,请你 ...
為了防止你三連,故,我在這裡插個話
----------------------------------------------------------------------------
我在看了你的帖子後,覺得這是一個轉帖的貢獻,但是在後面看到你在談話之中扯到一些TW代碼的陰謀論,也服了
在线时间 小时
那岂不是说库枪的偃月刀很废啊
在线时间 小时
為了防止你三連,故,我在這裡插個話
---------------------------------------------------------------- ...
&&我哪里提到TW代码阴谋论,请你指出来。
在线时间 小时
本帖最后由 rubik 于
19:52 编辑
这种东西有必要藏着掖着么,还什么机密,搞笑呢。
稍微懂点物理的人,搞一个也就是几分钟的事,说不好比 ...
设一个密码和破译一个密码,完全是两回事。设一个高强度的密码,没什么门槛,几乎人人都可以干。但是破译一个密码,就算是一个低强度的密码,没有专业知识,也难于登天。
而且在骑砍言骑砍,你设置的伤害公式再合理,也只能自己开发一个独立游戏,然后用进去。基于骑砍引擎做东西,就得被动接受骑砍引擎的核心伤害算法,这是MS触及不到的层面。
这些公式虽然不能改,但是很多参数在module.ini里是可以调整了,了解清楚核心算法,调整起来就可以更加胸有成竹。
之前很多人总结的,每点力量增强百分之多少的伤害,每点熟练度增加百分之多少点伤害都是错的。逆向工程直接得到算法,就免去了各种浪费时间,又无法得到准确结果的测试和试验。
在线时间 小时
哇,看到正版的伤害计算贴了~~~这是找了8年的货,多谢多谢。
一下子豁然开朗的感觉油然而生~
在线时间 小时
哇!厉害了!弩不受熟练度影响?!
在线时间 小时
Borr 发表于
这种东西有必要藏着掖着么,还什么机密,搞笑呢。
稍微懂点物理的人,搞一个也就是几分钟的事,说不好比 ...
这逼装的清新脱俗。这和物理有什么关系?
既然这简单,那您把远程的公式补充下试试
在线时间 小时
关于两匹马相对静止应该是错的,骑马的时候你原地扔个东西后面的人撞上了也是很高伤害,在高铁上原地扔东西不会砸到后面的人
Powered by}

我要回帖

更多关于 冒险岛原始伤害皮肤 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信