 |
|

24.04.2018, 20:17
|
|
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами:
8654409
Репутация:
0
|
|
Сообщение от ๖ۣۣۜШурик
Может кто помочь с подключением ImGui последней версии? Пользовался данным проектом, но тут большинства функций нет.
Актуально, нужна помощь 
|
|
|

24.04.2018, 20:32
|
|
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами:
6908018
Репутация:
213
|
|
Сообщение от ๖ۣۣۜШурик
Актуально, нужна помощь
Хукаешь present, reset,wnd_proc.
Если ты это хочешь сделать с помощью SF, то регаешь callback на present,reset.
Проводишь инициализацию в present с помощь imgui_init,в ресет добавляешь перезагрузку, в wndproc ImGui_ImplDX9_WndProcHandler.
В проекте достаточно, что бы все это сделать.
|
|
|

25.04.2018, 15:02
|
|
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами:
8654409
Репутация:
0
|
|
В чём проблема? Не грузит весь список (1-2 элемента только)
C++:
Код:
static
int
fraction_current
=
fraction
;
const
char
*
fractionList
[
]
=
{
to_utf8
(
"Не выбрано"
)
.
c_str
(
)
,
to_utf8
(
"Полиция г.Los-Santos"
)
.
c_str
(
)
,
to_utf8
(
"Полиция г.San-Fierro"
)
.
c_str
(
)
,
to_utf8
(
"Полиция г.Las-Venturas"
)
.
c_str
(
)
,
to_utf8
(
"Федеральное Бюро Расследований"
)
.
c_str
(
)
}
;
if
(
ImGui
::
Combo
(
"fraction"
,
&
fraction_current
,
fractionList
,
IM_ARRAYSIZE
(
fractionList
)
)
)
fraction
=
fraction_current
;
|
|
|

