黄龙骑士团论坛是全战玩家自费建立的非盈利性游戏社区,请勿在论坛内发表违反中国互联网管理条例的帖子,请勿在论坛内发广告,请勿恶意灌水。为了营造一个良好的氛围,即日起将启动邮箱激活账号及限制新账号发帖功能,带来不便敬请谅解,谢谢合作。 附:等待验证用户的说明与解决办法(点击打开)

查看: 3500|回复: 12

[单机攻略战报] 射擊與melee相關計算

[复制链接]

18

主题

0

好友

709

积分

军士

战斗力
1
佛罗林币
709 枚
注册时间
2011-6-15
精华
2
帖子
41
发表于 2012-12-2 15:00:52 |显示全部楼层
※在custom battle的測試下, 玩家的部隊/船隻數必須達到5, 高難度之下對AImelee attack, accuracy加成才會生效
對AI的reload rate加成則無此限制

射擊物件是否命中之accuracy相關計算
1.讀取accuracy並根據難易度調整
[陸戰]部隊accuracy    [海戰](發射艦砲)船隻accuracy     (船員射擊)該類船員的accuracy
(easy)玩家*1.25  AI*0.85   (陸戰AI)hard *1.3   very hard *1.5    (海戰AI) hard*1.15    very hard*1.3
2.加上射擊物件的準確度bonus(可用PFM查看), 在城牆後射擊+10, 玩家easy+15, AI hard+20, very hard+30
3.守城並wavering: last_stand_siege_accuracy_penalty=-10        (計算結果最低0)
4.(陸戰)shaken *0.9     wavering *0.8
5.乘以發射仰角影響倍率X.      X=1.5 - (發射仰角+90)/180            (也就是俯射時命中率增加)
6.乘上天候影響倍率(可用PFM查看)(目前應該是有bug, rain誤用fog, snow誤用rain, fog誤用snow的影響倍率參數)
7.射擊物件資料中某距離參數=A           (PFM打開projectiles_tables, A在unknown36欄位)
accuracy*0.01*[(A/目標距離)^2]
如果目標在樹林中, 計算結果再減0.2           (上限1.0, 下限0.01)
實際上要判斷是否命中目標還有許多複雜計算, 目前只知道此數值越大則命中率越高

射擊命中目標後結果判定
1.讀取射擊物件傷害參數, 如果目標具有防彈屬性並且射擊物件是傳統鐵砲, 傷害參數上限0.7
2.(傷害參數超過1.0)目標在射程內則命中, 否則miss
3.(傷害參數未超過1.0)讀取projectile_damage_base_multiplier=60.0, 乘以射擊物件傷害參數, 令結果=A
4.讀取projectile_damage_accuracy_multiplier=0.25,乘以發射方的accuracy(見前面的項目1), 加入A
5.射擊物件的貫穿屬性=ap或者部隊具有貫甲屬性則跳至6
A – 目標armor/0.5
6.A - 目標之melee defence/4
7.(目標在樹林中)A - 發射方accuracy*0.2                 (accuracy見前面項目1)
8.A - (目標距離*2/射程 + 0.5)               (計算結果上限94, 下限10)
9.計算0~100之間的隨機數X, 然後A – X.   結果達到7則命中, 結果1~6knockdown, 結果0以下則miss
10.命中後減少目標之hp(生命值), 減少hp=射擊物件傷害參數(最低1), 目標剩餘hp0則死亡
(個人觀察&推測)如果是砲彈爆炸造成的傷害, 減少hp由爆炸波及半徑及目標與爆炸位置的距離來決定
11.(陸戰)如果目標是將軍隊長or擔任主將之一般部隊的隊長, 並且目標部隊初始人數超過1,
則當目標部隊的剩餘士兵數量比例超過0.5, 目標hp減少後至少會剩下1而不會死亡
(將軍隊長or擔任主將之一般部隊的隊長之hp比一般士兵多4, 一般部隊長之hp比一般士兵多1)

