
04.11.2021, 18:59
|
|
Постоянный
Регистрация: 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) так же
является небезопасной. вот тебе короткий пример по работе с регулярками.
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
|
|
|

04.11.2021, 06:16
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
я просто переименовал плагин и всё заработало -_-
|
|
|

04.11.2021, 13:53
|
|
Познавший АНТИЧАТ
Регистрация: 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
,
"([])"
)
)
{
}
}

|
|
|

04.11.2021, 14:09
|
|
Участник форума
Регистрация: 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
,
"([])"
)
)
{
}
}
|
|
|

04.11.2021, 14:12
|
|
Познавший АНТИЧАТ
Регистрация: 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
,
"([])"
)
)
{
}
}

|
|
|

04.11.2021, 14:15
|
|
Участник форума
Регистрация: 08.03.2019
Сообщений: 121
С нами:
3781678
Репутация:
113
|
|
Код:
Код:
if (std::regex_search(Text3D.pText, cm, std::regex("([])")))
|
|
|

04.11.2021, 14:59
|
|
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами:
4553429
Репутация:
153
|
|
Есть функция для проверки нахождения персонажа что он на координатах находиться?
Аналог луа - locateCharAnyMeans2d
|
|
|

04.11.2021, 15:04
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от Scar_
Есть функция для проверки нахождения персонажа что он на координатах находиться?
всм ну просто получи корды его и проверь то ли это место
|
|
|

04.11.2021, 15:06
|
|
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами:
4553429
Репутация:
153
|
|
Сообщение от F0RQU1N
всм ну просто получи корды его и проверь то ли это место
Н луа так не работало, сейчас попробую тогда, либо если есть функция для проверки персонажа в определённом радиусе
|
|
|

04.11.2021, 16:07
|
|
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами:
4553429
Репутация:
153
|
|
Как можно записать в переменную через regex, регулярка есть.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|