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

  #1861  
Старый 18.10.2016, 16:53
Skadi
Познающий
Регистрация: 03.11.2014
Сообщений: 43
С нами: 6065807

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

Почему не перемещает за размеры 500, 500? OnMouseHover(x, y, 500, 500)

C++:





Код:
BOOL
OnMouseHover
(
int
x
,
int
y
,
int
w
,
int
h
)
{
POINT pos
;
GetCursorPos
(
&
pos
)
;
return
(
pos
.
x
>=
x
&&
pos
.
x
=
y
&&
pos
.
y

getGame
(
)
->
isKeyDown
(
0x01
)
)
{
POINT pt
;
GetCursorPos
(
&
pt
)
;
x
=
pt
.
x
,
y
=
pt
.
y
;
}
}
 
Ответить с цитированием

  #1862  
Старый 19.10.2016, 10:44
iAmerican
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами: 6438231

Репутация: 133


По умолчанию

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

Почему не перемещает за размеры 500, 500? OnMouseHover(x, y, 500, 500)

C++:





Код:
BOOL
OnMouseHover
(
int
x
,
int
y
,
int
w
,
int
h
)
{
POINT pos
;
GetCursorPos
(
&
pos
)
;
return
(
pos
.
x
>=
x
&&
pos
.
x
=
y
&&
pos
.
y

getGame
(
)
->
isKeyDown
(
0x01
)
)
{
POINT pt
;
GetCursorPos
(
&
pt
)
;
x
=
pt
.
x
,
y
=
pt
.
y
;
}
}

Пример :

C++:





Код:
static
POINT offset
;
POINT cursor
=
SF
->
getGame
(
)
->
getCursorPos
(
)
;
if
(
cursor
.
x

hpX
-
30
&&
cursor
.
y

hpY
-
30
)
{
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
VK_LBUTTON
)
)
{
offset
.
x
=
hpX
-
cursor
.
x
;
offset
.
y
=
hpY
-
cursor
.
y
;
}
if
(
SF
->
getGame
(
)
->
isKeyDown
(
VK_LBUTTON
)
)
{
hpX
=
cursor
.
x
+
offset
.
x
;
hpY
=
cursor
.
y
+
offset
.
y
;
}
}


Или попробуй вот так :

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

Почему не перемещает за размеры 500, 500? OnMouseHover(x, y, 500, 500)

C++:





Код:
BOOL
OnMouseHover
(
int
x
,
int
y
,
int
w
,
int
h
)
{
POINT pos
;
GetCursorPos
(
&
pos
)
;
return
(
pos
.
x
>=
x
&&
pos
.
x
=
y
&&
pos
.
y

getGame
(
)
->
isKeyDown
(
0x01
)
)
{
if
(
OnMouseHover
(
x
,
y
,
500
,
500
)
)
{
POINT pt
;
GetCursorPos
(
&
pt
)
;
x
=
pt
.
x
,
y
=
pt
.
y
;
}
}

 
Ответить с цитированием

  #1863  
Старый 19.10.2016, 12:17
Skadi
Познающий
Регистрация: 03.11.2014
Сообщений: 43
С нами: 6065807

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

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

Пример :

C++:





Код:
static
POINT offset
;
POINT cursor
=
SF
->
getGame
(
)
->
getCursorPos
(
)
;
if
(
cursor
.
x

hpX
-
30
&&
cursor
.
y

hpY
-
30
)
{
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
VK_LBUTTON
)
)
{
offset
.
x
=
hpX
-
cursor
.
x
;
offset
.
y
=
hpY
-
cursor
.
y
;
}
if
(
SF
->
getGame
(
)
->
isKeyDown
(
VK_LBUTTON
)
)
{
hpX
=
cursor
.
x
+
offset
.
x
;
hpY
=
cursor
.
y
+
offset
.
y
;
}
}

уже лучше, но всё равно возвращает на исходные координаты, если далеко увожу мышку.
 
Ответить с цитированием

  #1864  
Старый 19.10.2016, 16:30
MoZg
Новичок
Регистрация: 09.05.2010
Сообщений: 0
С нами: 8425825

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

Подскажите, почему GetHealth() постоянно показывает 100 и только если оно берет хп моё тогда правильно показывает?!

C++:





[CODE]
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
VK_F10
)
)
{
CVehicle
*
pCurrentVehicle
=
GAME
->
GetPools
(
)
->
GetVehicle
(
reinterpret_cast

(
SF
->
getGame
(
)
->
vehicleInfoGet
(
VEHICLE_SELF
,
0
)
)
)
;
if
(
pCurrentVehicle
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"IsBeingDriven - %d | PassengerCount - %d"
,
pCurrentVehicle
->
IsBeingDriven
(
)
,
pCurrentVehicle
->
GetPassengerCount
(
)
)
;
for
(
int
i
=
0
,
j
=
pCurrentVehicle
->
GetPassengerCount
(
)
,
pid
=
-
1
;
i

GetPassenger
(
i
)
;
if
(
passenger
)
{
pid
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
GetSAMPPlayerIDFromGTAHandle
(
GAME
->
GetPools
(
)
->
GetPedRef
(
passenger
)
)
;
auto
hp
=
passenger
->
GetHealth
(
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"GetPassenger(%d) - %s[%d] | HP - %f"
,
i
,
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
GetPlayerName
(
pid
)
,
pid
,
hp
)
;
if
(
hp

 
Ответить с цитированием

  #1865  
Старый 19.10.2016, 17:35
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Еще есть функция для проверки лежит ли точка в прямоугольнике PtInRect

https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd162882(v=vs.85).aspx
 
Ответить с цитированием

  #1866  
Старый 29.10.2016, 03:41
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

C++:





Код:
stBulletData bulletData
;
memset
(
&
bulletData
,
0
,
sizeof
(
stBulletData
)
)
;
byte packetID
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
packetID
)
;
params
->
bitStream
->
Read
(
(
char
*
)
&
bulletData
,
sizeof
(
stBulletData
)
)
;
params
->
bitStream
->
ResetReadPointer
(
)
;
SF
->
Log
(
"-> TargetID: %d | Target: %.3f, %.3f, %.3f | Origin: %.3f, %.3f, %.3f | Center: %.3f, %.3f, %.3f"
,
bulletData
.
sTargetID
,
bulletData
.
fTarget
[
0
]
,
bulletData
.
fTarget
[
1
]
,
bulletData
.
fTarget
[
2
]
,
bulletData
.
fOrigin
[
0
]
,
bulletData
.
fOrigin
[
1
]
,
bulletData
.
fOrigin
[
2
]
,
bulletData
.
fCenter
[
0
]
,
bulletData
.
fCenter
[
1
]
,
bulletData
.
fCenter
[
2
]
)
;


А в логе получаю вот это:

C++:





Код:
TagetID
:
256
|
Target
:
-
123526324853786050000000.000
,
3002534671919167300000.000
,
-
157041088764241890000000000000000.000
|
Origin
:
2224.054
,
-
0.000
,
-
70597757144914183000000000000000.000
|
Center
:
-
2.004
,
0.000
,
-
2600830318495991100000000000000000.000


В чем проблема?
 
Ответить с цитированием

  #1867  
Старый 29.10.2016, 03:54
DarkP1xel
Флудер
Регистрация: 17.06.2013
Сообщений: 3,635
С нами: 6791977

Репутация: 183


По умолчанию

там player id после ид пакета
 
Ответить с цитированием

  #1868  
Старый 29.10.2016, 15:57
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

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

там player id после ид пакета
Почему тогда outcoming пакет читается нормально?

upd:

Все работает. Спасибо.

Как реализовать функци. get_z_angle_for_point на С++. Мне нужно отправить ложную онфут синхру.
 
Ответить с цитированием

  #1869  
Старый 31.10.2016, 16:04
2Shae
Участник форума
Регистрация: 14.05.2014
Сообщений: 149
С нами: 6314183

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

Можно ли как-то вставить текст в input диалога?
 
Ответить с цитированием

  #1870  
Старый 31.10.2016, 16:46
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

[QUOTE="MoZg"]

Подскажите, почему GetHealth() постоянно показывает 100 и только если оно берет хп моё тогда правильно показывает?!

C++:





[CODE]
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
VK_F10
)
)
{
CVehicle
*
pCurrentVehicle
=
GAME
->
GetPools
(
)
->
GetVehicle
(
reinterpret_cast

(
SF
->
getGame
(
)
->
vehicleInfoGet
(
VEHICLE_SELF
,
0
)
)
)
;
if
(
pCurrentVehicle
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"IsBeingDriven - %d | PassengerCount - %d"
,
pCurrentVehicle
->
IsBeingDriven
(
)
,
pCurrentVehicle
->
GetPassengerCount
(
)
)
;
for
(
int
i
=
0
,
j
=
pCurrentVehicle
->
GetPassengerCount
(
)
,
pid
=
-
1
;
i

GetPassenger
(
i
)
;
if
(
passenger
)
{
pid
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
GetSAMPPlayerIDFromGTAHandle
(
GAME
->
GetPools
(
)
->
GetPedRef
(
passenger
)
)
;
auto
hp
=
passenger
->
GetHealth
(
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"GetPassenger(%d) - %s[%d] | HP - %f"
,
i
,
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
GetPlayerName
(
pid
)
,
pid
,
hp
)
;
if
(
hp
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT ™ © 2001- Antichat Kft.