Melee結果計算
1.令攻擊方為A, 攻擊目標為B, 計算hit number(hn)
hn=陸上部隊melee atk/各類船員atk + (A登船60秒內+10) + (玩家easy+2, AI hard+2, very hard+4)
2.根據A攻擊B的方向: hn + (前方0, 左右側+8, 後方+25)
3.計算charge bonus有效倍率, 0則跳至5
(A在charge狀態)有效倍率=1.0          (Acharge狀態)有效倍率=(10 – charge開始後經過時間)/10         (0~1.0)
(脫離charge狀態後, charge bonus仍然有效, 只是效果會隨時間經過cool down而遞減
要等到下次進入charge狀態, charge cool down time才會重置為10)
4.C=Acharge bonus*有效倍率. 如果目標是長槍or薙刀, 並且是從正面攻擊, C再除以2. C加入hn
5.(A為非charge狀態, Bcharge狀態, A是長槍or薙刀, 並且是正面攻擊) hn + Bcharge bonus
6.(A是騎兵並且在樹林?) hn – Amelee atk*0.2      (此處使用部隊/船員本身的atk, 難易度不影響)
7.(A是騎兵&B是步兵)hn + 5      (B是騎兵)hn + Abonus vs cavalry
   (B使用loose formation, A未使用loose formation)hn+ 10
8.D=Barmor, 如果A的部隊具有piercing屬性則D除以2.  hn減去D       (kisho ninja具有此屬性)
9.如果A是從背面攻擊則跳至10
hn – [Bmelee def +(B登船60秒內+10)]
10.(A守城並wavering) hn – 10       (B守城並wavering) hn + 15
11.E=B的地形高度 - A的地形高度  (上限1.5下限-1.5)
      如果A與B任一方是charge狀態, E=(B的地形高度 - A的地形高度)/(雙方水平距離^2)
      hn - E/0.04
12根據hn計算kill chance(kc)
(hn不低於-6)kc=hn*13 + 254
(hn-12~-7)kc=hn*6 + 184
(hn低於-12)kc=hn*3 +125                        (計算結果上限990下限1)
12.如果同時有N人攻擊B, kc乘以N   (計算結果上限990下限1)
13.計算1~1000之間的隨機數X, 如果X低於kc則攻擊命中
14.如果X不低於kc, 再根據hn判斷其他結果:

                          hn低於-6    hn為-6~-1    hn為0~5       hn為6~11        hn達到12
knockdown          30                 50                  60                  80                     100
knockback            70                 90                  110                150                   200
stepback               70                 90                  130                185                   270

先從表格中取出knockdown機率bonus並加上kc, 如果X低於此數值則攻擊結果判定為knockdown
然後再用同樣方式判斷knockback與stepback, 都不符合則攻擊結果為miss
15.攻擊命中的話, 目標hp減1. 射擊結果判定的項目11也適用於此


[ 本帖最后由 sergi 于 2012-12-10 02:59 PM 编辑 ]
已有 1 人评分佛罗林币 收起 理由
[LONG]ss(wqy) + 20 感谢分享

总评分: 佛罗林币 + 20   查看全部评分

12

主题

0

好友

868

积分

骑手

战斗力
2
佛罗林币
868 枚
注册时间
2011-3-20
精华
0
帖子
399
发表于 2012-12-2 15:43:35 |显示全部楼层
这文章挺高端的。建议写得简化些观众更易懂
回复

使用道具 举报

201

主题

0

好友

6312

积分

子爵

战斗力
2
佛罗林币
6312 枚
注册时间
2012-1-27
精华
6
帖子
4246
发表于 2012-12-2 21:23:33 |显示全部楼层
喔,這個極好,可以導生出非常多的戰術選擇。先收入索引再慢慢思考。
回复

使用道具 举报

201

主题

0

好友

6312

积分

子爵

战斗力
2
佛罗林币
6312 枚
注册时间
2012-1-27
精华
6
帖子
4246
发表于 2012-12-4 04:08:17 |显示全部楼层

回复 楼主 sergi 的帖子

以下是個人的粗淺理解思考:

> ※玩家的部隊/船隻數必須達到5, 高難度之下對AI的melee attack, accuracy, reload加成才會生效

