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 Topic closed due to thanks
Оффтопим тут
Цитата(Darth_Beleg @ 15 Jan 2006, 19:13)
Ни один программист не пишет на Бэйсике после достижения половой зрелости. Это ж суррогат.

На Бейсике просто надо уметь писать. beee.gif Вот посмотри на Bourn'а — он пишет отличные программы, и все на Visual Basic 6!

Цитата(Chrono Syndrome @ 15 Jan 2006, 20:06)
Blitz Basic - СПЕЦИАЛЬНЫЙ язык ЗАТОЧЕННЫЙ под быстрое создание игр. Аналоги есть, но они тоже на основе Бейсика. На C++ игры не пишуться, это бред (если только тетрисы какие-нибудь). Все современные игры пишуться на скриптах. Вот Blitz Basic - это и есть СКРИПТОВЫЙ язык. И на нем реалбно за день написать с нуля небольшую игрушку... Насчет же Дельфи... не люблю. Если C я просто НЕНАВИЖУ, то Дельфи не люблю, сама не знаю почему. Да здравтвует Бейсик (и Форт) !

Ненавидишь C = не пользуешься ни одной операционной системой (хотя насчет MacOS неуверен), т.к. они написаны именно на нем. dry.gif

Нормальные игры пишутся именно на нормальных языках программирования, потому что их пишут нормальные (точнее, отличные) программисты, которые хотят сделать нормальный (точнее, отличный biggrin.gif) продукт, который понравится игрокам. Единственное — некоторые игры пишут с использованием специальных средств для создания качественных игр, созданных производителями популярных высококлассных игр, сделанных ранее на полноценных языках программирования (например, QD Engine).
SerAlexandr

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