Пятница, 29.03.2024, 18:13
Качественные скрипты, моды и дополнения для GTA без регистрации
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Работа с памятью игры, exe
walkДата: Пятница, 07.01.2011, 05:58 | Сообщение # 121
Группа: Проверенные
Сообщений: 96
Статус: Offline
Quote (walk)
DK22Pac, Мне не огонь, а клавиша G нужна, чтоб сделать метание гранат, как в шутерах, а то так не удобно sad

Точно, чё я мудрю, мне же нужно клавишу огня надо имитировать, что-то совсем потерялся smile спасибо, за напоминание

Добавлено (07.01.2011, 05:58)
---------------------------------------------
Ещё вопрос, как выбрать нужный слот оружия?

 
Den_spbДата: Пятница, 07.01.2011, 06:12 | Сообщение # 122
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (walk)
щё вопрос, как выбрать нужный слот оружия?
Если не ошибаюсь, то методом CPed__setActiveWeaponSlot (0x005E61F0). Параметр один (очевидно номер слота).
 
walkДата: Пятница, 07.01.2011, 06:19 | Сообщение # 123
Группа: Проверенные
Сообщений: 96
Статус: Offline
Den_spb, в том то и дело, что через него не выходит:

Code
:Noname_2
while true
   wait 0   
    if   
    Player.Defined($PLAYER_CHAR)
    then   
    if
    0AB0: 71
    then
    if
    0491:   actor $PLAYER_ACTOR has_weapon 16   
    then   
    0A96: 2@ = actor $PLAYER_ACTOR struct
    0AA6: call_method 0x5E61F0 struct 2@ params 1 pop 1 16

    0AB1: call_scm_func @imitate_keypad 1 No 17
    wait 500
    continue

    :imitate_keypad
    0@ *= 2
    0@ += 0xB73458   
    0A8C: write_memory 0@ size 2 value 0x80 virtual_protect 0
    0AB2: ret 0
      
      
     end
    end
   end
end

Получаю только ошибку

Добавлено (07.01.2011, 06:19)
---------------------------------------------
Den_spb, и ещё одно, методом тестов заметил, что в имитации нажатия клавишь есть один минус, допустим в броске гранат ГГ будет кидать гранату только перед собой, в даль не кинет, также при рукопашном бое, будет только прямой удар, видимо что-то ещё должно передаваться в 0xB73458 ?

Сообщение отредактировал walk - Пятница, 07.01.2011, 06:17
 
Den_spbДата: Пятница, 07.01.2011, 06:25 | Сообщение # 124
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (walk)
Получаю только ошибку
Попробуй модель гранаты сначала загрузить.
Quote (walk)
видимо что-то ещё должно передаваться в 0xB73458
Наверно должна учитываться и длительность нажатия клавиши.
 
walkДата: Воскресенье, 09.01.2011, 13:51 | Сообщение # 125
Группа: Проверенные
Сообщений: 96
Статус: Offline
Quote
0AA6: call_method 0x5E6280 struct 2@ params 1 pop 0 16

Получилось, просто видимо метод сам за собой всё чистит, поставил 0 вместо него и всё заработало, но вопрос из 123 поста всё ещё в силе

Добавлено (07.01.2011, 08:13)
---------------------------------------------
Всё, сделал, спасибо большое Den_spb и DK22Pac, за сообщение на форуме gtascriptd88 cool

Сообщение отредактировал walk - Вторник, 11.01.2011, 01:28
 
DK22PacДата: Четверг, 13.01.2011, 01:04 | Сообщение # 126
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Den_spb, если будет время, посмотри, пожалуйста к фунции 0x7037C0.
Она должна делать эффект "шума" (noise effect) на экране.
2 параметра (не знаю точно каких), вызываю через 0AA5, игру не крешит, но и изменений не видно.
Ф-ция эта вызывается из функции включения Night Vision.
Code
.text:00704EE8            call    sub_7037C0

^^ Заnopивание этого участка памяти (5 байт) убирает шум в режиме "Night Vision".


Сообщение отредактировал DK22Pac - Четверг, 13.01.2011, 01:08
 
