Advertisement
xNawi

Case opening 2.0 update 7

May 22nd, 2015
1,867
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.19 KB | None | 0 0
  1. # Author: Nawo
  2. # Presentation: http://www.mpcforum.pl/topic/1423401-skrypt-na-case-opening/
  3.  
  4. options:
  5. tag: &8[&6Case&8]z
  6. chance key: 20
  7. chance chest: 30
  8.  
  9. method "edit" {player and case}:
  10. set {_player} to arg{1};
  11. set {_case} to arg{2};
  12. open chest with 3 rows named "&6Edytujesz: &c%{_case}%" to {_player}
  13. wait 1 tick
  14. set {_slot} to 0
  15. loop {case::%{_case}%::itemlist::*}:
  16. set slot {_slot} of current inventory of {_player} to loop-value
  17. add 1 to {_slot}
  18. set {case::player::%{_player}%::openedit} to "%{_case}%"
  19. send "{@tag} &7Edytujesz zawartosc skrzyni &6%{_case}%&7." to {_player}
  20. while inventory name of {_player} is "&6Edytujesz: &c%{_case}%":
  21. set {case::player::%{_player}%::openedit} to "%{_case}%"
  22. wait 5 tick
  23. method "list" {player}:
  24. set {_player} to arg{1};
  25. open chest with 6 rows named "&6Lista skrzynek:" to {_player}
  26. wait 1 tick
  27. loop {case::chestlist::*}:
  28. set {_case%loop-index%} to loop-value
  29. if {_case%loop-index%} contains "<none>":
  30. remove loop-value from {case::chestlist::*}
  31. delete {_case%loop-index%}
  32. loop (size of {case::chestlist::*}) times:
  33. set {_lore} to "%{case::%{_case%loop-number%}%::itemlist::*}%"
  34. replace all ", " with "|| &8- &c" in {_lore}
  35. replace all "and " with "|| &8- &c" in {_lore}
  36. format slot loop-number - 1 of {_player} with 1 of chest named "&6%{_case%loop-number%}%" with lore " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || " to close
  37. method "opening" {player and case}:
  38. set {_player} to arg{1};
  39. set {_case} to arg{2};
  40. if {case::player::%{_player}%::openwait} is true:
  41. send "{@tag} &7Juz otwierasz skrzynie!" to {_player}
  42. else:
  43. set {_size} to size of {case::%{_case}%::itemlist::*}
  44. if {_size} > 0:
  45. remove 1 tripwire hook named "&6Klucz do skrzyni &c%{_case}%" from {_player}'s inventory
  46. set {_lore} to "%{case::%{_case}%::itemlist::*}%"
  47. replace all ", " with "|| &8- &c" in {_lore}
  48. replace all "and " with "|| &8- &c" in {_lore}
  49. remove 1 chest named "&6%{_case}%" with lore " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || " from {_player}'s inventory
  50. set {case::player::%{_player}%::open} to true
  51. set {case::player::%{_player}%::openwait} to true
  52. open chest with 6 rows named "&6Skrzynia &c%{_case}%" to {_player}
  53. wait 1 tick
  54. loop {case::%{_case}%::itemlist::*}:
  55. set {_skin%loop-index%} to loop-value
  56. loop (size of {case::%{_case}%::itemlist::*}) times:
  57. format slot loop-number + 26 of {_player} with 1 of {_skin%loop-number%} to be unstealable
  58. loop 9 times:
  59. set {_item%loop-number%} to random element out of {case::%{_case}%::itemlist::*}
  60. format slot loop-number + 8 of {_player} with 1 of {_item%loop-number%} to be unstealable
  61. format slot loop-number - 1 of {_player} with 1 of black stained glass pane to be unstealable
  62. format slot loop-number + 17 of {_player} with 1 of black stained glass pane to be unstealable
  63. format slot 4 of {_player} with 1 of hopper to be unstealable
  64. set {_random} to random integer between 20 and 30
  65. wait 1 seconds
  66. loop {_random} times:
  67. if loop-number > 15:
  68. loop loop-number - 12 times:
  69. wait 1 tick
  70. else:
  71. wait 3 tick
  72. play raw sound "mob.skeleton.death" at {_player} with pitch 8 volume 1
  73. loop 8 times:
  74. set {_item%loop-number-2%} to {_item%loop-number-2 + 1%}
  75. if {case::player::%{_player}%::open} is true:
  76. format slot loop-number-2 + 8 of {_player} with 1 of {_item%loop-number-2%} to be unstealable
  77. set {_item9} to random element out of {case::%{_case}%::itemlist::*}
  78. if {case::player::%{_player}%::open} is true:
  79. format slot 17 of {_player} with 1 of {_item9} to be unstealable
  80. set {case::player::%{_player}%::open} to false
  81. wait 3 seconds
  82. open chest with 1 rows named "&6Wygrales:" to {_player}
  83. send "{@tag} &7Odbierz swoja nagrode." to {_player}
  84. wait 1 tick
  85. set slot 4 of current inventory of {_player} to {_item5}
  86. play raw sound "mob.endermen.portal" at {_player} with pitch 0.1 volume 1
  87. set {case::player::%{_player}%::openwait} to false
  88. else:
  89. send "{@tag} &7W tej skrzyni nie mozna nic wylosowac!" to {_player}
  90. command /case [<text="null">] [<text>] [<text>]:
  91. trigger:
  92. if player has permission "case.*":
  93. if arg 1 is not "add" or "remove" or "edit" or "give" or "list" or "method":
  94. send "{@tag}"
  95. send "&6/case add <name> &8- &7Dodaje nowa skrzynke."
  96. send "&6/case remove <name> &8- &7Usuwa skrzynke."
  97. send "&6/case edit <name> &8- &7Edytuje zawartosc skrzyni."
  98. send "&6/case give <name> <player> &8- &7Daje nam klucz i skrzynie."
  99. send "&6/case list &8- &7Lista skrzyn w gui."
  100. if arg 1 is "add":
  101. if arg 2 is set:
  102. loop {case::chestlist::*}:
  103. if loop-value is arg 2:
  104. send "{@tag} &7Taka skrzynia juz istnieje!"
  105. stop
  106. add arg 2 to {case::chestlist::*}
  107. send "{@tag} &7Dodano skrzynie o nazwie &6%arg 2%&7."
  108. else:
  109. send "&6/case add <name>"
  110. if arg 1 is "remove":
  111. if arg 2 is set:
  112. loop {case::chestlist::*}:
  113. if loop-value is arg 2:
  114. remove arg 2 from {case::chestlist::*}
  115. delete {case::%arg 2%::itemlist::*}
  116. send "{@tag} &7Usunieto skrzynie o nazwie &6%arg 2%&7."
  117. stop
  118. send "{@tag} &7Taka skrzynia nie istnieje!"
  119. else:
  120. send "&6/case remove <name>"
  121. if arg 1 is "edit":
  122. if arg 2 is set:
  123. loop {case::chestlist::*}:
  124. if loop-value is arg 2:
  125. function "edit" {player and arg 2}
  126. stop
  127. send "{@tag} &7Taka skrzynia nie istnieje!"
  128. else:
  129. send "&6/case additem <name>"
  130. if arg 1 is "give":
  131. if arg 2 is set:
  132. loop {case::chestlist::*}:
  133. if loop-value is arg 2:
  134. if arg 3 is set:
  135. set {_player} to arg 3 parsed as offlineplayer
  136. else:
  137. set {_player} to player
  138. if {_player} is online:
  139. set {_lore} to "%{case::%arg 2%::itemlist::*}%"
  140. replace all ", " with "|| &8- &c" in {_lore}
  141. replace all "and " with "|| &8- &c" in {_lore}
  142. add 64 chest named "&6%arg 2%" with lore " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || " to {_player}'s inventory
  143. add 64 tripwire hook named "&6Klucz do skrzyni &c%arg 2%" to {_player}'s inventory
  144. stop
  145. send "{@tag} &7Taka skrzynia nie istnieje!"
  146. else:
  147. send "&6/case givechest <name>"
  148. if arg 1 is "list":
  149. function "list" {player};
  150. if arg 1 is "method":
  151. set {_player} to arg 3 parsed as player
  152. if {_player}'s inventory contains tripwire hook named "&6Klucz do skrzyni &c%arg 2%":
  153. set {_lore} to "%{case::%arg 2%::itemlist::*}%"
  154. replace all ", " with "|| &8- &c" in {_lore}
  155. replace all "and " with "|| &8- &c" in {_lore}
  156. if {_player}'s inventory contains chest named "&6%arg 2%" with lore " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || ":
  157. function "opening" {{_player} and arg 2};
  158. else:
  159. send "{@tag} &7Nie posiadasz tej skrzyni!" to {_player}
  160. else:
  161. send "{@tag} &7Nie posiadasz klucza do tej skrzyni!" to {_player}
  162. on inventory close:
  163. if {case::player::%player%::open} is true:
  164. set {case::player::%player%::open} to false
  165. send "{@tag} &7Zamknieto podglad losowania."
  166. if {case::player::%player%::openedit} is set:
  167. clear {case::%{case::player::%player%::openedit}%::itemlist::*}
  168. loop 27 times:
  169. if slot "%loop-number - 1%" parsed as an integer of current inventory of player is not air:
  170. set {_item} to slot loop-number - 1 of current inventory of player
  171. add {_item} to {case::%{case::player::%player%::openedit}%::itemlist::*}
  172. clear {case::player::%player%::openedit}
  173. send "{@tag} &7Zapisano."
  174. on quit:
  175. if {case::player::%player%::open} is true:
  176. set {case::player::%player%::open} to false
  177. on death:
  178. if {case::player::%victim%::open} is true:
  179. set {case::player::%victim%::open} to false
  180. on right click:
  181. if player's tool is chest:
  182. loop {case::chestlist::*}:
  183. if loop-value is uncolored name of player's tool:
  184. cancel event
  185. set {_lore} to "%{case::%loop-value%::itemlist::*}%"
  186. replace all ", " with "|| &8- &c" in {_lore}
  187. replace all "and " with "|| &8- &c" in {_lore}
  188. set lore of player's tool to " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || "
  189. execute player command "case method %uncolored name of player's tool% %player%"
  190. if player's tool is tripwire hook:
  191. if name of player's tool contains "Klucz do skrzyni":
  192. cancel event
  193. function "list" {player};
  194. on mine of stone:
  195. chance of {@chance chest}%:
  196. set {_element} to random element out of {case::chestlist::*}
  197. set {_lore} to "%{case::%{_element}%::itemlist::*}%"
  198. replace all ", " with "|| &8- &c" in {_lore}
  199. replace all "and " with "|| &8- &c" in {_lore}
  200. drop chest named "&6%{_element}%" with lore " || &6W tej skrzyni mozesz zdobyc: || || &8- &c%{_lore}% || "
  201. play raw sound "mob.endermen.portal" at player with pitch 0.001 volume 1
  202. send "{@tag} &7Zdobyles skrzynie &6%{_element}%&7!"
  203. chance of {@chance key}%:
  204. set {_element} to random element out of {case::chestlist::*}
  205. drop tripwire hook named "&6Klucz do skrzyni &c%{_element}%"
  206. play raw sound "mob.endermen.portal" at player with pitch 0.001 volume 1
  207. send "{@tag} &7Zdobyles klucz do skrzyni &6%{_element}%&7!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement