#Help me fix the logic

1 messages · Page 1 of 1 (latest)

lyric trout
#
import { world, Player, system } from '@minecraft/server';

let playerTimers = {};
let testtime = 2.5;
let maxTime = 4; //seconds (its x - 1 is true number to compare)

world.afterEvents.entityHitEntity.subscribe(({ damagingEntity: damage }) => {
  if (damage.typeId !== 'minecraft:player') return;
  let playerId = damage.id;
  let currentTimer = playerTimers[playerId];
  
  let time = 0;
  let intervalId = system.runInterval(() => {
    if (++time >= testtime * 20) {
        if (currentTimer) {
            system.clearRun(currentTimer.intervalId);
            damage.sendMessage(`The counter has been reset due to the new attack!`); //command
        }
    } else if (++time >= maxTime * 20) {
          system.clearRun(intervalId);
          delete playerTimers[playerId];
          damage.sendMessage(`Player ${damage.name}'s counter completed after ${maxTime - 1} seconds.`); //notice when done
      }
  });
  playerTimers[playerId] = { intervalId };
});```
this is my code, but it keeps looping, I want to
1. Player 1 hit, start the timer
2. before 3.5 secs if P1 hit again -> nothing happens
3. after 3.5 secs if P1 hit again -> both reset timer and execute //command
4. If P1 doesnt do anything -> after 0.5 secs the timer reset, stop and wait till P1 hit again to run again
lost tiger
#

hm

#

Ssi bal?

lyric trout