Модинг абилок юнитов Heroes 4 WoW

Форум предназначен для обсуждения общегеройской тематики, не относящейся к аддону Equilibris. Флуд, флейм и оффтоп, категорически запрещены.
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Модинг абилок юнитов Heroes 4 WoW

Post by Accolon »

Creature ability guide (by Lost) v.16.06.2003

Как добавить, удалить или изменить абилки у монстров Heroes 4 WoW

Первым делом необходимо установить hex-редактор и дизассемблер Hiew. Именно в нем и придется работать. Можно еще скачать IDA версии 4.1 или выше (версия 4.1 бесплатная, остальные ищите на варезятниках) - но он нужен только, если вы хотите понять, как вообще находить инфу в экзешнике.

Для оставшихся объясняю: IDA очень полезная штука, так как в нем можно снабжать код дизассемблера своими комментариями, давать свои имена функциям и вообще много чего еще. Откройте IDA, откройте в нем файл heroes.exe (no-cd 3.0WoW), который можно скачать, к примеру, на сайте Haze. Пока IDA расшифровывает файл и создает свою базу, можно выпить чашек 5 кофе, скурить пачку сигарет, прочитать какую-нибудь книжку или помедитировать - дело это неспешное. Когда надпись сверху сменится на READY - можно приступать.

Теперь жмите меню Navigate->Jump to->Address->00654820
Должно появиться что-то типа этого

Code: Select all

.text:00654820 sub_0_654820    proc near               ; CODE XREF: .text:0065
.text:00654820                 push    21h                                    
.text:00654822                 push    11h                                    
.text:00654824                 push    19h                                    
.text:00654826                 push    0                                      
.text:00654828                 mov     ecx, offset unk_0_AB1960               
.text:0065482D                 call    sub_0_6551D0                           
.text:00654832                 push    39h                                    
.text:00654834                 push    19h                                    
.text:00654836                 push    1                                      
.text:00654838                 mov     ecx, offset unk_0_AB1974               
.text:0065483D                 call    sub_0_655000                           
.text:00654842                 push    3Dh                                    
.text:00654844                 push    24h
Далее идут интересные конструкции типа

Code: Select all

.text:00654820                 push    21h
.text:00654822                 push    11h
.text:00654824                 push    19h
.text:00654826                 push    0
.text:00654828                 mov     ecx, offset unk_0_AB1960
.text:0065482D                 call    sub_0_6551D0
И так 74 раза. Путем несложных умозаключений понимаем, что ребята из NWC решили особо не париться, вынося абилки созданий в таблицы ресурсов (как они сделали с заклинаниями), а инициализируют абилки прямо из экзешника. Причем для всех 74 созданий. Вот геморрой-то!

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

Для дальнейшего удобства обзовите процедуру по адресу 654820 именем FillAbility (нужно встать на строчку с адресо 654820 и нажать N), а процедуры добавления абилок назвать Fill1Ability, Fill2Abilities, Fill3Abilities, Fill4Abilities. Чтобы определить, сколько абилок добавляется в функции, подсчитайте количество push перед вызовом процедуры и отнимите 1. К примеру, первым делом вызывается процедура по адресу 6551d0. Перед ней стоит 4 инструкции push (21,11,19,0). Значит, адрес 6551d0 - это адрес процедуры с тремя абилками. Наведите курсор на call и нажмите Enter и N. Введите имя процедуры - Fill3Abilities. Также следует поступить с остальными процедурами Fill1,2,4Abilities.

Теперь неплохо бы определить, каким существам соответствуют вызовы абилок. Вооружившись таблицей абилок, можно определить, каким существам соответствует вызов по его абилкам. К примеру, абилки 21,11,19 соответствуют insubstantial, elemenal, flying - можно догадаться, что это воздушный элементал. Точно таким же образом определяются и остальные создания. Можно заметить, что создания перечисляются по алфавиту (исключая новеньких из WoW и TGS). Для тех, кто не хочет напрягаться, ниже таблица адресов абилок всех созданий. Чтобы было потом легче изменять абилки, возле первого push, относящегося к существу, в комментариях подпишите его название.

Должно получиться примерно такое:

Code: Select all

