Как запустить таймер для каждого пользователя на сервере - PullRequest
0 голосов
/ 08 апреля 2019

Я работаю на простом игровом сервере, который должен работать следующим образом:

  1. пользователь подключается к серверу и запускает таймер, устанавливая для переменной Quest значение true
  2. таймер обратного отсчетаX секунд
  3. пользователь может отключиться от сервера и снова подключиться с того же или другого устройства, чтобы проверить ход таймера (если переменная Quest == true, квест выполняется)
  4. , когдатаймер достигнет 0, он установит для Quest значение false

сервер должен обрабатывать несколько пользователей одновременно.

моя проблема: я уже выполнил часть 1 и 2, ноя понятия не имею, как подключить переменную к какому-либо имени пользователя.Любая помощь будет оценена

1 Ответ

0 голосов
/ 08 апреля 2019

Если у вас есть что-то вроде:

class GameServer {
    Timer questTimer;
    bool quest;
    // ...

тогда вы можете инкапсулировать это глобальное состояние в свой класс для каждого игрока:

class PlayerState {
    Timer questTimer;
    bool quest;
}

и Dictionary, набираемые по имени игрока для состояния каждого игрока:

class GameServer {
    Dictionary<string, PlayerState> states = new Dictionary<string, PlayerState>();
    // ...

Управление словарями выходит за рамки этого вопроса - статья, приведенная выше, должна дать вам несколько идей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...