##EasyReadMore##

2010年1月21日 星期四

[教程] 解碼wonder的AI文件

原文網址:http://bbs.wow8.org/thread-117178-1-27.html

我的願望吧,大家交流經驗,共同學習。

我現在看懂了裝備購買合成(關羽專武的還有點沒搞懂),至於施法控制,真的是難啊

有經驗的說下,從那個函數突破?

裝備突破:先瞭解購買參數和命令:舉個例子,玄武的合成:

function U8 takes nothing returns nothing
call K7(1000,'n00R','I000','I02C')
endfunction

function W8 takes nothing returns nothing
call K7(1150,'n003','I00X','I02C')
endfunction

function Y8 takes nothing returns nothing
call T7(1450,'I00X','I000',-1111,'n014','kygh')
endfunction

其中第一個紅色函數控制買力量之斧,括號裡從左到右分別代表:物品價格,物品出售商店代碼,物品代碼,合成物品代碼

第二個綠色函數是控制買鐵劍的,由於調用的都是K7函數,所以後面的參數一樣。

第三個紫色函數控制買製作書,它調用的是T7函數,所以參數和K7不一樣,括號裡分別代表:物品價格,合成物品所需材料代碼,固定代碼(以前是0,現在變成了-1111,不知道他具體作用),物品出售商店代碼,物品代碼。

至於控制英雄購買,是通過判斷AI金錢和裝備情況來實現的,這方面由於可看性太差,調用的函數太多,就不舉例子了

強調下,上面三個函數只是過程函數,控制買裝備要別的函數。用call 來調用函數名。

對於WONDER的AI版本,可以在地圖的J文件和AI文件裡添加和修改,但一旦將其AI文件導入到其他地圖就會發生紅藍消失等BUG,不知道他是改動了什麼。。。

正在努力研究中。。

下面發個控制SM大招的AI函數:我來漢化下,可能有錯誤。大家指正

1:function DZ takes unit HL,integer KY,integer FZ,unit GZ,real OU returns boolean 函數定義部分就不翻譯了。。

2:local player LY=V 定義玩家LY=V.

3:local integer PlayerID=GetPlayerId(LY) 定義一個整數型變量PlayerID=獲得玩家LY的ID

4:local location LQ=null 定義一個位置(點)變量LQ=空

5:local boolean BZ 定義一個真假型變量BZ

6:set LQ=GetUnitLoc(GZ) 設置位置(點)變量LQ=獲得單位GZ(即SM大要對誰放,這個誰就是GZ)位置

7:call SetPlayerAbilityAvailable(LY,KY,true) 調用函數:設置玩家技能可以使用(KY是一個參數,現在還不太明白)

8:set BZ=IssuePointOrderByIdLoc(HL,FZ,LQ) 設值真假變量BZ=在LQ位置(點)處釋放技能

9:call Sleep(OU-.25) 調用SLEEP(休眠)函數,休眠時間為:OU-0.25,單位為秒,意為使AI停止動

10:if not IsUnitInRangeLoc(GZ,LQ,250)then 如果現在單位GZ不在之前獲得的點變量LQ250園範圍內,那麼做下面的動作

11:call IssueImmediateOrderById(HL,851972) 對玩家HL發佈中立命令,命令ID為851972

12:call OL("stop dazhao sima==========================") 調用OL函數,作者在後面括號裡說面了這個函數是幹嘛的:就是S掉SM的大招。

13:call SetPlayerAbilityAvailable(LY,KY,false) 調用函數:設置玩家技能不可以使用

14:call RemoveLocation(LQ) 調用函數:移除LQ點變量

15:set LQ=null 設置LQ=空

16:return false 返回 假

17:endifENDIF (不要翻譯了吧。。)

18:call Sleep(.55) 調用SLEEP函數:休眠0.55秒。

19:call SetPlayerAbilityAvailable(LY,KY,false) 調用函數:設置玩家技能不可以使用

20:call RemoveLocation(LQ) 調用函數:移除LQ點變量

21:set LQ=null 設置LQ=空

22:return(BZ) 返回變量BZ

23:endfunction 函數結束

說面:每行前面的數字和冒號是為了便於我翻譯加的。

其中紅色的OU=2.00(秒)

說明下:由於個人的原因,由於WONDER得AI文件很難以解讀,所以可能本人一段時間內不會修改其AI文件。

下面我來發下WONDER的AI文件裡每個英雄的裝備路線
先發下函數代表哪些裝備

function VWV=購買退魔刀(自動用完買製作書)

function EVV=購買玄武

function EEV=購買衣服

function F8=購買飛鞋

function V9V=購買青囊

function V8V=購買猛德

function V7V=購買孫子

function V6V=購買七星

function V2V=購買月下

function VTV=購買關羽專署

function EXV=購買血斧

function EOV=購買倚天

function ERV=購買大地

function EIV=購買風暴

function EAV=購買變羊

function zs_eguizhui=購買暈錐

function VPV=購買郭嘉專署

下面是裝備函數

function ENV = 諸葛,司馬裝備路線。

function EBV =郭嘉裝備路線

function EDV =曹仁裝備路線

function EFV =趙雲裝備路線

function EGV =張遼裝備路線

function EHV =張飛裝備路線

function EJV =馬岱裝備路線

function EKV =宮本裝備路線

function ELV =關羽裝備路線

function EMV =典韋裝備路線

function EPV =魏延裝備路線

function EQV =大地裝備路線


以下是函數調用時使用的自定義的英雄ID代碼:

BO=關羽
DO=威嚴
RO=諸葛
CO=張飛
AO=趙雲
IO=司馬
HO=典韋
NO=張遼
FO=國家
JO=尋
GO=曹仁
KO=大地
QO=孫權
MO=馬岱
PO=張合
LO=宮本

沒有留言:

張貼留言

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