 |
|

29.10.2015, 09:16
|
|
Новичок
Регистрация: 06.10.2015
Сообщений: 25
С нами:
5581023
Репутация:
0
|
|
Сообщение от _Viktor_
Чет не компилит даже)
C++:
Код:
#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
bool
CALLBACK
cbug
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
PacketEnumeration
::
ID_BULLET_SYNC
)
{
float
x
=
PEDSELF
->
GetPosition
(
)
->
fX
;
float
y
=
PEDSELF
->
GetPosition
(
)
->
fY
;
float
z
=
PEDSELF
->
GetPosition
(
)
->
fZ
;
Sleep
(
50
)
;
PEDSELF
->
Teleport
(
x
,
y
,
z
)
;
}
return
;
}
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_OUTCOMING_PACKET
,
cbug
)
;
init
=
true
;
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
SF
->
initPlugin
(
mainloop
,
hModule
)
;
break
;
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}
PEDSELF->Teleport(x, y, z);
}
return 0;
}
|
|
|

29.10.2015, 09:17
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
Сообщение от _Viktor_
Чет не компилит даже)
C++:
Код:
#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
bool
CALLBACK
cbug
(
stRakNetHookParams
*
params
)
{
if
(
params
->
packetId
==
PacketEnumeration
::
ID_BULLET_SYNC
)
{
float
x
=
PEDSELF
->
GetPosition
(
)
->
fX
;
float
y
=
PEDSELF
->
GetPosition
(
)
->
fY
;
float
z
=
PEDSELF
->
GetPosition
(
)
->
fZ
;
Sleep
(
50
)
;
PEDSELF
->
Teleport
(
x
,
y
,
z
)
;
}
return
;
}
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_OUTCOMING_PACKET
,
cbug
)
;
init
=
true
;
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
SF
->
initPlugin
(
mainloop
,
hModule
)
;
break
;
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}
Потому что
Код:
твой нихуя не возвращает. TRUE или FALSE
|
|
|

29.10.2015, 16:59
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Таймер.
|
|
|

29.10.2015, 17:06
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
Сообщение от _Viktor_
пример можно?))
C++:
Код:
#pragma comment (lib, "user32.lib")
C++:
Код:
int
A
;
A
=
SetTimer
(
NULL
,
0
,
1000
,
(
TIMERPROC
)
Vax
)
;
void
Vax
(
)
{
KillTimer
(
NULL
,
A
)
;
}
Вроде так,хз
|
|
|

01.11.2015, 04:28
|
|
Постоянный
Регистрация: 27.12.2014
Сообщений: 550
С нами:
5987262
Репутация:
0
|
|
Сообщение от A.Tornerro
Вроде так,хз
C++:
Код:
#pragma comment (lib, "user32.lib")
C++:
Код:
uint Att
;
// хэндл таймера
Att
=
SetTimer
(
NULL
,
0
,
1000
,
(
TIMERPROC
)
&
Vax
)
;
void
__stdcall
Vax
(
HWND hwnd
,
UINT uMsg
,
UINT_PTR idEvent
,
DWORD dwTime
)
// не забывай делать соглашенный вызов потому что сет таймер из вин апи, а этот метод Vax будет коллбэком.
{
KillTimer
(
NULL
,
A
)
;
}
|
|
|

01.11.2015, 04:31
|
|
Постоянный
Регистрация: 27.12.2014
Сообщений: 550
С нами:
5987262
Репутация:
0
|
|
Nужно чекать нету ли препятствий между мной и другим педом при взгляде камеры как у клео опкода no obstacles between, но хз правильно ли.
C++:
Код:
CVector
*
vecStart
=
GAME
->
GetCamera
(
)
->
GetCam
(
GAME
->
GetCamera
(
)
->
GetActiveCam
(
)
)
->
GetFront
(
)
;
if
(
!
GAME
->
GetWorld
(
)
->
IsLineOfSightClear
(
vecStart
,
GAME
->
GetPools
(
)
->
GetPed
(
two
)
->
GetPosition
(
)
)
)
return
65535
;
где two - хендл нужного мне актёра
там нужен vecEnd(конечный вектор я так понял) я не знаю подходит ли простая позиция педа из того интерфейса, там хоть и тоже CVector тип как и параметр метода, но позиция то не вектор, вообщем запутался уже, хелп.
|
|
|

01.11.2015, 04:42
|
|
Постоянный
Регистрация: 27.12.2014
Сообщений: 550
С нами:
5987262
Репутация:
0
|
|
Сообщение от kemperrr
Придумал кто нить как эмулировать игровые клавиши?
SF->getGame()->emulateGTAKey(key, state); где кей это ид игровой клавиши, а state её состояние(нажатая/зажата)
|
|
|

01.11.2015, 08:19
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
Сообщение от 0pc0d3R
C++:
Код:
#pragma comment (lib, "user32.lib")
C++:
Код:
uint Att
;
// хэндл таймера
Att
=
SetTimer
(
NULL
,
0
,
1000
,
(
TIMERPROC
)
&
Vax
)
;
void
__stdcall
Vax
(
HWND hwnd
,
UINT uMsg
,
UINT_PTR idEvent
,
DWORD dwTime
)
// не забывай делать соглашенный вызов потому что сет таймер из вин апи, а этот метод Vax будет коллбэком.
{
KillTimer
(
NULL
,
A
)
;
}
Ну я так почти и делал
|
|
|

01.11.2015, 09:51
|
|
Участник форума
Регистрация: 04.02.2014
Сообщений: 104
С нами:
6456767
Репутация:
68
|
|
Сообщение от 0pc0d3R
SF->getGame()->emulateGTAKey(key, state); где кей это ид игровой клавиши, а state её состояние(нажатая/зажата)
Ты сам лично проверял эту функцию? Пробовал уже не раз, и с виртуальными клавишами, и с игровыми, статус нажатия тоже перебробовал разные, не работает, уже на протяжении 4 месяцев спрашиваю про альтернативу этой функции
|
|
|

01.11.2015, 15:26
|
|
Постоянный
Регистрация: 27.12.2014
Сообщений: 550
С нами:
5987262
Репутация:
0
|
|
Сообщение от kemperrr
Ты сам лично проверял эту функцию? Пробовал уже не раз, и с виртуальными клавишами, и с игровыми, статус нажатия тоже перебробовал разные, не работает, уже на протяжении 4 месяцев спрашиваю про альтернативу этой функции
а тогда хз, я не разу не юзил её, думал ты не знаешь про нее 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|