Показать сообщение отдельно

  #7  
Старый 07.08.2020, 22:06
DarkP1xel
Флудер
Регистрация: 17.06.2013
Сообщений: 3,635
С нами: 6791977

Репутация: 183


По умолчанию

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

Это для SAMP а мне для одиночки.
@FYP, можешь пожалуйста дать код своего showCursor из moonloader. ну пожалуйста.
Псевдокод функции включения курсора SA-MP'a.:





Код:
int
__thiscall
ToggleCursor
(
stMiscInfo
*
this
,
int
cursorMode
,
int
hideCursor
?
)
{
int
result
;
// eax
stMiscInfo
*
v4
;
// esi
result
=
cursorMode
;
v4
=
this
;
switch
(
cursorMode
)
{
case
2
:
UnProtectMemmory
(
(
void
*
)
0x541DF5
,
5
)
;
MEMORY
[
0x541DF5
]
=
0x90909090
;
MEMORY
[
0x541DF9
]
=
0x90u
;
GTA
::
patch
::
enableCursor
(
)
;
MEMORY
[
0xB73424
]
=
0
;
MEMORY
[
0xB73428
]
=
0
;
MEMORY
[
0x541BD0
]
(
)
;
MEMORY
[
0x541DD0
]
(
)
;
UnProtectMemmory
(
(
void
*
)
0x6194A0
,
1
)
;
MEMORY
[
0x6194A0
]
=
0xC3u
;
result
=
(
(
int
(
__stdcall
*
)
(
IDirect3DDevice9
*
,
signed
int
)
)
pDevice
->
vtbl
->
ShowCursor
)
(
pDevice
,
1
)
;
v4
->
iCursorMode
=
2
;
break
;
case
1
:
if
(
this
->
iCursorMode
!=
1
)
{
UnProtectMemmory
(
(
void
*
)
0x541DF5
,
5
)
;
result
=
0x90909090
;
MEMORY
[
0x541DF5
]
=
0x90909090
;
MEMORY
[
0x541DF9
]
=
0x90u
;
v4
->
iCursorMode
=
1
;
}
break
;
case
3
:
if
(
this
->
iCursorMode
!=
3
)
{
GTA
::
patch
::
enableCursor
(
)
;
MEMORY
[
0xB73424
]
=
0
;
MEMORY
[
0xB73428
]
=
0
;
MEMORY
[
0x541BD0
]
(
)
;
MEMORY
[
0x541DD0
]
(
)
;
UnProtectMemmory
(
(
void
*
)
0x6194A0
,
1
)
;
MEMORY
[
0x6194A0
]
=
0xC3u
;
result
=
(
(
int
(
__stdcall
*
)
(
IDirect3DDevice9
*
,
signed
int
)
)
pDevice
->
vtbl
->
ShowCursor
)
(
pDevice
,
1
)
;
v4
->
iCursorMode
=
3
;
}
break
;
case
4
:
if
(
this
->
iCursorMode
!=
4
)
{
sub_1009BB20
(
)
;
MEMORY
[
0xB73424
]
=
0
;
MEMORY
[
0xB73428
]
=
0
;
MEMORY
[
0x541BD0
]
(
)
;
MEMORY
[
0x541DD0
]
(
)
;
result
=
UnProtectMemmory
(
(
void
*
)
0x6194A0
,
1
)
;
MEMORY
[
0x6194A0
]
=
0xC3u
;
v4
->
iCursorMode
=
4
;
}
break
;
default
:
if
(
!
cursorMode
&&
this
->
iCursorMode
)
{
this
->
field_59
=
hideCursor
?
!=
0
?
0
:
0xA
;
result
=
(
(
int
(
__stdcall
*
)
(
IDirect3DDevice9
*
,
_DWORD
)
)
pDevice
->
vtbl
->
ShowCursor
)
(
pDevice
,
0
)
;
v4
->
iCursorMode
=
0
;
}
break
;
}
return
result
;
}
 
Ответить с цитированием