Показать сообщение отдельно

  #7  
Старый 14.07.2022, 20:09
horacy
Участник форума
Регистрация: 16.08.2017
Сообщений: 110
С нами: 4600979

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

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

ниче правильно он читает.

в RPC_ScrShowDialog текст диалога записан по другому и для его чтения надо использовать DecodeString. То как ты сделал неправильно, потому что своим "Read" в этих строках ты сдвинул курсор чтения и поэтому все поломалось. Зачем тебе вообще encoded текст? Вот правильный пример: https://www.blast.hk/threads/781/post-338475, но он для 0.3.7 r1, хз поменялось ли что то в 0.3dl, но думаю что нет.
У меня нет RPC_ScrShowDialog, только RPC_ShowDialog, поэтому я могу читать только через bsData.read, а не через params->bitStream->Read.

Цитата:
Сообщение от Спойлер  


C++:





Код:
void
HandleRPCPacketFunc
(
unsigned
char
id
,
RPCParameters
*
rpcParams
,
void
(
*
callback
)
(
RPCParameters
*
)
)
{
StringCompressor
::
AddReference
(
)
;
StringTable
::
AddReference
(
)
;
if
(
!
isCheatPanicEnabled
(
)
)
{
if
(
set
.
netPatchAssoc
[
id
]
[
INCOMING_RPC
]
!=
nullptr
&&
set
.
netPatchAssoc
[
id
]
[
INCOMING_RPC
]
->
enabled
)
return
;
}
if
(
rpcParams
!=
nullptr
&&
rpcParams
->
numberOfBitsOfData
>=
8
)


Кроме того, у меня нет структуры stSAMPDialog, но есть stDialogInfo, который содержит это:

Цитата:
Сообщение от Спойлер  


C++:





Код:
struct
stDialogInfo
{
IDirect3DDevice9
*
m_pD3DDevice
;
int
iTextPoxX
;
int
iTextPoxY
;
uint32_t
uiDialogSizeX
;
uint32_t
uiDialogSizeY
;
int
iBtnOffsetX
;
int
iBtnOffsetY
;
class
_CDXUTDialog
*
pDialog
;
class
_CDXUTListBox
*
pList
;
class
_CDXUTIMEEditBox
*
pEditBox
;
int
iIsActive
;
int
iType
;
uint32_t
DialogID
;
char
pText
[
1000
]
;
uint32_t
uiTextWidth
;
uint32_t
uiTextHeight
;
char
szCaption
[
65
]
;
int
bServerside
;
}
;


Я пытался сделать это на своей структуре, но это ничего не изменило, и при вставке структуры stSampdialog я мог только читать пустой текст.

Мне нужен текст диалога, так как никнеймы в списке игроков анонимны и были перемещены в диалог вместе с id, поэтому мне нужен текст диалога, чтобы прочитать, какой id имеет какой ник, а затем заменить никнеймы игроки.

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

после загрузки samp происходит вылет игры, sampfuncs 0.3dl, отладчик выдал эти адреса. На mod_sa по умолчанию нет сбоя, что может быть причиной такого сбоя?

Код:





Код:
Exception thrown at location 0x03B1B396 (samp.dll) in gta_sa.exe: 0xC0000005: Access violation while reading at location 0x0029E868.
 
Ответить с цитированием