Advertisement
henry900326

Untitled

Sep 22nd, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.45 KB | None | 0 0
  1. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  2. # [ Options 選項 ]
  3. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  4. Options:
  5. Tag: &6技能 &c&l>>
  6.  
  7. #[ 暴風神射 ]
  8. 暴風神射.CD: 18
  9. 暴風神射.MP: 150
  10. 暴風神射.Max: 5
  11.  
  12. #[ 碎冰風箭 ]
  13. 碎冰風箭.CD: 8
  14. 碎冰風箭.MP: 100
  15. 碎冰風箭.Max: 5
  16.  
  17. #[ 火鳳衝擊 ]
  18. 火鳳衝擊.CD: 3
  19. 火鳳衝擊.MP: 45
  20. 火鳳衝擊.Max: 10
  21.  
  22. #[ 不死鳥 ]
  23. 不死鳥.CD: 15
  24. 不死鳥.MP: 0
  25. 不死鳥.Max: 5
  26.  
  27. #[ 元素歸始 ]
  28. 元素歸始.Max: 10
  29.  
  30. #[ 會心之眼 ]
  31. 會心之眼.CD: 90
  32. 會心之眼.受益時間: 60
  33. 會心之眼.MP: 180
  34. 會心之眼.Max: 5
  35.  
  36.  
  37.  
  38. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  39. # [ Function 函式 ]
  40. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  41.  
  42.  
  43. Function 箭神skill(P:player):
  44. set slot 4 of {_P}'s current inventory to 1 of glowing bow with no nbt named "&e箭神" with lore "&f《&e剩餘技能點&f: &6%{玩家資料.%{_P}%::剩餘技能點}% &f》"
  45. set slot 19 of {_P}'s current inventory to 25 of tipped arrow with custom nbt "{Potion:leaping,HideFlags:32}" named "&c暴風神射" with lore "&e技能介紹:||&f將風發揮至極限||&f啟動技能1秒後,時間內每秒射出額外箭矢||&f持續/冷卻時間內射擊時物理攻擊力增加75%%||&c造成傷害條件: &f射擊時手持正確的武器,傷害量為武器普攻傷害||&e持續時間: &f%({技能.%{_P}%::暴風神射}*2)%秒||&e冷卻時間: &f18秒||&e魔力消耗量: &f150MP||&e技能類型: &c主動技能"
  46. if {技能.%{_P}%::暴風神射} >= 5:
  47. set slot 28 of {_P}'s current inventory to blue stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::暴風神射}%/5" with lore "&c等級已滿 無法升級"
  48. else if {技能.%{_P}%::暴風神射} >= 0:
  49. set slot 28 of {_P}'s current inventory to white stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::暴風神射}%/5" with lore "&a點此升級暴風神射"
  50. set slot 20 of {_P}'s current inventory to tipped arrow with custom nbt "{Potion:swiftness,HideFlags:32}" named "&c碎冰風箭" with lore "&e技能介紹:||&f將箭賦予冰屬性向前射擊||&f對路徑上的敵人持續造成物理傷害||&e最大傷害次數: &f10次||&e傷害量: &f(物理攻擊力)*%(300+30*{技能.%{_P}%::碎冰風箭})%%%||&e攻擊距離: &f20格||&e攻擊範圍: &f4格||&e冷卻時間: &f8秒||&e魔力消耗量: &b100MP||&e技能類型: &c主動技能"
  51. if {技能.%{_P}%::碎冰風箭} >= 5:
  52. set slot 29 of {_P}'s current inventory to blue stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::碎冰風箭}%/5" with lore "&c等級已滿 無法升級"
  53. else if {技能.%{_P}%::碎冰風箭} >= 0:
  54. set slot 29 of {_P}'s current inventory to white stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::碎冰風箭}%/5" with lore "&a點此升級碎冰風箭"
  55. set slot 21 of {_P}'s current inventory to tipped arrow with custom nbt "{Potion:strong_healing,HideFlags:32}" named "&c火鳳衝擊" with lore "&e技能介紹:||&f將箭賦予不死鳥的精神||&f對前方範圍敵人造成物理傷害||&f命中敵人時,恢復自身3%%HP||&a>> 附加額外技能 - 鳳凰追擊||&e 技能介紹:||&f 使用弓射擊敵人時,有機率召喚&c『鳳凰』||&f 鳳凰會幫助箭超高速飛行,同時造成雙倍傷害||&e傷害量: &f(物理攻擊力)*%(400+50*{技能.%{_P}%::火鳳衝擊})%%%||&e攻擊距離: &f25格||&e攻擊範圍: &f4格||&e冷卻時間: &f3秒||&e魔力消耗量: &b45MP||&e技能類型: &c主動技能"
  56. if {技能.%{_P}%::火鳳衝擊} >= 10:
  57. set slot 30 of {_P}'s current inventory to blue stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::火鳳衝擊}%/10" with lore "&c等級已滿 無法升級"
  58. else if {技能.%{_P}%::火鳳衝擊} >= 0:
  59. set slot 30 of {_P}'s current inventory to white stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::火鳳衝擊}%/10" with lore "&a點此升級火鳳衝擊"
  60. set slot 23 of {_P}'s current inventory to glowing blaze powder named "&5不死鳥" with lore "&e技能介紹:||&f將鳳凰的力量與自己結合||&f當HP低於50%%時,以比例恢復HP||&f否則以比例恢復MP||&eHP恢復量: &f(最大血量)*%(20*{技能.%{_P}%::不死鳥})%%%||&eMP恢復量: &f(最大魔量)*%(15*{技能.%{_P}%::不死鳥})%%%||&e冷卻時間: &f20秒||&e魔力消耗量: &b0MP||&e技能類型: &c主動技能"
  61. if {技能.%{_P}%::不死鳥} >= 5:
  62. set slot 32 of {_P}'s current inventory to blue stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::不死鳥}%/5" with lore "&c等級已滿 無法升級"
  63. else if {技能.%{_P}%::不死鳥} >= 0:
  64. set slot 32 of {_P}'s current inventory to white stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::不死鳥}%/5" with lore "&a點此升級不死鳥"
  65. set slot 24 of {_P}'s current inventory to magma cream named "&a元素歸始" with lore "&e技能介紹:||&f將原有元素歸始,創造出只屬於自己的結合元素||&f每級提升150點最大HP,10點最大MP,25點物理攻擊力||&e最大HP提升量: &f%150*{技能.%{_P}%::元素歸始}%||&e最大MP提升量: &f%10*{技能.%{_P}%::元素歸始}%||&e物理攻擊力提升量: &f%25*{技能.%{_P}%::元素歸始}%||&e技能類型: &a被動技能"
  66. if {技能.%{_P}%::元素歸始} >= 10:
  67. set slot 33 of {_P}'s current inventory to blue stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::元素歸始}%/10" with lore "&c等級已滿 無法升級"
  68. else if {技能.%{_P}%::元素歸始} >= 0:
  69. set slot 33 of {_P}'s current inventory to white stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::元素歸始}%/10" with lore "&a點此升級元素歸始"
  70. set slot 25 of {_P}'s current inventory to eye of ender named "&5會心之眼" with lore "&e技能介紹:||&f提高範圍內友方的弱點洞察力||&f每級提升4%%爆擊率和6%%爆擊傷害||&e爆擊率提升量: &f%4*{技能.%{_P}%::會心之眼}%%%||&e爆擊傷害提升量: &f%6*{技能.%{_P}%::會心之眼}%%%||&e持續時間: &f60秒||&e冷卻時間: &f90秒||&e魔力消耗量: &b180MP||&e技能類型: &a主動技能"
  71. if {技能.%{_P}%::會心之眼} >= 5:
  72. set slot 34 of {_P}'s current inventory to blue stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::會心之眼}%/5" with lore "&c等級已滿 無法升級"
  73. else if {技能.%{_P}%::會心之眼} >= 0:
  74. set slot 34 of {_P}'s current inventory to white stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::會心之眼}%/5" with lore "&a點此升級會心之眼"
  75.  
  76. Function SkillLevelUp(P:player, S:text, M:number):
  77. if {玩家資料.%{_P}%::剩餘技能點} is larger than 0:
  78. {技能.%{_P}%::%{_S}%} < {_M}
  79. {技能.%{_P}%::%{_S}%} >= 0
  80. remove 1 from {玩家資料.%{_P}%::剩餘技能點}
  81. add 1 to {技能.%{_P}%::%{_S}%}
  82. else:
  83. send "&6技能 >> &c您的技能點數不足 無法升級該技能" to {_P}
  84.  
  85. Function Skill(P:player, S:text, Max:number, CD:number, MP:number) :: boolean:
  86. set {_Skill} to uncolored {_S}
  87. if {技能.%{_P}%::%{_Skill}%} <= 0:
  88. send "{@Tag} &c尚未學習 &f<%{_S}%&f>" to {_P}
  89. return false
  90. stop
  91. if {技能.%{_P}%::%{_Skill}%} > {_Max}:
  92. send "{@Tag} &c&l注意! 你的技能等級出現錯誤! 請盡速尋求管理員協助!" to {_P}
  93. return false
  94. stop
  95. set {_冷卻} to "%difference between {冷卻.%{_P}%::%{_Skill}%} and now%"
  96. replace "seconds" and "second" and " " with "" in {_冷卻}
  97. set {_冷卻} to {_冷卻} parsed as number
  98. set {_CD} to {_CD} parsed as number
  99. if {_冷卻} is less than {_CD}:
  100. set {_冷卻} to "%difference between {_CD} and {_冷卻}%"
  101. replace "seconds" and "second" and " " with "" in {_冷卻}
  102. send "{@Tag} &f技能冷卻中 &f<%{_S}%&f> &f還有 &e%{_冷卻}% &f秒" to {_P}
  103. return false
  104. stop
  105. if {玩家魔力值.%{_P}%} is larger or equal to {_MP}:
  106. remove {_MP} from {玩家魔力值.%{_P}%}
  107. set {_math} to 0.99 * {玩家魔力值.%{_P}%} / {玩家資料.%{_P}%::魔力值}
  108. if {_math} is more than or equal to 1:
  109. set {_math} to 0.99
  110. set level progress of {_P} to {_math}
  111. set {_P}'s level to {玩家魔力值.%{_P}%}
  112. send "{@Tag} &f施放技能 &f<%{_S}%&f> &f消耗了 &9%{_MP}% &f魔力值" to {_P}
  113. else:
  114. send "{@Tag} &c魔力不足 無法施放 &f<%{_S}%&f>" to {_P}
  115. return false
  116. stop
  117. return true
  118.  
  119.  
  120.  
  121.  
  122. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  123. # [ SkillGui 技能介面 ]
  124. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  125. command /skill3B:
  126. trigger:
  127. if {玩家資料.%player%::玩家職業} is "箭神":
  128. set {技能.%player%::暴風神射} to {技能.%player%::暴風神射} parsed as number
  129. set {技能.%player%::碎冰風箭} to {技能.%player%::碎冰風箭} parsed as number
  130. set {技能.%player%::火鳳衝擊} to {技能.%player%::火鳳衝擊} parsed as number
  131. set {技能.%player%::不死鳥} to {技能.%player%::不死鳥} parsed as number
  132. set {技能.%player%::元素歸始} to {技能.%player%::元素歸始} parsed as number
  133. set {技能.%player%::會心之眼} to {技能.%player%::會心之眼} parsed as number
  134. open chest with 5 rows named "&c&l箭神[3轉] &6&l技能介面" to player
  135. wait 1 ticks
  136. loop 2 times:
  137. set slot (loop-number) of player's current inventory to 1 of gray stained glass pane named "&7"
  138. set slot (loop-number + 5) of player's current inventory to 1 of gray stained glass pane named "&7"
  139. set slot (1 + (loop-number * 2)) of player's current inventory to 1 of orange stained glass pane named "&7"
  140. loop 6 times:
  141. set slot ((loop-number - 1) * 9) of player's current inventory to 1 of gray stained glass pane named "&7"
  142. set slot (8 + (loop-number - 1) * 9) of player's current inventory to 1 of gray stained glass pane named "&7"
  143. loop 7 times:
  144. set slot (9 + loop-number) of player's current inventory to 1 of orange stained glass pane named "&7"
  145. set slot (36 + loop-number) of player's current inventory to 1 of gray stained glass pane named "&7"
  146. 箭神skill(player)
  147.  
  148. on inventory click:
  149. name of player's current inventory contains "箭神[3轉]":
  150. cancel event
  151. if lore of item contains "&a點此升級暴風神射":
  152. if {玩家資料.%player%::剩餘技能點} is larger than 0:
  153. SkillLevelUp(player,"暴風神射",{@暴風神射.Max})
  154. if lore of item contains "&a點此升級碎冰風箭":
  155. if {玩家資料.%player%::剩餘技能點} is larger than 0:
  156. SkillLevelUp(player,"碎冰風箭",{@碎冰風箭.Max})
  157. if lore of item contains "&a點此升級火鳳衝擊":
  158. if {玩家資料.%player%::剩餘技能點} is larger than 0:
  159. SkillLevelUp(player,"火鳳衝擊",{@火鳳衝擊.Max})
  160. if lore of item contains "&a點此升級不死鳥":
  161. if {玩家資料.%player%::剩餘技能點} is larger than 0:
  162. SkillLevelUp(player,"不死鳥",{@不死鳥.Max})
  163. if lore of item contains "&a點此升級元素歸始":
  164. if {玩家資料.%player%::剩餘技能點} is larger than 0:
  165. SkillLevelUp(player,"元素歸始",{@元素歸始.Max})
  166. add 150 to {玩家資料.%player%::最大血量}
  167. add 10 to {玩家資料.%player%::魔力值}
  168. add 25 to {玩家資料.%player%::物理攻擊力}
  169. if lore of item contains "&a點此升級會心之眼":
  170. if {玩家資料.%player%::剩餘技能點} is larger than 0:
  171. SkillLevelUp(player,"會心之眼",{@會心之眼.Max})
  172. 箭神skill(player)
  173.  
  174.  
  175.  
  176. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  177. # [ Skill 技能 ]
  178. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  179. on right click:
  180. {玩家資料.%player%::玩家職業} is "箭神"
  181. set {_STRATK} to {玩家資料.%player%::力量} * 0.5
  182. set {_DEXATK} to {玩家資料.%player%::敏捷} * 0.7
  183. set {_INTATK} to {玩家資料.%player%::智慧} * 0.6
  184. set {_LUKATK} to {玩家資料.%player%::幸運} * 0.4
  185. set {_PHYSICDMG} to {玩家資料.%player%::物理攻擊力}
  186. set {_MAGICDMG} to {玩家資料.%player%::魔法攻擊力}
  187. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 0:
  188. add ({_STRATK} + {_DEXATK} + {_LUKATK}) to {_PHYSICDMG}
  189. add ({_INTATK} + {_LUKATK}) to {_MAGICDMG}
  190. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 1:
  191. add ({_STRATK} + {_DEXATK} + {_LUKATK})*1.2 to {_PHYSICDMG}
  192. add ({_INTATK} + {_LUKATK})*1.2 to {_MAGICDMG}
  193. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 2:
  194. add ({_STRATK} + {_DEXATK} + {_LUKATK})*1.4 to {_PHYSICDMG}
  195. add ({_INTATK} + {_LUKATK})*1.4 to {_MAGICDMG}
  196. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 3:
  197. add ({_STRATK} + {_DEXATK} + {_LUKATK})*1.8 to {_PHYSICDMG}
  198. add ({_INTATK} + {_LUKATK})*1.8 to {_MAGICDMG}
  199. set {_check} to {玩家資料.%player%::最大血量}
  200. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 0:
  201. add ({玩家資料.%player%::力量} * 5) to {_check}
  202. add ({玩家資料.%player%::智慧} * 4) to {_check}
  203. add ({玩家資料.%player%::敏捷} * 3) to {_check}
  204. add ({玩家資料.%player%::幸運} * 2) to {_check}
  205. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 1:
  206. add ({玩家資料.%player%::力量} * 5)*1.25 to {_check}
  207. add ({玩家資料.%player%::智慧} * 4)*1.25 to {_check}
  208. add ({玩家資料.%player%::敏捷} * 3)*1.25 to {_check}
  209. add ({玩家資料.%player%::幸運} * 2)*1.25 to {_check}
  210. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 2:
  211. add ({玩家資料.%player%::力量} * 5)*1.5 to {_check}
  212. add ({玩家資料.%player%::智慧} * 4)*1.5 to {_check}
  213. add ({玩家資料.%player%::敏捷} * 3)*1.5 to {_check}
  214. add ({玩家資料.%player%::幸運} * 2)*1.5 to {_check}
  215. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 3:
  216. add ({玩家資料.%player%::力量} * 5)*2 to {_check}
  217. add ({玩家資料.%player%::智慧} * 4)*2 to {_check}
  218. add ({玩家資料.%player%::敏捷} * 3)*2 to {_check}
  219. add ({玩家資料.%player%::幸運} * 2)*2 to {_check}
  220. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  221. #[ 暴風神射 ]
  222. if uncolored name of player's tool contains "暴風神射":
  223. if Skill(player, "&c暴風神射", {@暴風神射.Max}, {@暴風神射.CD}, {@暴風神射.MP}) is true:
  224. set {冷卻.%player%::暴風神射} to now
  225. play "ENTITY_GENERIC_EXTINGUISH_FIRE" to player with volume 1 and pitch 0
  226. play "ENTITY_WITHER_SHOOT" to player with volume 1 and pitch 0
  227. drawComplexSpiral particle "cloud", center player, id "暴風神射%player%", rainbowMode true, clockwise true, scan true, radius 1, density 30, height 15, effectMod 0.2, start 0, visibleRange 30
  228. drawWarpRings style 1, particle "fireworkspark", center player, id "暴風神射2%player%", rainbowMode false, scan true, height 0, radius 1, ringCount 1, ringDensity 8, visibleRange 32, pulseDelay 1
  229. wait 1 second
  230. if {玩家資料.%player%::玩家等級} is more than or equal to 110:
  231. set {_120暴風} to 16
  232. else:
  233. set {_120暴風} to 10
  234. set {_射擊波數} to {技能.%player%::暴風神射}
  235. set {_射擊波數} to {_射擊波數} parsed as number
  236. loop {_射擊波數} times:
  237. loop {_120暴風} times:
  238. if uncolored lore of player's tool contain "武器類型: [ 弓 ]":
  239. shoot an arrow from the player with velocity 3
  240. play "ENTITY_ARROW_SHOOT" to player with volume 2 and pitch 3
  241. wait 0.2 second
  242. wait 5 ticks
  243. stopeffect id "暴風神射%player%"
  244. stopeffect id "暴風神射2%player%"
  245. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  246. #[ 碎冰風箭 ]
  247. if uncolored name of player's tool contains "碎冰風箭":
  248. if Skill(player, "&c碎冰風箭", {@碎冰風箭.Max}, {@碎冰風箭.CD}, {@碎冰風箭.MP}) is true:
  249. set {冷卻.%player%::碎冰風箭} to now
  250. play "ENTITY_ARROW_SHOOT" to player with volume 1 and pitch 1
  251. play "BLOCK_GLASS_BREAK" to player with volume 1 and pitch 0
  252. if {玩家資料.%player%::玩家等級} is more than or equal to 115:
  253. set {_120碎冰} to 1.5
  254. else:
  255. set {_120碎冰} to 1
  256. set {_location.1} to block above player
  257. set {_location.2} to block 20 in front player
  258. set {_x.1} to x-coordinate of {_location.1}
  259. set {_x.2} to x-coordinate of {_location.2}
  260. set {_y.1} to y-coordinate of {_location.1}
  261. set {_y.2} to y-coordinate of {_location.2}
  262. set {_z.1} to z-coordinate of {_location.1}
  263. set {_z.2} to z-coordinate of {_location.2}
  264. set {_x.difference} to ({_x.2} - {_x.1}) / 10
  265. set {_y.difference} to ({_y.2} - {_y.1}) / 10
  266. set {_z.difference} to ({_z.2} - {_z.1}) / 10
  267. loop 10 times:
  268. set {_location.1} to location of {_location.1}
  269. drawDot count 8, particle "blockdust", material packed ice, XYZ -0.5, 0.5, 0.5, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
  270. drawDot count 8, particle "waterdrip", XYZ -0.3, 0.3, 0.3, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
  271. drawDot count 8, particle "critmagic", XYZ -0.3, 0.3, 0.3, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
  272. drawDot count 25, particle "cloud", XYZ -4, 4, -4, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
  273. increase x-coordinate of {_location.1} by {_x.difference}
  274. increase y-coordinate of {_location.1} by {_y.difference}
  275. increase z-coordinate of {_location.1} by {_z.difference}
  276. loop entities in radius 4 around block at location of {_location.1}:
  277. if loop-entity isn't a player or a dropped item:
  278. make player damage loop-entity by {_PHYSICDMG}*(3+0.3*{技能.%player%::碎冰風箭})*{_120碎冰}
  279. drawDot count 8, particle "blockdust", material stained glass, XYZ -0.5, 1, 0.5, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
  280. play "BLOCK_GLASS_BREAK" to player with volume 1 and pitch 2
  281. wait 6 ticks
  282. stop
  283. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  284. #[ 火鳳衝擊 ]
  285. if uncolored name of player's tool contains "火鳳衝擊":
  286. if Skill(player, "&c火鳳衝擊", {@火鳳衝擊.Max}, {@火鳳衝擊.CD}, {@火鳳衝擊.MP}) is true:
  287. set {冷卻.%player%::火鳳衝擊} to now
  288. if {玩家資料.%player%::玩家等級} is more than or equal to 100:
  289. remove 1.5 seconds from {冷卻.%player%::火鳳衝擊}
  290. play "ENTITY_ARROW_SHOOT" to player with volume 1 and pitch 1
  291. play "ENTITY_BLAZE_SHOOT" to player with volume 1 and pitch 1
  292. set {_location.1} to block above player
  293. set {_location.2} to block 25 in front player
  294. set {_x.1} to x-coordinate of {_location.1}
  295. set {_x.2} to x-coordinate of {_location.2}
  296. set {_y.1} to y-coordinate of {_location.1}
  297. set {_y.2} to y-coordinate of {_location.2}
  298. set {_z.1} to z-coordinate of {_location.1}
  299. set {_z.2} to z-coordinate of {_location.2}
  300. set {_x.difference} to ({_x.2} - {_x.1}) / 4
  301. set {_y.difference} to ({_y.2} - {_y.1}) / 4
  302. set {_z.difference} to ({_z.2} - {_z.1}) / 4
  303. loop 4 times:
  304. stopeffect id "火鳳衝擊%player%"
  305. set {_location.1} to location of {_location.1}
  306. drawWings style 4, particle1 "flame", speed 0, XYZ 4, 0, 0, particle2 "lavadrip", particle3 "lava", center {_location.1}, id "火鳳衝擊%player%", rainbowMode false, flapSpeed 10, flapRange 6, angle 180, height 0, space 0.5, visibleRange 30, tps 0, second 2
  307. drawDot count 8, particle "smokelarge", XYZ -3, 3, 3, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.2 seconds
  308. drawDot count 10, particle "flame", XYZ -2, 2, -2, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.2 seconds
  309. increase x-coordinate of {_location.1} by {_x.difference}
  310. increase y-coordinate of {_location.1} by {_y.difference}
  311. increase z-coordinate of {_location.1} by {_z.difference}
  312. loop entities in radius 4 around block at location of {_location.1}:
  313. if loop-entity isn't a player or a dropped item:
  314. make player damage loop-entity by {_PHYSICDMG}*(4+0.5*{技能.%player%::火鳳衝擊})
  315. heal player by ({_check}*{技能.%player%::火鳳衝擊}*0.03) / (player's max health + {_check}) * player's max health
  316. drawDot count 8, particle "blockdust", material netherrack, XYZ -0.5, 1, 0.5, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
  317. play "ENTITY_BLAZE_SHOOT" to player with volume 1 and pitch 1
  318. ignite the loop-entity for 10 ticks
  319. wait 4 ticks
  320. stopeffect id "火鳳衝擊%player%"
  321. stop
  322. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  323. #[ 不死鳥 ]
  324. if uncolored name of player's tool contains "不死鳥":
  325. if Skill(player, "&5不死鳥", {@不死鳥.Max}, {@不死鳥.CD}, {@不死鳥.MP}) is true:
  326. set {冷卻.%player%::不死鳥} to now
  327. play "ENTITY_PLAYER_LEVELUP" to player with volume 1 and pitch 1
  328. play "ENTITY_BLAZE_SHOOT" to player with volume 1 and pitch 0
  329. if player's health < (player's max health/2):
  330. if {玩家資料.%player%::玩家等級} is more than or equal to 105:
  331. set {_恢復量} to "%({玩家資料.%player%::魔力值})*({技能.%player%::不死鳥}*0.15)%"
  332. set {_恢復量::*} to {_恢復量} split at "."
  333. set {_恢復量::1} to {_恢復量::1} parsed as integer
  334. if ({_恢復量::1} + {玩家魔力值.%player%}) is more than {玩家資料.%player%::魔力值}:
  335. set {玩家魔力值.%player%} to {玩家資料.%player%::魔力值}
  336. else:
  337. add {_恢復量::1} to {玩家魔力值.%player%}
  338. set {_math} to 0.99 * {玩家魔力值.%player%} / {玩家資料.%player%::魔力值}
  339. if {_math} is more than or equal to 1:
  340. set {_math} to 0.99
  341. set level progress of the player to {_math}
  342. set player's level to {玩家魔力值.%player%}
  343. send "{@Tag} &f施放技能 &f<&5不死鳥&f> &f恢復了 &6%({技能.%player%::不死鳥}*0.15)*{玩家資料.%player%::魔力值}% &f魔力"
  344. heal player by ({_check}*{技能.%player%::不死鳥}*0.2) / (player's max health + {_check}) * player's max health
  345. send "{@Tag} &f施放技能 &f<&5不死鳥&f> &f恢復了 &6%({_check}*{技能.%player%::不死鳥}*0.2)% &f生命"
  346. else:
  347. set {_恢復量} to "%({玩家資料.%player%::魔力值})*({技能.%player%::不死鳥}*0.15)%"
  348. set {_恢復量::*} to {_恢復量} split at "."
  349. set {_恢復量::1} to {_恢復量::1} parsed as integer
  350. if ({_恢復量::1} + {玩家魔力值.%player%}) is more than {玩家資料.%player%::魔力值}:
  351. set {玩家魔力值.%player%} to {玩家資料.%player%::魔力值}
  352. else:
  353. add {_恢復量::1} to {玩家魔力值.%player%}
  354. set {_math} to 0.99 * {玩家魔力值.%player%} / {玩家資料.%player%::魔力值}
  355. if {_math} is more than or equal to 1:
  356. set {_math} to 0.99
  357. set level progress of the player to {_math}
  358. set player's level to {玩家魔力值.%player%}
  359. send "{@Tag} &f施放技能 &f<&5不死鳥&f> &f恢復了 &6%({技能.%player%::不死鳥}*0.15)*{玩家資料.%player%::魔力值}% &f魔力"
  360. drawWings style 9, particle1 "flame", speed 0, XYZ 0, 0, 0, particle2 "lavadrip", particle3 "lava", center player, id "不死鳥%player%", rainbowMode false, flapSpeed 10, flapRange 6, angle 120, height 5, space 0.8, visibleRange 30, tps 0, second 1
  361. wait 0.6 seconds
  362. stopeffect id "不死鳥%player%"
  363. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  364. #[ 會心之眼 ]
  365. if uncolored name of player's tool contains "會心之眼":
  366. if Skill(player, "&5會心之眼", {@會心之眼.Max}, {@會心之眼.CD}, {@會心之眼.MP}) is true:
  367. set {冷卻.%player%::會心之眼} to now
  368. play "ENTITY_GENERIC_EXTINGUISH_FIRE" to player with volume 1 and pitch 2
  369. play "ENTITY_EXPERIENCE_ORB_PICKUP" to player with volume 1 and pitch 1
  370. if {BUFF.會心之眼time::%player%} isn't set:
  371. set {BUFF.會心之眼time::%player%} to now
  372. set {BUFF.會心之眼爆擊率::%player%} to {技能.%player%::會心之眼}*4
  373. set {BUFF.會心之眼爆擊傷害::%player%} to {技能.%player%::會心之眼}*6
  374. add {技能.%player%::會心之眼}*4 to {玩家資料.%player%::爆擊率}
  375. add {技能.%player%::會心之眼}*6 to {玩家資料.%player%::爆擊傷害}
  376. send "{@Tag} &b%player% &f的 &f<&5會心之眼&f> &f使你提升了 &c%{技能.%player%::會心之眼}*4%%% &f爆擊率與 &c%{技能.%player%::會心之眼}*6%%% &f爆擊傷害"
  377. execute player command "會心之眼效果持續檢測時間"
  378. loop entities in radius 7 of player:
  379. if loop-entity is a player:
  380. if {BUFF.會心之眼time::%loop-entity%} isn't set:
  381. set {BUFF.會心之眼time::%loop-entity%} to now
  382. set {BUFF.會心之眼爆擊率::%loop-entity%} to {技能.%player%::會心之眼}*4
  383. set {BUFF.會心之眼爆擊傷害::%loop-entity%} to {技能.%player%::會心之眼}*6
  384. add {技能.%player%::會心之眼}*4 to {玩家資料.%loop-entity%::爆擊率}
  385. add {技能.%player%::會心之眼}*6 to {玩家資料.%loop-entity%::爆擊傷害}
  386. execute loop-entity command "會心之眼效果持續檢測時間"
  387. send "{@Tag} &b%player% &f的 &f<&5會心之眼&f> &f使你提升了 &c%{技能.%player%::會心之眼}*4%%% &f爆擊率與 &c%{技能.%player%::會心之眼}*6%%% &f爆擊傷害" to loop-entity
  388. drawAtom particle1 "mobspell", particle2 "happyvillager", center player, id "會心之眼%player%", rainbowMode false, innerPCount 10, innerRadius 2, outerPCount 20, orbitCount 1, start 0, visibleRange 30, rotation 100
  389. wait 0.6 seconds
  390. stopeffect id "會心之眼%player%"
  391.  
  392.  
  393.  
  394. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  395. # [ Buff 增益效果 ]
  396. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  397. #[ 會心之眼 ]
  398. on command:
  399. command is "會心之眼效果持續檢測時間"
  400. if {BUFF.會心之眼爆擊率::%player%} isn't set:
  401. stop
  402. cancel event
  403. set {_executename} to "%player%"
  404. set {_冷卻} to difference between {BUFF.會心之眼time::%{_executename}%} and now
  405. while {_冷卻} is less than {@會心之眼.受益時間} second:
  406. set {_冷卻} to difference between {BUFF.會心之眼time::%{_executename}%} and now
  407. wait 5.1 seconds
  408. if player is online:
  409. remove {BUFF.會心之眼爆擊率::%{_executename}%} from {玩家資料.%{_executename}%::爆擊率}
  410. remove {BUFF.會心之眼爆擊傷害::%{_executename}%} from {玩家資料.%{_executename}%::爆擊傷害}
  411. send "{@Tag} &c<&d會心之眼&c> &c持續時間已到" to player
  412. delete {BUFF.會心之眼爆擊率::%{_executename}%}
  413. delete {BUFF.會心之眼爆擊傷害::%{_executename}%}
  414. delete {BUFF.會心之眼time::%{_executename}%}
  415.  
  416. on join:
  417. if {BUFF.會心之眼爆擊率::%player%} is set:
  418. remove {BUFF.會心之眼爆擊率::%player%} from {玩家資料.%player%::爆擊率}
  419. remove {BUFF.會心之眼爆擊傷害::%player%} from {玩家資料.%player%::爆擊傷害}
  420. send "{@Tag} &c<&d會心之眼&c> &c因離線而效果消失" to player
  421. delete {BUFF.會心之眼爆擊率::%player%}
  422. delete {BUFF.會心之眼爆擊傷害::%player%}
  423. delete {BUFF.會心之眼time::%player%}
  424.  
  425.  
  426.  
  427. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  428. # [ ClearVariable 清除變數 ]
  429. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  430. on any movement:
  431. {冷卻.%player%::暴風神射} is set:
  432. set {_冷卻} to difference between {冷卻.%player%::暴風神射} and now
  433. if {_冷卻} >= {@暴風神射.CD} second:
  434. delete {冷卻.%player%::暴風神射}
  435.  
  436. {冷卻.%player%::碎冰風箭} is set:
  437. set {_冷卻} to difference between {冷卻.%player%::碎冰風箭} and now
  438. if {_冷卻} >= {@碎冰風箭.CD} second:
  439. delete {冷卻.%player%::碎冰風箭}
  440.  
  441. {冷卻.%player%::火鳳衝擊} is set:
  442. set {_冷卻} to difference between {冷卻.%player%::火鳳衝擊} and now
  443. if {_冷卻} >= {@火鳳衝擊.CD} second:
  444. delete {冷卻.%player%::火鳳衝擊}
  445.  
  446. {冷卻.%player%::不死鳥} is set:
  447. set {_冷卻} to difference between {冷卻.%player%::不死鳥} and now
  448. if {_冷卻} >= {@不死鳥.CD} second:
  449. delete {冷卻.%player%::不死鳥}
  450.  
  451. {冷卻.%player%::會心之眼} is set:
  452. set {_冷卻} to difference between {冷卻.%player%::會心之眼} and now
  453. if {_冷卻} >= {@會心之眼.CD} second:
  454. delete {冷卻.%player%::會心之眼}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement