Sanny Builder
Search…
HEX..END
Sanny Builder поддерживает запись произвольных значений в выходной файл без какой-либо обработки и проверки.
Используйте эту возможность только в том случае, если вы знаете, что делаете. Любые ошибки могут повредить файл и его невозможно будет прочитать в игре или в скриптовом редакторе.

Синтаксис

hex <последовательность байтов> end
последовательность байтов - одна или несколько пар цифр в 16-ричном формате. Каждая пара представляет собой один байт, который будет записан в файл. Все пробелы игнорируются. Если число символов в последовательности нечетное, к последнему значению слева дописывается 0:
1
hex
2
04 00 02 0800 04 1
3
end
Copied!
Эта последовательность является бинарным представлением команды 0004: $2 = 1. Игра сможет прочитать его и установит значение переменной $2 в 1.
В конструкции HEX..END также можно использовать строковые литералы, метки, глобальные переменные, имена моделей. Они компилируются без предшествующего байта, указывающего на тип данных.
1
:get_offset
2
hex
3
04 00 02 $PLAYER_CHAR 01 @get_offset
4
end
Copied!
Это эквивалентно команде 0004: $PLAYER_CHAR = @get_offset
Строковые литералы, заключенные в двойные скобки, компилируются как последовательность символов:
1
hex
2
"This is a string"
3
end
Copied!

Экранированные последовательности

В строках допускается использование следующих управляющих символов:
Имя
Последовательность
Вывод в файл
пустой символ
\0
00
возврат на один шаг
\b
08
табуляция
\t
09
перевод каретки
\n
0A
возврат каретки
\r
0D
запись произвольного байта
\xnn
nn
запись произвольного символа
\символ
символ
1
hex
2
"\0\b\t\n\r\xDD"
3
end
Copied!
В файл будет записана последовательность байтов 00 08 09 0A 0D DD.
В настоящее время несколько подряд идущих пробелов в строке конвертируются в один пробел. Например, строка "This is a string" будет сконвертирована в "This is a string". Используйте символ \ чтобы добавить дополнительные пробелы в строку: "This \ \ \ is \ a \ \ \ \ string".

Использование типа aDMA

Допускается использование типа данных aDMA, чтобы записать произвольное число в выходной файл. Число после знака & может быть как положительным, так и отрицательным, в десятичном формате или шестнадцатиричном.
1
hex
2
&1000 &-0xA33500
3
end
Copied!
В файл будет записана последовательность байтов E8 03 00 CB 5C FF.
Last modified 1yr ago