. 原文網址:http://bbs.wow8.org/thread-134530-1-1.html 第一次寫教程,可能還不夠熟練,以後不夠詳細的地方請跟帖指出 function can_guojia_cast_c takes nothing returns boolean return CanCastAbilityOrder(mHero,'A01F',"impale") endfunction 這個語句是判斷郭嘉是否可以施放C,mHero指的是郭嘉,'A01F'是技能C的ID,"impale"是技能C的施法命令字符。接下來就是讓郭嘉點人C的語句了: function guojia_cast_c takes unit target returns nothing call CastTargetSkillByOderStr(mHero,'A01F',"impale",target) call Sleep(0.7) endfunction 這個語句裡,新變量target郭嘉要C的目標,內容是命令郭嘉C被作為target的單位,Sleep(0.7)是等待0.7秒。為什麼要等待0.7秒呢?因為郭嘉的C需要0.7秒的施放時間,中間發佈其他命令會打斷技能的施放。 看完0.51的函數後,接下來來教大家如何讓郭嘉點地板C 首先第一句的內容和上面的一樣,判斷郭嘉是否能施放C function can_guojia_cast_c takes nothing returns boolean return CanCastAbilityOrder(mHero,'A01F',"impale") endfunction 接來是重點了,設置一個點的變量,變量名為AM。 function loc_guojia_cast_c takes unit u returns nothing local location AM set AM=LP(u,mHero,-20) call guojia_cast_c(AM) call RemoveLocation(AM) set AM=null endfunction (u,mHero,-20)這句話的意思是,獲取郭嘉指向目標單位的角度,距離為20的點 然後,命令郭嘉往剛剛設置的變量AM那裡點C就可以了,C的函數如下。其中LP是獲取2個單位之間距離的函數,需要自己定義(其實叫什麼名字都可以) function guojia_cast_c takes location AM returns nothing call CastTargetSkillByOderStr(mHero,'A01F',"impale",AM,.65) endfunction 注意下函數的排列順序,要把第二句排在最後,第三句排在中間,為了方便說明才調換了順序,可用函數如下: function can_guojia_cast_c takes nothing returns boolean return CanCastAbilityOrder(mHero,'A01F',"impale") endfunction function guojia_cast_c takes location AM returns nothing call CastTargetSkillByOderStr(mHero,'A01F',"impale",AM,.65) endfunction function loc_guojia_cast_c takes unit u returns nothing local location AM set AM=LP(u,mHero,-20) call guojia_cast_c(AM) call RemoveLocation(AM) set AM=null endfunction PS:因為C地板的函數數據是從2.2的AI裡複製的,所以部分函數有加密,可能我忘記還原了,有錯誤請指出! . |
暴雪英霸是未來很看好的遊戲! 站長最近都玩 英雄聯盟 或 Mstar 。 以前站長擅長幫熱門的 魔獸3 地圖加入 AI, 可以和電腦英雄對戰,電腦懂的和人對話。
##EasyReadMore##
2010年1月1日 星期五
通向DIY AI之路系列教程——如何實現郭嘉點地板C
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言