2007年12月19日 星期三

推薦不錯的人工生命AI-Mirai


一個歐洲人寫的AI。


功能算蠻齊全的。


很久沒更新了,最後更新是2006/12/22。


但是主要是,他/她 成功的將使用的困難度降低了。


方便使用者設定,不用修改文字內容。


因為,它有GUI的設定介面。






且支援多國語系檔,小弟不才寫了一個中文的語系檔。


提供給想玩煉金,但是由於AI使用的問題而不敢玩的人參考。


開發網站:MirAI


AI程序檔下載


GUI控制程式下載


兩個檔案解壓縮以後,都複製到ai\user_ai路徑中。


設定程式是config.exe,點選執行以後就會出現設定程式畫面。


GUI介面中文語系檔


語系檔使用方式:


1.確定退出GUI操作介面


2.解壓縮下載中文語系檔案,得到兩個文件檔,檔名:


language.txt


tchinese_translation.txt


3.複製兩個檔案到USER_AI路徑,確認覆蓋。


4.啟用GUI操作介面,歡迎使用中文介面….^^"


後續說明:


戰術對應相關欄位說明:


怪物對應ID檔案下載(monsters.txt)


AAA = Alchemist Auto Attacks
表示對於指定怪物,使用煉金師攻擊技能的等級,例如拿火靈之劍可以施展火箭術最高三級,你可以指定特定怪物只用一級火箭術。


行動模式 = 遭遇到怪的應對方式,


例如:


avoid 表示迴避,移動到最遠的點。


coward 可以解釋作怯弱,就是即使主人開打,寵物也不會幫打。帶小隻寵可能會用到,避免怪轉向秒殺寵物。


reach 表示被動,也就是主人先攻擊的話,就可以加入攻擊。


attack 表示主動攻擊。


其中後面的文字,表示優先權。


_1st > 沒有文字 > _last > _weak


技能頻率:


表示寵物使用技能攻擊的次數多寡,以下是各選項說明:


no_skill 表示不使用技能攻擊


one_skill 表示只使用一次技能攻擊


two_skill 表示使用兩次技能攻擊


max_skill 表示在不超過魔力下限限制的前提下,僅可能用技能攻擊。


full_skill 表示不管魔力下限限制,全力使用技能攻擊。


slow_skill 與full_skill相同,但是每個技能間預設延遲2秒發動。


其他欄位說明:


1.鍊金術師攻擊方式:由於人工生命體AI本身的限制,所以主人無法直接執行攻擊。


但是可以用技能攻擊怪物。


所以可以用手推車攻擊(cart revolution),


還有裝備附加攻擊技能的武器有可以使用附加的技能。


控制介面提供四種:


bash(cutlus)就是狂擊之劍,裝備以後可以有等級五的狂擊技能攻擊。


Cold bolt(ice falchion)就是 水靈之刀。


Fire Bolt(fire falchion)就是 火靈之劍,裝備後可使用等級三的火箭術。


tomahawk 就是風靈之斧,裝備後可使用等級一的投擲風靈之斧,耗用sp1。


2.搶先攻擊就是讓主人先用技能開怪。


這我測試過,真的有用。


會看到主人先開怪,然後寵物才趨向前幫打。


但是主人不能透過AI移動的限制還是存在,所以只能用遠距離技能開怪。


例如火箭術,投擲風靈之斧。


安裝說明:


請先下載
2006-12-22 mirai_v1_2_2 (35 Kb)
這是個壓縮檔案,解開的檔案放到user_ai裡面。


然後下載
2006-12-14 control_panel_for_mirai_v1_2_(en_de_it)_R3
這是個執行檔,預設會將GUI控制程式安裝到預設的RO路徑下的USER_AI路徑。
如果你的路徑不一樣請自行指定。


安裝好後,在USER_AI路徑下,會多一個config.exe的執行檔。


這就是設定程式,執行後就可以使用。


建議執行前先覆蓋中文化語系檔案。


小技巧:


1.額外設定-以主人為中心,搜索怪物最大範圍:


主人丟水最遠只能到12,所以除非等級差異很大,不然設定為12是比較安全。


2.如果固定只有一種寵物,可以修改ai.lua內容,將部份需要判斷目前為何種人工生命的程式刪除,可提供AI的執行效率,避免lag。


3.額外設定->技能使用延遲(ms)如果設定太低,會造成寵物使用技能無法連續的情形。


通常設定為200。


4.ai.lua裡面,第117行。


變數DELAY_AAA_BOLT = 3000 - extra delay for weapon bolts


表示使用煉金師攻擊技能(風靈之斧/火箭術)的延遲時間,可以適量減少延遲。


提供煉金攻擊的效率。


5.戰術清單如果資料很多,可以將目前所在地圖的怪物項目,使用上下移動的方式移到最上面,這樣對於AI的執行效率會有幫助。


追蹤資料(未整理):


1.使用硝酸瓶打MVPs


I made a new mod for Mir AI.


MVP Mod for Acid Bomb Biochemists


MVP_Mod.zip


This mod allows you to automatically use Acid Bomb on MVPs. It also allows the Homunculus to attack MVPs as if they're free-for-all (that is, it doesn't check them for KSing, but it will still check non-MVPs and mini-bosses.)


The MVP list is current to the 11.1 Rachel update. Evil Snake Lord and Gloom Under Night have been excluded from the list, as they can not be damaged by Acid Bomb.


