 |
|

20.12.2018, 16:03
|
|
Постоянный
Регистрация: 21.11.2014
Сообщений: 540
С нами:
6039222
Репутация:
163
|
|
Сообщение от beento
C++:
Код:
void
sendDialog
(
uint16_t
DialogId
,
uint8_t
Button
,
uint16_t
ListboxId
,
char
*
string
)
{
BitStream bs
;
bs
.
ResetWritePointer
(
)
;
bs
.
Write
(
DialogId
)
;
bs
.
Write
(
Button
)
;
bs
.
Write
(
ListboxId
)
;
bs
.
Write
(
strlen
(
string
)
)
;
bs
.
Write
(
string
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_DialogResponse
,
&
bs
)
;
}
C++:
Код:
void
sendDialog
(
short
id
,
char
button
,
short
listitem
,
const
char
*
input
)
{
BitStream bs
;
bs
.
ResetWritePointer
(
)
;
bs
.
Write
(
id
)
;
bs
.
Write
(
button
)
;
bs
.
Write
(
listitem
)
;
bs
.
Write
(
(
BYTE
)
strlen
(
input
)
)
;
bs
.
Write
(
input
,
strlen
(
input
)
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPCEnumeration
::
RPC_DialogResponse
,
&
bs
)
;
}
void
CALLBACK
log
(
std
::
string param
)
{
sendDialog
(
SF
->
getSAMP
(
)
->
getDialog
(
)
->
DialogID
,
1
,
0
,
param
.
c_str
(
)
)
;
}
|
|
|

21.12.2018, 14:43
|
|
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами:
4423953
Репутация:
68
|
|
как проверить что зажаты в раз две клавишы с помощью sf api?
если нельзя то как без него
|
|
|

21.12.2018, 15:01
|
|
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами:
6438231
Репутация:
133
|
|
Сообщение от beento
как проверить что зажаты в раз две клавишы с помощью sf api?
если нельзя то как без него
C++:
Код:
if
(
SF
->
getGAME
(
)
->
isKeyDown
(
VK_F2
)
&&
SF
->
getGAME
(
)
->
isKeyPressed
(
VK_F4
)
)
{
}
|
|
|

23.12.2018, 08:03
|
|
Новичок
Регистрация: 27.03.2018
Сообщений: 5
С нами:
4280222
Репутация:
0
|
|
Беда такого рода, при компиляции .sf плагина в листе ошибок около 2.6к, будто что-то не подключено, при открытии проекта внизу вот что:

|
|
|

23.12.2018, 10:28
|
|
Постоянный
Регистрация: 14.11.2017
Сообщений: 319
С нами:
4472205
Репутация:
163
|
|
Сообщение от strozzac
Беда такого рода, при компиляции .sf плагина в листе ошибок около 2.6к, будто что-то не подключено, при открытии проекта внизу вот что:
вы заебали уже скидывать эту ***ню сюда.
Выше отвечали миллион раз на это, + там русским языком написано в чём проблема
Сорян, крик души
|
|
|

