Работа с памятью игры, 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 Если что, Денис, может подключишь скрипт для подсветки синтаксиса на форуме?
Сообщение отредактировал 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, скрипт здесь, как ставить не знаю скриптДобавлено (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
|
|
| |
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
| Возможно параметры передаются в обратном порядке (первый байт - альфа, второй - синий, третий - зелёный, четвёртый - красный).
|
|
| |