Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Тактические ландшафты
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды > Скрипты
Aleee
Может быть, тему я назвал малость криво, но времени размышлять не было. Название, ведь, не главное.

Тот, кто захочет узнать с чего началась вообще эта тема можно посетить эту страницу. Здесь вы найдете некоторые зачатки и задумки и в целом положительные отзывы, что и привело к созданию этой темы.

Чтобы вы лучше представляли, как должен работать скрипт (в моей задумке), приведу некоторые аналогии. Пожалуй, самые похожие ситуации, которые мы попытаемся создать, вы сможете увидеть в RT-стратегиях, таких как Cossacs 2 или Medieaval 2: TW. Это примеры, всплывающие сразу. Суть заключается в том, что характеристики юнитов улучшаются/ухудшаются в зависимости от ландшафта того места, где он в данном случае находится.

Перед нами, впрочем встает вопрос: не слишком ли это тривиальная идея, если на поле боя 1-ой битвы ландшафт зависит исключительно от места встречи противников на глобальной карте? Просто в задумке, данное приложение к игре содержит не только скрипт, но и новые поля для боя, батлфилды. Они нарисованы не так, как обычные поля, а несколько иным манером. Они представляют собой разнородную территорию, которая может включать в себя снег, траву (поле), лес, песок..., а также под-параметры: каменистость, зыбкость...

Перед нами непростая задача. Ведь ландшафт все же должен соответствовать глобальной карте: появление такой помеси на карте, где все завалено снегом просто нелепо. Я до сих пор неуверен, осуществимо ли это с точки зрения художников: нам нужно с 10 батлфилдов с раличными комбинациями ландшафтов. Это, пожалуй, самая сложная задача.

Теперь для наглядность распишем действие скрипта:
Код
1. Начинается бой. Скрипт проверяет место на глобальной карте, а также близлежащие клетки в радиусе 2-3. Таким образом подбирается наиболее удачный для данной местности вариант. До сих пор мне [B]неизвестно[/B] можно ли выбирать батлфилд через ЕРМ.

2. Все существа перед действием и после проверяются наличие под ними особого ландшафта. Например, походил кентавр на клетку 56. Клетка проверяется в зависимости от выбранного батлфилда и определяется тип ландшафта на ней.

3. Идет сверка. Кентавр стоит в лесу и получает +2 к защите. А гнолл - в поле, получает -1 от атаки. Феникс в болоте не может инкарнироваться и т.д.


Составить таблицу действий несложно, лучше всего в Excel'e, строки - существа, столбцы - ландшафт и влияние в ячейках, соответственно. При этом, влияния должны быть примерно однородными, иначе игрок и за год не изучит всего.
___________________________
Я прекрасно осознаю, сколько шансов на то, что эта идея несбыточна и если такое возможно, насколько малы шансы воплотиться в жизнь. Прошу тех, кто может сказать что-нибудь о технической части вопроса отписаться. Хотелось бы знать, насколько это осуществимо с помощью ЕРМ нынешнего уровня.
В случает неликвидности тема будет безжалостно удалена.

Добавлено ([mergetime]1190316484[/mergetime]):
P.S. Уезжаю на 2 дня. Прошу не засорять особо.
Миханик
Цитата(Aleee @ 20 Sep 2007, 23:28)
До сих пор мне неизвестно можно ли выбирать батлфилд через ЕРМ.
спокойно можно! есть же ERM help, там всё написано, картинка выбирается через !!BA:B^адрес из папки Data^;
Цитата(Aleee @ 20 Sep 2007, 23:28)
Я прекрасно осознаю, сколько шансов на то, что эта идея несбыточна и если такое возможно, насколько малы шансы воплотиться в жизнь.
не вижу ничего сложного. правда придётся очень много писать, но и результат будет ГИГАНТСКИЙ! вам можно позавидовать! у вас есть возможность написать очень хороший скрипт, каких мало.
Цитата(а вы говорите)
малы шансы воплотиться в жизнь.
по-моему, достаточно написать скрипт и выложить его тут, и художники сами прилетят на свет.
Docent Picolan
Цитата
Перед нами непростая задача. Ведь ландшафт все же должен соответствовать глобальной карте: появление такой помеси на карте, где все завалено снегом просто нелепо. Я до сих пор неуверен, осуществимо ли это с точки зрения художников: нам нужно с 10 батлфилдов с раличными комбинациями ландшафтов. Это, пожалуй, самая сложная задача.

