作者larchrono (拉可羅洛)
看板WarCraft
標題[WE] 新4.7夏侯淵鳥之寫法
時間Mon Dec 31 21:34:34 2007
4.7C夏侯淵的技能似乎寫法很怪
有許多BUG才下架不放
我這次重新寫了新的獵鷹&無雙箭雨(冰晶獵鷹陣)
攻速&獵鷹強度互換也處理完成了
關鍵在於用
工程升級這個技能的加入與移除做判定
成功的修正完成夏侯淵
另外炎黑印記使用上沒什麼問題所以沒去更動
判定"強化訓練&獵鷹"的部分就不寫了
寫法非常的簡單只是看大家有沒有想到這方法而已
------------------------------
globals
location tempp1
location tempp2
location tempp3
location tempp4
boolean array shaboolean
←判斷獵鷹存在的布林,為了多人選夏侯淵而用陣列
unit array shaunit
←為了支援多人選夏侯淵而用陣列
endglobals
●獵鷹攻擊判斷方程式
function skill7c takes nothing returns boolean
判定攻擊者為夏侯淵(E00T)and
布林為真and
被攻擊者不是建築物and
0~100隨機數字小於(8*獵鷹技能等級(A0FS))
return(GetUnitTypeId(GetAttacker())=='E00T')and
(shaboolean[(1+GetPlayerId(GetOwningPlayer(GetAttacker())))]and
IsUnitType(GetTriggerUnit(),UNIT_TYPE_STRUCTURE)==false and
GetRandomReal(0.00,100.00)<=(I2R(GetUnitAbilityLevelSwapped('A0FS',
GetAttacker()))*8.00))
endfunction
--------------------------------------
●獵鷹攻擊行動方程式之判斷
function
skill71 takes nothing returns boolean
被攻擊者不是建築物and
被攻擊者是攻擊者的敵人
return IsUnitType(GetTriggerUnit(),UNIT_TYPE_STRUCTURE)==false and
IsPlayerEnemy(GetOwningPlayer(GetTriggerUnit()),
GetOwningPlayer(GetAttacker())))
endfunction
---------------------------------
●獵鷹攻擊行動方程式之傷害
function
skill72 takes nothing returns nothing
叫隱藏單位對被PICK單位放寒冰爆(與獵鷹相關)、傷害(與強化訓練相關)
call SetUnitFacingToFaceUnitTimed(bj_lastCreatedUnit,GetEnumUnit(),0)
call IssueTargetOrderById(bj_lastCreatedUnit,852226,GetEnumUnit())
call UnitDamageTargetBJ(GetAttacker(),GetEnumUnit(),
.35*((I2R(GetUnitAbilityLevelSwapped('A0FO',GetAttacker()))*.25)*
I2R(GetHeroStatBJ(bj_HEROSTAT_AGI,GetAttacker(),true))),
ATTACK_TYPE_NORMAL,DAMAGE_TYPE_FIRE)
endfunction
--------------------------------
●獵鷹攻擊行動主方程式
function skill7a takes nothing returns nothing
local integer shair
set tempp1=GetUnitLoc(GetAttacker())
set tempp2=GetUnitLoc(GetTriggerUnit())
set tempp3=
GetUnitLoc(shaunit[(1+GetPlayerId(GetOwningPlayer(GetAttacker())))])
set tempp4=PolarProjectionBJ(tempp2,250.00,AngleBetweenPoints(tempp3,tempp2))
↓命令鳥[玩家編號]站在被攻擊者背後250處並面對他的背部
call SetUnitPositionLocFacingBJ
(shaunit[(1+GetPlayerId(GetOwningPlayer(GetAttacker())))],
tempp4,(AngleBetweenPoints(tempp3,tempp2)+180.00))
↓造隱藏單位,設技能等級
call CreateNUnitsAtLoc(1,'e01S',GetOwningPlayer(GetAttacker()),
tempp2,bj_UNIT_FACING)
call SetUnitAbilityLevelSwapped('A0FT',bj_lastCreatedUnit,
GetUnitAbilityLevelSwapped('A0FS',GetAttacker()))
↓叫鳥回來跟隨玩家
call IssueTargetOrderById
(shaunit[(1+GetPlayerId(GetOwningPlayer(GetAttacker())))],
851986,GetAttacker())
set shair=1
loop
exitwhen shair>3
↓Pick區域內單位條件skill71,行動skill72,Eh =
GetUnitsInRangeOfLocMatching
call ForGroupBJ(
Eh(250.00,tempp2,Condition(function
skill71)),function
skill72)
↓等候0.05秒,迴圈3次,遊戲中講攻擊三次就是這麼來的
call TriggerSleepAction(0.05)
set shair=shair+1
endloop
call RemoveLocation(tempp1)
call RemoveLocation(tempp2)
call RemoveLocation(tempp3)
call RemoveLocation(tempp4)
endfunction
*獵鷹本身須附加有拖曳特效的效果,才會有瞬間飛去攻擊敵人的感覺
這樣的話就帥多了,感覺以前的獵鷹很蠢= =...
--------------------------------------------------------
--------------------------------------------------------
無雙箭雨(沒有箭了,改用暴風雪比較華麗又不會出問題)
所以是冰晶獵鷹陣(?)埃唷~不會取名子啦
●行動方程式之判斷
function
skill81 takes nothing returns boolean
↓被Pick單位不是建築、是觸發者的敵人
return IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)==false and
IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()),
GetOwningPlayer(GetTriggerUnit())))
endfunction
---------------
●行動方程式之動作
function
skill82 takes nothing returns nothing
一次寫完,傷害被Pick目標(200 + 技能等級*50)
記得DamageType不要用NORMAL,不然會被張遼反彈...放一放結果自己死 囧rz
call UnitDamageTargetBJ(GetTriggerUnit(),GetEnumUnit(),
((I2R(GetUnitAbilityLevelSwapped('A0EA',GetTriggerUnit()))*50.00)+200),
ATTACK_TYPE_NORMAL,
DAMAGE_TYPE_FIRE)
endfunction
●行動方程式主動作
function skill8a takes nothing returns nothing
local location loloc1=GetUnitLoc(GetTriggerUnit())
local location loloc2=GetSpellTargetLoc()
↓eR = PolarProjectionBJ
local location loloc3=eR(loloc1,300.00,
(AngleBetweenPoints(loloc1,loloc2)-180.00))
local location loloc4
↓Eh = GetUnitsInRangeOfLocMatching
local group logrp=Eh(270.00,loloc2,Condition(function
skill81))
local integer loir1
call CreateNUnitsAtLoc(1,'h01J',GetOwningPlayer(GetTriggerUnit()),
loloc3,AngleBetweenPoints(loloc1,loloc2))
call ForGroupBJ(logrp,function
skill82)
↑叫傷害方程式↓冰雪暴效果,不設成到達目標才傷害是為了會戰效益
set loir1=1
loop
exitwhen loir1>5
set tempp1=eR(loloc2,GetRandomReal(0.00,250.00),GetRandomReal(0,360.00))
call CreateNUnitsAtLoc(1,'e01U',GetOwningPlayer(GetTriggerUnit()),
tempp1,AngleBetweenPoints(loloc2,loloc1))
call RemoveLocation(tempp1)
set loir1=loir1+1
endloop
↓等一秒\( ̄▽ ̄)/, el = TriggerSleepAction
call el(1.)
造帥帥的氣功波單位(e01T)於點loloc1對點loloc2放飛鷹(斬空波)
call CreateNUnitsAtLoc(1,'e01T',GetOwningPlayer(GetTriggerUnit()),
loloc3,AngleBetweenPoints(loloc1,loloc2))
call SetUnitAbilityLevelSwapped
('A0DY',bj_lastCreatedUnit,GetUnitAbilityLevelSwapped
('A0EA',GetTriggerUnit()))
call IssuePointOrderByIdLoc(bj_lastCreatedUnit,852125,loloc2)
call DestroyGroup(logrp)
call RemoveLocation(loloc1)
call RemoveLocation(loloc2)
call RemoveLocation(loloc3)
endfunction
帥帥的冰晶獵鷹陣完成了
除非放在懸崖上鳥飛不出來
(斬空波不能點懸崖,跟臥龍光線站懸崖前放不出來同道理)
不然絕對不會失效= =+
-------------------------
效果成果放在新的黃XD,XD4.8a
更名為
黃XD‧三國無雙
以後都用這張下去更新了
挑戰比官方寫出更不LAG的觸發XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.165.141.114
推 maxjoiny:高手...可惜我看不懂= = 12/31 21:45
推 paul0904:好文快推(免的被人說我不懂) 0.0 12/31 21:46
推 oeccc:那可以多改幾個讓官方學嗎 @Q@? 12/31 21:47
推 stqqq:加油 12/31 21:48
推 yeahhuman:先推 寫得真好啊!! (不然被笑看不懂) 12/31 21:49
→ takawei:各取所需吧 新年快樂! 12/31 21:49
推 gonia119:推,你寫的黃XD很好完 12/31 21:56
推 PinkGG:看不懂推 12/31 21:59
→ PinkGG:原來這位是黃XD作者 久仰久仰 12/31 21:59
推 shen05:我超喜歡黃XD@@ 12/31 22:50
推 A1pha:看的懂但是沒時間看..囧 這週三個期末考...死 12/31 22:50
推 deaddrunk:推 我的智商只能讓我直接end 12/31 22:58
推 dickyman:加油 新版本都好少人玩>~< 12/31 22:59
推 ilsummerya:黃XD好耶 12/31 23:03
→ wix3000:你肯讓我把載點修掉我就收精華區= =... 01/01 00:53
→ larchrono:科科 好的 把載點修掉吧~ 01/01 01:15
推 MrJack:推 迷上玩xd了 今害 01/01 01:36
推 juin20love:good 推~ 01/01 10:04
→ bearching:XDDDDD 01/01 11:04
推 Luckyo:推最後一句 = =+ 01/01 12:17
→ RandisAlbion:看不懂@@"太深奧了 01/01 14:04
推 bbsb:看完後,只能說,辛苦了~ 01/01 19:21
推 joe7317402:唉唷?! 好特別的寫法捏~幫你推推!! (不懂裝懂 01/01 19:33