Гайд API SF | Урок 2 - Dialog hider

Тема в разделе "C/C++", создана пользователем CleanLegend, 8 авг 2018.

Статус темы:
Закрыта.
  1. CleanLegend

    Всефорумный модератор

    Регистрация:
    28 мар 2013
    Сообщения:
    259
    Симпатии:
    306
    Введение
    Объясню поподробней назначение функции mainloop.

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

    Dialog Hider
    Снова открываете файл 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 ); // отключаем курсор, который мешает двигаться.
       };
    }
    Компилируйте, заходите в игру, проверяйте.


    Автор: urShadow
     
    Breakaway нравится это.
Статус темы:
Закрыта.