Создание таймера AFK с C#C#

Место общения программистов C#
Ответить
Anonymous
 Создание таймера AFK с C#

Сообщение Anonymous »

Я пытаюсь создать таймер, где, если пользователь не ставит какого -либо ввода клавиатуры на 10 минут, то появится консольное сообщение, в котором говорится, что пользователь является AFK. Я очень новичок в C#, поэтому я бы с радостью воспользовался любой помощью.using System.Configuration.Assemblies;
using System;
using System.Timers;

public class PlayerStats {

private Timer afkTimer;

// Health-related stats
public const int StartingHealth = 100;
public const int DeathHealth = 0;
public const int CurrentHealth = 100;

// Player attributes
public int Bonus { get; set; } = 0;
public int InventorySpace { get; set; } = 9;
public int JumpHeight { get; set; } = 100; // Approximately in centimeters
public int Scaling { get; set; } = 1;

// Status bars
public const int MaxWaterBar = 100;
public const int MaxFoodBar = 100;
public const int MaxEnergyBar = 100;

// Crouching
public const int CrouchHeight = -50; // Approximately in centimeters

// Oxygen limits
public int MaxOxygenSmall { get; set; } = 3;
public int MaxOxygenMedium { get; set; } = 2;
public int MaxOxygenLarge { get; set; } = 1;

// Player status flags
public bool IsInventoryFull { get; set; } = false;
public bool IsEnergyBarFull { get; set; } = false;
public bool IsFoodBarFull { get; set; } = false;
public bool IsWaterBarFull { get; set; } = false;
public bool IsHealthBarFull { get; set; } = false;
public bool IsWearingSpaceSuit { get; set; } = false;
public bool IsAFK { get; set; } = false;

// AFK handling
public const int AfkTimeUntilKick = 10; // Minutes

// Environment properties
public int SurroundingGravity { get; set; } = 0;
public int SurroundingNpcEntities { get; set; } = 0;
public const int SurroundingNpcEntityCap = 25;

public void CheckHealthStatus(){
if (CurrentHealth 0){
Console.WriteLine("Player is Alive!");
}
}

public void CheckIfPlayerAFK(){
if (AfkTimeUntilKick >= 10){
Console.WriteLine("Player Is AFK!");
afkTimer = new Timer(1000); // Timer interval in milliseconds (1000ms = 1 second)
afkTimer.Elapsed += OnAfkTimerElapsed; // Attach event handler
afkTimer.AutoReset = true; // Keep the timer running repeatedly
afkTimer.Enabled = true; // Start the timer
}
}

}

< /code>
Я попытался посмотреть на другие вопросы переполнения стека, касающиеся этого, но в нем ничего не было в смешивании ввода клавиатуры и этого. Я ожидаю, что это будет писать сообщение один раз каждые 10 минут, если у игрока не было никакого ввода клавиатуры в течение этих 10 минут. Не стесняйтесь задавать любые вопросы, спасибо!
После того, как Cory Green помогла, эта ошибка выскочила: операторы верхнего уровня должны предварительно просмотреть пространство имен и типовые объявления

Подробнее здесь: https://stackoverflow.com/questions/793 ... th-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»