szumielxd

SaperRPG

Dec 13th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.02 KB | None | 0 0
  1. command /setsapertp:
  2. permission: gmod
  3. trigger:
  4. set {saper.tploc} to location at player
  5. send "&aPomyslnie ustawiono lokalizacje docelowa sapera na &7%player's location%"
  6.  
  7. function getMobs(x: integer, y: integer, p: player) :: integer:
  8. set {_moby} to 0
  9. set {_x1} to {_x} -1
  10. loop 3 times:
  11. set {_y1} to {_y} -1
  12. loop 3 times:
  13. if {saper.pos.%{_p}%::%{_x1}%.%{_y1}%} is set:
  14. add 1 to {_moby}
  15. add 1 to {_y1}
  16. add 1 to {_x1}
  17. set {_moby} to "%{_moby}%" parsed as integer
  18. return {_moby}
  19.  
  20.  
  21. command /saper:
  22. permission: mod
  23. trigger:
  24. delete {saper.pos.%player%::*}
  25. set {_pozostale} to random integer between 6 and 7
  26. loop {_pozostale} times:
  27. set {_x} to random integer between 1 and 9
  28. set {_y} to random integer between 1 and 5
  29. while {saper.pos.%player%::%{_x}%.%{_y}%} is set:
  30. set {_x} to random integer between 1 and 9
  31. set {_y} to random integer between 1 and 5
  32. set {saper.pos.%player%::%{_x}%.%{_y}%} to true
  33. open chest with 6 rows named "&6&lRundka w Sapera!" to player
  34. set player's current inventory's slot 0 to 1 of 426 named " "
  35. set player's current inventory's slot 8 to 1 of 426 named " "
  36. set player's current inventory's slot 1 to 1 of 160:15 of sharpness 10 named " "
  37. set player's current inventory's slot 7 to 1 of 160:15 of sharpness 10 named " "
  38. set player's current inventory's slot 2 to {_pozostale} of skeleton head named "&ePozostalo flag:&f %{_pozostale}%"
  39. set player's current inventory's slot 6 to 76 named "&4Sprawdz pole"
  40. set player's current inventory's slot 3 to 1 of 160:15 of sharpness 10 named " "
  41. set player's current inventory's slot 5 to 1 of 160:15 of sharpness 10 named " "
  42. set player's current inventory's slot 4 to 213 named "&6&lSwiatlo Mordoru"
  43. loop 45 times:
  44. set player's current inventory's slot loop-number+8 to 1 gray glass named " "
  45.  
  46.  
  47.  
  48. function empty(x: integer, y: integer, p: player):
  49. wait 2 ticks
  50. set {_x1} to {_x} -1
  51. if {bezpiecznik} > 30:
  52. delete {bezpiecznik}
  53. stop
  54. else:
  55. add 1 to {bezpiecznik}
  56. set {_x1} to "%{_x} -1%" parsed as integer
  57. loop 3 times:
  58. set {_y1} to "%{_y} -1%" parsed as integer
  59. loop 3 times:
  60. if getMobs({_x1}, {_y1}, {_p}) != -1:
  61. set {_slot} to getSlot({_x1}, {_y1})
  62. if {_slot} = -1:
  63. else if current inventory of {_p}'s slot {_slot} is gray glass:
  64. set {_moby} to getMobs({_x1}, {_y1}, {_p})
  65. if {_moby} is 0:
  66. set {_p}'s current inventory's slot {_slot} to 1 of light gray stained glass named " "
  67. wait 1 tick
  68. empty({_x1}, {_y1}, {_p})
  69. else:
  70. if {_moby} is 1:
  71. set {_p}'s current inventory's slot {_slot} to 1 of cyan rug named "&3&l1"
  72. if {_moby} is 2:
  73. set {_p}'s current inventory's slot {_slot} to 2 of green rug named "&2&l2"
  74. if {_moby} is 3:
  75. set {_p}'s current inventory's slot {_slot} to 3 of red rug named "&4&l3"
  76. if {_moby} is 4:
  77. set {_p}'s current inventory's slot {_slot} to 4 of blue rug named "&1&l4"
  78. if {_moby} is 5:
  79. set {_p}'s current inventory's slot {_slot} to 5 of brown rug named "&5&l5"
  80. if {_moby} is 6:
  81. set {_p}'s current inventory's slot {_slot} to 6 of magenta rug named "&d&l6"
  82. if {_moby} is 7:
  83. set {_p}'s current inventory's slot {_slot} to 7 of orange rug named "&6&l7"
  84. if {_moby} is 8:
  85. set {_p}'s current inventory's slot {_slot} to 8 of gray rug named "&7&l8"
  86. add 1 to {_y1}
  87. add 1 to {_x1}
  88.  
  89.  
  90. function getSlot(x: integer , y: integer) :: integer:
  91. if {_x} > 9:
  92. return -1
  93. if {_y} >5:
  94. return -1
  95. if {_x} < 1:
  96. return -1
  97. if {_y} < 1:
  98. return -1
  99. set {_s} to {_y} * 9 + {_x} - 1
  100. set {_s} to "%{_s}%" parsed as integer
  101. return {_s}
  102.  
  103. on place of 213:
  104. "%region at event-block%" contains "rpg_saper":
  105. name of player's tool is "&6&lSwiatlo Mordoru":
  106. set {_i} to 10
  107. loop 5 times:
  108. show {_i} portal on player
  109. wait 5 ticks
  110. set {_i} to {_i} * 10
  111. wait 10 ticks
  112. set block at location of event-block to air
  113. teleport player to {saper.tploc}
  114.  
  115. on rightclick on enderman:
  116. if name of clicked entity is "&e&lStraznik":
  117. cancel event
  118. if metadata value "saper.win" of player is not set:
  119. run player command "saper" as op
  120. else:
  121. send "&cGdzie ci tak spieszno ze znowu chcesz wziac jedyne swiatlo Mordoru?" to player
  122.  
  123.  
  124.  
  125. on inventory click:
  126. if inventory name of current inventory of player is "&6&lRundka w Sapera!":
  127. cancel event
  128. if clicked slot is 6:
  129. if current inventory of player's slot 6 is tnt:
  130. set player's current inventory's slot 6 to 1 of 76 named "&4Sprawdz pole"
  131. else:
  132. set player's current inventory's slot 6 to tnt named "&4Postaw flage"
  133. else:
  134. set {_slot} to clicked slot
  135. # replace all " " with "" in {_slot}
  136. # set {_slot} to {_slot} parsed as integer
  137. if {_slot} is bigger than 8:
  138. set {_x} to ({_slot} mod 9)+1
  139. set {_x} to "%{_x}%" parsed as integer
  140. set {_y} to ({_slot}-({_slot} mod 9))/9
  141. set {_y} to "%{_y}%" parsed as integer
  142.  
  143. if current inventory of player's slot 6 is tnt:
  144. if current inventory of player's slot {_slot} is 1 of 425:1:
  145. set player's current inventory's slot {_slot} to gray glass named " "
  146. set {_a} to number of skeleton head in player's current inventory +1
  147. set player's current inventory's slot 2 to {_a} of skeleton head named "&ePozostalo flag:&f %{_a}%"
  148. else:
  149. if number of skeleton head in player's current inventory is bigger than 0:
  150. set player's current inventory's slot {_slot} to 425:1 named "&cOflagowane"
  151. set {_a} to number of skeleton head in player's current inventory -1
  152. set player's current inventory's slot 2 to {_a} of skeleton head named "&ePozostalo flag:&f %{_a}%"
  153. else:
  154. if current inventory of player's slot {_slot} is gray glass:
  155. if {saper.pos.%player%::%{_x}%.%{_y}%} is set:
  156. set player's current inventory's slot {_slot} to creeper head named "&4&lPrzegrales"
  157. close player's inventory
  158. endparkour(player)
  159. stop
  160.  
  161. set {_moby} to getMobs({_x}, {_y}, player)
  162. if {_moby} is 1:
  163. set player's current inventory's slot {_slot} to 1 of cyan rug named "&3&l1"
  164. if {_moby} is 2:
  165. set player's current inventory's slot {_slot} to 2 of green rug named "&2&l2"
  166. if {_moby} is 3:
  167. set player's current inventory's slot {_slot} to 3 of red rug named "&4&l3"
  168. if {_moby} is 4:
  169. set player's current inventory's slot {_slot} to 4 of blue rug named "&1&l4"
  170. if {_moby} is 5:
  171. set player's current inventory's slot {_slot} to 5 of brown rug named "&5&l5"
  172. if {_moby} is 6:
  173. set player's current inventory's slot {_slot} to 6 of magenta rug named "&d&l6"
  174. if {_moby} is 7:
  175. set player's current inventory's slot {_slot} to 7 of orange rug named "&6&l7"
  176. if {_moby} is 8:
  177. set player's current inventory's slot {_slot} to 8 of gray rug named "&7&l8"
  178. if {_moby} is 0:
  179. set player's current inventory's slot {_slot} to 1 of light gray stained glass named " "
  180. empty({_x}, {_y}, player)
  181. if number of gray stained glass in player's current inventory is 0:
  182. send "&a&lWygrales!"
  183. set {_magma} to 1 of 213 named "&6&lSwiatlo Mordoru" with lore "&eNiezwykle w swej potedze.||&eTak potezne ze nawet||&eczarna dziora nie jest||&ew stanie go wessac!"
  184. set player's current inventory's slot 4 to {_magma}
  185. set player's current inventory's slot 4 to red stained glass named " "
  186. set player's current inventory's slot 13 to {_magma}
  187. wait 10 ticks
  188. set player's current inventory's slot 13 to red stained glass named " "
  189. set player's current inventory's slot 22 to {_magma}
  190. wait 10 ticks
  191. set player's current inventory's slot 22 to red stained glass named " "
  192. set player's current inventory's slot 31 to {_magma}
  193. wait 10 ticks
  194. set player's current inventory's slot 31 to red stained glass named " "
  195. set player's current inventory's slot 40 to {_magma}
  196. wait 10 ticks
  197. set player's current inventory's slot 40 to red stained glass named " "
  198. set player's current inventory's slot 49 to {_magma}
  199. wait 10 ticks
  200. open chest with 6 rows named "&6&lOdbierz nagrode" to player
  201. set player's current inventory's slot 49 to {_magma}
  202. set metadata value "saper.win" of player to true
  203.  
  204. function endparkour(p: player):
  205. if metadata value "saper.pozostalo" of {_p} >= 4:
  206. send {_p} title "&4&lIdz precz!" with subtitle "&fStraznik nie bedzie tracic na Ciebie wiecej czasu" for 5 seconds
  207. run {_p} command "warp katedra" as op
  208. else:
  209.  
  210. set {_m} to metadata value "saper.pozostalo" of {_p}
  211. add 1 to {_m}
  212. set metadata value "saper.pozostalo" of {_p} to {_m}
  213. send {_p} title "&4&lPrzegrales" with subtitle "&eZostalo Ci %5 - {_m}% szans" for 5 seconds
  214.  
  215. on exit region "saper_quest":
  216. clear metadata value "saper.pozostalo" of player
  217. clear metadata value "saper.win" of player
  218.  
  219. on disconnect:
  220. clear metadata value "saper.pozostalo" of player
  221. clear metadata value "saper.win" of player
Add Comment
Please, Sign In to add comment