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

  #1  
Старый 18.03.2019, 12:53
Cake_
Участник форума
Регистрация: 04.04.2017
Сообщений: 263
С нами: 4793630

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

Цитата:
Сообщение от ๖ۣۣۜШурик  

Не совсем понял, можно подробней?
Условие нужно
 
Ответить с цитированием

  #2  
Старый 18.03.2019, 12:55
Шурик
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами: 8654409

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

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

Условие нужно
Цитата:
Сообщение от Stiopko  

Если это в маинлуп то ты создаёшь очень много потоков и из-за етого вылет нужны проверки
Я кажется вас понял.

У меня поток создаётся 1 раз (не бесконечно, только при инициализации).
 
Ответить с цитированием

  #3  
Старый 18.03.2019, 13:00
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

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

Цитата:
Сообщение от ๖ۣۣۜШурик  

Не совсем понял, можно подробней?
Екземпляр класса должен быть глобальным или static
 
Ответить с цитированием

  #4  
Старый 18.03.2019, 14:58
Шурик
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами: 8654409

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

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

Екземпляр класса должен быть глобальным или static
Попытался сделать глобальным и статическим - результата нет, всё также вылетает.

Хочу обратить внимание на то, что если я укажу th.join() после: std::thread th = test.start(""), то игра не вылетит, но к сожалению от потока не будет смысла (т.к. фризит процесс при Sleep).

UPD: Проверил на консольном приложении - успешно (но не в SF).


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

  #5  
Старый 18.03.2019, 21:39
Шурик
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами: 8654409

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

Возможно ли в registerChatCommandпередать в качестве второго параметра лямбду? Но внутри неё мне нужно получить 2 переменные, которые в ней не находятся. Если да, то пожалуйста покажите пример.
 
Ответить с цитированием

  #6  
Старый 18.03.2019, 22:33
Harryss
Участник форума
Регистрация: 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
(
)
;
}
 
Ответить с цитированием

  #7  
Старый 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
(
)
;
}

У меня нет определённой команды.

Я команды создаю уже непосредственно в самой игре и не могу сделать так как у тебя.
 
Ответить с цитированием

  #8  
Старый 18.03.2019, 22:50
index
Новичок
Регистрация: 18.10.2015
Сообщений: 6
С нами: 5563739

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

Не подскажете, какой тип имеет выражение?)

Код:





Код:
[](){};
 
Ответить с цитированием

  #9  
Старый 18.03.2019, 23:56
san0
Постоянный
Регистрация: 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 страница
 
Ответить с цитированием

  #10  
Старый 24.03.2019, 18:11
sdfaw
Постоянный
Регистрация: 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)
 


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




ANTICHAT ™ © 2001- Antichat Kft.

×

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

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

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

×

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

Сумма USDT:

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

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