ShooterowyPL

EpicParkour v1.1

Aug 30th, 2014
893
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.70 KB | None | 0 0
  1. #Name: EpicParkour
  2. #Version: 1.1
  3. #Author: Shooterowy
  4.  
  5. #Zakazy:
  6. #1. Zakaz zmiany autora.
  7. #2. Zakaz udostepniania przerobionego skryptu.
  8. #3. Zakaz podszywania sie pod autora.
  9. #4. Etc.
  10.  
  11. #Opcje
  12. options:
  13. #Mozna uzyc kilku blokow (Wystarczy dopisac "or" + nazwa bloku.)
  14. #Przyklad uzycia wielu blokow:
  15. #failblock: red wool or redstone block or stone brick
  16. startblock: green wool #Poczatek parkoura.
  17. failblock: red wool #Spadniecie podczas parkoura.
  18. endblock: blue wool #Koniec parkoura.
  19. nextlevel: 100 #Co ile punktow doswiadczenia mozna zdobyc nowy poziom.
  20. tag: &6[&3Epic&2Parkour&6] #Tytul skryptu
  21.  
  22. #Zmienne
  23. variables:
  24. {parkour::status::%player%} = false
  25. {parkour::counter::%player%} = false
  26. {parkour::time::%player%} = 0
  27. {parkour::xp::%player%} = 0
  28. {parkour::level::%player%} = 0
  29.  
  30. #Komendy
  31. command /parkour [<text>] [<text>] [<text>]:
  32. aliases: p
  33. trigger:
  34. if arg 1 is not set:
  35. send "{@tag} &3Epic&2Parkour &6Commands:"
  36. if player has permission "parkour.*":
  37. send "&a/parkour create <arena> - Creates new arena."
  38. send "&a/parkour setspawn <arena> - Sets spawn of arena."
  39. send "&a/parkour setxp <arena> <xp> - Set xp for finishing the arena."
  40. send "&a/parkour remove <arena> - Removes the arena."
  41. send "&a/parkour list - Displays list of created arenas."
  42. if {parkour::status::%player%} is true:
  43. send "&c/parkour join <arena> - Joins to the arena."
  44. send "&a/parkour leave - Leaves current arena."
  45. else:
  46. send "&a/parkour join <arena> - Joins to the arena."
  47. send "&c/parkour leave - Leaves current arena."
  48. send "&a/parkour info <player> - Shows statistics of specific player."
  49. send "&a/parkour reload - Reloads the script."
  50. stop
  51. else:
  52. send "&a/parkour list - Displays list of created arenas."
  53. if {parkour::status::%player%} is true:
  54. send "&c/parkour join <arena> - Joins to the arena."
  55. send "&a/parkour leave - Leaves current arena."
  56. else:
  57. send "&a/parkour join <arena> - Joins to the arena."
  58. send "&c/parkour leave - Leaves current arena."
  59. send "&a/parkour info - Shows your statistics."
  60. stop
  61.  
  62. if arg 1 is "create":
  63. if player has permission "parkour.create" or "parkour.*":
  64. if arg 2 is set:
  65. if {parkour::arena::%arg 2%} is not set:
  66. set {parkour::arena::%arg 2%} to arg 2
  67. send "{@tag} &6Created new arena &b%arg 2%&6."
  68. stop
  69. else:
  70. send "{@tag} &cArena &b%arg 2% &cis already exist."
  71. stop
  72. else:
  73. send "{@tag} &cCorrect usage: &7/parkour create <arena>"
  74. stop
  75. else:
  76. send "{@tag} &cYou do not have required permissions."
  77. stop
  78. if arg 1 is "setspawn":
  79. if player has permission "parkour.setspawn" or "parkour.*":
  80. if arg 2 is set:
  81. if {parkour::arena::%arg 2%} is set:
  82. set {parkour::arena::%arg 2%::spawn} to location of player
  83. send "{@tag} &6Spawn for the arena &b%arg 2%&6 has been set."
  84. stop
  85. else:
  86. send "{@tag} &cArena &b%arg 2% &cis not exist."
  87. stop
  88. else:
  89. send "{@tag} &cCorrect usage: &7/parkour setspawn <arena>"
  90. stop
  91. else:
  92. send "{@tag} &cYou do not have required permissions."
  93. stop
  94. if arg 1 is "list":
  95. if player has permission "parkour.*" or "parkour.default":
  96. clear {arenas::*}
  97. loop {parkour::arena::*}:
  98. if {parkour::arena::%loop-value%::xp} is set:
  99. set {_xp} to {parkour::arena::%loop-value%::xp}
  100. else:
  101. set {_xp} to 0
  102. if {parkour::arena::%loop-value%::spawn} is set:
  103. add "&a%loop-value% &6(&7%{_xp}% xp&6)" to {arenas::*}
  104. else:
  105. add "&c%loop-value% &6(&7%{_xp}% xp&6)" to {arenas::*}
  106. set {_list} to "%{arenas::*}%"
  107. replace all "<none>" with "" in {_list}
  108. replace all " and" with "," in {_list}
  109. send "{@tag} &6Created arenas: &b%{_list}%"
  110. stop
  111. else:
  112. send "{@tag} &cYou do not have required permissions."
  113. stop
  114. if arg 1 is "remove":
  115. if player has permission "parkour.*" or "parkour.remove":
  116. if arg 2 is set:
  117. if {parkour::arena::%arg 2%} is set:
  118. clear {parkour::arena::%arg 2%}
  119. clear {parkour::arena::%arg 2%::spawn}
  120. clear {parkour::arena::%arg 2%::xp}
  121. clear {parkour::arena::%arg 2%::players::*}
  122. clear {parkour::arena::%arg 2%::done::*}
  123. clear {parkour::arena::%arg 2%::time::*}
  124. send "{@tag} &6Removed the arena &b%arg 2%&6."
  125. stop
  126. else:
  127. send "{@tag} &cThe Arena &b%arg 2% &cis not exist."
  128. stop
  129. else:
  130. send "{@tag} &cCorrect usage: &7/parkour remove <arena>"
  131. stop
  132. else:
  133. send "{@tag} &cYou do not have required permissions."
  134. stop
  135. if arg 1 is "setxp":
  136. if player has permission "parkour.*" or "parkour.setxp":
  137. if arg 2 is set:
  138. if {parkour::arena::%arg 2%} is set:
  139. if arg 3 is set:
  140. set {_xp} to arg 3 parsed as integer
  141. send "{@tag} &6Set &b%{_xp}% &6xp for finishing the arena &b%arg 2%&6."
  142. set {parkour::arena::%arg 2%::xp} to {_xp}
  143. stop
  144. else:
  145. send "{@tag} &cCorrect usage: &7/parkour setxp <arena> <xp>"
  146. stop
  147. else:
  148. send "{@tag} &cArena &b%arg 2% &cis not exist."
  149. stop
  150. else:
  151. send "{@tag} &cCorrect usage: &7/parkour setxp <arena> <xp>"
  152. stop
  153. else:
  154. send "{@tag} &cYou do not have required permissions."
  155. stop
  156. if arg 1 is "join":
  157. if player has permission "parkour.*" or "parkour.default":
  158. if arg 2 is set:
  159. if {parkour::arena::%arg 2%} is set:
  160. if {parkour::arena::%arg 2%::spawn} is set:
  161. if {parkour::status::%player%} is false:
  162. if {parkour::arena::%arg 2%::done::%player%} is not set:
  163. set {parkour::arena::%arg 2%::done::%player%} to false
  164. set {parkour::lastlocation::%player%} to location of player
  165. set {parkour::arena::%arg 2%::players::%player%} to player
  166. set {parkour::arena::%arg 2%::allplayers::%player%} to player
  167. set {parkour::status::%player%} to true
  168. if {parkour::arena::%arg 2%::time::%player%} is not set:
  169. set {parkour::arena::%arg 2%::time::%player%} to 0
  170. if player's gamemode is not survival:
  171. set player's gamemode to survival
  172. teleport player to {parkour::arena::%arg 2%::spawn}
  173. send "{@tag} &6You have joined to arena &b%arg 2%&6."
  174. stop
  175. else:
  176. send "{@tag} &cLeave your current arena first."
  177. stop
  178. else:
  179. send "{@tag} &cSpawn of arena &b%arg 2% &cis not set&c."
  180. stop
  181. else:
  182. send "{@tag} &cArena &b%arg 2% &cis not exist."
  183. stop
  184. else:
  185. send "{@tag} &cCorrect usage: &7/parkour join <arena>"
  186. stop
  187. else:
  188. send "{@tag} &cYou do not have required permissions."
  189. stop
  190. if arg 1 is "leave":
  191. if player has permission "parkour.*" or "parkour.default":
  192. if {parkour::status::%player%} is true:
  193. teleport player to {parkour::lastlocation::%player%}
  194. clear {parkour::lastlocation::%player%}
  195. loop {parkour::arena::*}:
  196. if {parkour::arena::%loop-value%::players::%player%} is set:
  197. set {_arena} to {parkour::arena::%loop-value%}
  198. clear {parkour::arena::%loop-value%::players::%player%}
  199. set {parkour::status::%player%} to false
  200. set {parkour::counter::%player%} to false
  201. set {parkour::time::%player%} to 0
  202. set player's level to 0
  203. send "{@tag} &6You have left the arena &b%{_arena}%&6."
  204. stop
  205. else:
  206. send "{@tag} &cYou are not on any arena."
  207. stop
  208. else:
  209. send "{@tag} &cYou do not have required permissions."
  210. stop
  211. if arg 1 is "reload":
  212. if player has permission "parkour.*" or "parkour.reload":
  213. execute console command "sk reload %script%"
  214. send "{@tag} &6Script has been reloaded."
  215. stop
  216. else:
  217. send "{@tag} &cYou do not have required permissions."
  218. stop
  219. if arg 1 is "info":
  220. if arg 2 is not set:
  221. if player has permission "parkour.*" or "parkour.default":
  222. send "{@tag} &b%player%'s &6statistics:"
  223. send "{@tag} &7Level - &c%{parkour::level::%player%}% &7(&c%{parkour::xp::%player%}% xp&7)"
  224. loop {parkour::arena::*}:
  225. if {parkour::arena::%loop-value%::done::%player%} is true:
  226. set {_arena} to {parkour::arena::%loop-value%}
  227. set {_time} to {parkour::arena::%loop-value%::time::%player%}
  228. set {_minutes} to rounded down {_time}/60
  229. set {_seconds} to {_time}-({_minutes}*60)
  230. if {_time} is not 0:
  231. add "&c%{_arena}% &7(&c%{_minutes}% min %{_seconds}% sec&7)" to {_arenas::*}
  232. set {_list} to "%{_arenas::*}%"
  233. replace all "<none>" with "" in {_list}
  234. replace all "and" with "," in {_list}
  235. send "{@tag} &7Completed arenas: &c%{_list}%"
  236. stop
  237. else:
  238. if player has permission "parkour.*" or "parkour.info.others":
  239. set {_target} to arg 2 parsed as player
  240. if {_target} is online:
  241. if {parkour::level::%{_target}%} is not set:
  242. set {parkour::level::%{_target}%} to 0
  243. if {parkour::xp::%{_target}%} is not set:
  244. set {parkour::xp::%{_target}%} to 0
  245. send "{@tag} &b%{_target}%'s &6statistics:"
  246. send "{@tag} &7Level - &c%{parkour::level::%{_target}%}% &7(&c%{parkour::xp::%{_target}%}% xp&7)"
  247. loop {parkour::arena::*}:
  248. if {parkour::arena::%loop-value%::done::%{_target}%} is true:
  249. set {_arena} to {parkour::arena::%loop-value%}
  250. set {_time} to {parkour::arena::%loop-value%::time::%{_target}%}
  251. set {_minutes} to rounded down {_time}/60
  252. set {_seconds} to {_time}-({_minutes}*60)
  253. if {_time} is not 0:
  254. add "&c%{_arena}% &7(&c%{_minutes}% min %{_seconds}% sec&7)" to {_arenas::*}
  255. set {_list} to "%{_arenas::*}%"
  256. replace all "<none>" with "" in {_list}
  257. replace all " and" with "," in {_list}
  258. send "{@tag} &7Completed arenas: &c%{_list}%"
  259. stop
  260. else:
  261. send "{@tag} &cThis player is not online."
  262. stop
  263. else:
  264. send "{@tag} &cYou do not have required permissions."
  265. stop
  266. if arg 1 is "toptime":
  267. if arg 2 is set:
  268. if {parkour::arena::%arg 2%} is set:
  269. send "{@tag} &6Arena &b%arg 2% &6toptime rank:"
  270. loop 10 times:
  271. if {toptime::arena::%arg 2%::%loop-number%::player} is set:
  272. set {_player} to {toptime::arena::%arg 2%::%loop-number%::player}
  273. set {_time} to {toptime::arena::%arg 2%::%loop-number%::time}
  274. send "{@tag} &7%loop-number%. &c%{_player}% &7- &c%{_time}% seconds"
  275. else:
  276. send "{@tag} &7%loop-number%."
  277. stop
  278. else:
  279. send "{@tag} &cArena &b%arg 2% &cis not exist."
  280. stop
  281. else:
  282. send "{@tag} &cCorrect usage: &7/parkour toptime <arena>"
  283. stop
  284. else:
  285. execute player command "p"
  286. stop
  287.  
  288.  
  289. #Poczatkowy etap
  290. on walking on {@startblock}:
  291. if block below event-block is command block:
  292. if {parkour::status::%player%} is true:
  293. if {parkour::counter::%player%} is false:
  294. set {parkour::counter::%player%} to true
  295. send "{@tag} &6Run! Good luck."
  296.  
  297. #Upadek z areny
  298. on walking on {@failblock}:
  299. if block below event-block is command block:
  300. if {parkour::status::%player%} is true:
  301. if {parkour::counter::%player%} is true:
  302. send "{@tag} &cYou fell out of the track!"
  303. loop {parkour::arena::*}:
  304. if {parkour::arena::%loop-value%::players::%player%} is set:
  305. set {_arena} to {parkour::arena::%loop-value%}
  306. teleport player to {parkour::arena::%{_arena}%::spawn}
  307. set {parkour::time::%player%} to 0
  308. set player's level to 0
  309.  
  310. #Koncowy etap
  311. on walking on {@endblock}:
  312. if block below event-block is command block:
  313. if {parkour::status::%player%} is true:
  314. if {parkour::counter::%player%} is true:
  315. loop {parkour::arena::*}:
  316. if {parkour::arena::%loop-value%::players::%player%} is set:
  317. set {_arena} to {parkour::arena::%loop-value%}
  318. clear {parkour::arena::%loop-value%::players::%player%}
  319. if {parkour::arena::%{_arena}%::done::%player%} is false:
  320. send "{@tag} &6You have completed the arena &b%{_arena}%&6!"
  321. set {parkour::arena::%{_arena}%::done::%player%} to true
  322. if {parkour::arena::%{_arena}%::xp} is set:
  323. set {_xp} to {parkour::arena::%{_arena}%::xp}
  324. add {_xp} to {parkour::xp::%player%}
  325. send "{@tag} &6You have gained &b%{_xp}% &6xp. You have &b%{parkour::xp::%player%}% &6xp now."
  326. set {_lvl} to rounded down {parkour::xp::%player%}/{@nextlevel}
  327. if {_lvl} is larger than {parkour::level::%player%}:
  328. send "{@tag} &6You have reached a new level! Your level is now &b%{_lvl}%&6."
  329. set {parkour::level::%player%} to {_lvl}
  330. if {parkour::arena::%{_arena}%::time::%player%} is 0:
  331. set {parkour::arena::%{_arena}%::time::%player%} to {parkour::time::%player%}
  332. else if {parkour::arena::%{_arena}%::time::%player%} is more than {parkour::time::%player%}:
  333. set {parkour::arena::%{_arena}%::time::%player%} to {parkour::time::%player%}
  334. if {toptime::arena::%{_arena}%::1::time} is not set:
  335. set {toptime::arena::%{_arena}%::1::time} to {parkour::arena::%{_arena}%::time::%player%}
  336. set {toptime::arena::%{_arena}%::1::player} to player
  337. else if {parkour::arena::%{_arena}%::time::%player%} is smaller than {toptime::arena::%{_arena}%::1::time}:
  338. set {toptime::arena::%{_arena}%::1::time} to {parkour::arena::%{_arena}%::time::%player%}
  339. set {toptime::arena::%{_arena}%::1::player} to player
  340. if {toptime::arena::%{_arena}%::2::player} is not player:
  341. set {toptime::arena::%{_arena}%::2::time} to {toptime::arena::%{_arena}%::1::time}
  342. set {toptime::arena::%{_arena}%::2::player} to {toptime::arena::%{_arena}%::1::player}
  343. else:
  344. if {parkour::arena::%{_arena}%::time::%player%} is smaller than {toptime::arena::%{_arena}%::2::time}:
  345. set {toptime::arena::%{_arena}%::2::time} to {toptime::arena::%{_arena}%::1::time}
  346. set {_rank} to 3
  347. set {_previousrank} to 2
  348. loop 8 times:
  349. if {parkour::arena::%{_arena}%::time::%player%} is smaller than {toptime::arena::%{_arena}%::%{_rank}%::time}:
  350. if {toptime::arena::%{_arena}%::%{_rank}%::player} is not player:
  351. set {toptime::arena::%{_arena}%::%{_rank}%::time} to {toptime::arena::%{_arena}%::%{_previousrank}%::time}
  352. set {toptime::arena::%{_arena}%::%{_rank}%::player} to {toptime::arena::%{_arena}%::%{_previousrank}%::player}
  353. add 1 to {_rank}
  354. add 1 to {_previousrank}
  355. set {_time} to {parkour::time::%player%}
  356. set {_minutes} to rounded down {_time}/60
  357. set {_seconds} to {_time}-({_minutes}*60)
  358. send "{@tag} &6Your time: &b%{_minutes}% &6minutes &b%{_seconds}% &6seconds."
  359. teleport player to {parkour::lastlocation::%player%}
  360. clear {parkour::lastlocation::%player%}
  361. set {parkour::status::%player%} to false
  362. set {parkour::counter::%player%} to false
  363. set {parkour::time::%player%} to 0
  364. set player's level to 0
  365.  
  366.  
  367. #Mierzenie czasu
  368. every 1 second:
  369. loop all players:
  370. if {parkour::status::%loop-player%} is true:
  371. if {parkour::counter::%loop-player%} is true:
  372. add 1 to {parkour::time::%loop-player%}
  373. set loop-player's level to {parkour::time::%loop-player%}
  374.  
  375. #Blokada komend
  376. on command:
  377. if {parkour::status::%player%} is true:
  378. if command is not "parkour" or "p":
  379. cancel event
  380. send "{@tag} &cThis command is not allowed on the arena."
  381. stop
  382.  
  383. #Tworzenie tabliczek
  384. on sign change:
  385. if line 1 is "[Parkour]":
  386. if player has permission "parkour.*" or "parkour.createsigns":
  387. if line 2 is "Join":
  388. if line 3 is not empty:
  389. set line 1 to "&1[Parkour]"
  390. set line 2 to "&3Join"
  391. if {parkour::arena::%line 3%} is set:
  392. set line 3 to "&a%line 3%"
  393. stop
  394. else:
  395. send "{@tag} &cArena &b%line 3% &cis not exist."
  396. cancel event
  397. stop
  398. else:
  399. send "{@tag} &cLine 3 cannot be empty."
  400. cancel event
  401. stop
  402. else if line 2 is "Leave":
  403. if line 3 is empty:
  404. set line 1 to "&1[Parkour]"
  405. set line 2 to "&3Leave"
  406. stop
  407. else:
  408. send "{@tag} &cLine 3 has to be empty."
  409. cancel event
  410. stop
  411. else:
  412. Send "{@tag} &cLine 2 cannot be other than &aJoin/Leave&c."
  413. cancel event
  414. stop
  415. else:
  416. send "{@tag} &cYou do not have required permissions."
  417. cancel event
  418. stop
  419. else:
  420. stop
  421.  
  422. #Dolaczanie przez tabliczki
  423. on rightclick on sign:
  424. if line 1 of clicked block is "&1[Parkour]":
  425. if player has permission "parkour.*" or "parkour.usesigns":
  426. if line 2 of clicked block is "&3Leave":
  427. execute player command "parkour leave"
  428. stop
  429. else if line 2 of clicked block is "&3Join":
  430. execute player command "parkour join %uncoloured line 3 of clicked block%"
  431. stop
  432. on hunger bar change:
  433. if {parkour::status::%player%} is true:
  434. cancel event
  435. on break of sign:
  436. if line 1 of event-block is "&1[Parkour]":
  437. send "{@tag} &cYou do not have required permissions."
  438. cancel event
  439. stop
Add Comment
Please, Sign In to add comment