##EasyReadMore##

2010年8月20日 星期五

[AI 系統公開計畫] 信長之野望15.0E7,AI版0.01,可和電腦對打(搶先版)

.
這搶先版就是直接將 15.0B18 的 AI 程式碼
套到 15.0E7 上面而已,還未進一步的修改~

目前已知重大問題:
1.沒針對改版的英雄技能,做適當的修正
2.沒針對改版的道具,做適當的修正

近期會修正:
1.購買道具流程,針對改版最佳化
2.檢查改版的新技能

下載地圖:
[--訊6--] [Xuite] [MediaFire] [Badongo]
--載點請勿轉貼-
!!!檔案內附 AI 原始碼和資料!!!

  各位網友好,我是作者,以下是我個人想說的話:

1. AI 的編寫,從以前到現在都是我自己一人獨立完成,
    團隊合作修改地圖的意願不高,但是目前因為打算把心力轉移到星海2
     所以會開始陸續公開魔獸3 AI系統的全部秘密
      歡迎所有的地圖作者來逛逛我的網站,得知 AI添加方法後,自行添加 AI
       (比如 信長S 和 三國XD)
       只要在地圖內加上我的網站連結即可

    !這扇門一旦打開的時候,或許魔獸爭霸的世界會產生爆炸
       也或許 地圖編輯者 的腦袋會產生火花!

2.我不使用未加密地圖,從頭到尾都是修改加密地圖,
   修改 jass,編寫 ai 檔,修改 txt 和 slk 設定,
   ( 因為我只習慣編寫 jass,所以我手邊的程式碼都不方便改寫成觸發)
   ( 如果你將未加密地圖寄給我,我也不太容易加上 AI )
   ( 因為我的修改方式都是使用文件編輯器,沒開啟魔獸地圖編輯器 )
3.我發佈的AI版地圖,都會盡量縮減檔案容量,可能比原圖容量小
4.每次地圖作者發布改版後,再次將AI系統移植上去的工作時間幾乎都相同
   ,AI系統除非由原圖作者自行發布,要不然不會頻繁跟上最新原圖版本
5.我不會開發像 OS 地圖那麼強的 AI ,只開發容易移植到別張地圖的 AI
     ( 類似只要複製貼上就好,然後按照新地圖,改改資料就會動了 )
     ( 容易配合原本地圖作者的改版,移植很快 )
     ( 為了搭配呆呆的 AI ,所以會讓電腦跳錢和昇等比較快 )
     ( 並且電腦被殺愈多次,愈強。而玩家殺電腦愈多,愈不利!)
     ( 如果不改動任何設定,呆呆AI沒有任何看頭 )
6.基本上我玩魔獸,從來不跟真人對打,只跟電腦打,所以本人遊戲不強~
   因此我設計的AI,沒有所謂的戰略思維
7.我一開始投入編輯地圖是從破解修改地圖有興趣開始,
   而後因為不喜歡網路對戰,所以開始修改熱門地圖加入 AI
8.最後告知一下,如果看了我的修改教學,有任何問題要問,可以留言

---------------------------------------------------
AI通用系統概論:
    一般地圖編輯者認為 AI只有兩種系統,
一種是全部使用 .ai 檔案來執行的 (例如:三國 3.9d ai)
一種是全部使用 觸發或者 jass 來執行的 (例如:OS ai)

而我打破了這種思維,使用 ai 檔案又使用 jass
兩種同時使用來達成最好移植的 AI 系統

首先第一步~我使用地圖編輯器的 人工智慧編輯器
稍做設定,設定該玩家使用一個英雄,然後匯出 "人工智慧描述".ai 檔案
用文件編輯器修改該 ai 檔案,設定你的 Dota 某英雄的 ID 跟技能學習順序
請參考 下載檔案的 ai 檔,
(為了方便網友開啟,多數檔案有加上 .txt 副檔名)
test.ai 是武田信玄的 ai 檔案,也是我第一個開發的英雄