Den_spbДата: Четверг, 13.01.2011, 01:37 | Сообщение # 127
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
2 параметра (не знаю точно каких)
Не знаешь значений параметров или смысла параметров?
Quote (DK22Pac)
изменений не видно.
Может надо в цикле её вызывать?
 
DK22PacДата: Четверг, 13.01.2011, 01:45 | Сообщение # 128
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (Den_spb)
Не знаешь значений параметров или смысла параметров?

Да. Не знаю их назначения.
Quote (Den_spb)
Может надо в цикле её вызывать?

Только что попробовал. Нет.
 
Den_spbДата: Четверг, 13.01.2011, 02:26 | Сообщение # 129
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Со стандартными значениями параметров тоже не работает? Если да, то видимо одной этой процедуры не достаточно для создания нужного эффекта.
 
DK22PacДата: Суббота, 22.01.2011, 13:02 | Сообщение # 130
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Code
+0 = [float] X-axis Rotation (Grad)
+4 = [float] Y-axis Rotation (Grad)
+8 = [float] Z-axis Rotation (Grad)
+16 = [float] X-axis Rotation (Looking)
+20 = [float] Y-axis Rotation (Looking)
+24 = [float] Z-axis Rotation (Looking)
+48 = [float] X-axis Position
+52 = [float] Y-axis Position
+56 = [float] Z-axis Position

Что означает "Looking"?
PS как я понял, матрица позиции/вращения одинакова (сама структура) для всех игровых обьектов?


Сообщение отредактировал DK22Pac - Суббота, 22.01.2011, 13:05
 
Den_spbДата: Суббота, 22.01.2011, 16:28 | Сообщение # 131
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Устройство матрицы listener объяснял тут: http://sannybuilder.com/forums/viewtopic.php?pid=6385#p6385
 
DK22PacДата: Понедельник, 24.01.2011, 02:54 | Сообщение # 132
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Спасибо. Интересно...
А ведь в эксе есть класс CMatrix?
Значит, должны быть и функции наподобии translate, rotate, scale, transform.
PS значит, описание на гтамоддинге неверное?
Как понял я, матрица вращения состоит из трёх векторов (+3 статистических нуля в конце каждого ряда).
PSS Это единичные векторы?


Сообщение отредактировал DK22Pac - Понедельник, 24.01.2011, 02:59
 
Den_spbДата: Понедельник, 24.01.2011, 03:14 | Сообщение # 133
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Quote (DK22Pac)
Спасибо. Интересно...
Пожалуйста.
Quote (DK22Pac)
А ведь в эксе есть класс CMatrix? Значит, должны быть и функции наподобии translate, rotate, scale, transform.
Да, есть такой класс. Насчёт функций сказать не могу, но по идее должны быть.
Quote (DK22Pac)
PS значит, описание на гтамоддинге неверное?
Да. На гтамоддинге написано, что компоненты матрицы - это углы, а на самом деле это координаты базисных векторов.
Quote (DK22Pac)
Как понял я, матрица вращения состоит из трёх векторов (+3 статистических нуля в конце каждого ряда).
Матрица имеет размер 4х4 - координаты 3 базисных векторов, координаты радиус-вектора из начала глобальной системы координат в начало локальной и заглушка из нулей.
Quote (DK22Pac)
PSS Это единичные векторы?
Да.
 
DK22PacДата: Среда, 26.01.2011, 00:36 | Сообщение # 134
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Денис, а ты не знаешь, как исследовать опкод через IDA?
Какие функции вызывает, и т.д.
 
Den_spbДата: Среда, 26.01.2011, 11:57 | Сообщение # 135
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Знаю. В SA опкоды объединены в группы, которые находятся в отдельных процедурах, так называемых "opcode handler".
Чтобы перейти к нужному опкоду, надо при активной вкладке IDA View-A нажать G (переход по указанному адресу) и ввести @@opcode_XXXX , где XXXX - номер опкода.
 
Форум » Игры серии ГТА » Работа с памятью, exe » Работа с памятью игры, exe
Поиск: