henry900326

Untitled

Sep 27th, 2018
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.03 KB | None | 0 0
  1. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  2. # [ Options 選項 ]
  3. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  4. Options:
  5. Tag: &6技能 &c&l>>
  6.  
  7. #[ 加農炮 ]
  8. 加農炮.CD: 4
  9. 加農炮.MP: 65
  10. 加農炮.Max: 10
  11.  
  12. #[ 激光炮 ]
  13. 激光炮.CD: 8
  14. 激光炮.MP: 105
  15. 激光炮.Max: 5
  16.  
  17. #[ 熔火炮 ]
  18. 熔火炮.CD: 7
  19. 熔火炮.MP: 90
  20. 熔火炮.Max: 5
  21.  
  22. #[ 空襲 ]
  23. 空襲.CD: 20
  24. 空襲.MP: 100
  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 dye:8 named "&c加農炮" with lore "&e技能介紹:||&f向前方開砲||&f對路徑上敵人造成傷害||&e傷害量: &f(物理攻擊力)*%(550+50*{技能.%{_P}%::激光炮})%%%||&e攻擊距離: &f16格||&e冷卻時間: &f4秒||&e魔力消耗量: &b65MP||&e技能類型: &c主動技能"
  46. if {技能.%{_P}%::加農炮} >= 10:
  47. set slot 28 of {_P}'s current inventory to blue stained glass pane named "&6技能等級&7: &f%{技能.%{_P}%::加農炮}%/10" 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}%::加農炮}%/10" with lore "&a點此升級加農炮"
  50. set slot 20 of {_P}'s current inventory to nether star named "&c激光炮" with lore "&e技能介紹:||&f聚集強烈能量於炮口向前噴發||&f對路徑上敵人造成大量傷害||&e傷害量: &f(物理攻擊力)*%(1000+100*{技能.%{_P}%::激光炮})%%%||&e攻擊距離: &f25格||&e冷卻時間: &f8秒||&e魔力消耗量: &b105MP||&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 fire charge named "&c熔火炮" with lore "&e技能介紹:||&f一次性將大量火藥爆發||&f對路徑上敵人造成傷害||&f並留下一道燃燒路徑持續7秒||&e傷害量: &f(物理攻擊力)*%(450+70*{技能.%{_P}%::熔火炮})%%%||&e燃燒路徑傷害量: &f(物理攻擊力)*%(100+8*{技能.%{_P}%::熔火炮})%%%||&e攻擊距離: &f20格||&e冷卻時間: &f7秒||&e魔力消耗量: &b90MP||&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}%::熔火炮}%/5" 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}%::熔火炮}%/5" with lore "&a點此升級熔火炮"
  60. set slot 23 of {_P}'s current inventory to glowing blaze powder named "&5空襲" with lore "&e技能介紹:||&f呼叫空襲對前方範圍內敵人造成持續傷害||&e每秒傷害量: &f(物理攻擊力)*%(350+80*{技能.%{_P}%::空襲})%%%||&e空襲持續時間: &f%(5+2*{技能.%{_P}%::空襲})%秒||&e冷卻時間: &f20秒||&e魔力消耗量: &b100MP||&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每級提升30點物理攻擊力,10點最大MP||&f每2級提升1格重砲普攻距離||&e物理攻擊力提升量: &f%30*{技能.%{_P}%::重砲精通}%||&e最大MP提升量: &f%10*{技能.%{_P}%::重砲精通}%||&e攻擊距離提升量: &f%round({技能.%{_P}%::重砲精通}/2)%||&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 blaze powder named "&5烈火雄心" with lore "&e技能介紹:||&f激發熊熊燃起的戰鬥決心||&f時間內提升物理攻擊力與重砲普攻距離||&e物理攻擊力提升量: &f%25*{技能.%{_P}%::烈火雄心}%||&e重砲普攻距離提升量: &f%1*{技能.%{_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 /skill3B4:
  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. SkillLevelUp(player,"加農炮",{@加農炮.Max})
  153. if lore of item contains "&a點此升級激光炮":
  154. SkillLevelUp(player,"激光炮",{@激光炮.Max})
  155. if lore of item contains "&a點此升級熔火炮":
  156. SkillLevelUp(player,"熔火炮",{@熔火炮.Max})
  157. if lore of item contains "&a點此升級空襲":
  158. SkillLevelUp(player,"空襲",{@空襲.Max})
  159. if lore of item contains "&a點此升級重砲精通":
  160. if {玩家資料.%player%::剩餘技能點} is larger than 0:
  161. SkillLevelUp(player,"重砲精通",{@重砲精通.Max})
  162. add 30 to {玩家資料.%player%::物理攻擊力}
  163. if lore of item contains "&a點此升級烈火雄心":
  164. SkillLevelUp(player,"烈火雄心",{@烈火雄心.Max})
  165. 重砲手skill(player)
  166.  
  167.  
  168.  
  169. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  170. # [ Skill 技能 ]
  171. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  172. on right click:
  173. {玩家資料.%player%::玩家職業} is "重砲手"
  174. set {_STRATK} to {玩家資料.%player%::力量} * 0.5
  175. set {_DEXATK} to {玩家資料.%player%::敏捷} * 0.7
  176. set {_INTATK} to {玩家資料.%player%::智慧} * 0.6
  177. set {_LUKATK} to {玩家資料.%player%::幸運} * 0.4
  178. set {_PHYSICDMG} to {玩家資料.%player%::物理攻擊力}
  179. set {_MAGICDMG} to {玩家資料.%player%::魔法攻擊力}
  180. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 0:
  181. add ({_STRATK} + {_DEXATK} + {_LUKATK}) to {_PHYSICDMG}
  182. add ({_INTATK} + {_LUKATK}) to {_MAGICDMG}
  183. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 1:
  184. add ({_STRATK} + {_DEXATK} + {_LUKATK})*1.2 to {_PHYSICDMG}
  185. add ({_INTATK} + {_LUKATK})*1.2 to {_MAGICDMG}
  186. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 2:
  187. add ({_STRATK} + {_DEXATK} + {_LUKATK})*1.4 to {_PHYSICDMG}
  188. add ({_INTATK} + {_LUKATK})*1.4 to {_MAGICDMG}
  189. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 3:
  190. add ({_STRATK} + {_DEXATK} + {_LUKATK})*1.8 to {_PHYSICDMG}
  191. add ({_INTATK} + {_LUKATK})*1.8 to {_MAGICDMG}
  192. set {_check} to {玩家資料.%player%::最大血量}
  193. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 0:
  194. add ({玩家資料.%player%::力量} * 5) to {_check}
  195. add ({玩家資料.%player%::智慧} * 4) to {_check}
  196. add ({玩家資料.%player%::敏捷} * 3) to {_check}
  197. add ({玩家資料.%player%::幸運} * 2) to {_check}
  198. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 1:
  199. add ({玩家資料.%player%::力量} * 5)*1.25 to {_check}
  200. add ({玩家資料.%player%::智慧} * 4)*1.25 to {_check}
  201. add ({玩家資料.%player%::敏捷} * 3)*1.25 to {_check}
  202. add ({玩家資料.%player%::幸運} * 2)*1.25 to {_check}
  203. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 2:
  204. add ({玩家資料.%player%::力量} * 5)*1.5 to {_check}
  205. add ({玩家資料.%player%::智慧} * 4)*1.5 to {_check}
  206. add ({玩家資料.%player%::敏捷} * 3)*1.5 to {_check}
  207. add ({玩家資料.%player%::幸運} * 2)*1.5 to {_check}
  208. if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 3:
  209. add ({玩家資料.%player%::力量} * 5)*2 to {_check}
  210. add ({玩家資料.%player%::智慧} * 4)*2 to {_check}
  211. add ({玩家資料.%player%::敏捷} * 3)*2 to {_check}
  212. add ({玩家資料.%player%::幸運} * 2)*2 to {_check}
  213. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  214. #[ 加農炮 ]
  215. if uncolored name of player's tool contains "加農炮":
  216. if Skill(player, "&c加農炮", {@加農炮.Max}, {@加農炮.CD}, {@加農炮.MP}) is true:
  217. set {冷卻.%player%::加農炮} to now
  218. play "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD" to player with volume 1000 and pitch 0
  219. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 0
  220. set {_location.1} to block above player
  221. set {_location.2} to block 12 in front player
  222. add 2 to y-coordinate of {_location.2}
  223. set {_x.1} to x-coordinate of {_location.1}
  224. set {_x.2} to x-coordinate of {_location.2}
  225. set {_y.1} to y-coordinate of {_location.1}
  226. set {_y.2} to y-coordinate of {_location.2}
  227. set {_z.1} to z-coordinate of {_location.1}
  228. set {_z.2} to z-coordinate of {_location.2}
  229. set {_x.difference} to ({_x.2} - {_x.1}) / 16
  230. set {_y.difference} to ({_y.2} - {_y.1}) / 16
  231. set {_z.difference} to ({_z.2} - {_z.1}) / 16
  232. add player to {_命中::*}
  233. loop 16 times:
  234. set {_location.1} to location of {_location.1}
  235. increase x-coordinate of {_location.1} by {_x.difference}
  236. increase y-coordinate of {_location.1} by {_y.difference}
  237. increase z-coordinate of {_location.1} by {_z.difference}
  238. drawDot count 1, particle flame, XYZ 0.4, 0.4, 0.4, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.4 seconds
  239. drawDot count 1, particle flame, XYZ 0.4, 0.4, -0.4, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.4 seconds
  240. drawDot count 1, particle flame, XYZ -0.4, 0.4, 0.4, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.4 seconds
  241. drawDot count 1, particle flame, XYZ -0.4, 0.4, -0.4, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.4 seconds
  242. drawDot count 1, particle smoke, XYZ 0.4, 0.4, 0.4, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.4 seconds
  243. drawDot count 1, particle smoke, XYZ 0.4, 0.4, -0.4, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.4 seconds
  244. drawDot count 1, particle smoke, XYZ -0.4, 0.4, 0.4, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.4 seconds
  245. drawDot count 1, particle smoke, XYZ -0.4, 0.4, -0.4, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 0.2 seconds
  246. loop entities in radius 3.5 around block at location of {_location.1}:
  247. if loop-entity isn't a player or a dropped item:
  248. if {_命中::*} do not contain loop-entity:
  249. add loop-entity to {_命中::*}
  250. drawDot count 5, particle flame, XYZ 0, 1.5, 0, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 0.2 seconds
  251. make player damage loop-entity by ({_PHYSICDMG})*(5.5+0.5*{技能.%player%::加農炮})
  252. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  253. #[ 激光炮 ]
  254. if uncolored name of player's tool contains "激光炮":
  255. if Skill(player, "&c激光炮", {@激光炮.Max}, {@激光炮.CD}, {@激光炮.MP}) is true:
  256. set {冷卻.%player%::激光炮} to now
  257. play "ENTITY_ELDER_GUARDIAN_CURSE" to player with volume 1000 and pitch 1
  258. set {_location.1} to block above player
  259. set {_location.2} to block 25 in front player
  260. add 2 to y-coordinate of {_location.2}
  261. set {_location.3} to block above player
  262. set {_x.1} to x-coordinate of {_location.1}
  263. set {_x.2} to x-coordinate of {_location.2}
  264. set {_y.1} to y-coordinate of {_location.1}
  265. set {_y.2} to y-coordinate of {_location.2}
  266. set {_z.1} to z-coordinate of {_location.1}
  267. set {_z.2} to z-coordinate of {_location.2}
  268. set {_x.difference} to ({_x.2} - {_x.1}) / 25
  269. set {_y.difference} to ({_y.2} - {_y.1}) / 25
  270. set {_z.difference} to ({_z.2} - {_z.1}) / 25
  271. add player to {_命中::*}
  272. loop 25 times:
  273. set {_location.1} to location of {_location.1}
  274. increase x-coordinate of {_location.1} by {_x.difference}
  275. increase y-coordinate of {_location.1} by {_y.difference}
  276. increase z-coordinate of {_location.1} by {_z.difference}
  277. drawDot count 2, particle endrod, XYZ 0, 0, 0, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 1.1 seconds
  278. wait 1 second
  279. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 0
  280. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 2
  281. loop 25 times:
  282. set {_location.3} to location of {_location.3}
  283. increase x-coordinate of {_location.3} by {_x.difference}
  284. increase y-coordinate of {_location.3} by {_y.difference}
  285. increase z-coordinate of {_location.3} by {_z.difference}
  286. drawDot count 1, particle critmagic, XYZ -1, 1, 1, center {_location.3}, visibleRange 32, pulseDelay 2, keepFor 1.1 seconds
  287. drawDot count 1, particle critmagic, XYZ 1, -1, 1, center {_location.3}, visibleRange 32, pulseDelay 2, keepFor 1.1 seconds
  288. drawDot count 1, particle critmagic, XYZ 1, 1, -1, center {_location.3}, visibleRange 32, pulseDelay 2, keepFor 1.1 seconds
  289. drawDot count 1, particle critmagic, XYZ -1, -1, 1, center {_location.3}, visibleRange 32, pulseDelay 2, keepFor 1.1 seconds
  290. drawDot count 1, particle critmagic, XYZ -1, 1, -1, center {_location.3}, visibleRange 32, pulseDelay 2, keepFor 1.1 seconds
  291. drawDot count 1, particle critmagic, XYZ 1, -1, -1, center {_location.3}, visibleRange 32, pulseDelay 2, keepFor 1.1 seconds
  292. loop entities in radius 3 around block at location of {_location.3}:
  293. if loop-entity isn't a player or a dropped item:
  294. if {_命中::*} do not contain loop-entity:
  295. add loop-entity to {_命中::*}
  296. drawDot count 5, particle critmagic, XYZ 0, 1.5, 0, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 0.2 seconds
  297. make player damage loop-entity by ({_PHYSICDMG})*(5.5+0.5*{技能.%player%::加農炮})
  298. wait 0.5 second
  299. loop 6 times:
  300. play "ENTITY_GENERIC_EXPLODE" to player with volume 1000 and pitch 3
  301. wait 1.5 tick
  302. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  303. #[ 熔火炮 ]
  304. if uncolored name of player's tool contains "熔火炮":
  305. if Skill(player, "&c熔火炮", {@熔火炮.Max}, {@熔火炮.CD}, {@熔火炮.MP}) is true:
  306. set {冷卻.%player%::熔火炮} to now
  307. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 0
  308. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 1
  309. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 2
  310. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 3
  311. wait 1 tick
  312. set {_location.1} to block above player
  313. set {_location.2} to block 20 in front player
  314. add 2 to y-coordinate of {_location.2}
  315. set {_location.3} to block above player
  316. set {_x.1} to x-coordinate of {_location.1}
  317. set {_x.2} to x-coordinate of {_location.2}
  318. set {_y.1} to y-coordinate of {_location.1}
  319. set {_y.2} to y-coordinate of {_location.2}
  320. set {_z.1} to z-coordinate of {_location.1}
  321. set {_z.2} to z-coordinate of {_location.2}
  322. set {_x.difference} to ({_x.2} - {_x.1}) / 10
  323. set {_y.difference} to ({_y.2} - {_y.1}) / 10
  324. set {_z.difference} to ({_z.2} - {_z.1}) / 10
  325. loop 10 times:
  326. drawSphere style 1, particle "flame", center {_location.1}, id "熔火炮1%player%", rainbowMode true, radius 1, density 30, visibleRange 32, pulseDelay 2
  327. drawSphere style 5, particle "smoke", center {_location.1}, id "熔火炮2%player%", rainbowMode false, radius 2, density 30, visibleRange 32, pulseDelay 2
  328. increase x-coordinate of {_location.1} by {_x.difference}
  329. increase y-coordinate of {_location.1} by {_y.difference}
  330. increase z-coordinate of {_location.1} by {_z.difference}
  331. loop entities in radius 4 around block at location of {_location.1}:
  332. if loop-entity isn't a player or a dropped item:
  333. make player damage loop-entity by ({_PHYSICDMG})*(4.5+0.7*{技能.%player%::熔火炮})
  334. wait 1 ticks
  335. stopEffect "熔火炮1%player%"
  336. stopEffect "熔火炮2%player%"
  337. wait 1 tick
  338. loop 7 times:
  339. set {_location.1} to {_location.3}
  340. add -1.6 to y-coordinate of {_location.1}
  341. loop 10 times:
  342. drawDot count 2, particle "flame", XYZ 2, 0.2, 2, center {_location.1}, visibleRange 50, pulseDelay 2, keepFor 0.9 seconds
  343. drawDot count 2, particle "flame", XYZ -2, 0.2, 2, center {_location.1}, visibleRange 50, pulseDelay 2, keepFor 0.9 seconds
  344. drawDot count 2, particle "flame", XYZ 2, 0.2, -2, center {_location.1}, visibleRange 50, pulseDelay 2, keepFor 0.9 seconds
  345. drawDot count 2, particle "flame", XYZ -2, 0.2, -2, center {_location.1}, visibleRange 50, pulseDelay 2, keepFor 0.9 seconds
  346. drawDot count 4, particle "flame", XYZ 0.5, 0.7, 0.5, center {_location.1}, visibleRange 50, pulseDelay 2, keepFor 0.9 seconds
  347. drawDot count 4, particle "smoke", XYZ 0.8, 1, 0.8, center {_location.1}, visibleRange 50, pulseDelay 2, keepFor 0.9 seconds
  348. increase x-coordinate of {_location.1} by {_x.difference}
  349. increase y-coordinate of {_location.1} by {_y.difference}
  350. increase z-coordinate of {_location.1} by {_z.difference}
  351. loop entities in radius 5 around block at location of {_location.1}:
  352. if loop-entity isn't a player or a dropped item:
  353. make player damage loop-entity by ({_PHYSICDMG})*(1+0.8*{技能.%player%::熔火炮})
  354. wait 1 second
  355. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  356. #[ 空襲 ]
  357. if uncolored name of player's tool contains "空襲":
  358. if Skill(player, "&5空襲", {@空襲.Max}, {@空襲.CD}, {@空襲.MP}) is true:
  359. set {冷卻.%player%::空襲} to now
  360.  
  361. play "ENTITY_WITHER_SPAWN" to player with volume 1000 and pitch 2
  362. set {_location.1} to block 8 horizontally in front and 0.4 up player
  363. set {_location.2} to block 8 up {_location.1}
  364. wait 1 second
  365. set {_times} to 5+2*{技能.%player%::空襲}
  366. loop {_times} times:
  367. loop 5 times:
  368. set {_location.3} to block 8 up {_location.1}
  369. increase x-coordinate of {_location.3} by a random integer between -7 and 7
  370. increase z-coordinate of {_location.3} by a random integer between -7 and 7
  371. drawDot count 10, particle "flame", XYZ 0.01, -9, 0.01, center {_location.3}, visibleRange 50, pulseDelay 2, keepFor 1 seconds
  372. drawDot count 3, particle "lava", XYZ 0.01, -9, 0.01, center {_location.3}, visibleRange 50, pulseDelay 2, keepFor 1 seconds
  373. drawDot count 5, particle "smoke", XYZ 0.01, -9, 0.01, center {_location.3}, visibleRange 50, pulseDelay 2, keepFor 1 seconds
  374. loop entities in radius 8 around block at location of {_location.1}:
  375. if loop-entity isn't a player or a dropped item:
  376. make player damage loop-entity by ({_PHYSICDMG})*(3.5+0.8*{技能.%player%::空襲})
  377. set {_sound} to random integer between 1 and 3
  378. if {_sound} is 1:
  379. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 0
  380. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 3
  381. play "ENTITY_GENERIC_EXPLODE" to player with volume 1000 and pitch 0
  382. wait 3 tick
  383. play "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD" to player with volume 1000 and pitch 2
  384. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 0
  385. wait 3 tick
  386. play "ENTITY_GENERIC_EXPLODE" to player with volume 1000 and pitch 0
  387. play "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD" to player with volume 1000 and pitch 1
  388. wait 5 tick
  389. play "ENTITY_GENERIC_EXPLODE" to player with volume 1000 and pitch 1
  390. wait 9 tick
  391. play "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD" to player with volume 1000 and pitch 0
  392. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 2
  393. if {_sound} is 2:
  394. play "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD" to player with volume 1000 and pitch 1
  395. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 3
  396. wait 7 tick
  397. play "ENTITY_GENERIC_EXPLODE" to player with volume 1000 and pitch 1
  398. wait 7 tick
  399. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 0
  400. play "ENTITY_GENERIC_EXPLODE" to player with volume 1000 and pitch 2
  401. play "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD" to player with volume 1000 and pitch 0
  402. wait 6 tick
  403. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 2
  404. play "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD" to player with volume 1000 and pitch 2
  405. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 0
  406. if {_sound} is 3:
  407. play "ENTITY_GENERIC_EXPLODE" to player with volume 1000 and pitch 0
  408. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 1
  409. wait 3 tick
  410. play "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD" to player with volume 1000 and pitch 1
  411. wait 4 tick
  412. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 0
  413. play "ENTITY_GENERIC_EXPLODE" to player with volume 1000 and pitch 1
  414. wait 5 tick
  415. play "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD" to player with volume 1000 and pitch 0
  416. wait 3 tick
  417. play "ENTITY_BLAZE_SHOOT" to player with volume 1000 and pitch 2
  418. play "ENTITY_GENERIC_EXPLODE" to player with volume 1000 and pitch 2
  419. wait 5 tick
  420. play "ENTITY_GENERIC_EXPLODE" to player with volume 1000 and pitch 0
  421. stop
  422. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  423. #[ 烈火雄心 ]
  424. if uncolored name of player's tool contains "烈火雄心":
  425. if Skill(player, "&5烈火雄心", {@烈火雄心.Max}, {@烈火雄心.CD}, {@烈火雄心.MP}) is true:
  426. set {冷卻.%player%::烈火雄心} to now
  427. play "ENTITY_GENERIC_EXTINGUISH_FIRE" to player with volume 1 and pitch 2
  428. play "ENTITY_EXPERIENCE_ORB_PICKUP" to player with volume 1 and pitch 1
  429. if {BUFF.烈火雄心time::%player%} isn't set:
  430. set {BUFF.烈火雄心time::%player%} to now
  431. set {BUFF.烈火雄心爆擊率::%player%} to {技能.%player%::烈火雄心}*4
  432. set {BUFF.烈火雄心爆擊傷害::%player%} to {技能.%player%::烈火雄心}*6
  433. add {技能.%player%::烈火雄心}*4 to {玩家資料.%player%::爆擊率}
  434. add {技能.%player%::烈火雄心}*6 to {玩家資料.%player%::爆擊傷害}
  435. send "{@Tag} &b%player% &f的 &f<&5烈火雄心&f> &f使你提升了 &c%{技能.%player%::烈火雄心}*4%%% &f爆擊率與 &c%{技能.%player%::烈火雄心}*6%%% &f爆擊傷害"
  436. execute player command "烈火雄心效果持續檢測時間"
  437. loop entities in radius 7 of player:
  438. if loop-entity is a player:
  439. if {BUFF.烈火雄心time::%loop-entity%} isn't set:
  440. set {BUFF.烈火雄心time::%loop-entity%} to now
  441. set {BUFF.烈火雄心爆擊率::%loop-entity%} to {技能.%player%::烈火雄心}*4
  442. set {BUFF.烈火雄心爆擊傷害::%loop-entity%} to {技能.%player%::烈火雄心}*6
  443. add {技能.%player%::烈火雄心}*4 to {玩家資料.%loop-entity%::爆擊率}
  444. add {技能.%player%::烈火雄心}*6 to {玩家資料.%loop-entity%::爆擊傷害}
  445. execute loop-entity command "烈火雄心效果持續檢測時間"
  446. send "{@Tag} &b%player% &f的 &f<&5烈火雄心&f> &f使你提升了 &c%{技能.%player%::烈火雄心}*4%%% &f爆擊率與 &c%{技能.%player%::烈火雄心}*6%%% &f爆擊傷害" to loop-entity
  447. 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
  448. wait 0.6 seconds
  449. stopeffect id "烈火雄心%player%"
  450.  
  451.  
  452.  
  453. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  454. # [ Buff 增益效果 ]
  455. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  456. #[ 烈火雄心 ]
  457. on command:
  458. command is "烈火雄心效果持續檢測時間"
  459. if {BUFF.烈火雄心爆擊率::%player%} isn't set:
  460. stop
  461. cancel event
  462. set {_executename} to "%player%"
  463. set {_冷卻} to difference between {BUFF.烈火雄心time::%{_executename}%} and now
  464. while {_冷卻} is less than {@烈火雄心.受益時間} second:
  465. set {_冷卻} to difference between {BUFF.烈火雄心time::%{_executename}%} and now
  466. wait 5.1 seconds
  467. if player is online:
  468. remove {BUFF.烈火雄心爆擊率::%{_executename}%} from {玩家資料.%{_executename}%::爆擊率}
  469. remove {BUFF.烈火雄心爆擊傷害::%{_executename}%} from {玩家資料.%{_executename}%::爆擊傷害}
  470. send "{@Tag} &c<&d烈火雄心&c> &c持續時間已到" to player
  471. delete {BUFF.烈火雄心爆擊率::%{_executename}%}
  472. delete {BUFF.烈火雄心爆擊傷害::%{_executename}%}
  473. delete {BUFF.烈火雄心time::%{_executename}%}
  474.  
  475. on join:
  476. if {BUFF.烈火雄心爆擊率::%player%} is set:
  477. remove {BUFF.烈火雄心爆擊率::%player%} from {玩家資料.%player%::爆擊率}
  478. remove {BUFF.烈火雄心爆擊傷害::%player%} from {玩家資料.%player%::爆擊傷害}
  479. send "{@Tag} &c<&d烈火雄心&c> &c因離線而效果消失" to player
  480. delete {BUFF.烈火雄心爆擊率::%player%}
  481. delete {BUFF.烈火雄心爆擊傷害::%player%}
  482. delete {BUFF.烈火雄心time::%player%}
  483.  
  484.  
  485.  
  486. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  487. # [ ClearVariable 清除變數 ]
  488. #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
  489. on any movement:
  490. {冷卻.%player%::加農炮} is set:
  491. set {_冷卻} to difference between {冷卻.%player%::加農炮} and now
  492. if {_冷卻} >= {@加農炮.CD} second:
  493. delete {冷卻.%player%::加農炮}
  494.  
  495. {冷卻.%player%::激光炮} is set:
  496. set {_冷卻} to difference between {冷卻.%player%::激光炮} and now
  497. if {_冷卻} >= {@激光炮.CD} second:
  498. delete {冷卻.%player%::激光炮}
  499.  
  500. {冷卻.%player%::熔火炮} is set:
  501. set {_冷卻} to difference between {冷卻.%player%::熔火炮} and now
  502. if {_冷卻} >= {@熔火炮.CD} second:
  503. delete {冷卻.%player%::熔火炮}
  504.  
  505. {冷卻.%player%::空襲} is set:
  506. set {_冷卻} to difference between {冷卻.%player%::空襲} and now
  507. if {_冷卻} >= {@空襲.CD} second:
  508. delete {冷卻.%player%::空襲}
  509.  
  510. {冷卻.%player%::烈火雄心} is set:
  511. set {_冷卻} to difference between {冷卻.%player%::烈火雄心} and now
  512. if {_冷卻} >= {@烈火雄心.CD} second:
  513. delete {冷卻.%player%::烈火雄心}
Advertisement
Add Comment
Please, Sign In to add comment