Перейти к содержанию

Сообщения от Автоматическое управление баллистой

Пока нет оценок — будьте первым!
Аватар пользователя
19 лет назад
Баллиста-убивалка для Heroes of Might & Magic III, версия 2.0

Рассмотрим следющую ситацию в режиме сражения: игрок имеет в армии 1 фею. Также у него есть баллиста. Он нападает на 100 зомби.
Теоретически, выйграть этот бой возможно. А вот практически — это займет слишком много времени.
Помочь в решении этой проблемы призвана программа, которую я опишу и выложу ниже. Описание программы будет производиться на вышеуказанном примере.
Данная программа может перемещать курсор мыши в нужное место на поле боя, а также делать щелчки на поле боя в нужное время.

Описание.

Кнопки:
Test — позволяет осуществить 1 прогон, для тестирования.
Exit — немедленный выход из программы.
Fight — начало боя с указанной продолжительностью раундов (Rounds to pause).

Скриншоты битвы создаются в месте расположения программы через указанное число раундов
(для возможности создания скриншотов установите галочку в поле CopyScreen after)
Скриншот создается и при тестировании.

Внизу, под кнопками, есть поля CurrentX и CurrentY.
Они помогут быстро определить нужные координаты экрана (положения курсора).

Поле Rounds to pause обозначает количество раундов боя,
в течение которых мышь будет захвачена программой.
По истечению этого количества раундов программа остановится.

Обратите внимание при установке задержек: время задается в миллисекундах (1 с = 1000 мс).
Допустим мы имеем фею+крестьянина+баллисту v.s. зомби. Предположим, наш игровой цикл начинается с феи.
Ход 1. Феи, надо полагать, будут сматываться от зомби, после чего ход перейдет к зомби, и те ринутся на фей. И только потом ход перейдет к крестьянам. Но до того как ход дойдет до крестьян, нужно успеть походить феям и зомби, а это займет порядка 1-3 секунд.
Поэтому рекомендуется вначале, на этапе тестирования,выставить все задержки не менее 3000 мс.
После успешного тестирования задержки можно будет уменьшить.

Обновления:
1) Теперь делаются скриншоты только окна героев (в оконном режиме).

2) Появились кнопки "Настройки" и "?"
Кнопка "Настройки" содержит пока только версию героев, которую вы запускаете (H3 Rus/Eng, H4 Rus/Eng+, по умолчанию - H3 Rus).

3) Предпринята очердная попытка предотвратить "зависание" программы. При нажатии клавиши Esc программа выполняет до конца текущий цикл и предлагает произвести остановку. Для преждевременной остановки рекомендуется нажать клавишу Esc и удерживать ее, пока не появится соответствующее сообщение.

4) Добавлена горячая клавиша для немедленного завершения работы приложения: +Q.

5) Перед началом работы выводится сообщение о предполагаемом времени работы программы.

6) Добавлено окно, отображающее статистику работы программы.

7) Количество шагов для одного цикла увеличено до 14-ти!

Внимание!
Не рекомендуется использовать мышь во время выполнения программы.
На время боя монитор можно выключать, скриншоты создаются!

В текущей версии программы можно осуществить 14 перемещений курсора:
1-6, за ними следует 7-е — нажатие левой кнопки мыши (MoveTo + Click);
7-е перемещение не осуществляет нажатие кнопки мыши (только MoveTo);
Оно разрабатывалось для просмотра кол-ва выстрелов у баллисты, но, как потом оказалось,
выстрелы у балисты можно просмотреть только при нажатии правой кнопки мыши;

8-13 перемещения, аналогично 1-6;
14-е перемещение аналогично 7-му.

