Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.02 KB | None | 0 0
  1. options:
  2. prefix: &6&lSkills »
  3.  
  4. on load:
  5. #Ore Xp
  6. delete {mining::xp::*}
  7. set {mining::xp::coal} to 1
  8. set {mining::xp::redstone} to 2
  9. set {mining::xp::iron} to 3
  10. set {mining::xp::lapis_lazuli} to 4
  11. set {mining::xp::gold} to 5
  12. set {mining::xp::diamond} to 6
  13. set {mining::xp::nether_quartz} to 5
  14. set {mining::xp::emerald} to 7
  15.  
  16. on join:
  17. if {skills::mining::level::%uuid of player%} isn't set:
  18. set {skills::mining::xp::%uuid of player%} to 0
  19. set {skills::mining::level::%uuid of player%} to 1
  20.  
  21. on mine of ore:
  22. set {_name} to "%event-block%"
  23. replace all " ore" and "lit " in {_name} with ""
  24. replace all " " in {_name} with "_"
  25. if tool of the player isn't enchanted with silk touch:
  26. add {mining::xp::%{_name}%} to {skills::mining::xp::%uuid of player%}
  27. send action bar "&b+%{mining::xp::%{_name}%}% Mining" to player
  28. xpUpdateMining(player)
  29. else:
  30. send action bar "&cNo xp gain with silk touch!" to player
  31. command /skills:
  32. trigger:
  33. set {_menu} to chest inventory with 3 rows named "Skills"
  34. loop integers from 0 to 26:
  35. set slot loop-value of {_menu} to black glass pane named " "
  36. if {skills::mining::level::%{_u}%} is 1:
  37. set {_need} to 25
  38. else:
  39. set {_need} to {skills::mining::last.xp::%uuid of player%} + 0.5 * {skills::mining::last.xp::%uuid of player%}
  40. remove {skills::mining::xp::%uuid of player%} from {_need}
  41. set {_need} to rounded {_need}
  42. set slot 13 of {_menu} to diamond pickaxe named "&b&lMining &7(Click to View Rewards)" lored "&7Level: &e%{skills::mining::level::%uuid of player%}%||&7Exp: &a%rounded {skills::mining::xp::%uuid of player%}%||&7Xp to next level: &6%{_need}%" with all flags hidden
  43. set slot 18 of {_menu} to barrier named "&cClose"
  44. set {_xlr100} to "xlr100" parsed as offline player
  45. set slot 26 of {_menu} to {_xlr100}'s skull named "&aCredits: xlr100" lored "&7xlr100##6932"
  46. open {_menu} to player
  47. set {inventory::%uuid of player%} to "skills.main"
  48.  
  49. on inventory close:
  50. {inventory::%uuid of player%} is set
  51. delete {inventory::%uuid of player%}
  52.  
  53. on inventory click:
  54. if {inventory::%uuid of player%} contains "skills":
  55. cancel event
  56. if name of event-slot is "&cClose":
  57. close player's inventory
  58. if name of event-slot is "&cBack":
  59. make player execute command "/skills"
  60. else if {inventory::%uuid of player%} is "skills.main":
  61. if index of event-slot is 13:
  62. SkillRewards(player, "Mining")
  63. else if {inventory::%uuid of player%} is "skills.mining":
  64. if event-slot is yellow glass pane:
  65. set {_name::*} to uncolored name of event-slot split at " "
  66. set {_level} to "%{_name::2}%" parsed as integer
  67. set {_reward} to uncolored line 1 of lore of event-slot
  68. replace all "Reward: " in {_reward} with ""
  69. if {_reward} contains "Tokens":
  70. replace all " Tokens" in {_reward} with ""
  71. set {_reward} to {_reward} parsed as integer
  72. make console execute command "/token send %player% %{_reward}%"
  73. send "{@prefix} &bYou claimed %{_reward}% &btokens"
  74. set {skills::mining::reward::%{_level}%::%uuid of player%} to true
  75. SkillRewards(player, "Mining")
  76.  
  77. command /skillreset:
  78. permission: skript.skillreset
  79. trigger:
  80. loop 36 times:
  81. add 1 to {_num}
  82. delete {skills::mining::reward::%{_num}%::*}
  83. delete {skills::mining::xp::*}
  84. delete {skills::mining::level::*}
  85. delete {skills::mining::last.xp::*}
  86. send "{@prefix} &aAll skills related variables are reset"
  87.  
  88. function SkillRewards(p: player, skill: text):
  89. set {_u} to uuid of {_p}
  90. set {_menu} to chest inventory with 6 rows named "%{_skill}% Rewards"
  91. loop integers from 0 to 8:
  92. set slot loop-value of {_menu} to black glass pane named " "
  93. loop integers from 45 to 53:
  94. set slot loop-value of {_menu} to black glass pane named " "
  95. set slot 45 of {_menu} to arrow named "&cBack"
  96. set {_rewards} to 0
  97. loop 36 times:
  98. add 1 to {_num}
  99. if {skills::%{_skill}%::reward::%{_num}%::%{_u}%} is true:
  100. set {_string} to "&aClaimed"
  101. set {_item} to light green glass pane
  102. else:
  103. if {skills::mining::level::%{_u}%} >= {_num}:
  104. set {_string} to "&6Pending"
  105. set {_item} to yellow glass pane
  106. add 1 to {_rewards}
  107. else:
  108. set {_string} to "&cLocked"
  109. set {_item} to red glass pane
  110. set {_reward} to {_num} * 2
  111. set slot {_num} + 8 of {_menu} to {_item} named "&6Level %{_num}% &8(%{_string}%&8)" lored "&bReward: &7%{_reward}% Tokens"
  112. set slot 4 of {_menu} to {_p}'s skull named "&e%{_p}%'s Mining Rewards" lored "&7Unclaimed: &b%{_rewards}%"
  113. open {_menu} to {_p}
  114. set {inventory::%{_u}%} to "skills.%{_skill} in lower case%"
  115.  
  116. function xpUpdateMining(p: player):
  117. set {_u} to uuid of {_p}
  118. if {skills::mining::level::%{_u}%} is 1:
  119. set {_need} to 25
  120. else:
  121. set {_need} to {skills::mining::last.xp::%{_u}%} + 0.5 * {skills::mining::last.xp::%{_u}%}
  122. set {skills::mining::%{_u}%::progress} to ({skills::mining::xp::%{_u}%} / {_need}) * 100
  123. if {skills::mining::%{_u}%::progress} >= 100:
  124. add 1 to {skills::mining::level::%{_u}%}
  125. remove {_need} from {skills::mining::xp::%{_u}%}
  126. set {skills::mining::last.xp::%{_u}%} to {_need}
  127. send {_p} title "&b&lMining Level Up!" with subtitle "&3/skills for more information" for 2 seconds with 1 second fade in and 1 second fade out
  128. xpUpdateMining({_p})
  129.  
  130. command /top [<text>]:
  131. trigger:
  132. if arg is "mining":
  133. SkillLeaderboard(player, "Mining")
  134.  
  135. function SkillLeaderboard(p: player, skill: text):
  136. set {_menu} to chest inventory with 5 rows named "%{_skill}% Leaderboard"
  137. loop integers from 0 to 8:
  138. set slot loop-value of {_menu} to black glass pane named " "
  139. loop integers from 36 to 44:
  140. set slot loop-value of {_menu} to black glass pane named " "
  141. set slot 9, 17, 18, 26 and 27 and 35 of {_menu} to black glass pane named " "
  142. set slot 36 of {_menu} to arrow named "&cBack"
  143. loop {skills::%{_skill}%::level::*}:
  144. add 1 to {_size}
  145. if {_low.to.high.list::%loop-value%} is not set:
  146. set {_low.to.high.list::%loop-value%} to loop-index
  147. else:
  148. set {_n} to 0
  149. loop {_size} times:
  150. set {_n} to {_n}+1
  151. {_low.to.high.list::%loop-value-1%.%{_n}%} is not set
  152. set {_low.to.high.list::%loop-value-1%.%{_n}%} to loop-index
  153. stop loop
  154. wait 1 tick
  155. set {_n} to size of {_low.to.high.list::*}
  156. loop {_low.to.high.list::*}:
  157. set {_high.to.low.list::%{_n}%} to loop-value
  158. set {_n} to {_n}-1
  159. set {_topnumber} to 1
  160. loop {_high.to.low.list::*}:
  161. set {_player} to "%loop-value%" parsed as offline player
  162. if "%{_player}%" != "null":
  163. if {_topnumber} is 1:
  164. set {_slot} to 13
  165. else if {_topnumber} is 2:
  166. set {_slot} to 21
  167. else if {_topnumber} is 3:
  168. set {_slot} to 23
  169. else if {_topnumber} < 11:
  170. set {_slot} to {_topnumber} + 24
  171. set {_uuid} to uuid of {_player}
  172. set slot {_slot} of {_menu} to {_player}'s skull named "&7%{_topnumber}%. &e%{_player}%" lored "&7%{_skill}% Level &8» &b%{skills::%{_skill}%::level::%{_uuid}%}%"
  173. add 1 to {_topnumber}
  174. if {_topnumber} > 10:
  175. exit loop
  176. set {_u} to uuid of {_p}
  177. open {_menu} to {_p}
  178. set {inventory::%{_u}%} to "skills.%{_skill}%.leaderboard"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement