IPB

Здравствуйте, гость ( Вход | Регистрация )

История благодарностей участнику Чёртос-2 (Chortos-2). Спасибо сказали: 6
Дата поста: В теме: За сообщение: Спасибо сказали:
22 Jan 2008, 00:30 Обсуждение инженерного анализа
Цитата(Entuser @ 21 Jan 2008, 11:46)
7AD78 - тут в екзишнеке храниться число 5 - после загрузки изменяется на 34(HEX) - влияет на число загружаемых строк в ZCRTRAITS.
mem 007012A4 / file 29C2A4 - изменяет это значение и много других
Отпиши это, пожалуйста, в основную тему инженерного анализа.
Marker
27 Jun 2007, 16:12 Флаги монстров
Исследуем…
Тридцать — слишком много. Во‑первых, ты посчитал 0x00C00000, который флагом не является (это всего лишь сумма двух других флагов, 0x00400000 и 0x00800000), во‑вторых, ты посчитал два флага, которые отмечены прочерком в описании !!MA:X (0x00002000 и 0x00100000). Вот все флаги; описания основаны на соответствующих описаниях в английском ERM Help и исследованиях форумчан:
  1. 0x00000001 = 1
    Отряд занимает две клетки.
  2. 0x00000002 = 2
    Существо умеет летать.
  3. 0x00000004 = 4
    Существо умеет стрелять.
  4. 0x00000008 = 8
    Атака существа в ближнем бою «задевает» существо (даже если оно дружественное), стоящее за атакуемым существом.
  5. 0x00000010 = 16
    Существо живое, в т. ч. чувствительно к таким заклинаниям, как «волна смерти».
  6. 0x00000020 = 32
    Существо может атаковать городские укрепления.
  7. 0x00000040 = 64
    Отряд не может двигаться.
    Отряд не требуется убивать для достижения победы.
    Возле отряда отсутствует обозначение количества существ.
    Если в момент появления существа на поле боя этот флаг установлен, его нельзя будет перемещать командой !!BM:P.
  8. 0x00000080 = 128
    Существо получает дополнительный урон от существ, на которых наложено заклинание «палач».
  9. 0x00000100 = 256
    Существо получает дополнительный урон от существ, на которых наложено заклинание «палач» продвинутого или экспертного уровня.
  10. 0x00000200 = 512
    Существо получает дополнительный урон от существ, на которых наложено заклинание «палач» экспертного уровня.
  11. 0x00000400 = 1024
    Существо нечувствительно к заклинаниям, действующих на разум (таким, как «бешенство» и «печаль»).
  12. 0x00000800 = 2048
    При стрельбе существа урон не уменьшается из‑за препятствий.
    Выстрелы существа визуально представляются в виде непрерывного прямого луча, как у архимагов, созерцателей и злых глаз.
  13. 0x00001000 = 4096
    Если существо умеет стрелять, то наносимый им урон не уменьшается при переходе с дальнего боя на ближний.
  14. 0x00002000 = 8192
    Этот флаг никогда не проверяется. Возможно, он раньше использовался, а теперь потерял своё значение.
  15. 0x00004000 = 16384
    Существо нечувствительно к любым заклинаниям магии огня.
  16. 0x00008000 = 32768
    Существо наносит два удара (второй удар наносится после ответа атакуемого существа).
  17. 0x00010000 = 65536
    Атакуемое существо не отвечает.
  18. 0x00020000 = 131072
    Существо всегда имеет нейтральную мораль.
  19. 0x00040000 = 262144
    Существо является нежитью.
  20. 0x00080000 = 524288
    Существо атакует сразу всех противников, стоящих рядом.
    Не действует флаг № 4.
  21. 0x00100000 = 1048576
    Присутствует у магогов, личей и могучих личей. (А также у арктических снайперов.)
    Для игрока этот бит ни на что не влияет. Похоже, его использует ИИ, чтобы понять, что существо стреляет со взрывом.
  22. 0x00200000 = 2097152
    Отряд не получает право на ход во время боя.
    По окончании битвы отряд исчезнет.
    Отряд не требуется убивать для достижения победы.
    Возле отряда отсутствует обозначение количества существ.
    Иммунитет к некоторым заклинаниям.
    Цитата(Demiurg @ 29 Jun 2007, 18:21)
    Этот флаг автоматически устанавливается, когда существо умирает. Если вы сами установили этот флаг, то убрав его вы воскресите существо. При получении урона в "мертвом" состоянии количество существ и здоровья у последнего существа в стеке уменьшается. Поэтому после воскрешения может быть 0 существ. Но это вам не мешает установить с помощью !!BM:N столько существ, сколько нужно. Если же существо действительно умерло, то убирание флага существо не воскресит. Но может привести к различным сбоям в работе AI.
    Стек с этим флагом:
    -не получает ход во время боя
    -пропадает после боя
    -не имеет циферки с количеством существ
    -имуннен к большей части заклинаний (есть как минимум одно исключение - армагеддон)

    Существуют значительные отличия от флага 64.
    1) Существо с флагом 64 получает ход. Например может стрелять.
    2) Существо с флагом 64 нельзя телепортировать - вылет игры. Существо же с флагом 2097152 телепортируется нормально.

    Замечание:
    Любой код, основанный на этом флаге может глючить при работе с фениксами. (фениксы - они вообще глючные, а еще и воскрешаются)
  23. 0x00400000 = 4194304
    Устанавливается для призванных существ.
    По окончании битвы отряд исчезнет.
    В теории такого монстра невозможно воскрешать и при его убийстве освобождается номер BM, который он занимал. (Но на практике это не проверено.)
  24. 0x00800000 = 8388608
    Устанавливается для клона существа.
    При получении любого урона отряд исчезнет.
    Отряд окрашен в синий цвет.
  25. 0x01000000 = 16777216
    В этом раунде битвы отряду выпала мораль.
  26. 0x02000000 = 33554432
    Отряд находится в состоянии ожидания.
  27. 0x04000000 = 67108864
    В этом раунде битвы отряд уже совершил некое действие.
  28. 0x08000000 = 134217728
    Отряд стоит в защитном положении.
  29. 0x10000000 = 268435456
    Устанавливается отряду, приносимому в жертву заклинанием «жертва».
    Отряд невозможно воскресить.
  30. 0x20000000 = 536870912
    Существа с этим флагом не меняют свой цвет при клонировании и окаменении.
  31. 0x40000000 = 1073741824
    Отряд окрашен в серый цвет.
  32. 0x80000000 = 2147483648
    Существо чувствительно к драконьим бонусам, в т. ч. к специальности Мутаре и пузырьку с кровью дракона.
Нужны более точные описания 5‑ого, 11‑ого, 19‑ого, 25‑ого, 27‑ого и 30-го флагов, а также хоть какое‑нибудь описание 14‑ого флага. Если кто‑то знает о них больше и/или подробнее, чем здесь написано, пожалуйста, поделитесь. biggrin.gif

P. S. Наверно, стоит выделить это в отдельную тему. Вот только в каком форуме? smile.gif
P. P. S. Demiurg, флаг серого цвета — следующий за тем, который указал ты. smile.gif
totkotoriy
13 Jun 2007, 17:25 Функции для расширенной настройки стрельбы
Для чистого WoG
Обе функции рассчитаны на чистый h3wog.exe. При открытии новой карты сделанные ими изменения не сбрасываются — только при перезапуске h3wog.exe.



Функция для работы с типом снаряда при стрельбе

Функция позволяет задавать и получать тип изображения снаряда, отображаемого при стрельбе, для любого существа от лучника (№ 2) до существа № 197 включительно.

Изначально (при старте чистого h3wog.exe) для всех существ, которые обычно не стреляют, тип изображения снаряда задан в 16. Для всех существ, не входящих в модифицируемый диапазон, он тоже всегда равен 16 (на чистом h3wog.exe, разумеется).

Синтаксис для задания типа снаряда:
Код
!!FU#:P0/<номер существа>/<тип снаряда>;
(Если существо не входит в модифицируемый диапазон, функция просто не сделает ничего.)

Синтаксис для получения текущего типа снаряда:
Код
!!FU#:P1/<номер существа>/?<тип снаряда>;

Типы снаряда соответствуют стандартным изображениям снарядов для следующих существ:
  • 0 — лучник (исключение: для существа № 196 — драколич);
  • 1 — монах;
  • 2 — эльф;
  • 3 — мастер‐гремлин;
  • 4 — маг;
  • 5 — титан;
  • 6 — гог;
  • 7 — лич;
  • 8 — медуза;
  • 9 — орк;
  • 10 — циклоп;
  • 11 — ящер;
  • 12 — ледяной элементаль;
  • 13 — полурослик;
  • 14 — катапульта;
  • 15 — баллиста.
Тип снаряда 16 использует DEF с пустым именем (даже без расширения .def), если такой есть в h3sprite.lod — если его нет, игра вылетает. smile.gif Я выкладывал wog‐файл, который добавляет в h3sprite.lod этот самый DEF с пустым именем, являющийся копией изображения снаряда полурослика (т. е. камешка): см. сообщение со ссылкой на него и сообщение с описанием.

Установка функции заключается в копировании кода и замене знака решетки (#) на некое число:
Код
!?FU#;

Make sure the creature number is valid
!!VRx3&x1=1/x2<2:S16;
!!VRx3&x1=1/x2>197:S16;
!!FU|x2<2/x2>197:E;

Get the correct address
!!VRx2:+7961526;

Do what they ask us to do
!!UN&x1=0:Cx2/1/x3;
!!UN&x1=1:Cx2/1/?x3;



Функция для работы с цветом луча при стрельбе

Если у существа выставлен флаг 2048, при стрельбе в бою вместо обычного изображения снаряда, которым можно оперировать предыдущей функцией, будет нарисован непрерывный луч (стандартное поведение архимагов, созерцателей и злых глаз). Этот луч бывает трех разных цветов: зеленого, белого и черного. Например, у архимага он обычно зеленый, а у созерцателей и злых глаз — белый.

Функция позволяет задавать и получать цвет луча, отображаемого при стрельбе, для любого существа от архимага (№ 35) до магического элементаля (№ 121) включительно.

Изначально (при старте чистого h3wog.exe) для всех существ, которые обычно не используют луч, цвет луча задан в черный; исключение составляют психический и магический элементали, для которых изначально задан луч белого цвета. Для всех существ, не входящих в модифицируемый диапазон, луч тоже всегда черный (на чистом h3wog.exe, разумеется).

Синтаксис для задания цвета луча:
Код
!!FU#:P0/<номер существа>/<цвет луча>;
(Если существо не входит в модифицируемый диапазон, функция просто не сделает ничего.)

Синтаксис для получения текущего цвета луча:
Код
!!FU#:P1/<номер существа>/?<цвет луча>;

Цвет луча кодируется числом:
  • 0 — зеленый;
  • 1 — белый;
  • 2 — черный.
Установка функции заключается в копировании кода и замене знака решетки (#) на некое число:
Код
!?FU#;

Make sure the creature number is valid
!!VRx3&x1=1/x2<35:S2;
!!VRx3&x1=1/x2>121:S2;
!!FU|x2<35/x2>121:E;

Get the correct address
!!VRx2:+4453793;

Do what they ask us to do
!!UN&x1=0:Cx2/1/x3;
!!UN&x1=1:Cx2/1/?x3;
Bes, Etoprostoya, totkotoriy
16 Jan 2006, 00:08 У вас нет прав на просмотр этой темы
У вас нет прав на просмотр этого сообщения
SerAlexandr

Текстовая версия Сейчас: 19 January 2020 - 01:26
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика