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

Full Version: Исследование героев
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Отрисовка текста на изображение.
Sav Wrote:
Berserker Wrote:Sav, а вот это уже интересно. Как сделать деф, чтобы при замене дефа страха он проигрывался полупрозрачным?
Специального дефа не нужно, полупрозрачность работает с любым. Это параметр у функции, которая отрисовывает анимации, (0x47BA90) любую анимацию можно отрисовывать полупрозрачно. Ну, разумеется, полупрозрачность не регулируемая, одинакова для каждого пикселя.

Вот, как устроена таблица боевых анимаций.
PHP Code:
// Структура боевой анимации.
NOALIGN struct _BattleAnim_
{
  
_cstr_ DefName// Имя def`а анимации
  
_cstr_ TouchEffect_Name// Имя тактильного эффекта анимации (для его воспроизведения на нестандартных элементах управления с помощью IFC20.dll)
  
_dword_ Properties// Свойства боевой анимации (по несколько битов)
  // ***
  // Начало описания свойств анимации
  // ***
    // (сдвиг - размер в битах - значение) 
    // 0 - 4 - Позиция отображения (0 - от земли на стеке или гексе, 1 - посередине гекса или стека, 2 - выше стека, 3 - перед стеком, 4 - с нижней и левой границы гекса, -1 - нет позиции)
    // 4 - 4 - Не используется
    // 8 - 1 - Прозрачность (0 - нет, 1 - есть)
    // 9 - 23 - Не используется
  // ***
  // Конец описания свойств анимации
  // ***
}; 
PHP Code:
_BattleAnim_o_BattleAnimation = ((_BattleAnim_*)0x641E18);

_int_ BattleAnims_Count 83
В Воге таблица, перенесена на адрес 0x7B6980. Номера анимаций соответствую номерам в таблице BM:V в ERM-help. С помощью UN:C можно легко на время изменить параметры любой анимации.
Вот ещё 1-байтец, убирающий видимость Мин и Зыбучих Песков на родной земле:

463C3D 00
Родной для кого? И это точно баг?
Родной земле замка, к которому принадлежит существо. Это явно не баг, т. к. там вполне конкретно проверяется наличие у стороны стека с соотв. родной землёй.
(21.09.2012 20:42)Berserker Wrote: [ -> ]И это точно баг?
(21.09.2012 22:59)Sav Wrote: [ -> ]Это явно не баг
Я и не говорил ни разу, что это баг. Однако данная содовская "фишка" делает Мины и Зыбучий Песок ещё более УГ-заклинаниями, чем они могли бы быть. И я не разу не слышал, чтобы кто-то был против её устранения. Наоборот, всё орали: "Уберите!".
Да, соглашусь с МОР-ом. Для модов будет полезно.
feanor Wrote:
Quote:10. Нейтральные герои, с магией
А в чем тут проблема? Нейтральных (минус первого игрока) героев как неподвижных стражей вытащить можно без особого изврата. Я где-то писал команду, чтоб они отображались на карте..

Quote:004100B5: 90909090 90909090
00410285: 90909090 90909090

Отрисовка героев -1ого игрока. Без флага.

То же в ERM.
!!UN:C4260021/4/2425393296;
!!UN:C4260025/4/2425393296;
!!UN:C4260485/4/2425393296;
!!UN:C4260489/4/2425393296;
Кто-нибудь знает, зачем в структуре кадра дефа поля frame_top/left?

