HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 04.11.2021, 18:59
sc6ut
Постоянный
Регистрация: 03.05.2020
Сообщений: 385
С нами: 3174020

Репутация: 213
По умолчанию

Цитата:
Сообщение от AdCKuY_DpO4uLa  

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

Цитата:
Сообщение от Scar_  

Почему краш?

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++:





[CODE]
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

 
Ответить с цитированием

  #2  
Старый 04.11.2021, 06:16
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

я просто переименовал плагин и всё заработало -_-
 
Ответить с цитированием

  #3  
Старый 04.11.2021, 13:53
EclipsedFlow
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами: 4553429

Репутация: 153


По умолчанию

C++:





Код:
// Regex не работает std::regex_search()
for
(
int
i
=
0
;
i

getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pText3D
->
iIsListed
[
i
]
!=
1
)
continue
;
stTextLabel Text3D
=
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pText3D
->
textLabel
[
i
]
;
if
(
std
::
regex_search
(
Text3D
.
pText
,
NULL
,
"([])"
)
)
{
}
}


 
Ответить с цитированием

  #4  
Старый 04.11.2021, 14:09
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

Репутация: 113
По умолчанию

Цитата:
Сообщение от Scar_  

C++:





Код:
// Regex не работает std::regex_search()
for
(
int
i
=
0
;
i

getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pText3D
->
iIsListed
[
i
]
!=
1
)
continue
;
stTextLabel Text3D
=
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pText3D
->
textLabel
[
i
]
;
if
(
std
::
regex_search
(
Text3D
.
pText
,
NULL
,
"([])"
)
)
{
}
}

C++:





Код:
for
(
int
i
=
0
;
i

getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pText3D
->
iIsListed
[
i
]
!=
1
)
continue
;
stTextLabel Text3D
=
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pText3D
->
textLabel
[
i
]
;
std
::
cmatch cm
;
if
(
std
::
regex_search
(
Text3D
.
pText
,
cm
,
"([])"
)
)
{
}
}
 
Ответить с цитированием

  #5  
Старый 04.11.2021, 14:12
EclipsedFlow
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами: 4553429

Репутация: 153


По умолчанию

Цитата:
Сообщение от legendabrn  

C++:





Код:
for
(
int
i
=
0
;
i

getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pText3D
->
iIsListed
[
i
]
!=
1
)
continue
;
stTextLabel Text3D
=
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pText3D
->
textLabel
[
i
]
;
std
::
cmatch cm
;
if
(
std
::
regex_search
(
Text3D
.
pText
,
cm
,
"([])"
)
)
{
}
}

 
Ответить с цитированием

  #6  
Старый 04.11.2021, 14:15
legendabrn
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами: 3781678

Репутация: 113
По умолчанию

Цитата:
Сообщение от Scar_  


Код:





Код:
if (std::regex_search(Text3D.pText, cm, std::regex("([])")))
 
Ответить с цитированием

  #7  
Старый 04.11.2021, 14:59
EclipsedFlow
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами: 4553429

Репутация: 153


По умолчанию

Есть функция для проверки нахождения персонажа что он на координатах находиться?

Аналог луа - locateCharAnyMeans2d
 
Ответить с цитированием

  #8  
Старый 04.11.2021, 15:04
F0RQU1N and
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами: 4012500

Репутация: 138


По умолчанию

Цитата:
Сообщение от Scar_  

Есть функция для проверки нахождения персонажа что он на координатах находиться?
всм ну просто получи корды его и проверь то ли это место
 
Ответить с цитированием

  #9  
Старый 04.11.2021, 15:06
EclipsedFlow
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами: 4553429

Репутация: 153


По умолчанию

Цитата:
Сообщение от F0RQU1N  

всм ну просто получи корды его и проверь то ли это место
Н луа так не работало, сейчас попробую тогда, либо если есть функция для проверки персонажа в определённом радиусе
 
Ответить с цитированием

  #10  
Старый 04.11.2021, 16:07
EclipsedFlow
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами: 4553429

Репутация: 153


По умолчанию

Как можно записать в переменную через regex, регулярка есть.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.