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

  #1  
Старый 12.09.2018, 11:11
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

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

как изменить текст уже отрендеренного текста?
 
Ответить с цитированием

  #2  
Старый 12.09.2018, 11:33
Roger571
Познающий
Регистрация: 22.07.2015
Сообщений: 58
С нами: 5689694

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

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

как изменить текст уже отрендеренного текста?
Смотря какого текста.

Если игрового, то через память.

А через д3д хук - сам решаешь, шо рендерить.

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

я уже отрендерил текст через д3д, как мне изменить текст на другой?
Ты можешь изменять данные каждый раз при вызове proxyIDirect3DDevice9::Present

Можешь посмотреть, как это реализовано в собейте.
 
Ответить с цитированием

  #3  
Старый 12.09.2018, 17:01
_Vine_
Участник форума
Регистрация: 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 становится недоступным, тк он находится в самом плагине, который был выгружен. Ну, и, собственно, из за этого и происходит краш. Как исправить не знаю, может кто подскажет?
 
Ответить с цитированием

  #4  
Старый 13.09.2018, 16:49
Неадекватная сова
Постоянный
Регистрация: 02.06.2018
Сообщений: 342
С нами: 4183567

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

Как убрать progressbar голода и аналогично, как получить текущее состояние голода?
 
Ответить с цитированием

  #5  
Старый 16.09.2018, 21:57
ШPEK
Познавший АНТИЧАТ
Регистрация: 22.02.2017
Сообщений: 1,474
С нами: 4852492

Репутация: 88


По умолчанию

Lua:





Код:
local
talb
=
{
hhh
=
"huy"
,
dd
=
"pd"
}


Как сделать такой-же массив в c++?
 
Ответить с цитированием

  #6  
Старый 16.09.2018, 22:01
#Rin
Познавший АНТИЧАТ
Регистрация: 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"
}
;
 
Ответить с цитированием

  #7  
Старый 16.09.2018, 22:07
SR_team
Флудер
Регистрация: 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++:





Код:
talb_t talb
;


Далее можно юзать

Код:





Код:
SF->Log(talb.hhh);
talb.dd = "new dd";
 
Ответить с цитированием

  #8  
Старый 20.09.2018, 19:01
ШPEK
Познавший АНТИЧАТ
Регистрация: 22.02.2017
Сообщений: 1,474
С нами: 4852492

Репутация: 88


По умолчанию

Как взять код с сайта как в F12?
 
Ответить с цитированием

  #9  
Старый 23.09.2018, 14:51
-raymond-
Участник форума
Регистрация: 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
)
;
 
Ответить с цитированием

  #10  
Старый 23.09.2018, 18:56
Roger571
Познающий
Регистрация: 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)
 


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




ANTICHAT ™ © 2001- Antichat Kft.