P.S. Программа работает только в оконном режиме Героев (клавиша F4 в игре).
Если Вы собираетесь позволить программе делать скриншоты,
не забудьте, что должно быть достаточно свободного места на диске.
Для разрешения 800 х 600 (а окно Героев имеет именно такое разрешение) файл *.bmp занимает порядка 1 Мб.
При бое в 5000 раундов и одном скриншоте раз в 100 раундов
Вам понадобится около 50 Мб свободного дискового пространства.
Вложения 4
4 файл(ов) • Общий размер: 397,5 KB
Аватар пользователя
19 лет назад
Это тапа у нас навык управления баллистой, но нам лень ею управлять и прога делает это за нас?
Аватар пользователя
19 лет назад
Короче говоря, прога ведет бой, но не как комп хочет, а как нам надо? И причем тут мораль?
Аватар пользователя
19 лет назад
Я так думаю, что условие отсутствия морали необходимо для правильных рассчетов - ведь мораль нарушает порядок хода юнита => программа может сработать не так, как задумывалось.
Аватар пользователя
19 лет назад
А почему у феи мораль +1? Да и к тому же за 2 расы мораль не понижается - минимальное количество рас, понижающее мораль, насколько я знаю, 3 и больше...
Аватар пользователя
19 лет назад
Разве? Хотя вообще-то похоже, что так... Просто привыкла собирать большие армии дипломатией черти из кого - вот и получается иногда по 7 (:D) рас в одном войске... Ладно, это оффтоп уже. Просто мне казалось, что 2 расы еще не влияют на мораль.
Аватар пользователя
19 лет назад
vbn;81248
Именно так, но у героя может и не быть навыка управления баллистой.В зависимости от этого нужно заставить программу работать по-разному.
Если у героя есть навык управления баллистой, то по моему в менюхе настройки боя можно включить ее на автоматическое управление, тогда не надо будет настраивать программу на два варианта (на героя с навыком управления и на героя без навыка). Я это не проверял (так думаю навскидку) - посмотрите сами.
vbn;81248

Сейчас я выкладываю карту, на которой будет тестироваться программа,
и для которой будет приведено описание.
Если будет работать так как я написал выше, то отразите это в описание программы (функционал программы будет улучен без дополнительных изменений и настроек самой программы :)
vbn;81248

Данная программа будет работать только при условии
нейтральной морали нападающей и защищающейся армии.
Угу :) Принято.
vbn;81248

Здесь возможны следующие варианты:
1) повесить дух угнетения морали;
С этим согласен.
vbn;81248

2) взять армии из другого замка для понижения морали до нейтральной.
А вот это нада проверять. Нет гарантии что отряд монстра противника не ломанется к дополнительному юниту, а потом и не выйдет и на саму баллисту. И еще одно уточнение. Если отряд монстров поделиться на 7 отрядов :) То сами понимаете - скорее всего будет кирдык. Без программы еще можно будет попытаться. А с программой хана. Я помню на Best of Best выносил кучу дендроидов (где-то 250-300) 25-30 вампирами (без баллисты). Дык вот спасло тока "общее замедление". Причем наблюдался такой глюк. Одиночное замедление по моему не работает на дендроида, а общее - вешается на них :) Кое-как маны хватило :)
Аватар пользователя
19 лет назад
vbn;81268
Ага, если у героя есть навык управления баллистой, то в меню настройки боя можно включить ее на автоматическое управление.Но у нас-то бой проводится не в режиме авто :(.
Поэтому все равно остается 2 варианта.
Ты не понял. Если Герой с навыком управления, то надо в этой менюхе настройки автоматической битвы ВСЕ отключить, КРОМЕ баллисты. Затем нажать кнопку автоматической битвы. Тогда ты будешь управлять всем сам, но тока баллиста должна работать на автомате. Соответсвенно программа должна работать корректно по прежнему алгоритму ! Проверь ! Мож так и будет :)
vbn;81268

Насчет гарантии что отряд монстра противника не ломанется к дополнительному юниту, а потом и не выйдет и на саму баллисту - ты прав. Но вот на рассматриваемом примере - баллиста и крестьянин очень далеко, зомби будут охотиться только за феей.
Ну дык как насчет кинуть мне на мыло прогу и исходник (на всяк случай)
А то в приаттаченном файле я нашел тока вот это: Ballista.h3m
У меня есть идеи усовершенствования алгоритма проги , но там 10 строками наверно не отделаешься, зато будет работать и с моралью своего отряда, наверное. Интересует ? Здесь описать идею ?
Аватар пользователя
19 лет назад
vbn;81294
"...Затем нажать кнопку автоматической битвы."
Что-то мы друг друга не поймем.
Мы не будем нажимать кнопку автоматической битвы.
Битва будет идти в обычном режиме.
Да почему не будем то :) Ты возьми попробуй проделать то что я написал выше. Когда настройка автоматической битвы будет выполнена именно так, то когда ты нажмешь кнопку автоматической битвы , то никто никуда не ломанется :) Все будут ждать как ты ими походишь и лишь баллиста должна будет работать на автомате, что и требуется чтоб привести второй вариант к первому !
vbn;81294

