Это связано с тем, что эти обработчики не сохраняют область видимости. Из документации для реагирования: реакция документации
Проверьте раздел «no autobinding». Вы должны написать обработчик: onClick = () => {}
Чтобы "бот" игры, вам нужно иметь возможность делать две вещи программно: определять, что происходит в игре, и предоставлять данные для игры. .
Распознать, что происходит в игре, как правило, сложнее. Вот несколько методов для этого:
Генерация входных событий обратно в игру обычно является более простой задачей. Некоторые методы включают:
Обратите внимание, что запуск «бота» в игре обычно является нарушением Условий использования игры и может привести к приостановке, блокировке или худшему. В некоторых юрисдикциях это может повлечь уголовное наказание. Это еще один плюс для использования встроенных в игру возможностей написания сценариев; если он разработан как часть игрового программного обеспечения, то издатель игры, скорее всего, не собирается запрещать вам его использовать.
Это называется ИИ (искусственный интеллект), и на самом деле его несложно воспроизвести. Набор правил и команд на языке программирования вашей игры поможет. Например, бот FPS будет работать, получая координаты тела вашего игрока и настраивая оружие вражеского бота так, чтобы оно прицеливалось по этой координате и начинало стрелять, находясь в определенном диапазоне.
Однажды я самостоятельно написал простой бот для MMORPG. Я использовал AutoHotkey.
Так что я сделал так: я искал на экране имя врага (сохраненное как картинка со шрифтом игры), и скрипт щелкал на несколько пикселей ниже него, чтобы атаковать. Он также отслеживает полоску здоровья и нажимает на горшок, если она слишком низкая.
Очень банально. Но я знаю бота для WoW, который также сделан с помощью AutoHotkey. И я вижу, что у многих других людей была такая же идея (моя не для WoW, но, вероятно, тоже незаконна).
Более продвинутые методы не захватывают экран, а напрямую читают память игры. Чтобы заставить это работать, вам придется проделать много обратной инженерии. И это перестает работать, когда игра обновляется.
Для ботов в стиле FPS вы можете взглянуть на Unreal Development Kit. Насколько я понимаю, здесь есть много исходного кода реальной игры.
Как отдельный человек живет каждый день?
Это своего рода проблема, которую решают ИИ в играх.
Что вы хотите, чтобы ваша сущность делала? Задайте коды для этого. Если вы хотите, чтобы ваш монстр преследовал аватара игрока, монстру нужно просто повернуться лицом к аватару и двигаться к нему. Когда монстр окажется на подходящем расстоянии, он может решить укусить аватар игрока, и этот выбор может быть простым, как AmICloseEnough(monster, player);
или более сложным или даже случайным.
Ботов в FPS сложно сделать правильными, потому что легко сделать их идеальными, но не так просто сделать их веселыми. Например, они всегда точно знают, где находится игрок (gPlayer.GetPosition()
), поэтому легко каждый раз стрелять игроку в голову. Чтобы заставить бота двигаться как человек, требуется немного "искусства".