core.txt 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. event.load("human_hurt");
  2. event.load("entity_click");
  3. event.load("inv_click");
  4. event.load("skill_showshop");
  5. timestamp = map.new(); //TimeStamp for Felsmagier-SkillShop
  6. stable_loc = loc.new(world.getStory(), -1584, 66, -57);
  7. prefix_skill = "§2Skill";
  8. msg("dev", "§bQuests: §rAdmont loaded.");
  9. @wait
  10. wait();
  11. ignoreGoto(event);
  12. goto("wait");
  13. @human_hurt
  14. if(!isPlayer(entity)) {
  15. goto("wait");
  16. }
  17. player = entity;
  18. entity = human;
  19. goto("human_core");
  20. @entity_click
  21. if(hand == "OFF_HAND") {
  22. goto("wait");
  23. }
  24. if(entity.getType(entity) != "human") {
  25. goto("wait");
  26. }
  27. goto("human_core");
  28. @human_core
  29. checkAdmontStable();
  30. if(player.hasQuest2(player)) {
  31. goto("wait");
  32. }
  33. entity_name = entity.getName(entity);
  34. if(entity_name == "Oma") {
  35. inv = inv.new("333333333");
  36. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fDer Anfang...", "§e...beginnt immer mit einer netten Oma."));
  37. inv.setItem(inv, 8, read.item("minecraft:enchanted_book", 1, "§fMülleimer", "§eOma räumt für dich auf"));
  38. inv.open(inv, player, "Quests: Oma");
  39. goto("wait");
  40. }
  41. if(entity_name == "Dieter") {
  42. inv = inv.new("333333333");
  43. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fGaumenschmauß...", "§e...für die ganze Familie."));
  44. inv.open(inv, player, "Quests: Dieter");
  45. goto("wait");
  46. }
  47. if(entity_name == "Zauberlehrling") {
  48. inv = inv.new("333333333");
  49. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fDer Felsmagier...", "§e...hat zauberhafte Skills für dich."));
  50. inv.open(inv, player, "Quests: Zauberlehrling");
  51. goto("wait");
  52. }
  53. if(entity_name == "Felsmagier") {
  54. if(time.getMillis() - map.getOrDefault(timestamp, player.getUuid(player), 0) < 120000) { //2 Minutes
  55. skill.showShop(player, "skill.subcu_inv", "skill.comeback", "skill.head_human", "skill.head_monster", "skill.fly10min", "skill.grow", "skill.haste", "skill.speed", "skill.jump_boost", "skill.dolphin", "skill.block_up", "skill.block_down", "skill.fire_arrow", "skill.cobweb_miner", null, null, null, null);
  56. } else {
  57. msg.prefix(player, "§dFelsmagier", "Du musst zuerst ein paar Aufgaben für mich erledigen. Finde meinen Zauberlehrling, der hilft dir weiter.");
  58. }
  59. goto("wait");
  60. }
  61. if(entity_name == "Peter") {
  62. inv = inv.new("333333333");
  63. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fErstes Date"));
  64. inv.setItem(inv, 1, read.item("minecraft:enchanted_book", 1, "§fNeue Hose"));
  65. inv.open(inv, player, "Quests: Peter");
  66. goto("wait");
  67. }
  68. if(entity_name == "Merle") {
  69. inv = inv.new("333333333");
  70. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fMerle in Nöten"));
  71. inv.open(inv, player, "Quests: Merle");
  72. goto("wait");
  73. }
  74. if(entity_name == "Herbert") {
  75. inv = inv.new("333333333");
  76. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fSchatz von Admont"));
  77. inv.setItem(inv, 1, read.item("minecraft:enchanted_book", 1, "§fAlbtraum"));
  78. inv.open(inv, player, "Quests: Herbert");
  79. goto("wait");
  80. }
  81. if(entity_name == "Gustav") {
  82. inv = inv.new("333333333");
  83. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fHelfende Hand"));
  84. inv.open(inv, player, "Quests: Gustav");
  85. goto("wait");
  86. }
  87. if(entity_name == "Gertrude") {
  88. inv = inv.new("333333333");
  89. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fZauberlehrling"));
  90. inv.open(inv, player, "Quests: Gertrude");
  91. goto("wait");
  92. }
  93. if(entity_name == "Bernd") {
  94. inv = inv.new("333333333");
  95. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fHide and Seek"));
  96. inv.open(inv, player, "Quests: Bernd");
  97. goto("wait");
  98. }
  99. if(entity_name == "Kunibert") {
  100. inv = inv.new("333333333");
  101. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fKräutermeister"));
  102. inv.open(inv, player, "Quests: Kunibert");
  103. goto("wait");
  104. }
  105. if(entity_name == "Bauer") {
  106. inv = inv.new("333333333");
  107. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fErntezeit"));
  108. inv.setItem(inv, 1, read.item("minecraft:enchanted_book", 1, "§fSpezialwunsch"));
  109. inv.open(inv, player, "Quests: Bauer");
  110. goto("wait");
  111. }
  112. if(entity_name == "Ulf") {
  113. inv = inv.new("333333333");
  114. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fIn Eile"));
  115. inv.open(inv, player, "Quests: Ulf");
  116. goto("wait");
  117. }
  118. if(entity_name == "Isabell") {
  119. inv = inv.new("333333333");
  120. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fFür die Wissenschaft!"));
  121. inv.open(inv, player, "Quests: Isabell");
  122. goto("wait");
  123. }
  124. if(entity_name == "Olaf") {
  125. inv = inv.new("333333333");
  126. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fReinigung"));
  127. inv.setItem(inv, 1, read.item("minecraft:enchanted_book", 1, "§fMitbringsel"));
  128. inv.open(inv, player, "Quests: Olaf");
  129. goto("wait");
  130. }
  131. if(entity_name == "Rolf") {
  132. inv = inv.new("333333333");
  133. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fTücher"));
  134. inv.open(inv, player, "Quests: Rolf");
  135. goto("wait");
  136. }
  137. if(entity_name == "Schmied") {
  138. inv = inv.new("333333333");
  139. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fDie Uhr tickt"));
  140. inv.open(inv, player, "Quests: Schmied");
  141. goto("wait");
  142. }
  143. if(entity_name == "Förster") {
  144. inv = inv.new("333333333");
  145. inv.setItem(inv, 0, read.item("minecraft:enchanted_book", 1, "§fIch und mein Holz"));
  146. inv.open(inv, player, "Quests: Förster");
  147. goto("wait");
  148. }
  149. goto("wait");
  150. @inv_click
  151. if(inv_name == "Quests: Oma") {
  152. if(inv_slot == 0) {
  153. quest.start(player, "story/admont/der_anfang");
  154. goto("wait");
  155. }
  156. if(inv_slot == 8) {
  157. waste_inv = inv.new("111111111111111111111111111");
  158. inv.open(waste_inv, player, "Mülleimer");
  159. goto("wait");
  160. }
  161. goto("wait");
  162. }
  163. if(inv_name == "Quests: Dieter") {
  164. if(inv_slot == 0) {
  165. quest.start(player, "story/admont/gaumenschmauss");
  166. goto("wait");
  167. }
  168. goto("wait");
  169. }
  170. if(inv_name == "Quests: Zauberlehrling") {
  171. if(inv_slot == 0) {
  172. quest.start(player, "story/admont/felsmagier");
  173. goto("wait");
  174. }
  175. goto("wait");
  176. }
  177. if(inv_name == "Quests: Peter") {
  178. if(inv_slot == 0) {
  179. quest.start(player, "story/admont/erstes_date");
  180. goto("wait");
  181. }
  182. if(inv_slot == 1) {
  183. quest.start(player, "story/admont/neue_hose");
  184. goto("wait");
  185. }
  186. goto("wait");
  187. }
  188. if(inv_name == "Quests: Merle") {
  189. if(inv_slot == 0) {
  190. quest.start(player, "story/admont/merle_in_noeten");
  191. goto("wait");
  192. }
  193. goto("wait");
  194. }
  195. if(inv_name == "Quests: Herbert") {
  196. if(inv_slot == 0) {
  197. if(script.isActiveName("scripts/story/admont/schatz_von_admont.txt")) {
  198. msg.prefix(player, "§dHerbert", "Diese Quest ist momentan aktiv und kann nicht vergeben werden.");
  199. goto("wait");
  200. }
  201. quest.start(player, "story/admont/schatz_von_admont");
  202. goto("wait");
  203. }
  204. if(inv_slot == 1) {
  205. quest.start(player, "story/admont/albtraum");
  206. goto("wait");
  207. }
  208. goto("wait");
  209. }
  210. if(inv_name == "Quests: Gustav") {
  211. if(inv_slot == 0) {
  212. quest.start(player, "story/admont/helfende_hand");
  213. goto("wait");
  214. }
  215. goto("wait");
  216. }
  217. if(inv_name == "Quests: Gertrude") {
  218. if(inv_slot == 0) {
  219. quest.start(player, "story/admont/zauberlehrling");
  220. goto("wait");
  221. }
  222. goto("wait");
  223. }
  224. if(inv_name == "Quests: Bernd") {
  225. if(inv_slot == 0) {
  226. quest.start(player, "story/admont/hide_and_seek");
  227. goto("wait");
  228. }
  229. goto("wait");
  230. }
  231. if(inv_name == "Quests: Kunibert") {
  232. if(inv_slot == 0) {
  233. quest.start(player, "story/admont/kraeutermeister");
  234. goto("wait");
  235. }
  236. goto("wait");
  237. }
  238. if(inv_name == "Quests: Bauer") {
  239. if(inv_slot == 0) {
  240. quest.start(player, "story/admont/erntezeit");
  241. goto("wait");
  242. }
  243. if(inv_slot == 1) {
  244. quest.start(player, "story/admont/spezialwunsch");
  245. goto("wait");
  246. }
  247. goto("wait");
  248. }
  249. if(inv_name == "Quests: Ulf") {
  250. if(inv_slot == 0) {
  251. quest.start(player, "story/admont/in_eile");
  252. goto("wait");
  253. }
  254. goto("wait");
  255. }
  256. if(inv_name == "Quests: Isabell") {
  257. if(inv_slot == 0) {
  258. quest.start(player, "story/admont/fuer_die_wissenschaft");
  259. goto("wait");
  260. }
  261. goto("wait");
  262. }
  263. if(inv_name == "Quests: Olaf") {
  264. if(inv_slot == 0) {
  265. quest.start(player, "story/admont/reinigung");
  266. goto("wait");
  267. }
  268. if(inv_slot == 1) {
  269. quest.start(player, "story/admont/mitbringsel");
  270. goto("wait");
  271. }
  272. goto("wait");
  273. }
  274. if(inv_name == "Quests: Rolf") {
  275. if(inv_slot == 0) {
  276. quest.start(player, "story/admont/tuecher");
  277. goto("wait");
  278. }
  279. goto("wait");
  280. }
  281. if(inv_name == "Quests: Schmied") {
  282. if(inv_slot == 0) {
  283. quest.start(player, "story/admont/die_uhr_tickt");
  284. goto("wait");
  285. }
  286. goto("wait");
  287. }
  288. if(inv_name == "Quests: Förster") {
  289. if(inv_slot == 0) {
  290. quest.start(player, "story/admont/ich_und_mein_holz");
  291. goto("wait");
  292. }
  293. goto("wait");
  294. }
  295. if(inv_name == "Skillshop") {
  296. if(item.getType(item) == "minecraft:air") {
  297. goto("wait");
  298. }
  299. skill_name = removeFormat(item.getName(item));
  300. tech_name = skill.getTechName(skill_name);
  301. if(skill.isPermanent(skill_name)) {
  302. amount = skill.getAmount(player, tech_name);
  303. if(amount >= 1) {
  304. goto("wait");
  305. }
  306. }
  307. cost = skill.getCost(skill_name);
  308. if(!hasEnoughMoney(player, cost)) {
  309. msg.prefix(player, prefix_skill, "Du hast nicht genug Snuvis.");
  310. goto("wait");
  311. }
  312. subMoney(player, cost);
  313. skill.addAmount(player, tech_name, 1);
  314. inv.setItem(inv, inv_slot, skill.getShopItem(player, tech_name));
  315. inv.update(player);
  316. }
  317. goto("wait");
  318. @skill_showshop
  319. player = getScriptVar("player");
  320. shop_type = getScriptVar("shop_type");
  321. if(shop_type == "foerster") {
  322. skill.showShop(player, "skill.timber", "skill.better_shears", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
  323. }
  324. goto("wait");
  325. function checkAdmontStable() {
  326. list = living.near($stable_loc, 30);
  327. size = list.getSize(list);
  328. entities = 0;
  329. for(i = 0; i < size; i++) {
  330. element = list.getIndex(list, i);
  331. entity_type = entity.getType(element);
  332. if(entity_type == "cow" || entity_type == "pig" || entity_type == "sheep") {
  333. entities++;
  334. }
  335. }
  336. while(entities > 70) {
  337. index = math.random(0, size - 1);
  338. element = list.getIndex(list, index);
  339. entity_type = entity.getType(element);
  340. if(entity_type == "cow" || entity_type == "pig" || entity_type == "sheep") {
  341. entity.remove(element);
  342. list.removeIndex(list, index);
  343. entities--;
  344. size--;
  345. }
  346. }
  347. }