##EasyReadMore##

2010年1月1日 星期五

通向DIY AI之路系列教程——如何讓荀判斷BUFF再插蛇


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

貌似很多能寫的內容都被其他人寫了,我就寫一些自己改過的內容吧
判斷BUFF的教程31曾經有寫過,首先要設置一個記錄BUFF的變量,函數內容如下:

function VS takes unit HL returns boolean
return(IsUnitType(HL,UNIT_TYPE_STUNNED))or GetUnitAbilityLevel(HL,'BPSE')>0or GetUnitAbilityLevel(HL,'BUim')>0 or GetUnitAbilityLevel(HL,'B012')>0 or GetUnitAbilityLevel(HL,'B000')>0 or GetUnitAbilityLevel(HL,'Bsta')>0 or GetUnitAbilityLevel(HL,'BUsl')>0
endfunction

其中名為VS的函數是記錄BUFF的變量,HL是持有BUFF的單位。這個函數里應該記錄了所有暈技的BUFF,至於他們的ID對應的BUFF我就不一一列出來了。

那麼,接下來,要讓荀來判斷他要插住的單位是否擁有被擊暈的BUFF。先把0.51荀插蛇的函數發上來,在0.51zhensan.ai的第7444行:

if HeroD!=null  and can_xun_cast_w()  then
set zs_action_prioty_arry[52]=89
endif

這是插蛇的那部分函數,其實上下還有一大段,不過因為我們不研究他們所以我就不複製上來了。這個函數很簡單,當荀能插蛇的時候,設置插蛇的優先級為89。所以最近的AI裡荀一有蛇就會亂空插。
那麼接下來把剛才設置的判斷BUFF的變量用到這個函數里去,就變成:

if HeroD!=null  and can_xun_cast_w() and VS(HeroD) then
set zs_action_prioty_arry[52]=89
endif

加紅字的部分就是後面添加的部分,目的是檢測HeroD身上是否有有有VS所記錄的BUFF,如果有,就設置插蛇的優先級為89,沒有的話則無動作。
.

沒有留言:

張貼留言

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