Oxalist

Untitled

Jan 6th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.39 KB | None | 0 0
  1. options:
  2. gamenumber: 1
  3.  
  4. function getState(b: boolean = true) :: integer:
  5. return value of sql var "game::dng{@gamenumber}::state" parsed as integer
  6.  
  7. function getPlays(p: offlineplayer) :: integer:
  8. return value of sql var "stats::dng::gamesplayed::%{_p}%" parsed as integer
  9.  
  10. function getWins(p: offlineplayer) :: integer:
  11. return value of sql var "stats::dng::gameswon::%{_p}%" parsed as integer
  12.  
  13. function getReal(i: integer) :: text:
  14. set {_l} to location at (52*{_i}), 5, 151) of the world "world"
  15. if block at {_l} is not a sign:
  16. return "ERROR"
  17. else:
  18. return "%line 1 of block at {_l}%"
  19.  
  20. on load:
  21. command "/save-off"
  22.  
  23. on projectile hit:
  24. wait 1 ticks
  25. delete projectile
  26.  
  27. on drop:
  28. cancel the event
  29.  
  30. on item spawn:
  31. cancel the event
  32.  
  33. on spawn:
  34. cancel the event
  35.  
  36. on break:
  37. cancel the event
  38.  
  39. on place:
  40. cancel the event
  41.  
  42. on death of a player:
  43. clear drops
  44. set death message to ""
  45.  
  46. on weather change:
  47. set weather to sun
  48.  
  49. on damage of a player:
  50. cancel the event
  51. if damage is caused by void:
  52. cancel the event
  53. teleport victim to location at 1070, 46, -1871 of the world "world"
  54.  
  55. on join:
  56. heal player
  57. set join message to ""
  58. clear player's inventory
  59. set player's gamemode to adventure
  60. set player's level to 0
  61. teleport player to location at 1070, 46, -1871 of the world "world"
  62. if amount of players is less than 2:
  63. set sql var "game::dng{@gamenumber}::state" to "1"
  64. delete {game::time}
  65. else if amount of players is greater than or equal to 2:
  66. getState() is not 2 or 3
  67. set sql var "game::dng{@gamenumber}::state" to "2"
  68. set {game::time} to now
  69. wipe player's sidebar
  70. set name of sidebar of player to "&7&a&lDrop n' Guess"
  71. set id score "&7PLAYERS" in sidebar of player to 3 with id "Players.%player%"
  72. set id score "&e%amount of players%/10" in sidebar of player to 2 with id "PlayerCount.%player%"
  73. set id score " " in sidebar of player to 1 with id "Space2.%player%"
  74. set id score "&ewww.minealot.net" in sidebar of player to 0 with id "Website.%player%"
  75. if {game::multiplier} is not set:
  76. set slot 4 of player to a glowing gold ingot named "&7Multipliers"
  77. while score value of id "Website.%player%" is 0:
  78. if player is not online:
  79. stop loop
  80. wait 15 tick
  81. update score id "PlayerCount.%player%" to "&e%amount of players%/10" and 2
  82.  
  83. on right click holding a gold ingot:
  84. cancel the event
  85. open chest with 1 row named "&7Multipliers" to player
  86. wait 1 tick
  87. set {_2} to value of sql var "multipliers::double::%player%" parsed as integer
  88. set {_3} to value of sql var "multipliers::triple::%player%" parsed as integer
  89. set {_4} to value of sql var "multipliers::quadruple::%player%" parsed as integer
  90. if "%{_2}%" is "<none>" or "0":
  91. set slot 2 of player's current inventory to a gold nugget named "&7Double Coins Multiplier:&e 0"
  92. else:
  93. set slot 2 of player's current inventory to a gold nugget named "&7Double Coins Multiplier:&e %{_2}%" with lore "&7Click to activate double coins multiplier for this game!"
  94. if "%{_3}%" is "<none>" or "0":
  95. set slot 4 of player's current inventory to a gold ingot named "&7Triple Coins Multiplier:&e 0"
  96. else:
  97. set slot 4 of player's current inventory to a gold ingot named "&7Triple Coins Multiplier:&e %{_3}%" with lore "&7Click to activate triple coins multiplier for this game!"
  98. if "%{_4}%" is "<none>" or "0":
  99. set slot 6 of player's current inventory to a gold block named "&7Quadruple Coins Multiplier:&e 0"
  100. else:
  101. set slot 6 of player's current inventory to a gold block named "&7Quadruple Coins Multiplier:&e %{_4}%" with lore "&7Click to activate quadruple coins multiplier for this game!"
  102.  
  103. on inventory click:
  104. cancel the event
  105. inventory name of player's current inventory is "&7Multipliers"
  106. clicked item is not air
  107. set {_2} to value of sql var "multipliers::double::%player%" parsed as integer
  108. set {_3} to value of sql var "multipliers::triple::%player%" parsed as integer
  109. set {_4} to value of sql var "multipliers::quadruple::%player%" parsed as integer
  110. if clicked item is a gold nugget:
  111. if lore of clicked item does not contain "&7Click":
  112. send "&7You have no Double Coins Multiplier to activate"
  113. else:
  114. broadcast "&e%player%&7 has activated a Double Coins Multiplier"
  115. command "/playsound random.levelup @a"
  116. set {game::multiplier} to player
  117. set {game::multiplier::amount} to 2
  118. remove all gold ingot from inventory of all players
  119. set sql var "multipliers::double::%player%" to "%{_2} - 1%"
  120. send "&7You now have &e%{_2} - 1%&7 Double Coins Multiplier left!"
  121. loop all players:
  122. inventory name of loop-player's current inventory is "&7Multipliers"
  123. close loop-player's inventory
  124. else if clicked item is a gold ingot:
  125. if lore of clicked item does not contain "&7Click":
  126. send "&7You have no Triple Coins Multiplier to activate"
  127. else:
  128. broadcast "&e%player%&7 has activated a Triple Coins Multiplier"
  129. command "/playsound random.levelup @a"
  130. set {game::multiplier} to player
  131. set {game::multiplier::amount} to 3
  132. remove all gold ingot from inventory of all players
  133. set sql var "multipliers::triple::%player%" to "%{_3} - 1%"
  134. send "&7You now have &e%{_3} - 1%&7 Triple Coins Multiplier left!"
  135. loop all players:
  136. inventory name of loop-player's current inventory is "&7Multipliers"
  137. close loop-player's inventory
  138. else if clicked item is a gold block:
  139. if lore of clicked item does not contain "&7Click":
  140. send "&7You have no Quadruple Coins Multiplier to activate"
  141. else:
  142. broadcast "&e%player%&7 has activated a Quadruple Coins Multiplier"
  143. command "/playsound random.levelup @a"
  144. set {game::multiplier} to player
  145. set {game::multiplier::amount} to 4
  146. remove all gold ingot from inventory of all players
  147. set sql var "multipliers::quadruple::%player%" to "%{_4} - 1%"
  148. send "&7You now have &e%{_4} - 1%&7 Quadruple Coins Multiplier left!"
  149. loop all players:
  150. inventory name of loop-player's current inventory is "&7Multipliers"
  151. close loop-player's inventory
  152.  
  153. on quit:
  154. if amount of players is 0 or 1:
  155. getState() is 3
  156. set {_1} to 0
  157. set {_2} to 0
  158. set {_3} to 0
  159. loop {game::points::*}:
  160. if loop-value is greater than {_1}:
  161. set {_3} to {_2}
  162. set {_2} to {_1}
  163. set {_3t} to {_2t}
  164. set {_2t} to {_1t}
  165. set {_1} to loop-value
  166. set {_1t} to "&e%loop-index% &f- &7%loop-value% points"
  167. else if loop-value is greater than {_2}:
  168. set {_3} to {_2}
  169. set {_3t} to {_2t}
  170. set {_2} to loop-value
  171. set {_2t} to "&e%loop-index% &f- &7%loop-value% points"
  172. else if loop-value is greater than {_3}:
  173. set {_3} to loop-value
  174. set {_3t} to "&e%loop-index% &f- &7%loop-value% points"
  175. broadcast "&7========================="
  176. broadcast "&7First place: %{_1t}%"
  177. broadcast "&7Second place: %{_2t}%"
  178. broadcast "&7Third place: %{_3t}%"
  179. broadcast "&7========================="
  180. loop all players:
  181. if {game::points::%loop-player%} is {_1}:
  182. set sql var "stats::dng::gameswon::%loop-player%" to "%getPlays(loop-player) + 1%"
  183. set {_amt} to {game::points::%loop-player%}*4
  184. $ thread
  185. addCoins(loop-player, {_amt})
  186. else if {game::points::%loop-player%} is {_2}:
  187. set {_amt} to {game::points::%loop-player%}*3
  188. $ thread
  189. addCoins(loop-player, {_amt})
  190. else if {game::points::%loop-player%} is {_3}:
  191. set {_amt} to {game::points::%loop-player%}*2
  192. $ thread
  193. addCoins(loop-player, {_amt})
  194. else:
  195. set {_amt} to {game::points::%loop-player%}*1
  196. $ thread
  197. addCoins(loop-player, {_amt})
  198. loop 10 times:
  199. command "/playsound fireworks.launch @a"
  200. wait 10 ticks
  201. loop all players:
  202. send loop-player to "redirection"
  203. delete {game::*}
  204. set sql var "game::dng{@gamenumber}::state" to "0"
  205. wait 10 seconds
  206. command "/stop"
  207. else:
  208. loop all players:
  209. delete score id "%loop-player%.%player%"
  210. delete score id "%player%.%loop-player%"
  211.  
  212. on gamemode change:
  213. wait 1 tick
  214. set player's gamemode to adventure
  215.  
  216. on block damage:
  217. cancel the event
  218.  
  219. on damage of a player:
  220. cancel the event
  221. heal victim
  222.  
  223. on hunger meter change:
  224. cancel the event
  225. set player's food level to 10
  226.  
  227. function getPossible(i: integer) :: text:
  228. set {_l} to location at (52*{_i}), 5, 151) of the world "world"
  229. if block at {_l} is not a sign:
  230. return "ERROR"
  231. else:
  232. if line 2 of block at {_l} is not "":
  233. set {_return::2} to "%line 2 of block at {_l}%"
  234. if line 3 of block at {_l} is not "":
  235. set {_return::3} to "%line 3 of block at {_l}%"
  236. if line 4 of block at {_l} is not "":
  237. set {_return::4} to "%line 4 of block at {_l}%"
  238. if {_return::*} is not set:
  239. return "None"
  240. else:
  241. return "%join {_return::*} with "",""%"
  242.  
  243. on chat:
  244. loop {game::word::*}:
  245. "%message%" is "%loop-value%"
  246. {game::guessed::%player%} is not set
  247. if size of {game::guessed::*} is 0:
  248. broadcast "&e%player%&7 has guessed the word first!"
  249. add 5 to {game::points::%player%}
  250. send "&7+5 points!"
  251. else if size of {game::guessed::*} is 1:
  252. send "&7+3 points!"
  253. broadcast "&e%player%&7 has guessed the word second!"
  254. add 3 to {game::points::%player%}
  255. else:
  256. broadcast "&e%player%&7 has guessed the word!"
  257. send "&7+1 point!"
  258. add 1 to {game::points::%player%}
  259. command "/playsound random.levelup @a ~ ~ ~ 0.25 2 0.25"
  260. set {game::guessed::%player%} to "%player%"
  261. loop all players:
  262. loop all players:
  263. update score id "%loop-player-2%.%loop-player-1%" to "&7%loop-player-2%" and {game::points::%loop-player-2%}
  264.  
  265. function startDrop(b: boolean = true):
  266. getState() is 3
  267. {game::dropping} is not set
  268. set {game::dropping} to true
  269. set {game::chat} to true
  270. add 1 to {game::drops}
  271. loop blocks within location at 25.5, 4, 25.5 of the world "world" to location at 0.5, 5, 0.5 of the world "world":
  272. set loop-block to air
  273. loop all players:
  274. loop 9 times:
  275. set slot loop-number - 1 of loop-player to a red stained clay named " "
  276. set slot {game::drops} - 1 of loop-player to a green stained clay named "&eROUND %{game::drops}%"
  277. set {_build} to a random element out of {game::drops::*}
  278. delete {game::drops::%{_build}%}
  279. set {_real} to getReal({_build})
  280. set {game::word::%{_real}%} to {_real}
  281. set {_possible} to getPossible({_build})
  282. if {_possible} is not "None":
  283. set {_possible::*} to {_possible} split at ","
  284. loop {_possible::*}:
  285. set {game::word::%loop-value%} to loop-value
  286. set {_l} to location at (52*{_build}), 6, 125) of the world "world"
  287. loop blocks within {_l} to (location 25 south 25 east {_l}):
  288. loop-block is not air
  289. set {_blocksloc::%location at loop-block%} to location at loop-block
  290. set {_blockstype::%location at loop-block%} to type of loop-block
  291. set {_blocksamt} to size of {_blocksloc::*}
  292. set {_length} to length of {_real}
  293. set {_wordhint} to ""
  294. loop {_length} times:
  295. if subtext of {_real} from loop-number to loop-number is " ":
  296. set {_wordhint} to "%{_wordhint}% "
  297. else:
  298. set {_wordhint} to "%{_wordhint}%&f_"
  299. set {_hints::%loop-number%} to loop-number
  300. while size of {_blocksloc::*} is not 0:
  301. if size of {game::guessed::*} is amount of players:
  302. stop loop
  303. else:
  304. set {_letters} to 0 - ((size of {_blocksloc::*} - {_blocksamt})/{_blocksamt})*{_length}
  305. set {_letters} to floor({_letters})
  306. if {_letters} is greater than floor({_length}/2):
  307. set {_letters} to floor({_length}/2)
  308. if size of {_hints::*} is not (length of {_real} - {_letters}):
  309. set {_hint} to a random element out of {_hints::*}
  310. delete {_hints::%{_hint}%}
  311. set {_wordhint} to ""
  312. loop {_length} times:
  313. if {_hints::%loop-number%} is not set:
  314. set {_wordhint} to "%{_wordhint}%&d%subtext of {_real} from loop-number to loop-number%"
  315. else if subtext of {_real} from loop-number to loop-number is " ":
  316. set {_wordhint} to "%{_wordhint}% "
  317. else:
  318. set {_wordhint} to "%{_wordhint}%&f_"
  319. set {_block} to a random element out of {_blocksloc::*}
  320. set {_offsetx} to difference between {_l}'s x-coordinate and {_block}'s x-coordinate
  321. set {_offsetz} to difference between {_l}'s z-coordinate and {_block}'s z-coordinate
  322. spawn undroppable falling block of {_blockstype::%{_block}%} at location at ({_offsetx}, 30, {_offsetz}) of the world "world"
  323. delete {_blocksloc::%{_block}%}
  324. delete {_blockstype::%{_block}%}
  325. loop all players:
  326. set loop-player's action bar to "&7%{_wordhint}%"
  327. wait 2 ticks
  328. loop 50 times:
  329. wait 2 ticks
  330. if size of {game::guessed::*} is amount of players:
  331. stop loop
  332. else:
  333. loop all players:
  334. set loop-player's action bar to "&7%{_wordhint}%"
  335. if size of {game::guessed::*} is amount of players:
  336. while size of {_blocksloc::*} is not 0:
  337. set {_block} to a random element out of {_blocksloc::*}
  338. set {_offsetx} to difference between {_l}'s x-coordinate and {_block}'s x-coordinate
  339. set {_offsetz} to difference between {_l}'s z-coordinate and {_block}'s z-coordinate
  340. spawn undroppable falling block of {_blockstype::%{_block}%} at location at ({_offsetx}, 30, {_offsetz}) of the world "world"
  341. delete {_blocksloc::%{_block}%}
  342. delete {_blockstype::%{_block}%}
  343. broadcast "&7The word was &e%{_real}%&7! All players have guessed the word!"
  344. else:
  345. broadcast "&7The word was &e%{_real}%&7! &e%size of {game::guessed::*}%&7/&e%amount of players%&7 players have guessed the word!"
  346. delete {game::dropping}
  347. delete {game::word::*}
  348. delete {game::chat}
  349. delete {game::guessed::*}
  350. delete {game::hint}
  351. if {game::drops} is greater than or equal to 9:
  352. set {_1} to 0
  353. set {_2} to 0
  354. set {_3} to 0
  355. loop {game::points::*}:
  356. if loop-value is greater than {_1}:
  357. set {_3} to {_2}
  358. set {_2} to {_1}
  359. set {_3t} to {_2t}
  360. set {_2t} to {_1t}
  361. set {_1} to loop-value
  362. set {_1t} to "&e%loop-index% &f- &7%loop-value% points"
  363. else if loop-value is greater than {_2}:
  364. set {_3} to {_2}
  365. set {_3t} to {_2t}
  366. set {_2} to loop-value
  367. set {_2t} to "&e%loop-index% &f- &7%loop-value% points"
  368. else if loop-value is greater than {_3}:
  369. set {_3} to loop-value
  370. set {_3t} to "&e%loop-index% &f- &7%loop-value% points"
  371. broadcast "&7========================="
  372. broadcast "&7First place: %{_1t}%"
  373. broadcast "&7Second place: %{_2t}%"
  374. broadcast "&7Third place: %{_3t}%"
  375. broadcast "&7========================="
  376. loop all players:
  377. if {game::points::%loop-player%} is {_1}:
  378. set sql var "stats::dng::gameswon::%loop-player%" to "%getPlays(loop-player) + 1%"
  379. set {_amt} to {game::points::%loop-player%}*8
  380. addCoins(loop-player, {_amt})
  381. send "&e+ %{game::points::%loop-player%}*8% coins &7&o(4 times multiplier for coming in 1st)" to loop-player
  382. else if {game::points::%loop-player%} is {_2}:
  383. set {_amt} to {game::points::%loop-player%}*6
  384. addCoins(loop-player, {_amt})
  385. send "&e+ %{game::points::%loop-player%}*6% coins &7&o(3 times multiplier for coming in 2nd)" to loop-player
  386. else if {game::points::%loop-player%} is {_3}:
  387. set {_amt} to {game::points::%loop-player%}*4
  388. addCoins(loop-player, {_amt})
  389. send "& + %{game::points::%loop-player%}*4% coins &7&o(2 times multiplier for coming in 3rd)" to loop-player
  390. else:
  391. set {_amt} to {game::points::%loop-player%}*2
  392. addCoins(loop-player, {_amt})
  393. send "&e+ %{game::points::%loop-player%}*2% coins" to loop-player
  394. loop 10 times:
  395. command "/playsound fireworks.launch @a ~ ~ ~ 1 1 1"
  396. wait 10 ticks
  397. loop all players:
  398. send loop-player to "redirection"
  399. delete {game::*}
  400. set sql var "game::dng{@gamenumber}::state" to "0"
  401. wait 10 seconds
  402. command "/stop"
  403. else:
  404. loop 10 times:
  405. getState() is 3
  406. loop all players:
  407. set loop-player's level to 10 - loop-number
  408. command "/playsound note.hat @a ~ ~ ~ 1 1 1"
  409. wait 1 second
  410. getState() is 3
  411. startDrop()
  412.  
  413. #command /genareas:
  414. # permission: skript.op
  415. # trigger:
  416. # loop 100 times:
  417. # loop blocks within (location at (52 * loop-number), 5, 125) to (location at (52 * loop-number) + 25, 5, 150):
  418. # set loop-block to bedrock
  419. # add 1 to {_blocks}
  420. # if {_blocks} is 400:
  421. # wait 1 tick
  422. # set {_blocks} to 0
  423. # wait 0.6 second
  424. # broadcast "Area %loop-number%/100 genned!"
  425.  
  426. on block land:
  427. add 1 to {game::sound}
  428. 1.8 play 3 of particle happy villager:0 at event-block offset by 0.3, 0.3, 0.3
  429. if {game::sound} is 3:
  430. loop all players:
  431. command "/playsound dig.sand %loop-player% ~ ~ ~ 0.5 1 0.5"
  432. set {game::sound} to 0
  433.  
  434. on skript load:
  435. delete {game::*}
  436. set sql var "game::dng{@gamenumber}::state" to "1"
  437. while true:
  438. wait 1 second
  439. if {game::time} is set:
  440. difference between {game::time} and now is greater than 30 seconds
  441. delete {game::time}
  442. getState() is 2
  443. loop 63 times:
  444. set {game::drops::%loop-number%} to loop-number
  445. loop blocks within location at 25.5, 4, 25.5 of the world "world" to location at 0.5, 5, 0.5 of the world "world":
  446. set loop-block to air
  447. clear inventory of all players
  448. set sql var "game::dng{@gamenumber}::state" to "3"
  449. startDrop()
  450. loop all players:
  451. wipe loop-player's sidebar
  452. set name of sidebar of loop-player to "&a&lDrop n' Guess"
  453. set id score " " in sidebar of loop-player to -1 with id "Space.%loop-player%"
  454. set id score "&ewww.minealot.net" in sidebar of loop-player to -2 with id "Website.%loop-player%"
  455. set sql var "stats::dng::gamesplayed::%loop-player%" to "%getPlays(loop-player) + 1%"
  456. loop all players:
  457. set id score "&7%loop-player-2%" in sidebar of loop-player-1 to 0 with id "%loop-player-2%.%loop-player-1%"
  458. set sql var "game::dng{@gamenumber}::state" to "3"
  459. loop all players:
  460. set loop-player's level to 0
  461. teleport loop-player to location at (a random number between 5 and 15), 38.2, (a random number between 5 and 15) of the world "world"
  462. set {game::points::%loop-player%} to 0
  463. set loop-player's gamemode to adventure
  464. if getState() is 1:
  465. loop all players:
  466. set loop-player's action bar to "&7Need at least &e%4 - amount of players%&7 more players to start!"
  467. else if getState() is 2:
  468. loop all players:
  469. set {_time} to difference between {game::time} and now
  470. set {_time} to "%difference between {_time} and 30 second%"
  471. set {_time::*} to {_time} split at "."
  472. set {_time} to {_time::1} parsed as integer
  473. set loop-player's level to {_time}
  474. set loop-player's action bar to "&7Starting in &e%{_time}% seconds"
  475. if {_time} is less than 11:
  476. command "/playsound random.click @a ~ ~ ~ 1 0.5 1"
  477. else if getState() is 3:
  478. wait 1 tick
Advertisement
Add Comment
Please, Sign In to add comment