1. 因此高難度下盡量組成四艘船的小隊. 四艘船的戰力遠高於五艘船. (單機待測試)

> 射擊物件是否命中之accuracy相關計算
> 1.讀取accuracy並根據難易度調整
> [陸戰]部隊accuracy    [海戰](發射艦砲)船隻accuracy     (船員射擊)該類船員的accuracy
> (easy)玩家*1.25  AI*0.85   (陸戰AI)hard *1.3   very hard *1.5    (海戰AI) hard*1.15    very hard*1.3

2. 最高難度下 AI 竟然有 陸50%/海30% 的精準加成, 極度變態! 盡量不要和AI 對射.

> 2.加上射擊物件的準確度bonus(可用PFM查看), 在城牆後射擊+10, 玩家easy+15, AI hard+20, very hard+30

3. AI 除了 x 1.5/x1.3 還 +30.... 真是太可怕了.

> 6.射擊物件資料中某距離參數=A
> accuracy*0.01*[(A/目標距離)^2]           (上限1.0, 下限0.01)
> 實際上要判斷是否命中目標還有許多複雜計算, 目前只知道此數值越大則命中率越高

4. 距離兩倍, 精準就下降四倍了, 盡量靠近射.

> 射擊命中目標後結果判定
> 1.讀取射擊物件傷害參數, 如果目標具有防彈屬性並且射擊物件是傳統鐵砲, 傷害參數上限0.7
> 2.(傷害參數超過1.0)目標在射程內則命中, 否則miss
> 3.(傷害參數未超過1.0)讀取projectile_damage_base_multiplier=60.0, 乘以射擊物件傷害參數, 令結果=A

5. 記憶中一般武器傷害不高, 0.3 還是多少... 乘以 60, A 就是 18.

> 4.讀取projectile_damage_accuracy_multiplier=0.25,乘以發射方的accuracy(見前面的項目1), 加入A

6. 所以說 accuracy 除了判定是否射中, 還能判定射中後是否造成有傷害.
舉例: 一般的 accuracy 60 計算的話, x 0.25 就是 15. 18+15=33


> 5.射擊物件的貫穿屬性=ap或者部隊具有貫甲屬性則跳至6
> A – 目標armor/0.5

6. 包括自己很多人對護甲的功用好奇, 現在謎底解開了. 如護甲 +5 的效果就是 A - 10 (33-10 = 23)
每一點護甲降低 2% 死亡率. (如 20% 成為 18%)
因為死亡率一般不高 (見下), 高護甲的兵往往是防箭坦克.

> 6.A - 目標之melee defence/4

7. 如果射擊部隊沒有貫甲屬性也要再減一次嗎? (應該是要的吧)
舉例: melee defence = 8, 23-8/4 = 21)


> 7.(目標在樹林中)A - 發射方accuracy*0.2

8. 樹林的影響巨大. 舉例: 21-(60x0.2) = 9

> 8.A - (目標距離*2/射程 + 0.5)               (計算結果上限94, 下限10)

9. 距離的影響對傷害很小. 舉例: 21-(75x2/150) = 20
即使在最不利的情況下也有 3% 的射死率 (見下).

> 9.計算0~100之間的隨機數X, 然後A – X.   結果達到7則命中, 結果1~6則knockdown, 結果0以下則miss

10. 以上面的例子, 最後得出 A = 20.
20-random(0,100) 有 13% 的機會死掉, 6% 的機會 knockdown, 80% 的機會命中但無傷害.
這還是已經命中的時候. 如果沒有命中就完全沒了.
據個人經驗 100 隻箭射城裡站個不動的靶子, 大概死個 10-20 個人. 差不多真是這樣.


> 11.(陸戰)如果目標是將軍隊長or擔任主將之一般部隊的隊長, 並且目標部隊初始人數超過1,
> 則當目標部隊的剩餘士兵數量比例超過0.5, 目標hp減少後至少會剩下1而不會死亡
> (將軍隊長or擔任主將之一般部隊的隊長之hp比一般士兵多4, 一般部隊長之hp比一般士兵多1)

11. 大將只要隊中還有一半以上的人活著, 他就一定不會死!
可不可以把他的小隊關門擋起來, 再放他一個人去單挑一萬人呢...


[ 本帖最后由 maltz 于 2012-12-4 09:32 PM 编辑 ]
回复

使用道具 举报

201

主题

0

好友

6312

积分

子爵

战斗力
2
佛罗林币
6312 枚
注册时间
2012-1-27
精华
6
帖子
4246
发表于 2012-12-4 05:27:17 |显示全部楼层

回复 楼主 sergi 的帖子

? Melee結果計算
> 1.令攻擊方為A, 攻擊目標為B, 計算hit number(hn)
> hn=陸上部隊melee atk/各類船員atk + (A登船60秒內+10) + (玩家easy+2, AI hard+2, very hard+4)

1. 難怪老覺得主動登船的那一方比較猛, 原來增強了 10 個攻擊力! 盡量主動登船.
AI 的肉攻優勢在最高難度下原來是 4 的攻擊力.


> 2.根據A攻擊B的方向: hn + (前方0, 左右側+8, 後方+25)

2. 最高難度的 AI 優勢 (+4) 和主動登船, 側攻與爆菊比起來不算什麼了.

> 3.計算charge bonus有效倍率, 為0則跳至5
> (A在charge狀態)有效倍率=1.0          (A非charge狀態)有效倍率=(10 – charge開始後經過時間)/10         (0~1.0)
> (脫離charge狀態後, charge bonus仍然有效, 只是效果會隨時間經過cool down而遞減
> 要等到下次進入charge狀態, charge cool down time才會重置為10)

3. 常聽有人說 "最大衝鋒", 原來是衝鋒期間都一樣有效, 衝鋒結束之後逐漸冷卻歸零.
一般所想的 衝一段時間以後才達到最大衝鋒這樣的概念 似乎沒有提及 (不存在?)


> 4.令C=A的charge bonus*有效倍率. 如果目標是長槍or薙刀, 並且是從正面攻擊, C再除以2. 將C加入hn

4. 原來衝鋒 和 肉攻 是直接相加的. 另外正面衝長槍和薙刀衝鋒加成減半 (而且有悲劇, 見下)

> 5.(A為非charge狀態, B為charge狀態, A是長槍or薙刀, 並且是正面攻擊) hn + B的charge bonus

5. 正面衝 不在衝鋒狀態的 長槍和薙刀會受到 自己衝鋒的反作用力。例如自己衝鋒值 20, 衝長槍時自己 +10,敵人卻 +20. 太可怕了。

> 6.(A在樹林?) hn – A的melee atk*0.2 限騎兵

6. 騎兵在樹林裡攻擊, 肉攻打八折.

> 7.(A是騎兵&B是步兵)hn + 5      (B是騎兵)hn + A的bonus vs cavalry
>   (B使用loose formation, A未使用loose formation)hn+ 10

7. 騎兵對所有步兵 +5, 但步兵可能有更強大的 bonus vs. cavalry.
使用 loose formation 等於敵人 +10 攻擊力.


> 8.令D=B的armor, 如果A的部隊具有piercing屬性則D除以2.  hn減去D       (kisho ninja具有此屬性)

8. 護甲一點 = 扣一點攻擊力.
(除非是 armor piercing, 則兩點扣一個攻擊力.)

> 9.如果A是從背面攻擊則跳至10
> hn – [B的melee def +(B登船60秒內+10)]

9. (肉攻 + 衝鋒) - (肉防 + 護甲) 原則上是簡單的互相加減關係.

> 10.(A守城並wavering) hn – 10       (B守城並wavering) hn + 15

10. 守城者若閃白 則攻擊的時候 -10。 守城者若閃白 則被攻擊的時候對手 +15。
守城者閃白就玩完了。好像挺不公平的。(不是倒過來比較好嗎?)

> 11.令E=B的地形高度 - A的地形高度  (上限1.5下限-1.5)         hn – E/0.04

11. 站得愈高, 肉搏愈猛. 1 差就是一公尺,士兵是 1.6,一般射程是 150。
如果站得比敵人高一公尺就能 -25! 守在山上太猛了。

有趣的是高度並沒增加射擊的致死率. 射死守在山上的!

> 12根據hn計算kill chance(kc)
> (hn不低於-6)kc=hn*13 + 254
> (hn為-12~-7)kc=hn*6 + 184
> (hn低於-12)kc=hn*3 +125   
> (計算結果上限990下限1)
> 13.計算1~1000之間的隨機數X, 如果X低於kc則攻擊命中

12.
攻方比守方猛很多的時候 (攻-防指數 -6 以上) 攻-防指數每多 1, 其實就增加了 1.3% 的致死率. 但奉送 25.4%.
攻方和守方差不多的時候 (攻-防指數 -12~-7) 攻-防指數每多 1, 其實就增加了 0.6% 的致死率. 但奉送 18.4%.
攻方比守方差很多的時候 (攻-防指數 未滿 -12 ) 攻-防指數每多 1, 其實就增加了 0.3% 的致死率. 但奉送 12.5%.


hnkill chance (%)
-42-0.1(0)
-410.2
-400.5
-390.8
-381.1
-371.4
-361.7
-352
-342.3
-332.6
-322.9
-313.2
-303.5
-293.8
-284.1
-274.4
-264.7
-255
-245.3
-235.6
-225.9
-216.2
-206.5
-196.8
-187.1
-177.4
-167.7
-158
-148.3
-138.6
-128.9
-1111.8
-1012.4
-913
-813.6
-714.2
-617.6
-518.9
-420.2
-321.5
-222.8
-124.1
025.4
126.7
228
329.3
430.6
531.9
633.2
734.5
835.8
937.1
1038.4
1139.7
1241
1342.3
1443.6
1544.9
1646.2
1747.5
1848.8
1950.1
2051.4
2152.7
2254
2355.3
2456.6
2557.9
2659.2
2760.5
2861.8
2963.1
3064.4
3165.7
3267
3368.3
3469.6
3570.9
3672.2
3773.5
3874.8
3976.1
4077.4
4178.7
4280
4381.3
4482.6
4583.9
4685.2
4786.5
4887.8
4989.1
5090.4
5191.7
5293
5394.3
5495.6
5596.9
5698.2
5799.5
58100.8(100)


所以說 +1, +2 的攻擊力, 即使是 +5 的刀或甲, 其實作用也挺有限 (但剛好跨過上面兩個門檻則額外增加 2-3% 的效果)
很強的兵加刀 一點 +1.3% 致死率. 加甲的話每一點只減少 0.3% 的死亡率 (但考慮到抗箭也不是沒用)
很弱的兵加刀 一點只有 +0.3% 致死率. 加甲的話每一點減少 1.3% 的死亡率.


再回想, 登船 +10 攻擊力, 放了戰吼比敵人強, 大概就是 +13% 的砍死率.
最高難度的 AI 的肉攻加成 +4 不過是 1.2-5.2% 的小菜.
背衝的 +25 可以看成 +32.5% 的死亡率吧. 還算不錯.

> 12.如果同時有N人攻擊B, 則kc乘以N   (計算結果上限990下限1)

13. 圍毆, 致死率呈倍數上升! 太可怕了.

> 14.如果X不低於kc, 再根據hn判斷其他結果:
>                    hn低於-6    hn為-6~-1    hn為0~5       hn為6~11        hn達到12
> knockdown          30                 50                  60                  80                     100
> knockback            70                 90                  110                150                   200
> stepback               70                 90                  130                185                   270
> 先從表格中取出knockdown機率bonus並加上kc, 如果X低於此數值則攻擊結果判定為knockdown
> 然後再用同樣方式判斷knockback與stepback, 都不符合則攻擊結果為miss

14. 即使砍不死也有可能出現各種有趣效果.

> 15.攻擊命中的話, 目標hp減1. 射擊結果判定的項目11也適用於此

15. 砍中/射中一次才扣 1 HP. (但一般的兵也只有 1 HP)

