Работа с компонентами моделей
|
|
DK22Pac | Дата: Вторник, 20.12.2011, 21:57 | Сообщение # 91 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Покажи скрин иерархии.
Для доступа к атомику фрейма 0x7348C0 _getFrameFirstObject(RwFrame* frame) Так можно получить доступ к компоненту _ok (структура RpAtomic)
|
|
| |
izerli | Дата: Вторник, 20.12.2011, 22:22 | Сообщение # 92 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| DK22Pac, вот скрин:
Quote (DK22Pac) Для доступа к атомику фрейма 0x7348C0 _getFrameFirstObject(RwFrame* frame) Так можно получить доступ к компоненту _ok (структура RpAtomic) а можешь пример привести, как это сделать?
|
|
| |
DK22Pac | Дата: Вторник, 20.12.2011, 22:52 | Сообщение # 93 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Т.е., так не работает? Code 0A97: 1@ = car 0@ struct 1@ += 0x674 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 if 1@ <> 0 then 1@ += 0x98 // RwFrame.Child 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 if 1@ <> 0 then 1@ += 0xAC // RwFrame.Name 03F0: enable_text_draw 1 0ACD: show_text_highpriority 1@ time 100 end end Quote (izerli) а можешь пример привести, как это сделать? Code const frame = 0@ atomic = 1@ end 0AA5: call 0x7348C0 num_params 1 pop 1 frame atomic if atomic <> 0 then Посмотри структуру RpAtomic в IDA.
|
|
| |
izerli | Дата: Вторник, 20.12.2011, 23:15 | Сообщение # 94 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| Quote (DK22Pac) Т.е., так не работает? днем пробовал, не получалось. сейчас еще раз попробую с твоим кодом, может у себя накосячил где то. хотя логика была такая же.Добавлено (20.12.2011, 23:15) --------------------------------------------- не вышло. буду пробовать так Code const frame = 0@ atomic = 1@ end 0AA5: call 0x7348C0 num_params 1 pop 1 frame atomic if atomic <> 0 then Quote (DK22Pac) Посмотри структуру RpAtomic в IDA. сейчас посмотрю.
|
|
| |
DK22Pac | Дата: Вторник, 20.12.2011, 23:53 | Сообщение # 95 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| А как именно ты проверяешь? Проверь, тот ли это дамми (дверь) Code 0AC8: 0@ = allocate_memory_size 260 0A97: 1@ = car 0@ struct 1@ += 0x674 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 if 1@ <> 0 then 1@ += 0xAC // RwFrame.Name 03F0: enable_text_draw 1 0ACD: show_text_highpriority 1@ time 100 // "door_lr_dummy" end
|
|
| |
izerli | Дата: Среда, 21.12.2011, 08:52 | Сообщение # 96 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| да, дамми именно тот. выводит именно его название на экран. Quote (DK22Pac) А как именно ты проверяешь? ну во первых отсутсвием каких либо изменений в состоянии объекта, а во вторых добавил чтобы на экране выскакивала надпись если он будет обнаружен. код очень похож на тот, что ты давал, только там ты выводил на экран название элемента. Code 0A97: 1@ = car 0@ struct 1@ += 0x674 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 if 1@ <> 0 then 1@ += 0x98 // RwFrame.Child 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 if 1@ <> 0 then 045A: draw_text_1number 80.0 325.0 GXT 'NUMBER' number 20@ 1@ += 0xAC // RwFrame.Name 03F0: enable_text_draw 1 0ACD: show_text_highpriority 1@ time 100 end end по каким то причинам не находит его, хотя, как я уже показывал на скрине, в иерархии первый ребенок - не door_lr_ok
|
|
| |
DK22Pac | Дата: Воскресенье, 25.12.2011, 04:57 | Сообщение # 97 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Помнишь, Денис, на СБ ты постил код с аттачем обьекта к компоненту. Но там наблюдалось отставание на большо скорости. Даже script_engine_update не помогал. А он и не мог помочь Я разбирался как игра синхронизирует матрицы в иерархии и понял как устранить этот "дефект"
|
|
| |
Den_spb | Дата: Воскресенье, 25.12.2011, 12:06 | Сообщение # 98 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (DK22Pac) Я разбирался как игра синхронизирует матрицы в иерархии и понял как устранить этот "дефект" Ну и как? Прикрепить объект к самой машине с оффсетами компонента?
|
|
| |
DK22Pac | Дата: Вторник, 27.12.2011, 23:54 | Сообщение # 99 |
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
| Нет, надо просто чаще обновлять матрицу с глобальными координатами.
|
|
| |
Den_spb | Дата: Среда, 28.12.2011, 00:32 | Сообщение # 100 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Матрицы и так обновляются с частотой отрисовки, поэтому увеличить частоту обновления матриц нельзя. Наверное здесь дело не в частоте, а в очерёдности выполнения процессов - как и в других случаях "отставания" объектов.
|
|
| |
izerli | Дата: Понедельник, 16.01.2012, 22:15 | Сообщение # 101 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| Денис, а есть ли способ перемещать компонент hookup (в прицепе)?
|
|
| |
Den_spb | Дата: Вторник, 17.01.2012, 04:11 | Сообщение # 102 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| А в чём там проблема? Компонент не реагирует на изменение координат или доступ к компоненту вообще не удаётся получить?
|
|
| |
izerli | Дата: Вторник, 17.01.2012, 12:44 | Сообщение # 103 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| Den_spb, ни в какую не реагирует на изменение координат. Добавлено (17.01.2012, 12:44) --------------------------------------------- хотя знаешь, и к нему самому тоже не получается получить доступ. пробовал вложить его в произвольный дамми, и двигать уже этот дамми, тоже не помогло. по всей видимости его нельзя перемещать
|
|
| |
Den_spb | Дата: Вторник, 17.01.2012, 12:57 | Сообщение # 104 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Дамми-то перемещаться должен (это можно проверить, если произвольный компонент будет видимым). Наверное игра считывает координаты места прицепки не из матрицы компонента, а из другого места.
|
|
| |
izerli | Дата: Вторник, 17.01.2012, 13:05 | Сообщение # 105 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| Quote (Den_spb) Дамми-то перемещаться должен да, дамми перемещается Quote (Den_spb) Наверное игра считывает оффсеты сцепа не из матрицы компонента, а из другого места. скорее всего так и есть..спасибо
|
|
| |