Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- command /level [<text>] [<text>] [<int>] [<player>]:
- trigger:
- if arg-1 is "set":
- player has permission "admin"
- arg-2 is set
- arg-3 is set
- set {_arg} to arg-2 parsed as player
- set {PlayerLevels::%{_arg}%} to arg-3
- set {PlayerKilledMobCount::%{_arg}%} to 0
- delete {PlayerStatus::%player%::*}
- set {PlayerPoints::%player%} to arg-3
- send "&f[&eレベル管理&f] &b%{_arg}%さんのレベルを%arg-3%に設定しました" to player
- send "%{PlayerKilledMobCount::%{_arg}%}%"
- set level of player to {PlayerLevels::%player%}
- stop
- else if arg-1 is "check" or "info":
- arg-2 is set
- set {_arg} to arg-2 parsed as player
- send "&f[&eレベル管理&f] &b%{_arg}%さんのレベルは%{PlayerLevels::%{_arg}%}%です" to player
- else if arg-1 is "point":
- if arg-4 is set:
- set {_player} to arg-4
- else:
- set {_player} to player
- if arg-2 isn't set:
- send "%{PlayerPoints::%player%}%"
- open chest inventory with 1 rows named "&f[&eレベル管理&f]&2%{PlayerPoints::%{_player}%}%ポイント" to player
- wait 1 tick
- format slot 2 of player with apple named "&f体力" to run "level point heart %player%"
- format slot 4 of player with iron boots named "&f速度" to run "level point feet %player%"
- else if arg-2 is "heart":
- {PlayerPoints::%{_player}%} > 0
- set {PlayerPoints::%{_player}%} to {PlayerPoints::%{_player}%} - 1
- set {PlayerStatus::%{_player}%::heart} to {PlayerStatus::%{_player}%::heart} + 1
- else if arg-2 is "feet":
- {PlayerPoints::%{_player}%} > 0
- set {PlayerPoints::%{_player}%} to {PlayerPoints::%{_player}%} - 1
- set {PlayerStatus::%{_player}%::feet} to {PlayerStatus::%{_player}%::feet} + 1
- set maximum health of {_player} to 20 + {PlayerStatus::%{_player}%::heart}
- set walk speed of {_player} to 0.2 + 0.02*{PlayerStatus::%{_player}%::feet}
- else if arg-1 is "double":
- arg-2 is set
- if arg-3 is set:
- set {_arg-3} to arg-3
- else:
- set {_arg-3} to 2
- set {PlayerEXPdoubling} to {_arg-3}
- set {PlayerEXPdoublingtime} to arg-2 parsed as number
- broadcast "&f[&eレベル管理&f] &b%{PlayerEXPdoublingtime}%分間、経験値%{PlayerEXPdoubling}%倍です"
- function LevelUp(TargetedPlayer: Player):
- {PlayerKilledMobCount::%{_TargetedPlayer}%} >= LevelEXP({PlayerLevels::%{_TargetedPlayer}%})
- set {PlayerLevels::%{_TargetedPlayer}%} to {PlayerLevels::%{_TargetedPlayer}%} + 1
- set {PlayerPoints::%{_TargetedPlayer}%} to {PlayerPoints::%{_TargetedPlayer}%} + 1
- send "&f[&eレベル管理&f] &a&lレベルアップしました!!&6&lレベル: &e&l%{PlayerLevels::%{_TargetedPlayer}%}%" to {_TargetedPlayer}
- send title "&a&lレベルアップしました!!" with subtitle "&6&lレベル: &e&l%{PlayerLevels::%{_TargetedPlayer}%}%" to {_TargetedPlayer}
- function LevelEXP(Level: number) :: number:
- return 2^({_level} - 1) *3
- every 1 minute:
- set {PlayerEXPdoublingtime} to {PlayerEXPdoublingtime} - 1
- {PlayerEXPdoublingtime} is 0
- set {PlayerEXPdoubling} to 1
- on first join:
- set {PlayerKilledMobCount::%player%} to 0
- set {PlayerLevels::%{_player}%} to 1
- set {PlayerPoints::%{_player}%} to 1
- on load:
- {PlayerEXPdoubling} is not set
- set {PlayerEXPdoubling} to 1
- on death:
- victim is not player
- set {_long} to 0
- set {_LV} to ""
- set {_split::*} to victim's name split at "Lv."
- loop length of {_split::2} times:
- set {_long} to {_long} + 1
- set {_L} to sub text of {_split::2} between {_long} and {_long}
- if {_L} parsed as number is number:
- set {_LV} to "%{_LV}%%{_L}%"
- else if {_L} is "§":
- set {_long} to {_long} + 1
- else if {_L} is " ":
- exit this loop
- set {_LV} to {_LV} parsed as number
- add {_LV}*{PlayerEXPdoubling} to {PlayerKilledMobCount::%attacker%}
- set level of attacker to {PlayerLevels::%attacker%}
- set level progress of attacker to {PlayerKilledMobCount::%attacker%}/ LevelEXP({PlayerLevels::%attacker%})
- send action bar "&e&lレベルアップまで &c%{PlayerKilledMobCount::%attacker%}%&f/&a%LevelEXP({PlayerLevels::%attacker%})%" to attacker
- {PlayerKilledMobCount::%attacker%}/ LevelEXP({PlayerLevels::%attacker%}) >= 1
- LevelUp(attacker)
- every second:
- loop all players:
- 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