API SF | Урок 2 - Dialog hider

Объясню поподробней назначение функции mainloop.

При загрузке плагина указатель на эту функцию сохраняется в памяти и затем вызывается в главном цикле игры, то есть эта функция исполняется, пока работает приложение gta_sa.exe. В итоге каждому плагину предоставляется цикличная функция, в которой желательно выполнять весь код.

Снова открываете файл main.cpp.

В тело функции mainloop после закрытия условного блока if( !init ) вставляем этот код:

if( SF->getGame()->isKeyPressed( 'H' ) ) // если нажата клавиша H (англ)
{			
    int &iDialogStatus = SF->getSAMP()->getDialog()->iIsActive; // сохраняем ссылку на переменную, в которой хранится текущий статус диалога.
 
    iDialogStatus ^= true; // меняем значение на обратное, т.е. если был true, то станет false, а если был false — то true.
    if( !iDialogStatus ) // если статус был сменен на false (то есть закрылся диалог)
        SF->getSAMP()->getMisc()->ToggleCursor( false ); // отключаем курсор, который мешает двигаться.
    };
}

Компилируйте, заходите в игру, проверяйте.

by urShadow