13号避难所

 找回密码
 立即注册
搜索
查看: 1984|回复: 10
打印 上一主题 下一主题

關於NPC怎麼選擇最佳武器

[复制链接]
跳转到指定楼层
楼主
发表于 2018-8-29 12:45:15 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
一些較細部的判斷我還沒搞懂,但在NPC可以使用(人物有相對應的攻擊動作)而且命中率也OK的情況下,一般武器選擇是計算出一個優先值再看哪個較高。
優先值 = (武器最大傷害 - 武器最小傷害) / 2,簡單來說就是AI認為武器傷害值的範圍愈大愈好,一把傷害1~50和一把傷害30~60的槍相比他們會選擇前者。

如果武器是手雷類的,優先值會乘上(持有數量+1),而如果武器有任何perk,優先值會再乘5,但檢查武器perk這部份有bug,所以其實不會有加乘,例如給Cassidy一把AK-112(傷害8~16,有perk)和FAL(傷害9~18,無perk),他只會選FAL。
要是兩件武器優先度差距在5以內就會看價格,如果還是一樣那就看哪件武器在物品欄內排序較下面。像Sulik一開始會用身上的大鐵鎚而不會用你給他的長矛的原因就是兩者優先度差距太小(原本沒算武器perk加成),所以他就會選比較貴的大鐵鎚。
另外如果其中一個武器旗標有設定“隱藏”(搜屍會看不到,甚至無法被物品相關的腳本函式辨認出來)就會直接選它,這旗標基本上只有用在一些NPC專用武器上。

修好檢查武器perk的部份會發生些有趣的狀況,最明顯的是在鑽油平台最後和Frank Horrigan對上時,他會變成優先拿刀(傷害15~30,有貫穿perk)而不是電漿槍(傷害30~70,無perk),因為計算出出來刀的優先度是35、電漿槍只有20,整場戰鬥可能會變得相對簡單許多。
簡單點的解法就是給電漿槍隨便塞個不重要的武器perk如夜視(在當下狀況根本沒用處)一類的,讓它也有乘5的加成好贏過刀子。也可以藉由調低遊戲引擎內部武器perk的優先值加成來解決,像改成乘3的話他就會拿槍。

沙发
 楼主| 发表于 2018-9-1 10:35:02 | 显示全部楼层
稍微多測試了一下,如果武器優先度差距在5以內就會看價格,如果還是一樣那就看哪件武器在物品欄內排序較下面。
另外要是其中一個武器旗標有設定“隱藏”(搜屍會看不到,甚至無法被物品相關的腳本函式辨認出來,幾種機器人用的武器有這旗標)就會直接選它。

首篇提到的Horrigan問題也可以由調低引擎內部武器perk的優先值加成來解決,像改成乘3的話他就會拿槍。
不過那已經超出bug修正的範圍所以就只是試試而已,不會加進sfall內,我現在是留個設定選項在INI檔內(默認為關)讓想啟用修正的人自己去開。
板凳
 楼主| 发表于 2018-9-2 15:15:33 | 显示全部楼层
或許吧,不過程序代碼本身沒啥錯誤,背後的設計邏輯我就不特別去理了。如果是用平均值做為優先度基值,那我前一篇調低武器perk加成值就得調更低。
當然要大幅修改的話除了改成平均值之外,武器perk也只需要對特定一兩個(例如貫穿或擊退強化)進行加成,畢竟前面檢查命中率的部份早就過了。

一代這部份就簡單到只比武器價格,畢竟一代武器也沒多少把,而且基本上的確愈好的愈貴。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Archiver|13号避难所

GMT+8, 2024-5-8 17:03 , Processed in 0.105465 second(s), 13 queries .

快速评论 返回顶部 返回列表