當前位置:首頁 » 編程軟體 » ai路徑腳本

ai路徑腳本

發布時間: 2023-07-22 17:56:27

⑴ 如何在游戲機制中使用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腳本

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

⑶ 請問有沒有大神可以實現在illustrator中用腳本激活一個動作 打開腳本文件.激活AI動作集PIN裡面的MOVE動作

寫vbs腳本,內容如下:

Set appRef = CreateObject("Illustrator.Application")
appRef.DoScript "movie", "pin"

保存為runscript.vbs,雙擊運行
ai必須是完整安裝版本,因要用到類型庫
如為綠色版,可用vb來做exe文件,vb里可手動引用scriptingsupport.aip

⑷ 真三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裡面就可以了
可以玩的,我經常玩這地圖,你要是找不到名字,把地圖重新解壓一遍,放在一個你記得路徑的文件夾里。

⑸ 星際爭霸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,便可以開始製作會動的電腦了.

熱點內容
成績評選演算法 發布:2025-02-06 11:42:51 瀏覽:994
資料庫測試數據 發布:2025-02-06 11:31:05 瀏覽:820
球頭軸編程 發布:2025-02-06 11:29:36 瀏覽:280
為什麼安卓系統不能收縮許可權 發布:2025-02-06 11:27:58 瀏覽:730
演算法4視頻 發布:2025-02-06 11:19:20 瀏覽:933
51內置音效卡需要什麼主機配置 發布:2025-02-06 11:18:33 瀏覽:838
防針刺傷的物品配置有哪些 發布:2025-02-06 11:11:25 瀏覽:670
游戲數據反編譯 發布:2025-02-06 11:05:30 瀏覽:400
逍遙安卓在哪裡下載的視頻 發布:2025-02-06 10:50:42 瀏覽:877
上編程序 發布:2025-02-06 10:49:08 瀏覽:796