Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Master of Puppets (v.3.07 Battery)
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
Richter
Реально вдохновляет, даже захотелось доделать свой мод. Разгребу завалы на работе и в бой. Хотелось узнать у MasterOfPuppets, вышеперечисленные изменения сделаны на уровне "ERM" или глубже?
igrik
Глубже. Там ERM отключен. Все делается через fasm. ERMу такое не по силам.
MasterOfPuppets
Ну, UN:C и команды ЭРЫ, допустим, справились бы. Другое дело в том, что ERM не подходит ни для одного крупного проекта ввиду ограниченности, неочевидности и тормознутости. Грубо говоря, чтобы поменять байт по адресу, код ERM делает так:
1. Тысячи инструкций процессора (получение адреса строки ресейвера, разбор синтаксиса, проверки кол-ва параметров, проверки на лимиты переменных, получение информации для создания крэшлога и т. д.).
2. mov [адрес], значение.
3. Ещё тысяча инструкций.

Код же MoP выполняет сразу пункт 2. Он быстрее и компактнее не только ERM, но и кода, созданного большинством современных компиляторов языков высокого уровня, на который в дизассемблере нельзя смотреть без печали.
У меня ушло довольно много времени, чтобы перекинуть в WERD всё, что ранее в моде делалось ERM-ом, но оно того однозначно стоило.
Richter
WERD, эволюция ZVSE. Когда нибудь (надеюсь) человек откроет справочник по WERD и сможет с помощью триггеров и ресиверов, творить и думать "Вот это ДА!". И вновь вновь открывая екзэшник, будет нажимать кнопку credits, чтобы увидеть кто же это создал (будет стыдно, не знать). Наступит новая эпоха Героев 3, которые похоже бессмертны.
hippocamus
Да, конечно. Только сначала пусть изучит ассемблер (что не самое сложное) и достигнет мастерства в реверс-инжиниринге.
Richter
Это будет толчком к изучению ассемблера большого количества людей. В конце концов наберется команда, которая перепишет героев 3 и назовет игру "Герои меча и магии 3", тогда в UBISOFT скажут: "-ВОТ ЭТО ДА!"
hippocamus
Richter
Даёшь в школах Ассемблер со второго класса в качестве иностранного! Чтобы преподавали только те, для кого этот язык - родной! Требовать чистейшего языка - никаких TASM'овских или MASM'овских диалектов, и не дай Бог - дельфийский или сишный акцент!
Richter
Уже поверил, что это "не самое сложное" shock.gif. Всё это конечно же лирика с моей стороны. Главное, что герои 3 живут и вполне неплохо. Так что товарищи продолжаем придумывать и делать моды smile2.gif
hippocamus
Richter
Ассемблер невероятно прост. И в этом его сложность. Попробуй, пообщайся, имея в арсенале около 100 слов (инструкций)!
А 3-и герои живут, да, и не то, чтобы здравствуют - процветают! Потому что стали бессмертным творением.
Исчезнут ли когда-нибудь Тетрис, игры типа 3-в-ряд, Марио, пасьянсы всякие? Герои-3 гораздо сложнее, но умудрились войти в этот ряд. Потому что - шедевр.
tolich
Цитата(hippocamus @ 23 Jul 2016, 22:57) *
Исчезнут ли когда-нибудь Тетрис, игры типа 3-в-ряд, Марио, пасьянсы всякие?
Всего через 1 миллиард лет Солнце разогреется на 11% и уничтожит жизнь на Земле, вместе с тетрисом и покемонами.
hippocamus
tolich
А кто сказал, что в параллельной вселенной не будет игры 2048, правда, с учётом того, что у них всего 4 пальца на руке, и система счисления - восьмеричная - игра называется 4000, что даже красивее!
Аналогично насчёт Тетриса. С покемонами - сложнее. Они уже есть в реальном мире. blink.gif
MasterOfPuppets
Цитата(hippocamus @ 23 Jul 2016, 23:57) *
Ассемблер невероятно прост. И в этом его сложность. Попробуй, пообщайся, имея в арсенале около 100 слов (инструкций)!

What? В ассемблере тысячи инструкций. Компиляторы, ЯВУ, правда, обладают бедным лексиконом, т. к. практически не следят за развитием асма, оставаясь на уровне 80-90-хх, но и там типов инструкций больше ста. А в WERD разнообразия гораздо больше, потому что я много рылся в справочнике, ища наиболее короткие решения чуть ли не для каждого случая. Отсюда употребление loop-, jecxz, bt-, cmov-, xadd, cmpxchg8b, команд SSE и т. д.
Цитата(tolich @ 24 Jul 2016, 00:36) *
Всего через 1,1 миллиарда лет Солнце разогреется на 10% и уничтожит жизнь на Земле, вместе с тетрисом и покемонами.

