[CG] 聖域英雄 德魯依製作技能介紹
看板WarCraft (魔獸爭霸 - 魔獸爭霸3)作者game7895 (triangler)時間17年前 (2009/01/01 21:17)推噓16(16推 0噓 7→)留言23則, 17人參與討論串1/1
範例地圖︰http://chikaru.myweb.hinet.net/Druid.w3x (未鎖)
所需材料︰
單位︰
單位名稱 註解
德魯依 Druid 模組是熊德的英雄※(見註一)
1點怒氣 隨便一個人畜無害的單位*5
2點怒氣
3點怒氣
4點怒氣
5點怒氣
撕裂 適合拿來放法術的單位
※註一︰
德魯依必須有這些內建技能︰
英雄技能 爪擊 撕裂 狂怒 熊掌擊
普通技能 爪擊aspd 爪擊orb 物品欄(英雄)
技能︰
技能名稱 技能基底 註解
爪擊 bash或cri為佳 只是當icon,所以找個可以把機率
調成0的被動技能
撕裂 channel
狂怒 channel
熊掌擊 channel
怒氣1 球體 ※(見註二)
怒氣2 球體
怒氣3 球體
怒氣4 球體
怒氣5 球體
撕裂 出血 邪狂氣
爪擊 orb 物品開火腐敗加成
爪擊 aspd 物品攻擊速度加成 ※(見註三)
怒氣 atk 戰意
※註二︰
原本我想把五個怒氣塞在同一個技能,用等級控制
可是技能的美術設定不會因為等級而更改,所以五點怒氣只好分開成五個技能
※註三︰
爪擊aspd這個技能有10級,數值設定是這樣︰
lv1 0
lv2 -0.3
lv3 -0.2
lv4 -0.1
lv5 0
lv6 0.1
lv7 0.2
lv8 0.3
lv9 0.4
lv10 0.5
變數︰
變數名稱 變數類型 註解
ALH_Dru_AtkedUnit 單位(unit) 紀錄被普攻的單位
ALH_Dru_Ball 技能(ability) 陣列
ALH_Dru_BallInt 整數(integer) 紀錄目前怒氣等級
ALH_Dru_BallLimit 單位(unit) 紀錄生出來的怒氣限制,陣列
ALH_Dru_BallLimitType單位類型(unit-type) 陣列
ALH_Dru_FuryTimer 計時器(timer) 紀錄狂怒持續時間
ALH_Dru_Hero 單位(unit) 紀錄德魯依
升級
名稱 升級類型 註解
爪擊攻擊力 atk dmg bonus 爪擊的攻擊力升級※(見註四)
增益
增益名稱 註解
爪擊 判斷怒氣打人
怒氣 攻擊力加成
撕裂 出血
※註四
爪擊攻擊力的設定是base 10,increment 10
音效
音效名稱 註解
RockHeavyBashFlesh1 熊掌擊打人音效
GrizzlyBearReady1 狂怒熊吼
雜物︰
區域一個,名稱隨意,位置不要有單位可以走到就好
給打的靶子單位*1
觸發︰
Dru Set Variable
Events
Map initialization
Conditions
Actions
Set ALH_Dru_Ball[1] = Dru 怒氣1
Set ALH_Dru_Ball[2] = Dru 怒氣2
Set ALH_Dru_Ball[3] = Dru 怒氣3
Set ALH_Dru_Ball[4] = Dru 怒氣4
Set ALH_Dru_Ball[5] = Dru 怒氣5
//先把技能陣列設好,才能用陣列值抓
Set ALH_Dru_BallLimitType[1] = 1點怒氣
Set ALH_Dru_BallLimitType[2] = 2點怒氣
Set ALH_Dru_BallLimitType[3] = 3點怒氣
Set ALH_Dru_BallLimitType[4] = 4點怒氣
Set ALH_Dru_BallLimitType[5] = 5點怒氣
//先把單位類型陣列設好,才能用陣列值抓
Dru Learn Craw
Events
Unit - A unit Learns a skill
Conditions
(Learned Hero Skill) Equal to Dru 爪擊
Actions
Unit - Set level of Dru 爪擊aspd for (Learning Hero) to (6 - (Level of
Dru 爪擊 for (Learning Hero)))
//看看上面的註三,由於爪擊等級1234時aspd必須是0%/-10%/-20%/-30%,在爪擊aspd
對到的等級剛好是5432,也就是6-爪擊等級
Player - Set the current research level of Dru 爪擊攻擊力 to (Level of
Dru 爪擊 for (Learning Hero)) for (Owner of (Learning Hero))
//升級就1234級囉,跟爪擊等級相同
Trigger - Turn on Dru Craw atk <gen>
//學了爪擊,打人才有怒氣 │
│
Dru Craw atk ←─────┘
Events
Unit - A unit Is attacked
Conditions
(Unit-type of (Attacking unit)) Equal to 德魯依 Druid
Actions
Set ALH_Dru_AtkedUnit = (Attacked unit)
Set ALH_Dru_Hero = (Attacking unit)
//用全域變數傳遞攻擊者跟被攻擊者
Trigger - Turn on Dru Craw chech buff <gen>
//打人才開buff判定觸發 │
Dru Craw chech buff ←────┘
Events
Time - Every 0.10 seconds of game time
Conditions
(ALH_Dru_AtkedUnit has buff Dru 爪擊 ) Equal to True
//由於unit is attacked這條函數是從右鍵點人就有,而非打到人才有,所以需要更精準
的判定方式,我選擇的是用法球方式,法球每「擊中」一次會給一個buff
所以目標有buff就是真正被擊中了,這時候就可以作很多事
Actions
Unit - Remove Dru buff from ALH_Dru_AtkedUnit
//先把buff刪掉
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(ALH_Dru_BallInt + 1) Less than or equal to 5
//怒氣上限到5,所以5之前都要一直加怒氣
Then - Actions
Unit - Remove ALH_Dru_Ball[ALH_Dru_BallInt] from ALH_Dru_Hero
Set ALH_Dru_BallInt = (ALH_Dru_BallInt + 1)
Unit - Add ALH_Dru_Ball[ALH_Dru_BallInt] to ALH_Dru_Hero
//球體技能是分開的,所以怒氣每加一次就要換一次技能
//先刪目前的,然後怒氣加1,再加上正確技能
For each (Integer A) from 1 to ALH_Dru_BallInt, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions)
else do (Else Actions)
If - Conditions
(Number of living
ALH_Dru_BallLimitType[(Integer A)] units owned by (Owner of ALH_Dru_Hero))
Equal to 0
//判定怒氣限制單位生出來了沒
Then - Actions
Unit - Create 1
ALH_Dru_BallLimitType[(Integer A)] for (Owner of ALH_Dru_Hero) at (Random
point in food <gen>) facing Default building facing degrees
//把怒氣單位生在沒人會去的區域
Set ALH_Dru_BallLimit[ALH_Dru_BallInt] =
(Last created unit)
用單位陣列設好才好抓
Else - Actions
Do nothing
Trigger - Turn off (This trigger)
//普攻該做的事都做完了,不要影響下次普攻,關掉
Else - Actions
Do nothing
Dru Laceration
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Dru 撕裂
Actions
--------隱形單位給技能--------
Unit - Create 1 撕裂 for (Owner of (Casting unit)) at (Position of
(Casting unit)) facing Default building facing degrees
Unit - Add Dru 撕裂 出血 to (Last created unit)
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Unit - Hide (Last created unit)
Unit - Order (Last created unit) to Undead Necromancer - Unholy
Frenzy (Target unit of ability being cast)
Unit - Create 1 撕裂 for (Owner of (Casting unit)) at (Position of
(Casting unit)) facing Default building facing degrees
Unit - Add Dru 撕裂 atk to (Last created unit)
Unit - Set level of Dru 撕裂 atk for (Last created unit) to (Level
of (Ability being cast) for (Casting unit))
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Unit - Hide (Last created unit)
Unit - Order (Last created unit) to Human Priest - Inner Fire
(Casting unit)
//放隱形單位去出血跟atk buff,取名為撕裂是這樣殺人訊息才會寫撕裂
-------- 隱形單位給技能--------
For each (Integer A) from 1 to 2, do (Actions)
Loop - Actions
Unit - Kill ALH_Dru_BallLimit[ALH_Dru_BallInt]
Unit - Remove ALH_Dru_Ball[ALH_Dru_BallInt] from ALH_Dru_Hero
Set ALH_Dru_BallInt = (ALH_Dru_BallInt - 1)
Unit - Add ALH_Dru_Ball[ALH_Dru_BallInt] to ALH_Dru_Hero
//怒氣判斷的系統,消耗2點怒氣就跑兩次for,殺兩隻怒氣判定單位
Dru Fury
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Dru 狂怒
Actions
Sound - Play GrizzlyBearReady1 <gen> at 100.00% volume, attached to
ALH_Dru_Hero
//放狂怒熊吼音效
Countdown Timer - Start ALH_Dru_FuryTimer as a One-shot timer that
will expire in 5.00 seconds
狂怒持續5秒
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Level of Dru 爪擊 aspd for (Casting unit)) + 1) Less than or
equal to 10
Then - Actions
Unit - Increase level of Dru 爪擊 aspd for (Casting unit)
Else - Actions
Unit - Set level of Dru 爪擊 aspd for (Casting unit) to 10
//aspd到10級之前都可以一直升級,滿了之後再狂怒只是維持在10級而已
For each (Integer A) from 1 to 3, do (Actions)
Loop - Actions
Unit - Kill ALH_Dru_BallLimit[ALH_Dru_BallInt]
Unit - Remove ALH_Dru_Ball[ALH_Dru_BallInt] from ALH_Dru_Hero
Set ALH_Dru_BallInt = (ALH_Dru_BallInt - 1)
Unit - Add ALH_Dru_Ball[ALH_Dru_BallInt] to ALH_Dru_Hero
怒氣判斷
Dru Fury Decrease
Events
Time - ALH_Dru_FuryTimer expires
//狂怒計時器時間到
Conditions
Actions
Unit - Decrease level of Dru 爪擊 aspd for ALH_Dru_Hero
//時間到,降一級
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Level of Dru 爪擊 aspd for ALH_Dru_Hero) - 1) Greater than
or equal to (6 - (Level of Dru 爪擊 for ALH_Dru_Hero))
Then - Actions
Countdown Timer - Start ALH_Dru_FuryTimer as a One-shot timer
that will expire in 5.00 seconds
//狂怒在降到目前「初始的aspd等級」之前,應該要一直降
而這個初始的aspd等級跟爪擊學到幾級有關,就是6-爪擊等級
所以只要aspd等級還大於6-爪擊等級,就要一直降下去,也就是重跑timer
Else - Actions
Do nothing
Dru BearHand
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Dru 熊掌擊
Actions
Sound - Play RockHeavyBashFlesh1 <gen> at 100.00% volume, attached to
ALH_Dru_Hero
//播放熊掌巴人音效
Unit - Pause (Casting unit)
//這裡要先把熊德定住,不然他接下來的普攻會把播放的攻擊動畫取消掉
Animation - Change ALH_Dru_Hero's animation speed to 1000.00% of its
original speed
Animation - Play ALH_Dru_Hero's attack alternate animation
Animation - Change ALH_Dru_Hero's animation speed to 100.00% of its
original speed
//把動畫速度調快,然後播放熊掌巴人動畫
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Target unit of ability being cast) has buff Dru ?厠?) Equal
to True
Then - Actions
Unit - Cause (Casting unit) to damage (Target unit of ability
being cast), dealing 200.00 damage of attack type Spells and
damage type Normal
Else - Actions
Unit - Cause (Casting unit) to damage (Target unit of ability
being cast), dealing 100.00 damage of attack type Spells and
damage type Normal
//有出血打兩倍
For each (Integer A) from 1 to 4, do (Actions)
Loop - Actions
Unit - Kill ALH_Dru_BallLimit[ALH_Dru_BallInt]
Unit - Remove ALH_Dru_Ball[ALH_Dru_BallInt] from ALH_Dru_Hero
Set ALH_Dru_BallInt = (ALH_Dru_BallInt - 1)
Unit - Add ALH_Dru_Ball[ALH_Dru_BallInt] to ALH_Dru_Hero
//怒氣判斷
Unit - Unpause (Casting unit)
好長……中間pcman還當一次,不知道讀取暫存檔有沒有p幣?
--
──T r i a n g l e r Triangler Triangler
r◥██████◤T What is this triangler?
│e◥████◤r─ ┌─┐ ├─┐ ┌─┐ │ ┌─┐ ┌─
│ l◥██◤i │ 君は誰とキスをする? │ │ │ ┘ │
│ g◥◤a │ └─┤ │ │ └─┤ │坂本真綾 │
│ │ n │ └ │ ─┘ │ └トライアングラー
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.131.87
→
01/01 21:18, , 1F
01/01 21:18, 1F
→
01/01 21:18, , 2F
01/01 21:18, 2F
推
01/01 21:20, , 3F
01/01 21:20, 3F
推
01/01 21:22, , 4F
01/01 21:22, 4F
推
01/01 21:26, , 5F
01/01 21:26, 5F
推
01/01 21:26, , 6F
01/01 21:26, 6F
推
01/01 21:28, , 7F
01/01 21:28, 7F
推
01/01 21:48, , 8F
01/01 21:48, 8F
推
01/01 21:52, , 9F
01/01 21:52, 9F
推
01/01 21:59, , 10F
01/01 21:59, 10F
→
01/01 22:01, , 11F
01/01 22:01, 11F
推
01/01 22:03, , 12F
01/01 22:03, 12F
→
01/01 22:04, , 13F
01/01 22:04, 13F
→
01/01 22:05, , 14F
01/01 22:05, 14F
→
01/01 22:06, , 15F
01/01 22:06, 15F
推
01/01 22:14, , 16F
01/01 22:14, 16F
推
01/01 23:02, , 17F
01/01 23:02, 17F
推
01/01 23:10, , 18F
01/01 23:10, 18F
推
01/01 23:37, , 19F
01/01 23:37, 19F
推
01/01 23:43, , 20F
01/01 23:43, 20F
→
01/01 23:53, , 21F
01/01 23:53, 21F
推
01/02 00:14, , 22F
01/02 00:14, 22F
推
01/02 00:27, , 23F
01/02 00:27, 23F
WarCraft 近期熱門文章
PTT遊戲區 即時熱門文章
15
43