Четверг, 28.03.2024, 22:00
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Работа с памятью игры, exe
kenkingДата: Понедельник, 09.01.2012, 14:27 | Сообщение # 286
Группа: Проверенные
Сообщений: 22
Статус: Offline
Quote (izerli)
а как можно узнать угол поворота стандартного компонента (например двери)?

Quote (Den_spb)
надо вычислить угол, на который повёрнута одна из локальных осей компонента

Для стандартных компонентов можно сделать проще, есть опкод
Code
095F: get_car 0@ componentA 2 rotation_to 1@
 
izerliДата: Понедельник, 09.01.2012, 21:29 | Сообщение # 287
Группа: Проверенные
Сообщений: 90
Статус: Offline
kenking, спасибо, я уже заметил как натупил, не заметив этого опкода))) однако способ Дениса пригодился в другом месте
 
DK22PacДата: Суббота, 10.03.2012, 21:28 | Сообщение # 288
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
0x6D55C0 Процедура сверяет условия для включения фар автомобиля.
Code
char __thiscall CVehicle__isAnyReasonToSwitchLights(int vehicle)
{
      char LightsState; // bl@1
      int _vehicle; // esi@1
      long double wetGripVeh; // fst7@7
      int driver; // esi@14
      signed int pedtype; // eax@15

      LightsState = 0;
      _vehicle = vehicle;
      if ( (unsigned __int8)currentTimeHours > 0x14u// 20:00
        || (unsigned __int8)currentTimeHours > 0x13u
        && currentTimeMinutes > (unsigned __int8)(*(_BYTE *)(vehicle + 32) & 0x3F)// 19:00 with minutes
        || (unsigned __int8)currentTimeHours < 6u   // 6:00
        || (unsigned __int8)currentTimeHours < 7u && currentTimeMinutes < (unsigned __int8)(*(_BYTE *)(vehicle + 32) & 0x3F)// 6:00 with minutes
        || (wetGripVeh = (long double)*(_WORD *)(vehicle + 32) * 0.0000199999994947575, flt_C81300 > wetGripVeh)
        || wetGripScale_ > wetGripVeh )
        LightsState = 1;
      if ( *(float *)(vehicle + 300) < 0.05000000074505806 && (unsigned __int8)dummy_72DDB0() )
      {
        LightsState = 1;
      }
      else
      {
        if ( !LightsState )
          return LightsState;
      }
      driver = *(_DWORD *)(_vehicle + 1120);
      if ( driver )
      {
        pedtype = *(_DWORD *)(driver + 1432);
        if ( pedtype >= 7 )
        {
          if ( pedtype <= 16 && *(_BYTE *)(driver + 32) & 1 && byte_C0BC5C )
            return 0;
        }
      }
      return LightsState;
}

PS Если что,
Code
|| - OR
&& - AND

Денис, может подключишь скрипт для подсветки синтаксиса на форуме?


Сообщение отредактировал DK22Pac - Воскресенье, 11.03.2012, 16:04
 
izerliДата: Воскресенье, 11.03.2012, 10:12 | Сообщение # 289
Группа: Проверенные
Сообщений: 90
Статус: Offline
а вы не знаете, что за функция отвечает за поворот колес? ну или может подскажете как ее найти, что может служить точкой отправления в поиске?
 
DK22PacДата: Воскресенье, 11.03.2012, 13:14 | Сообщение # 290
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Ну, тут точно не одна функция, да и, я думаю, отдельной нету.
Я бы посмотрел в CAutomobile::processControl и CAutomobile::processWheel
 
Den_spbДата: Воскресенье, 11.03.2012, 15:05 | Сообщение # 291
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Денис, может подключишь скрипт для подсветки синтаксиса на форуме?
Могу, если ты расскажешь, как это сделать и где взять скрипт.
 
DK22PacДата: Воскресенье, 11.03.2012, 15:50 | Сообщение # 292
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Den_spb, скрипт здесь, как ставить не знаю sad
скрипт

Добавлено (11.03.2012, 15:50)
---------------------------------------------
Вот эти можно выбрать

Code
C#  
  C++  
  CSS  
  HTML, XML  
  Java  
  Javascript  
  PHP  
  Python  
  SQL   
  AVR Assembler  
  Delphi  
  Lua  
  VBScript
 
Den_spbДата: Воскресенье, 11.03.2012, 15:54 | Сообщение # 293
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Хорошо, я посмотрю потом.
Quote (DK22Pac)
Вот эти можно выбрать

Самого главного нет - scm smile
 
izerliДата: Воскресенье, 11.03.2012, 20:41 | Сообщение # 294
Группа: Проверенные
Сообщений: 90
Статус: Offline
DK22Pac, спасибо, буду разбираться.
 
DK22PacДата: Воскресенье, 11.03.2012, 22:28 | Сообщение # 295
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
izerli, конкретнее - смотри всё, что связано с полем структуры fSteerAngle.
 
izerliДата: Понедельник, 12.03.2012, 22:32 | Сообщение # 296
Группа: Проверенные
Сообщений: 90
Статус: Offline
DK22Pac, спасибо.
и еще такой вопрос есть, а как съэмулировать нажатие клавиши управления (конкретно имеется ввиду влево и вправо), при этом либо одну, либо другую?
 
Den_spbДата: Вторник, 13.03.2012, 00:25 | Сообщение # 297
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
http://modsforgta.ucoz.ru/forum/9-16-1138-16-1294327369
 
izerliДата: Вторник, 13.03.2012, 17:07 | Сообщение # 298
Группа: Проверенные
Сообщений: 90
Статус: Offline
Денис, я это читал. к сожалению, данный способ не подходит. Эмулирует сразу обе кнопки, а не раздельно.

Добавлено (13.03.2012, 16:33)
---------------------------------------------
вот для каких целей нужно: чтобы при определенных условиях колеса машины (игрок за рулем) были повернуты влево или вправо. может быть есть какой то другой путь решения проблемы, без привлечения эмуляции нажатия кнопок управления.

Добавлено (13.03.2012, 17:07)
---------------------------------------------
все, вопрос снимается) разобрался как сделать это.

 
VitalДата: Среда, 14.03.2012, 17:43 | Сообщение # 299
Группа: Проверенные
Сообщений: 206
Статус: Offline
Решил попробовать поиграться с интерфейсом, а именно сменить цвета элементов hud'а. Получил немного странные результаты. Вот кусочек кода:
Code

0A8C: write_memory 0xBAB22C size 4 value 0@ virtual_protect 0
0A8C: write_memory 0xBAB230 size 4 value 0@ virtual_protect 0
0A8C: write_memory 0xBAB244 size 4 value 0@ virtual_protect 0
Переменная 0@ принимает следующие значения:
0xFFFFFFFF  // все нормально
0xFF0000FF //все нормально
0x00FF00FF
0x0000FFFF
0x00FFFFFF
0x000000FF

Где есть пометка "все нормально", все, естественно, нормально, т.е. все элементы hud'а на месте, ничего не испорчено. А в остальных случаях почему-то пропадает строка здоровья, хотя цвет остальных элементов меняется благополучно, да и прозрачность нигде не стоит. В чем может быть проблема? Писал я в формате RGBA (шестнадцатеричная). Вроде бы все правильно, RGB в школе мы проходили (и в шестнадцатеричном виде тоже), так что ошибиться в кодировке цвета я вряд ли мог, тем более я выбирал лишь простые цвета.
Буду рад, если кто-нибудь поможет.


SCRIPTER
 
Den_spbДата: Среда, 14.03.2012, 18:01 | Сообщение # 300
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Возможно параметры передаются в обратном порядке (первый байт - альфа, второй - синий, третий - зелёный, четвёртый - красный).
 
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Поиск: