akon1248

Pikmin Survival (Request by Neko_Sakuya)

May 24th, 2019
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.30 KB | None | 0 0
  1. options:
  2. owneruuid: b4c150c5-a5f0-4cdc-a68c-e47b627d6c44
  3. on load:
  4. set {pikmintypes::*} to "red", "blue", "yellow", "white", "winged", "rock" and "purple"
  5. on skript start:
  6. clear {players::*}
  7. delete {lastlouie}
  8. command /orima-:
  9. trigger:
  10. {players::*} do not contain player
  11. {pikmin::%UUID of player%} is set
  12. loop all players:
  13. {players::%UUID of loop-player%} is set
  14. add location of loop-value to {_locs::*}
  15. teleport player to random element out of {_locs::*}
  16. on join:
  17. if UUID of player is "{@owneruuid}":
  18. set {players::%UUID of player%} to player
  19. else:
  20. if player do not have compass:
  21. give player compass
  22. if {pikmin::%UUID of player%} is not set:
  23. set {pikmin::%UUID of player%} to random element out of {pikmintypes::*}
  24. if {pikmin::%UUID of player%} is "yellow":
  25. set max health of player to 12
  26. set health of player to 12
  27. execute console command "execute %player% ~ ~ ~ effect @s 10 1000000 2 true"
  28. if {pikmin::%UUID of player%} is "rock":
  29. set max health of player to 15
  30. set health of player to 15
  31. if {pikmin::%UUID of player%} is "purple":
  32. set max health of player to 20
  33. set health of player to 20
  34. if {pikmin::%UUID of player%} is "winged":
  35. set max health of player to 5
  36. set health of player to 5
  37. if {pikmin::%UUID of player%} is "white":
  38. set max health of player to 3
  39. set health of player to 3
  40. on respawn:
  41. add "{NoGravity:0b}" to nbt of player
  42. if {pikmin::%UUID of player%} is "yellow":
  43. wait 1 tick
  44. execute console command "execute %player% ~ ~ ~ effect @s 10 1000000 2 true"
  45. #{pikmin::%UUID of player%} is set
  46. #teleport player to random element out of {players::*}
  47. function getHighestBlock(loc: location) :: block:
  48. loop 256 times:
  49. set {_loopheight} to loop-number - 1
  50. block at location x-coordinate of {_loc}, {_loopheight}, z-coordinate of {_loc} in world "%{_loc}'s world%" is not air
  51. set {_block} to block at location x-coordinate of {_loc}, {_loopheight}, z-coordinate of {_loc} in world "%{_loc}'s world%"
  52. set {_blocks::%{_loopheight}%} to block at location x-coordinate of {_loc}, {_loopheight}, z-coordinate of {_loc} in world "%{_loc}'s world%"
  53. set {_highheight} to -1
  54. loop {_blocks::*}:
  55. loop-index parsed as integer > {_highheight}
  56. set {_highheight} to loop-index parsed as integer
  57. set {_returnvalue} to loop-value
  58. return {_returnvalue}
  59. on drop:
  60. player's gamemode is survival or adventure
  61. id of event-item is 345
  62. cancel event
  63. on inventory click:
  64. player's gamemode is survival or adventure
  65. if "%click type%" contain "drop key":
  66. id of clicked item is 345
  67. cancel event
  68. if "%click type%" contain "mouse button with shift":
  69. player's current inventory is not inventory of player
  70. "%player's current inventory%" is not "%player's inventory%"
  71. id of clicked item is 345
  72. cancel event
  73. if click type is right mouse button or left mouse button:
  74. clicked inventory is not player's inventory
  75. id of clicked item is 345
  76. cancel event
  77. if click type is number key:
  78. clicked inventory is not player's inventory
  79. set {_item} to slot click type number of player's inventory
  80. id of {_item} is 345
  81. cancel event
  82. every tick:
  83. loop all players:
  84. if {pikmin::%UUID of loop-player%} is not set:
  85. set playerlist name of loop-player to "&7%loop-player%"
  86. set display name of loop-player to "&7%loop-player%"
  87. nametag of loop-player is not "&7%loop-player%"
  88. set nametag of loop-player to "&7%loop-player%"
  89. else if {pikmin::%UUID of loop-player%} is set:
  90. if {pikmin::%UUID of loop-player%} is not "blue":
  91. if id of block at location of loop-player is 9 or 8:
  92. damage loop-player by 0.5
  93. else if id of block at location 1 meter above location of loop-player is 9 or 8:
  94. damage loop-player by 0.5
  95. switch {pikmin::%UUID of loop-player%}:
  96. case "red":
  97. set playerlist name of loop-player to "&c%loop-player%&r"
  98. set display name of loop-player to "&c%loop-player%&r"
  99. nametag of loop-player is not "&c%loop-player%&r"
  100. set nametag of loop-player to "&c%loop-player%&r"
  101. case "blue":
  102. set playerlist name of loop-player to "&9%loop-player%&r"
  103. set display name of loop-player to "&9%loop-player%&r"
  104. nametag of loop-player is not "&9%loop-player%&r"
  105. set nametag of loop-player to "&9%loop-player%&r"
  106. case "yellow":
  107. set playerlist name of loop-player to "&e%loop-player%&r"
  108. set display name of loop-player to "&e%loop-player%&r"
  109. nametag of loop-player is not "&e%loop-player%&r"
  110. set nametag of loop-player to "&e%loop-player%&r"
  111. case "rock":
  112. set playerlist name of loop-player to "&8%loop-player%&r"
  113. set display name of loop-player to "&8%loop-player%&r"
  114. nametag of loop-player is not "&8%loop-player%&r"
  115. set nametag of loop-player to "&8%loop-player%&r"
  116. case "purple":
  117. set playerlist name of loop-player to "&5%loop-player%&r"
  118. set display name of loop-player to "&5%loop-player%&r"
  119. nametag of loop-player is not "&5%loop-player%&r"
  120. set nametag of loop-player to "&5%loop-player%&r"
  121. case "winged":
  122. set playerlist name of loop-player to "&d%loop-player%&r"
  123. set display name of loop-player to "&d%loop-player%&r"
  124. nametag of loop-player is not "&d%loop-player%&r"
  125. set nametag of loop-player to "&d%loop-player%&r"
  126. case "white":
  127. set playerlist name of loop-player to "&f%loop-player%&r"
  128. set display name of loop-player to "&f%loop-player%&r"
  129. nametag of loop-player is not "&f%loop-player%&r"
  130. set nametag of loop-player to "&f%loop-player%&r"
  131. loop all players:
  132. {players::%UUID of loop-player-2%} is set
  133. if {_shortdistance} is not set:
  134. set {_player} to loop-player-2
  135. set {_shortdistance} to distance between loop-player-1 and loop-player-2
  136. else if {_shortdistance} is set:
  137. {_shortdistance} > distance between loop-player-1 and loop-player-2
  138. set {_player} to loop-player-2
  139. set {_shortdistance} to distance between loop-player-1 and loop-player-2
  140. set compass target of loop-player to {_player}
  141. if loop-player's tool is compass:
  142. send action bar from "&b&lDistance: &7%distance between loop-player and {_player}%" to loop-player
  143. distance between loop-player and {_player} > 30
  144. damage loop-player by 0.5
  145. if {pikmin::%UUID of loop-player%} is "red":
  146. execute console command "execute %loop-player% ~ ~ ~ effect @s 12 1000000 0 true"
  147. execute console command "execute %loop-player% ~ ~ ~ effect @s 5 1000000 0 true"
  148. loop-player's gamemode is survival or adventure
  149. if loop-player's world is "world":
  150. "world"'s weather is rain or thunder
  151. set {_highestblock} to getHighestBlock(location of loop-player)
  152. y-coordinate of {_highestblock} <= y-coordinate of loop-player+1
  153. damage loop-player by 0.5
  154. else if {pikmin::%UUID of loop-player%} is "blue":
  155. execute console command "execute %loop-player% ~ ~ ~ effect @s 13 1000000 0 true"
  156. execute console command "execute %loop-player% ~ ~ ~ effect @s 3 1000000 0 true"
  157. else if {pikmin::%UUID of loop-player%} is "yellow":
  158. loop-player's gamemode is survival or adventure
  159. if loop-player's world is "world":
  160. "world"'s weather is rain or thunder
  161. set {_highestblock} to getHighestBlock(location of loop-player)
  162. y-coordinate of {_highestblock} <= y-coordinate of loop-player+1
  163. damage loop-player by 0.5
  164. else if {pikmin::%UUID of loop-player%} is "rock":
  165. execute console command "execute %loop-player% ~ ~ ~ effect @s 2 1000000 0 true"
  166. execute console command "execute %loop-player% ~ ~ ~ effect @s 11 1000000 0 true"
  167. else if {pikmin::%UUID of loop-player%} is "purple":
  168. execute console command "execute %loop-player% ~ ~ ~ effect @s 8 1000000 128 true"
  169. else if {pikmin::%UUID of loop-player%} is "winged":
  170. execute console command "execute %loop-player% ~ ~ ~ effect @s 8 1000000 2 true"
  171. else if {pikmin::%UUID of loop-player%} is "white":
  172. execute console command "execute %loop-player% ~ ~ ~ effect @s 1 1000000 2 true"
  173. execute console command "execute %loop-player% ~ ~ ~ effect @s 5 1000000 127 true"
  174. delete {_shortdistance}
  175. delete {_player}
  176. on sneak toggle:
  177. {pikmin::%UUID of player%} is "winged"
  178. if player is not sneaking:
  179. set velocity of player to new vector from x of velocity of player, 0, z of velocity of player
  180. add "{NoGravity:1b}" to nbt of player
  181. else if player is sneaking:
  182. add "{NoGravity:0b}" to nbt of player
  183. on damage of player:
  184. if {pikmin::%UUID of victim%} is "blue":
  185. damage cause is entity explosion or block explosion
  186. set damage to 2147483647
  187. if {pikmin::%UUID of victim%} is "yellow":
  188. damage was caused by lightning
  189. cancel event
  190. if {pikmin::%UUID of victim%} is "winged":
  191. damage was caused by fall
  192. cancel event
  193. on quit:
  194. if UUID of player is "{@owneruuid}":
  195. wait 1 tick
  196. set {_allplayers::*} to all players
  197. if {lastlouie} is set:
  198. remove {lastlouie} from {_allplayers::*}
  199. set {_player} to random element out of {_allplayers::*}
  200. set {lastlouie} to {_player}
  201. set {_uuid} to UUID of {_player}
  202. set {players::%{_uuid}%} to {_player}
  203. set {afktime::%{_uuid}%} to 3600
  204. delete {pikmin::%{_uuid}%}
  205. execute console command "execute %{_player}% ~ ~ ~ effect @s clear"
  206. set max health of {_player} to 10
  207. add "{NoGravity:0b}" to nbt of {_player}
  208. broadcast "&b&l%{_player}%さんがルーイになりました"
  209. else if {players::%UUID of player%} is set:
  210. wait 1 tick
  211. delete {players::%UUID of player%}
  212. delete {afktime::%UUID of player%}
  213. set {_allplayers::*} to all players
  214. if {lastlouie} is set:
  215. remove {lastlouie} from {_allplayers::*}
  216. set {_player} to random element out of {_allplayers::*}
  217. set {lastlouie} to {_player}
  218. set {_uuid} to UUID of {_player}
  219. set {players::%{_uuid}%} to {_player}
  220. set {afktime::%{_uuid}%} to 3600
  221. delete {pikmin::%{_uuid}%}
  222. execute console command "execute %{_player}% ~ ~ ~ effect @s clear"
  223. set max health of {_player} to 10
  224. add "{NoGravity:0b}" to nbt of {_player}
  225. remove compass from {_player}'s inventory
  226. broadcast "&b&l%{_player}%さんがルーイになりました"
  227. on join:
  228. UUID of player is "{@owneruuid}"
  229. loop {players::*}:
  230. loop-index is not UUID of player
  231. delete {players::%loop-index%}
  232. delete {afktime::%loop-index%}
  233. set {pikmin::%loop-index%} to random element out of {pikmintypes::*}
  234. if player do not have compass:
  235. give player compass
  236. if {pikmin::%loop-index%} is "yellow":
  237. set max health of loop-value to 12
  238. set health of loop-value to 12
  239. execute console command "execute %loop-index% ~ ~ ~ effect @s 10 1000000 2 true"
  240. if {pikmin::%loop-index%} is "rock":
  241. set max health of loop-value to 15
  242. set health of loop-value to 15
  243. if {pikmin::%loop-index%} is "purple":
  244. set max health of loop-value to 20
  245. set health of loop-value to 20
  246. if {pikmin::%loop-index%} is "winged":
  247. set max health of loop-value to 5
  248. set health of loop-value to 5
  249. if {pikmin::%loop-index%} is "white":
  250. set max health of loop-value to 3
  251. set health of loop-value to 3
  252. on any movement:
  253. {players::%UUID of player%} is set
  254. set {afktime::%UUID of player%} to 3600
  255. every tick:
  256. set {_bool} to false
  257. loop all players:
  258. {players::%UUID of loop-player%} is set
  259. if {afktime::%UUID of loop-player%} >= 1:
  260. set {_bool} to true
  261. remove 1 from {afktime::%UUID of loop-player%}
  262. if {afktime::%UUID of loop-player%} <= 0:
  263. UUID of loop-player is not "{@owneruuid}"
  264. delete {players::%UUID of loop-player%}
  265. delete {afktime::%UUID of loop-player%}
  266. set {pikmin::%UUID of loop-player%} to random element out of {pikmintypes::*}
  267. if {pikmin::%UUID of loop-player%} is "yellow":
  268. set max health of loop-player to 12
  269. set health of loop-player to 12
  270. execute console command "execute %loop-player% ~ ~ ~ effect @s 10 1000000 2 true"
  271. if {pikmin::%UUID of loop-player%} is "rock":
  272. set max health of loop-player to 15
  273. set health of loop-player to 15
  274. if {pikmin::%UUID of loop-player%} is "purple":
  275. set max health of loop-player to 20
  276. set health of loop-player to 20
  277. if {pikmin::%UUID of loop-player%} is "winged":
  278. set max health of loop-player to 5
  279. set health of loop-player to 5
  280. if {pikmin::%UUID of loop-player%} is "white":
  281. set max health of loop-player to 3
  282. set health of loop-player to 3
  283. {_bool} is false
  284. set {_allplayers::*} to all players
  285. if {lastlouie} is set:
  286. remove {lastlouie} from {_allplayers::*}
  287. set {_player} to random element out of {_allplayers::*}
  288. set {lastlouie} to {_player}
  289. set {_uuid} to UUID of {_player}
  290. set {players::%{_uuid}%} to {_player}
  291. set {afktime::%{_uuid}%} to 3600
  292. delete {pikmin::%{_uuid}%}
  293. execute console command "execute %{_player}% ~ ~ ~ effect @s clear"
  294. set max health of {_player} to 10
  295. add "{NoGravity:0b}" to nbt of {_player}
  296. remove compass from {_player}'s inventory
  297. broadcast "&b&l%{_player}%さんがルーイになりました"
  298. on rightclick on player:
  299. if {pikmin::%UUID of player%} is not set:
  300. passenger of player is not set
  301. {pikmin::%UUID of clicked entity%} is set
  302. make clicked entity ride player
  303. if {pikmin::%UUID of player%} is set:
  304. passenger of clicked entity is not set
  305. {pikmin::%UUID of clicked entity%} is not set
  306. make player ride clicked entity
  307. on damage of player:
  308. attacker is a player
  309. damage was caused by attack
  310. passenger of attacker is victim
  311. make victim dismount
  312. cancel event
  313. wait 1 tick
  314. push victim in direction of attacker with speed 1
  315. function getEntityFromUUID(uuid: text) :: entity:
  316. loop all entities:
  317. if UUID of loop-entity is "%{_uuid}%":
  318. return loop-entity
  319. stop loop
  320. function getTagValues(e: entity) :: strings:
  321. set {_tagnbt} to "%tag ""Tags"" of nbt of {_e}%"
  322. replace "[""" and """]" in {_tagnbt} with ""
  323. return split {_tagnbt} by ""","""
  324. function removePrefix(str1: string, str2: string) :: string:
  325. first length of {_str2} characters of {_str1} is {_str2}
  326. return last length of {_str1} - length of {_str2} characters of {_str1}
  327. function getOwnerTag(e: entity) :: player:
  328. set {_tagnbt} to "%tag ""Tags"" of nbt of {_e}%"
  329. replace "[""" and """]" in {_tagnbt} with ""
  330. set {_tags::*} to split {_tagnbt} by ""","""
  331. loop {_tags::*}:
  332. first 6 characters of loop-value is "owner:"
  333. set {_ownernamelength} to length of loop-value-6
  334. set {_owner} to last {_ownernamelength} characters of loop-value parsed as player
  335. {_owner} is set
  336. return {_owner}
  337. stop loop
  338. on leftclick:
  339. {pikmin::%UUID of player%} is "rock"
  340. id of player's tool is 1 or 4
  341. cancel event
  342. shoot a armor stand from location 1 meter forwards location of player's head with speed 1.5
  343. add "{Invisible:1b,Small:1b,DisabledSlots:2039583}" to nbt of last shot armor stand
  344. spawn undroppable falling block of type of player's tool at last shot armor stand
  345. make last spawned falling block ride last shot armor stand
  346. add "{Tags:[""throwingstone"",""id:%id of player's tool%"",""data:%durability of player' tool%"",""owner:%player%""],NoGravity:1b}" to nbt of last spawned falling block
  347. player's gamemode is survival or adventure
  348. set {_item} to player's tool
  349. set item amount of {_item} to 1
  350. remove {_item} from player's tool
  351. on dismount:
  352. event-entity is falling block
  353. set {_tags::*} to getTagValues(event-entity)
  354. {_tags::*} contain "throwingstone"
  355. getEntityFromUUID(UUID of vehicle of event-entity) is set
  356. make event-entity ride vehicle of event-entity
  357. every tick:
  358. loop all armor stands:
  359. set {_tags::*} to getTagValues(passenger of loop-entity)
  360. {_tags::*} contain "throwingstone"
  361. set {_passenger::*} to passenger of loop-entity
  362. add "{Time:1}" to nbt of {_passenger::1}
  363. if loop-entity is on ground:
  364. loop 5 times:
  365. play sound "block.stone.break" to all players at loop-entity with volume 1.5 pitch 0.85
  366. loop {_tags::*}:
  367. if removePrefix(loop-value-2, "id:") parsed as integer is set:
  368. set {_id} to removePrefix(loop-value-2, "id:") parsed as integer
  369. if removePrefix(loop-value-2, "data:") parsed as integer is set:
  370. set {_data} to removePrefix(loop-value-2, "data:") parsed as integer
  371. execute console command "execute %UUID of loop-entity% ~ ~ ~ particle blockcrack ~ ~0.5 ~ 0.3 0.3 0.3 1 100 force @a %{_data}*4096+{_id}%"
  372. loop entities in radius 1 around loop-entity:
  373. loop-entity-2 is not getOwnerTag(passenger of loop-entity-1)
  374. loop-entity-2 is a living entity
  375. loop-entity-2 is not armor stand
  376. make getOwnerTag(passenger of loop-entity-1) damage loop-entity-2 by 5
  377. kill passenger of loop-entity
  378. kill loop-entity
  379. loop entities in radius 1 around loop-entity:
  380. loop-entity-2 is not getOwnerTag(passenger of loop-entity-1)
  381. loop-entity-2 is a living entity
  382. loop-entity-2 is not armor stand
  383. make getOwnerTag(passenger of loop-entity-1) damage loop-entity-2 by 5
  384. set {_flag} to 1
  385. {_flag} is 1
  386. loop 5 times:
  387. play sound "block.stone.break" to all players at loop-entity with volume 1.5 pitch 0.85
  388. loop {_tags::*}:
  389. if removePrefix(loop-value-2, "id:") parsed as integer is set:
  390. set {_id} to removePrefix(loop-value-2, "id:") parsed as integer
  391. if removePrefix(loop-value-2, "data:") parsed as integer is set:
  392. set {_data} to removePrefix(loop-value-2, "data:") parsed as integer
  393. execute console command "execute %UUID of loop-entity% ~ ~ ~ particle blockcrack ~ ~0.5 ~ 0.3 0.3 0.3 1 100 force @a %{_data}*4096+{_id}%"
  394. kill passenger of loop-entity
  395. kill loop-entity
Advertisement
Add Comment
Please, Sign In to add comment