Advertisement
Guest User

Superheroes+ (Only no fall damage for jump boost)

a guest
Sep 18th, 2015
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.68 KB | None | 0 0
  1. options:
  2. P : &8[&aSuperheroes&8]&b
  3. IS : &e/superheroes <fall/set/apply/reset>
  4.  
  5. command /superheroes [<text>]:
  6. permission: skript.superheroes
  7. aliases: /super
  8. trigger:
  9. if arg 1 is not set:
  10. message "{@P}{@IS}"
  11. else if arg 1 is equal to "set":
  12. # Makes sure every team is a To6
  13. if {Teams::*} is not set:
  14. message "{@P} There are no teams!"
  15. stop trigger
  16. else:
  17. loop {Teams::*}:
  18. if (size of ({Team.%loop-value%::*})) is not equal to 6:
  19. message "{@P} &eTeam %loop-value% &9does not have 6 people!"
  20. stop trigger
  21.  
  22. # Removes all effects from previous superheroes
  23. loop {Super.SpeedOfTeam::*}:
  24. set {_SpeedPlayer} to ("%loop-value%" parsed as offlineplayer)
  25. if {_SpeedPlayer} is online:
  26. remove speed from {_SpeedPlayer}
  27. remove haste from {_SpeedPlayer}
  28. else:
  29. set {Speed.Schedule.RemoveEffect::%loop-value%} to true
  30. loop {Super.StrengthOfTeam::*}:
  31. set {_StrengthPlayer} to ("%loop-value%" parsed as offlineplayer)
  32. if {_StrengthPlayer} is online:
  33. remove strength from {_StrengthPlayer}
  34. else:
  35. set {Strength.Schedule.RemoveEffect::%loop-value%} to true
  36. loop {Super.HealthOfTeam::*}:
  37. set {_HealthPlayer} to ("%loop-value%" parsed as offlineplayer)
  38. if {_HealthPlayer} is online:
  39. set maximum health of {_HealthPlayer} to 10
  40. set health of {_HealthPlayer} to 10
  41. else:
  42. set {Health.Schedule.RemoveEffect::%loop-value%} to true
  43. loop {Super.JumpOfTeam::*}:
  44. set {_JumpPlayer} to ("%loop-value%" parsed as offlineplayer)
  45. if {_JumpPlayer} is online:
  46. remove jump boost from {_JumpPlayer}
  47. remove haste from {_JumpPlayer}
  48. remove saturation from {_JumpPlayer}
  49. else:
  50. set {Jump.Schedule.RemoveEffect::%loop-value%} to true
  51. loop {Super.InvisOfTeam::*}:
  52. set {_InvisPlayer} to ("%loop-value%" parsed as offlineplayer)
  53. if {_InvisPlayer} is online:
  54. remove invisibility from {_InvisPlayer}
  55. remove water breathing from {_InvisPlayer}
  56. else:
  57. set {Invis.Schedule.RemoveEffect::%loop-value%} to true
  58. loop {Super.ResOfTeam::*}:
  59. set {_ResPlayer} to ("%loop-value%" parsed as offlineplayer)
  60. if {_ResPlayer} is online:
  61. remove resistance from {_ResPlayer}
  62. remove fire resistance from {_ResPlayer}
  63. else:
  64. set {Res.Schedule.RemoveEffect::%loop-value%} to true
  65.  
  66. # Deletes the superheroes completely
  67. delete {Super.SpeedOfTeam::*}
  68. delete {Super.IsSpeed::*}
  69. delete {Super.StrengthOfTeam::*}
  70. delete {Super.IsStrength::*}
  71. delete {Super.HealthOfTeam::*}
  72. delete {Super.IsHealth::*}
  73. delete {Super.JumpOfTeam::*}
  74. delete {Super.IsJump::*}
  75. delete {Super.InvisOfTeam::*}
  76. delete {Super.IsInvis::*}
  77. delete {Super.ResOfTeam::*}
  78. delete {Super.IsRes::*}
  79. delete {Fall::*}
  80. delete {Super.Fall}
  81.  
  82. # Sets new superheroes
  83. broadcast "{@P} Setting Superheroes!"
  84. loop {Teams::*}:
  85. # Creates replicas of team, so it can choose different superheroes
  86. set {_Temp.%loop-value%::*} to {Team.%loop-value%::*}
  87.  
  88. # Picks a random speed hero
  89. set {_Speed} to (random element out of {_Temp.%loop-value%::*})
  90. set {Super.IsSpeed::%{_Speed}%} to loop-value
  91. set {Super.SpeedOfTeam::%loop-value%} to {_Speed}
  92. remove {_Speed} from {_Temp.%loop-value%::*}
  93.  
  94. # Picks a random strength hero
  95. set {_Strength} to (random element out of {_Temp.%loop-value%::*})
  96. set {Super.IsStrength::%{_Strength}%} to loop-value
  97. set {Super.StrengthOfTeam::%loop-value%} to {_Strength}
  98. remove {_Strength} from {_Temp.%loop-value%::*}
  99.  
  100. # Picks a random health hero
  101. set {_Health} to (random element out of {_Temp.%loop-value%::*})
  102. set {Super.IsHealth::%{_Health}%} to loop-value
  103. set {Super.HealthOfTeam::%loop-value%} to {_Health}
  104. remove {_Health} from {_Temp.%loop-value%::*}
  105.  
  106. # Picks a random jump hero
  107. set {_Jump} to (random element out of {_Temp.%loop-value%::*})
  108. set {Super.IsJump::%{_Jump}%} to loop-value
  109. set {Super.JumpOfTeam::%loop-value%} to {_Jump}
  110. remove {_Jump} from {_Temp.%loop-value%::*}
  111.  
  112. # Picks a random invis hero
  113. set {_Invis} to (random element out of {_Temp.%loop-value%::*})
  114. set {Super.IsInvis::%{_Invis}%} to loop-value
  115. set {Super.InvisOfTeam::%loop-value%} to {_Invis}
  116. remove {_Invis} from {_Temp.%loop-value%::*}
  117.  
  118. # Picks a random res hero
  119. set {_Res} to (random element out of {_Temp.%loop-value%::*})
  120. set {Super.IsRes::%{_Res}%} to loop-value
  121. set {Super.ResOfTeam::%loop-value%} to {_Res}
  122. remove {_Res} from {_Temp.%loop-value%::*}
  123.  
  124. # Messages the team their heroes
  125. loop {Team.%loop-value%::*}:
  126. set {_Player} to ("%loop-value-2%" parsed as offlineplayer)
  127. if {_Player} is online:
  128. message "&8[&aSuperheroes&8]&9 Speed: &e%{_Speed}%" to {_Player}
  129. message "&8[&aSuperheroes&8]&9 Strength: &e%{_Strength}%" to {_Player}
  130. message "&8[&aSuperheroes&8]&9 Health: &e%{_Health}%" to {_Player}
  131. message "&8[&aSuperheroes&8]&9 Jump: &e%{_Jump}%" to {_Player}
  132. message "&8[&aSuperheroes&8]&9 Invis: &e%{_Invis}%" to {_Player}
  133. message "&8[&aSuperheroes&8]&9 Res: &e%{_Res}%" to {_Player}
  134.  
  135. else if arg 1 is equal to "apply":
  136. loop {Teams::*}:
  137. set {_Speed} to ({Super.SpeedOfTeam::%loop-value%} parsed as offlineplayer)
  138. set {_Strength} to ({Super.StrengthOfTeam::%loop-value%} parsed as offlineplayer)
  139. set {_Health} to ({Super.HealthOfTeam::%loop-value%} parsed as offlineplayer)
  140. set {_Jump} to ({Super.JumpOfTeam::%loop-value%} parsed as offlineplayer)
  141. set {_Invis} to ({Super.InvisOfTeam::%loop-value%} parsed as offlineplayer)
  142. set {_Res} to ({Super.ResOfTeam::%loop-value%} parsed as offlineplayer)
  143.  
  144. if {_Speed} is online:
  145. apply speed 2 to {_Speed} for 999 days
  146. apply haste 2 to {_Speed} for 999 days
  147. else:
  148. set {Super.Speed.Scheduler::%{_Speed}%} to true
  149.  
  150. if {_Strength} is online:
  151. apply strength 1 to {_Strength} for 999 days
  152. else:
  153. set {Super.Strength.Scheduler::%{_Strength}%} to true
  154.  
  155. if {_Health} is online:
  156. set maximum health of {_Health} to 20
  157. set health of {_Health} to 20
  158. else:
  159. set {Super.Health.Scheduler::%{_Health}%} to true
  160.  
  161. if {_Jump} is online:
  162. apply jump boost 4 to {_Jump} for 999 days
  163. apply saturation 10 to {_Jump} for 999 days
  164. apply haste 2 to {_Jump} for 999 days
  165. else:
  166. set {Super.Jump.Scheduler::%{_Jump}%} to true
  167.  
  168. if {_Invis} is online:
  169. apply invisibility 1 to {_Invis} for 999 days
  170. apply water breathing 1 to {_Invis} for 999 days
  171. else:
  172. set {Super.Invis.Scheduler::%{_Invis}%} to true
  173.  
  174. if {_Res} is online:
  175. apply resistance 2 to {_Res} for 999 days
  176. apply fire resistance 1 to {_Res} for 999 days
  177. else:
  178. set {Super.Res.Scheduler::%{_Res}%} to true
  179.  
  180. broadcast "{@P} Applied Effects!"
  181.  
  182. loop {Super.JumpOfTeam::*}:
  183. set {Fall::%loop-value%} to true
  184.  
  185. set {Super.Fall} to true
  186.  
  187. else if arg 1 is equal to "reset":
  188. # Removes all effects from previous superheroes
  189. loop {Super.SpeedOfTeam::*}:
  190. set {_SpeedPlayer} to ("%loop-value%" parsed as offlineplayer)
  191. if {_SpeedPlayer} is online:
  192. remove speed from {_SpeedPlayer}
  193. remove haste from {_SpeedPlayer}
  194. else:
  195. set {Speed.Schedule.RemoveEffect::%loop-value%} to true
  196. loop {Super.StrengthOfTeam::*}:
  197. set {_StrengthPlayer} to ("%loop-value%" parsed as offlineplayer)
  198. if {_StrengthPlayer} is online:
  199. remove strength from {_StrengthPlayer}
  200. else:
  201. set {Strength.Schedule.RemoveEffect::%loop-value%} to true
  202. loop {Super.HealthOfTeam::*}:
  203. set {_HealthPlayer} to ("%loop-value%" parsed as offlineplayer)
  204. if {_HealthPlayer} is online:
  205. set maximum health of {_HealthPlayer} to 10
  206. set health of {_HealthPlayer} to 10
  207. else:
  208. set {Health.Schedule.RemoveEffect::%loop-value%} to true
  209. loop {Super.JumpOfTeam::*}:
  210. set {_JumpPlayer} to ("%loop-value%" parsed as offlineplayer)
  211. if {_JumpPlayer} is online:
  212. remove jump boost from {_JumpPlayer}
  213. remove haste from {_JumpPlayer}
  214. remove saturation from {_JumpPlayer}
  215. else:
  216. set {Jump.Schedule.RemoveEffect::%loop-value%} to true
  217. loop {Super.InvisOfTeam::*}:
  218. set {_InvisPlayer} to ("%loop-value%" parsed as offlineplayer)
  219. if {_InvisPlayer} is online:
  220. remove invisibility from {_InvisPlayer}
  221. remove water breathing from {_InvisPlayer}
  222. else:
  223. set {Invis.Schedule.RemoveEffect::%loop-value%} to true
  224. loop {Super.ResOfTeam::*}:
  225. set {_ResPlayer} to ("%loop-value%" parsed as offlineplayer)
  226. if {_ResPlayer} is online:
  227. remove resistance from {_ResPlayer}
  228. remove fire resistance from {_ResPlayer}
  229. else:
  230. set {Res.Schedule.RemoveEffect::%loop-value%} to true
  231. loop all players:
  232. execute console command "/effect %loop-player% reset"
  233.  
  234. broadcast "{@P} Reset Superheroes!"
  235.  
  236. delete {Super.Fall}
  237. delete {Fall::*}
  238. else:
  239. message "{@P}{@IS}"
  240.  
  241. on death of player:
  242. {Super.Fall} is true
  243. execute console command "/effect %victim% clear"
  244. set maximum health of player to 10
  245.  
  246.  
  247. on login:
  248. if {Super.Speed.Scheduler::%player%} is true:
  249. apply speed 2 to the player for 999 days
  250. apply haste 2 to the player for 999 days
  251. delete {Super.Speed.Scheduler::%player%}
  252. else if {Super.Strength.Scheduler::%player%} is true:
  253. apply strength 1 to the player for 999 days
  254. delete {Super.Strength.Scheduler::%player%}
  255. else if {Super.Health.Scheduler::%player%} is true:
  256. set maximum health of player to 20
  257. set health of player to 20
  258. delete {Super.Health.Scheduler::%player%}
  259. else if {Super.Jump.Scheduler::%player%} is true:
  260. apply jump boost 4 to player for 999 days
  261. apply haste 2 to player for 999 days
  262. apply saturation 10 to player for 999 days
  263. delete {Super.Jump.Scheduler::%player%}
  264. else if {Super.Invis.Scheduler::%player%} is true:
  265. apply invisibility 1 to player for 999 days
  266. apply water breathing 1 to player for 999 days
  267. delete {Super.Invis.Scheduler::%player%}
  268. else if {Super.Res.Scheduler::%player%} is true:
  269. apply resistance 2 to the player for 999 days
  270. apply fire resistance 1 to the player for 999 days
  271. delete {Super.Res.Scheduler::%player%}
  272.  
  273. on login:
  274. if {Speed.Schedule.RemoveEffect::%player%} is true:
  275. remove speed from the player
  276. remove haste from the player
  277. delete {Speed.Schedule.RemoveEffect::%player%}
  278. if {Strength.Schedule.RemoveEffect::%player%} is true:
  279. remove strength from the player
  280. delete {Strength.Schedule.RemoveEffect::%player%}
  281. if {Health.Schedule.RemoveEffect::%player%} is true:
  282. set maximum health of player to 10
  283. set health of player to 10
  284. delete {Health.Schedule.RemoveEffect::%player%}
  285. if {Jump.Schedule.RemoveEffect::%player%} is true:
  286. remove jump boost from the player
  287. remove haste from the player
  288. remove saturation from the player
  289. delete {Jump.Schedule.RemoveEffect::%player%}
  290. if {Invis.Schedule.RemoveEffect::%player%} is true:
  291. remove invisibility from the player
  292. remove water breathing from the player
  293. delete {Invis.Schedule.RemoveEffect::%player%}
  294. if {Res.Schedule.RemoveEffect::%player%} is true:
  295. remove resistance from the player
  296. remove fire resistance from the player
  297. delete {Res.Schedule.RemoveEffect::%player%}
  298.  
  299. on damage:
  300. {Fall::%victim%} is true
  301. damage cause is fall
  302. cancel the event
  303.  
  304. on consume of milk bucket:
  305. {Super.Fall} is true
  306. cancel the event
  307. remove milk bucket from inventory of player
  308. give player 1 milk bucket
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement