buttons.txt 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. sign.started(gamesignloc);
  2. rankingtable = "buttonranks";
  3. game_short = "button";
  4. event.load("block_click");
  5. event.load("player_logout");
  6. event.load("player_giveup");
  7. event.load("player_join");
  8. event.load("living_pre_hurt");
  9. clicked = 0;
  10. checked = 0;
  11. tfn = 5; //timeForNext in sec
  12. factor = 0.98; //Faktor, um den tfn vermindert wird
  13. sgoto(tfn * 20, "gameover");
  14. gamename = "§2Buttons";
  15. @nextbutton
  16. while(toclick == lastclick) {
  17. toclick = list.getIndex(buttons, math.random(0, list.getSize(buttons) - 1));
  18. }
  19. if(direction == "x") {
  20. markedloc = loc.mod(toclick, number, 0, 0);
  21. block.set(markedloc, markblock);
  22. } elseif(direction == "z") {
  23. markedloc = loc.mod(toclick, 0, 0, number);
  24. block.set(markedloc, markblock);
  25. }
  26. @wait
  27. wait();
  28. if(event == "living_pre_hurt") {
  29. if(!isPlayer(living_entity)) {
  30. goto("wait");
  31. }
  32. player = living_entity;
  33. }
  34. if(player.hasMinigameId(player, script_id)) {
  35. ignoreGoto(event);
  36. }
  37. goto("wait");
  38. @player_join
  39. entity.teleport(player, spawn_loc);
  40. living.setHealth(player, 20);
  41. player.setHunger(player, 20);
  42. player.setSaturation(player, 5);
  43. player.clearInventory(player);
  44. display.reset(player);
  45. display.add(player, 1, gamename);
  46. display.add(player, 2, "Time for next click:");
  47. display.add(player, 3, math.roundComma(tfn, 2));
  48. status.addTimed(player, 0, tfn * 20, "Timer");
  49. display.add(player, 4, "Points: ", text.number(clicked));
  50. msg.prefix(player, "§2Buttons", "Click the correct button in time.");
  51. gameover_player = player;
  52. goto("wait");
  53. @living_pre_hurt
  54. cancel = true;
  55. goto("wait");
  56. @block_click
  57. cancel = true;
  58. if(block_loc == toclick) {
  59. tfn *= factor;
  60. tfn = math.roundComma(tfn, 2);
  61. display.add(player, 3, tfn);
  62. status.addTimed(player, 0, tfn * 20, "Timer");
  63. display.add(player, 4, "Points: ", text.number(++clicked));
  64. sgoto(tfn * 20, "gameover");
  65. block.set(markedloc, originblock);
  66. lastclick = toclick;
  67. goto("nextbutton");
  68. } else {
  69. msg.prefix(player, gamename, "You clicked the wrong button.");
  70. goto("coregameover");
  71. }
  72. goto("wait");
  73. @gameover
  74. player = gameover_player;
  75. if(++checked > clicked) {
  76. msg.prefix(player, gamename, "You were too slow.");
  77. goto("coregameover");
  78. }
  79. goto("wait");
  80. @coregameover
  81. player_id = player.getId(player);
  82. playedgames = minigame.getPlayed(player_id, game_short) + 1;
  83. minigame.setPlayed(player_id, game_short, playedgames);
  84. last_record = ranking.getPoints(rankingtable, player_id);
  85. if(last_record < clicked) {
  86. record = clicked;
  87. diff = clicked - last_record;
  88. } else {
  89. record = last_record;
  90. }
  91. ranking.setPoints(rankingtable, player_id, record);
  92. minigame.statsHeader(player, gamename, "§e");
  93. minigame.statsLine(player, "§e", "Points", text.number(clicked));
  94. minigame.statsLine(player, "§e", "Your record", text.number(last_record));
  95. if(diff != null) {
  96. msg(player, " §e- §rBeat own record by §e", text.number(diff));
  97. }
  98. minigame.statsLine(player, "§e", "Played games", text.number(playedgames));
  99. money.addBoost(player, math.round(clicked / 4));
  100. @player_giveup
  101. @player_logout
  102. block.set(markedloc, originblock);
  103. script = script.getFromId(script_id);
  104. minigame.kickPlayer(script, player);
  105. minigame.term(script, gamesignloc);
  106. term();