Zombie AFK command
-
Sharing my AFK command, inspired by THS.Shiniri command reworked it for my uses.
Features
- Paid AFK command ($10,000 per minute).
- If the player moves, they are refunded for the remaining time, and AFK mode is canceled.
cmd_afk(args){ assert(string::to_lower(args[0]) == "!afk"); if (args.size < 2){ self tell("Usage: !afk <minutes>"); return; } if (int(args[1]) < 0){ self tell("You can't be afk for negative time"); return; } if (!isNumeric(args[1])) { self tell("Invalid input! Please enter a valid number."); return; } if (int(args[1]) * 10000 > self.score){ self tell("You don't have enough money to be afk for that long"); return; } self.score -= int(args[1]) * 10000; seconds_to_be_afk = int(args[1]) * 60; if (seconds_to_be_afk > 1800) { self tell("You can't be afk for more than 30 minutes"); return; } counter = 0; for (i = 3; i > 0; i--) { self tell("Going AFK in " + i + "..."); wait 1; } old_origin = self.origin; old_angles = self getPlayerAngles(); for(;;) { if (counter == 0) { self.ignoreme = 1; // Zombies wont find the player self enableInvulnerability(); // God mode is on say(self.name + " is ^1AFK for " + args[1] + " minute(s)"); } else if (counter == seconds_to_be_afk) { self.ignoreme = 0; self disableInvulnerability(); say (self.name + " is no longer AFK"); break; } else if (seconds_to_be_afk - counter <= 10) { self tell("Time afk left: " + (seconds_to_be_afk - counter) + " seconds"); } else if ((seconds_to_be_afk - counter) % 10 == 0) { self tell("Time afk left: " + (seconds_to_be_afk - counter) + " seconds"); } // Check if the player has moved if (self.origin != old_origin || self getPlayerAngles() != old_angles) { remaining_seconds_afk = seconds_to_be_afk - counter; self.ignoreme = 0; self disableInvulnerability(); self tell("You moved! AFK disabled. Refunding remaining time."); self.score += remaining_seconds_afk * 166; say (self.name + " is no longer AFK"); break; } counter++; wait 1; } } isNumeric(str) { if (!isDefined(str) || str == "") { return false; } for (i = 0; i < str.size; i++) { if (str[i] < "0" || str[i] > "9") { return false; } } return true; }