.text:00654820
.text:00654820 ; --------------- S U B R O U T I N E ---------------------
.text:00654820
.text:00654820
.text:00654820 FillAbilities   proc near               ; CODE XREF: .text:
.text:00654820                 push    21h             ; air elemental
.text:00654822                 push    11h
.text:00654824                 push    19h
.text:00654826                 push    0
.text:00654828                 mov     ecx, offset air_elemental
.text:0065482D                 call    Fill3Abilities
.text:00654832                 push    39h             ; angel
.text:00654834                 push    19h
.text:00654836                 push    1
.text:00654838                 mov     ecx, offset angel
.text:0065483D                 call    Fill2Abilities
.text:00654842                 push    3Dh             ; ballista
Ну вот, теперь вы готовы изменять абилки. Можно конечно изменять прямо в IDA, Edit->Patch program->Assemble. Но я использую для правки Hiew - так проще. IDA- только для изучения.
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Creature ability guide (by Lost) v.16.06.2003

(Как добавить, удалить или изменить абилки у монстров Heroes 4 WoW)

Удаление абилок

Чтобы удалить абилку у существа, определяем адрес существа (используя либо таблицу, либо IDA). Далее находим в Hiew ту абилку, которую надо удалить и забиваем ее двумя командами nop(жмем F3, потом Enter и вводим в строке nop, жмем энтер, потом еще раз). Далее смотрим на самый первый call ниже nop-ов. Его нужно сменить. Если раньше у создания было 3 абилки - то вызывалась процедура для трех абилок. Теперь мы удалили одну абилку - значит нужно изменить процедуру. Смотрим адрес процедуры для двух абилок (в таблице или в IDA), изменяем его на нужный (call 00255000). Вот и все. Жмем F9, выходим из Hiew, запускаем экзешник и смотрим на изменения.

К примеру, чтобы удалить у воздушного элементала возможность летать

1. смотрим в таблице существ адрес воздушного элементала - .00654820.
2. в Hiew открываем экзешник, жмем F4, выбираем Decode.
3. жмем F5, вводим адрес .00654820. Enter.
4. Теперь на экране должно быть что-то вроде этого:

Code: Select all

.00654820: 6A21                         push        021
.00654822: 6A11                         push        011
.00654824: 6A19                         push        019
.00654826: 6A00                         push        000
.00654828: B96019AB00                   mov         ecx,000AB1960
.0065482D: E89E090000                   call       .0006551D0
Если там этого нету - значит у вас не оригинальный no-cd 3.0WoW от Haze.
5. Наводим курсор на строчку .00654824 push 019,жмем F3, Enter. (19 - абилка fly)
6. В появившемся окошке вводим nop(затирая содержимое), потом Enter и опять nop с Enter.
7. Жмем F9. Получилось что-то вроде этого:

Code: Select all

.00654820: 6A21                         push        021
.00654822: 6A11                         push        011
.00654824: 90                           nop
.00654825: 90                           nop
.00654826: 6A00                         push        000
.00654828: B96019AB00                   mov         ecx,000AB1960
.0065482D: E89E090000                   call       .0006551D0
8. Теперь переместите курсор в строчку .0065482D call .0006551D0
9. Жмем F3, Enter, вводим строчку call 000255000, Enter, F9 (адрес берем из таблицы адресов процедур). Не пугайтесь, если после замены и нажатия F9 адрес call изменился - все нормально, просто в команде call указывается не адрес процедуры в экзешнике, а адрес процедуры в пямяти, а он на 400000 больше. Но в режиме редактирования нужно вводить адреса процедуры в экзешнике.
10. Выходим из Hiew, запускаем экзешник - теперь воздушные элементалы не летают!
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Creature ability guide (by Lost) v.16.06.2003

(Как добавить, удалить или изменить абилки у монстров Heroes 4 WoW)

Замена абилок

Удалять абилки легко, не правда ли? А вот заменять - еще легче. Нужно определить адрес существа и заменить push ненужной абилки на push нужной.

Давайте поиздеваемся над ангелами - изменим абилку "полет" на "вампиризм".

1. находим адрес ангела (в таблице или IDA) = .654832
2. Открываем Hiew, переходим по этому адресу (как переходить написано выше, в разделе "Удаление абилок")
3. Видим примерно следующее:

Code: Select all