23.12.2018, 18:21
|
|
Познавший АНТИЧАТ
Регистрация: 02.08.2018
Сообщений: 1,295
С нами:
4095395
Репутация:
183
|
|
imgui.
Всем привет, в общем пишу просто обычный вх для ксго с имгуи, но тут такая вот вещь... При нажатии на этот глаз, два глазка рендерятся на 1 мс. и пропадают, надеюсь нормально объяснил
C++:
Код:
#include "cInclude.h"
bool
Create
=
false
;
HRESULT APIENTRY
myPresent
(
IDirect3DDevice9
*
m_pDevice
,
CONST RECT
*
pSourceRect
,
CONST RECT
*
pDestRect
,
HWND hDestWindowOverride
,
CONST RGNDATA
*
pDirtyRegion
)
{
if
(
Create
==
false
)
{
ImGui_Init
(
hWnd
,
m_pDevice
)
;
Create
=
true
;
}
else
{
ImGui_NewFrame
(
)
;
if
(
bShowWindow
)
{
DWORD dwFlag
=
ImGuiWindowFlags_NoCollapse
|
ImGuiWindowFlags_ShowBorders
|
ImGuiWindowFlags_NoSavedSettings
;
ImGui
::
Begin
(
"legitXXX"
,
&
bShowWindow
,
ImVec2
(
243
,
200
)
,
1.0f
,
dwFlag
)
;
{
ImGui
::
Button
(
"A"
,
ImVec2
(
100.0f
,
30.0f
)
)
;
ImGui
::
SameLine
(
)
;
if
(
ImGui
::
Button
(
"D"
,
ImVec2
(
100.0f
,
30.0f
)
)
)
{
ImGui
::
RadioButton
(
"A"
,
true
)
;
ImGui
::
RadioButton
(
"A"
,
false
)
;
}
}
ImGui
::
End
(
)
;
}
ImGui
::
Render
(
)
;
}
return
oPresent
->
GetTrampoline
(
)
(
m_pDevice
,
pSourceRect
,
pDestRect
,
hDestWindowOverride
,
pDirtyRegion
)
;
}
HRESULT APIENTRY
myReset
(
IDirect3DDevice9
*
m_pDevice
,
D3DPRESENT_PARAMETERS
*
pPresentationParameters
)
{
if
(
!
Create
)
return
m_pDevice
->
Reset
(
pPresentationParameters
)
;
ImGui_InvalidateDeviceObjects
(
)
;
auto
result
=
oReset
->
GetTrampoline
(
)
(
m_pDevice
,
pPresentationParameters
)
;
ImGui_CreateDeviceObjects
(
)
;
return
result
;
}
bool
Init
(
)
{
bool
bResult
=
false
;
HMODULE hD3d9
=
NULL
;
if
(
hD3d9
=
GetModuleHandleA
(
"d3d9.dll"
)
)
{
using
oDirect3DCreate9Ex
=
HRESULT
(
WINAPI
*
)
(
UINT
,
IDirect3D9Ex
*
*
)
;
oDirect3DCreate9Ex pDirect3DCreate9Ex
=
(
oDirect3DCreate9Ex
)
GetProcAddress
(
hD3d9
,
"Direct3DCreate9Ex"
)
;
if
(
pDirect3DCreate9Ex
)
{
HRESULT hr
=
D3D_OK
;
LPDIRECT3D9EX d3d9ex
=
nullptr
;
if
(
SUCCEEDED
(
hr
=
pDirect3DCreate9Ex
(
D3D_SDK_VERSION
,
&
d3d9ex
)
)
)
{
D3DPRESENT_PARAMETERS dp
;
ZeroMemory
(
&
dp
,
sizeof
(
dp
)
)
;
dp
.
Windowed
=
1
;
dp
.
SwapEffect
=
D3DSWAPEFFECT_FLIP
;
dp
.
BackBufferFormat
=
D3DFMT_A8R8G8B8
;
dp
.
BackBufferCount
=
1
;
dp
.
PresentationInterval
=
D3DPRESENT_INTERVAL_IMMEDIATE
;
IDirect3DDevice9Ex
*
mDevice
=
nullptr
;
if
(
SUCCEEDED
(
hr
=
d3d9ex
->
CreateDeviceEx
(
D3DADAPTER_DEFAULT
,
D3DDEVTYPE_NULLREF
,
NULL
,
D3DCREATE_HARDWARE_VERTEXPROCESSING
,
&
dp
,
NULL
,
&
mDevice
)
)
)
{
bResult
=
true
;
PVOID
*
vtbl
=
*
reinterpret_cast
(
mDevice
)
;
auto
&
pContext
=
cContext
::
GetInstance
(
)
;
pContext
.
ApplyDetour
(
static_cast
(
vtbl
[
17
]
)
,
reinterpret_cast
(
myPresent
)
,
&
oPresent
)
;
pContext
.
ApplyDetour
(
static_cast
(
vtbl
[
16
]
)
,
reinterpret_cast
(
myReset
)
,
&
oReset
)
;
mDevice
->
Release
(
)
;
}
d3d9ex
->
Release
(
)
;
}
}
}
return
bResult
;
}
unsigned
WINAPI
GUIDX
(
LPVOID lpParam
)
{
hWnd
=
FindWindowA
(
NULL
,
"D3D9 Test"
)
;
if
(
hWnd
)
m_pWindowProc
=
(
WNDPROC
)
SetWindowLongPtr
(
hWnd
,
GWL_WNDPROC
,
(
LONG_PTR
)
myWndProc
)
;
while
(
!
Init
(
)
)
Sleep
(
200
)
;
return
0L
;
}
BOOL APIENTRY
DllMain
(
_In_ HINSTANCE hinstDLL
,
_In_ DWORD fdwReason
,
_In_ LPVOID lpvReserved
)
{
DisableThreadLibraryCalls
(
hinstDLL
)
;
switch
(
fdwReason
)
{
case
DLL_PROCESS_ATTACH
:
{
_beginthreadex
(
NULL
,
NULL
,
GUIDX
,
NULL
,
NULL
,
NULL
)
;
}
break
;
case
DLL_THREAD_ATTACH
:
break
;
case
DLL_THREAD_DETACH
:
break
;
case
DLL_PROCESS_DETACH
:
SetWindowLongPtr
(
hWnd
,
GWL_WNDPROC
,
(
LONG_PTR
)
m_pWindowProc
)
;
break
;
}
return
TRUE
;
}
ss:
вот это выглядывает и резко пропадает:

