{$CLEO}
{$INCLUDE SF}
0000: NOP
repeat
wait 400
until 0AFA: is_samp_available
cmd "invisible" @invisible
0BDE: pause_thread 0
:invisible
0B12: 20@ = 20@ XOR 1
if 20@ == 1
then
msg "Invisible - {00ff00}On!" -1
0BE2: raknet setup_outcoming_packet_hook @out_packet // Подготавливаем хук
end
if 20@ == 0
then
msg "Invisible - {00ff00}Off!" -1
end
cmd_ret
:out_packet
if 20@ == 1
then
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID // Получаем ИД пакета
if 0@ == PACKET_PLAYER_SYNC // Сравниваем
then
0BE5: raknet 1@ = get_hook_param PARAM_BITSTREAM // Получаем битстрим
0AC8: alloc 2@ 69 // sizeof(onFootData) + packetId // выделяем память для хранения данных битстрима
0BE8: raknet bit_stream 1@ read_array 2@ size 69 // записываем в выделенную память(первый байт - ид пакета, всё остальное - синхронизация игрока(68 байт))
0C0D: struct 2@ offset 15 size 4 = -90.0 // в данные битстрима установим значение -90.0. Это будет координата Z в синхронизации.
0BEA: raknet bit_stream 1@ reset_write_pointer // сбрасываем указатель записи в битстриме
0B40: raknet bit_stream 1@ write 2@ type BS_TYPE_ARRAY size 69 // записываем новые данные
0AC9: free 2@ // освобождаем, т.к. выделенная память больше не нужна, все данные уже хранятся в перезаписанном битстриме
end
0BE0: raknet hook_ret 20@
end
cmd_ret