亚洲龙腾成人精品小说网,正品日本高清dvd碟片生活版,亚洲精品久久久久久,野花韩国高清视频,亚洲午夜久久久影院伊人

您的位置: 單機(jī) > 攻略 > 圖文攻略 > 攻略詳情

星球基地 AI代碼解析 全角色執(zhí)行任務(wù)優(yōu)先級匯總

時(shí)間:2015-11-02 08:02:04
  • 來源: 最后的幽靈騎兵
  • 作者:售夢者
  • 編輯:售夢者
0

星球基地 AI代碼解析 全角色執(zhí)行任務(wù)優(yōu)先級匯總

首先,請?jiān)试S我向大家隆重介紹下面這一段代碼,就是它葬送了無數(shù)大好局勢和無數(shù)賤民的生命!

它就是整個(gè)AI算法的核心:當(dāng)你的角色狀態(tài)處于空閑時(shí),自動(dòng)進(jìn)入相應(yīng)的任務(wù)優(yōu)先級列表的判定,簡單點(diǎn)來說就是一個(gè)觸發(fā)機(jī)制,并且一但這個(gè)機(jī)制被觸發(fā),這個(gè)角色就會進(jìn)入相應(yīng)的任務(wù)狀態(tài),不會被打斷,不!會!被!打!斷!


首先,我將要向大家介紹的是一個(gè)物種:保安

有人肯定要問,為什么說是個(gè)物種?因?yàn)橛螒蚪巧腁I類型劃分是這樣的:

搬運(yùn)機(jī)器人

建筑機(jī)器人

挖礦機(jī)器人

保安

人類(其它殖民者)

入侵者

游客

所以說,這個(gè)故事告訴我們千萬不要把保安當(dāng)做正常的人類來看。

以下便是保安這個(gè)物種的優(yōu)先級:

所有的優(yōu)先級依次是:

拿武器后消滅入侵者

生存需求

去看有優(yōu)先級的監(jiān)控

去看監(jiān)控

去喝飲料

去放松(鍛煉)

回到室內(nèi)建筑

在室內(nèi)看風(fēng)景

你木有看錯(cuò),對于所有的保安(其實(shí)包括人類),消滅入侵者比滿足生存需求的優(yōu)先級更高。滿足survivalrule這是一個(gè)子項(xiàng),里面包含的是各種屬性低了就去補(bǔ)的觸發(fā)機(jī)制,具體結(jié)構(gòu)可以參考我在樓頂介紹的那個(gè)邏輯算法。

早上看見一位小伙伴的悲慘遭遇,保安到死都在看監(jiān)控沒去反擊入侵者。所以,現(xiàn)在你明白了么?

沒錯(cuò),我去打入侵者的優(yōu)先級是比看監(jiān)控(Go Operate)要高,但問題是我已經(jīng)在看監(jiān)控了呀,你在我看完監(jiān)控之前休想讓我進(jìn)入這個(gè)空閑判定機(jī)制。

耿直的保安,卒。


接下來便是賤民們的優(yōu)先級列表,制作組總算是展現(xiàn)了點(diǎn)誠意,先不說合不合理,至少是非常用心的:

首先說明,制作組把所有職業(yè)的任務(wù)混在了一起,請自行對應(yīng)相應(yīng)職業(yè)。賤民的任務(wù)優(yōu)先級從高到低分別是:

拿武器攻擊入侵者(這里指的不是保安,保安不算人類?。?/p>

攻擊完入侵者后扔掉武器

去修被隕石砸的室內(nèi)建筑(這個(gè)我看了下代碼,沒有室外也是醉)

生存需求(吃飯 ,睡覺 ,blablabla)

去維持緊急的食物需求,造食物(生物學(xué)家專屬技能)

去搬交易需要的貨物到飛船

建造

去休閑(注意,這里限制了是當(dāng)狀態(tài)非常不開心的時(shí)候)

去拿零件之后維修

去拿醫(yī)療包救人

去高優(yōu)先級的礦場挖礦

去制作各種東西

去拿建筑材料之后運(yùn)送建筑材料(知道為什么要多造機(jī)器人了吧,工人如果有礦挖優(yōu)先級絕不搬這些 )

去找那些制作臺所需的資源然后存放到制作臺

去找喝的

去休閑(當(dāng)狀態(tài)有點(diǎn)不開心的時(shí)候)

去挖礦(無優(yōu)先級,事實(shí)證明如果么有優(yōu)先級人類非常不想去挖礦)

去搬東西到倉庫

進(jìn)到室內(nèi)

讓路(給其它優(yōu)先級高的角色)


在室內(nèi)閑逛接下來就是星際海盜們的世界觀了:

排序從高到低:

攻擊殖民者(理所當(dāng)然)

進(jìn)入室內(nèi)

在室內(nèi)閑逛

沒了。

有人可能會說,怎么這么簡單?還有,你要去攻擊殖民者不就包含進(jìn)入室內(nèi)了么,怎么下面還有個(gè)進(jìn)入室內(nèi)?由于入侵者這個(gè)項(xiàng)比較少,我決定展開來解釋嵌套關(guān)系,來讓大家更好的理解這套AI邏輯的運(yùn)行方法 。

首先讓我們進(jìn)入第一個(gè)優(yōu)先級的函數(shù):去攻擊殖民者,讓我們?nèi)タ匆幌滤窃鯓颖欢x的:

