 |
|

07.07.2022, 20:08
|
|
Постоянный
Регистрация: 08.03.2016
Сообщений: 332
С нами:
5358262
Репутация:
213
|
|
Сообщение от Kol4p
как написать вх на 3d текст?
можешь хукнуть добавление 3д текстов и поменять там дистанцию отображения, а также параметр, который отвечает за рисование сквозь стены
|
|
|

08.07.2022, 17:57
|
|
Новичок
Регистрация: 13.11.2021
Сообщений: 17
С нами:
2369897
Репутация:
1
|
|
if (условие) {
действие
}
else if (условие) {
действие
}
else {
действие
}
else будет к чему относиться? к else if или if?
|
|
|

08.07.2022, 17:59
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от chopisat
if (условие) {
действие
}
else if (условие) {
действие
}
else {
действие
}
else будет к чему относиться? к else if или if?
к обоим
|
|
|

09.07.2022, 00:46
|
|
Постоянный
Регистрация: 20.03.2021
Сообщений: 666
С нами:
2711257
Репутация:
83
|
|
в чем ошибка?
C++:
Код:
uint16_t
playerId
=
3
;
const
char
*
Name
=
"noname"
;
BitStream bsClass
;
bsClass
.
Write
(
playerId
)
;
bsClass
.
Write
(
Name
)
;
SF
->
getRakNet
(
)
->
emulateRecvRPC
(
11
,
&
bsClass
)
;
|
|
|

09.07.2022, 01:00
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Перед любой строкой надо еще её длину записывать. Так же строка должна заканчиваться нулевым символом(могу ошибаться). Так же длинна строки может быть в разных РПЦ в разных типах данных. Найти можно тут.
RPC List
A list with SA-MP's packets documented. Contribute to Brunoo16/samp-packet-list development by creating an account on GitHub.
github.com
Если найду сообщение, то покажу пример как с std::string можно удобно записывать строки в рпц
Вот пример. Дума разберешься. Хоть тупых вопросов от тебя нет, как от одного окуня.
SF | Проблема с отправкой RPC
Хаюшки, тут возникла необходимость работы с bitstream Вот например, хочу я отправить в чат сообщение(не от моего лица, а в виде серверного), не через функцию отправки сообщения, а напрямую через RPC Вроде сделал так, как надо, но текста в чате нету char text[] = "hello"; BitStream...
www.blast.hk
|
|
|

09.07.2022, 01:26
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от Dark_Knight
Если найду сообщение, то покажу пример как с std::string можно удобно записывать строки в рпц
лайфхак: добавляем эти строки в BitStream.h куда-нибудь вниз, и кайфуем
C++:
Код:
template
inline
void
BitStream
::
Write
(
std
::
string var
)
{
Write
(
var
.
size
(
)
)
;
Write
(
var
.
c_str
(
)
,
var
.
size
(
)
)
;
}
#if __cpp_lib_string_view >= 201606
template
inline
void
BitStream
::
Write
(
std
::
string_view var
)
{
Write
(
var
.
size
(
)
)
;
Write
(
var
.
data
(
)
,
var
.
size
(
)
)
;
}
#endif
Ну и пример:
C++:
Код:
std
::
string aye_string
=
"АУЕ"
;
bs
.
Write
(
aye_string
)
;
|
|
|

09.07.2022, 01:39
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от kin4stat
лайфхак: добавляем эти строки в BitStream.h куда-нибудь вниз, и кайфуем
C++:
Код:
template
inline
void
BitStream
::
Write
(
std
::
string var
)
{
Write
(
var
.
size
(
)
)
;
Write
(
var
.
c_str
(
)
,
var
.
size
(
)
)
;
}
#if __cpp_lib_string_view >= 201606
template
inline
void
BitStream
::
Write
(
std
::
string_view var
)
{
Write
(
var
.
size
(
)
)
;
Write
(
var
.
data
(
)
,
var
.
size
(
)
)
;
}
#endif
Ну и пример:
C++:
Код:
std
::
string aye_string
=
"АУЕ"
;
bs
.
Write
(
aye_string
)
;
Хороший вариант, но size вроде 4 байта занимает, а для некоторых РПЦ такое не подойдет. У RPC_ScrShowDialog параметры строк идут в одном байте. Хотя можно еще добавить в каком типе длины записывать строку.
|
|
|

12.07.2022, 14:32
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
нашёл кароче функцию, думал она будет удалять масло на дорогах, типо в деревне там, но она нихуя не делает походу
C++:
Код:
void
CShadows
::
RemoveOilInArea
(
float
x1
,
float
y1
,
float
x2
,
float
y2
)
{
(
(
void
(
__cdecl
*
)
(
float
,
float
,
float
,
float
)
)
0x7074F0
)
(
x1
,
y1
,
x2
,
y2
)
;
}
а масло удалить я хочу
|
|
|

14.07.2022, 05:17
|
|
Участник форума
Регистрация: 16.08.2017
Сообщений: 110
С нами:
4600979
Репутация:
83
|
|
Итак, я расшифровал текст диалога с помощью компрессора строк, но по какой-то причине текст обрезается, как мне это исправить?
Samp 0.3dl, Взял компрессор по этой ссылке https://github.com/imring/RakHook/tree/master/RakNet
C++:
Код:
case
RPC_ShowDialog
:
{
traceLastFunc
(
"RPC_ShowDialog"
)
;
if
(
cheat_state
->
_generic
.
cheat_panic_enabled
)
break
;
traceLastFunc
(
"RPC_ShowDialog"
)
;
/*
{'onShowDialog',
{dialogId = 'uint16'},
{style = 'uint8'},
{title = 'string8'},
{input = 'string8'},
{button2 = 'string8'},
{text = 'encodedString4096'}}
*/
BitStream
bsData
(
rpcParams
->
input
,
rpcParams
->
numberOfBitsOfData
/
8
,
false
)
;
WORD dialogId
;
uint8_t
style
,
titleLen
,
button1Len
,
button2Len
,
textLen
;
char
title
[
257
]
,
button1
[
257
]
,
button2
[
257
]
,
text
[
4096
]
;
bsData
.
Read
(
dialogId
)
;
bsData
.
Read
(
style
)
;
bsData
.
Read
(
titleLen
)
;
bsData
.
Read
(
title
,
titleLen
)
;
title
[
titleLen
]
=
'\0'
;
bsData
.
Read
(
button1Len
)
;
bsData
.
Read
(
button1
,
button1Len
)
;
button1
[
button1Len
]
=
'\0'
;
bsData
.
Read
(
button2Len
)
;
bsData
.
Read
(
button2
,
button2Len
)
;
button2
[
button2Len
]
=
'\0'
;
bsData
.
Read
(
textLen
)
;
bsData
.
Read
(
text
,
textLen
)
;
text
[
textLen
]
=
'\0'
;
addMessageToChatWindow
(
"Coded: %s"
,
text
)
;
stringCompressor
->
DecodeString
(
text
,
0x1000
,
&
bsData
,
0
)
;
addMessageToChatWindow
(
"Decoded: %s"
,
text
)
;

|
|
|

14.07.2022, 10:24
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Все ты правильно сделал по чтению. Одно сообщение в чате может быть до 144 символов и если при добавлении строки в чат в ней будут переносы, то автоматического разделение не будет
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|