Другое SAMPFUNCS | API C++

Cake_

Известный
Проверенный
263
313
Код:
std::string GetTime(void)
{
    SYSTEMTIME time;
    char buf[1024];
    GetLocalTime(&time);
    sprintf(buf, "%02d:%02d:%02d %02d.%02d.%04d", time.wHour, time.wMinute, time.wSecond, time.wDay, time.wMonth, time.wYear);
    return buf;
}

ImGui::Text(GetTime().c_str());
Спасибо, сеньор

Как выровнять текст по середине на титлере(заголовка) imgui?
 

Cake_

Известный
Проверенный
263
313
Вопросы:
1. Как задать расположение окна при старте.
2. Как сделать регистрацию команды для включения окна.
3. Как выключить кнопку закрытия окна.
4. Как сделать такое окно:
 

Вложения

  • 1546118657009.png
    1546118657009.png
    10.7 KB · Просмотры: 309

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Подскажите как получить LVL актера, пробую так, но получаю "0". После открытия ScoreBar (таб) все хорошо, как обновить "таб" ?
C++:
SF->getSAMP()->getPlayers()->iLocalPlayerScore
 

Rjx13

Известный
Проверенный
224
160
Как эмулировать нажатие кнопки H? SF->getGame()->emulateGTAKey - не работает. keybd_event фризит игру даже с CreateThread & SetTimer
Нужно добиться того, чтобы машина издавала сигнал 300 миллисекунд
 

CleanLegend

Известный
Всефорумный модератор
476
930
Как эмулировать нажатие кнопки H? SF->getGame()->emulateGTAKey - не работает. keybd_event фризит игру даже с CreateThread & SetTimer
Нужно добиться того, чтобы машина издавала сигнал 300 миллисекунд
Keys - SA-MP Wiki(https://sampwiki.blast.hk/wiki/Keys)
Documenting GTA-SA memory addresses(https://gtaforums.com/topic/194199-documenting-gta-sa-memory-addresses/?page=36&tab=comments#comment-1059674630)
Можно еще через синхру машины отправлять клавишу
 
  • Нравится
Реакции: Rjx13

Harryss

Участник
233
26
Господа, разъясните. В проекте SF используется Imgui. Человек сможет стабильно запустить скрипт, имея лишь один скомпилированный файл, без дополнительных папок и библиотек?
 
Последнее редактирование:

CleanLegend

Известный
Всефорумный модератор
476
930
Господа, разъясните. В проекте SF используется Imgui. Человек сможет стабильно запустить скрипт, имея лишь один скомпилированный файл, без дополнительных папок и библиотек?
Да
Вопросы:
1. Как задать расположение окна при старте.
2. Как сделать регистрацию команды для включения окна.
3. Как выключить кнопку закрытия окна.
4. Как сделать такое окно:
Расположение, флаги можно задать при создании окна(begin). Флаги смотри в imgui.h, они сразу идут с описанием.
Что бы зарегистрировать команду посмотри этот гайд - https://blast.hk/threads/23410/
Объявляешь глобальную переменную, которая будет отвечать за открытие меню и изменяешь в своей команде
 
  • Нравится
Реакции: Cake_

Cake_

Известный
Проверенный
263
313
Да

Расположение, флаги можно задать при создании окна(begin). Флаги смотри в imgui.h, они сразу идут с описанием.
Что бы зарегистрировать команду посмотри этот гайд - https://blast.hk/threads/23410/
Объявляешь глобальную переменную, которая будет отвечать за открытие меню и изменяешь в своей команде
Не могу найти этот флаг для выставления позиции
 
Последнее редактирование:

Harryss

Участник
233
26
Не могу найти этот флаг для выставления позиции
C++:
ImGui::SetWindowPos()
// Пример. CALLBACK Present
if (imgui_active)
{
    ImGui::Begin("ImGui", &activew, ImVec2(305, 160), 0.8f, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoResize);
    {
       ImGui::SetWindowPos(ImVec2(0, 768 - ImGui::GetWindowHeight() - 40), true);
       ImGui::Text("Hello.");
    }
    ImGui::End();
}
 

Harryss

Участник
233
26
Как вывести значение локальной переменой stLocalPlayer *lp = SF->getSAMP()->getPlayers()->pLocalPlayer; в ImGui::Text();

Мне нужно вывести мой ник/id/ping/lvl в ImGui::Text();
C++:
int my_ping = SF->getSAMP()->getPlayers()->iLocalPlayerPing;
int my_score = SF->getSAMP()->getPlayers()->iLocalPlayerScore;
int my_id = SF->getSAMP()->getPlayers()->sLocalPlayerID;
char *my_nick = SF->getSAMP()->getPlayers()->szLocalPlayerName;
ImGui::Text("Ping: %i, score: %i, nickname: %s, id: %i", my_ping, my_score, my_nick, my_id);

Хелпуйте. Не могу отыскать банальную printStyledString из LUA. На простых словах - вывод текста на экран как "Авторитет +" по окончанию миссии в GTA.
 
  • Нравится
Реакции: [w0te] и Cake_

Rjx13

Известный
Проверенный
224
160
Вопросы:
1. Как задать расположение окна при старте.
2. Как сделать регистрацию команды для включения окна.
3. Как выключить кнопку закрытия окна.
4. Как сделать такое окно:
1) Окно будет рисоваться в центре экрана
Код:
int ScreenResolution[2];
SF->getGame()->getScreenResolution(&ScreenResolution[0], &ScreenResolution[1]);
ImGui::SetNextWindowPos(ImVec2(ScreenResolution[0] * 0.5f, ScreenResolution[1] * 0.5f), ImGuiCond_Always, ImVec2(0.5f, 0.5f));

Тот код что выше, вставить в Present после этого:
Код:
ImGui_ImplDX9_NewFrame();
ImGui_ImplWin32_NewFrame();
ImGui::NewFrame();

2)
Код:
void CALLBACK cmd_menu(std::string param) {
    activew ^= true; // Глобальная переменная, которая в ImGui::Begin
}

SF->getSAMP()->registerChatCommand("showmenu", cmd_menu);