
12.09.2018, 11:11
|
|
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами:
4423953
Репутация:
68
|
|
как изменить текст уже отрендеренного текста?
|
|
|

12.09.2018, 11:33
|
|
Познающий
Регистрация: 22.07.2015
Сообщений: 58
С нами:
5689694
Репутация:
68
|
|
Сообщение от beento
как изменить текст уже отрендеренного текста?
Смотря какого текста.
Если игрового, то через память.
А через д3д хук - сам решаешь, шо рендерить.
Сообщение от beento
я уже отрендерил текст через д3д, как мне изменить текст на другой?
Ты можешь изменять данные каждый раз при вызове proxyIDirect3DDevice9::Present
Можешь посмотреть, как это реализовано в собейте.
|
|
|

12.09.2018, 17:01
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Сообщение от Rinat_Namazov
Может можно выделить память (Чтобы при выгрузке функция осталось в процессе), записать туда функцию WndProc которая вызывает следующий WndProc, что бы не сломать очередь?
Тоже об этом думал, но столкнулся с рядом проблем.
1) Не совсем уверен, правильно ли создаю функцию в динамической памяти, может быть есть более правильный способ?
C++:
Код:
void
func
(
)
{
// code
}
int
main
(
)
{
LPVOID memory
=
VirtualAlloc
(
0
,
/* Размер функции в байтах */
,
MEM_COMMIT
,
PAGE_EXECUTE_READWRITE
)
;
DWORD oldProtect
;
VirtualProtect
(
func
,
/* Размер функции*/
,
PAGE_EXECUTE_READWRITE
,
&
oldProtect
)
;
memcpy
(
memory
,
func
,
/* Размер функции */
)
;
VirtualProtect
(
func
,
/* Размер функции */
,
oldProtect
,
0
)
;
// memory - указатель на копию функции func в динамической памяти
}
2) С выделением функции и ее вызовом проблем нет, до выгрузки плагина из игры.
После выгрузки плагина из игры при первом вызове WNDPROC происходит краш.
То есть, если выгрузить плагин, и ничего не делать(не двигать курсор, не нажимать клавиши на клавиатуре), то краша, пока, не будет, до тех пор пока что то не начать делать.
Указатель на оригинальный WNDPROC выделяю динамически, сообщение в чат вовсе убрал.
Смотрел в отладчике, после выгрузки плагина указатель на указатель на оригинальный WNDPROC становится недоступным, тк он находится в самом плагине, который был выгружен. Ну, и, собственно, из за этого и происходит краш. Как исправить не знаю, может кто подскажет?
|
|
|

13.09.2018, 16:49
|
|
Постоянный
Регистрация: 02.06.2018
Сообщений: 342
С нами:
4183567
Репутация:
133
|
|
Как убрать progressbar голода и аналогично, как получить текущее состояние голода?
|
|
|

16.09.2018, 21:57
|
|
Познавший АНТИЧАТ
Регистрация: 22.02.2017
Сообщений: 1,474
С нами:
4852492
Репутация:
88
|
|
Lua:
Код:
local
talb
=
{
hhh
=
"huy"
,
dd
=
"pd"
}
Как сделать такой-же массив в c++?
|
|
|

16.09.2018, 22:01
|
|
Познавший АНТИЧАТ
Регистрация: 09.08.2015
Сообщений: 1,213
С нами:
5663255
Репутация:
183
|
|
Сообщение от mr.krabs
Lua:
Код:
local
talb
=
{
hhh
=
"huy"
,
dd
=
"pd"
}
Как сделать такой-же массив в c++?
C++:
Код:
typedef
struct
{
char
*
Name
;
char
*
Subname
;
}
NickNamesTable
;
NickNamesTable NickNames
=
{
"Rinat"
,
"Namazov"
}
;
Ну а если пофиг на index:
C++:
Код:
char
*
NickNames
[
]
=
{
"Rinat"
,
"Namazov"
}
;
|
|
|

16.09.2018, 22:07
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от mr.krabs
Lua:
Код:
local
talb
=
{
hhh
=
"huy"
,
dd
=
"pd"
}
Как сделать такой-же массив в c++?
C++:
Код:
struct
talb_t
{
std
::
string hhh
=
"huy"
;
std
::
string dd
=
"pd"
;
}
;
Это просто структура, что бы к ней обращаться нужно еще и переменную создать
C++:
Далее можно юзать
Код:
Код:
SF->Log(talb.hhh);
talb.dd = "new dd";
|
|
|

20.09.2018, 19:01
|
|
Познавший АНТИЧАТ
Регистрация: 22.02.2017
Сообщений: 1,474
С нами:
4852492
Репутация:
88
|
|
Как взять код с сайта как в F12?
|
|
|

23.09.2018, 14:51
|
|
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами:
4423953
Репутация:
68
|
|
не могу понять что значат параметр bs.Write(true);, и bs.Write(3);
C++:
Код:
BitStream bs
;
bs
.
Write
(
true
)
;
bs
.
Write
(
TargetID
)
;
bs
.
Write
(
(
float
)
damage
)
;
bs
.
Write
(
weapon_id
)
;
bs
.
Write
(
3
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_GiveTakeDamage
,
&
bs
)
;
|
|
|

23.09.2018, 18:56
|
|
Познающий
Регистрация: 22.07.2015
Сообщений: 58
С нами:
5689694
Репутация:
68
|
|
Сообщение от beento
не могу понять что значат параметр bs.Write(true);, и bs.Write(3);
C++:
Код:
BitStream bs
;
bs
.
Write
(
true
)
;
bs
.
Write
(
TargetID
)
;
bs
.
Write
(
(
float
)
damage
)
;
bs
.
Write
(
weapon_id
)
;
bs
.
Write
(
3
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_GiveTakeDamage
,
&
bs
)
;
Посмотри структуру GiveTakeGamage, клац
True - булево значение, говорит о получении урона.
3 - идентификатор кости скелета.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|