Advertisement
kama6012

Level

Mar 15th, 2019
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | None | 0 0
  1. command /level [<text>] [<text>] [<int>] [<player>]:
  2. trigger:
  3. if arg-1 is "set":
  4. player has permission "admin"
  5. arg-2 is set
  6. arg-3 is set
  7. set {_arg} to arg-2 parsed as player
  8. set {PlayerLevels::%{_arg}%} to arg-3
  9. set {PlayerKilledMobCount::%{_arg}%} to 0
  10. delete {PlayerStatus::%player%::*}
  11. set {PlayerPoints::%player%} to arg-3
  12. send "&f[&eレベル管理&f] &b%{_arg}%さんのレベルを%arg-3%に設定しました" to player
  13. send "%{PlayerKilledMobCount::%{_arg}%}%"
  14. set level of player to {PlayerLevels::%player%}
  15. stop
  16. else if arg-1 is "check" or "info":
  17. arg-2 is set
  18. set {_arg} to arg-2 parsed as player
  19. send "&f[&eレベル管理&f] &b%{_arg}%さんのレベルは%{PlayerLevels::%{_arg}%}%です" to player
  20. else if arg-1 is "point":
  21. if arg-4 is set:
  22. set {_player} to arg-4
  23. else:
  24. set {_player} to player
  25. if arg-2 isn't set:
  26. send "%{PlayerPoints::%player%}%"
  27. open chest inventory with 1 rows named "&f[&eレベル管理&f]&2%{PlayerPoints::%{_player}%}%ポイント" to player
  28. wait 1 tick
  29. format slot 2 of player with apple named "&f体力" to run "level point heart %player%"
  30. format slot 4 of player with iron boots named "&f速度" to run "level point feet %player%"
  31. else if arg-2 is "heart":
  32. {PlayerPoints::%{_player}%} > 0
  33. set {PlayerPoints::%{_player}%} to {PlayerPoints::%{_player}%} - 1
  34. set {PlayerStatus::%{_player}%::heart} to {PlayerStatus::%{_player}%::heart} + 1
  35. else if arg-2 is "feet":
  36. {PlayerPoints::%{_player}%} > 0
  37. set {PlayerPoints::%{_player}%} to {PlayerPoints::%{_player}%} - 1
  38. set {PlayerStatus::%{_player}%::feet} to {PlayerStatus::%{_player}%::feet} + 1
  39. set maximum health of {_player} to 20 + {PlayerStatus::%{_player}%::heart}
  40. set walk speed of {_player} to 0.2 + 0.02*{PlayerStatus::%{_player}%::feet}
  41. else if arg-1 is "double":
  42. arg-2 is set
  43. if arg-3 is set:
  44. set {_arg-3} to arg-3
  45. else:
  46. set {_arg-3} to 2
  47. set {PlayerEXPdoubling} to {_arg-3}
  48. set {PlayerEXPdoublingtime} to arg-2 parsed as number
  49. broadcast "&f[&eレベル管理&f] &b%{PlayerEXPdoublingtime}%分間、経験値%{PlayerEXPdoubling}%倍です"
  50.  
  51. function LevelUp(TargetedPlayer: Player):
  52. {PlayerKilledMobCount::%{_TargetedPlayer}%} >= LevelEXP({PlayerLevels::%{_TargetedPlayer}%})
  53. set {PlayerLevels::%{_TargetedPlayer}%} to {PlayerLevels::%{_TargetedPlayer}%} + 1
  54. set {PlayerPoints::%{_TargetedPlayer}%} to {PlayerPoints::%{_TargetedPlayer}%} + 1
  55. send "&f[&eレベル管理&f] &a&lレベルアップしました!!&6&lレベル: &e&l%{PlayerLevels::%{_TargetedPlayer}%}%" to {_TargetedPlayer}
  56. send title "&a&lレベルアップしました!!" with subtitle "&6&lレベル: &e&l%{PlayerLevels::%{_TargetedPlayer}%}%" to {_TargetedPlayer}
  57.  
  58. function LevelEXP(Level: number) :: number:
  59. return 2^({_level} - 1) *3
  60.  
  61. every 1 minute:
  62. set {PlayerEXPdoublingtime} to {PlayerEXPdoublingtime} - 1
  63. {PlayerEXPdoublingtime} is 0
  64. set {PlayerEXPdoubling} to 1
  65.  
  66. on first join:
  67. set {PlayerKilledMobCount::%player%} to 0
  68. set {PlayerLevels::%{_player}%} to 1
  69. set {PlayerPoints::%{_player}%} to 1
  70.  
  71. on load:
  72. {PlayerEXPdoubling} is not set
  73. set {PlayerEXPdoubling} to 1
  74.  
  75. on death:
  76. victim is not player
  77. set {_long} to 0
  78. set {_LV} to ""
  79. set {_split::*} to victim's name split at "Lv."
  80. loop length of {_split::2} times:
  81. set {_long} to {_long} + 1
  82. set {_L} to sub text of {_split::2} between {_long} and {_long}
  83. if {_L} parsed as number is number:
  84. set {_LV} to "%{_LV}%%{_L}%"
  85. else if {_L} is "§":
  86. set {_long} to {_long} + 1
  87. else if {_L} is " ":
  88. exit this loop
  89. set {_LV} to {_LV} parsed as number
  90. add {_LV}*{PlayerEXPdoubling} to {PlayerKilledMobCount::%attacker%}
  91. set level of attacker to {PlayerLevels::%attacker%}
  92. set level progress of attacker to {PlayerKilledMobCount::%attacker%}/ LevelEXP({PlayerLevels::%attacker%})
  93. send action bar "&e&lレベルアップまで &c%{PlayerKilledMobCount::%attacker%}%&f/&a%LevelEXP({PlayerLevels::%attacker%})%" to attacker
  94. {PlayerKilledMobCount::%attacker%}/ LevelEXP({PlayerLevels::%attacker%}) >= 1
  95. LevelUp(attacker)
  96.  
  97. every second:
  98. loop all players:
  99. send action bar "&e&lLv%{PlayerLevels::%loop-player%}% EXP &c%{PlayerKilledMobCount::%loop-player%}%&f/&a%LevelEXP({PlayerLevels::%loop-player%})% HP%health of loop-player%/%max health of loop-player%" to loop-player
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement