當前位置:首頁 » 網頁前端 » 游戲中加入ai腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

游戲中加入ai腳本

發布時間: 2023-03-12 03:28:04

㈠ 星際爭霸1的,編輯地圖的「執行AI腳本」和「在位置執行AI腳本」,那些腳本的中文意思是什麼

即使你在地圖配置了電腦單位,如果不替它們設定,它們都只會被動防守,不會作任何行動的.所以我們必須替它們設定行動.

要設定ai,便要在電腦玩家建立Trigger,Conditions須用always,及Action使用run at script.

現在說明各script的意思:

run ai script:

Send all Units on Strategic Suicide Missions:命令電腦所有部隊進行攻擊,進攻方法較醒目,直至所有人類玩家死去.

Send all Units on Random Suicide Missions:和上面一樣,但電腦進攻方法有點不同,只會狂攻.

Switch Computer pLayer to Rescuable:使電玩變成Rescuable.

run ai script at location:

[Expansion] Custom Level:電腦會在你指定的location建立基地,擴張及進攻.(這script是假設電腦在游戲開始時是沒有任何基地的)

[Expansion] Campaign Easy:電腦會在你指定的location內的基地建設最基本的建 和軍隊,也會有少形進攻.

[Expansion] Campaign Medium:電腦會在你指定的location內的基地建設大部份的建 和軍隊及進行研究,也會有中形進攻.

[Expansion] Campaign Difficult:電腦會在你指定的location內的基地建設所有的建 和軍隊及進行研究,也會有大形進攻.

Campaign Area Town:電腦會在你指定的location內的基地進行防守,但不會進攻.

[Expansion] Campaign Insane:這個我都不明白....

Value this Area Higher:電腦會視你所指定的location為重要地區,會派兵到該location防守.

Set pLayer To Enemy/Ally:沒有甚麽用途的script,因為Action的set alliance status可做到相同效果.

Enter Closest Bunker:命令location中的部隊進入碉堡,就像下圖那樣.

Enter Transport:命令location中的部隊進入運輸機.

Exit Transport:命令location中的部隊離開運輸機.

注意:上面Enter closest bunker和enter transport, exit transport叄個script是可以用在人類玩家上的.

配合以上的script,便可以開始製作會動的電腦了.

㈡ 武裝突襲3有什麼腳本設置AI技能如: 交戰距離 發現敵人距離 描准速度 精準度等等。

直接從創意工坊下載VCOM插件(AI增強),然後在游戲內高階設置中都可以設置你問題中的相關項目。你還會發現敵人也會包抄,搶載具,側撲規避子彈等等,祝游戲愉快

㈢ 如何在游戲機制中使用AI/劇情腳本

首先要說的是,並不是說AI,劇情邏輯必須非腳本語言不可,用C++也可以寫,甚至更習慣一些。但是腳本語言有腳本語言的長處,動態類型以及相當人性化的數據構造方式,特別是LUA中的表類型,似乎比較擅長描述這種復雜的AI/劇情結構。當然,為了驗證自己的想法,我也寫了4K的LUA代碼,結果覺得該腳本語言相當不容易構造簡潔的內容。

AI從高自低的分別是計劃,狀態機,模式。我不知道這種劃分是基於何種角度,但是我個人的理解是狀態機最高,模式作為某個狀態下的某個決策所預定義的動作序列,而計劃,是為了實現某個目標的一組步驟的組合。
那麼硬編碼的游戲循環何時調用腳本?答案是,游戲循環執行到調度NPC的AI函數的時候,該AI函數就不再做任何硬編碼,而只是簡單的dostring("gameEntitys[npc](/"update/")")。就是這么簡單,將所有的AI/劇情放置到腳本中。

那麼,LUA中 gameEntitys[npc]("update")是什麼意思?簡單的說,gameEntitys是一個存儲所有NPC的注冊表,gameEntitys[npc]將取得該npc的FMS函數,然後給該函數發送update消息告知npc當前的狀態進行例行更新。
FMS函數對於每一個對象是唯一的,那麼比如某一類對象有共同的AI/劇情,那麼該類的每一個對象同用同樣的FMS函數的話,成員變數如何維持?要知道在LUA中模擬類還是比較麻煩的。答案是upvalue,也就是所有的對象使用同樣的函數來生成自身的FMS,該函數就是FMS_Creator(all_state, init_state)。

