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

  #6211  
Старый 07.07.2022, 20:08
etereon
Постоянный
Регистрация: 08.03.2016
Сообщений: 332
С нами: 5358262

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

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

как написать вх на 3d текст?
можешь хукнуть добавление 3д текстов и поменять там дистанцию отображения, а также параметр, который отвечает за рисование сквозь стены
 
Ответить с цитированием

  #6212  
Старый 08.07.2022, 17:57
chopisat
Новичок
Регистрация: 13.11.2021
Сообщений: 17
С нами: 2369897

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

if (условие) {

действие

}

else if (условие) {

действие

}

else {

действие

}

else будет к чему относиться? к else if или if?
 
Ответить с цитированием

  #6213  
Старый 08.07.2022, 17:59
F0RQU1N and
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами: 4012500

Репутация: 138


По умолчанию

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

if (условие) {
действие
}
else if (условие) {
действие
}
else {
действие
}

else будет к чему относиться? к else if или if?
к обоим
 
Ответить с цитированием

  #6214  
Старый 09.07.2022, 00:46
Savchik Blazer
Постоянный
Регистрация: 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
)
;
 
Ответить с цитированием

  #6215  
Старый 09.07.2022, 01:00
Dark_Knight
Флудер
Регистрация: 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
 
Ответить с цитированием

  #6216  
Старый 09.07.2022, 01:26
kin4stat
Флудер
Регистрация: 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
)
;
 
Ответить с цитированием

  #6217  
Старый 09.07.2022, 01:39
Dark_Knight
Флудер
Регистрация: 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 параметры строк идут в одном байте. Хотя можно еще добавить в каком типе длины записывать строку.
 
Ответить с цитированием

  #6218  
Старый 12.07.2022, 14:32
loganhackerdff
Постоянный
Регистрация: 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
)
;
}


а масло удалить я хочу
 
Ответить с цитированием

  #6219  
Старый 14.07.2022, 05:17
horacy
Участник форума
Регистрация: 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
)
;


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

  #6220  
Старый 14.07.2022, 10:24
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Все ты правильно сделал по чтению. Одно сообщение в чате может быть до 144 символов и если при добавлении строки в чат в ней будут переносы, то автоматического разделение не будет
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.