|
|
|

23.12.2018, 18:27
|
|
Флудер
Регистрация: 03.08.2016
Сообщений: 2,363
С нами:
5145387
Репутация:
183
|
|
Сообщение от DARKed
C++:
Код:
if
(
ImGui
::
Button
(
"D"
,
ImVec2
(
100.0f
,
30.0f
)
)
)
{
ImGui
::
RadioButton
(
"A"
,
true
)
;
ImGui
::
RadioButton
(
"A"
,
false
)
;
}
C++:
Код:
bool
Active
=
false
;
// возле bool Create
if
(
ImGui
::
Button
(
"D"
,
ImVec2
(
100.0f
,
30.0f
)
)
)
Active
^=
true
;
if
(
Active
)
{
ImGui
::
RadioButton
(
"A"
,
true
)
;
ImGui
::
RadioButton
(
"A"
,
false
)
;
}
|
|
|

23.12.2018, 19:42
|
|
Участник форума
Регистрация: 14.01.2018
Сообщений: 192
С нами:
4384333
Репутация:
113
|
|
Как получить объект по его ID?
|
|
|

23.12.2018, 20:11
|
|
Познавший АНТИЧАТ
Регистрация: 02.08.2018
Сообщений: 1,295
С нами:
4095395
Репутация:
183
|
|
может кто объяснить как работать с checkbox`ами? хочу сделать примерно так: чекбокс он то "моя фнука", если чекбокс офф то "моя функа офф". и ещё, как выровнять этот текст возле чекбокса? p.s checkbox от пасты индиго
C++:
Код:
#include "cInclude.h"
bool
Create
=
false
;
bool
Active
=
false
;
HRESULT APIENTRY
myPresent
(
IDirect3DDevice9
*
m_pDevice
,
CONST RECT
*
pSourceRect
,
CONST RECT
*
pDestRect
,
HWND hDestWindowOverride
,
CONST RGNDATA
*
pDirtyRegion
)
{
if
(
Create
==
false
)
{
ImGui_Init
(
hWnd
,
m_pDevice
)
;
Create
=
true
;
}
else
{
ImGui_NewFrame
(
)
;
if
(
bShowWindow
)
{
DWORD dwFlag
=
ImGuiWindowFlags_NoCollapse
|
ImGuiWindowFlags_ShowBorders
|
ImGuiWindowFlags_NoSavedSettings
;
ImGui
::
Begin
(
"legitXXX"
,
&
bShowWindow
,
ImVec2
(
243
,
200
)
,
1.0f
,
dwFlag
)
;
{
ImGui
::
Button
(
"A"
,
ImVec2
(
100.0f
,
30.0f
)
)
;
ImGui
::
SameLine
(
)
;
if
(
ImGui
::
Button
(
"D"
,
ImVec2
(
100.0f
,
30.0f
)
)
)
Active
^=
true
;
if
(
Active
)
{
static
bool
check
=
true
;
if
(
ImGui
::
Checkbox
(
"A"
,
&
check
)
)
{
static
bool
check
=
false
;
}
}
}
ImGui
::
End
(
)
;
}
ImGui
::
Render
(
)
;
}
return
oPresent
->
GetTrampoline
(
)
(
m_pDevice
,
pSourceRect
,
pDestRect
,
hDestWindowOverride
,
pDirtyRegion
)
;
}
HRESULT APIENTRY
myReset
(
IDirect3DDevice9
*
m_pDevice
,
D3DPRESENT_PARAMETERS
*
pPresentationParameters
)
{
if
(
!
Create
)
return
m_pDevice
->
Reset
(
pPresentationParameters
)
;
ImGui_InvalidateDeviceObjects
(
)
;
auto
result
=
oReset
->
GetTrampoline
(
)
(
m_pDevice
,
pPresentationParameters
)
;
ImGui_CreateDeviceObjects
(
)
;
return
result
;
}
bool
Init
(
)
{
bool
bResult
=
false
;
HMODULE hD3d9
=
NULL
;
if
(
hD3d9
=
GetModuleHandleA
(
"d3d9.dll"
)
)
{
using
oDirect3DCreate9Ex
=
HRESULT
(
WINAPI
*
)
(
UINT
,
IDirect3D9Ex
*
*
)
;
oDirect3DCreate9Ex pDirect3DCreate9Ex
=
(
oDirect3DCreate9Ex
)
GetProcAddress
(
hD3d9
,
"Direct3DCreate9Ex"
)
;
if
(
pDirect3DCreate9Ex
)
{
HRESULT hr
=
D3D_OK
;
LPDIRECT3D9EX d3d9ex
=
nullptr
;
if
(
SUCCEEDED
(
hr
=
pDirect3DCreate9Ex
(
D3D_SDK_VERSION
,
&
d3d9ex
)
)
)
{
D3DPRESENT_PARAMETERS dp
;
ZeroMemory
(
&
dp
,
sizeof
(
dp
)
)
;
dp
.
Windowed
=
1
;
dp
.
SwapEffect
=
D3DSWAPEFFECT_FLIP
;
dp
.
BackBufferFormat
=
D3DFMT_A8R8G8B8
;
dp
.
BackBufferCount
=
1
;
dp
.
PresentationInterval
=
D3DPRESENT_INTERVAL_IMMEDIATE
;
IDirect3DDevice9Ex
*
mDevice
=
nullptr
;
if
(
SUCCEEDED
(
hr
=
d3d9ex
->
CreateDeviceEx
(
D3DADAPTER_DEFAULT
,
D3DDEVTYPE_NULLREF
,
NULL
,
D3DCREATE_HARDWARE_VERTEXPROCESSING
,
&
dp
,
NULL
,
&
mDevice
)
)
)
{
bResult
=
true
;
PVOID
*
vtbl
=
*
reinterpret_cast
(
mDevice
)
;
auto
&
pContext
=
cContext
::
GetInstance
(
)
;
pContext
.
ApplyDetour
(
static_cast
(
vtbl
[
17
]
)
,
reinterpret_cast
(
myPresent
)
,
&
oPresent
)
;
pContext
.
ApplyDetour
(
static_cast
(
vtbl
[
16
]
)
,
reinterpret_cast
(
myReset
)
,
&
oReset
)
;
mDevice
->
Release
(
)
;
}
d3d9ex
->
Release
(
)
;
}
}
}
return
bResult
;
}
unsigned
WINAPI
GUIDX
(
LPVOID lpParam
)
{
hWnd
=
FindWindowA
(
NULL
,
"D3D9 Test"
)
;
if
(
hWnd
)
m_pWindowProc
=
(
WNDPROC
)
SetWindowLongPtr
(
hWnd
,
GWL_WNDPROC
,
(
LONG_PTR
)
myWndProc
)
;
while
(
!
Init
(
)
)
Sleep
(
200
)
;
return
0L
;
}
BOOL APIENTRY
DllMain
(
_In_ HINSTANCE hinstDLL
,
_In_ DWORD fdwReason
,
_In_ LPVOID lpvReserved
)
{
DisableThreadLibraryCalls
(
hinstDLL
)
;
switch
(
fdwReason
)
{
case
DLL_PROCESS_ATTACH
:
{
_beginthreadex
(
NULL
,
NULL
,
GUIDX
,
NULL
,
NULL
,
NULL
)
;
}
break
;
case
DLL_THREAD_ATTACH
:
break
;
case
DLL_THREAD_DETACH
:
break
;
case
DLL_PROCESS_DETACH
:
SetWindowLongPtr
(
hWnd
,
GWL_WNDPROC
,
(
LONG_PTR
)
m_pWindowProc
)
;
break
;
}
return
TRUE
;
}
|
|
|

24.12.2018, 18:27
|
|
Участник форума
Регистрация: 12.10.2014
Сообщений: 156
С нами:
6096955
Репутация:
78
|
|
не работает хук)
SF->getSAMP()->registerDialogCallback(DialogCallback);
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|