.00654832: 6A39                         push        039
.00654834: 6A19                         push        019
.00654836: 6A01                         push        001
.00654838: B97419AB00                   mov         ecx,000AB1974 
.0065483D: E8BE070000                   call       .000655000
4. Наводим курсор на push 19 (код полета), F3-Enter-заменяем его на push 50-F9
5. Выходим из Hiew - теперь у ангелов вампиризм, но они не летают.
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Creature ability guide (by Lost) v.16.06.2003

(Как добавить, удалить или изменить абилки у монстров Heroes 4 WoW)

Добавление абилок

Добавление абилок было бы простым делом, если бы вызовы процедур не располагались так близко друг от друга. Казалось бы, вставить один push, изменить адрес процедуры - и все. Но нет. Места для pusha нету. Что же делать?

А вот что. Убираем полностью все push, mov и call для существа из процедуры. Заменяем их на кучу nop и один call - в место, где нет такой тесноты кода. В PE- заголовках Windows-файлов обычно есть свободное место начиная с адреса 2e0 и заканчивая FFF. Его-то и можно использовать под код. То есть со старого места весь код убирается, остается только call на новое место (к примеру, 300). На новом месте нужно написать то же, что и на старом, плюс добавить новый push с нужной абилкой, изменить адрес вызываемой процедуры, и передать управление обратно в FillAbilities с помощью ret.

Давайте сделаем земляным элементалам новые абилки - stone skin и stone gaze. Вот что для этого надо сделать.

1. Находим адрес земляного элементала в таблице .65494E
2. Там должно быть следующее:

Code: Select all

.0065494E: 6A28                         push        028
.00654950: 6A11                         push        011
.00654952: 6A12                         push        012
.00654954: B9C81AAB00                   mov         ecx,000AB1AC8 
.00654959: E8A2060000                   call       .000655000
3. Как видно, элементал имеет 2 абилки - 28(Magic Resistance) и 11(Elemental). Давайте добавим ему еще 2 - Stone Skin(43) и Stone Gaze(42).
4. Скопируйте в notepad или просто на листочек все push'и и mov ecx, 000AB1AC8
5. Первый push замените на call 300, все остальное затрите nop'ами. Должно получиться так:

Code: Select all

.0065494E: E8ADB9DAFF                   call       .000654300
.00654953: 90                           nop
.00654954: 90                           nop
.00654955: 90                           nop
.00654956: 90                           nop
.00654957: 90                           nop
.00654958: 90                           nop
.00654959: 90                           nop
.0065495A: 90                           nop
.0065495B: 90                           nop
.0065495C: 90                           nop
.0065495D: 90                           nop
.0065495E: 6A15                         push        015  (начало следующего создания)
6. Теперь переходим на 300, F3, Enter и записываем там следующие строчки:

Code: Select all

00000300: 6A28                         push        028 <- скопировано со старого места
00000302: 6A11                         push        011 <- скопировано со старого места
00000304: 6A43                         push        043 <- добавленные абилки
00000306: 6A42                         push        042 <- добавленные абилки
00000308: 6A12                         push        012 <- скопировано из старого места
0000030A: B9C81AAB00                   mov         ecx,000AB1AC8 <- скопировано из старого места
0000030F: E89C502500                   call       .0006553B0  (надо вводить call 2553b0)
00000314: C3                           retn
7. Жмем F9. Выходим из Hiew, запускаем и смотрим. У элементала теперь 4 абилки.

Вот собственно, и все. Изменяйте на здоровье!
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Creature ability guide (by Lost) v.16.06.2003

(Как добавить, удалить или изменить абилки у монстров Heroes 4 WoW)

Таблица существ

Code: Select all

Имя               Адрес    Имя              Адрес
Air elemental    .654820   Angel           .654832
Ballista         .654842   Bandit          .654856
Beholder         .654864   Behemoth        .654876
Black dragon     .654884   Bone dragon     .654896
Centaur          .6548AA   Cerber          .6548BC
Champion         .6548CC   Crossbowman     .6548DC
Crusader         .6548EC   Cyclop          .6548FC
Venom spawn      .65490C   Devil           .65491C
Dragon golem     .65492E   Gnome           .654940
Earth elemental  .65494E   Efreet          .65495E
Elf              .654972   Fairy dragon    .654984
Fire elemental   .654996   Gargoyle        .6549AA
Genie            .6549BC   Ghost           .6549CC
Berserker        .6549E0   Gold golem      .6549F0
Gryphon          .654A00   Halfling        .654A10
Harpy            .654A20   Hydra           .654A32
Ice demon        .654A42   Imp             .654A54
Leprecon         .654A64   Mage            .654A72
Mantis           .654A80   Medusa          .654A92
Mermaid          .654AA6   Minotaur        .654AB4
Monk             .654AC2   Mummy           .654AD2
Naga             .654AE2   Nightmare       .654AF0
Nomad            .654AFE   Ogre mage       .654B0C
Orc              .654B1A   Peasant         .654B2C
Phoenix          .654B3A   Pikeman         .654B4E
Pirate           .654B5E   Satyr           .654B6C
Sea monster      .654B7A   Skeleton        .654B88
Squire           .654B98   Sprite          .654BA6
Thunderbird      .654BB6   Titan           .654BC6
Troglodyte       .654BD8   Troll           .654BE6
Unicorn          .654BF4   Vampire         .654C02
Waspwort         .654C16   Water elemental .654C26
White tiger      .654C3A   Wolves          .654C48
Zombie           .654C56   Goblin knight   .654C66
Evil sorceress   .654C78   Gargantuan      .654C8A
Dark champion    .654C9E   Catapult        .654CB2
Frenzied gnasher .654CC6   Megadragon      .654CD6
Таблица абилок

Code: Select all

Номер Название                    Номер Название
0     Triple head attack(cerber)  2A    Mechanical
1     Aging                       2C    Mirth (satyr)
2     Area attack                 2E    No retaliation
3     Berserker                   2f    Normal melee
4     Bind                        30    Fear
5     Immune to visual            31    Poison
6     Blind                       32    Random harmful spell
7     Block                       33    Ranged
8     Bloodlust(ogre)             34    Ranged first strike
9     Breath attack               37    Rebirth(phoenix)
0A    Chaos ward                  38    Regeneration
0B    Charge                      39    Ressurection
0C    Cold attack                 3a    Bonuses at sea
0D    Cold resist                 3b    Shoots twice
0E    Curse                       3c    Short range
0F    Devouring                   3d    No obstacle penalty
10    Death ward                  3e    Skeletal
11    Elemental                   40    Spellcaster
14    Fire attack                 41    Stealth
15    Fire resist                 42    Stone gaze (medusa)
16    Fire shield                 43    Stone skin (gargoyle)
17    First strike                44    Strength(behemoth)
18    Negate first strike         45    Strike and return
19    Fly                         46    Two attacks
1A    Fortune                     47    Stun
1B    Freezing attack             48    Summon ice demon
1C    Giant slayer                49    Taxpayer
1D    Multiple attack (hydra)     4A    Teleport
1E    Hypnotize (mermaid)         4B    Terror
21    Insubstantial               4C    Toughness (zombie)
22    Life ward                   4D    Undead
23    Lighning attack             4e    Unlimited retaliation
24    Long range                  4f    Unlimited shots
25    Long weapon (pikeman)       50    Life draining
26    Immune to magic             51    Weakness
27    Magic mirror                53    Greek fire
28    Magic resist                54    Arc breath attack
29    Mana leech                  55    Siege capable
Таблица процедур

Code: Select all

Fill1Ability   254F30 (для HIEW), .654F30
Fill2Abilities 255000 (для HIEW), .655000
Fill3Abilities 2551D0 (для HIEW), .6551D0
Fill4Abilities 2553B0 (для HIEW), .6553B0
Roman2211
Level 6 Hero
Level 6 Hero
Posts: 76
Joined: Thu May 03, 2012 21:42

Re: Модинг абилок юнитов Heroes 4 WoW

Post by Roman2211 »

Accolon wrote:Можно конечно изменять прямо в IDA, Edit->Patch program->Assemble.
Интересно, у меня версия 6.1, как сохранить exeшник?
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Roman2211
Ты про hiew? Когда произведешь изменения, то надо нажать кнопку "Update" - f9 или f10 - уточнить можно в самом hiew-е (там снизу такая менюшка, как в Norton Commander-е).

p.s. на всякий напомню, что для экперементов нужно бэкапить "подопытных". Кстати, никто не мешает переименовать экзешник из h4.exe в, например, h4r2211.exe. И запускать последний - он так же будет цеплять игру (если, конечно, ты в нем не накосячишь критическим образом).
Roman2211
Level 6 Hero
Level 6 Hero
Posts: 76
Joined: Thu May 03, 2012 21:42

Post by Roman2211 »

Accolon wrote:Roman2211
Ты про hiew?
IDA
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Roman2211
тогда я пас. Посмотри доку - раз уж взялся за дизассемблер, то будь готов быть немножко первопроходцем. ;)

p.s. Чисто по памяти - на форуме по Эквилибрису (ag.ru) была какая-то инфа по работе с дизассемблером. Но какая именно - я не помню.
General ZeT
Level 5 Hero
Level 5 Hero
Posts: 53
Joined: Wed Feb 27, 2008 13:03
Contact:

Post by General ZeT »

Подскажите плиз, вот я "вытащил" в книгу заклинаний "Огненный щит" и "камменительный взгляд" В попытке сотворить данные заклинания, пишет, что их нельзя использовать в бою. Подскажите пожалуйста, где это убрать?
Слабые это рядовые, сильные управляют ими. Итак будет постоянно, жизнь так устроена. Мир это война, жизнь - это важная часть, а то что после нее, известно лишь Ему.
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

General ZeT
Посмотри внимательно в таблице спеллов - все ли флажки выставлены. Если все ок - тогда надо ковырять в экзешнике (и моя не знать).
General ZeT
Level 5 Hero
Level 5 Hero
Posts: 53
Joined: Wed Feb 27, 2008 13:03
Contact:

Post by General ZeT »

Accolon спасибо, что откликнулся)
Флажки выставлены верно. На примере: в таблице "огненный щит" полностью соответствует "Огненной ауре"

А в экзешнике я тоже не знаю ничего, вот думал что знающие помогут, а нет показалось)
Слабые это рядовые, сильные управляют ими. Итак будет постоянно, жизнь так устроена. Мир это война, жизнь - это важная часть, а то что после нее, известно лишь Ему.
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

General ZeT
А в экзешнике я тоже не знаю ничего, вот думал что знающие помогут, а нет показалось)
Боюсь, что Макс не распологает этой инфой. Далай как-то жаловался, что многое из накопанного Экви-team утеряно. Во всяком случае, к адресу таблицы вероятности выпадения скилла при левел апе это точно относится. Что еще попадает в эту категорию, простым смертным ("ожидающим") неизвестно.
User avatar
Limos
Level 1 Hero
Level 1 Hero
Posts: 5
Joined: Wed Apr 03, 2013 15:41

Post by Limos »

Accolon, а вы можете подсказать, как добавить существу заклинание?
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

User avatar
Limos
Level 1 Hero
Level 1 Hero
Posts: 5
Joined: Wed Apr 03, 2013 15:41

Post by Limos »

Извините, я в этом деле абсолютный профан, мало что понимаю. Как добавлять воинам умения я вроде бы разобрался, но с заклинаниями не совсем понятно.
Вот я открыл hiew. Где коды существ - понятно, начиная с 00654820. Например, я хочу добавить заклинание 01 - acid. Но куда это нужно вставить?
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Limos
Собственно, мы все непрофессионалы. Насчет конкретной замены - сам я не делал, чтобы ткнуть конкретно, но моя понимать, как можно вычислить, куда чего прописывать.

Итак.
1. Берем юнита, "битовая маска спеллов" для которого известна. Например, огры-маги.
2. Смотрим, как именно она располагается в инфе-записи о криче.
3. Сверяем вычисленную схему расположения (битовой маски спеллов) для другого юнита-кастера (джины, маги, ивил сорки, фэйри-дракоши, вэлы).
4. Убедившись, что все совпадает, создаем битову маску спеллов для другого юнита (монков, напр.) и заносим байтики на свое место.
5. Проверяем рез-т в игре.

Обращу внимание, что массовые спеллы появляются динамически. Т.е., по умолчанию их нет в книге юнита-кастера. И еще. У юнитов-кастеров (и ангелов) есть такой параметр, как Spell Power. Он должен быть ненулевым, если эффективность спеллы (выбранной для юнита) растет от уровня (holy word, напр). Находится Spell Power в табличке крич.
User avatar
Limos
Level 1 Hero
Level 1 Hero
Posts: 5
Joined: Wed Apr 03, 2013 15:41

