
23.05.2016, 02:53
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от Frixen
Как правильно юзать таймер, чтобы после нажатия клавиши допустим F8 пошел отсчет, а после 5 секунд произошло какое-нибудь действие.
C++:
Код:
static
DWORD timer
=
0
;
void
mainloop
(
)
{
if
{
!
init
}
{
}
if
(
GetTickCount
-
timer
>
5000
)
{
SF
->
log
(
"Таймер работает раз в 5 секунд"
)
;
timer
=
GetTickCount
(
)
;
}
}
Пробовал делать так, но он срабатывает сразу и потом каждые 5 секунд
Добавить буллевую переменную
|
|
|

23.05.2016, 08:14
|
|
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами:
6755146
Репутация:
78
|
|
Сообщение от Frixen
Как правильно юзать таймер, чтобы после нажатия клавиши допустим F8 пошел отсчет, а после 5 секунд произошло какое-нибудь действие.
C++:
Код:
static
DWORD timer
=
0
;
void
mainloop
(
)
{
if
{
!
init
}
{
}
if
(
GetTickCount
-
timer
>
5000
)
{
SF
->
log
(
"Таймер работает раз в 5 секунд"
)
;
timer
=
GetTickCount
(
)
;
}
}
Пробовал делать так, но он срабатывает сразу и потом каждые 5 секунд
C++:
Код:
static
bool
init
,
screen
;
static
DWORD timer
=
0
;
/*
code
*/
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
119
)
)
//разница KeyDown и KeyPressed, в том что Pressed 1 раз выполнит код когда ты нажмешь на клавишу, а KeyDown всегда пока кнопка нажата
{
stServerPresets
*
setting
=
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pSettings
;
if
(
setting
->
byteNoNametagsBehindWalls
==
1
)
{
setting
->
byteNoNametagsBehindWalls
=
0
;
screen
=
true
;
timer
=
GetTickCount
(
)
;
}
}
if
(
(
GetTickCount
(
)
-
timer
>
1500
)
&&
screen
)
{
stServerPresets
*
setting
=
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pSettings
;
if
(
setting
->
byteNoNametagsBehindWalls
==
0
)
{
setting
->
byteNoNametagsBehindWalls
=
1
;
screen
=
false
;
}
}
|
|
|

23.05.2016, 12:31
|
|
Участник форума
Регистрация: 21.06.2013
Сообщений: 131
С нами:
6785172
Репутация:
68
|
|
Добрые люди, может у кого есть код аймбота обычного под SF??
|
|
|

