123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- sign.started(gamesignloc);
- rankingtable = "buttonranks";
- game_short = "button";
- event.load("block_click");
- event.load("player_quit");
- event.load("player_giveup");
- event.load("minigame_join");
- event.load("entity_damage");
- clicked = 0;
- checked = 0;
- tfn = 5; //timeForNext in sec
- factor = 0.98; //Faktor, um den tfn vermindert wird
- sgoto(tfn * 20, "gameover");
- gamename = "§2Buttons";
- @wait
- wait();
- if(event == "entity_damage") {
- if(!isPlayer(entity)) {
- goto("wait");
- }
- player = entity;
- }
- if(player.hasMinigameId(player, script_id)) {
- ignoreGoto(event);
- }
- goto("wait");
- @nextbutton
- while(toclick == lastclick) {
- toclick = list.getIndex(buttons, math.random(0, list.getSize(buttons) - 1));
- }
- if(direction == "x") {
- marked_block = block.get(loc.mod(toclick, number, 0, 0));
- } elseif(direction == "z") {
- marked_block = block.get(loc.mod(toclick, 0, 0, number));
- }
- block.setMaterial(marked_block, mark_material);
- goto("wait");
- @minigame_join
- entity.teleport(player, spawn_loc);
- living.setHealth(player, 20);
- player.setHunger(player, 20);
- player.setSaturation(player, 5);
- player.clearInventory(player);
- sb.add(player, 99, gamename);
- sb.add(player, 98, "Time for next click:");
- sb.add(player, 97, math.roundComma(tfn, 2));
- sb.add(player, 96, string.concat("Points: ", string.number(clicked)));
- sb.add(player, 95, sb.getSpacer());
- msg.prefix(player, "§2Buttons", "Click the correct button in time.");
- gameover_player = player;
- goto("nextbutton");
- @entity_damage
- cancel = true;
- goto("wait");
- @block_click
- if(block == null) {
- goto("wait");
- }
- if(slot.isOffHand(hand)) {
- goto("wait");
- }
- if(action != "RIGHT_CLICK_BLOCK") {
- goto("wait");
- }
- if(block.isType(block, "OAK_WALL_SIGN")) {
- goto("wait");
- }
- cancel = true;
- block_loc = block.getLocation(block);
- if(block_loc == toclick) {
- tfn *= factor;
- tfn = math.roundComma(tfn, 2);
- sb.add(player, 97, tfn);
- sb.add(player, 96, "Points: ", string.number(++clicked));
- sgoto(tfn * 20, "gameover");
- block.setMaterial(marked_block, origin_material);
- lastclick = toclick;
- goto("nextbutton");
- }
- msg.prefix(player, gamename, "You clicked the wrong button.");
- goto("coregameover");
- @gameover
- player = gameover_player;
- if(++checked > clicked) {
- msg.prefix(player, gamename, "You were too slow.");
- goto("coregameover");
- }
- goto("wait");
- @coregameover
- player_id = player.getId(player);
- playedgames = minigame.getPlayed(player_id, game_short) + 1;
- minigame.setPlayed(player_id, game_short, playedgames);
- last_record = ranking.getPoints(rankingtable, player_id);
- if(last_record < clicked) {
- record = clicked;
- diff = clicked - last_record;
- } else {
- record = last_record;
- }
- ranking.setPoints(rankingtable, player_id, record);
- minigame.statsHeader(player, gamename, "§e");
- minigame.statsLine(player, "§e", "Points", string.number(clicked));
- minigame.statsLine(player, "§e", "Your record", string.number(last_record));
- if(diff != null) {
- msg.string(player, string.concat(" §e- §rBeat own record by §e", string.number(diff)));
- }
- minigame.statsLine(player, "§e", "Played games", string.number(playedgames));
- //money.addBoost(player, math.round(clicked));
- @player_giveup
- @player_quit
- block.setMaterial(marked_block, origin_material);
- sb.remove(player, 99);
- sb.remove(player, 98);
- sb.remove(player, 97);
- sb.remove(player, 96);
- sb.remove(player, 95);
- script = script.getFromId(script_id);
- minigame.kickPlayer(script, player);
- minigame.term(script, gamesignloc);
- term();
|