Wake of Gods Forum | Форум Во Имя Богов

Full Version: Master of Puppets 3.07f
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Quote:+ в нём ещё редактор карт
Есть какие нибудь проблемы в создании нормальной, обычной мапы для МОП?
И можно ли конвертнуть ВоГ карту в МоП?
Quote:Есть какие нибудь проблемы в создании нормальной, обычной мапы для МОП?
Уже говорилось об этом.
(21.02.2012 12:02)MOP Wrote: [ -> ]RB - как големы, а из големов жизнь вроде не пьют.

какие такие големы ?!? Не камень /не глина/ не метал/ не "материя" стихий Moral
Плоть и кровь -,значит ПОЛОЖЕНО Ab

...да,хотелось бы ещё файлик крохотный, позволяющий расти существам в Банках вместе с ростом опыта;и нейтралам тоже росту опыта ,а то ведь несерьёзно как-то...
    очень хотелось...Yes
МоП Wrote:2. Стоит ли выносить Дуалит на панель ресурсов?
Не, не стоит. Слишком редко используется, чтобы быть на панели.

Quote:Уже говорилось об этом.
Угу, упустил.

Quote:Размещение рейд-боссов WERD-ом происходит по принципу:
А нельзя их вручную тыкать? Как обычных монстров...
Если нет, то нужно сделать Sm

Quote:очень хотелось...Yes
Удачи) Мне повезло, я получил свой крохотный файлик =)
MOP, неужели трудно сделать замену высокоуровневых существ в смешанных охранах, если их файтвэлью превышает заданное? После округления их количества до единицы стало еще хуже, чем когда до нуля округлялось. Одно существо 8 лвл может увеличить силу охраны больше чем на порядок от необходимого уровня.
(22.02.2012 21:57)packa Wrote: [ -> ]Есть какие нибудь проблемы в создании нормальной, обычной мапы для МОП?
И можно ли конвертнуть ВоГ карту в МоП?
Создать можно, но с указанными оговорками о RB и строительстве городов.
Конвертнуть - нет. Причина: многие старые артефакты в MoP имеют совершенно другие номера.
(22.02.2012 22:56)am haarec Wrote: [ -> ]какие такие големы ?!? Не камень /не глина/ не метал/ не "материя" стихий Moral
Плоть и кровь -,значит ПОЛОЖЕНО Ab
"Как големы" - не значит, что големы и есть. Я полагал, что наличие Боевого Духа у RB может обернуться слишком фатальным исходом для войск героя.
А вообще, почему бы не воспользоваться редактором монстров? Там можно дать RB БД, ответки и ещё кучу всякого добра. А если параметры менять - продвинутые могут достать из h3mop.lod файл MCrTrait.txt. Sm
(22.02.2012 22:56)am haarec Wrote: [ -> ]...да,хотелось бы ещё файлик крохотный, позволяющий расти существам в Банках вместе с ростом опыта;и нейтралам тоже росту опыта ,а то ведь несерьёзно как-то...
    очень хотелось...Yes
Сорри, я об этом совсем не думал. В ВОГ рост охраны банков вроде скриптом сделан?
(22.02.2012 23:15)packa Wrote: [ -> ]
МоП Wrote:2. Стоит ли выносить Дуалит на панель ресурсов?
Не, не стоит. Слишком редко используется, чтобы быть на панели.
Вот и я так думаю. Да и панель больно уж сожмётся.
(22.02.2012 23:15)packa Wrote: [ -> ]А нельзя их вручную тыкать? Как обычных монстров...
Если нет, то нужно сделать Sm
Так ты открой редактор карт и - behold. Sm Все там монстры есть, кроме Воздушного Шара. Ставь на карту, если надо.
(22.02.2012 23:30)kostya_76 Wrote: [ -> ]MOP, неужели трудно сделать замену высокоуровневых существ в смешанных охранах, если их файтвэлью превышает заданное? После округления их количества до единицы стало еще хуже, чем когда до нуля округлялось. Одно существо 8 лвл может увеличить силу охраны больше чем на порядок от необходимого уровня.
Поэтому введение было экспериментальным.
Когда я при переписывании кода на асме доберусь до смешанных нейтралов, тогда ещё раз пересмотрю алгоритм. Может, он будет совершенно другим.

***************************************

Наконец-то я понял, что за ошибка была у некоторых при обзоре королевства! Потому что сам её поймал и выяснил причину. В бинарном патче:
Code:
11D2AE E91ED22200      JMP mop.0074A4D1
Отсутствует точка с запятой. Странно, но BinGen это слепо пропускает, генерирует код прыжка, а дальше вставляет мусор, затирающий важный код, относящийся к реликвии, реализующей Портал Вызова.
Тут я, конечно, сообразил, что таких ошибок в тонне патчей, которым был подвергнут экзешник, наверняка не одна. Тем более, что и раньше встречался с таким попустительством BinGen. Попробовал сначала этот же патч на BinMagic – тот ошибку показал. Тогда я, сделав для страховки бэкап старого батника, весь батник перевёл на BinMagic (а ведь хотел же, блин, ещё до релиза, но лень не дала), запустил его – и понеслась... Выдало нагора штук 30-40 ошибок в разных файлах. Где отсутствует точка с запятой, а где вместо неё – двоеточие. Довольно немало, но по сравнению с общим объёмом патчей (десятки тысяч) это повод меня убить всё-таки не даёт. Sm
Но на этом сюрпризы не кончились. Экзешник, созданный BinMagic-ом, оказался нерабочим! О_о. Патчился он правильно, PatchFor=File, и даже запускается. Но при запуске выдаёт ошибки ERM (который, по идее, вырублен WERD-ом), а при старте карты вылетает с криком. Пораскинул мозгами, убрал опцию Optimize (всё равно в данном случае она бессмысленна, так как bin-ы удаляются сразу после патчинга). Все симптомы исчезли.
Чуть позднее понял, что Optimize некорректно работает, если несколько патчей имеют один адрес. Конкретно, у меня там два:
Code:
2A0685 B8B0BF5800;                 MOV EAX,mop.0058BFB0