你將該 ai 執行,在你的地圖
你會發現該英雄不會移動,呆呆在原地
但是如果你將他升級,他會自動學習技能 (按照你設定的學習順序)
如果有怪物或者其它英雄接近,他會自行判斷而施放技能
如果他擁有某些技能道具,也會自行判斷和使用
如果該玩家有自己的建築,他常會跑往自己的建築附近,保護建築
(如果你給他的技能,不是內建的,可能他不太會使用)
(少部分內建技能,電腦也是不太會使用,比如瞬間移動)
!因為該項重要特性,所以我會修改原圖的技能來讓 AI 聰明點
   比如將技能限定只能施放在英雄上!

以上就是全部使用到的 ai 檔案所造成的功能
其他的 AI 功能由 jass 的部分來實現

接著你使用觸發或者 jass 叫該英雄單位 攻擊並且移動往哪個方向
你會發現 他除了會攻擊並且移動過去,而且在途中會自行判斷施放技能!
因為你這樣叫他移動,是一種很呆板的動作
所以我寫的 jass 都會用亂數的方式來思考移動,
並且移動幾秒後又將移動控制權丟還給 ai 檔案

接著你看下面這張解說圖
(以下程式碼不代表實際情況,有些是將幾個程式碼合在一起寫)
程式碼01:織田軍英雄出現在 B區,就亂數決定要往 A C D 這三個點其中一個攻擊移動
程式碼02:聯合軍英雄出現在 A區,就亂數決定要往 B C D 這三個點其中一個攻擊移動
程式碼03:織田軍英雄出現在 C區,就接著往 A 點攻擊移動
程式碼04:聯合軍英雄出現在 C區,就接著往 B 點攻擊移動
程式碼05:織田軍英雄出現在 D區,就接著往 A 點攻擊移動
程式碼06:聯合軍英雄出現在 D區,就接著往 B 點攻擊移動
程式碼07:織田軍英雄所招喚的怪物一出現在地圖上任何地方,
           馬上命令該怪物往 A 點攻擊移動
程式碼08:聯合軍英雄所招喚的怪物一出現在地圖上任何地方,
           馬上命令該怪物往 B 點攻擊移動
程式碼09:每隔一段時間,檢查電腦是否兵力足夠,夠的話就呼叫援軍
程式碼10:織田軍英雄出現在 B區,就執行購買道具程式碼
程式碼11:聯合軍英雄出現在 A區,就執行購買道具程式碼
 !因為判斷英雄身上擁有甚麼道具太麻煩了
    所以給該玩家一個變數來儲存,現在道具更換到哪個階段
     因為無法強制英雄不隨便賣道具,所以給他的道具都要加上不能販賣的屬性
      並且他一丟棄道具,就用程式讓道具馬上回到他身上
   !因為玩家只要亂丟道具到電腦身上,電腦購買道具就會完全錯亂,所以要避免~
      方法就是只要讓電腦英雄任何時間都擁有六樣道具就行了
       (因為我的程式碼有分 力敏法英雄 購買不同道具,所以複雜點)

以上這些通用程式碼,你能直接移植到自己的地圖
只要修改這些資料:
 1.A到D點座標
 2.A到D區座標
 3.所有英雄的 ID
 4.所有英雄招喚怪物的 ID
 5.購買的道具ID

---------------------------------------------------
最後是熱心幫助區:
 有興趣要幫忙處理 AI進度的,有以下作業能幫忙~
2.參考一下 下載資料內的  "道具整理範例.txt"
   看資料站將 15.0E7 所有的道具 從低價排到高價 做成一個文件
    然後將道具按照 力敏法 英雄使用不同,再另外分成 三個文件
     最後將所有道具的代碼查詢出來,寫在旁邊
.

1 則留言:

※怎麼下載?Xuite硬碟MediaFireBadongoSendSpace
※文章可以轉貼嗎?可以,不過要註明出處、標示本站連結。
※載點可以轉貼嗎?不可以,不能盜連。
※建議瀏覽器:Chrome 或 Firefox 或 Opera 或 IE7以上
!請按+1來支持本站!