第一個(gè)if的地方判定的是角色的身份,我就不再一一贅述statusflag12代表的內(nèi)容了。然后這個(gè)函數(shù)會去尋找離強(qiáng)盜們最近的站著的角色。

讓我們再來到findneareststanding函數(shù)被定義的地方:

這里就很明了了,該函數(shù)會枚舉所有你的殖民者們,并且如果它們當(dāng)前狀態(tài)不是死亡,或者被打倒的狀態(tài)時(shí),函數(shù)會計(jì)算一個(gè)限制距離內(nèi)所有殖民者中離你最近的一個(gè),并把結(jié)果返回上一級。

讓我們回到這里:

現(xiàn)在,我們得到了findnearsetstanding函數(shù)傳回的離你最近并且可用的殖民者了,我們的下一個(gè)目標(biāo)便是要接近她,這個(gè)目標(biāo)則由goTarget實(shí)現(xiàn)。

我們來詳細(xì)看一看gotarget:

我們真正輸入的參數(shù)其實(shí)是當(dāng)前處理的這個(gè)強(qiáng)盜和這個(gè)強(qiáng)盜將要選定目標(biāo)的被害人,而這個(gè)函數(shù)的作用就是使強(qiáng)盜走向被害人,而其中就包含了goToBestAirlock(走向選定的最佳氣閘)。至于這個(gè)函數(shù)是如何定義的就不再解釋,太過復(fù)雜,也考慮到了其它正在執(zhí)行的任務(wù)對流量造成的影響。

至此,強(qiáng)盜開始了自己入侵的過程,補(bǔ)充下前面setradius參數(shù)指的是當(dāng)強(qiáng)盜離目標(biāo)8個(gè)單位時(shí),強(qiáng)盜會開始開火。

而我們看到,如果在findneareststanding(查找最近的目標(biāo))函數(shù)階段,所有的目標(biāo)都在范圍之外,那么這個(gè)函數(shù)將會返回一個(gè)空值,下面一階段的if條件不會被 滿足,然后整個(gè)大函數(shù)會返回一個(gè)false的值,這也就代表了在任務(wù)優(yōu)先級列表中,第一個(gè)優(yōu)先級的任務(wù)(攻擊殖民者)的條件不滿足,開始按順序進(jìn)行優(yōu)先級列表中的下一個(gè)任務(wù)。

所以說了那么多,我想表達(dá)的就是,其實(shí)在攻擊殖民者這個(gè)任務(wù)里包括了許許多多邏輯AI,其中就包括進(jìn)入氣閘這一項(xiàng)。至于第二個(gè)優(yōu)先級任務(wù)安排進(jìn)入室內(nèi)的原因是,如果強(qiáng)盜周邊在規(guī)定范圍內(nèi)沒有符合要求的目標(biāo),那么強(qiáng)盜就會進(jìn)入室內(nèi)。

在此之后,強(qiáng)盜滿足了處于室內(nèi)的狀態(tài),優(yōu)先級順位中第二位的進(jìn)入室內(nèi)的條件返回也會變成false,這時(shí)候,強(qiáng)盜會執(zhí)行第三順位的任務(wù):在室內(nèi)隨機(jī)游蕩,直到在下一次判定的時(shí)候第一順位任務(wù)的條件被觸發(fā),那么強(qiáng)盜就會去攻擊那個(gè)被選中的倒霉蛋了。


點(diǎn)擊進(jìn)入3DM《星球基地》游戲論壇專區(qū)

9.0
已有15人評分 您還未評分!
  • 類型:模擬經(jīng)營
  • 發(fā)行:Madruga Works
  • 發(fā)售:2015-10-16
  • 開發(fā):Madruga Works
  • 語言:簡中 | 英文
  • 平臺:PC
  • 標(biāo)簽:探險(xiǎn)建造,殖民模擬

玩家點(diǎn)評 0人參與,0條評論)

收藏
違法和不良信息舉報(bào)
分享:

熱門評論

全部評論

3DM自運(yùn)營游戲推薦 更多+