Current time: 26.11.2024, 13:15 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Master of Puppets v. 4
» новая версия, находящаяся в разработке
Author Message
MOP Offline
Moderators

Posts: 1468
Post: #91

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


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
28.07.2023 17:34
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #92

(17.07.2023 07:14)XEPOMAHT Wrote:  Поднятие любого монстра с помощью способности архангела делалось в Тифоне 2.7.
Не любого, а только живого. Причём живого, который не имеет флага "Нежить".
Казалось бы, тривиальная задача - отследить места в коде, где идут проверки, и переделать их так, чтобы Ангел Смерти поднимал мертвецов. Но две недели - и всё впустую.
1. Дать существу через редактор способность колдовать "Оживление Мертвецов"? Хрень. Во-первых, ИИ упорно не хочет этим пользоваться. Во-вторых, существо не сможет воскресить погибший отряд - только восстановить убитых в раненом. Типичный пример - командир Некрополиса в WoG.
2. Подменять флаги отрядов перед колдовством? Хрень. Потому как колдовство случается в момент клика на отряде. Если не подменить флаги до этого - невозможно колдовать. Если подменить - игрок может и не колдовать Ангелом Смерти, а выбрать колдовство героем. И сильно удивится, не сумев поднять Воскрешением условных копейщиков, зато без труда подняв скелетов.
3. Заменить поднятие нежити на поднятие Костяных Големов из павших союзников? Хрень всё по той же причине - поднять можно только из живых.
4. Найти-таки проверки и видоизменить. Голову сломал уже, перевернул в коде с ног на голову все очевидные проверки флагов "Живой/Нежить" - ничего не помогает. Остаются неочевидные. Обычный путь их поиска - брейкпойнт на участок памяти. Но мне ли объяснять, сколько обращений к флагам отряда происходит при каждом пуке в битве? Даже на сдвиг курсора на пиксель их выскочит десятка два.
Такие дела. Bad


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
30.07.2023 12:23
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #93

(30.07.2023 12:23)MOP Wrote:  Не любого, а только живого. Причём живого, который не имеет флага "Нежить".

Там проверки на шанс срабатывания берутся от заклинания воскрешения, насколько я смог понять код. Т.е. трогать их нельзя - сломается работа заклинания Воскрешение. Отсутствие флага живности сбрасывает % на 0.

(30.07.2023 12:23)MOP Wrote:  1. Дать существу через редактор способность колдовать "Оживление Мертвецов"? Хрень. Во-первых, ИИ упорно не хочет этим пользоваться. Во-вторых, существо не сможет воскресить погибший отряд - только восстановить убитых в раненом. Типичный пример - командир Некрополиса в WoG.

Как раз с командира оживление мертвецов я и убрал, т.к. ИИ начинал постоянно поднимать нежить, что вело к лютому усилению некрополиса. Сила подъёма нежити берётся от героя, без героя = вылеты, поэтому в оригинальном WoG нельзя поднимать нежить без героя.

(30.07.2023 12:23)MOP Wrote:  4. Найти-таки проверки и видоизменить. Голову сломал уже, перевернул в коде с ног на голову все очевидные проверки флагов "Живой/Нежить" - ничего не помогает. Остаются неочевидные. Обычный путь их поиска - брейкпойнт на участок памяти. Но мне ли объяснять, сколько обращений к флагам отряда происходит при каждом пуке в битве? Даже на сдвиг курсора на пиксель их выскочит десятка два.
Такие дела. Bad

Тут или положить болт на поднятие нежити от монстров, или добавить новое заклинание в MoP, поднимающее нежить с трупов, и выдать его Ангелу Смерти. Быстрее наверное всё же добавить новое заклинание вместо того, чтобы пытаться модифицировать всю колбасу, связанную с демонологией (там и так куча хуков в ней, чтобы позволить воскрешать нужного монстра).
30.07.2023 15:31
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #94

...и тут я как раз разобрался. Ключевой, хотя и не единственной, оказалась проверка на флаг нежити по адресу 44A28Dh. ИИ тоже нормально функционирует и поднимает мертвецов. Осталось отсеять лишнее из остальных проверок и можно юзать. Будет дополнительный пункт списка "Магия 1" в редакторе.
(30.07.2023 15:31)XEPOMAHT Wrote:  Как раз с командира оживление мертвецов я и убрал, т.к. ИИ начинал постоянно поднимать нежить, что вело к лютому усилению некрополиса.
Ну ХЗ, в MoP не вылетает, но командир ИИ не хочет поднимать нежить ни с героем, ни без героя,хотя я вернул ему ради теста вог-параметры колдовства.

(30.07.2023 15:31)XEPOMAHT Wrote:  там и так куча хуков
Когда нас пугала куча хаков? 96 10-20 - это даже не куча.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
(This post was last modified: 30.07.2023 15:42 by MOP.)
30.07.2023 15:37
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #95

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

Code:
005A5075  8B30                              mov    esi,[eax]
005A5077  EB02                              jmp    L005A507B
005A5079                           L005A5079:
005A5079  33F6                              xor    esi,esi
005A507B                           L005A507B:
005A507B  8D837C540000                      lea    eax,[ebx+0000547Ch]
005A5081  8975F4                            mov    [ebp-0Ch],esi
005A5084  8945F4                            mov    [ebp-0Ch],eax


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
04.08.2023 13:39
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #96

Возможно, какие-то артефакты после встраивания функции (inlining) с неиспользуемыми, но инициализируемыми локальными переменными.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
04.08.2023 17:30
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #97

Image: drums.png

НОВОСТИ

61. В панели ресурсов теперь отображается не только количество каждого ресурса, но и чистая дневная прибыль (то есть, учитывается расход, хотя в нём пока всего одна статья — Ассимиляция).
62. Добавлено жилище Быков Подземелий — Пещерные Стойла.
63. Теперь можно за золото менять ветвь развития в городе, заменяя обитателей с исконных существ на альтернативных и наоборот. Для этого на экран города (точнее даже — за его пределы) добавлена соответствующая кнопка. Цена изменения — 1000 * уровень жилища. Присутствующие в жилище наёмники будут обнулены.
64. Доработаны часы реального времени. Больше нет нерегулярного вылета, попортившего мне много крови.
65. Следующие изменения аналогичны тем, что были проведены в рамках двух последних обновлений Typhon и касаются редактора существ. Кому лень пройти в соответствующую тему – дублирую информацию:
66. Регенерация Древнего Носорога поднята в 6 раз до 3000 HP. Иначе, ввиду отсутствия контрударов и охраны, существо фактически являлось самым уязвимым рейд-боссом в игре.
67. Добавлено новое заклинание 5-го уровня – Град/Hailstorm (№163). Во многом копирует Армагеддон, но принадлежит, естественно, к стихии Воды, несколько слабее, но зато поражённые отряды могут быть оглушены с вероятностью 25%.
Графика – перекрашенный и отражённый по горизонтали Армагеддон, что, по-моему, выглядит не так уж плохо.
68. Из-за того, что заклинания холода (Ледяная Молния, Кольцо Холода, Вьюга и Град) фактически разрослись в отдельный подкласс водных заклинаний, для них понадобился общий индикатор, так что в редакторе заклинаний один из неиспользующихся флагов теперь носит название «Морозное»/«Frost spell». Установка этого флага другому заклинанию без проблем помещает его в подкласс морозных, со всеми вытекающими последствиями: нанесением двойного урона уязвимым и бесполезностью по отношению к врождённо иммунным или защищённым Ледяным Щитом.
69. Все три грейда дендроидов наделены уязвимостью к Огню. Просто логика.
70. Исправлен баг: Жезл Молний давал лишь Цепную Молнию, но не Удар Молнии. (
71. Добавлен новый артефакт – Ледяной Клинок. Легендарный противовес Клинка Армагеддона. Плюсы к первичным параметрам — +3/+3/+6/+3 (то есть, по сравнению с КА, Знание и Колдовская Сила обменены местами). Даёт заклинание Град экспертного уровня и иммунитет к нему для союзных отрядов.
Только не спрашивайте, что будет, если два этих артефакта встретятся в битве.
Image: 1.png

Image: 2.png

Image: 3.png

Image: 4.png

Image: 5.png


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
05.08.2023 08:56
Find all posts by this user Quote this message in a reply
Elmore Offline

Posts: 608
Post: #98

Могу с уверенностью сказать, что не хватает поддержки 16:9. Фильтры могут сделать картинку приятной даже при 1920х1080 в полноэкранном, но вот большие черные полосы по бокам все портят. Растягивание мало кому придется по душе.

1920х1080 с фильтром (Click to View)


Image: widget.png?style=banner2
(This post was last modified: 08.08.2023 17:44 by Elmore.)
08.08.2023 17:39
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #99

Меня в данный момент это менее всего беспокоит. Проблемы выскакивают отовсюду, а решить не могу.
1. Часы просто ***ли вылетать. Ошибка не исправлена, причём она бросает длинную тень на всю игру. То есть вылет, то нет. Не спасают никакие пушады и пушфды. Что, к чёрту, может быть не так с обновлением элемента диалога, поставленного в таймер реального времени?
2. Воскрешение мертвецов глючит, несмотря на любые мои модернизации. Например, бывает, когда защитник может поднимать и живых, и мёртвых соответствующими воскресителями, нападающий - никого не может. Не говоря уже о внезапном наложении Гипноза на скелетов Кольцом Змеиного Взгляда.
Кстати, в Тифоне эта хрень тоже всё портит. Лучше бы вообще не выпускал v 2.9.
3. Хочу заставить героя автоматом колдовать Армагеддон и Град в начале раунда. Нападаю красным на синего - всё работает отлично. Нападаю синим на красного - вылет сразу. 105
И так изо дня в день. Ни решения, ни подвижек - только ложные случаи нормального срабатывания. Руки медленно опускаются, хочется просто забыть про всё это дерьмо.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
09.08.2023 14:58
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #100

(09.08.2023 14:58)MOP Wrote:  может быть не так с обновлением элемента диалога, поставленного в таймер реального времени?

Тоже напарывался на такое в MoP, когда занимался поддержкой анимированных сообщений прямо в окне состояния интерфейса карты приключений. Обновление оказалось жёстко привязано к частоте ЦП, поэтому сделать одинаковое воспроизведение анимации на разных ПК не получилось, при том постоянно глючило, и данное нововведение из MoP было убрано насовсем. Может и часы тоже стоит убрать?

(09.08.2023 14:58)MOP Wrote:  Кстати, в Тифоне эта хрень тоже всё портит. Лучше бы вообще не выпускал v 2.9.

У меня в Тифоне 3.5 это нововведение работает вроде бы нормально. Были проблемы с порчей данных в CasterAngDem, но вроде бы они решились.

(09.08.2023 14:58)MOP Wrote:  И так изо дня в день. Ни решения, ни подвижек - только ложные случаи нормального срабатывания. Руки медленно опускаются, хочется просто забыть про всё это дерьмо.

Бывает так же, когда что-то не получется в ERA+. Приходится просто отказываться от того, что не можешь сделать и переходить к чему-то более простому.
09.08.2023 16:19
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #101

(09.08.2023 14:58)MOP Wrote:  1. Часы просто ***ли вылетать. Ошибка не исправлена, причём она бросает длинную тень на всю игру. То есть вылет, то нет. Не спасают никакие пушады и пушфды. Что, к чёрту, может быть не так с обновлением элемента диалога, поставленного в таймер реального времени?
В подавляющем большинстве случаев диалоги вылетают по двум причинам: утечка памяти и переполнение стека (ты за памятью в реальном времени смотрел?) или обращение к несуществующему элементу (Может в какой-то момент твой элемент где-то уничтожается (например у тебя пересекается ID элемента с существующими уже), возможно простая проверка на элемент != NULL поможет и ты увидишь, что часы остановились, если о часах конечно идёт речь)

У меня с анимацией в диалогах никогда проблемы не было. Сделано было вот так: раз и
Хотя с анимацией в окне состояния интерфейса карты приключений нужно попробовать/поэксперементировать. Может я чего и не знаю.

(09.08.2023 14:58)MOP Wrote:  3. Хочу заставить героя автоматом колдовать Армагеддон и Град в начале раунда. Нападаю красным на синего - всё работает отлично. Нападаю синим на красного - вылет сразу. 105
И так изо дня в день. Ни решения, ни подвижек - только ложные случаи нормального срабатывания. Руки медленно опускаются, хочется просто забыть про всё это дерьмо.
Может где-то ты при написании обращаешься всегда к структуре первого игрока (красного), даже под синим цветом? Тут хз.

У тебя логирование вылетов сделано? Ну там список стека вызова последних функций?

PS: MOP, значит нужно остановиться, взять паузу и вернуться в этим моментам позже. Иначе быстро перегоришь.


game bug fixes extended.dll || My Plugins || My GitHub
10.08.2023 06:29
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #102

MOP, анимацию лучше делать в функции обработки событий диалога. Так делает игра и код игрика.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.08.2023 07:12
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #103

MOP, для автокаста закла при нападении используй хук прямл перед автокастом от артефактов

00464FBA ->edi герой / eax -> сторона - это будет работать для активной стороны
00464FA3 -> тут хук прямо перед проверкой, был ли автокаст от артов с данной стороны - test cl,cl , но активная сторона всё ещё в eax . В общем, тут не должно вылетать - на erm ставил хуки в этих местах


Image: widget.png?style=banner2

Новейший Heroes Launcher
10.08.2023 10:45
Visit this user's website Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #104

Речь же не об анимации, а об обновлении текста строки элемента диалога. Это не DEF, а FNT.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
10.08.2023 12:19
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #105

(10.08.2023 12:19)MOP Wrote:  Речь же не об анимации, а об обновлении текста строки элемента диалога. Это не DEF, а FNT.
Я проверил и на тексте - у меня не было вылетов за пол часа работы игры в фоновом режиме. Не может у тебя буфер под текст быть слишком маленьким?


game bug fixes extended.dll || My Plugins || My GitHub
10.08.2023 12:31
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group