[CG] 聖域英雄 德魯依製作技能介紹

看板WarCraft (魔獸爭霸 - 魔獸爭霸3)作者 (triangler)時間17年前 (2009/01/01 21:17), 編輯推噓16(1607)
留言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◥██████◤ What is this triangler?e◥████◤r─ ┌─┐ ├─┐ ┌─┐ │ ┌─┐ ┌─ │ l◥██◤i君は誰とキスをする? │ │ │ ┘ │ │ g◥◤a │ └─┤ │ │ └─┤ │坂本真綾 │ │ │ n │ └ │ ─┘ │ └トライアングラー -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.131.87

01/01 21:18, , 1F
頭end
01/01 21:18, 1F

01/01 21:18, , 2F
幹 暫存檔沒p幣
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
萬一orb被吸血蓋掉 情形是?
01/01 21:59, 10F

01/01 22:01, , 11F
情形就是162B會出現不能買吸血的修正
01/01 22:01, 11F

01/01 22:03, , 12F
不能改成melee買會變成自身靈氣嗎?
01/01 22:03, 12F

01/01 22:04, , 13F
是做得到啦 這樣好像range變相nerf 法球刀很多的話
01/01 22:04, 13F

01/01 22:05, , 14F
或是只有dru買才是靈氣
01/01 22:05, 14F

01/01 22:06, , 15F
也是可以 不然bm買回饋又可以買吸血..
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
專業! 樓上 我們只要負責玩就好 XD
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
就像在玩RPG製作大師...
01/01 23:53, 21F

01/02 00:14, , 22F
友情推~~
01/02 00:14, 22F

01/02 00:27, , 23F
push~
01/02 00:27, 23F
文章代碼(AID): #19NCA4Qg (WarCraft)
文章代碼(AID): #19NCA4Qg (WarCraft)