在C++編碼中,NPC對象完成構造之後,就調用LUA載入對應的狀態機/劇情腳本,然後調用FMS_Creator為自己創建FMS函數:
dofile("npc_ai.lua") --引入all_state,init_state
gameEntitys[npc]=FMS_Creator(all_state, init_state)
當然,NPC析構之後,你也要釋放LUA為你分配的資源

gameEntitys[npc]=nil

已經大概說明了如何在C++中啟動NPC的LUA邏輯代碼了,那麼如何在LUA中編寫狀態機呢?答案是表。每個表代表一個狀態,該表下的key表示該狀態接受的消息,key對應的值表示該狀態接受到key所表示的消息後要執行的決策,包括相應的動作和可能的狀態變遷。看代碼吧,最直觀的表述:

state = {
name = "attack", --狀態名
enter = { --進入該狀態要執行,屬於狀態的消息
--func是函數,param是參數,sucess,unsucess是func執行結果所對應的狀態轉移
{func=print, param="open fire"},
{func=IsEnemyDie, sucess="cure"},
}
update={} --同enter,不過用於狀態在每一幀的更新
exit = {} --同enter,不過用於狀態在每一幀的更新
other_msg = {} --同enter,用於表示該狀態所接受的其他消息,可以有多個
}
在LUA中就是可以如此直觀的表示每一個狀態,其響應的消息以及函數。然後構造該npc接受的狀態集合:

all_state = {}
all_state[state.name]=state

init_state=state
這樣子,就能傳遞到FMS_Creator中創建出自己獨一無二的狀態機函數了。

那麼劇情腳本呢?其實描述了狀態機,劇情腳本是否已經有點眉頭了呢?劇情,即為計劃,每一個計劃由一系列步驟所組成。類似的,對應每個計劃的執行會有一個plan()函數,且為了達到獨立效果,該函數將會由plan_creator(all_step, first_step)生成。
看參數,顯然計劃的步驟step就是類似於狀態的表,不過key方面略有不同,看代碼就明白:

step = {
name="find bill",
cond = { --執行該步驟的前提條件
--func是判斷條件的函數,param是判斷參數
{func=IsXXX, param="xxx"},
{func=IsStepFinished, param=some_step},
},
finish = { --條件判斷成功要執行的動作
{func

㈣ 真三AI腳本

這個地圖應該是中法AI中最好的地圖
本地圖在真三國無雙v3.9d的基礎上添加ai腳本而來。
1.電腦會自動買賣合成物品。
2電腦出門和一定條件下會卡兵
3 電腦的補刀成功率在6成以上
4.電腦使用大招時有6成以上可能秒殺對手,配合裝備有9成可以秒殺對手。
5電腦後期會買中路兵。
如果你覺得簡單難度的電腦太菜,你可以選擇普通或瘋狂電腦。
普通和瘋狂電腦有額外資源收入。屏幕有提示(每分鍾為普通電腦增加50金5木,為瘋狂電腦增加100金10木)
和電腦對打應該對你提高很有幫助,下面是下載的網址
http://www.zmrgame.com/down/com/20090205/45438.shtml

地圖放在MAPS裡面就可以了
可以玩的,我經常玩這地圖,你要是找不到名字,把地圖重新解壓一遍,放在一個你記得路徑的文件夾里。

㈤ 魔獸地圖編輯器自動出兵AI腳本問題

看到這問題... 眼疼、
給你個建議:自己不要用電腦對戰AI
自己可以做一個。
因為電腦AI有個智能攻擊系統, 就是會集結一大隊去攻擊、
所以建議你不要去用電腦AI了

中秋快樂#23

㈥ 什麼是AI腳本

illustrator裡面通過實現寫好的程序腳本實現批處理,這類軟體功能很多如coreldraw的宏,PS的動作、批處理等等