Code:
NOALIGN struct _DefFrame_ : public _BinTreeItem_
{
    _dword_        frm_size; // + 28
    _dword_        buf_size;
    _dword_        compression_type;
    _dword_        def_width;
    _dword_        def_height;
    _dword_        frame_width;
    _dword_        frame_height;
    _dword_        frame_left;
    _dword_        frame_top;
    _dword_        unknown_40;
    _ptr_        buffer;

    // my
    _dword_ DrawInterfaceToPcx16(_Pcx_* dst_pcx16, _int_ dst_x, _int_ dst_y, _Palette16_* palette16)
    {
        return CALL_14(_dword_, __thiscall, 0x47BE90, this, 0, 0, def_width, def_height, dst_pcx16->buffer, dst_x, dst_y, dst_pcx16->width, dst_pcx16->height, dst_pcx16->scanline_size, palette16, 0, 1);
    }
};
У кадров иногда обрезается лишняя прозрачная площадь по краям. Вероятно, эти поля показывают, где в кадре начинается, собственно, изображение.
Раз там есть поле compression_type, значит кадр хранится сжатым, тогда Sav прав.
Что-то похожее видел в коде. Участвует в расчёте итогового смещения для отрисовки (ака dx, dy).
Правильно Сав сказал. Я специально вёл логи отрисовки монстров и ни разу не было случая, что бы рисовался полный кадр, который, как известно имеет размер 450*400 пикселей.
(14.04.2013 19:02)Ivor Wrote: [ -> ]MoP сделал патчик, запрещающий получение экспертной школы без экспертной мудрости
(14.04.2013 19:13)Berserker Wrote: [ -> ]Судя по всему, ассемблерной вставкой.
Ага
Code:
; При повышении уровня: раскачка магического навыка до экспертного требует экспертной Мудрости
; модификация воговской вставки:
74DA24 55;                     PUSH EBP
74DA25 8BEC;                   MOV EBP,ESP
74DA27 53;                     PUSH EBX
74DA28 8915C0497302;           MOV DWORD PTR DS:[27349C0],EDX
74DA2E 890DECAAA400;           MOV DWORD PTR DS:[A4AAEC],ECX
74DA34 8BD9;                   MOV EBX,ECX
74DA36 837D0CFF;               CMP DWORD PTR SS:[EBP+C],-1
74DA3A 7510;                   JNZ SHORT MoP.0074DA4C
74DA3C 833D2C358A00FE;         CMP DWORD PTR DS:[8A352C],-2
74DA43 7417;                   JE SHORT MoP.0074DA5C
74DA45 A12C358A00;             MOV EAX,DWORD PTR DS:[8A352C]
74DA4A EB56;                   JMP SHORT MoP.0074DAA2
74DA4C 833D30358A00FE;         CMP DWORD PTR DS:[8A3530],-2
74DA53 7407;                   JE SHORT MoP.0074DA5C
74DA55 A130358A00;             MOV EAX,DWORD PTR DS:[8A3530]
74DA5A EB46;                   JMP SHORT MoP.0074DAA2
74DA5C FFB3D7000000;           PUSH DWORD PTR DS:[EBX+D7] - сохранить уровни школ героя в стеке
74DA62 FF750C;                 PUSH DWORD PTR SS:[EBP+C]
74DA65 FF7508;                 PUSH DWORD PTR SS:[EBP+8]
74DA68 8B15C0497302;           MOV EDX,DWORD PTR DS:[27349C0]
74DA6E 8BCB;                   MOV ECX,EBX
74DA70 E8FBD4D8FF;             CALL MoP.004DAF70 - генерация навыка
74DA75 83F80E;                 CMP EAX,0E - проверка на школы
74DA78 7C22;                   JL SHORT MoP.0074DA9C
74DA7A 83F811;                 CMP EAX,11 - проверка на школы
74DA7D 7F1D;                   JG SHORT MoP.0074DA9C
74DA7F 80BC18C900000002;       CMP BYTE PTR DS:[EAX+EBX+C9],2 - если навык продвинут и готовится прокачаться до эксперта
74DA87 7513;                   JNZ SHORT MoP.0074DA9C
74DA89 80BBD000000003;         CMP BYTE PTR DS:[EBX+D0],3 - а Мудрость ещё не экспертна
74DA90 7D0A;                   JGE SHORT MoP.0074DA9C
74DA92 C68418C900000003;       MOV BYTE PTR DS:[EAX+EBX+C9],3 - тогда якобы повышаем навык до эксперта и запускаем генерацию снова
74DA9A EBC6;                   JMP SHORT MoP.0074DA62
74DA9C 8F83D7000000;           POP DWORD PTR DS:[EBX+D7] - а после возвращаем скиллы обратно
74DAA2 5B;                     POP EBX
74DAA3 5D;                     POP EBP
74DAA4 C20800;                 RETN 8
http://yadi.sk/d/qiKYucT043auR
подскажите где хранятся ценности объектов для генератора карт
Reference URL's