 |
|

24.05.2019, 12:35
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
как отправить команду в чат?
|
|
|

24.05.2019, 16:24
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
как сделать задержку перед вводом текста в диалог, чтобы при этом игра не зависала ?
|
|
|

24.05.2019, 23:05
|
|
Участник форума
Регистрация: 19.01.2017
Сообщений: 130
С нами:
4901705
Репутация:
98
|
|
what's difference between
1.
stOnFootData OnFoot;
memcpy(&OnFoot, &g_Players->pLocalPlayer->onFootData, sizeof(stOnFootData));
OnFoot->byteHealth = 50;
BitStream bsOnFoot;
bsOnFoot.Write((BYTE)ID_PLAYER_SYNC);
bsOnFoot.Write((PCHAR)&OnFoot, sizeof(stOnFootData));
g_RakFuncs->Send(&bsOnFoot, HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 0);
and
2.
g_Player->pLocalPlayer->OnFootData.byteHealth ?
Is 1. better synced ?
|
|
|

25.05.2019, 10:37
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Есть скрипт в который нужно запихнуть задержку между вводом текста в диалог, как это сделать без замораживания игрового процесса? (Отредактируйте мой код)
void CALLBACK mainloop()
{
if (SF->getSAMP()->getDialog()->iIsActive && SF->getSAMP()->getDialog()->DialogID == 1)
{
SF->getSAMP()->getDialog()->SetInputText("1");
// тут нужно сделать задержку
SF->getSAMP()->getDialog()->SetInputText("2");
// тут нужно сделать задержку
SF->getSAMP()->getDialog()->SetInputText("3");
// тут нужно сделать задержку
SF->getSAMP()->getDialog()->Close(1);
}
}
|
|
|

25.05.2019, 10:55
|
|
Новичок
Регистрация: 18.10.2015
Сообщений: 6
С нами:
5563739
Репутация:
0
|
|
|
|
|

25.05.2019, 13:04
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
нужно разбить char * test = "12345" на цифры, чтобы можно было сделать так:
char nds[5];
sprintf(result, "%s%s%s%s%s", nds[0], nds[1], nds[2], nds[3], nds[4], nds[5])
когда пытаюсь делать test[0], test[1] ... - краш игры.
??
|
|
|

25.05.2019, 13:35
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от cakebou
C++:
Код:
char
text
[
]
=
"12345"
;
text
[
0
]
;
// 1
text
[
1
]
;
// 2
text
[
2
]
;
// 3
text
[
3
]
;
// 4
text
[
4
]
;
// 5
Смысл тебе писать на C++ , если ты даже основ не знаешь?
мне нужно чтобы было именно char * а не char[]
но если использовать такой метод с char *, то игру крашит
|
|
|

25.05.2019, 14:17
|
|
Новичок
Регистрация: 18.10.2015
Сообщений: 6
С нами:
5563739
Репутация:
0
|
|
Сообщение от Sane4K
нужно разбить char * test = "12345" на цифры, чтобы можно было сделать так:
char nds[5];
sprintf(result, "%s%s%s%s%s", nds[0], nds[1], nds[2], nds[3], nds[4], nds[5])
когда пытаюсь делать test[0], test[1] ... - краш игры.
??
При спецификаторе %s идет обращение к адресу, записанному в передаваемый аргумент (т.е. переменная должна быть указателем на строку). Естественно, у тебя будет ошибка access violation at adress test[number].
https://ru.wikipedia.org/wiki/Система_типов_Си
Сначала неплохо бы основы выучить, как сказал товарищ сверху. Чтобы вывести однобайтовый символ - используй %c.
|
|
|

25.05.2019, 14:48
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Код:
Код:
const auto myTask = []()
{
Sleep(500);
SF->getSAMP()->getDialog()->SetInputText("х");
Sleep(500);
SF->getSAMP()->getDialog()->SetInputText("у");
};
std::thread(myTask).detach();
- краш игры, в чём проблема ?
|
|
|

25.05.2019, 15:16
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от cakebou
Нужно проверять на валидностьдиалог.
Там сверху проверка есть на валидность, это похоже из-за того что два Sleep
----
Смысл есть везде
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|