Функция для работы с типом снаряда при стрельбе
Функция позволяет задавать и получать тип изображения снаряда, отображаемого при стрельбе, для любого существа от лучника (№ 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 — баллиста.

Установка функции заключается в копировании кода и замене знака решетки (#) на некое число:
Код
!?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;
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;
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;