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

  #3161  
Старый 20.12.2018, 14:49
Romelo
Постоянный
Регистрация: 21.11.2014
Сообщений: 540
С нами: 6039222

Репутация: 163


По умолчанию

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

SF->getRakNet()->SendRPC(RPC_DialogResponse, &bs);

как правильно заполнить для отправки?
C++:





Код:
void
sendDialog
(
short
id
,
char
button
,
short
listitem
,
const
char
*
input
)
{
BitStream bs
;
bs
.
ResetWritePointer
(
)
;
bs
.
Write
(
id
)
;
bs
.
Write
(
button
)
;
bs
.
Write
(
listitem
)
;
bs
.
Write
(
(
BYTE
)
strlen
(
input
)
)
;
bs
.
Write
(
input
,
strlen
(
input
)
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_DialogResponse
,
&
bs
)
;
}
//Использование
sendDialog
(
DialogID
,
Button
,
ListItem
,
Input
)
;


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

  #3162  
Старый 20.12.2018, 15:14
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

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

аргумент типа char * несовместим с char

C++:





Код:
void
sendDialog
(
short
id
,
char
button
,
short
listitem
,
char
input
)
{
BitStream bs
;
bs
.
ResetWritePointer
(
)
;
bs
.
Write
(
id
)
;
bs
.
Write
(
button
)
;
bs
.
Write
(
listitem
)
;
bs
.
Write
(
input
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_DialogResponse
,
&
bs
)
;
}
void
CALLBACK
log
(
std
::
string param
)
{
char
logStr
[
20
]
;
sscanf
(
param
.
c_str
(
)
,
"%s"
,
&
logStr
)
;
sendDialog
(
SF
->
getSAMP
(
)
->
getDialog
(
)
->
DialogID
,
1
,
0
,
logStr
)
;
//SF->getSAMP()->getDialog()->Close(0);
}
 
Ответить с цитированием

  #3163  
Старый 20.12.2018, 15:21
Romelo
Постоянный
Регистрация: 21.11.2014
Сообщений: 540
С нами: 6039222

Репутация: 163


По умолчанию

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

аргумент типа char * несовместим с char

C++:





Код:
void
sendDialog
(
short
id
,
char
button
,
short
listitem
,
char
input
)
{
BitStream bs
;
bs
.
ResetWritePointer
(
)
;
bs
.
Write
(
id
)
;
bs
.
Write
(
button
)
;
bs
.
Write
(
listitem
)
;
bs
.
Write
(
input
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_DialogResponse
,
&
bs
)
;
}
void
CALLBACK
log
(
std
::
string param
)
{
char
logStr
[
20
]
;
sscanf
(
param
.
c_str
(
)
,
"%s"
,
&
logStr
)
;
sendDialog
(
SF
->
getSAMP
(
)
->
getDialog
(
)
->
DialogID
,
1
,
0
,
logStr
)
;
//SF->getSAMP()->getDialog()->Close(0);
}

void sendDialog(short id, char button, short listitem, const char *input)
 
Ответить с цитированием

  #3164  
Старый 20.12.2018, 15:24
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

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

ошибка исправлена, но ничего не работает

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

void sendDialog(short id, char button, short listitem, char* input)
 
Ответить с цитированием

  #3165  
Старый 20.12.2018, 15:28
LUCHARE
Постоянный
Регистрация: 23.05.2017
Сообщений: 545
С нами: 4723927

Репутация: 158


По умолчанию

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



C:





Код:
void
sendDialog
(
short
id
,
char
button
,
short
listitem
,
const
char
*
input
)
{
BitStream bs
;
bs
.
ResetWritePointer
(
)
;
bs
.
Write
(
id
)
;
bs
.
Write
(
button
)
;
bs
.
Write
(
listitem
)
;
bs
.
Write
(
input
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_DialogResponse
,
&
bs
)
;
}
//Использование
sendDialog
(
DialogID
,
Button
,
ListItem
,
Input
)
;



перед строкой нужно записать её длину (1 байт)
 
Ответить с цитированием

  #3166  
Старый 20.12.2018, 15:30
Romelo
Постоянный
Регистрация: 21.11.2014
Сообщений: 540
С нами: 6039222

Репутация: 163


По умолчанию

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

перед строкой нужно записать её длину (1 байт)
Ля, крч понял. Я его использовал для других целей, для инпута он мне не нужен был.
 
Ответить с цитированием

  #3167  
Старый 20.12.2018, 15:32
LUCHARE
Постоянный
Регистрация: 23.05.2017
Сообщений: 545
С нами: 4723927

Репутация: 158


По умолчанию

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

Код не мой, главное - работает.
в диалогах с инпутом не работает
 
Ответить с цитированием

  #3168  
Старый 20.12.2018, 15:33
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

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

ne

C++:





Код:
void
sendDialog
(
uint16_t
DialogId
,
uint8_t
Button
,
uint16_t
ListboxId
,
uint8_t
strLen
,
char
*
string
)
{
BitStream bs
;
bs
.
ResetWritePointer
(
)
;
bs
.
Write
(
DialogId
)
;
bs
.
Write
(
Button
)
;
bs
.
Write
(
ListboxId
)
;
bs
.
Write
(
strLen
)
;
bs
.
Write
(
string
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_DialogResponse
,
&
bs
)
;
}
void
CALLBACK
log
(
std
::
string param
)
{
char
logStr
[
20
]
;
sscanf
(
param
.
c_str
(
)
,
"%s"
,
&
logStr
)
;
sendDialog
(
SF
->
getSAMP
(
)
->
getDialog
(
)
->
DialogID
,
1
,
0
,
sizeof
(
logStr
)
,
logStr
)
;
//SF->getSAMP()->getDialog()->Close(0);
}
 
Ответить с цитированием

  #3169  
Старый 20.12.2018, 15:46
LUCHARE
Постоянный
Регистрация: 23.05.2017
Сообщений: 545
С нами: 4723927

Репутация: 158


По умолчанию

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

ne

C++:





Код:
void
sendDialog
(
uint16_t
DialogId
,
uint8_t
Button
,
uint16_t
ListboxId
,
uint8_t
strLen
,
char
*
string
)
{
BitStream bs
;
bs
.
ResetWritePointer
(
)
;
bs
.
Write
(
DialogId
)
;
bs
.
Write
(
Button
)
;
bs
.
Write
(
ListboxId
)
;
bs
.
Write
(
strLen
)
;
bs
.
Write
(
string
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_DialogResponse
,
&
bs
)
;
}
void
CALLBACK
log
(
std
::
string param
)
{
char
logStr
[
20
]
;
sscanf
(
param
.
c_str
(
)
,
"%s"
,
&
logStr
)
;
sendDialog
(
SF
->
getSAMP
(
)
->
getDialog
(
)
->
DialogID
,
1
,
0
,
sizeof
(
logStr
)
,
logStr
)
;
//SF->getSAMP()->getDialog()->Close(0);
}

длина строки, а не размер массива
 
Ответить с цитированием

  #3170  
Старый 20.12.2018, 15:53
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

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

C++:





Код:
void
sendDialog
(
uint16_t
DialogId
,
uint8_t
Button
,
uint16_t
ListboxId
,
char
*
string
)
{
BitStream bs
;
bs
.
ResetWritePointer
(
)
;
bs
.
Write
(
DialogId
)
;
bs
.
Write
(
Button
)
;
bs
.
Write
(
ListboxId
)
;
bs
.
Write
(
strlen
(
string
)
)
;
bs
.
Write
(
string
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_DialogResponse
,
&
bs
)
;
}
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.