27.04.2018, 23:55
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Сообщение от ๖ۣۣۜШурик
В чём проблема? Не грузит весь список (1-2 элемента только)
C++:
Код:
static
int
fraction_current
=
fraction
;
const
char
*
fractionList
[
]
=
{
to_utf8
(
"Не выбрано"
)
.
c_str
(
)
,
to_utf8
(
"Полиция г.Los-Santos"
)
.
c_str
(
)
,
to_utf8
(
"Полиция г.San-Fierro"
)
.
c_str
(
)
,
to_utf8
(
"Полиция г.Las-Venturas"
)
.
c_str
(
)
,
to_utf8
(
"Федеральное Бюро Расследований"
)
.
c_str
(
)
}
;
if
(
ImGui
::
Combo
(
"fraction"
,
&
fraction_current
,
fractionList
,
IM_ARRAYSIZE
(
fractionList
)
)
)
fraction
=
fraction_current
;
ocornut/imgui(https://github.com/ocornut/imgui/blob/master/imgui_demo.cpp)
В imgui_demo.cpp с помощью поиска ищещь Imgui::Combo и смотришь как правильно его юзать.
Сообщение от CleanLegend
Хукаешь present, reset,wnd_proc.
Если ты это хочешь сделать с помощью SF, то регаешь callback на present,reset.
Проводишь инициализацию в present с помощь imgui_init,в ресет добавляешь перезагрузку, в wndproc ImGui_ImplDX9_WndProcHandler.
В проекте достаточно, что бы все это сделать.
Делал такую штуку без СФ апи, проблема в том, что если в игру будет загружено два плагина с подрбным хуком пресент и ресет - краш.
Хук через виртуальную таблицу методов. С чем может быть связан краш, как исправить?
И еще, можно ли искать d3dDevice гташки с помощью сигнатуры?(не надо писать, что есть статик. Указатель)
Сигратура будет работаь в разных версиях гта, отличается ли сигнатура в одиночной игре и в сампе?
|
|
|

28.04.2018, 19:27
|
|
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами:
8654409
Репутация:
0
|
|
Изначально делал строго по примеру и не получалось, вот и обратился сюда.
|
|
|

28.04.2018, 19:59
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Сообщение от ๖ۣۣۜШурик
Изначально делал строго по примеру и не получалось, вот и обратился сюда.
C++:
Код:
static
int
fraction_current
=
0
;
const
char
*
list
=
{
u8
"Не выбрано\0"
u8
"Полиция г.Los-Santos\0"
u8
"Полиция г.San-Fierro\0"
u8
"Полиция г.Las-Venturas\0"
u8
"Федеральное Бюро Расследований\0"
}
;
ImGui
::
Combo
(
u8
"Фракция"
,
&
fraction_current
,
list
,
sizeof
(
list
)
)
;
|
|
|

28.04.2018, 21:18
|
|
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами:
6908018
Репутация:
213
|
|
Сообщение от _Vine_
Делал такую штуку без СФ апи, проблема в том, что если в игру будет загружено два плагина с подрбным хуком пресент и ресет - краш.
Хук через виртуальную таблицу методов. С чем может быть связан краш, как исправить?
И еще, можно ли искать d3dDevice гташки с помощью сигнатуры?(не надо писать, что есть статик. Указатель)
Сигратура будет работаь в разных версиях гта, отличается ли сигнатура в одиночной игре и в сампе?
Попробуй другой метод хука. Насчет поиска device, можешь посмотреть как в собейте это реализуется или через findpattern
|
|
|

28.04.2018, 22:00
|
|
Участник форума
Регистрация: 27.05.2016
Сообщений: 223
С нами:
5242744
Репутация:
83
|
|
Решил перевести из lua в с++
C:
Код:
#include
#include
#include
using namespace std
;
DWORD pid
;
DWORD ped
=
0xb6f5f0
;
DWORD p_target
;
DWORD p_player
;
DWORD test
;
DWORD intS
;
int
main
(
)
{
HWND hWnd
=
FindWindowA
(
0
,
"GTA:SA:MP"
)
;
GetWindowThreadProcessId
(
hWnd
,
&
pid
)
;
HANDLE pHandle
=
OpenProcess
(
PROCESS_VM_READ
,
FALSE
,
pid
)
;
HANDLE pwHandle
=
OpenProcess
(
PROCESS_VM_WRITE
,
FALSE
,
pid
)
;
//ReadProcessMemory(pHandle, (LPVOID)0xb6f5f0, &p_player, 4, 0);
while
(
true
)
{
Sleep
(
500
)
;
ReadProcessMemory
(
pHandle
,
(
LPVOID
)
(
0xB6F3B8
)
,
&
p_player
,
4
,
0
)
;
p_player
=
p_player
+
0x79C
;
ReadProcessMemory
(
pHandle
,
(
LPVOID
)
p_player
,
&
intS
,
4
,
0
)
;
if
(
intS
>
0
)
{
DWORD lol
=
0xB73458
;
lol
=
lol
+
34
;
int
temp
=
255
;
WriteProcessMemory
(
pwHandle
,
(
LPVOID
)
lol
,
&
temp
,
4
,
0
)
;
Sleep
(
100
)
;
DWORD inet
;
ReadProcessMemory
(
pHandle
,
(
LPVOID
)
0xB6F3B8
,
&
inet
,
4
,
0
)
;
inet
=
inet
+
0x79C
;
DWORD temp2
=
0
;
WriteProcessMemory
(
pwHandle
,
(
LPVOID
)
inet
,
&
temp2
,
4
,
0
)
;
}
}
return
0
;
}
Из этого
Lua:
Код:
script_name
(
"Trigger Bot"
)
script_author
(
"iTz_WEEZY"
)
script_dependencies
(
"SAMP"
)
require
"lib.moonloader"
local
trigger
=
false
function
main
(
)
if
not
isSampLoaded
(
)
and
isSampAvailable
(
)
then
return
end
sampRegisterChatCommand
(
"trigger"
,
activ
)
while
true
do
wait
(
0
)
if
trigger
and
not
isCharOnAnyBike
(
playerPed
)
and
not
isCharDead
(
playerPed
)
then
local
int
=
readMemory
(
0xB6F3B8
,
4
,
0
)
int
=
int
+
0x79C
local
intS
=
readMemory
(
int
,
4
,
0
)
if
intS
>
0
then
local
lol
=
0xB73458
lol
=
lol
+
34
writeMemory
(
lol
,
4
,
255
,
0
)
wait
(
100
)
local
int
=
readMemory
(
0xB6F3B8
,
4
,
0
)
int
=
int
+
0x79C
writeMemory
(
int
,
4
,
0
,
0
)
end
end
end
end
function
activ
(
)
if
trigger
then
trigger
=
false
else
trigger
=
true
end
end
Что я делаю не так?
|
|
|

29.04.2018, 12:02
|
|
Новичок
Регистрация: 06.03.2008
Сообщений: 19
С нами:
9569033
Репутация:
8
|
|
Есть ли в SAMPFUNCS, что-то по типу такого
|
|
|

29.04.2018, 15:41
|
|
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами:
6438231
Репутация:
133
|
|
Сообщение от Ed1k
Есть ли в SAMPFUNCS, что-то по типу такого
C++:
Код:
void
GameText
(
const
char
*
szText
,
int
iTime
,
signed
int
iStyle
)
{
typedef
void
(
__stdcall
*
GameText_t
)
(
const
char
*
,
int
,
signed
int
)
;
GameText_t pGameText
=
(
GameText_t
)
(
g_dwSAMP
+
0x9C2C0
)
;
return
pGameText
(
szText
,
iTime
,
iStyle
)
;
}
using
:
GameText
(
"~r~my text!"
,
1000
,
5
)
;
Сообщение от AndreyS
Решил перевести из lua в с++
C:
Код:
#include
#include
#include
using namespace std
;
DWORD pid
;
DWORD ped
=
0xb6f5f0
;
DWORD p_target
;
DWORD p_player
;
DWORD test
;
DWORD intS
;
int
main
(
)
{
HWND hWnd
=
FindWindowA
(
0
,
"GTA:SA:MP"
)
;
GetWindowThreadProcessId
(
hWnd
,
&
pid
)
;
HANDLE pHandle
=
OpenProcess
(
PROCESS_VM_READ
,
FALSE
,
pid
)
;
HANDLE pwHandle
=
OpenProcess
(
PROCESS_VM_WRITE
,
FALSE
,
pid
)
;
//ReadProcessMemory(pHandle, (LPVOID)0xb6f5f0, &p_player, 4, 0);
while
(
true
)
{
Sleep
(
500
)
;
ReadProcessMemory
(
pHandle
,
(
LPVOID
)
(
0xB6F3B8
)
,
&
p_player
,
4
,
0
)
;
p_player
=
p_player
+
0x79C
;
ReadProcessMemory
(
pHandle
,
(
LPVOID
)
p_player
,
&
intS
,
4
,
0
)
;
if
(
intS
>
0
)
{
DWORD lol
=
0xB73458
;
lol
=
lol
+
34
;
int
temp
=
255
;
WriteProcessMemory
(
pwHandle
,
(
LPVOID
)
lol
,
&
temp
,
4
,
0
)
;
Sleep
(
100
)
;
DWORD inet
;
ReadProcessMemory
(
pHandle
,
(
LPVOID
)
0xB6F3B8
,
&
inet
,
4
,
0
)
;
inet
=
inet
+
0x79C
;
DWORD temp2
=
0
;
WriteProcessMemory
(
pwHandle
,
(
LPVOID
)
inet
,
&
temp2
,
4
,
0
)
;
}
}
return
0
;
}
Из этого
Lua:
Код:
script_name
(
"Trigger Bot"
)
script_author
(
"iTz_WEEZY"
)
script_dependencies
(
"SAMP"
)
require
"lib.moonloader"
local
trigger
=
false
function
main
(
)
if
not
isSampLoaded
(
)
and
isSampAvailable
(
)
then
return
end
sampRegisterChatCommand
(
"trigger"
,
activ
)
while
true
do
wait
(
0
)
if
trigger
and
not
isCharOnAnyBike
(
playerPed
)
and
not
isCharDead
(
playerPed
)
then
local
int
=
readMemory
(
0xB6F3B8
,
4
,
0
)
int
=
int
+
0x79C
local
intS
=
readMemory
(
int
,
4
,
0
)
if
intS
>
0
then
local
lol
=
0xB73458
lol
=
lol
+
34
writeMemory
(
lol
,
4
,
255
,
0
)
wait
(
100
)
local
int
=
readMemory
(
0xB6F3B8
,
4
,
0
)
int
=
int
+
0x79C
writeMemory
(
int
,
4
,
0
,
0
)
end
end
end
end
function
activ
(
)
if
trigger
then
trigger
=
false
else
trigger
=
true
end
end
Что я делаю не так?
А что происходит , можно подробнее? у тебя цикл раз в пол секунды идет. Может из за этого и не видишь результата.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|