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

  #1  
Старый 23.07.2018, 12:35
kawa operand
Постоянный
Регистрация: 15.04.2017
Сообщений: 602
С нами: 4778331

Репутация: 63


По умолчанию

Это динамические библиотеки обычные только зависят от сф
 
Ответить с цитированием

  #2  
Старый 24.07.2018, 13:23
imring
Флудер
Регистрация: 03.08.2016
Сообщений: 2,363
С нами: 5145387

Репутация: 183


По умолчанию

пытаюсь перевести с lua на c++, но чет хуево получается

Lua:





Код:
-- lua code
local
callback
=
ffi
.
cast
(
'void(__thiscall *)(void *_this, char *killer, char *killed, uint32_t clKiller, uint32_t clKilled, uint8_t reason)'
,
hook
)
local
detour_addr
=
tonumber
(
ffi
.
cast
(
'uintptr_t'
,
callback
)
)
local
hook_addr
=
getModuleHandle
(
'samp.dll'
)
+
0x2B2A3B
memory
.
setint8
(
hook_addr
,
0xE8
,
true
)
memory
.
setuint32
(
hook_addr
+
1
,
detour_addr
-
hook_addr
-
5
,
true
)


C++:





Код:
// c++ code
void
(
__thiscall
*
callback
)
(
void
*
,
char
*
,
char
*
,
uint32_t
,
uint32_t
,
uint8_t
)
=
(
void
(
__thiscall
*
)
(
void
*
_this
,
char
*
killer
,
char
*
killed
,
uint32_t
clKiller
,
uint32_t
clKilled
,
uint8_t
reason
)
)
(
hook
)
;
uintptr_t detour_addr
=
(
uintptr_t
)
callback
;
uintptr_t hook_addr
=
(
uintptr_t
)
GetModuleHandleA
(
"samp.dll"
)
+
0x2B2A3B
;
*
reinterpret_cast

(
hook_addr
)
=
(
INT8
)
0xE8
;
*
reinterpret_cast

(
hook_addr
+
1
)
=
detour_addr
-
hook_addr
-
5
;


виснет игра из-за этой строки:

C++:





Код:
*
reinterpret_cast

(
hook_addr
)
=
(
INT8
)
0xE8
;
 
Ответить с цитированием

  #3  
Старый 25.07.2018, 06:48
CarLCas
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами: 6755146

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

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

пытаюсь перевести с lua на c++, но чет хуево получается

Lua:





Код:
-- lua code
local
callback
=
ffi
.
cast
(
'void(__thiscall *)(void *_this, char *killer, char *killed, uint32_t clKiller, uint32_t clKilled, uint8_t reason)'
,
hook
)
local
detour_addr
=
tonumber
(
ffi
.
cast
(
'uintptr_t'
,
callback
)
)
local
hook_addr
=
getModuleHandle
(
'samp.dll'
)
+
0x2B2A3B
memory
.
setint8
(
hook_addr
,
0xE8
,
true
)
memory
.
setuint32
(
hook_addr
+
1
,
detour_addr
-
hook_addr
-
5
,
true
)


C++:





Код:
// c++ code
void
(
__thiscall
*
callback
)
(
void
*
,
char
*
,
char
*
,
uint32_t
,
uint32_t
,
uint8_t
)
=
(
void
(
__thiscall
*
)
(
void
*
_this
,
char
*
killer
,
char
*
killed
,
uint32_t
clKiller
,
uint32_t
clKilled
,
uint8_t
reason
)
)
(
hook
)
;
uintptr_t detour_addr
=
(
uintptr_t
)
callback
;
uintptr_t hook_addr
=
(
uintptr_t
)
GetModuleHandleA
(
"samp.dll"
)
+
0x2B2A3B
;
*
reinterpret_cast

(
hook_addr
)
=
(
INT8
)
0xE8
;
*
reinterpret_cast

(
hook_addr
+
1
)
=
detour_addr
-
hook_addr
-
5
;


