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

  #891  
Старый 08.02.2016, 22:10
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

С Vitual Protect крашит еще при загрузке. В остальных случаях текстдравов нет (адрес отвечает за размер текстдравов(?)).

Пробовал так:

C++:





Код:
DWORD some
=
0x00002042
;
*
(
PDWORD
*
)
0x718D14
=
&
some
;


И так:

Код:





Код:
DWORD some = 0x42200000; // 40.0 = 0x42200000 ?
*(PDWORD*)0x718D14 = &some;


И даже так:

Код:





Код:
float some = 40.0;
*(PFLOAT*)0x718D14 = &some;


Вот код Легенд'а: https://www.blast.hk/threads/34/page-153#post-81158

Цитата:
Сообщение от Спойлер  

code=cleo]{$CLEO}

{$INCLUDE SF}

0001: wait 0 ms

0662: "by legend2360"

0662: "BlastHack - cheating is art"

0AC6: 0@ = label @font_size offset

0A8C: write_memory 0x0718D14 size 4 value 0@ virtual_protect 1 // записываем новый адрес памяти откуда будет читаться значение

// (gta_sa.exe+318D12 - D8 0D 108A8500 - fmul dword ptr [gta_sa.exe+458A10] | gta_sa.exe+458A10 заменяем на адрес "лейбла")

0A8C: write_memory 0x0858A10 size 4 value 100.0 virtual_protect 1 // Меняем позицию радара

while true

wait 0

end

:font_size // standart

hex

00 00 20 42 // 40.0

end[/code]
[
 
Ответить с цитированием

  #892  
Старый 08.02.2016, 23:32
san0
Постоянный
Регистрация: 15.12.2013
Сообщений: 412
С нами: 6530249

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

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

С Vitual Protect крашит еще при загрузке. В остальных случаях текстдравов нет (адрес отвечает за размер текстдравов(?)).
Пробовал так:

C++:





Код:
DWORD some
=
0x00002042
;
*
(
PDWORD
*
)
0x718D14
=
&
some
;


И так:

Код:





Код:
DWORD some = 0x42200000; // 40.0 = 0x42200000 ?
*(PDWORD*)0x718D14 = &some;


И даже так:

Код:





Код:
float some = 40.0;
*(PFLOAT*)0x718D14 = &some;


Вот код Легенд'а: https://www.blast.hk/threads/34/page-153#post-81158

CLEO:





Код:
{$CLEO}
{$INCLUDE SF}
0001:
wait
0
ms
0662:
"by legend2360"
0662:
"BlastHack - cheating is art"
0AC6:
0@
= label
@font_size
offset
0A8C:
write_memory
0x0718D14
size
4
value
0@
virtual_protect
1
// записываем новый адрес памяти откуда будет читаться значение
// (gta_sa.exe+318D12 - D8 0D 108A8500        - fmul dword ptr [gta_sa.exe+458A10] | gta_sa.exe+458A10 заменяем на адрес "лейбла")
0A8C:
write_memory
0x0858A10
size
4
value
100.0
virtual_protect
1
// Меняем позицию радара
while
true
wait
0
end
:font_size
// standart
hex
00
00
20
42
// 40.0
end

По нажатию на нумпад 1 изменяет позиию радара на 100.0

*Внимание на объявление RadarPos.

Цитата:
Сообщение от Спойлер  


Код:





Код:
#include 
#include 
#include 

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();
float RadarPos = 40.0;

void CALLBACK mainloop()
{
   static bool init = false;
   if (!init)
   {
     if (GAME == nullptr)
       return;
     if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
       return;
     if (!SF->getSAMP()->IsInitialized())
       return;
     init = true;
   }
   if (SF->getGame()->isKeyPressed(0x61))
   {
     *(DWORD*)(0x0718D14) = (DWORD)&RadarPos;
     *(float*)(0x0858A10) = 100.0;
   }
}

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;
}


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

  #893  
Старый 08.02.2016, 23:34
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

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

С Vitual Protect крашит еще при загрузке. В остальных случаях текстдравов нет (адрес отвечает за размер текстдравов(?)).
Попробуй статическую переменную.
 
Ответить с цитированием

  #894  
Старый 08.02.2016, 23:40
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

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

По нажатию на нумпад 1 изменяет позиию радара на 100.0
*Внимание на объявление RadarPos.
Цитата:
Сообщение от Спойлер  


Код:





Код:
#include 
#include 
#include 

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

SAMPFUNCS *SF = new SAMPFUNCS();
float RadarPos = 40.0;

void CALLBACK mainloop()
{
   static bool init = false;
   if (!init)
   {
     if (GAME == nullptr)
       return;
     if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
       return;
     if (!SF->getSAMP()->IsInitialized())
       return;
     init = true;
   }
   if (SF->getGame()->isKeyPressed(0x61))
   {
     *(DWORD*)(0x0718D14) = (DWORD)&RadarPos;
     *(float*)(0x0858A10) = 100.0;
   }
}

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;
}


Работает. Спасибо!
 
Ответить с цитированием

  #895  
Старый 10.02.2016, 12:32
By_Surse
Постоянный
Регистрация: 06.07.2015
Сообщений: 310
С нами: 5712968

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

Как проверить выстрелил игрок или нет
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

Какой именно?
 
Ответить с цитированием

  #897  
Старый 10.02.2016, 12:44
By_Surse
Постоянный
Регистрация: 06.07.2015
Сообщений: 310
С нами: 5712968

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

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

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

Репутация: 183


По умолчанию

Можешь через буллет синхру сделать.
 
Ответить с цитированием

  #899  
Старый 12.02.2016, 02:09
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

Таймер возможно сделать? Не 0001: wait 5000, а именно таймер.
 
Ответить с цитированием

  #900  
Старый 12.02.2016, 02:21
0pc0d3R
Постоянный
Регистрация: 27.12.2014
Сообщений: 550
С нами: 5987262

Репутация: 0


По умолчанию

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

Таймер возможно сделать? Не 0001: wait 5000, а именно таймер.
создай новый поток и выполняй код оттуда, тогда сможешь юзать Sleep(задержка); без геймфриза, по моему удобнее.
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...