Смотрел видос у Дарк Пикселя, где он менял атрибуты файла, и файл в папке КЛЕО становился невидимым. Мне захотелось повторить. Чтобы протестить, я взял его код, он вроде как срабатывал, но файл не маскировался. Долго думал, но так ниче и не понял. Помогите, если шарите.
Код:
{$CLEO}
0000:
// Атрибут файла — метаданные, которые описывают файл.
:MainLoop
wait 0
0ADC: test_cheat "1"
jf @MainLoop
0AC6: 0@ = label @Pointer offset // Получает указатель на Label @Pointer, тем самым получает данные в конструкции hex...end .
0AB1: call_scm_func @SetFileAttributesA 2 LPCTSTR lpFileName 0@ DWORD dwFileAttributes 0x2 // Вызываем Label SetFileAttributesA .
0AD1: show_formatted_text_highpriority "File ~>~ %s ~>~ ~R~HIDEN!" time 5000 0@ // Оповещаем, что всё успешно прошло.
:MainLoop2
wait 0
0ADC: test_cheat "2"
jf @MainLoop2
0AB1: call_scm_func @SetFileAttributesA 2 LPCTSTR lpFileName 0@ DWORD dwFileAttributes 0x20 // Вызываем Label SetFileAttributesA .
0AD1: show_formatted_text_highpriority "File ~>~ %s ~>~ ~G~SHOWEN!" time 5000 0@ // Оповещаем, что всё успешно прошло.
jump @MainLoop
:Pointer
/* Прямая запись данных в выходной файл. Все значения внутри этой конструкции записываются без какой-либо обработки и проверки. */
hex
"CLEO" 5C "TEST.File" 0 // 0 - терминирующий нуль NULL | 5C - \ .
end
//:GetFileAttributesA // 0AB1: call_scm_func @GetFileAttributesA params 1 | LPCTSTR lpFileName 0@ | attributes 1@ |
//0AA2: 25@ = load_library "Kernel32.DLL"
//0AA4: 26@ = get_proc_address "GetFileAttributesA" library 25@
//0AA7: call_function 26@ num_params 1 pop 0 0@ 27@
//0AA3: free_library 25@
//0AB2: ret 1 | attributes 27@
:SetFileAttributesA // 0AB1: call_scm_func @SetFileAttributesA params 2 | LPCTSTR lpFileName 2@ DWORD dwFileAttributes 0x20 ||
0AA2: 25@ = load_library "Kernel32.DLL"
0AA4: 26@ = get_proc_address "SetFileAttributesA" library 25@
0AA7: call_function 26@ num_params 2 pop 0 | 1@ 0@ | 27@
0AA3: free_library 25@
0AB2: ret 0 |