Поправлено.
tolich
В Википедии 11%, но, да, 1,1 млрд. лет. Но я подумал, что 100 млн. лет туда-сюда и округлил.
MasterOfPuppets
А в статье про Землю 10% и 1,1 миллиарда лет. Возможно, тоже округлили.
hippocamus
Подумать только! Через какие-то 1,1 миллиардов лет не смогут больше исполняться инструкции WERD. Особенно печально из-за cmpxchg8b - аж плакать хочется.
MasterOfPuppets

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

ZahaR
Привет, MOP. Привет, форумчане.
Давным давно не играл в героев и тем более не появлялся на форуме.
Но вот, будучи, в отпуске на даче, когда дети уже спят, решили тряхнуть стариной и сыграть пару партий.

В связи с чем, вспомнилась пара старый идей и придумалось кое-что новое.
Предложу их для MOP мода

1. итак новая идея:
Усиление навыка разведка (возможно новый, отдельный навык): Диверсия.
почему к разведке?
- навык в стандартных героях никчемный (как обстоят сейчас дела в MOP моде - не знаю...)
- аналогия с ДРГ - диверсионно-разведывательными группами smile.gif

В зависимости от степени прокачки навыка, силы армии героя и силы армии противника (нужна формула расчета), наличия и уровня навыков удачи и морали у героя - навык позволяет:
(Все происходит условно. Не визуально. После передачи игроком хода. До хода противника)
- база: ДРГ может напасть на нейтралов и убить N монстров противника в M количестве "клеток" от героя. для базы M = 1
- продвинутый: ДРГ может напасть на нейтралов, вражеского героя или нейтралный город и убить N монстров противника или уничтожить B боевых машин. (баллиста, палатка, тележка. НЕ катапульта) M=3
- эксперт: ДРГ может напасть на нейтралов, вражеского героя, вражеский город и убить N монстров противника или уничтожить B боевых машин, или повредить стены/башни/ворота вражеского города.
из боевых машин также может уничтожаться и катапульта, что позволит затруднить врагу осаду города (катапульту в последствии приходится покупать заново)
У целей: стена, башни, ворота и катапульты приоритет перед юнитами или другими боевыми машинами
M=5

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

2. Из старых моих идей. для хардкороного мода, на мой взгляд, самое то.
У героев по умолчанию отсутствуют катапульты их надо приобретать отдельно.
Нулевая скорость боевых машин также учитывается при расчете мувпоинтов героя.
Что позволит формировать либо быстрые летучие отряды, не отягощенные обозом, либо мощные, но медленные ударные армии
При бегстве/проигрыше герой лишается всех своих боевых машин.

3. Пара заклинаний:
3.1. Снежный вихрь. Магия воды. Позволяет отбрасывать монстра противника на N гексов назад.
Что нам дает либо возможность разблокировать стрелка, либо выпихнуть врага в ров, либо просто отбросить его для еще одного залпа стрелков.

3.2. Заморозка рва. Магия воды.
При силе магии героя не меньше порогового значения или при экспертном навыке стихийной магии позволяет заморозить вражеский ров с жидким наполнением (т.е. не получать от него повреждения)
при более высокой квалификации героя - можно заморозить и ров инферно

4. Идея не моя. Она не однократно постилась на DF2 - Навык фортификация, как антипод "Диверсии"
Герой обладающий навыком, используя не истраченные героем на переход мувпоинты, может строить что-то вроде укрепрайона, для предстоящей битвы.
т.е. на поле создаются некоторые препятствия, подобия укреплений (насыпи, рвы укрывающие стрелков, частокол и тп)
На их вид и количество влияет прокачка навыка и количество не истраченных героем мувпоинтов.
Также можно привязать результат фортификации и к наличию и прокачке у героя навыка "строительство"
Не плохо бы "окопавшегося" героя на карте как-то выделять визуально

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

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

Охрана объектов достаточна сильная, по возможности не однородная - из разных фракций, но без ухудшения морали.
Растет со временем.
При битве игрок находится в центре (как в утопии). Кроме битв со стрелками.
MasterOfPuppets
НОВОСТИ

