Перейти к содержанию
АнимеФорум
  • записей
    29
  • комментария
    2
  • просмотров
    1 670

AutoIt в играх, как третья и самая ценная нога.


Andy_Scull

16 просмотров

Возможно кого-нибудь сподвигнет на написание того же.
Примерно лет пять пишу на нем разные прикладные скрипты для облегчения/автоматизации игрового процесса.
После успешного прикручивания мышки к Dwarf Fortress захотелось выплеснуть эмоции.

На данный момент основное, во что играю с прикрученными скриптами -
1. Dwarf Fortress. Добавлена полноценная поддержка выделения мышью и скроллинг.
2. Wii-эмулятор Dolphin. Хоткеи смены кадров в секунду и внутриигровые макросы (в основном Rune Factory)
3. H-TRPGшки Himegari и Kamidori - скрипт выбивания нужных статов из корейского рандома при левелапе. (код 17 кбайт, самый масштабный проект)
4. Различные игры по мелочи - макросы загрузки/сохранения.
5. Sims3, Terraria, ещё пара вещей - макросы нажатия мышки в определенное место экрана, повешенные на хоткей, чтобы не тащить курсор через весь экран.
6. Oblivion/Morrowind - макросы для автокачания.

Возможности AutoIt, которыми я пользовался в процессе всего этого -
1. Стандартные взаимодействия с программой, которые есть в любом таком макро-языке - посылка клавиш, движений мышки итп.
2. Хоткеи и возможность повесить функцию на кнопку мыши.
3. Работа с файлами - запись, чтение.
4. Прямой доступ к памяти программы. Как артмани и ему подобные, только можно ещё что хочешь делать с этими значениями в программе.
5. Взятие изображения с экрана - цвет пикселя к примеру, прямая работа с виндовс элементами (окна, кнопки, итп).
6. Достаточно широкие возможности для программирования. Это не си или дельфи, но для обработки значений или их вывода функций предостаточно.
7. Возможность вызывать функции из внешних длл если чего не хватает.
8. Возможность создания своего зачаточного (и не очень если терпения хватит) GUI для вывода какой-либо информации или управления функциями.

Для примера, как работает скрипт для DF:
В самом начале ищет процесс, читает его начальный адрес в памяти, прибавляет найденные мной статические смещения, в итоге находит адреса нужных мне переменных (размер окна, текущая позиция курсора-крестика и фпс лимит)
После этого вычисляет размер одной игровой клетки в пикселах и дальше уже реагирует на клики мышки внутри окна.
В общем случае при клике берет текущую позицию стрелки мыши в окне DF, вычисляет координаты игровой клетки под ним и передвигает курсор туда путем записи новых координат в память. Дальше уже в зависимости от кнопки - либо начинает выделение ентером, либо сдвигает обзор.
В итоге получилось классно, не сравнить с обычным методом - на клавиатуре стрелками :)

0 Комментариев


Рекомендуемые комментарии

Комментариев нет

Гость
Добавить комментарий...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...

Важная информация