7mm

【Skript】SignCheckPoint v2

7mm
Aug 13th, 2018
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.42 KB | None | 0 0
  1. every tick:
  2. loop all players:
  3. if {cooltimeTA::%loop-player%} is not set:
  4. set {cooltimeTA::%loop-player%} to 0
  5. if {cooltimeTA::%loop-player%} > 0:
  6. remove 1 from {cooltimeTA::%loop-player%}
  7.  
  8. Function tickConvMSMS(i: integer):
  9. set {_second} to floor({_i}/20)
  10. set {_tick} to {_i}-20*{_second}
  11. set {_minute} to floor({_second}/60)
  12. set {_second} to {_second}-60*{_minute}
  13. set {_tick} to {_tick}*5
  14. if {_tick} < 10:
  15. set {__tick} to "0%{_tick}%"
  16. else:
  17. set {__tick} to "%{_tick}%"
  18. if {_second} < 10:
  19. set {__second} to "0%{_second}%"
  20. else:
  21. set {__second} to "%{_second}%"
  22. if {_minute} < 10:
  23. set {__minute} to "0%{_minute}%"
  24. else:
  25. set {__minute} to "%{_minute}%"
  26. set {tickConvMSMS} to "%{__minute}%:%{__second}%.%{__tick}%"
  27.  
  28. command /editcp [<text>] [<text>]:
  29. permission: skript.admin
  30. trigger:
  31. if arg 1 is "select":
  32. set {editcp.mode::%player%} to "s"
  33. set {editcp.name::%player%} to arg 2
  34. message "&a看板を設置すると設定できます"
  35. else if arg 1 is "time":
  36. set {editcp.mode::%player%} to "t"
  37. set {editcp.name::%player%} to arg 2
  38. message "&a看板を設置すると設定できます"
  39. else if arg 1 is "check":
  40. set {editcp.mode::%player%} to "c"
  41. set {editcp.name::%player%} to arg 2
  42. message "&a看板を設置すると設定できます"
  43. else if arg 1 is "goal":
  44. set {editcp.mode::%player%} to "g"
  45. set {editcp.name::%player%} to arg 2
  46. message "&a看板を設置すると設定できます"
  47. else if arg 1 is "off":
  48. set {editcp.mode::%player%} to "o"
  49. clear {editcp.name::%player%}
  50. message "&aオフにしました"
  51. else:
  52. message "&c[Error] &9/editcp &6<mode> <cp name>"
  53. message "&7mode: &eselect, time, check, goal, off"
  54.  
  55. on place of sign:
  56. if {editcp.mode::%player%} is "s":
  57. set line 1 of event-block to "&8&l====*=====*===="
  58. set line 2 of event-block to "&7&l:. &9Select &7&l.:"
  59. set line 3 of event-block to "&b%{editcp.name::%player%}%"
  60. set line 4 of event-block to "&8&l====*=====*===="
  61. if {editcp.mode::%player%} is "t":
  62. set line 1 of event-block to "&8&l====*=====*===="
  63. set line 2 of event-block to "&7&l:. &6TimeAttack &7&l.:"
  64. set line 3 of event-block to "&b%{editcp.name::%player%}%"
  65. set line 4 of event-block to "&8&l====*=====*===="
  66. if {editcp.mode::%player%} is "c":
  67. set line 1 of event-block to "&8&l====*=====*===="
  68. set line 2 of event-block to "&7&l:. &eCheckPoint &7&l.:"
  69. set line 3 of event-block to "&b%{editcp.name::%player%}%"
  70. set line 4 of event-block to "&8&l====*=====*===="
  71. if {editcp.mode::%player%} is "g":
  72. set line 1 of event-block to "&8&l====*=====*===="
  73. set line 2 of event-block to "&7&l:. &cGoal &7&l.:"
  74. set line 3 of event-block to "&b%{editcp.name::%player%}%"
  75. set line 4 of event-block to "&8&l====*=====*===="
  76.  
  77. on rightclick:
  78. if player's held item is stick named "&cCheck&9Point":
  79. event-block is not sign
  80. command "/cp %player%"
  81. if line 2 of event-block is "&7&l:. &9Select &7&l.:":
  82. set {_line2} to line 3 of event-block
  83. replace "&b" in {_line2} with ""
  84. set {cpselect::%player%} to {_line2}
  85. message "&7[&cC&9P&7] &bチェックポイントを選択しました"
  86. command "/execute %player% ~ ~ ~ playsound block.note.pling master @s ~ ~ ~ 1 1.5"
  87. command "/execute %player% ~ ~ ~ playsound block.note.pling master @s ~ ~ ~ 1 1.2"
  88. if line 2 of event-block is "&7&l:. &6TimeAttack &7&l.:":
  89. {cooltimeTA::%player%} = 0
  90. set {cooltimeTA::%player%} to 4
  91. set {_line2} to line 3 of event-block
  92. replace "&b" in {_line2} with ""
  93. set {enableTA.%{_line2}%::%player%} to false
  94. set {countTA.%{_line2}%::%player%} to 0
  95. message "&7[&cC&9P&7] &6タイムアタックを開始しました"
  96. command "/execute %player% ~ ~ ~ playsound block.note.pling master @s ~ ~ ~ 1 1.5"
  97. wait 2 tick
  98. command "/execute %player% ~ ~ ~ playsound block.note.pling master @s ~ ~ ~ 1 2.0"
  99. wait 2 tick
  100. command "/execute %player% ~ ~ ~ playsound block.note.pling master @s ~ ~ ~ 1 1.5"
  101. set {enableTA.%{_line2}%::%player%} to true
  102. while {enableTA.%{_line2}%::%player%} is true:
  103. wait a tick
  104. add 1 to {countTA.%{_line2}%::%player%}
  105. if {goalTA.%{_line2}%::%player%} is true:
  106. tickConvMSMS({countTA.%{_line2}%::%player%})
  107. broadcast "&7[&6T&aA&7] &d%player%&a: &b'%{_line2}%' &e&l%{tickConvMSMS}% &7(%{countTA.%{_line2}%::%player%}%Tick)"
  108. if {recordTA.%{_line2}%::%player%} is not set:
  109. set {recordTA.%{_line2}%::%player%} to {countTA.%{_line2}%::%player%}
  110. message "&7[&6T&aA&7] &e&l初クリアおめでとうございます!"
  111. else if {recordTA.%{_line2}%::%player%} <= {countTA.%{_line2}%::%player%}:
  112. tickConvMSMS({recordTA.%{_line2}%::%player%})
  113. message "&7[&6T&aA&7] &e次は記録更新目指して頑張りましょう! &d(自己最高:&l%{tickConvMSMS}%&d)"
  114. else if {recordTA.%{_line2}%::%player%} > {countTA.%{_line2}%::%player%}:
  115. tickConvMSMS({recordTA.%{_line2}%::%player%})
  116. set {recordTA.%{_line2}%::%player%} to {countTA.%{_line2}%::%player%}
  117. message "&7[&6T&aA&7] &6&l自己最高記録更新! &d(旧自己最高:&l%{tickConvMSMS}%&d)"
  118. message "&7[&6T&aA&7] &aタイムアタックお疲れ様でした!"
  119. command "/execute %player% ~ ~ ~ playsound block.note.pling master @s ~ ~ ~ 1 2.0"
  120. wait 2 tick
  121. command "/execute %player% ~ ~ ~ playsound block.note.pling master @s ~ ~ ~ 1 1.5"
  122. wait 2 tick
  123. command "/execute %player% ~ ~ ~ playsound block.note.pling master @s ~ ~ ~ 1 2.0"
  124. set {goalTA.%{_line2}%::%player%} to false
  125. set {enableTA.%{_line2}%::%player%} to false
  126. set {countTA.%{_line2}%::%player%} to 0
  127. if line 2 of event-block is "&7&l:. &cgoal &7&l.:":
  128. set {_line2} to line 3 of event-block
  129. replace "&b" in {_line2} with ""
  130. if {enableTA.%{_line2}%::%player%} is false:
  131. message "&7[&6T&aA&7] &cタイムアタックを開始していません"
  132. stop
  133. if distance between event-block and player > 2:
  134. message "&7[&6T&aA&7] &c近くまで来てからクリックしてください"
  135. stop
  136. set {goalTA.%{_line2}%::%player%} to true
  137. clear {checkpoint.%{cpselect::%{_player}%}%::%{_player}%}
  138. if line 2 of event-block is "&7&l:. &eCheckPoint &7&l.:":
  139. if block below player is air:
  140. message "&7[&cC&9P&7] &c空中ではチェックポイントを設定できません"
  141. stop
  142. set {_line2} to line 3 of event-block
  143. replace "&b" in {_line2} with ""
  144. set {checkpoint.%{_line2}%::%player%} to location of player
  145. set {_line2} to line 3 of event-block
  146. replace "&b" in {_line2} with ""
  147. set {cpselect::%player%} to {_line2}
  148. message "&7[&cC&9P&7] &aチェックポイントを設定しました"
  149. command "/execute %player% ~ ~ ~ playsound block.note.pling master @s ~ ~ ~ 1 0.9"
  150. command "/execute %player% ~ ~ ~ playsound block.note.pling master @s ~ ~ ~ 1 0.75"
  151.  
  152. command /goal [<player>]:
  153. permission: skript.admin
  154. trigger:
  155. set {_player} to arg 1
  156. if arg 1 is not set:
  157. set {_player} to player
  158. clear {checkpoint.%{cpselect::%{_player}%}%::%{_player}%}
  159. add 1 to {clear.%{cpselect::%{_player}%}%::%{_player}%}
  160.  
  161. command /checkpoint [<player>]:
  162. aliases: /cp
  163. trigger:
  164. set {_player} to arg 1
  165. if arg 1 is not set:
  166. set {_player} to player
  167. teleport {_player} to location of {checkpoint.%{cpselect::%{_player}%}%::%{_player}%}
  168.  
  169. command /item [<player>]:
  170. trigger:
  171. set {_player} to arg 1
  172. if arg 1 is not set:
  173. set {_player} to player
  174. set slot 1 of player to stick named "&cCheck&9Point"
Advertisement
Add Comment
Please, Sign In to add comment