原文網址: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=宮本
沒有留言:
張貼留言