Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
- # [ Options 選項 ]
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
- Options:
- Tag: &6技能 &c&l>>
- #[ 影武者 - 死神圓舞曲 ]
- 死神圓舞曲.CD: 4
- 死神圓舞曲.MP: 80
- 死神圓舞曲.Max: 1
- #[ 主教 - 天堂之門 ]
- 天堂之門.CD: 20
- 天堂之門.MP: 250
- 天堂之門.Max: 1
- #[ 箭神 - 元素之箭 ]
- 元素之箭.CD: 10
- 元素之箭.MP: 100
- 元素之箭.Max: 1
- #[ 箭神 - 旋風落葉神射 ]
- 旋風落葉神射.CD: 1
- 旋風落葉神射.MP: 1
- 旋風落葉神射.Max: 1
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
- # [ Function 函式 ]
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
- Function Skill(P:player, S:text, Max:number, CD:number, MP:number) :: boolean:
- set {_Skill} to uncolored {_S}
- if {技能.%{_P}%::%{_Skill}%} <= 0:
- send "{@Tag} &c尚未學習 &f<%{_S}%&f>" to {_P}
- return false
- stop
- if {技能.%{_P}%::%{_Skill}%} > {_Max}:
- send "{@Tag} &c&l注意! 你的技能等級出現錯誤! 請盡速尋求管理員協助!" to {_P}
- return false
- stop
- set {_冷卻} to "%difference between {冷卻.%{_P}%::%{_Skill}%} and now%"
- replace "seconds" and "second" and " " with "" in {_冷卻}
- set {_冷卻} to {_冷卻} parsed as number
- set {_CD} to {_CD} parsed as number
- if {_冷卻} is less than {_CD}:
- set {_冷卻} to "%difference between {_CD} and {_冷卻}%"
- replace "seconds" and "second" and " " with "" in {_冷卻}
- send "{@Tag} &f技能冷卻中 &f<%{_S}%&f> &f還有 &e%{_冷卻}% &f秒" to {_P}
- return false
- stop
- if {玩家魔力值.%{_P}%} is larger or equal to {_MP}:
- remove {_MP} from {玩家魔力值.%{_P}%}
- set {_math} to 0.99 * {玩家魔力值.%{_P}%} / {玩家資料.%{_P}%::魔力值}
- if {_math} is more than or equal to 1:
- set {_math} to 0.99
- set level progress of {_P} to {_math}
- set {_P}'s level to {玩家魔力值.%{_P}%}
- send "{@Tag} &f施放技能 &f<%{_S}%&f> &f消耗了 &9%{_MP}% &f魔力值" to {_P}
- else:
- send "{@Tag} &c魔力不足 無法施放 &f<%{_S}%&f>" to {_P}
- return false
- stop
- return true
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
- # [ Skill 技能 ]
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
- on right click:
- {玩家資料.%player%::玩家職業} is set
- set {_STRATK} to {玩家資料.%player%::力量} * 0.5
- set {_DEXATK} to {玩家資料.%player%::敏捷} * 0.7
- set {_INTATK} to {玩家資料.%player%::智慧} * 0.6
- set {_LUKATK} to {玩家資料.%player%::幸運} * 0.4
- set {_PHYSICDMG} to {玩家資料.%player%::物理攻擊力}
- set {_MAGICDMG} to {玩家資料.%player%::魔法攻擊力}
- if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 0:
- add ({_STRATK} + {_DEXATK} + {_LUKATK}) to {_PHYSICDMG}
- add ({_INTATK} + {_LUKATK}) to {_MAGICDMG}
- if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 1:
- add ({_STRATK} + {_DEXATK} + {_LUKATK})*1.2 to {_PHYSICDMG}
- add ({_INTATK} + {_LUKATK})*1.2 to {_MAGICDMG}
- if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 2:
- add ({_STRATK} + {_DEXATK} + {_LUKATK})*1.4 to {_PHYSICDMG}
- add ({_INTATK} + {_LUKATK})*1.4 to {_MAGICDMG}
- if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 3:
- add ({_STRATK} + {_DEXATK} + {_LUKATK})*1.8 to {_PHYSICDMG}
- add ({_INTATK} + {_LUKATK})*1.8 to {_MAGICDMG}
- set {_check} to {玩家資料.%player%::最大血量}
- if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 0:
- add ({玩家資料.%player%::力量} * 5) to {_check}
- add ({玩家資料.%player%::智慧} * 4) to {_check}
- add ({玩家資料.%player%::敏捷} * 3) to {_check}
- add ({玩家資料.%player%::幸運} * 2) to {_check}
- if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 1:
- add ({玩家資料.%player%::力量} * 5)*1.25 to {_check}
- add ({玩家資料.%player%::智慧} * 4)*1.25 to {_check}
- add ({玩家資料.%player%::敏捷} * 3)*1.25 to {_check}
- add ({玩家資料.%player%::幸運} * 2)*1.25 to {_check}
- if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 2:
- add ({玩家資料.%player%::力量} * 5)*1.5 to {_check}
- add ({玩家資料.%player%::智慧} * 4)*1.5 to {_check}
- add ({玩家資料.%player%::敏捷} * 3)*1.5 to {_check}
- add ({玩家資料.%player%::幸運} * 2)*1.5 to {_check}
- if {幾轉職業::%{玩家資料.%player%::玩家職業}%} is 3:
- add ({玩家資料.%player%::力量} * 5)*2 to {_check}
- add ({玩家資料.%player%::智慧} * 4)*2 to {_check}
- add ({玩家資料.%player%::敏捷} * 3)*2 to {_check}
- add ({玩家資料.%player%::幸運} * 2)*2 to {_check}
- if uncolored name of player's tool contains "超技能":
- if {玩家資料.%player%::玩家等級} < 120:
- send "{@Tag} &c等級不足 無法使用該技能" to player
- stop
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
- #[ 影武者 - 死神圓舞曲 ]
- if uncolored name of player's tool contains "死神圓舞曲":
- {玩家資料.%player%::玩家職業} is "影武者"
- if Skill(player, "&6死神圓舞曲", {@死神圓舞曲.Max}, {@死神圓舞曲.CD}, {@死神圓舞曲.MP}) is true:
- set {冷卻.%player%::死神圓舞曲} to now
- set {_技能.%player%::死神圓舞曲} to 1
- play "ENTITY_ELDER_GUARDIAN_CURSE" to player with volume 1000 and pitch 0
- drawWarpRings style 4, particle "redstone", RGB 237, 21, 93, center player, id "死神圓舞曲%player%", rainbowMode false, scan true, height 4, radius 2, ringCount 5, ringDensity 20, visibleRange 32, pulseDelay 3
- set {死神圓舞曲::%player%} to true
- wait 2 tick
- set {_location.1} to location of player
- set {_location.2} to block 6 horizontally in front player
- set {_location.2} to location of {_location.2}
- add 3.5 to y-coordinate of {_location.2}
- set {_x1} to x-coordinate of {_location.1}
- set {_y1} to y-coordinate of {_location.1}
- set {_z1} to z-coordinate of {_location.1}
- set {_x2} to x-coordinate of {_location.2}
- set {_y2} to y-coordinate of {_location.2}
- set {_z2} to z-coordinate of {_location.2}
- set {_x} to "%({_x2}-{_x1})/4*1.25%" parsed as number
- set {_y} to "%({_y2}-{_y1})/8*1.225%" parsed as number
- set {_z} to "%({_z2}-{_z1})/4*1.25%" parsed as number
- set velocity of player to new Vector {_x}, {_y}, {_z}
- wait 3 tick
- stopEffect "死神圓舞曲%player%"
- drawAtom particle1 "crit", XYZ 0, -1.5, 0, particle2 "sweep", XYZ2 0, -1.5, 0, center player, id "死神圓舞曲%player%", rainbowMode false, innerPCount 1, innerRadius 2, outerPCount 8, orbitCount 4, start 0, visibleRange 30, rotation 75
- loop 16 times:
- loop entities in radius 3.25 of player:
- if loop-entity isn't a player or a dropped item:
- set {_x} to {_x}*(16-loop-number)/16
- set {_y} to {_y}*(16-loop-number)/16
- set {_z} to {_z}*(16-loop-number)/16
- set velocity of loop-entity to new Vector {_x}, {_y}, {_z}
- set {_damage} to (loop-number*1/15)+(14/15)
- make player damage loop-entity by {_PHYSICDMG}*(3*{_技能.%player%::死神圓舞曲})*{_damage}
- if {_heal} <= 30:
- heal player by {_check}*0.01 / (player's max health + {_check}) * player's max health
- add 1 to {_heal}
- push loop-entity in horizontal direction of player at speed 0.5
- play "ENTITY_PLAYER_ATTACK_KNOCKBACK" to player with volume 1000 and pitch 2
- play "ENTITY_PLAYER_ATTACK_SWEEP" to player with volume 1000 and pitch 2
- drawDot count 10, particle "smoke", XYZ 0, 1, 0, center player, rainbowMode false, visibleRange 32, pulseDelay 2, keepFor 0.5 seconds
- drawDot count 10, particle "mobspell", XYZ 0, 1, 0, center player, rainbowMode false, visibleRange 32, pulseDelay 2, keepFor 0.5 seconds
- wait 1 tick
- stopEffect "死神圓舞曲%player%"
- play "ENTITY_PLAYER_ATTACK_CRIT" to player with volume 1000 and pitch 2
- play "ENTITY_PLAYER_ATTACK_KNOCKBACK" to player with volume 1000 and pitch 2
- play "ENTITY_PLAYER_ATTACK_SWEEP" to player with volume 1000 and pitch 0
- wait 1 tick
- drawWarpRings style 3, particle "smoke", XYZ 0, 0.5, 0, center player, id "死神圓舞曲1%player%", rainbowMode false, scan true, height 4, radius 2, ringCount 5, ringDensity 10, visibleRange 32, pulseDelay 0.2
- wait 1 tick
- drawWarpRings style 3, particle "smoke", XYZ 0, 0.5, 0, center player, id "死神圓舞曲2%player%", rainbowMode false, scan true, height 4, radius 4, ringCount 5, ringDensity 20, visibleRange 32, pulseDelay 0.2
- wait 1 tick
- drawWarpRings style 3, particle "smoke", XYZ 0, 0.5, 0, center player, id "死神圓舞曲3%player%", rainbowMode false, scan true, height 4, radius 6, ringCount 5, ringDensity 25, visibleRange 32, pulseDelay 0.2
- loop entities in radius 7 of player:
- if loop-entity isn't a player or a dropped item:
- make player damage loop-entity by {_PHYSICDMG}*(15*{_技能.%player%::死神圓舞曲})
- drawDot count 8, particle "crit", XYZ 0.6, 1, 0.6, center loop-entity, rainbowMode false, visibleRange 32, pulseDelay 2, keepFor 0.5 seconds
- heal player by {_check}*0.05 / (player's max health + {_check}) * player's max health
- wait 5 tick
- stopEffect "死神圓舞曲1%player%"
- stopEffect "死神圓舞曲2%player%"
- stopEffect "死神圓舞曲3%player%"
- delete {死神圓舞曲::%player%}
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
- #[ 主教 - 天堂之門 ]
- if uncolored name of player's tool contains "天堂之門":
- {玩家資料.%player%::玩家職業} is "主教"
- if Skill(player, "&6天堂之門", {@天堂之門.Max}, {@天堂之門.CD}, {@天堂之門.MP}) is true:
- set {冷卻.%player%::天堂之門} to now
- play "BLOCK_CHEST_OPEN" to player with volume 1 and pitch 0
- play "BLOCK_LAVA_POP" to player with volume 1 and pitch 1
- play "ENTITY_WITHER_SPAWN" to player with volume 1 and pitch 2
- set {_location.1} to block below player
- set {_location.1} to location of {_location.1}
- drawDot count 40, particle "endrod", XYZ 0.1, 10, -0.1, center {_location.1}, visibleRange 32, pulseDelay 2, keepFor 4 seconds
- drawWarpRings style 1, particle "fireworkspark", center {_location.1}, id "天堂之門%player%", rainbowMode false, scan true, height 8, radius 8, ringCount 15, ringDensity 15, visibleRange 32, pulseDelay 1
- drawWarpRings style 2, particle "spellinstant", center {_location.1}, id "天堂之門2%player%", rainbowMode false, scan true, height 8, radius 5, ringCount 15, ringDensity 15, visibleRange 32, pulseDelay 1
- wait 1 seconds
- loop 3 times:
- play "ENTITY_ELDER_GUARDIAN_DEATH" to player with volume 1 and pitch 2
- loop entities in radius 15 around block at location of {_location.1}:
- if loop-entity isn't a player or a dropped item:
- make player damage loop-entity by ({_MAGICDMG})*15
- drawDot count 8, particle "blockdust", material glowstone, XYZ -0.5, 1, 0.5, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
- drawDot count 8, particle "cloud", XYZ -0.5, 1, 0.5, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
- drawDot count 25, particle "fireworkspark", XYZ 0.3, 5, -0.3, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
- drawDot count 1, particle "explosionlarge", XYZ 0, 0, 0, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 1 seconds
- else if loop-entity is a player:
- send "&6技能 >> &e玩家 &c%player% 使用了 &6天堂之門 &e使你恢復了 &d%{玩家資料.%player%::最大血量}% &e點血量" to loop-entity
- heal loop-entity by {玩家資料.%player%::最大血量} / (loop-entity's max health + {_check}) * loop-entity's max health
- drawDot count 15, particle "heart", XYZ 0, 5, -0, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 0.2 seconds
- play "ENTITY_ELDER_GUARDIAN_DEATH" to loop-entity with volume 1 and pitch 2
- wait 20 ticks
- wait 20 ticks
- stopeffect id "天堂之門%player%"
- stopeffect id "天堂之門2%player%"
- stop
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
- #[ 箭神 - 元素之箭 ]
- if uncolored name of player's tool contains "旋風落葉神射":
- {玩家資料.%player%::玩家職業} is "箭神"
- if Skill(player, "&c旋風落葉神射", {@旋風落葉神射.Max}, {@旋風落葉神射.CD}, {@旋風落葉神射.MP}) is true:
- set {冷卻.%player%::旋風落葉神射} to now
- play "ENTITY_WITHER_SHOOT" to player with volume 1 and pitch 1
- set {_location.1} to block above player
- set {_location.2} to block 10 up player
- drawDot count 20, particle "fireworkspark", XYZ 0, 10, 0, center player, visibleRange 32, pulseDelay 2, keepFor 1 seconds
- wait 0.2 seconds
- drawDisco style 1, particle redstone, RGB 82, 255, 82, particle2 redstone, RGB2 255, 255, 255, center location of {_location.2}, id "旋風落葉神射%player%", rainbowMode false, maxLines 5, lineLength 15, sphereRadius 0.9, sphereDensity 30, lineDensity 40, visibleRange 32, displacementXYZ 0, 0, 0, pulseDelay 0.5
- wait 1 tick
- loop 10 times:
- play "ENTITY_ARROW_SHOOT" to player with volume 1 and pitch 1
- loop entities in radius 12 of {_location.1}:
- if loop-entity isn't a player or a dropped item:
- make player damage loop-entity by {_PHYSICDMG}*(3*{_技能.%player%::死神圓舞曲})
- add loop-entity to {_僵直::*}
- add "{NoAI:1}" to nbt of loop-entity
- wait 1.2 tick
- loop {_僵直::*}:
- add "{NoAI:0}" to nbt of loop-value
- stopEffect id "旋風落葉神射%player%"
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
- #[ 箭神 - 元素之箭 ]
- if uncolored name of player's tool contains "元素之箭":
- {玩家資料.%player%::玩家職業} is "箭神"
- if Skill(player, "&c元素之箭", {@元素之箭.Max}, {@元素之箭.CD}, {@元素之箭.MP}) is true:
- set {冷卻.%player%::元素之箭} to now
- loop 3 times:
- set {_偵測} to 0
- play "ENTITY_ARROW_SHOOT" to player with volume 1 and pitch 1
- play "ENTITY_ELDER_GUARDIAN_CURSE" to player with volume 1 and pitch 2
- set {_location.1} to block above player
- set {_location.2} to block 30 in front player
- set {_x.1} to x-coordinate of {_location.1}
- set {_x.2} to x-coordinate of {_location.2}
- set {_y.1} to y-coordinate of {_location.1}
- set {_y.2} to y-coordinate of {_location.2}
- set {_z.1} to z-coordinate of {_location.1}
- set {_z.2} to z-coordinate of {_location.2}
- set {_x.difference} to ({_x.2} - {_x.1}) / 30
- set {_y.difference} to ({_y.2} - {_y.1}) / 30
- set {_z.difference} to ({_z.2} - {_z.1}) / 30
- loop 30 times:
- set {_location.1} to location of {_location.1}
- increase x-coordinate of {_location.1} by {_x.difference}
- increase y-coordinate of {_location.1} by {_y.difference}
- increase z-coordinate of {_location.1} by {_z.difference}
- drawDot count 2, particle "redstone", RGB 250, 0, 0, center {_location.1}, rainbowMode false, visibleRange 32, pulseDelay 2, keepFor 0.2 seconds
- drawDot count 2, particle "redstone", RGB 0, 250, 0, center {_location.1}, rainbowMode false, visibleRange 32, pulseDelay 2, keepFor 0.2 seconds
- drawDot count 2, particle "redstone", RGB 0, 0, 250, center {_location.1}, rainbowMode false, visibleRange 32, pulseDelay 0, keepFor 0.2 seconds
- if {_偵測} is 0:
- loop entities in radius 2 around block at location of {_location.1}:
- if loop-entity isn't a player or a dropped item:
- set {_偵測} to 1
- make player damage loop-entity by ({_PHYSICDMG})*(25)
- drawDot count 10, particle "blockdust", material lava , XYZ 0.5, 1, 0.5, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
- play "ENTITY_BLAZE_BURN" to player with volume 1 and pitch 2
- drawDot count 1, particle "explosionlarge", XYZ 0, 0, 0, center loop-entity, visibleRange 32, pulseDelay 2, keepFor 0.1 seconds
- loop entities in radius 2 around block at location of {_location.1}:
- if loop-entity isn't a player or a dropped item:
- add loop-entity to {_冰封::*}
- add "{NoAI:1}" to nbt of loop-entity
- wait 5 ticks
- loop 3 times:
- loop {_冰封::*}:
- make player damage loop-value-2 by ({_PHYSICDMG})*(16)
- drawDot count 3, particle "sweep", XYZ 0.5, 1, 0.5, center loop-value-2, visibleRange 32, pulseDelay 2, keepFor 1 seconds
- wait 20 ticks
- loop {_冰封::*}:
- add "{NoAI:0}" to nbt of loop-value
- make player damage loop-value by ({_PHYSICDMG})*(30)
- drawDot count 20, particle "snowball", XYZ 0.5, 1, 0.5, center loop-value-2, visibleRange 32, pulseDelay 2, keepFor 1 seconds
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
- # [ ClearVariable 清除變數 ]
- #───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────#
- on any movement:
- {冷卻.%player%::死神圓舞曲} is set:
- set {_冷卻} to difference between {冷卻.%player%::死神圓舞曲} and now
- if {_冷卻} >= {@死神圓舞曲.CD} second:
- delete {冷卻.%player%::死神圓舞曲}
- {冷卻.%player%::天堂之門} is set:
- set {_冷卻} to difference between {冷卻.%player%::天堂之門} and now
- if {_冷卻} >= {@天堂之門.CD} second:
- delete {冷卻.%player%::天堂之門}
Advertisement
Add Comment
Please, Sign In to add comment