155. Добавлена картинка боевого поля для битвы в Утопии.
156. Добавлен артефакт класса реликт – Шлем Тьмы. Повышает Знание героя на 10 и скрывает для врагов территорию, по которой движется герой, в радиусе одной клетки (аналогично специализации Нагаша в WoG, только в начале дня ничего не происходит).
157. Добавлена четвёртая картинка главного меню, продолжающая традицию показа планеты в различных стадиях эволюции.
158. Добавлен артефакт Брелок Проворства, позволяющий отрядам героя атаковать с возвращением на исходную позицию (как Гарпии).
159. Добавлен диалог «Усиления ИИ», замещающий опцию «Бесконечные ресурсы ИИ-игроков».
160. Добавлено 10 артефактов-сапог, дающих герою соответствующие Поступи: Проклятого, Магии, Клевера, Дьявола, Огня, Святого, Воды, Неба, Камня и Крови. Поступь выражается в том, что герой при движении создаёт за собой дорожку особого ландшафта.
161. Добавлено существо №251 – Пожиратель. Медленный болотный нейтрал 7-го уровня с большим здоровьем, безответностью, устрашением, вампиризмом и способностью парализовать.
162. Добавлено существо №252 – Сфинкс. Летающий нейтрал 7-го уровня, иммунный к магии, без Морали, со смертельным взглядом и способностью ослепить противника.
163. Добавлено цифровое отображение полных Удачи и Морали отряда на поле боя.
feanor
Для спама накладнухами, думаю, надо отображение дорог поверх них.
MasterOfPuppets
А есть способ? Ведь дорога считается частью обычной земли, её тип и зеркало прописаны в MapItem. Так что если и отображать поверх, то, получается, весь грунт, но тогда вообще смысла в накладнухах нет.
Нет, в принципе, решение есть: накладывать в местах, где проходит дорога, гибрид её конфигурации и особого ландшафта (тип объекта - тот же ландшафт). Но это и лишняя графика, и труда уйма.
feanor
Цитата
А есть способ?

А хз, надо посмотреть и подумать.
Навскидку - либо рисовать дорогу второй раз, между тем, что помечено "часть земли" и нормальными объектами, либо спамить поверх накладнух кусками дефа дороги.
AlexSpl
Цитата
What? В ассемблере тысячи инструкций. Компиляторы, ЯВУ, правда, обладают бедным лексиконом, т. к. практически не следят за развитием асма, оставаясь на уровне 80-90-хх, но и там типов инструкций больше ста. А в WERD разнообразия гораздо больше, потому что я много рылся в справочнике, ища наиболее короткие решения чуть ли не для каждого случая. Отсюда употребление loop-, jecxz, bt-, cmov-, xadd, cmpxchg8b, команд SSE и т. д.

Инструкций, может быть, и много. Но важна скорость, а не компактность ассемблерного кода. Количество тактов, за которые выполняется инструкция. Даже порядок инструкций важен (см. Агнера "Optimizing subroutines in assembly language", например). Современные компиляторы, конечно, не дотягивают до уровня гуру, но выдают довольно-таки быстрый код. К тому же, есть машинные команды без мнемоники.
MasterOfPuppets
Вариант 4: сделать накладнухи полупрозрачными.

Цитата(AlexSpl @ 27 Jul 2016, 19:04) *
Инструкций, может быть, и много. Но важна скорость, а не компактность ассемблерного кода. Количество тактов, за которые выполняется инструкция. Даже порядок инструкций важен (см. Адлера, например). Современные компиляторы, конечно, не дотягивают до уровня гуру, но выдают довольно-таки быстрый код. К тому же, есть машинные команды без мнемоники.

Всё это верно, но когда инструкций мало - то и скорость больше. Я тащусь с просмотра кода C++ и Дельфи в отладчике: mov [var], eax и следом сразу же: mov eax, [var]. gigi.gif
Я функции WoG сокращал так в три-четыре раза - сплошь мусор, увеличивающий объём файла. Мне и секцию свою добавлять-то не надо было бы, чтобы в exe весь код мода запихать.
А вот код SoD достоин уважения... Мало к чему придерёшься.
Впрочем, я не говорил о скорости ЯВУ, которая от ассемблерной в моддинге Героев почти не отличается. Не та среда для проверки. Я говорил о скорости ERM, которая гораздо ниже. То, что зависало у меня на полминуты при загрузке карты, когда я сидел на скриптах, теперь происходит мгновенно.
feanor
(короче, отрисовка дорог - третий блок в DrawMap, c 0040F477, отрисовка накладных объектов (но не надо забывать про шахты) - после него с 0040F4C0.
Можно попробовать воткнуть после него отрисовку дорог заново.
MasterOfPuppets
Получилось! Спасибо тебе огромное, Феанор!


Правда, тень куда-то подевалась...
MasterOfPuppets
Слушай, я просто поменял вызовы функций местами - и всё вроде стало как надо. Код блоков в остальном-то идентичен.

0040F4A3 E8 282F0000 CALL mop.004123D0
0040F4EC E8 CF270000 CALL mop.00411CC0

Haart of the Abyss
А ведь и в Дыхании (и других основанных на нём проектах со своими активными подфорумами по соседству) это было бы в большинстве случаев скорее в плюс, чем в минус…
feanor
Легаси.

Ну и на самом деле для того, чтобы оно делало то, что должно делать, нужно заморачиваться - например, в такой реализации, кажется, если попробовать покопать на дороге, будет дорога поверх ямы. (и надо еще насчет рек посмотреть).
Disregard that, ямы спасены троечным смещением дорог на полтайла, а с реками, видимо, надо будет обойтсь так же, они, наверное, в предыдущем блоке.


Цитата
Слушай, я просто поменял вызовы функций местами - и всё вроде стало как надо. Код блоков в остальном-то идентичен.
черт, простое же решение)
MasterOfPuppets
Цитата(feanor @ 28 Jul 2016, 00:26) *
ямы спасены троечным смещением дорог на полтайла

Таки не спасены. Ямы рисуются в той же функции, которая вызывается из блока для ландшафтов. Соответственно, опуская их, опускаем и ямы под реки и дороги. Там свитч на два пункта, а сам вызов рисовалки для ям по адресу 4127CC: CALL 47B6E0. Вот бы его вырезать оттуда и поставить после всего...

Применил патч:
F45A E8712F0000; CALL 004123D0 - ямы и накладухи
F4A3 E838260000; CALL 00411AE0 - реки
F4EC E8CF270000; CALL 00411CC0 - дороги

Результат:


Яма отображается только поверх накладного ландшафта. Я копал на перекрёстке и чуть выше, в русле реки. Первую яму вовсе не видно, вторую - еле.
Пока склоняюсь к решению вместо ямы при копании ставить её дубликат как обычный декоративный объект с проходимостью. Заодно избавляемся от бага "окопался на острове".
feanor
Да, ночью тоже увидел, что вертикальные дороги все равно повисают над ямами.
Заодно осознал, что возможность вырыть яму на реке - вполне идиотская.
Цитата
Ямы рисуются в той же функции, которая вызывается из блока для ландшафтов.

Потому что это отрисовка всех объектов с галочкой "часть почвы" в шаблоне (из кастомных это, например, еще и рудные карьеры и джемовые пруды. Ну и часть препятствий).

Надо на самом деле не ямы вперед вытаскивать, а все-таки почвы рисовать отдельно. Брр.
MasterOfPuppets
Может, тогда так последовательность забацать:
- Вызов 4123D0 только если накладуха
- Рисуем реки
- Рисуем дороги
- Вызов 4123D0 для всего остального, кроме накладух.
MasterOfPuppets
Именно так и сделал. Кажется, проблема полностью решена. happy.gif

MasterOfPuppets
Установлена связь с Flashback-ом, восстановлен вход в мой аккаунт, размещена запись о возрождении проекта на главной странице. Короче говоря, наш Блэк-форум вновь работает. spiteful.gif
MasterOfPuppets
НОВОСТИ

Практически безскриншотовый выпуск, который, однако, примечателен тем, что преодолевает собой рубеж в половину количества новостей, выпущенных о версии "Ride the Lightning" (333).

164. Окно обмена между героями теперь может открываться непосредственно в экране города (горячая клавиша «Home»).
165. Дороги, реки и прочие накладные объекты теперь отображаются поверх особых ландшафтов (за советы и указания спасибо feanor-у).
166. Теперь можно регулировать скорость передвижения ИИ-героев прямо во время хода компьютера (горячие клавиши 2-5).
167. Все артефакты из предыдущего выпуска новостей добавлены в меню запрета артефактов: Брелок Проворства – в группу «Прочее», остальные – в новую группу «Артефакты терраформирования».
168. В диалог «Усиления ИИ» добавлен множитель армий стартовых героев компьютера (от 1 до 5).
169. Заменена графика Рухнувшего Звездолёта.
170. Добавлено жилище Сфинкса – Катакомбы.
171. Добавлена Яма Пожирателей, где и живёт соответствующее существо.
172. При наличии Арки Генезиса апгрейд существ в городе возможен и просто по кнопке в окне существа. Таким образом, улучшить отряд можно любым из четырёх способов: в его окне, по кнопке «Улучшить всех», по Ctrl+Alt+ЛКМ на слоте и в диалоге Арки при нажатии на реликвию.
173. Цены на артефакты командиров увеличены вдвое, а Знамя Полководца поменяло класс на minor.


MasterOfPuppets
НОВОСТИ

174. Исправлен баг: запрет выдачи заклинаний от артефактов не распространялся на фолианты магии.
175. В информации об опыте героя вместо совокупного кол-ва очков опыта, нужного для достижения следующего уровня, показывается количество, которое герою осталось для этого набрать.
176. Исправлен баг оригинальной игры: отсутствие обновления рюкзаков героев в экране обмена после того, как было открыто окно любого из них по клику на портрете.
177. Добавлены кнопки «Рюкзак» для обоих героев в окне обмена + снятие по ALT+ЛКМ и передача по Ctrl+ЛКМ как в окне обмена, так и в диалоге рюкзака.
178. Исправлен баг: параметр «Защита от стрел» не был задействован в копировании/ вставке настроек в редакторе существ.
179. Отредактированы параметры всех текущих новых существ Battery-версии. Также лёгким изменениям подверглись старые существа.
180. Наездник на Слоне приобрёл кавалерийский бонус и 50%-ую вероятность оглушить противника.
181. Заменена графика Священного Феникса.
182. Жилище Сфинкса поменяло графику и теперь носит название Мастаба. Причина смены названия заключается в следующей новости.
183. Добавлено самое многообразное хранилище существ – Катакомбы. Особенности:
- имеют вид, соответствующий ландшафту, на котором генерируются. При этом (в противоположность старым хранилищам, которые нарочно находятся на чужой территории и становятся в итоге мусорными) бонусное существо соответствует городу, для которого ландшафт является родным. Правда, это означает, например, что Замок, Оплот и Сопряжение в 2/3 случаев получат существо не родной расы, но, в целом, это соответствует балансу, потому что в выигрыше остаются относительно слабые замки (Цитадель, Крепость, Инферно), не делящие родной ландшафт с другими городами.
- охрана и бонусы определяются следующим образом:
1-ый уровень сложности: каждый отряд охраны соответствует FightValue 1-го ул. существа 7-го уровня. Бонус – одно ул. существо 7-го уровня и артефакт-сокровище.
2-ой уровень сложности: каждый отряд охраны соответствует FightValue 2-х ул. существ 7-го уровня. Бонус – два ул. существа 7-го уровня и ценный артефакт.
3-ий уровень сложности: каждый отряд охраны соответствует FightValue 3-х ул. существ 7-го уровня. Бонус – одно существо «8-го» уровня и важный артефакт.
4-ый уровень сложности: каждый отряд охраны соответствует FightValue 4-х ул. существ 7-го уровня. Бонус – два существа «8-го» уровня и артефакт-реликт.
- Варианты сложности банка распределены по вероятностям так: 40/30/20/10%.
- В качестве охраны обычно выступают существа из противоположной фракции пополам с более или менее ассоциированными с ними нейтралами. Конкретная охрана генерируется случайным образом из подходящих существ на старте карты.
- Битва в Катакомбах происходит на одном из 18-ти специальных боевых полей.




MasterOfPuppets
Решил сделать быструю тактическую расстановку. HD ковырять не захотел, глянул Феникс - там целая эпопея скриптов. Посмотрел, что можно сделать у себя, и ужаснулся лёгкости исполнения:
..............................................
.if Подтип_клика = Нажата_левая_кнопка_мыши
include 'WERD\Показ окна героя в битве\Показ.ASM'
include 'WERD\Воздушный Шар\Клик на отряде.ASM'
include 'WERD\Быстрая тактическая расстановка\Клик.ASM'
.endif
.....................................
Код
        mov edi, [Структура_живого_отряда_на_позиции]
.if signed edi > -1
        mov ecx, COMBAT_MANAGER
        mov eax, [edi + Структура_стека.Принадлежность]
        mov edx, [edi + Структура_стека.Номер_стека]
     .if [ecx+combatManager.Тактическая_фаза] & eax = [ecx+combatManager.Ходящая_сторона] & [ecx+combatManager.Номер_отряда_в_строю] <> edx
        Передать_ход_отряду ecx, eax, edx
     .endif
.endif

