> For the complete documentation index, see [llms.txt](https://wmysterio.gitbook.io/gta-script-generator/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wmysterio.gitbook.io/gta-script-generator/docs/base/hex_end.md).

# Работа с HEX

Генератор поддерживает возможность использования блока **hex-end**. В основном акцентируется работа для хранения данных (буфера). Для использования достаточно вызвать метод `hex`. Если передать 1 параметр, то генератор создаст блок с указанным количеством байт. Если 2, то будет создан блок с указанным количеством строк и колонок (column\_count \* row\_count байт):

```csharp
public class TEST : Thread {

    public override void START( LabelJump label ) {

        Comment = "1 parameter:";
        hex( 10 );

        Comment = "2 parameters:";
        hex( 6, 3 );

        end_thread();
    }

}
```

Разница в основном заключается только в форматировании блока. Вот так получится в результате:

```
//------------- THREAD TEST ---------------
:TEST
03A4: name_thread 'TEST'

// 1 parameter:
hex
00 00 00 00 00 00 00 00 00 00 
end

// 2 parameters:
hex
00 00 00 00 00 00 
00 00 00 00 00 00 
00 00 00 00 00 00 
end
004E: end_thread
```

Если в блоке нужно выполнять машинный код, то нужно указать в параметре строку с содержимым:

```csharp
public class TEST : Thread {

    public override void START( LabelJump label ) {

        hex( @"
04 00 02 0800 04 01
04 00 02 $PLAYER_CHAR 01 @get_offset
" );

        end_thread();
    }

}
```

Всё это будет использовано генератором без изменений:

```
//------------- THREAD TEST ---------------
:TEST
03A4: name_thread 'TEST'
hex

04 00 02 0800 04 01
04 00 02 $PLAYER_CHAR 01 @get_offset

end
004E: end_thread
```

Это одно из немногих мест, где генератор не проводит проверку на валидность кода, поэтому использовать возможность нужно аккуратно и с умом.
