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

  #1601  
Старый 03.07.2016, 15:59
Gabriel__
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами: 5731627

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

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

У тебя же в конструкторе при инициализации должен быть указан int number. Как у тебя вообще скомпилировалось?
При написании поста ошибся.

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

Вот тут проблемы как раз. Зачем 2 раза тебе юзать его, если ты его объявляешь глобально?
Я не создавал два раза просто так написал
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

Ну тогда надо смотреть на весь код проекта и смотреть в нем где ошибка. Я свои классы пишу в каждом проекте и нормально все.
 
Ответить с цитированием

  #1603  
Старый 03.07.2016, 16:21
ЯedЯuM
Участник форума
Регистрация: 13.03.2016
Сообщений: 242
С нами: 5351007

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

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

Что ты хочешь конкретно?
Прочитать входящую синхру пассажира.

C++:





Код:
typedef
unsigned
short
PLAYERID
;
typedef
unsigned
short
VEHICLEID
;
#pragma pack(1)
typedef
struct
_PASSENGER_SYNC_DATA
{
VEHICLEID VehicleID
;
BYTE byteSeatFlags
:
7
;
BYTE byteDriveBy
:
1
;
BYTE byteCurrentWeapon
;
BYTE bytePlayerHealth
;
BYTE bytePlayerArmour
;
WORD lrAnalog
;
WORD udAnalog
;
WORD wKeys
;
float
vecPos
[
3
]
;
}
PASSENGER_SYNC_DATA
;
////////////////////////////////////////////////////////////////////////////////////////////////////
bool
__stdcall
PacketHook
(
stRakNetHookParams
*
hook
)
{
if
(
hook
->
packetId
==
ID_PASSENGER_SYNC
)
{
PASSENGER_SYNC_DATA psSync
;
PLAYERID SenderID
;
memset
(
&
psSync
,
0
,
sizeof
(
PASSENGER_SYNC_DATA
)
)
;
hook
->
bitStream
->
IgnoreBits
(
8
)
;
hook
->
bitStream
->
Read
(
SenderID
)
;
if
(
SenderID
=
SAMP_MAX_PLAYERS
)
return
false
;
if
(
SenderID
==
targetID2
)
{
hook
->
bitStream
->
Read
(
psSync
.
VehicleID
)
;
hook
->
bitStream
->
Read
(
psSync
.
byteSeatFlags
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
245
,
184
,
0
)
,
"ID: %d | VehID: %d"
,
SenderID
,
psSync
.
VehicleID
)
;
}
}
return
true
;
}


Вот до ида транспорта я дочитать смог а дальше ерроры((

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

  #1604  
Старый 03.07.2016, 16:25
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

read(psSync); пробуй так читать.
 
Ответить с цитированием

  #1605  
Старый 03.07.2016, 16:28
ЯedЯuM
Участник форума
Регистрация: 13.03.2016
Сообщений: 242
С нами: 5351007

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

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

read(psSync); пробуй так читать.
Так?

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

  #1606  
Старый 03.07.2016, 16:30
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Только сендер ид имеет тип ворд.
 
Ответить с цитированием

  #1607  
Старый 03.07.2016, 17:02
ЯedЯuM
Участник форума
Регистрация: 13.03.2016
Сообщений: 242
С нами: 5351007

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

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

Только сендер ид имеет тип ворд.
Cпасибо за помощь, разобрался.
 
Ответить с цитированием

  #1608  
Старый 03.07.2016, 17:16
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

Не работает чет. Вроде должно, заменяем функцию Present (VTable[17]) на свою и в своей вызываем оригинал. До этого в другом плагине делал так же, все работало.

C++:





Код:
DWORD dwOriginal
=
0x0
;
__declspec
(
naked
)
void
hook
(
)
{
__asm pushad
    __asm pushfd
Log
(
"work"
)
;
__asm popfd
    __asm popad

    __asm jmp
[
dwOriginal
]
}
void
init
(
)
{
Log
(
"init"
)
;
while
(
(
*
(
IDirect3DDevice9
*
*
)
0xC97C28
)
==
nullptr
)
Sleep
(
100
)
;
IDirect3DDevice9
*
Device
=
*
(
IDirect3DDevice9
*
*
)
0xC97C28
;
Log
(
"%X"
,
Device
)
;
DWORD
*
VTable
=
(
DWORD
*
)
*
(
DWORD
*
)
Device
;
Log
(
"%X"
,
VTable
)
;
MEMORY_BASIC_INFORMATION mbi
;
VirtualQuery
(
(
LPCVOID
)
VTable
,
&
mbi
,
sizeof
(
mbi
)
)
;
VirtualProtect
(
mbi
.
BaseAddress
,
mbi
.
RegionSize
,
PAGE_READWRITE
,
&
mbi
.
Protect
)
;
Log
(
"Start hook."
)
;
dwOriginal
=
VTable
[
17
]
;
VTable
[
17
]
=
(
DWORD
)
hook
;
Log
(
"Finish hook."
)
;
VirtualProtect
(
mbi
.
BaseAddress
,
mbi
.
RegionSize
,
mbi
.
Protect
,
&
mbi
.
Protect
)
;
}
 
Ответить с цитированием

  #1609  
Старый 03.07.2016, 17:33
ЯedЯuM
Участник форума
Регистрация: 13.03.2016
Сообщений: 242
С нами: 5351007

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

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

Только сендер ид имеет тип ворд.
А битстрим входящий как перезаписывать?

C++:





Код:
BitStream bs
;
bs
.
Write
(
(
BYTE
)
ID_PASSENGER_SYNC
)
;
bs
.
Write
(
SenderID
)
;
bs
.
Write
(
(
PCHAR
)
&
psSync
,
sizeof
(
PASSENGER_SYNC_DATA
)
)
;
memcpy
(
hook
->
bitStream
->
GetData
(
)
,
bs
.
GetData
(
)
,
sizeof
(
BitStream
)
)
;
 
Ответить с цитированием

  #1610  
Старый 03.07.2016, 18:29
CarLCas
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами: 6755146

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

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

А битстрим входящий как перезаписывать?

C++:





Код:
BitStream bs
;
bs
.
Write
(
(
BYTE
)
ID_PASSENGER_SYNC
)
;
bs
.
Write
(
SenderID
)
;
bs
.
Write
(
(
PCHAR
)
&
psSync
,
sizeof
(
PASSENGER_SYNC_DATA
)
)
;
memcpy
(
hook
->
bitStream
->
GetData
(
)
,
bs
.
GetData
(
)
,
sizeof
(
BitStream
)
)
;

hook->bitStream->Write(.....);
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.