Вступление
Нам потребуется
olly debbuger. Берем здесь
Мейн от версии 0.97d. Берем здесь. В нем уже добавлены некоторые монстры и сделан пункт "приготовление".
Для поиска оффсета используем комбинацию ctrl+G. Для редактирования строки используем пробел. Все числа, которые нам придется вводить нужно переводить в НЕХ. Для этого можно использовать стандартный калькулятор винды. Обычные числа - dec, hex значения - hex.
Приготовление
Для начала нам нужно заставить мейн грузить наш новый сектор. Находим оффсет 0045DE6E и редактируем:
0045DE6E >-E9 52F46208 JMP main.08A8D2C5 ; Default case of switch 0045B7D5
0045DE73 90 NOP
Добавление
Находим оффсет 08A8D6C4 и добавляем параметры:
08A8D6C4 3D 99000000 CMP EAX,99 ; 99 в hex, дает число 153. 153 это номер монстра в monster.txt, monstersetbase.txt и npcname.txt
08A8D6C9 75 4C JNZ SHORT main.08A8D717 : это начнет загрузку нового монстра, которого вы сможете добавить с оффсета 08A8D717
08A8D6CB 6A 4F PUSH 4F ; Пункт загрузки моделей monsterXXX.bmd. 4F=79 Monster(79+1)=Monster80.bmd (Если поставить 4D будет загружен monster78 - 77+1=78 )
08A8D6CD E8 1E70A7F7 CALL main.005046F0
08A8D6D2 8B4C24 20 MOV ECX,DWORD PTR SS:[ESP+20]
08A8D6D6 8B5424 1C MOV EDX,DWORD PTR SS:[ESP+1C]
08A8D6DA 8B4424 24 MOV EAX,DWORD PTR SS:[ESP+24]
08A8D6DE 6A 00 PUSH 0
08A8D6E0 51 PUSH ECX
08A8D6E1 52 PUSH EDX
08A8D6E2 68 5D010000 PUSH 15D ; с каждым мобом увеличиваем число на единицу.
08A8D6E7 50 PUSH EAX
08A8D6E8 E8 A3D39CF7 CALL main.0045AA90
08A8D6ED 8BE8 MOV EBP,EAX
08A8D6EF 83C4 18 ADD ESP,18
08A8D6F2 BF 724B5500 MOV EDI,main.00554B72
08A8D6F7 C745 0C 6666663F MOV DWORD PTR SS:[EBP+C],3F666666
08A8D6FE C685 8C000000 00 MOV BYTE PTR SS:[EBP+8C],0
08A8D705 90 NOP
08A8D706 90 NOP
08A8D707 8D95 C1010000 LEA EDX,DWORD PTR SS:[EBP+1C1]
08A8D70D - E9 5E089DF7 JMP main.0045DF70
Далее заполняем все NOP до оффсета 08A8D717, в нем начинаем процесс заного вводя новый серийный номер монстра и файл monsterXXX.bmd.
Пример того, что должно получиться:
Сохраняем изменения
Выделяем измененный текст. Жмем правой кнопкой и выбираем Copy to executable/selection. Закрываем окна, на вопрос сохранить изменения отвечаем да.
Тестирование
Ставим новых монстров на сервер, запускаем мейн и смотрим. Если все удачно, то увидим новых мобов. Не забываем предварительно внести наших новых монстров в NpcName(ХХХ).txt и добавить нужные текстуры.