 |
|

20.12.2018, 14:49
|
|
Постоянный
Регистрация: 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
)
;
|
|
|

20.12.2018, 15:14
|
|
Участник форума
Регистрация: 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);
}
|
|
|

20.12.2018, 15:21
|
|
Постоянный
Регистрация: 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)
|
|
|

20.12.2018, 15:24
|
|
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами:
4423953
Репутация:
68
|
|
ошибка исправлена, но ничего не работает
Сообщение от Romelo
void sendDialog(short id, char button, short listitem, char* input)
|
|
|

20.12.2018, 15:28
|
|
Постоянный
Регистрация: 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 байт)
|
|
|

20.12.2018, 15:30
|
|
Постоянный
Регистрация: 21.11.2014
Сообщений: 540
С нами:
6039222
Репутация:
163
|
|
Сообщение от LUCHARE
перед строкой нужно записать её длину (1 байт)
Ля, крч понял. Я его использовал для других целей, для инпута он мне не нужен был.
|
|
|

20.12.2018, 15:32
|
|
Постоянный
Регистрация: 23.05.2017
Сообщений: 545
С нами:
4723927
Репутация:
158
|
|
Сообщение от Romelo
Код не мой, главное - работает.
в диалогах с инпутом не работает
|
|
|

20.12.2018, 15:33
|
|
Участник форума
Регистрация: 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);
}
|
|
|

20.12.2018, 15:46
|
|
Постоянный
Регистрация: 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);
}
длина строки, а не размер массива
|
|
|

20.12.2018, 15:53
|
|
Участник форума
Регистрация: 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)
|
|
|
|