Цитата(SAG19330184 @ 11 Nov 2008, 16:37)
я хотел бы разнообразить количество возможных действий во время хода противника. Например, установление "автодвижения" - если я вижу что мне позарез нужна ртуть, то я мог бы установить "автодвижение" какого нибудь героя до ближайшей кучки ртути. Т.к. ход занимает обычно 8-15 минут, то за это время уже можно и позабыть про какую нибудь важную деталь, а потом в результате не сможешь поставить ангелов на первой неделе...и т.д. А так, как только игрок получает ход - герой (если он еще жив), автоматически двигается и забирает ртуть. Ну и прочие аналогичные действия...Я не хочу переписывать логику игры (т.е. делать самостоятельно просчет движения, уничтожение ресурса, добавление ресурса в казну), хотя другие варианты пока не просматриваются...
Мои идеи по этому поводу:
Возможен следующий интерфейс:
Наступает чужой ход. Ты первым делом рассавляешь героев в том порядке в котором они будут предположительно ходить. Далее, например:
есть лошок и пара кучек взятие которых необходимо "запрограмить"
- Мы кликаем на первую кучку мышкой, например, с Шифтом, желательно что бы после щелчка квадрат в который ты попал как-нть моргнул, а то не всегда понятна сетка ландшафта на вскидку
- Появляется статусное сообщение типа: Действие 1 - Герой ХХХ будет направлен в клетку X1, Y1
- Если промахнулся, то зажимаешь, например, Alt+"клик в любом месте карты" и приходит статусное сообщение вида "Действие 1 - Направление в клетку X1, Y2 отменено", последнее запрограммленое действие соотеветсвенно отменяется
- Далее с Shift'ом жмем на второй рес - сообщение Действие 2 - Герой ХХХ будет направлен в клетку X2, Y2
- Переходим к следующему герою
- Когда выбираем героя, то проверяем есть ли у него запрограммленые действия, если есть, то выводим в статусной строке:
Действие 1 - Герой ХХХ будет направлен в клетку X1, Y1
Действие 2 - Герой ХХХ будет направлен в клетку X2, Y2
- Если хочешь отменть все скрипты, то зажимаешь, например, Alt+Shift+"клик в любом месте карты" и приходит статусное сообщение вида "Все действия отменены"
Далее ты всех запрограмил и тебе передают ход.
- Проверяем есть ли у выбранного героя (первого в списке) скрипты
- Если есть, то берём первые координаты прокладываем маршрут и выводим сообщение: "Вы хотите пустить Героя ХХХ по маршруту?"
- Если говорим что нет, то потом можно выполнить скрипты кликнув на Героя, например, с зажатым Alt'ом
- Если да, то прокладываем маршрут в точку X1, Y1
- Гоним героя по маршруту - ща это можно выполнить вручную нажав кнопку "М", думаю можно будет как-нть отследить что в проге в этот момент происходит и с помошью ЕРМ/асемблера это вызывать.
- Как только герой останавливается, то переменные в которых хранились X1, Y1 очищаем и прокладываем следующий маршрут до X2, Y2
- Гоним по маршруту
- Как только заканчиваются МП то завершаем скрипт, переменные где хранились координаты очищаем, выводим сообщение в статусной строке вида "Маршрут выполнен, закончились МП"
- Если очередной путь в точку X, Y проложить не удаётся, то завершаем скрипт, переменные где хранились координаты очищаем, выводим сообщение в статусной строке вида "Маршрут проложить не удалось"
- Если список координат просто закончился, то выводим сообщение в статусной строке вида "Маршрут выполнен"
- Переключаемся на сл. героя и начинается заново
Алгоритм реализации:
- Щелчки записываем в переменные w по каждому герою, например w101, w102 - X1, Y1; w103, w104 - X2, Y2 и т.д. тут вроде проблем нет, с удаленим и отображением информации вроде тоже.
- Насчёт моргания/пометки клетки куда кликнули, тут видимо сложности, которые преодолеть не удастся
- В свой ход необходим функция прокладки маршрута вида: X, Y, для текущего героя, неплохо бы результат в какой-нть флаг писать
1 - удалось проложить маршрут в точку X, Y
0 - не удалось
- Необходима процедура запуска героя по маршруту (то что ща при нажатии на кнопку коня мли буквы М происходит)
Как можно будет использовать в игре:
1) Для посещения лошками рес-объектов, сбора ресов
2) Спланировать будующее направление движения
3) Создать план передаче по цепочкам. Например:
Герой1 на 117 сидит в замке герои 2, 3, 4 стоят в цепке до Героя5 (папка)
Накликиваем Герой1 бежит в Героя2, Герой2 в Героя3 и т.д.
На 121 тебе задают вопрос выполнить скрипт для Героя1 ты говоришь нет.
Заходишь в замок скупаешься, кликаешь Alt+клик по герою, начинает выполнятся маршрут:
Герой1 добегает до Героя2, открывается окно обмена ты щёлкаешь 1 кнопку "Change army", далее (скрипт САГ'а) правой кнопкой на галочку, левой на галочку - фокусируется Герой2, и по нему вопрос "Выполнить маршрут?" жмём "Enter" он добегает до Героя3 и т.д.