И триггера 77006 не надо, который и вызывается в самом начале 464F10h ("Передать_ход_отряду").
Barin
http://s56.radikal.ru/i153/0912/41/cc6b74040a57.jpg
А где можно найти такие снежные деревья? В версии 1? Но и её не могу найти.
MasterOfPuppets
Цитата(Barin @ 15 Aug 2016, 16:45) *
http://s56.radikal.ru/i153/0912/41/cc6b74040a57.jpg
А где можно найти такие снежные деревья? В версии 1? Но и её не могу найти.

http://mop-drew.ru/d/index.php?action=down...ctory=temp&
Все эти деревья не вошли ни в какой релиз MoP и были забыты в папке "Архивы работ над модом\MoP v1\Новые деревья".
MasterOfPuppets
184. Добавлены Катакомбы для песка. Охрана в них сильнее, но и бонусное существо ей соответствует: это от 1-го до 4-х Сфинксов, а сам Сфинкс в моде – существо, занимающее промежуточное положение между 7-ым и 8-ым уровнями, а также «самый большой голем» игры.
185. Добавлена быстрая тактическая расстановка – выбор отряда для перемещения по клику на нём.
186. Исправлен баг: Некротрон был недоступен для постройки в городе, возведённом на карте в ходе игры.
187. Кол-во магических зарядов Султана Ифритов снижено до одного (кол-во вариантов заклинаний по-прежнему три).
188. Добавлена анимация стойки юнитов на поле боя (благодарности – sergroj, feanor).
189. Запущена давно присутствовавшая, но до сей поры отключенная в WERD поддержка пользовательских плагинов (DLL) из папки Data\MoP\Plugins. Особые плагины, содержащие экспортируемую процедуру «CallWerdTrigger», могут быть добавлены пользователями в качестве надстройки над WERD без малейшего изменения программного ядра самого мода.
190. Исправлен недочёт: заклинания вызова элементалей были изменены в уровнях уже давно, но при этом до сих пор не имели шанса появиться в городах, обладающих уже достаточным для них уровнем Гильдии Магов. Теперь всем городам выставлена вероятность появления заклинаний в 5% за исключением пары особенностей: Элементаль Огня выпадает лишь в Инферно и Темнице, но взамен в Инферно недоступен Элементаль Воды, а в Темнице – Элементаль Воздуха.
Также описания этих заклинаний исправлены на соответствующие реальности, а если кол-во призываемых существ одинаково на продвинутом и экспертном уровнях – на экспертном требуется меньше маны.
191. Добавлено существо №253 – Светлячок (Firefly). Слабое первоуровневое существо без каких-либо особенностей, кроме иммунитета к заклинаниям того же уровня. Пока это единственное существо мода, добавленное к фракции Сопряжения.
192. Добавлено первое заклинание Battery – Вызов Светлячков (Summon Fireflies), дополняющее собой линейку вызовов элементалей. Уровень – 1, школы магии – все, шанс выпадения 5% и одинаков во всех городах. Вызов Светлячков не мешает вызову после этого элементалей. Колдовство ИИ – обеспечено.
193. Добавлено нейтральное существо №254 – Ведьма (Witch), чья полезность граничит с дисбалансом. Дело в том, что она умеет клонировать существ любого уровня. Посему, во избежание многократного клонирования Ведьм Ведьмами и последующего клонирования клонами… в общем, кол-во магических зарядов Ведьмы равно лишь одному, само существо слабое и с низкой скоростью, но ввиду мощной абилки – с существенными Fight Value и AI Value.

И, наконец, неномерная, но самая важная новость:
Релиз Master of Puppets v.3 Battery намечен на сентябрь текущего года.


Haart of the Abyss
Саммон первого уровня — элегантная, в ретроспективе напрашивающаяся идея. Зачёт.

Анимация стойки — это та, в отношении которой кое-кто недавно настаивал, что она вшита в код одного конкретного проекта и больше никуда вделана быть не может? xD.gif
MasterOfPuppets
НОВОСТИ
Название выпуска: «Крушение границ».

