Делаю анти АФК системку. Принцип работы такой - если игрок (не бот и не зритель) в течение N минут ничего не делает, то игра его выкинет из катки, а его войска станут нейтралами. Если игрок делает что-либо в течение этого времени, то счётчик минут обнуляется. Как думаете, сколько минут достаточно на АФК, чтобы игрок мог нормально сделать, так сказать, неотложные дела? 5 минут, 7, 10 или 15? Исходя из вашего опыта мультиплеерных каток?

Ну если взять стандартное мили 1х1, где обычно катки длятся 10-15 минут, то думаю афк на 2 минуты уничтожит игрока на первых 10 минутах. Если катка затянулась на полчаса, то афк 5-10 минут может уничтожить игрока. Если игра затянулась на 10 часов, то думаю, часок можно и поафкашить.
Вот тут афк на 6.5 часов было норм для игроков
Так что все зависит от игры, геймплея, условий, где это критично а где нет. Может быть у тебя будет не конкретное число минут для определения афк и передача войск союзнику, а прогрессирующая шкала, чем дальше катка тем дольше можно быть афк, ибо самая жара действий обычно происходит на старте-середине игры.
И я не уверен, что стоит кикать игрока, можно просто передать контроль союзникам, пока он не вернется. Но это уже твоя авторская идея и система, как посчитаешь правильным для своей карты.

И да, АФК - от англ. AFK = Away From Keyboard, что в переводе отошел от клавиатуры.
`
ОЖИДАНИЕ РЕКЛАМЫ...
38
AFK ты имеешь ввиду? Тут надо самому понять, сколько времени нужно бездействовать чтобы сторона противника получила высокие шансы победы.
Может, достаточно через минуту афк шарить полный союз с контролем с остальными и уведомлять игрока об этом диалогом? По нажатии "продолжить" отключать полный союз
ОФК - впервые такое вижу, как это переводится?
Ответы (3)
23
ScorpioT1000, да, AFK я имел в виду, сорян, сейчас исправлю)
Союзы не катят, поскольку есть функционал объявления войны и заключения союза. То есть, тут всё меняться будет в процессе игры. И может случиться ситуация, что союзников нет ) Лишь вариант сделать поражение игроку остаётся. Вопрос лишь во времени проверки...
38
EugeAl, так тем более у тебя уже все данные на руках и функционал есть. И зачем выкидывать единственного игрока в своей команде? Он мешает только себе
Короче, выкинуть по ошибке гораздо дороже для репутации мода, чем не выкинуть реально ливнувшего
23
ScorpioT1000, да, тоже как вариант, если он 1, то не трогать, а если с союзниками - передать союзникам.
25
Ну если взять стандартное мили 1х1, где обычно катки длятся 10-15 минут, то думаю афк на 2 минуты уничтожит игрока на первых 10 минутах. Если катка затянулась на полчаса, то афк 5-10 минут может уничтожить игрока. Если игра затянулась на 10 часов, то думаю, часок можно и поафкашить.
Вот тут афк на 6.5 часов было норм для игроков
Так что все зависит от игры, геймплея, условий, где это критично а где нет. Может быть у тебя будет не конкретное число минут для определения афк и передача войск союзнику, а прогрессирующая шкала, чем дальше катка тем дольше можно быть афк, ибо самая жара действий обычно происходит на старте-середине игры.
И я не уверен, что стоит кикать игрока, можно просто передать контроль союзникам, пока он не вернется. Но это уже твоя авторская идея и система, как посчитаешь правильным для своей карты.

И да, АФК - от англ. AFK = Away From Keyboard, что в переводе отошел от клавиатуры.
Принятый ответ
Ответы (1)
23
konvan5, хм... ладно, буду обдумывать, как сделать. Спасибо )
28
Возьми примерное время критичного поноса. Это где-то 10 минут невыносимости. На первых 5 минутах выдавать одноразовое за игровой сеанс для игрока диалоговое окно с предупреждением, что игрок может быть кикнут
Ответы (10)
23
rsfghd, может, лучше громкий звук запустить, вместе с сообщением? Просто если игрок афк, он может не увидеть окно, а звук услышит. Прибежит на звук, а там оповещение.
23
rsfghd, ну это жёстко :D Пожалуй, какой нибудь резкий звук из самой игры пойдёт.
28
EugeAl, да, думаю с таким звуком людям в туалет больше не нужно будет, слишком нежно
23
rsfghd, На 1 раз пойдёт, сходят в сортир на всю катку сразу, в быстром темпе, и даже на следующую катку хватит ) а курить за компом будут, лишь бы звуки не слышать )
Но ладно, шутки шутками, а ведь может найтись умник , который попытается систему обойти. Просто если она будет следить за действиями типа спелл каста, начала постройки, создания юнитов итд, игрок может договориться с союзником, чтобы тот агрил на него мобов время от времени, и тогда юниты с автокастом, работающим во время атаки, будут сбивать счётчик. Также атаки других игроков будут сбивать счётчик. Видимо придётся исключить автокастовые абилки из проверки.
Какие ещё проверки для отслеживания тогда стоит сделать?
28
EugeAl, движение камеры. Просто проверяешь разницу координат, если предыдущий х/у не равен текущим, значит камера сместилась и игрок управляет мышкой/стрелками
28
EugeAl, хотя такое синематики мб могут запорить или любое другое триггерное влияние на координаты камеры
23
rsfghd, да, годно. Спасибо) на время синематиков можно отключать проверку)
27
Но ладно, шутки шутками, а ведь может найтись умник , который попытается систему обойти.
Мне кажется, надо просто таймер завести либо на отслеживание нажатия клавиши клавиатуры, либо на отслеживание нажатия мыши. В рефордже это все есть. Мне кажется, что игрок не может ничего не делать долгое время, даже в течении одной минутф. Правда, достатояно кликов мыши отслеживать, тк щелчками игрок постоянно выбирает юнита, выделяет, отдает команды. А вот с клавиатурой есть проблемы, но в целом ивент работает, если не использовать фреймы, либо правильно.
Плюс, варкрафта это стратегия, подразумевающая, что игрок будет следит за всей картой, и камера не будет все время смещена. Если же игроков специально не выставилм в такие условия
23
MpW, нужно на 1.26а. Пожалуй, все таки таймера на отлов х у камеры хватит, вместе с остальными событиями по юнитам.
Ответы (2)
23
konvan5, прогрузилось вроде. Посмотрю)
23
konvan5, Да, нехило так. Ещё и двойной афк) Ок, было познавательно.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.