2A0685 61;                         POPAD
2A0686 C705F7FB400000000000;       MOV DWORD PTR DS:[40FBF7],0
По идее, как при оптимизации, так и без неё, последний патч должен корректно перекрывать предыдущий. Но получается бред.
Code:
00705685   B8 C705F7FB      MOV EAX,FBF705C7
0070568A   40               INC EAX
0070568B   0000             ADD BYTE PTR DS:[EAX],AL
0070568D   0000             ADD BYTE PTR DS:[EAX],AL
Как видно, программа проигнорировала popad, вставив в адрес ранее указанный опкод mov eax. Логика кода совершенно испорчена.
Конечно, можно на это ответить: «Не налагай патчи друг на друга». Но легко представить себе ситуацию, когда это необходимо. Дан исходник с одной километровой строкой патча. Код его посмотрен в отладчике. Выяснена ошибка или требуется модификация где-то в середине этой строки. Гораздо проще наложить патч поверх, чем лезть разбирать, где в этом чудовище нужный адрес. Да ещё и ошибок не наберёшься, если сместишь этот код по рассеянности на +/- 1 байт.

Но вернусь к началу. Исправление, к сожалению, выкладывать рискованно, так как после релиза exe был подвергнут ещё сотням патчей и не факт, что в исправление не проникнет код RtL, который убъёт старый exe S & D в каком-нибудь месте.
Конкретно исправление для Обзора Королевства можно было бы сделать патчем, но больно уж мелкая это бяка, а я не люблю плодить мелочи. В общем, либо последнего стабилизирующего патча S & D не будет, либо как-нибудь летом наберём того-сего и слепим.

P.S.: Ещё немного о fasm и WERD для заинтересованных:
MOP, насчёт Optimize, ты не мог бы привести команду, которой компилировал и имена файлов?
Наложенные патчи конкретно были в этом файле:
Code:
LIB\BinMagic.exe Cmd=ConvertPatch SourcePatch="LIB\DestroyHooks.txt" ResultPatch="DestroyHooks.bin" PatchFor=File Optimize
Полный листинг патча:
Насчёт экспериментальной опции "богатых сундуков". В сочетании с увеличенным бонусом от камня знаний напрочь портит интерес к игре, хотя несколько раз деньги из таких сундуков мне очень сильно помогли.

Пример, из последней игры. Около стартового города валяется сундук и стоит неохраняемый или черезвычайно слабо охраняемый столбик. Герой подбирает сундук, берет 5000 опыта и посещает столбик, получая ещё 6000 опыта. Цифры примерные, точно уже не помню. Вуаля - герою нахаляву достаётся 7 уровней.

Решение:
Бонус столбика сделать меньше, не 1000/уровень, а 500/уровень. Сделать отдельный объект - большой сундук с бОльшим Value, чтобы он на карте генерировался только с охраной.
Сделал пустую карту, тыкнул инферно, и монстров.
После найма героя в таверне, он получает полет на 1 день, это фишка такая?
Вроде, один из патчей правил это.
MOP, сортировка действительно меняет местами патчи с одинаковыми адресами. Постараюсь исправить.
kostya_76 Wrote:MOP, неужели трудно сделать замену высокоуровневых существ в смешанных охранах, если их файтвэлью превышает заданное?
Немного ступил.
Решение есть и его можно привести в жизнь самому. Найти в скрипте следующую команду:

!!IP:Mvy100/127/?v4 Mvy100/127/?v5 Mvy100/127/?v6 Mvy100/127/?v7 Mvy100/127/?v8 Mvy100/127/?v9;

Число 127 - не что иное, как сумма битов уровней существ, которые могут быть сгенерированы. Оптимальным решением будет поставить там 63 - это полностью исключит генерацию 7(8)-го уровня в отряде смешанных нейтралов - кроме исходного монстра, стоящего изначально на этой позиции.
А можно поставить 1 - и всегда биться с сопляками. Sm
(23.02.2012 19:49)Ivor Wrote: [ -> ]Бонус столбика сделать меньше, не 1000/уровень, а 500/уровень.
Легко.
(23.02.2012 19:49)Ivor Wrote: [ -> ]Сделать отдельный объект - большой сундук с бОльшим Value, чтобы он на карте генерировался только с охраной.
А вот тут не очень. Разве что охрану лучше поставить внутреннюю, а не видимую.
Угу. Так и есть. В модуле Alg реализована классическая оптимизированная быстрая сортировка, которая неустойчива:
Quote:Устойчивая (стабильная) сортировка — сортировка, которая не меняет относительный порядок сортируемых элементов, имеющих одинаковые ключи. Большинство простых методов сортировки устойчивы, большинство сложных — нет.

Сделаю устойчивой и пересоберу BinMagic потом, м.б. даже с более правильным кодом после оптимизации (объединение патчей).
Reference URL's