Guest User

Superheroes 1.8 Fix

a guest
Sep 1st, 2015
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 29.08 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 "fall":
  12. if {Super.Fall} is true:
  13. delete {Super.Fall}
  14. loop all players:
  15. loop-player has permission "skript.superheroes":
  16. message "{@P} &e%command sender%&b: Fall Damage enabled!" to loop-player
  17. else:
  18. message "{@P} Fall Damage enabled!" to loop-player
  19. else:
  20. set {Super.Fall} to true
  21. loop all players:
  22. loop-player has permission "skript.superheroes":
  23. message "{@P} &e%command sender%&b: Fall Damage disabled!" to loop-player
  24. else:
  25. message "{@P} Fall Damage disabled!" to loop-player
  26. else if arg 1 is equal to "set":
  27. # Makes sure every team is a To6
  28. if {Teams::*} is not set:
  29. message "{@P} There are no teams!"
  30. stop trigger
  31. else:
  32. loop {Teams::*}:
  33. if (size of ({Team.%loop-value%::*})) is not equal to 6:
  34. message "{@P} &eTeam %loop-value% &bdoes not have 6 people!"
  35. stop trigger
  36.  
  37. # Removes all effects from previous superheroes
  38. loop {Super.SpeedOfTeam::*}:
  39. set {_SpeedPlayer} to ("%loop-value%" parsed as offlineplayer)
  40. if {_SpeedPlayer} is online:
  41. remove speed from {_SpeedPlayer}
  42. remove haste from {_SpeedPlayer}
  43. else:
  44. set {Speed.Schedule.RemoveEffect::%loop-value%} to true
  45. loop {Super.StrengthOfTeam::*}:
  46. set {_StrengthPlayer} to ("%loop-value%" parsed as offlineplayer)
  47. if {_StrengthPlayer} is online:
  48. remove strength from {_StrengthPlayer}
  49. else:
  50. set {Strength.Schedule.RemoveEffect::%loop-value%} to true
  51. loop {Super.HealthOfTeam::*}:
  52. set {_HealthPlayer} to ("%loop-value%" parsed as offlineplayer)
  53. if {_HealthPlayer} is online:
  54. set maximum health of {_HealthPlayer} to 10
  55. set health of {_HealthPlayer} to 10
  56. else:
  57. set {Health.Schedule.RemoveEffect::%loop-value%} to true
  58. loop {Super.JumpOfTeam::*}:
  59. set {_JumpPlayer} to ("%loop-value%" parsed as offlineplayer)
  60. if {_JumpPlayer} is online:
  61. remove jump boost from {_JumpPlayer}
  62. remove saturation from {_JumpPlayer}
  63. remove haste from {_JumpPlayer}
  64. else:
  65. set {Jump.Schedule.RemoveEffect::%loop-value%} to true
  66. loop {Super.InvisOfTeam::*}:
  67. set {_InvisPlayer} to ("%loop-value%" parsed as offlineplayer)
  68. if {_InvisPlayer} is online:
  69. remove invisibility from {_InvisPlayer}
  70. remove water breathing from {_InvisPlayer}
  71. else:
  72. set {Invis.Schedule.RemoveEffect::%loop-value%} to true
  73. loop {Super.ResOfTeam::*}:
  74. set {_ResPlayer} to ("%loop-value%" parsed as offlineplayer)
  75. if {_ResPlayer} is online:
  76. remove resistance from {_ResPlayer}
  77. remove fire resistance from {_ResPlayer}
  78. else:
  79. set {Res.Schedule.RemoveEffect::%loop-value%} to true
  80.  
  81. # Deletes the superheroes completely
  82. delete {Super.SpeedOfTeam::*}
  83. delete {Super.IsSpeed::*}
  84. delete {Super.StrengthOfTeam::*}
  85. delete {Super.IsStrength::*}
  86. delete {Super.HealthOfTeam::*}
  87. delete {Super.IsHealth::*}
  88. delete {Super.JumpOfTeam::*}
  89. delete {Super.IsJump::*}
  90. delete {Super.InvisOfTeam::*}
  91. delete {Super.IsInvis::*}
  92. delete {Super.ResOfTeam::*}
  93. delete {Super.IsRes::*}
  94.  
  95. # Sets new superheroes
  96. loop all players:
  97. loop-player has permission "skript.superheroes":
  98. message "{@P} &e%command sender%&b: Setting superheroes!" to loop-player
  99. else:
  100. message "{@P} Setting superheroes!" to loop-player
  101. loop {Teams::*}:
  102. # Creates replicas of team, so it can choose different superheroes
  103. set {_Temp.%loop-value%::*} to {Team.%loop-value%::*}
  104.  
  105. # Picks a random speed hero
  106. set {_Speed} to (random element out of {_Temp.%loop-value%::*})
  107. set {Super.IsSpeed::%{_Speed}%} to loop-value
  108. set {Super.SpeedOfTeam::%loop-value%} to {_Speed}
  109. remove {_Speed} from {_Temp.%loop-value%::*}
  110.  
  111. # Picks a random strength hero
  112. set {_Strength} to (random element out of {_Temp.%loop-value%::*})
  113. set {Super.IsStrength::%{_Strength}%} to loop-value
  114. set {Super.StrengthOfTeam::%loop-value%} to {_Strength}
  115. remove {_Strength} from {_Temp.%loop-value%::*}
  116.  
  117. # Picks a random health hero
  118. set {_Health} to (random element out of {_Temp.%loop-value%::*})
  119. set {Super.IsHealth::%{_Health}%} to loop-value
  120. set {Super.HealthOfTeam::%loop-value%} to {_Health}
  121. remove {_Health} from {_Temp.%loop-value%::*}
  122.  
  123. # Picks a random jump hero
  124. set {_Jump} to (random element out of {_Temp.%loop-value%::*})
  125. set {Super.IsJump::%{_Jump}%} to loop-value
  126. set {Super.JumpOfTeam::%loop-value%} to {_Jump}
  127. remove {_Jump} from {_Temp.%loop-value%::*}
  128.  
  129. # Picks a random invis hero
  130. set {_Invis} to (random element out of {_Temp.%loop-value%::*})
  131. set {Super.IsInvis::%{_Invis}%} to loop-value
  132. set {Super.InvisOfTeam::%loop-value%} to {_Invis}
  133. remove {_Invis} from {_Temp.%loop-value%::*}
  134.  
  135. # Picks a random res hero
  136. set {_Res} to (random element out of {_Temp.%loop-value%::*})
  137. set {Super.IsRes::%{_Res}%} to loop-value
  138. set {Super.ResOfTeam::%loop-value%} to {_Res}
  139. remove {_Res} from {_Temp.%loop-value%::*}
  140.  
  141. # Messages the team their heroes
  142. loop {Team.%loop-value%::*}:
  143. set {_Player} to ("%loop-value-2%" parsed as offlineplayer)
  144. if {_Player} is online:
  145. message "{@P} Speed: &e%{_Speed}%" to {_Player}
  146. message "{@P} Strength: &e%{_Strength}%" to {_Player}
  147. message "{@P} Health: &e%{_Health}%" to {_Player}
  148. message "{@P} Jump: &e%{_Jump}%" to {_Player}
  149. message "{@P} Invis: &e%{_Invis}%" to {_Player}
  150. message "{@P} Res: &e%{_Res}%" to {_Player}
  151.  
  152.  
  153. else if arg 1 is equal to "FFA":
  154.  
  155. # Removes all effects from previous superheroes
  156. loop {Super.SpeedOfTeam::*}:
  157. set {_SpeedPlayer} to ("%loop-value%" parsed as offlineplayer)
  158. if {_SpeedPlayer} is online:
  159. remove speed from {_SpeedPlayer}
  160. remove haste from {_SpeedPlayer}
  161. else:
  162. set {Speed.Schedule.RemoveEffect::%loop-value%} to true
  163. loop {Super.StrengthOfTeam::*}:
  164. set {_StrengthPlayer} to ("%loop-value%" parsed as offlineplayer)
  165. if {_StrengthPlayer} is online:
  166. remove strength from {_StrengthPlayer}
  167. else:
  168. set {Strength.Schedule.RemoveEffect::%loop-value%} to true
  169. loop {Super.HealthOfTeam::*}:
  170. set {_HealthPlayer} to ("%loop-value%" parsed as offlineplayer)
  171. if {_HealthPlayer} is online:
  172. set maximum health of {_HealthPlayer} to 10
  173. set health of {_HealthPlayer} to 10
  174. else:
  175. set {Health.Schedule.RemoveEffect::%loop-value%} to true
  176. loop {Super.JumpOfTeam::*}:
  177. set {_JumpPlayer} to ("%loop-value%" parsed as offlineplayer)
  178. if {_JumpPlayer} is online:
  179. remove jump boost from {_JumpPlayer}
  180. remove saturation from {_JumpPlayer}
  181. remove haste from {_JumpPlayer}
  182. else:
  183. set {Jump.Schedule.RemoveEffect::%loop-value%} to true
  184. loop {Super.InvisOfTeam::*}:
  185. set {_InvisPlayer} to ("%loop-value%" parsed as offlineplayer)
  186. if {_InvisPlayer} is online:
  187. remove invisibility from {_InvisPlayer}
  188. remove water breathing from {_InvisPlayer}
  189. else:
  190. set {Invis.Schedule.RemoveEffect::%loop-value%} to true
  191. loop {Super.ResOfTeam::*}:
  192. set {_ResPlayer} to ("%loop-value%" parsed as offlineplayer)
  193. if {_ResPlayer} is online:
  194. remove resistance from {_ResPlayer}
  195. remove fire resistance from {_ResPlayer}
  196. else:
  197. set {Res.Schedule.RemoveEffect::%loop-value%} to true
  198.  
  199. # Deletes the superheroes completely
  200. delete {Super.SpeedOfTeam::*}
  201. delete {Super.IsSpeed::*}
  202. delete {Super.StrengthOfTeam::*}
  203. delete {Super.IsStrength::*}
  204. delete {Super.HealthOfTeam::*}
  205. delete {Super.IsHealth::*}
  206. delete {Super.JumpOfTeam::*}
  207. delete {Super.IsJump::*}
  208. delete {Super.InvisOfTeam::*}
  209. delete {Super.IsInvis::*}
  210. delete {Super.ResOfTeam::*}
  211. delete {Super.IsRes::*}
  212.  
  213. # Sets new superheroes
  214. loop all players:
  215. loop-player has permission "skript.superheroes":
  216. message "{@P} &e%command sender%&b: Setting superheroes!" to loop-player
  217. else:
  218. message "{@P} Setting superheroes!" to loop-player
  219. loop players:
  220. # Creates replicas of team, so it can choose different superheroes
  221. add loop-player to {SuperHeroes::*}
  222.  
  223. loop (size of (all players)) times:
  224. # Picks a random speed hero
  225. set {_Speed} to (random element out of {SuperHeroes::*})
  226. set {Super.IsSpeed::%{_Speed}%} to {_Speed}
  227. set {Super.SpeedOfTeam::%{_Speed}%} to {_Speed}
  228. apply speed 2 to {_Speed} for 999 days
  229. apply haste 2 to {_Speed} for 999 days
  230. remove {_Speed} from {SuperHeroes::*}
  231.  
  232.  
  233. # Picks a random strength hero
  234. set {_Strength} to (random element out of {SuperHeroes::*})
  235. set {Super.IsStrength::%{_Strength}%} to {_Strength}
  236. set {Super.StrengthOfTeam::%{_Strength}%} to {_Strength}
  237. apply strength 1 to {_Strength} for 999 days
  238. remove {_Strength} from {SuperHeroes::*}
  239.  
  240. # Picks a random health hero
  241. set {_Health} to (random element out of {SuperHeroes::*})
  242. set {Super.IsHealth::%{_Health}%} to {_Health}
  243. set {Super.HealthOfTeam::%{_Health}%} to {_Health}
  244. set maximum health of {_Health} to 20
  245. set health of {_Health} to 20
  246. remove {_Health} from {SuperHeroes::*}
  247.  
  248. # Picks a random jump hero
  249. set {_Jump} to (random element out of {SuperHeroes::*})
  250. set {Super.IsJump::%{_Jump}%} to {_Jump}
  251. set {Super.JumpOfTeam::%{_Jump}%} to {_Jump}
  252. apply jump boost 4 to {_Jump} for 999 days
  253. apply saturation 10 to {_Jump} for 999 days
  254. apply haste 2 to {_Jump} for 999 days
  255. remove {_Jump} from {SuperHeroes::*}
  256.  
  257. # Picks a random invis hero
  258. set {_Invis} to (random element out of {SuperHeroes::*})
  259. set {Super.IsInvis::%{_Invis}%} to {_Invis}
  260. set {Super.InvisOfTeam::%{_Invis}%} to {_Invis}
  261. apply invisibility 2 to {_Invis} for 999 days
  262. apply water breathing 1 to {_Invis} for 999 days
  263. remove {_Invis} from {SuperHeroes::*}
  264.  
  265. # Picks a random res hero
  266. set {_Res} to (random element out of {SuperHeroes::*})
  267. set {Super.IsRes::%{_Res}%} to {_Res}
  268. set {Super.ResOfTeam::%{_Res}%} to {_Res}
  269. apply resistance 2 to {_Res} for 999 days
  270. apply fire resistance 1 to {_Res} for 999 days
  271. remove {_Res} from {SuperHeroes::*}
  272.  
  273. loop {Super.SpeedOfTeam::*}:
  274. set {_Speed} to ("%loop-value%" parsed as offlineplayer)
  275. message "{@P} Your super power is Speed!" to {_Speed}
  276. loop {Super.StrengthOfTeam::*}:
  277. set {_Strength} to ("%loop-value%" parsed as offlineplayer)
  278. message "{@P} Your super power is Strength!" to {_Strength}
  279. loop {Super.HealthOfTeam::*}:
  280. set {_Health} to ("%loop-value%" parsed as offlineplayer)
  281. message "{@P} Your super power is Health!" to {_Health}
  282. loop {Super.JumpOfTeam::*}:
  283. set {_Jump} to ("%loop-value%" parsed as offlineplayer)
  284. message "{@P} Your super power is Jump!" to {_Jump}
  285. loop {Super.InvisOfTeam::*}:
  286. set {_Invis} to ("%loop-value%" parsed as offlineplayer)
  287. message "{@P} Your super power is Invisibility!" to {_Invis}
  288. loop {Super.ResOfTeam::*}:
  289. set {_Res} to ("%loop-value%" parsed as offlineplayer)
  290. message "{@P} Your super power is Resistance!" to {_Res}
  291.  
  292. else if arg 1 is equal to "apply":
  293. loop {Super.SpeedOfTeam::*}:
  294. set {_Speed} to ("%loop-value%" parsed as offlineplayer)
  295. if {_Speed} is online:
  296. apply speed 2 to {_Speed} for 999 days
  297. apply haste 2 to {_Speed} for 999 days
  298. else:
  299. set {Super.Speed.Scheduler::%{_Speed}%} to true
  300. loop {Super.StrengthOfTeam::*}:
  301. set {_Strength} to ("%loop-value%" parsed as offlineplayer)
  302. if {_Strength} is online:
  303. apply strength 1 to {_Strength} for 999 days
  304. else:
  305. set {Super.Strength.Scheduler::%{_Strength}%} to true
  306. loop {Super.HealthOfTeam::*}:
  307. set {_Health} to ("%loop-value%" parsed as offlineplayer)
  308. if {_Health} is online:
  309. set maximum health of {_Health} to 20
  310. else:
  311. set {Super.Health.Scheduler::%{_Health}%} to true
  312. loop {Super.JumpOfTeam::*}:
  313. set {_Jump} to ("%loop-value%" parsed as offlineplayer)
  314. if {_Jump} is online:
  315. apply jump boost 4 to {_Jump} for 999 days
  316. apply saturation 10 to {_Jump} for 999 days
  317. apply haste 2 to {_Jump} for 999 days
  318. else:
  319. set {Super.Jump.Scheduler::%{_Jump}%} to true
  320. loop {Super.InvisOfTeam::*}:
  321. set {_Invis} to ("%loop-value%" parsed as offlineplayer)
  322. if {_Invis} is online:
  323. apply invisibility 2 to {_Invis} for 999 days
  324. apply water breathing 1 to {_Invis} for 999 days
  325. else:
  326. set {Super.Invis.Scheduler::%{_Invis}%} to true
  327. loop {Super.ResOfTeam::*}:
  328. set {_Res} to ("%loop-value%" parsed as offlineplayer)
  329. if {_Res} is online:
  330. apply resistance 2 to {_Res} for 999 days
  331. apply fire resistance 1 to {_Res} for 999 days
  332. else:
  333. set {Super.Res.Scheduler::%{_Res}%} to true
  334.  
  335. loop all players:
  336. loop-player has permission "skript.superheroes":
  337. message "{@P} &e%command sender%&b: Applied Effects!" to loop-player
  338. else:
  339. message "{@P} Applied Effects!" to loop-player
  340. else if arg 1 is equal to "reset":
  341. # Removes all effects from previous superheroes
  342. loop {Super.SpeedOfTeam::*}:
  343. set {_SpeedPlayer} to ("%loop-value%" parsed as offlineplayer)
  344. if {_SpeedPlayer} is online:
  345. remove speed from {_SpeedPlayer}
  346. else:
  347. set {Speed.Schedule.RemoveEffect::%loop-value%} to true
  348. loop {Super.StrengthOfTeam::*}:
  349. set {_StrengthPlayer} to ("%loop-value%" parsed as offlineplayer)
  350. if {_StrengthPlayer} is online:
  351. remove strength from {_StrengthPlayer}
  352. else:
  353. set {Strength.Schedule.RemoveEffect::%loop-value%} to true
  354. loop {Super.HealthOfTeam::*}:
  355. set {_HealthPlayer} to ("%loop-value%" parsed as offlineplayer)
  356. if {_HealthPlayer} is online:
  357. set maximum health of {_HealthPlayer} to 10
  358. set health of {_HealthPlayer} to 10
  359. else:
  360. set {Health.Schedule.RemoveEffect::%loop-value%} to true
  361. loop {Super.JumpOfTeam::*}:
  362. set {_JumpPlayer} to ("%loop-value%" parsed as offlineplayer)
  363. if {_JumpPlayer} is online:
  364. remove jump boost from {_JumpPlayer}
  365. else:
  366. set {Jump.Schedule.RemoveEffect::%loop-value%} to true
  367. loop {Super.InvisOfTeam::*}:
  368. set {_InvisPlayer} to ("%loop-value%" parsed as offlineplayer)
  369. if {_InvisPlayer} is online:
  370. remove invisibility from {_InvisPlayer}
  371. else:
  372. set {Invis.Schedule.RemoveEffect::%loop-value%} to true
  373. loop {Super.ResOfTeam::*}:
  374. set {_ResPlayer} to ("%loop-value%" parsed as offlineplayer)
  375. if {_ResPlayer} is online:
  376. remove resistance from {_ResPlayer}
  377. else:
  378. set {Res.Schedule.RemoveEffect::%loop-value%} to true
  379. loop all players:
  380. loop-player has permission "skript.superheroes":
  381. message "{@P} &e%command sender%&b: Reset superheroes!" to loop-player
  382. else:
  383. message "{@P} Reset superheroes!" to loop-player
  384. execute console command "/effect %loop-player% reset"
  385. else:
  386. message "{@P} {@IS}"
  387.  
  388. on death of player:
  389. {Super.Fall} is true
  390. execute console command "/effect %victim% clear"
  391. set maximum health of player to 10
  392.  
  393.  
  394. on login:
  395. if {Super.Speed.Scheduler::%player%} is true:
  396. apply speed 2 to the player for 999 days
  397. apply haste 2 to the player for 999 days
  398. delete {Super.Speed.Scheduler::%player%}
  399. else if {Super.Strength.Scheduler::%player%} is true:
  400. apply strength 1 to the player for 999 days
  401. delete {Super.Strength.Scheduler::%player%}
  402. else if {Super.Health.Scheduler::%player%} is true:
  403. set maximum health of player to 20
  404. set health of player to 20
  405. delete {Super.Health.Scheduler::%player%}
  406. else if {Super.Jump.Scheduler::%player%} is true:
  407. apply jump boost 4 to the player for 999 days
  408. apply saturation 10 to the player for 999 days
  409. apply haste 2 to the player for 999 days
  410. delete {Super.Jump.Scheduler::%player%}
  411. else if {Super.Invis.Scheduler::%player%} is true:
  412. apply invisibility 2 to the player for 999 days
  413. apply water breathing 1 to the player for 999 days
  414. delete {Super.Invis.Scheduler::%player%}
  415. else if {Super.Res.Scheduler::%player%} is true:
  416. apply resistance 2 to the player for 999 days
  417. apply fire resistance 1 to the player for 999 days
  418. delete {Super.Res.Scheduler::%player%}
  419. if {Speed.Schedule.RemoveEffect::%player%} is true:
  420. remove speed from the player
  421. remove haste from the player
  422. delete {Speed.Schedule.RemoveEffect::%player%}
  423. if {Strength.Schedule.RemoveEffect::%player%} is true:
  424. remove strength from the player
  425. delete {Strength.Schedule.RemoveEffect::%player%}
  426. if {Health.Schedule.RemoveEffect::%player%} is true:
  427. set maximum health of player to 10
  428. set health of player to 10
  429. delete {Health.Schedule.RemoveEffect::%player%}
  430. if {Jump.Schedule.RemoveEffect::%player%} is true:
  431. remove jump boost from the player
  432. remove saturation from the player
  433. remove haste from the player
  434. delete {Jump.Schedule.RemoveEffect::%player%}
  435. if {Invis.Schedule.RemoveEffect::%player%} is true:
  436. remove invisibility from the player
  437. remove water breathing from the player
  438. delete {Invis.Schedule.RemoveEffect::%player%}
  439. if {Res.Schedule.RemoveEffect::%player%} is true:
  440. remove resistance from the player
  441. remove fire resistance from the player
  442. delete {Res.Schedule.RemoveEffect::%player%}
  443.  
  444. command /effects [<text>]:
  445. permission: skript.superheroes
  446. trigger:
  447. loop all players:
  448. execute console command "/effect %loop-player% clear"
  449. message "{@P} Cleared effects from all players!" to command sender
  450.  
  451. on damage:
  452. {Super.Fall} is true
  453. damage cause is fall
  454. cancel the event
  455.  
  456. on consume of milk bucket:
  457. {Super.Fall} is true
  458. cancel the event
  459. remove milk bucket from inventory of player
  460. give player 1 milk bucket
Advertisement
Add Comment
Please, Sign In to add comment