_PI->WriteLoHook(0x47ADA0, changeGrowth);
Этого адреса нет в btb2. Я так понимаю, что для того, чтобы узнать нужный адрес самому необходимы уже знания Ассемблера. Есть ли где-то инструкция, с помощью какого ПО и вообще по какому приниципу проводится анализ и нахождение нужного адреса?
И Вам совсем необязательно в случае WriteByte/WriteWord/WriteDword пользоваться шестнадцатеричной системой счисления. Вы можете использовать десятичные числа.
Буду знать. Благодарю.
Если вы патчите байт, используйте WriteByte. Например, _PI->WriteDword(0x4645A0, 0x18); - эквивалентно _PI->WriteHexPatch(0x4645A0, "18 00 00 00"); Вы не только пишете 0x18, но ещё и затираете следующие три байта нулями. Правильно - _PI->WriteByte(0x4645A0, 0x18); или _PI->WriteByte(0x4645A0, 24); (как Вам удобнее).
Ага, понял. Спасибо. Исходя из этого:
WriteByte(0xАдрес, один байт - 0xAB для примера); - эквивалент WriteHexPatch(0xАдрес, "AB");
WriteWord(0xАдрес, два байта - 0xABСD для примера); - эквивалент WriteHexPatch(0xАдрес, "СD AB");
WriteDword(0xАдрес, четыре байта - 0xABСDEF01 для примера); - эквивалент WriteHexPatch(0xАдрес, "01 EF CD AB");
Если нужно пропатчить три или более 4-х байт, всегда используйте WriteHexPatch: WriteHexPatch(0xАдрес, "00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F");
Dword - 4 байта, значит патча всего 1 байт, мы оставшиеся 3 затираем нулями. По-моему, в данном случае, чтобы не мешать WriteByte/WriteWord/WriteDword, лучше использовать один WriteHexPatch - он более универсален, ним можно пропатчить любое количество байтов.
И мы плавно переходим к последнему (если не считать 5-6 и 10-12), самому интересному и, пожалуй, самому важному пункту:
7) Очень нужен отдельный плагин для SoD/Complete, который восстановит код Отрицательной Удачи (Неудачи) (анимацию можно использовать из заклинания "Неудача"). При отрицательной Удаче отряд имеет шанс нанести половинный урон. Чем выше степень отрицательной удачи - тем выше шанс (-1: 8.3%, -2: 16.7%, -3: 25%). (этого нет в SoD_SP).
Отрицательная Удача есть в
Ad Fontes, WoG/ERA, HotA, но я нигде еще не встречал отдельльный плагин Отрицательной Удачи к HD-моду для
SoD/Complete. В SoD_SP - ее тоже нет.
Одни говорят, что отсутвие Отрицательной Удачи - это баг, другие же, напротив, говорят, что она якобы была, но в последний момент разработчики NWC, по непонятным причинам ее вырезали.
Короче, какая-то тайна, покрытая мраком. А ведь все говорит о том, что она должна была быть и должна была работать. Ведь Мораль то, отрицательная есть и работает, и Удача должна тоже работать, описание для нее же есть, даже заклинание "Неудача" есть. Но из-за не работы самой Отрицательной Удачи и заклинание "Неудача" становится бесполезным...
А вы никогда не писали может для себя подобного плагина, который восстанавливает код Отрицательной Удачи? Сложно ли будет его написать?