Пятница, 29.03.2024, 18:57
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с компонентами моделей
Работа с компонентами моделей
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 не помогал. А он и не мог помочь biggrin
Я разбирался как игра синхронизирует матрицы в иерархии и понял как устранить этот "дефект" smile
 
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)
Наверное игра считывает оффсеты сцепа не из матрицы компонента, а из другого места.

скорее всего так и есть..спасибо
 
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с компонентами моделей
Поиск: