ArtzifyHD

Levels Skript

Jul 14th, 2017
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. options:
  2.  
  3. #Messages
  4. #Use [exp],[level],[something] as placeholders and || as new line
  5. msg.levelUp: "&7======================||&7 || &aLEVEL UP! ||&7You are now at level &a[level]||&7 ||&7======================"
  6. msg.addXp: "&9+[exp] experience"
  7. msg.levelCmdOutput: "&7======================||&7 ||&7You have level &e[level]||&7You have &a[exp]&7/&e[levelup-exp] &7experience||&7 ||&7======================"
  8.  
  9. #Settings
  10. st.startLevel: 0
  11. st.levelUpXpBase: 25
  12. st.levelUpXpMultiplier: 2
  13.  
  14. variables:
  15. #Permissions(like default,vip,ultra,premium
  16. #{lsk.booster::default} = 1
  17. {lsk.booster::vip} = 2
  18. {lsk.booster::ultra} = 3
  19. {lsk.booster::premium} = 5
  20.  
  21. on join:
  22. if {level::%player%} isn't set:
  23. set {level::%player%} to {@st.startLevel}
  24. set {level.exp::%player%} to 0
  25. set {levelup.exp::%player%} to {@st.levelUpXpBase}
  26.  
  27.  
  28. function addLevelExp(p: player,a: integer):
  29. set {_msg1} to {@msg.addXp}
  30. loop {lsk.booster::*}:
  31. if player has permission "lsk.%loop-index%":
  32. if {_b} is less than loop-value:
  33. set {_b} to loop-value
  34. set {_n} to {_a} * {_b}
  35. replace all "[exp]" with "%{_a}%" in {_msg1}
  36. send {_msg1} to {_p}
  37. loop {_a} times:
  38. add 1 to {level.exp::%{_p}%}
  39. if {level.exp::%{_p}%} is more than ({levelup.exp::%{_p}%} - 1):
  40. set {levelup.exp::%{_p}%} to {levelup.exp::%{_p}%} * {@st.levelUpXpMultiplier}
  41. set {level::%{_p}%} to {level::%{_p}%} + 1
  42. set {_msg2} to {@msg.levelUp}
  43. replace all "[level]" with "%{level::%{_p}%}%" in {_msg2}
  44. message {_msg2 to {_p}
  45.  
  46. function getLevel(p: player) :: integer:
  47. return {level::%{_p})
  48.  
  49. function getLevelExp(p: player) :: integer:
  50. return {level.exp::%{_p})
  51.  
  52. function getLevelUpExp(p: player) :: integer:
  53. return {levelup.exp::%{_p})
  54.  
  55. function wipeLevelStats(p: player):
  56. delete {level::%{_p}%}
  57. delete {level.exp::%{_p}%}
  58. delete {levelup.exp::%{_p}%}
  59.  
  60. command /level:
  61. trigger:
  62. set {_p} to player
  63. set {_msg} to {@msg.levelCmdOutput}
  64. replace all "[level]" with "%{level::%{_p}%}%" in {_msg}
  65. replace all "[exp]" with "%{level.exp::%{_p}%}%" in {_msg}
  66. replace all "[levelup-exp]" with "%{levelup.exp::%{_p}%}%" in {_msg}
  67. message {_msg} to player
  68.  
  69. command /leveltop [text] [integer]:
  70. trigger:
  71. if arg-1 is "level" or "lvl":
  72. set {_v} to "level"
  73. set {_vl} to "Level"
  74. else if arg-1 is "experience" or "exp" or "xp":
  75. set {_v} to "level.exp"
  76. set {_vl} to "Exp"
  77. else:
  78. send "&cWrong argument error - use &e/leveltop (level/lvl|exp/xp/experience)"
  79. stop trigger
  80. loop {%{_v}%::*}:
  81. {_l} is less than arg-2
  82. add 1 to {_size}
  83. if {_sorted.list::%loop-value%} is not set:
  84. set {_sorted.list::%loop-value%} to loop-index
  85. else:
  86. set {_n} to 0
  87. loop {_size} times:
  88. set {_n} to {_n}+1
  89. {_sorted.list:%loop-value-1%.%{_n}%} is not set
  90. set {_sorted.list::%loop-value-1%.%{_n}%} to loop-index
  91. stop loop
  92. add 1 to {_l}
  93. wait 1 tick
  94. set {_n} to size of {_sorted.list::*}
  95. loop {_sorted.list::*}:
  96. set {_sorted.list::%{_n}%} to loop-value
  97. set {_n} to {_n}-1
  98. wait 1 tick
  99. set {_i} to 0
  100. send "&7======================"
  101. send " Top %arg-2% Players"
  102. loop {_sorted.list::*}:
  103. add 1 to {_topnumber}
  104. set {_player} to "%loop-value%" parsed as offlineplayer
  105. send "&e%{_topnumber}%&7.&e%{_player}% &7- &e%{%{_v}%::%loop-value%}% %{_vl}"
  106. add 1 to {_i}
  107. if {_topnumber} is more than (arg-1 - 1)
  108. stop
  109. send "&7======================"
Advertisement
Add Comment
Please, Sign In to add comment