194. Повышена вероятность колдовства Берсерка ИИ-героем.
195. Неопционально: увеличены стартовые ресурсы ИИ-игроков (зависят от уровня сложности игры).
196. Вызов Светлячков добавлен во вкладку запрета заклинаний.
197. Добавлена опция «Запрет жилищ 4-7 уровней в городах», способствующая особым условиям игры, в которых будут гораздо больше цениться внешние жилища, в том числе – нейтральные.
Опция особо неприятна для некромантов, у которых нет стрелков на низших уровнях. Ну да и поделом им, пусть скелетами пробиваются.
198. Добавлена опция «Запрет улучшенных жилищ в городах». Для того, чтобы понять, каково это – играть дегрейдами.
Как и предыдущая, опция не разрушает зданий, если они уже были выставлены городу редактором карт.
199. Усилены старые рейд-боссы (повышены атака, защита и урон).
200. Добавлен Холм Светлячков – жилище соответствующего существа.
201. Добавлен Ведьмин Домик – жилище соответствующего существа.
Между прочим, это жилище перешагивает не только через вторую сотню новостей по Battery, но и через старый геройский лимит в максимальный номер подтипа двеллинга – 127.
202. Добавлены графические подсказки к Древу Знаний и Утопии.
203. Городские реликвии 33 и 34 обрели графику и названия – Амулет Магистра Ордена Феникса и Зеркало Калладицеи.
204. Заменены кнопка и иконка Брака в окне обмена героев. Кнопка – обручальные кольца, иконка – тоже кольца, но уже продетые друг в друга и с сиянием различного цвета в зависимости от уровня Брака.
205. Добавлено существо №255 – Капеллан (Chaplain). Принадлежит к фракции Замка. Способности: колдует Молитву 3 раза, ненавидит нежить, Поступь Святого.
206. Добавлено жилище Капеллана – Часовня.
207. Добавлено существо №256 – Ламия (Lamia). Принадлежит к фракции Инферно. Способности: колдует Бешенство 3 раза, огненный щит, Поступь Огня. Как и все представители фракции, имеет защиту от огня.
Таким образом, лимит в 256 (0-255) существ преодолён Battery без видимых последствий. Однако, на всякий случай, больше существ в версию добавляться не будет, пока не будет доказано отсутствие подводных камней.
208. Добавлен Чертог Искушений – жилище Ламий.




MasterOfPuppets
Подводный камень обнаружился пока лишь с опытом существ, но был оперативно вылечен. Недосрасширил одну структуру и недоубирал лимиты.
Код
; Перенесение массива абилок опыта существ (CrExpBon):
; сохранение и загрузка 15400h (оставлены, чтобы сохранять другие данные):
;2B5B36 68CC539A02;     push L00847F08
;2B5B9E 68CC539A02;     push L00847F08

2B5D7D 6820300500;      push 00053020h - размер блока
2B5D82 6800C9AB02;      push L02ABC900

2B6040 81C100C9AB02;    add ecx,L02ABC900
2B624F 81C200C9AB02;    add edx,L02ABC900
2C30FD 0500C9AB02;      add eax,L02ABC900
2C3137 0500C9AB02;      add eax,L02ABC900
2C3186 81C100C9AB02;    add ecx,L02ABC900
2B623B 817DFCE8030000;  CMP DWORD PTR SS:[EBP-4],3E8

; Устранение бага с опытом при номере существа >255
2B3413 EB2A;            JMP SHORT mop.0071843F
2C30B0 EB07;            JMP SHORT mop.007280B9

; перенесение таблицы CrExpMod (на место бывших W-переменных - сохранение и так обеспечено):
; не трогаем сохранение и загрузку - пригодятся для хранения других данных
; 0071A60D  6850EB8500                        push    L0085EB50
; 0071A675  6850EB8500                        push    L0085EB50

2B5720 68204E0000;      PUSH 4E20 Загрузка текстовика
2B5727 68C0F0A500;      PUSH mop.00A5F0C0
2B58D9 8982C0F0A500;    MOV DWORD PTR DS:[EDX+A5F0C0],EAX
2B5907 8982C4F0A500;    MOV DWORD PTR DS:[EDX+A5F0C4],EAX
2B5935 8982C8F0A500;    MOV DWORD PTR DS:[EDX+A5F0C8],EAX
2B5963 8982D0F0A500;    MOV DWORD PTR DS:[EDX+A5F0D0],EAX
2B5991 8982CCF0A500;    MOV DWORD PTR DS:[EDX+A5F0CC],EAX

2B59D7 817DF4E8030000;  CMP DWORD PTR SS:[EBP-C],3E8
2B59EA 83B8C8F0A50000;  CMP DWORD PTR DS:[EAX+A5F0C8],0

2B5A39 8990C0F0A500;    MOV DWORD PTR DS:[EAX+A5F0C0],EDX
2B5A4F 8990C4F0A500;    MOV DWORD PTR DS:[EAX+A5F0C4],EDX
2B5A67 8991C8F0A500;    MOV DWORD PTR DS:[ECX+A5F0C8],EDX
2B5A7F 8991D0F0A500;    MOV DWORD PTR DS:[ECX+A5F0D0],EDX
2B5A97 8991CCF0A500;    MOV DWORD PTR DS:[ECX+A5F0CC],EDX
2C28F7 05C0F0A500;      ADD EAX,mop.00A5F0C0
2C28C9 817D08E8030000;  CMP DWORD PTR SS:[EBP+8],3E8
2B58A3 817DF8E8030000;  CMP DWORD PTR SS:[EBP-8],3E8