Post by Limos »

Благодарю. Ещё один вопрос, и уже наконец-то отстану от вас с концами, углубившись в создание мода ) Потому как без редактирования заклинаний у существ и начинать не стоит, многое завязано на магию. Станет больше воинов-магов и изменится их "вооружение". Скажем, у лепреконов вместо способности "удача" - книга заклинаний и два заклинания, "массовая удача" и "массовая неудача".

2. Смотрим, как именно она располагается в инфе-записи о криче.

Не подскажете, как второй пункт сделать? Сам-то я навряд ли это найду эту самую "маску" среди всех этих цифр. Если бы в начале темы не было указано 00654820, я бы в жизни не нашёл, что это начало умений существ.
User avatar
Accolon
Level 24 Hero
Level 24 Hero
Posts: 2564
Joined: Mon Jul 04, 2005 03:07

Post by Accolon »

Limos
Таки ты не понял.

Маска это просто последовательность битов. Только искать ее надо в виде байтов. Например, маска 01100010 сответствует 62 в шестнадцатиричной системе (а каждая единичка означает, что конкретиная спелла есть в книге юнита). В ехе-файле ищем 62h, это и сответсвует 01100010. Как получить маску в виде байтов описано - суммируем коды требуемых спеллов.

Например, мы хотим, чтоб у монков были спеллы: bless, heal, exorcism, holy word, displacement. Тогда согласно таблице бит-кодов Четверки, книга заклинаний монков будет выглядеть так:

Code: Select all

00 04 00 10 08 00 00 21 00 00 00 00 00 00 00 00
Чтобы найти место, куда ее вставлять, достаточно выполнить "почти-что-обратную-задачу": составить последовательность байтов для известной спелл-книги каждого юнита-кастера, и найти оные последовательности в exe. Потом обратить внимание на закономерность расположения книги спеллов и, сопоставив их с id юнита, вычислить точный адрес расположения спелл-книги оного.

Я не делал "почти-что-обратную-задачу". Попробуй сделать сам. Если не получится, то моя попробую.
Скажем, у лепреконов вместо способности "удача" - книга заклинаний и два заклинания, "массовая удача" и "массовая неудача".
Массовая неудача/ удача для лепрекона оверно. Если честно, то и сама удача для лепрекона несколько оверно (в сравнении с др. юнитами 1-го уровня). Разве что 3DO изначально планировало сделать удачу силой не в 10 пунктов, а в один/ два пункта (растущие с уровнем героя/ количеством юнитов-кастеров).
User avatar
Limos
Level 1 Hero
Level 1 Hero
Posts: 5
Joined: Wed Apr 03, 2013 15:41

Post by Limos »

Большое спасибо! Попробую всё это сделать и расскажу о результатах.
Accolon wrote:Массовая неудача/ удача для лепрекона оверно. Если честно, то и сама удача для лепрекона несколько оверно (в сравнении с др. юнитами 1-го уровня).
Не так уж и оверно. Когда один герой наколдует ту же самую массовую удачу, а от самих хилейших лепреконов, улетающих от одного чиха, нет почти никакого толку. Призвать на поле боя? Есть создания посильнее и полезнее. Через портал? Так там есть и элементали, и ульи, и архиполезные богомолы.
К тому же это не все изменения конкретно у лепреконов. Да и не все остальные изменения - и другие воины подтянутся.
Лепреконам даётся способность "маг". В книге заклинаний - массовая удача, массовая неудача, удача и неудача. Мана с таким учётом, чтобы хватило либо на одно заклинание массовое удачи, либо одно массовой неудачи. Даётся способность " магическое зеркало". На пару единиц повышается жизнь. Урон режется до 1-1, прирост понижается до эдак 8-10-12. Сам лепрекон имеет шанс повышения во второй ранг.
Совсем другое дело. Таких товарищей я бы с удовольствием нанял )

P.S - кстати, понимаю, что не по теме, но случай уж больно удобный. А можно в пункте прироста существ указать не целое, а дробное число? Чтобы, например, появлялся 0.5 чёрного дракона, то есть 1 чёрный дракон раз в две недели?
Post Reply