HEX..END
Last updated
Last updated
Sanny Builder поддерживает запись произвольных значений в выходной файл без какой-либо обработки и проверки.
Используйте эту возможность только в том случае, если вы знаете, что делаете. Любые ошибки могут повредить файл и его невозможно будет прочитать в игре или в скриптовом редакторе.
hex
<последовательность байтов>
end
последовательность байтов
- одна или несколько пар цифр в . Каждая пара представляет собой один байт, который будет записан в файл. Все пробелы игнорируются. Если число символов в последовательности нечетное, к последнему значению слева дописывается 0
:
Эта последовательность является бинарным представлением команды 0004: $2 = 1
. Игра сможет прочитать его и установит значение переменной $2
в 1
.
В конструкции HEX..END
также можно использовать , , , . Они компилируются без предшествующего байта, указывающего на тип данных.
Это эквивалентно команде 0004: $PLAYER_CHAR = @get_offset
Строковые литералы, заключенные в двойные скобки, компилируются как последовательность символов:
В строках допускается использование следующих управляющих символов:
Имя
Последовательность
Вывод в файл
пустой символ
\0
00
возврат на один шаг
\b
08
табуляция
\t
09
перевод каретки
\n
0A
возврат каретки
\r
0D
запись произвольного байта
\xnn
nn
запись произвольного символа
\символ
символ
В файл будет записана последовательность байтов 00 08 09 0A 0D DD
.
Для удобства записи больших чисел поставьте в начале знак &
. Число после знака &
может быть как положительным, так и отрицательным, в десятичном или шестнадцатиричном форматах.
В файл будет записана последовательность байтов E8 03 00 CB 5C FF
.
В случае, если один байт повторяется много раз, например, для создания пустого буфера, заполненного нулями, кол-во повторений можно задать, добавив (n)
после байта, где n
- это целое положительное число:
Это будет эквивалентно:
Повторения байтов можно использовать несколько раз в одном блоке, так же можно задать кол-во при помощи константы:
hex..end
позволяет использовать директиву {$INCLUDE}
для вставки содержимого бинарного файла в тело скрипта. Используется следующий синтаксис:
Путь к файлу определяется по правилам {$INCLUDE}
.