морн думаю справится без труда. если что, я тоже художник, будут проблемы - скажите мне. я с удовольствием помогу, т.к. идея мне нравится.
Aleee
Цитата(LineAger @ 20 Sep 2007, 22:09)
Цитата(Aleee @ 20 Sep 2007, 23:28)
До сих пор мне неизвестно можно ли выбирать батлфилд через ЕРМ.
спокойно можно! есть же ERM help, там всё написано, картинка выбирается через !!BA:B^адрес из папки Data^;

В принципе, это был основной вопрос технического характера. Тогда нужно провести в некоторой степени официальный набор людей, которые смогут заняться этим.

Не думаю, что в этом есть задача какой-то особой сложности, так что вполне хватит 1 художника (мы никуда не спешим, к тому же, один удачно сделанный такой ландшафт будет уже образцом для остальных - те только структурой будут отличаться) и 1-2 скриптеров, ведь скрипт, насколько я понимаю, будет сложен лишь своей достаточной величиной.

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

Я себе это представляю как изменение некоторой переменной и отправке к ссответствующей функции на вызов. Путанно.
В общем, пусть кентавр собирается атаковать. Проверяем тип почвы в батлфилде №3 (а именно он был выбран в начале), выясняем, что это снег. Пусть (кстати, буду рад, если кто-то поможет со всеми особенностями) в снегу у кентавров есть 20% шанс промахнуться. Изменяем y666 на 4 и запускаем функцию, которая посредством угадывания числа из созданного интервала (0-4) определит промахнулся ли кентавр. Если да, то кентавр промахнулся (тоже вопрос - можно ли сделать просто анимацию, или вернуть кол-во ХП и существ моментально, то есть чтобы цифры не успели измениться?).
А если это был гном, то его защита -2, запускаем другую функцию, а соотв. переменная (пусть y999) изменяется на 2 (-2).

Мне это видится так, но скриптеры может видят и более рациональный вариант.
В общем, если есть тот, кто может помочь делом, жду ваших постов. Учитывая, что идея первоначально была моя, буду, что называется, координировать все действия, а то если каждый начнет делать так, как ему нравится...

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

Вот, кстати, откуда и появилась идея. На этих скринщотах вы можете увидеть поле битвы современного варгейма - и горы, и озера, и леса, и равнины, и почва... Хотелось бы увидеть это и в наших героях, пусть даже не с такого уровня графикой.



ShadowTheAge
Промахивание организовать проще простого - вызовом !!MF:E0; В этом случае атакуемый даже не дернется.

Идея - 5+, буду всячески следить за развитием, могу помочь и скриптами.
К сожалению чтение данных из таблиц при помощи одного тоько ERM невозможно (или я чего-то упускаю?). Есть возможность чтения из INI-файлов, наверное так и нужно будет реализовать. Выглядеть строка может например так:
142=++ S1
142 - номер существа и территории (14 - кентавр, 2 - трава).
"++ S1" - все бонусы/штрафы. Разные бонусы разделять пробелами или запятыми (даст возможность пользоватся !!VR:M2)
++ к примеру значит "Общий средний бонус" (+ - малый бонус, +++ - большой, -- - штрафы)
S1 к тому же примеру "Скорость +1"

Все. Сам скрипт - работа на 3-5 часов, наибольшие трудности с придумыванием для 200 существ бонусы от 10 видов поверхностей. Ну и художники.

З.Ы. Да, кстати, батлфилды нужно будет инициализировать в том же ини-файле, тока в другой секции. Выглядеть это может так:
3=44444444444555565555544444411222222222222222 (итд, всего 189 символов, означающих тип территории для каждой из 189 боевых ячеек). Территории являются стандартными (формат TR, тока без воды и скал, хотя воду тоже можно сделать и сделать некоторым сузествам бонус возможности ходить по воде... или это читерство)

Теперь вопрос к Aleee: Если у нас вокруг исключительно один вид территории (такое бывает в абсолютном большинстве случаев), что делать?
Всем существам давать бонус/штраф для указанной территории и все?
Итого нам понадобится как минимум (8*7)/2=28 картинок ландшафтов. Это для того, чтобы была возможность комбинации каждого ландшафта с каждым, но для большинства таких территорий там же будет присутствовать и "грязь" (как универсальный соединитель территорий).

Если же требуется больше двух ландшавтов на каждый боевой ландшафт, то:
Для трех придется увеличиться еще на (8*7*6)/6=56 картинок.

10 штуками боюсь что не обойтись.
Demiurg
Идея записывать информацию в ini-файлах ввиде +'ов и -'ов плоха. Лучше ввести числовые константы. Кроме того в ini-файле можно делать комментарии. Ибо на работку команды
!!VR:Vz#; это не влияет.
Aleee
Что же, тем лучше. Первоначально, думаю, все же нужно форомить все в Excel'e или таблице в htm файле.

А после того все мы, кто будет балансировать все это добро (насколько я понял, я могу рассчитывать минимум на Беса и Бисика), договоримся, сделать конфигурационный файл не составит труда.

Учитывая, что меня некоторое время не будет, пердлагаю тем, у кого есть желание развить эту идею сделать следующие вещи:

1. Список ландшафтов. Как первичных (равнина, снег, пески, почва, камень, здание, болото, лава, лес), так и втотричных, то есть дополнительных свойств первичных (каменстость, грязь, холмистость...). Дополните.

2. Общее влияние определенной почвы на замки с исключениями. Нужно понимать, что в целом ландшафт будет влиять на замок, но с некоторыми разбежками. Лес в целом влияет (++) на Оплот, но на гномов лишь (+), зато холмистость повышает им что-то (++).

3. Придумать список "что-то", то есть возможных влияний на чуществ. Такие как прирост к атаке, защите, скорости, здоровью, процентарное отношение к повреждениям, промахи, резист от заклинаний, возможность контрудара, лечение за ход... Ваша фантазия.

Спасибо заранее всем, кто будет помогать. Сам я очень занят, так что кроме теории вряд ли сильно смогу помочь, тем более, в скриптах.
ShadowTheAge
Имелось в виду что информация хранится в виде
(номер_существа*10+номер_территории)huh.gifбонусы), все бонусы пишутся через пробел чтобы работать с ними функцией для работы с токенами. Но можно бонусы и так сделать:
S 1,A 5,D -1
то есть "скорость +1, атака +5, урон -1"

Или же чисто числовыми командами (проще будет скриптерам но не так понятно в самом файле)
6 1,10 5,1 -1
где 6 значит "скорость", 10 - "Атака" и 1 - "урон"


ЗЫ. этот пост адресован демиургу.
Д'якон
Так как батлфилд будет зависить от 9 участков, на которых происходит битва. То я предлагаю мысленно поделить сам батлфилд на 9 участков.
Поэтому рисовать нужно не полностью батлфилд, а лишь 1/9 батлфилда в виде Obstacle'а (припядствия) проходимого. И уже в зависимости от места битвы забивать батлфилд подходящими обстэклами.
Это позволить сохранять данные о 1/9 батлфилда и на каждом участке у существ будут свои свойства
qwebek
Прежде чем что-то говорить уточню, вы хотите менять параметры юнитов в зависимости от типа почвы "хэкса" на котором он стоит? а ландшафт батлфилда строить в зависимости от текущей и прилегающих на глобальной карте клеток? я так понял?
Lindar
Я вот тут попытался склепать поле, на эту тему. Смотрите что получилось.
http://www.filemaster.ru/files/h2237

P.S. Я, в общем, готов принять участие в этом деле. Так что если понадоблюсь, Aleee свистни.
Bes
Цитата(Aleee)
насколько я понял, я могу рассчитывать минимум на Беса
не хочу никого расстраивать, но такого согласия я не давал. sorry.gif
Щас я пока никак не смогу найти время для этой работы...
Aleee
Постараюсь все уточнить. Извините, что без цитат.

- Я не стараюсь достигнуть точного соответствия между глобальным ландшафтом и батлфилдом. Если у нас территория, например, поле (х.з. как называется, в общем, зеленая почва), а рядом есть горы и лес, то нам желательно подобрать нечто подобное. Через скрипт, думаю, это не очень сложно. Считываем глобальный ландшафт в радиусе пары клеток и по заранее сделанному списку проверяем, какой батлфилд наиболее схож.
На мой взгляд, удобнее делать это в побитной форме.

Пример:
(сначала идет список батлфилдов (точнее, значения соответствующих им переменных) с заранее просчитанными битами по таблице вида: лес листв-1, горы-2, снег-4...)
y01 (ландшафт битвы №1) = 3 (что означает, что на нем есть лиственный лес и горы)
y02 = ...
(затем идет проверка глобального ландшафта и подсчет битов. Потом поиск батлфилда с таким же числом битов, а если такого нет, то исключаем 1 из элементов (например, у нас есть лес, трава и лава) и проверяем наличие батлфилда с таким числом битов)
Может эта и не лучшая система (это все же не моя стезя), но мне это видится так. Если одного из элементов не будет - это не критически. Мало ли где проходит сражение.

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

-
Цитата
Так как батлфилд будет зависить от 9 участков, на которых происходит битва. То я предлагаю мысленно поделить сам батлфилд на 9 участков.
Поэтому рисовать нужно не полностью батлфилд, а лишь 1/9 батлфилда в виде Obstacle'а (припядствия) проходимого. И уже в зависимости от места битвы забивать батлфилд подходящими обстэклами.
Это позволить сохранять данные о 1/9 батлфилда и на каждом участке у существ будут свои свойства

Чрезвычайно занимательно. Признаться, я и сам об этом думал, но все же решил, что ничего рисовать находу не получится - не внедришь такую штуку в Героев.
Это было бы отличное решение, но и тут есть несколько "но". Главное, как мне думается, это сделать эти участки такими, чтобы они складывались в паззл без дисгаромонии. Вроде бы, не так-то просто.
Но ведь и правда, в таком случае качество возрастает, ведь такие хексы делаются проще, чем батлфилды, а количество комбинаций...
Надо додумать и спросить художников.

- Линдар, вы все поняли правильно. Говоря конкретно, река (ведь это грязевая река, да?) великовата, на мой взгляд, да и кое-где можно подкорректировать, но в целом все верно. Именно так я себе это и представлял.
________________________________
Вопрос: каким образом можно внедрить подсказки для игроков? Можно ли сделать всплывающую информациюпри клике на свободной клетке поле боя, где будет показан эффект для активного существа? Или вынести это в лог? Или...
________________________________
Планы на будущее:
Скоро думаю заняться составлением всего, что указывал ранее, так как никто собого рвения, виже не проявил. Но все же прошу всех, кому интересна задумка, подумать над списком ландшафтов и эффектов. Не конкретно для кого-то, а в целом - возможные эффекты.
Прошу такжен отписаться художникам, которые согласятся мне помочь. Иначе, даже и браться не стоит.

Заранее спасибо.
Lindar
Река? = )))))
Как в воду смотрел= )))) Я хотел сделать реку, да в общем-то и сделал, она текла с гор (слева) меж камней, но получилась она на редкость неумело и я ее убрал. А *грязевая река* = ))) это просто *почва грязь*, была... но я ее немного подровнял по форме дороги. Но как видим не очень удачно, дорогу переделаем. раз уж на то дело пошло, можно к баттлфилдам добавить дороги, этту можно сделать например, мощеную. Там посмотрим.
А так, хочу заняться составлением таблицы эффектов. Пока энтузиазм есть = ))))
ShadowTheAge
Предлагаю идею реализации: Совместить этот скрипт со скриптом "Опыт монстров". Зарезервируем под скрипт три (последние) "полоски" параметров. (Количество бонусов/штрафов ограничится тогда всего тремя, зато можно сделать все что можно при помощи Stack Experience Table, смотрим форматы SE1 - SE5). Ну тоесть практически все что хочешь - от банального увеличения урона до каста спеллов. Убрать, например, возраждения фениксам можно просто увеличив количество "кастов заклинаний" на -100.

То есть при перемещении стека на клетку, смотрится бонус клетки и заполняются последние (18, 19, 20) бонусные линии.
Demiurg
Цитата(ShadowTheAge @ 24 Sep 2007, 01:56)
Убрать, например, возраждения фениксам можно просто увеличив количество "кастов заклинаний" на -100.

Разве?
Афаик, команда !!EA:B не поддерживает отрицательные числа. -100 будет преобразовано в +156
qwebek
Все очнь интресно, но не забывайте про масштаб, я имею ввиду соответствие количества армии и размера поля боя, ведь на самом то деле нужна ооочень большая армия чтоб она "занимала" несколько секторов на глобальной карте и ладшафт етих обьектов учитывался при битве dry.gif

идея интересна, но я уж привык более к реализму idontno.gif , просто прикинте, сколько нужно скажем скелетов чтоб занять участок где скажем трава переходит в пустыню lupa.gif , если предложенную схему использовать при любом количестве войск - щитаю ету затею бредовой мое мнение.beee.gif
Aleee
Абсолютно ничего не понял. Ну ничего!

Объясните мне, что хоотел сказать товарищ постом выше.
Миханик
Цитата(Д'якон @ 21 Sep 2007, 10:29)
рисовать нужно не полностью батлфилд, а лишь 1/9 батлфилда в виде Obstacle'а
полностью поддерживаю. good.gif правда можно ли вставить в игру новые батлфилды? я не уверен. но в любом случае, это нужно сделать, хоть бы и hard-coded, иначе графика займёт слишком много места.
Цитата(ShadowTheAge @ 24 Sep 2007, 01:56)
Предлагаю идею реализации: Совместить этот скрипт со скриптом "Опыт монстров".
с опытом монстров больно сложно и бонусов мало. лучше при каждом !!BG0; и !!BG:A = 2 или 6 снимать старый бонус и класть новый напрямую через ЕРМ. имхо, это самый простой и очевидный путь.
кстати, не объясните как пользоваться ini-файлами? никогда с их использованием в ЕРМ подробно не сталкивался, обходился ert.
gamecreator
Цитата(Demiurg @ 24 Sep 2007, 01:05)
-100 будет преобразовано в +156

155
Lindar
Новый баттлфилд, уже более прорисованый и готовый вариант.
Оазис.
http://www.filemaster.ru/files/h2708
И еще один вариант, горы и лес - http://www.filemaster.ru/files/h3406
На нем изображен, на мой взгляд, то как должно все выглядеть в конечном итоге, т.е. в битве. Но есть некоторые затруднения. Если деревья будут являться частью картинки, то на деле, юниты будут стоять поверх них, что будет жутко некрасиво. Следовательно, лес нужно добавить в "препятствия" (как пеньки и скелеты) и включать их каждый раз, перед битвой на одном месте. Этот же способ можно применить и к руинам. Хочу добавить на карту руины зданий в которые можно будет заходить. Правда я понятия не имею, куда надо добавлять новые препятствия, но думаю это осуществимо.
hippocamus
Добавлять препятствия не надо. Лучше помечать клетки как непроходимые. Только я тоже не знаю как это сделать.
gamecreator
невидимые препятствия. тип -1
Ganymed
Цитата(Aleee @ 21 Sep 2007, 09:29)
________________

Вот, кстати, откуда и появилась идея. На этих скринщотах вы можете увидеть поле битвы современного варгейма - и горы, и озера, и леса, и равнины, и почва... Хотелось бы увидеть это и в наших героях, пусть даже не с такого уровня графикой.





Такая графика делается в Брайсе. Там все не так уж и сложно, поскольку прога заточена под ландшафты.

Я пробовал делать поля битвы, но получалось слишком натуралистично для Героев, поэтому не стал продолжать.
Вот пример поля битвы, который я делал в Брайсе.
Docent Picolan
Цитата
слишком натуралистично

я бы так не сказал... вообще непонятно что на картинке изображено... fie.gif может ты имел ввиду слишком ненатуралистично?
Lindar
Я вроде сделал препятствие дерево, в смысле только def. добавил (а так он полностью проходимый и все равно проявляется под юнитами) заменил вместо второго скелета. Использовал пустое препятствие на скалах (-1).


Но все равно, дерево так смотриться просто ужасно.
Ganymed
Цитата(Docent Picolan @ 30 Sep 2007, 01:12)
Цитата
слишком натуралистично

я бы так не сказал... вообще непонятно что на картинке изображено... fie.gif может ты имел ввиду слишком ненатуралистично?


Смотря под каким углом смотреть. Для осенней слякоти, скорее всего, ненатуралистично, а для героев - натуралистично (в смысле портретно слишком, нет геройской "лубочности", "собранности" цветов - размазано все). Это, в принципе, киношные ландшафты. Из них можно сделать игровую эстетику, как в приведенных Aleee примерах, но для Героев эстетика слишком несобрана цветово, панорамна чересчур. Я пробовал разные варианты: песок, землю, траву, но получается скорее киношный кадр, нежели игровая картинка.
Aleee
Честно говоря, у меня абсолютно нет времени.
А значит, реализация откладывается до... что называется, как только - так сразу.
hippocamus
Ну, скажем так. Вы хотите делать ландшафты по типу батлфилдов из НММ4? Там это было реализовано довольно грубо, в 5-х - более-менее. Но не за то ли мы любим 3-х героев, что там нет всякой ерунды? Если мы дерёмся на траве, то на траве, и незачем туда лепить близлежащий песок, ИМХО. Ведь любой полководец перед боем осмотрит и выберет плацдарм, наиболее соответствующий его планам, расстановке войск и т.д.
Т.е. от силы - 2 различныхз территории, если бой происходит на границе местностей. Остальное ИМХО не имеет значения. Да и вы представляете - моего duron 3500+ не хватит высчитывать все возможные комбинации, тормозить будет игра, короче.
Конечно, как знаете, но ИМХО это лишнее.
Прошу прощения за безапелляционность.

2 Lindar
Твой филд мне понравился, но с деревом не знаю что можно сделать. Это ж тебе не фотожоп, переднего и заднего плана нет. Разве что и крону сделать непроходимой, пусть мозги поломают.
Lindar
Я тоже не уверен, нужно ли смешивать почвы, ведь даже бивы на границе ландшавтов будут довольно редкими. Самый оптимальный вариант это использование на одной почве разных подтипов: лес, горы, реки и т.д. Т.е. скрин выше = )) Но, если что, можно и 2 почвы совместить, это как решим уже. К тому же, надо сначала опредеиться с этими самыми подтипами.

На счет дерева, и правда вопрос сложный, но ведь юниты проходят сквозь ворота в замке, значит можно и крону так же сделать, жаль только никто не умеет это делать...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.