23.05.2016, 18:15
|
|
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами:
6755146
Репутация:
78
|
|
Сообщение от Frixen
Добрые люди, может у кого есть код аймбота обычного под SF??
Тут не под сф конечно, но работать и в сф плагине будет. Если нужно будет, сам переведешь под сф там не сложно
C++:
Код:
#define CAMERA_X *(float *)0xB6F258
DWORD
*
pActor
=
(
DWORD
*
)
0xB6F5F0
;
if
(
*
pActor
>
0
)
{
if
(
GetAsyncKeyState
(
0x01
)
)
// можешь заменить на SF->getGame()->isKeyPressed(0x01)
{
DWORD
*
pTarget
=
(
DWORD
*
)
0xB6F3B8
;
DWORD
*
pPed
=
(
DWORD
*
)
(
(
*
pTarget
)
+
0x79C
)
;
if
(
*
pPed
>
0
)
{
float
mult1
=
35.0f
;
float
mult2
=
17.0f
;
mult2
/=
360.0f
;
DWORD
*
vPos
=
(
DWORD
*
)
(
(
*
pPed
)
+
0x14
)
;
CVector vecSpeed
=
*
(
CVector
*
)
(
(
*
pPed
)
+
0x44
)
;
vecSpeed
.
fX
*=
mult2
;
vecSpeed
.
fY
*=
mult2
;
vecSpeed
.
fZ
*=
mult2
;
vecSpeed
.
fX
*=
mult1
;
vecSpeed
.
fY
*=
mult1
;
vecSpeed
.
fZ
*=
mult1
;
CVector vecPos
;
vecPos
.
fX
=
*
(
float
*
)
(
*
vPos
+
0x30
)
;
vecPos
.
fY
=
*
(
float
*
)
(
*
vPos
+
0x34
)
;
vecPos
.
fZ
=
*
(
float
*
)
(
*
vPos
+
0x38
)
;
vecPos
.
fX
+=
vecSpeed
.
fX
;
vecPos
.
fY
+=
vecSpeed
.
fY
;
vecPos
.
fZ
+=
vecSpeed
.
fZ
;
CVector newVecPos
=
vecPos
;
CVector vecCameraPos
;
vecCameraPos
.
fX
=
*
(
float
*
)
(
0xB6F9CC
)
;
vecCameraPos
.
fY
=
*
(
float
*
)
(
0xB6F9D0
)
;
vecCameraPos
.
fZ
=
*
(
float
*
)
(
0xB6F9D4
)
;
CVector newVecOrigin
;
DWORD
*
vPos2
=
(
DWORD
*
)
(
(
*
pActor
)
+
0x14
)
;
newVecOrigin
.
fX
=
*
(
float
*
)
(
*
vPos2
+
0x30
)
;
newVecOrigin
.
fY
=
*
(
float
*
)
(
*
vPos2
+
0x34
)
;
newVecOrigin
.
fZ
=
*
(
float
*
)
(
*
vPos2
+
0x38
)
;
vecCameraPos
.
fX
-=
newVecPos
.
fX
;
vecCameraPos
.
fY
-=
newVecPos
.
fY
;
if
(
vecCameraPos
.
fX
newVecPos
.
fX
&&
newVecOrigin
.
fY
>
newVecPos
.
fY
)
{
ccamy
-=
unk7
[
1
]
;
cam_x
=
ccamy
;
}
else
if
(
newVecOrigin
.
fX
>
newVecPos
.
fX
&&
newVecOrigin
.
fY
newVecPos
.
fY
)
{
ccamx
+=
unk7
[
2
]
;
cam_x
=
ccamx
;
}
else
if
(
newVecOrigin
.
fX
-
0.18f
)
{
cam_x
+=
0.0389f
;
CAMERA_X
=
cam_x
;
}
}
}
}
}
|
|
|

24.05.2016, 12:25
|
|
Участник форума
Регистрация: 21.06.2013
Сообщений: 131
С нами:
6785172
Репутация:
68
|
|
В собейте получение камеры выглядит следующим образом:
C++:
Код:
// get the camera
CCamera
*
pCamera
=
pGame
->
GetCamera
(
)
;
// grab the active cam
CCamSAInterface
*
pCam
=
(
CCamSAInterface
*
)
(
(
CCamSA
*
)
pCamera
->
GetCam
(
pCamera
->
GetActiveCam
(
)
)
)
->
GetInterface
(
)
;
Как это будет выглядеть в SF API
|
|
|

24.05.2016, 22:46
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
GAMЕ юзай
|
|
|

31.05.2016, 21:09
|
|
Участник форума
Регистрация: 21.06.2013
Сообщений: 131
С нами:
6785172
Репутация:
68
|
|
Как проверить, что чат открыт?
|
|
|

31.05.2016, 21:11
|
|
Флудер
Регистрация: 17.06.2013
Сообщений: 3,635
С нами:
6791977
Репутация:
183
|
|
Сообщение от Frixen
Как проверить, что чат открыт?
C++:
Код:
if
(
SF
->
getSAMP
(
)
->
getInput
(
)
->
iInputEnabled
)
{
}
|
|
|

31.05.2016, 21:23
|
|
Участник форума
Регистрация: 21.06.2013
Сообщений: 131
С нами:
6785172
Репутация:
68
|
|
Сообщение от iTz_XG4M3R
C++:
Код:
if
(
SF
->
getSAMP
(
)
->
getInput
(
)
->
iInputEnabled
)
{
}
0C0C: 10@ = struct 6@ offset {dwPosChatInput1}0x8 size 4 // X
0C0C: 11@ = struct 6@ offset {dwPosChatInput2}0xC size 4 // Y
а насчет этого не подскажешь как будет SF API?
|
|
|

31.05.2016, 22:14
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
SF -> samp -> chat
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|