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

  #1  
Старый 01.08.2021, 18:28
ANZR
Участник форума
Регистрация: 03.08.2019
Сообщений: 168
С нами: 3568604

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

Ку, пытаюсь нанести урон игроку, но в итоге урона никакого и нет.

Вроде бы все правильно

c++:





Код:
int
pid
=
std
::
stoi
(
id
)
;
BitStream givePizda
;
givePizda
.
ResetWritePointer
(
)
;
givePizda
.
Write
(
false
)
;
givePizda
.
Write
(
(
UINT16
)
pid
)
;
givePizda
.
Write
(
(
float
)
1.32
)
;
givePizda
.
Write
(
(
UINT32
)
0
)
;
givePizda
.
Write
(
(
UINT32
)
3
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPC_GiveTakeDamage
,
&
givePizda
)
;
 
Ответить с цитированием

  #2  
Старый 01.08.2021, 18:40
Sargon
Новичок
Регистрация: 10.08.2007
Сообщений: 1
С нами: 9870033

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

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

givePizda.Write(true);
false
 
Ответить с цитированием

  #3  
Старый 01.08.2021, 18:47
ANZR
Участник форума
Регистрация: 03.08.2019
Сообщений: 168
С нами: 3568604

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

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

false
Изменил сразу же, как залил. Ничего не изменилось
 
Ответить с цитированием

  #4  
Старый 01.08.2021, 18:56
Sargon
Новичок
Регистрация: 10.08.2007
Сообщений: 1
С нами: 9870033

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

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

Изменил сразу же, как залил. Ничего не изменилось
больше ошибок не наблюдаю, отправка должна работать.
 
Ответить с цитированием

  #5  
Старый 01.08.2021, 19:09
ANZR
Участник форума
Регистрация: 03.08.2019
Сообщений: 168
С нами: 3568604

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

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

больше ошибок не наблюдаю, отправка должна работать.
Ну вот и я о том же

Ошибок нет, а отправка не идет
 
Ответить с цитированием

  #6  
Старый 01.08.2021, 19:24
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

В этой рпц bool должен быть записан 1 битом, а не байтом, поэтому givePizda.WriteBit(false);

UPD: Packet list от bruno16 говно с дезинфой. Смотрите на вики бластхака(не все рпц там есть) либо в sampevents
 
Ответить с цитированием

  #7  
Старый 01.08.2021, 19:27
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

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

givePizda.Write((UINT16)pid);
А еще вместо такого говна лучше

givePizda.Write(pid);

А еще вместо C Style каста (UINT32) стоит использовать C++ style касты

static_cast() Или reinterpret_cast()

UPD: а вообще стоит переписать весь код

C++:





Код:
int
pid
=
std
::
stoi
(
id
)
;
BitStream givePizda
;
givePizda
.
WriteBit
(
false
)
;
givePizda
.
Write

(
pid
)
;
// или unsigned short
givePizda
.
Write
(
1.32f
)
;
givePizda
.
Write
(
0ul
)
;
givePizda
.
Write
(
3ul
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPC_GiveTakeDamage
,
&
givePizda
)
;


P.S. Я в курсе что 0ul может занимать больше 32 бит, но мы находимся в реалиях x86 и msvc где 0ul это unsigned long == 32bits
 
Ответить с цитированием

  #8  
Старый 01.08.2021, 20:09
ANZR
Участник форума
Регистрация: 03.08.2019
Сообщений: 168
С нами: 3568604

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

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

В этой рпц bool должен быть записан 1 битом, а не байтом, поэтому givePizda.WriteBit(false);
UPD: Packet list от bruno16 говно с дезинфой. Смотрите на вики бластхака(не все рпц там есть) либо в sampevents
Все бы ничего, но функции WriteBit нету в классе BitStream

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

А еще вместо такого говна лучше
givePizda.Write(pid);
А еще вместо C Style каста (UINT32) стоит использовать C++ style касты
static_cast() Или reinterpret_cast()

UPD: а вообще стоит переписать весь код

C++:





Код:
int
pid
=
std
::
stoi
(
id
)
;
BitStream givePizda
;
givePizda
.
WriteBit
(
false
)
;
givePizda
.
Write

(
pid
)
;
// или unsigned short
givePizda
.
Write
(
1.32f
)
;
givePizda
.
Write
(
0ul
)
;
givePizda
.
Write
(
3ul
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPC_GiveTakeDamage
,
&
givePizda
)
;


P.S. Я в курсе что 0ul может занимать больше 32 бит, но мы находимся в реалиях x86 и msvc где 0ul это unsigned long == 32bits
По этой инфе - сниму шляпу, т.к ты открыл для меня style касты. Я до этого не ебал что это и как называется
 
Ответить с цитированием

  #9  
Старый 01.08.2021, 21:20
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Все бы ничего, но функции WriteBit нету в классе BitStream

По идее Write0 или Write1 выполнит эту функцию(0 - false, 1 - true)
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

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


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




ANTICHAT ™ © 2001- Antichat Kft.