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

Статус
В этой теме нельзя размещать новые ответы.

CleanLegend

Известный
Автор темы
Всефорумный модератор
478
935
Введение
Объясню поподробней назначение функции mainloop.

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

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

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

C++:
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
 
Статус
В этой теме нельзя размещать новые ответы.