Пригодно для патчинга Ride the Lightning, так как не использует новой памяти и не меняет формат сейвов.

P.S.: мне до сих пор непонятно, зачем Славе понадобилось хранить в структуре опыта существа его тип, да ещё и в 8-ми битах. На кой он вообще нужен, если надёжнее смотреть в структуре отряда/стека?
Цитата(Вогосорцы)
class CrExpo{
CrExpo(CrExpo &);
public:
int Expo; // тек. опыт на 1 существо
int Num; // число существ
struct {
unsigned Act : 1; // есть/нет
#define CE_HERO 1
#define CE_MAP 2
#define CE_TOWN 3
#define CE_MINE 4
#define CE_HORN 5
unsigned Type : 4; // тип - где хранится
unsigned MType : 8; // тип существ
unsigned mHasArt : 1; // has art
unsigned mArt : 2; // up to 4 arts
unsigned mCopyArt: 2; // up to 4 copy
unsigned mSubArt : 4; // up to 16 sub art
unsigned _un : 10; // reserve
...
igrik
Круть!!! Патчим новый бинарник и можно юзать?
MasterOfPuppets
Цитата(igrik @ 24 Aug 2016, 14:17) *
Круть!!! Патчим новый бинарник и можно юзать?

Под MoP RtL - да. Под другие проекты адаптировать надо... А ты тоже занимаешься добавлением в MoP новых существ?
Кстати, давно пора сделать вменяемую программу для редактирования абилок существ и приаттачить её к MCrEdit.

Кстати, в сорцы мода не входил вот этот немаловажный файл, который хотя и не исходник, а лишь информационная таблица, но немаловажен для ориентирования в хаосе внутренних данных MoP.exe.
Я так давно к нему не прикасался, что вспомнил о его существовании лишь сегодня.
igrik
MoP, хотелось бы еще видеть что-то типо сундука в замке в котором можно хранить арты (в духе мешка). Фишка чисто для игрока-человека, потому что я пока на вскидку не могу предложить толковый алгоритм для ИИ.
Т.е. любой герой-визитер может сбросить нужные, но неиспользуемые артефакты в город. Артефакты в сундуке не дают бонусов (пример - золотой гусь).
Или городскую реликвию с данным функционалом с каким-нибудь незамысловатым названием "Склад"
tolich
Необязательно и в городе, в чистом поле выбрасывать тоже неплохо бы. Вот только они так дорогу будут перекрывать, придётся через них проходить.
igrik
Так в RtL уже есть мешок, в который можно сбрасывать арты в чистом поле. wink2.gif
tolich
А зачем тебе именно в городе их сбрасывать? Чтобы противник их мог взять только вместе с городом? Героя можно нанять.
MasterOfPuppets
Цитата(tolich @ 24 Aug 2016, 17:27) *
Необязательно и в городе, в чистом поле выбрасывать тоже неплохо бы. Вот только они так дорогу будут перекрывать, придётся через них проходить.

Усё давно обдумано и сделано. Разрешено сбрасывать не более раза в день, чтобы не так сильно болванить AI цепочками Мешков, уводящих прочь от города. При посещении AI забирает из Мешка лишь реликты и важные артефакты, остальное - сжигает. Посетить Мешок можно с любой соседней клетки, так что проход он не загораживает (в отличие от многих одноклеточных объектов, требующих обхода). Вообще, Мешок - это бывший Мифрил, ресурс с подтипом 7, и в редакторе карт он находится на соответствующей вкладке (установленный редактором, Мешок пуст).

Над идеей Игрика думаю. По сути, это смахивает на интерфейсное улучшение, но в то же время и Толич прав - больно хитро прятать артефакты таким макаром от компьютера, пусть он даже будет их получать вместе с городом. Можно было бы городской реликвией впилить, но я не люблю реликвии, использующиеся только человеком, и очень горжусь тем, что AI использует все мною созданные, кроме Креста Бафомета (который AI просто не нужен, а, возможно, даже вреден).
Но, блин, так хочется самому иметь такой схрон в городе! Iv, где ты? Помоги решить. pray.gif
igrik
Не, ну ИИ тогда может использовать и твой алгоритм мешка. Просто мне всегда не хватало этого функционала во всех версиях Грроев
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.