
18.03.2019, 12:53
|
|
Участник форума
Регистрация: 04.04.2017
Сообщений: 263
С нами:
4793630
Репутация:
133
|
|
Сообщение от ๖ۣۣۜШурик
Не совсем понял, можно подробней?
Условие нужно
|
|
|

18.03.2019, 12:55
|
|
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами:
8654409
Репутация:
0
|
|
Сообщение от cakebou
Условие нужно
Сообщение от Stiopko
Если это в маинлуп то ты создаёшь очень много потоков и из-за етого вылет нужны проверки
Я кажется вас понял.
У меня поток создаётся 1 раз (не бесконечно, только при инициализации).
|
|
|

18.03.2019, 13:00
|
|
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами:
4319022
Репутация:
113
|
|
Сообщение от ๖ۣۣۜШурик
Не совсем понял, можно подробней?
Екземпляр класса должен быть глобальным или static
|
|
|

18.03.2019, 14:58
|
|
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами:
8654409
Репутация:
0
|
|
Сообщение от Stiopko
Екземпляр класса должен быть глобальным или static
Попытался сделать глобальным и статическим - результата нет, всё также вылетает.
Хочу обратить внимание на то, что если я укажу th.join() после: std::thread th = test.start(""), то игра не вылетит, но к сожалению от потока не будет смысла (т.к. фризит процесс при Sleep).
UPD: Проверил на консольном приложении - успешно (но не в SF).

|
|
|

18.03.2019, 21:39
|
|
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами:
8654409
Репутация:
0
|
|
Возможно ли в registerChatCommandпередать в качестве второго параметра лямбду? Но внутри неё мне нужно получить 2 переменные, которые в ней не находятся. Если да, то пожалуйста покажите пример.
|
|
|

18.03.2019, 22:33
|
|
Участник форума
Регистрация: 07.03.2015
Сообщений: 233
С нами:
5887139
Репутация:
18
|
|
Сообщение от ๖ۣۣۜШурик
Возможно ли в registerChatCommandпередать в качестве второго параметра лямбду? Но внутри неё мне нужно получить 2 переменные, которые в ней не находятся. Если да, то пожалуйста покажите пример.
registerChatCommand напрямую с лямбдой не работает, на основе того, что я показал ранее, с cmd работаю так
C++:
Код:
void
CALLBACK
cmdExample
(
std
::
string param
)
{
if
(
param
.
empty
(
)
)
return
;
const
auto
task
=
[
param
]
(
)
// Просто добавил param
{
// Код, задержки, все дела.
int
my_int
=
std
::
stoi
(
param
)
;
// Получение параметра функции
}
;
std
::
thread
(
task
)
.
detach
(
)
;
}
|
|
|

18.03.2019, 22:47
|
|
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами:
8654409
Репутация:
0
|
|
Сообщение от Harryss
registerChatCommand напрямую с лямбдой не работает, на основе того, что я показал ранее, с cmd работаю так
C++:
Код:
void
CALLBACK
cmdExample
(
std
::
string param
)
{
if
(
param
.
empty
(
)
)
return
;
const
auto
task
=
[
param
]
(
)
// Просто добавил param
{
// Код, задержки, все дела.
int
my_int
=
std
::
stoi
(
param
)
;
// Получение параметра функции
}
;
std
::
thread
(
task
)
.
detach
(
)
;
}
У меня нет определённой команды.
Я команды создаю уже непосредственно в самой игре и не могу сделать так как у тебя.
|
|
|

18.03.2019, 22:50
|
|
Новичок
Регистрация: 18.10.2015
Сообщений: 6
С нами:
5563739
Репутация:
0
|
|
Не подскажете, какой тип имеет выражение?)
Код:
|
|
|

18.03.2019, 23:56
|
|
Постоянный
Регистрация: 15.12.2013
Сообщений: 412
С нами:
6530249
Репутация:
133
|
|
Сообщение от arsh12344
Не подскажете, какой тип имеет выражение?)
Код:
Стандартом не определена однозначность.
Так называемый closure type - prvalue выражение, которое представляет собой уникальную неименованную неагрегированную структуру/класс, которая имеет перегруженный operator(), ну и еще пару методов.
В случае, когда функция не имеет захватов (сaptures), тогда можно неявно преобразовать в указатель на функцию
C++:
[CODE]
#include
#include
#include
auto
main
(
void
)
->
int
{
void
(
*
dd
)
(
)
=
[
]
{
std
::
cout
pp
=
[
]
{
std
::
cout
Z4mainEUlvE0_
Z4mainEUlvE1_
FvvE
FvvE
Надеюсь, чуточку прояснил ситуацию, но в любом случае советую посмотреть
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf, 94 страница
|
|
|

24.03.2019, 18:11
|
|
Постоянный
Регистрация: 27.08.2018
Сообщений: 717
С нами:
4060346
Репутация:
43
|
|
дарова, вобщем хочу начать писать sf плагины, можете объяснить в кратце что по чём.
например как пользоваться
SF->тут что-то()->тут что-то()->тут что-то();
или что такое вот это
pPlayer->szPlayerName,
pPlayer->iPing,
pPlayer->iScore,
pPlayer->iIsNPC,
pPlayer->pPlayerData->iAFKState == 2);
где можно найти информацию про это?
где можно найти функции sf api?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|