Войти или зарегистрироваться
Выберите удобный способ — аккаунт создастся автоматически.
Или войдите по логину и паролю
 |
|

18.03.2016, 12:53
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от Woofing Giraffe
Код:
Код:
bool CALLBACK incomingRPC(stRakNetHookParams *params)
{
if (params->packetId == ScriptRPCEnumeration::RPC_ScrSetPlayerColor)
{
WORD i;
DWORD Color;
params->bitStream->ResetReadPointer();
params->bitStream->Read(i);
params->bitStream->Read(Color);
params->bitStream->ResetReadPointer();
if (Color == 0xFFFFFF01)
{
params->bitStream->ResetWritePointer();
params->bitStream->Write(i);
params->bitStream->Write(0xFF000001);
}
};
return true;
};
Проблема в том что цвет ника меняет только в табе, а в игре цвет остается тем же.
Бля, ну помогите(
|
|
|

18.03.2016, 13:05
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от Woofing Giraffe
Бля, ну помогите(
в собе есть функция. возьми ее и используй. В новом сф тоже будет такая функция
|
|
|

18.03.2016, 17:54
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Можно ли получить клавишу, которая зажата. Пробовал getch(), GetKeyState(), без результата.
|
|
|

18.03.2016, 18:01
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
WndProcc HOOK
|
|
|

18.03.2016, 18:25
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
Как отправить урон с кулака, дилдо и т.д
|
|
|

18.03.2016, 22:19
|
|
Участник форума
Регистрация: 13.03.2016
Сообщений: 242
С нами:
5351007
Репутация:
0
|
|
Сообщение от Tray228
Как отправить урон с кулака, дилдо и т.д
Если чисто на синхре то шли онфут пакет с позицией в метре от жертвы и разворачивай себя точно в её сторону(там это на кватернионах по этому прийдеться высчитывать) Ставишь ид анимки удара и соотвествующий флаг к ней. И лучше после этого послать GiveDamageRPC сам знаешь зачем. (Ид гана нулевой, урон от одного до трёх). Но можно обойтись и без манипуляций с кватернионами, разворачивай у себя в клиенте.
Например так. Только рпц на выдачу дамага лучше под GetTickCount на 220 мс поставить.
C++:
Код:
#pragma warning(disable:4409)
float
GetZRot
(
uint32_t
enemy
)
{
if
(
enemy
==
65535
)
return
-
0.0f
;
float
x1
=
PEDSELF
->
GetPosition
(
)
->
fX
;
float
y1
=
PEDSELF
->
GetPosition
(
)
->
fY
;
float
x2
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
enemy
]
->
pPlayerData
->
fOnFootPos
[
0
]
;
float
y2
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
enemy
]
->
pPlayerData
->
fOnFootPos
[
1
]
;
float
kx
,
ky
;
float
t
,
a
;
kx
=
x2
-
x1
;
ky
=
y2
-
y1
;
if
(
kx
==
0
)
kx
=
0.00001f
;
t
=
kx
/
ky
;
if
(
t
=
0
)
&&
(
ky
>=
0
)
)
a
=
359.99999f
-
a
;
else
if
(
(
kx
>=
0
)
&&
(
ky
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_GiveTakeDamage
,
&
bs
)
;
}
// переменная targetId должна содержать ид твоей жертвы
uint32_t
targetId
;
bool
__stdcall
HackMySync
(
stRakNetHookParams
*
hook
)
{
if
(
hook
->
packetId
==
ID_PLAYER_SYNC
&&
Enabled
==
true
)
{
stOnFootData foot
;
byte packetID
;
memset
(
&
foot
,
0
,
sizeof
(
stOnFootData
)
)
;
hook
->
bitStream
->
ResetReadPointer
(
)
;
hook
->
bitStream
->
Read
(
(
BYTE
)
packetID
)
;
hook
->
bitStream
->
Read
(
(
PCHAR
)
&
foot
,
sizeof
(
stOnFootData
)
)
;
hook
->
bitStream
->
ResetReadPointer
(
)
;
if
(
!
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
iIsListed
[
targetId
]
)
return
true
;
if
(
!
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
IsPlayerDefined
(
targetId
,
true
)
)
return
true
;
if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
targetId
]
->
pPlayerData
->
iAFKState
==
2
)
return
true
;
if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
targetId
]
->
pPlayerData
->
bytePlayerState
!=
PLAYER_STATE_ONFOOT
)
return
true
;
float
dist
[
3
]
,
mdist
[
3
]
;
for
(
short
x
=
0
;
x
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
targetId
]
->
pPlayerData
->
fOnFootPos
[
x
]
;
mdist
[
x
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fPosition
[
x
]
;
}
if
(
GetDistance3D
(
dist
[
0
]
,
dist
[
1
]
,
dist
[
2
]
,
mdist
[
0
]
,
mdist
[
1
]
,
mdist
[
2
]
)
>
30.0f
)
return
true
;
PEDSELF
->
SetTargetRotation
(
GetZRot
(
targetId
)
)
;
for
(
short
x
=
0
;
x
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
targetId
]
->
pPlayerData
->
fOnFootPos
[
x
]
;
foot
.
fPosition
[
1
]
+=
0.5f
;
hook
->
bitStream
->
ResetWritePointer
(
)
;
hook
->
bitStream
->
Write
(
(
BYTE
)
packetID
)
;
hook
->
bitStream
->
Write
(
(
PCHAR
)
&
foot
,
sizeof
(
stOnFootData
)
)
;
SendTakeDamageRPC
(
targetId
,
0
,
rand
(
)
%
3
+
1
)
;
}
return
true
;
}
|
|
|

18.03.2016, 22:23
|
|
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами:
6915558
Репутация:
183
|
|
Сообщение от AWRage
Можно ли получить клавишу, которая зажата. Пробовал getch(), GetKeyState(), без результата.
SF->getGame()->
|
|
|

20.03.2016, 14:39
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
как отправить сообщение на сервер без RPC
з.ы в клео можно было как-то.
|
|
|

20.03.2016, 15:00
|
|
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами:
6915558
Репутация:
183
|
|
Сообщение от Tray228
как отправить сообщение на сервер без RPC
з.ы в клео можно было как-то.
SF->getSAMP()->getPlayers()->pLocalPlayer->Say();
Что-то вроде
|
|
|

20.03.2016, 15:00
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Можно как-то узнать высоту форматированного текста? *pFont->Height не подойдет, так как оно возвращает высоту одной строки, а у меня текст форматированный, с переходом на новую строку.
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|