Другое С/С++ Вопрос - Ответ

AdCKuY_DpO4uLa

Адский дрочер
Друг
316
672
Че за самп апи?
Своë

Как можно записать в переменную через regex, регулярка есть.
По моим тестам выяснилось, что std::regex не дружит с кириллицей, поэтому лично я юзал регулярки с буста, там всё прекрасно работает

P. S. Возможно у тебя не так, возьми на всякий случай весь код с регулярной в try catch
 
Последнее редактирование:

EclipsedFlow

Известный
Проверенный
1,045
475
Почему краш?

C++:
stTextLabel Text3D = SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[i];

if (std::strstr(Text3D.pText, "Осталось")) { // Осталось 01:09
    char min, sec;
    std::sscanf(Text3D.pText, "Осталось %s:%s", &min, &sec);
    SF->Log("Minute: %s | Second: %s", min, sec);
}
 

{$FANTOMCODER .cs}

Известный
212
53
При компиляции SFPlugin'a в лог выводится данная ошибка, и SFPlugin соответственно не компилируется, помогите решить
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(439,5): error MSB8020: Не удается найти средства сборки для Visual Studio 2012 - Windows XP (набор инструментов платформы = "v110_xp"). Чтобы выполнить сборку с использованием средств сборки v110_xp установите средства сборки Visual Studio 2012 - Windows XP. Кроме того, можно выполнить обновление до текущей версии средств Visual Studio, перейдя в меню "Проект" или щелкнув решение правой кнопкой мыши и выбрав "Обновить решение...".
 
У

Удалённый пользователь 448549

Гость
При компиляции SFPlugin'a в лог выводится данная ошибка, и SFPlugin соответственно не компилируется, помогите решить
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(439,5): error MSB8020: Не удается найти средства сборки для Visual Studio 2012 - Windows XP (набор инструментов платформы = "v110_xp"). Чтобы выполнить сборку с использованием средств сборки v110_xp установите средства сборки Visual Studio 2012 - Windows XP. Кроме того, можно выполнить обновление до текущей версии средств Visual Studio, перейдя в меню "Проект" или щелкнув решение правой кнопкой мыши и выбрав "Обновить решение...".
ПКМ по проекту -> Свойства -> Набор инструментов платформы
 

sc6ut

неизвестный
Модератор
382
1,089
std::regex не дружит с кириллицей
все норм там, у тебя мб с кодировкой проблемы. сколько юзал регулярки не встречался с такими проблемами.
Почему краш?

C++:
stTextLabel Text3D = SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[i];

if (std::strstr(Text3D.pText, "Осталось")) { // Осталось 01:09
    char min, sec;
    std::sscanf(Text3D.pText, "Осталось %s:%s", &min, &sec);
    SF->Log("Minute: %s | Second: %s", min, sec);
}
возможно что-то из структур SAMP, Info, pPool, pText3D или сам текст Text3D.pText являтся nullptr, из-за чего случается краш. стоит проверить что все структуры и текст не являются nullptr. А вообще лучше использовать регулярки тут, т.к. твое условие может сработать и при "123 Осталось 123", а не только при том что тебе надо. (строить регулярки удобно можно на regex101.com) так же std::sscanf является небезопасной. вот тебе короткий пример по работе с регулярками.
C++:
constexpr auto pText = "Осталось 01:09";
std::cmatch cm;
std::regex re( R"(Осталось\s+(\d+)\:(\d+))", std::regex::icase );
if ( std::regex_match( pText, cm, re ) ) {
    auto minutes = cm[1].str();
    auto seconds = cm[2].str();
    std::cout << "Minutes: " << minutes << " | Seconds: " << seconds << std::endl;
}

// Выведет: "Minutes: 01 | Seconds: 09"
 

leak.

Известный
37
4
вот все на форуме пишут что в плагинах потоки лучше не юзать, самп похоже юзает, вызывает beginthread, так вот это может повлиять на игру при загрузке чего-либо?
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,654
2,535
самп похоже юзает,
Используется только ракнетом
так вот это может повлиять на игру при загрузке чего-либо?
 
  • Нравится
Реакции: leak.

EclipsedFlow

Известный
Проверенный
1,045
475
Получаю дистанцию от себя до 3Д текста, результат
1636049399903.png


C++:
float GetDistance(D3DXVECTOR3 target)
{
    D3DXVECTOR3 player(PEDSELF->GetPosition()->fX, PEDSELF->GetPosition()->fY, PEDSELF->GetPosition()->fZ);
    return sqrt((player.x - target.x) * (player.x - target.x) + (player.y - target.y) * (player.y - target.y) + (player.z - target.z) * (player.z - target.z));
}

float distance = GetDistance(D3DXVECTOR3(Text3D.fPosition[0], Text3D.fPosition[1], Text3D.fPosition[2]));
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,983
Получаю дистанцию от себя до 3Д текста, результат Посмотреть вложение 120818

C++:
float GetDistance(D3DXVECTOR3 target)
{
    D3DXVECTOR3 player(PEDSELF->GetPosition()->fX, PEDSELF->GetPosition()->fY, PEDSELF->GetPosition()->fZ);
    return sqrt((player.x - target.x) * (player.x - target.x) + (player.y - target.y) * (player.y - target.y) + (player.z - target.z) * (player.z - target.z));
}

float distance = GetDistance(D3DXVECTOR3(Text3D.fPosition[0], Text3D.fPosition[1], Text3D.fPosition[2]));
Получаешь дробное число, выводишь целое.
 
  • Нравится
Реакции: EclipsedFlow

EclipsedFlow

Известный
Проверенный
1,045
475
Пишу бота для льна и хлопка, как только добегает до куста начинает кружиться вокруг его, как можно пофиксить?

Кто знающий в лс пожалуйста
 

S0Ft1k1337

Новичок
11
3
Подскажите, почему при переводе игровых координат в экранные, транспорт рендерится в нулевых координатах мира? Проблема именно в транспорте, т.к. при рендере персонажей все нормально

sa-mp-000.png