виснет игра из-за этой строки:

C++:





Код:
*
reinterpret_cast

(
hook_addr
)
=
(
INT8
)
0xE8
;

Перед записью в память установи права на запись при помощи VirtualProtect, после как закончишь восстанови предыдущие права.
 
Ответить с цитированием

  #4  
Старый 25.07.2018, 00:03
ehxqu
Участник форума
Регистрация: 02.06.2014
Сообщений: 177
С нами: 6287237

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

хотел попробовать написать аммохак

в чем проблема? не работает

Код:





Код:
void OnTimer(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime)
{
    if (GetAsyncKeyState(0x2E) & 0x8000) //если нажал на delete
    {
        DWORD CPED = *(DWORD*)0xB6F5F0; //CPed
        DWORD CWeaponSlot = *(DWORD*)(CPED + 0x0718); //CPed.m_cWeaponSlot
        DWORD CWeaponSlot1 = *(DWORD*)(CWeaponSlot * 0x1C);
        DWORD CWeaponSlots = *(DWORD*)(CPED + 0x5A0); //CPed.m_aclWeaponSlots
        DWORD CWeaponState = *(DWORD*)(CWeaponSlots + CWeaponSlot1);
        *(DWORD*)(CWeaponState + 0xC) += 40;
    }
}
 
Ответить с цитированием

  #5  
Старый 25.07.2018, 21:02
Ranto
Познающий
Регистрация: 26.11.2017
Сообщений: 45
С нами: 4453790

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

Цитата:
Сообщение от hq~  

хотел попробовать написать аммохак
в чем проблема? не работает

Код:





Код:
void OnTimer(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime)
{
    if (GetAsyncKeyState(0x2E) & 0x8000) //если нажал на delete
    {
        DWORD CPED = *(DWORD*)0xB6F5F0; //CPed
        DWORD CWeaponSlot = *(DWORD*)(CPED + 0x0718); //CPed.m_cWeaponSlot
        DWORD CWeaponSlot1 = *(DWORD*)(CWeaponSlot * 0x1C);
        DWORD CWeaponSlots = *(DWORD*)(CPED + 0x5A0); //CPed.m_aclWeaponSlots
        DWORD CWeaponState = *(DWORD*)(CWeaponSlots + CWeaponSlot1);
        *(DWORD*)(CWeaponState + 0xC) += 40;
    }
}

чекни у него видосы, вроде код похожий так что давай
 
Ответить с цитированием

  #6  
Старый 26.07.2018, 12:43
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

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

крашит

C++:





Код:
void
narko_usable
(
)
{
char
fmttext
[
13
]
;
int
id
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
sLocalPlayerID
;
stRemotePlayer
*
pPlayer
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
id
]
;
int
integer_health
=
(
int
)
pPlayer
->
pPlayerData
->
fActorHealth
;
sprintf
(
fmttext
,
"/usedrugs %d"
,
160
-
integer_health
/
10
)
;
stLocalPlayer
*
player
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
;
player
->
Say
(
fmttext
)
;
timer
=
GetTickCount
(
)
+
60000
;
}
 
Ответить с цитированием

  #7  
Старый 26.07.2018, 12:55
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Ты получаешь с удаленной структуры игрока по айди локального игрока. Так нельзя. У удаленных игроков и локального разные структуры.
 
Ответить с цитированием

  #8  
Старый 26.07.2018, 13:38
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

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

покажи как правильно получить
 
Ответить с цитированием

  #9  
Старый 26.07.2018, 13:55
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

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

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

покажи как правильно получить
2 варианта:

C++:





Код:
int
integer_health
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
byteHealth
;
float
myhp
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
hitpoints
;
 
Ответить с цитированием

  #10  
Старый 26.07.2018, 14:10
BlackKnigga
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами: 5441999

Репутация: 133


По умолчанию

PEDSELF->GetHealth()
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.