00096. Игровая память. Динамические адреса (структура weapon.dat)
Игровая память. Динамические адреса (структура weapon.dat)|Начинаем первый в этом году урок, который посвящен игровой памяти. Сегодня мы рассмотрим структуру weapon.dat и будем учится вычислять адреса характеристик оружия.|wmysterio|wmysterio||||Здравствуйте, уважаемые пользователи нашего сайта! Что бы вычислить, нужно сделать небольшие вычисления. Первым делом считываем адрес начала структуры:
Далее нам необходимо сместится по структуре. Для этого нам нужно узнать номер оружия, по которому будет идти редактирование а также навык владения этим оружием. Для примера, давайте возьмём АК47 и увеличим количество патронов в обойме с 30 до 400. Номер смотрим в справке или в нашей базе данных. Как видим, номер АК47 - 30. Запомним его. Потом нам необходимо уточнить в каком навыке мы будем делать изменения. Есть 4 навыка владения оружием и каждый имеет свой номер. Вот таблица навыков и их номера:
Номер | Навык |
---|---|
0 | Низкий ( начальный ) |
25 | Нормальный ( уровень профессионала ) |
36 | Высокий ( уровень киллера ) |
47 | Для копов |
Думаю, в игре Вы видели, что при стрельбе с оружия на экране появлялись текст-боксы с сообщениями типа: "Ваш навык стрельбы повышен. Теперь вы можете стрелять точнее, дальше и т.п.". Вот об этом навыке и идёт речь. Допустим мы задали уровень владения навыка для СЖ на максимум ( высокий ). Запоминаем номер этого навыка и запишем в переменные эти номера:
Значения этих переменный нам нужно сложить. Это нужно для того, что бы двигаться по структуре, каждая из которых равна 0x70 байт ( 112 байт ):
Далее нам необходимо сделать смещение от начала структуры:
Теперь к этой переменной мы прибавляем саму характеристику. Посмотреть некоторые характеристики вы можете в базе данных. Так, как мы собираемся изменять максимальное количество патронов в обойме, то размер смещения будет равен 32:
Всё! Адрес вычислен! Теперь только поменяем значения на нужные:
Теперь в обойме будет 600 патронов :) Давайте напишем скрипт, который будет делать вычисления:
Результат:
Однако, не нужно забывать, что вы редактируете не текущее оружие, которые будет держать/держит СЖ. Эти характеристики будут влиять на использование и других актёров.|2116|1|0|04978583png
148`114
Last updated