To test it, I temporarily changed the code to use Acid Terror instead, and temporarily added Vagabond Wolf into the MVP list. I found a Vagabond Wolf and tried it out, and Acid Terror did cast when my Homunculus attacked it. (I don't have a Biochemist yet ^^


NOTE: This mod only works when the Homunculus is attacking the MVP. There is no code to make it attack the MVP first. As a result, you will need to do 2 things in the Mir AI Control Panel to make it prioritize its targets so it will always attack the MVP regardless of whatever else is in view:


1. Go into your Tactics tab, and add in all the MVPs, and their monster IDs. Set the behavior to attack_1st.


2. Uncheck the box that says "Switch target on battle, to go help the owner"


To enable this mod, extract the MVP_Mod.lua file into your USER_AI folder, and then under Mir AI Control Panel, go to the Extra tab, then select MVP_Mod.lua.


MVP Mod was done by me, Katana, ~Aurora~Goddess~, Des, Zenia-chan, -Ash Ketchum-, whatever you wanna call me. Lol


Mir AI was done by Miranda Blade. Thank you so much for this awesome, flexible AI!


2.指定PVP或是GVG不主動打人戰術清單:


- PvP - Normals
Tact[0] = {"Novice", BEHA_react, WITH_full_power, 5, 0}
Tact[1] = {"Swordsman", BEHA_react, WITH_full_power, 5, 0}
Tact[2] = {"Mage", BEHA_react, WITH_full_power, 5, 0}
Tact[3] = {"Archer", BEHA_react, WITH_full_power, 5, 0}
Tact[4] = {"Acolyte", BEHA_react, WITH_full_power, 5, 0}
Tact[5] = {"Merchant", BEHA_react, WITH_full_power, 5, 0}
Tact[6] = {"Thief", BEHA_react, WITH_full_power, 5, 0}
Tact[7] = {"Knight", BEHA_react, WITH_full_power, 5, 0}
Tact[8] = {"Priest", BEHA_react, WITH_full_power, 5, 0}
Tact[9] = {"Wizard", BEHA_react, WITH_full_power, 5, 0}
Tact[10] = {"Blacksmith", BEHA_react, WITH_full_power, 5, 0}
Tact[11] = {"Hunter", BEHA_react, WITH_full_power, 5, 0}
Tact[12] = {"Assassin", BEHA_react, WITH_full_power, 5, 0}
Tact[13] = {"Peco Knight", BEHA_react, WITH_full_power, 5, 0}
Tact[14] = {"Crusader", BEHA_react, WITH_full_power, 5, 0}
Tact[15] = {"Monk", BEHA_react, WITH_full_power, 5, 0}
Tact[16] = {"Sage", BEHA_react, WITH_full_power, 5, 0}
Tact[17] = {"Rogue", BEHA_react, WITH_full_power, 5, 0}
Tact[18] = {"Alchemist", BEHA_react, WITH_full_power, 5, 0}
Tact[19] = {"Bard", BEHA_react, WITH_full_power, 5, 0}
Tact[20] = {"Dancer", BEHA_react, WITH_full_power, 5, 0}
Tact[21] = {"Peco Crusader", BEHA_react, WITH_full_power, 5, 0}
Tact[22] = {"Wedding", BEHA_react, WITH_full_power, 5, 0}
Tact[23] = {"Super Novice", BEHA_react, WITH_full_power, 5, 0}
Tact[24] = {"Gunslinger", BEHA_react, WITH_full_power, 5, 0}
Tact[25] = {"Ninja", BEHA_react, WITH_full_power, 5, 0}
Tact[26] = {"Santa", BEHA_react, WITH_full_power, 5, 0}
Tact[4046] = {"Taekwon", BEHA_react, WITH_full_power, 5, 0}
Tact[4047] = {"Star Gladiator", BEHA_react, WITH_full_power, 5, 0}
Tact[4048] = {"Star Gladiator", BEHA_react, WITH_full_power, 5, 0}
Tact[4049] = {"Soul Linker", BEHA_react, WITH_full_power, 5, 0}
- PvP - Babies
Tact[4023] = {"Novice", BEHA_react, WITH_full_power, 5, 0}
Tact[4024] = {"Swordsman", BEHA_react, WITH_full_power, 5, 0}
Tact[4025] = {"Mage", BEHA_react, WITH_full_power, 5, 0}
Tact[4026] = {"Archer", BEHA_react, WITH_full_power, 5, 0}
Tact[4027] = {"Acolyte", BEHA_react, WITH_full_power, 5, 0}
Tact[4028] = {"Merchant", BEHA_react, WITH_full_power, 5, 0}
Tact[4029] = {"Thief", BEHA_react, WITH_full_power, 5, 0}
Tact[4030] = {"Knight", BEHA_react, WITH_full_power, 5, 0}
Tact[4031] = {"Priest", BEHA_react, WITH_full_power, 5, 0}
Tact[4032] = {"Wizard", BEHA_react, WITH_full_power, 5, 0}
Tact[4033] = {"Blacksmith", BEHA_react, WITH_full_power, 5, 0}
Tact[4034] = {"Hunter", BEHA_react, WITH_full_power, 5, 0}
Tact[4035] = {"Assassin", BEHA_react, WITH_full_power, 5, 0}
Tact[4036] = {"Peco Knight", BEHA_react, WITH_full_power, 5, 0}
Tact[4037] = {"Crusader", BEHA_react, WITH_full_power, 5, 0}
Tact[4038] = {"Monk", BEHA_react, WITH_full_power, 5, 0}
Tact[4039] = {"Sage", BEHA_react, WITH_full_power, 5, 0}
Tact[4040] = {"Rogue", BEHA_react, WITH_full_power, 5, 0}
Tact[4041] = {"Alchemist", BEHA_react, WITH_full_power, 5, 0}
Tact[4042] = {"Bard", BEHA_react, WITH_full_power, 5, 0}
Tact[4043] = {"Dancer", BEHA_react, WITH_full_power, 5, 0}
Tact[4044] = {"Peco Crusader", BEHA_react, WITH_full_power, 5, 0}
Tact[4045] = {"Super Novice", BEHA_react, WITH_full_power, 5, 0}
- PvP - Transcendant
Tact[4001] = {"Novice", BEHA_react, WITH_full_power, 5, 0}
Tact[4002] = {"Swordsman", BEHA_react, WITH_full_power, 5, 0}
Tact[4003] = {"Mage", BEHA_react, WITH_full_power, 5, 0}
Tact[4004] = {"Archer", BEHA_react, WITH_full_power, 5, 0}
Tact[4005] = {"Acolyte", BEHA_react, WITH_full_power, 5, 0}
Tact[4006] = {"Merchant", BEHA_react, WITH_full_power, 5, 0}
Tact[4007] = {"Thief", BEHA_react, WITH_full_power, 5, 0}
Tact[4008] = {"Lord Knight", BEHA_react, WITH_full_power, 5, 0}
Tact[4009] = {"High Priest", BEHA_react, WITH_full_power, 5, 0}
Tact[4010] = {"High Wizard", BEHA_react, WITH_full_power, 5, 0}
Tact[4011] = {"Whitesmith", BEHA_react, WITH_full_power, 5, 0}
Tact[4012] = {"Sniper", BEHA_react, WITH_full_power, 5, 0}
Tact[4013] = {"Assassin Cross", BEHA_react, WITH_full_power, 5, 0}
Tact[4014] = {"Peco Lord Knight", BEHA_react, WITH_full_power, 5, 0}
Tact[4015] = {"Paladin", BEHA_react, WITH_full_power, 5, 0}
Tact[4016] = {"Champion", BEHA_react, WITH_full_power, 5, 0}
Tact[4017] = {"Professor", BEHA_react, WITH_full_power, 5, 0}
Tact[4018] = {"Stalker", BEHA_react, WITH_full_power, 5, 0}
Tact[4019] = {"Creator", BEHA_react, WITH_full_power, 5, 0}
Tact[4020] = {"Clown", BEHA_react, WITH_full_power, 5, 0}
Tact[4021] = {"Gypsy", BEHA_react, WITH_full_power, 5, 0}
Tact[4022] = {"Peco Paladin", BEHA_react, WITH_full_power, 5, 0}


3.在PVP或是GVG不受對方寵物影響清單:


- Pets
Tact[1101] = {"Pet Baphomet Jr.", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1109] = {"Pet Deviruchi", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1155] = {"Pet Earth Petite", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1029] = {"Pet Isis", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1035] = {"Pet Hunter Fly", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1170] = {"Pet Sohee", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1110] = {"Pet Dokebi", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1188] = {"Pet Bon Gun", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1026] = {"Pet Munak", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1023] = {"Pet Orc Warrior", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1057] = {"Pet Yoyo", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1077] = {"Pet Poison Spore", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1042] = {"Pet Steel Chonchon", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1056] = {"Pet Smokie", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1031] = {"Pet Poporing", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1019] = {"Pet Pecopeco", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1052] = {"Pet Rocker", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1014] = {"Pet Spore", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1107] = {"Pet Baby Desertwolf", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1167] = {"Pet Savage Bebe", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1011] = {"Pet Chonchon", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1113] = {"Pet Drops", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1063] = {"Pet Lunatic", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1049] = {"Pet Picky", BEHA_avoid, WITH_no_skill, 5, 0}
Tact[1002] = {"Pet Poring", BEHA_avoid, WITH_no_skill, 5, 0}


4.人工生命ID範圍:


Homun ID's are 6001 through 6016.


文章修改紀錄:


07.12.04


增加兩個小技巧3.4.


07.11.24


重新排版,增加行動模式及技能頻率說明。


增加兩個小技巧。



9 則留言:

匿名 提到...

載點都掛了喔...

匿名 提到...

直接連接下載的部份,應該是該服務商限制外連。

請連接官方網站以後,選擇下載即可。

匿名 提到...

新地圖莫斯科的怪
MONSTER裡沒有
要怎麼辦@@?

匿名 提到...

請問要如何設定搶怪??

Unknown 提到...

我現在才發現這個不錯的網站:P 這篇文章裡面放在bandongo裡的檔都已經不能下載了@@ (像是中文語系檔跟怪物對應id等等的檔案)可以請大大重新上傳或者mail給我嗎?感激不盡:)

wade 提到...

請問為什麼我的煉金不會幫生命體丟水?

匿名 提到...

請問可以給我中文檔的檔案嗎??

匿名 提到...

大大 可以傳給我中文檔嘛 感激不盡:]~我的MAIL t19910317@yahoo.com.tw

匿名 提到...

可以給我中文檔嗎謝啦k6408y@yahoo.com.tw