Хм, видимо это и будет нечто типа x-startera.
Тогда прога будет бесполезна, и если чё качайте starter. :)
Прога лучше и проще. И потом как насчет усовершенствования проги для работы с моралью ? зайди в асю ;)
Аватар пользователя
19 лет назад
vbn;81312
Ага, я наконец-то понял насчет баллисты. Ты прав.
Но для программы это будет безразлично.
vbn, круто ты тут написал :) В последнем посте где уже выложил готовую программу :) Особенно - "Ага, я наконец-то понял насчет баллисты." Я выпал со стула :)
--------------------------------------------------------------------
Но эт чо я хотел тут написать !!
vbn !!! Это круто ! Сенькс огромный за прогу. Вот так вот нада делать полезные утилитки и делиться со всеми. Чтоб все игроки были в равных условиях на турнирах и соревновались именно по игре в герои, а не у кого больше свободного времени на долгие бои и кто луче программирует !! Представьте вот что vbn никому бы не показал и не дал эту утилитку.

vbn !! Респект тебе лично от меня - Железного !

По моему, такое могло произойти только на данном ресурсе !! Ну может еще на Гуголке. А хде я тока не был, чего я не отведал :)

PS. Свое рекордное честное прохождение битвы я сбросил на 6ом часу прохождения !! Найдите теперь идиота в другом месте, который будет проходить 20ти часовую битву вручную, когда есть такая программка !!!!!!!
Аватар пользователя
19 лет назад
vbn - согласен с IronAxe , главное начать, а потом найдутся те люди, которые пойдут дальше ...
Большое спасибо за старания, облагородить нашу любимую иргу.
В ответ пользователю Geksorin
Аватар пользователя
19 лет назад
vbn, спасибо за прогу! Но есть два вопроса:
1) Как можно узнать расположение курсора на экране (координаты)?
2) Как заставить юнитов пропускать ходы?
Аватар пользователя
19 лет назад
vbn;81663
1) Местоположение курсора на экране отображается в полях CurrentX, CurrentY, расположенных сразу под кнопками...
Ну да, это я видел, но вот при запущенных героях посмотреть координаты курсора невозможно (кроме как запомнить положение в игре, свернуть ее и посмотреть в прогу. Но тут еще проблема: в героях разрешение экрана 800х600, а программа полностью видна только на 1024х768 и более, следовательно координаты будут неверны:()
Аватар пользователя
19 лет назад
vbn;81684
При запущенных героях посмотреть координаты курсора можно.
Для этого в игре нужно выйти в оконный режим (клавиша F4).

По умолчанию программа находится в левой части экрана.
Окошко с Героями лучше всего поместить немного правее от программы.

А насчет координат - все работает ок ;)

P.S. В оконном режиме Герои 3 запускаются при любом разрешении не менее 800 х 600.
Спасибо, разобрался
В ответ пользователю Ataman
Аватар пользователя
19 лет назад
VDV, все что тут Вы потерли было связано с обсуждением программы, программа связана с длинным боем, длинный бой связан с правилами и с отношением игроков к такому бою. Мы потратили кучу трафика за свои кровные - а вы подропали посты, которые непосредственно относятся к этой теме :( Ладно, сделаем выводы - пишем поменьше на форум - се равно сотрут :) Так на фига денюжку тратить :) Чтоб этот пост не дропнули пишу теперь по программе:
vbn - а как запустить программу чтоб бой был на весь экран ?? А то скриншот фиксирует и саму запущенную прогу. То есть сначала надо настроить координаты, потом развернуть Героев на весь экран, настроиться в бою, свернуть Героев на панель и нажать в программе на кнопку Fight и быстро поднять Героев с панели ? Правильно ? Успеть это можно или мышь уже будет захвачена. Или надо после нажатия на кнопку Fight в программе нажать на клавиатуре кнопку F4 ?

Статистика

Приветствуем новейшего участника: recijeb

Сейчас на сайте 5 пользователей 976 гостей