[ 本帖最后由 maltz 于 2012-12-4 11:21 PM 编辑 ]
回复

使用道具 举报

1

主题

0

好友

188

积分

民兵

战斗力
47
佛罗林币
188 枚
注册时间
2011-10-25
精华
0
帖子
101
发表于 2012-12-4 12:31:54 |显示全部楼层
看不懂求简单分析
回复

使用道具 举报

18

主题

0

好友

709

积分

军士

战斗力
1
佛罗林币
709 枚
注册时间
2011-6-15
精华
2
帖子
41
发表于 2012-12-4 18:50:26 |显示全部楼层

回复 地板 maltz 的帖子

感謝耐心看完並回覆, 以下稍作說明
玩家需要5隊, AI才有加成, 這是在custom battle測試觀察的推論, 不確定在單機戰役是否也是如此
(在城牆後射擊+10)與(玩家easy+15, AI hard+20, very hard+30)是分別計算, 不是同一種數據
A對B(長槍or薙刀)突擊時, 如果滿足條件, A的hn之中charge bonus減半. 而B反擊A時, 如果滿足條件, B的hn會加入A的charge bonus
在樹林中melee atk減0.2倍似乎只影響騎兵, 原文已改正
A(主攻者)守城並wavering則A(主攻者)的hn – 10, B(被攻擊者)守城並wavering則A(主攻者)的hn + 15
遊戲裡的長度應該是同一單位, 比如射程150是150公尺, 士兵身高1.6是1.6公尺, 可以用來估計攻守雙方的高度差距
回复

使用道具 举报

201

主题

0

好友

6312

积分

子爵

战斗力
2
佛罗林币
6312 枚
注册时间
2012-1-27
精华
6
帖子
4246
发表于 2012-12-4 21:43:54 |显示全部楼层

回复 7楼 sergi 的帖子

謝謝,已經更新上面自己的想法。
為什麼守城的人這麼不幸呢?wavering 的時候自己 -10 敵人 +15
回复

使用道具 举报

201

主题

0

好友

6312

积分

子爵

战斗力
2
佛罗林币
6312 枚
注册时间
2012-1-27
精华
6
帖子
4246
发表于 2012-12-4 21:58:13 |显示全部楼层
有兩個問題...不曉得有沒有資料:
(1) 從 accuracy 換算成 是否射中 (第一段內容) 有沒有比較簡單的看法 (就像 hn 可以換算成 kill chance 列一張表)

主要的瓶頸在:

6.射擊物件資料中某距離參數=A
accuracy*0.01*[(A/目標距離)^2]           (上限1.0, 下限0.01)
實際上要判斷是否命中目標還有許多複雜計算, 目前只知道此數值越大則命中率越高


請問這裡的 A 有沒有一個估計值? (如:大部份的兵都是 0.2。)



(2) 肉搏的時候是隨機決定 A 先攻 B 還是 B 先攻 A 嗎?

謝謝。

[ 本帖最后由 maltz 于 2012-12-4 10:02 PM 编辑 ]
回复

使用道具 举报

18

主题

0

好友

709

积分

军士

战斗力
1
佛罗林币
709 枚
注册时间
2011-6-15
精华
2
帖子
41
发表于 2012-12-5 08:34:17 |显示全部楼层

回复 9楼 maltz 的帖子

用PFM打開projectiles_tables, 該參數是在unknown36欄位
unknown37欄的參數也影響命中力, 不過如同原文所說, 後續還有複雜計算, 只知道accuracy計算結果也無法準確判斷是否命中
melee先後攻擊恐怕牽涉到更深層而複雜的流程, 個人能力低微, 無法看懂
另外, 在原文增加了一些說明, 並加入發射仰角影響命中力的計算
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|黄龙骑士团 Clan LONG ( 沪ICP备13028103 )   

GMT+8, 2017-2-27 03:02 AM , Processed in 0.193706 second(s), 10 queries , Gzip On, Memcache On. SiteMap

Powered by Discuz! X2.5

© 2001-2013 Design By ChenyJR

回顶部