0A97: $CarStruct = car $MyCar struct
Иногда встречаются случаи, когда тебе известен лишь адрес поинтера, т.е. не сам поинтер, а адрес, в котором записан адрес поинтера. Например, в Вики (http://www.gtamodding.com/wiki/Memory_Addresses_(VC)) есть такой момент:0x7E49C0 - [pointer] - Player's car pointer (player pointer when not in car)
Т.е., чтобы узнать поинтер тачки игрока(при условии, что он сидит в тачке) - нужно считать по адресу 0x7E49C0 значение размера 4 байта:0A8D: $PlayerCarStruct = read_memory 0x7E49C0 size 4 virtual_protect 1
В $PlayerCarStruct запишется адрес(поинтер) стракта авто игрока.0x204 | float | health
Означает, что нам нужно к нашему адресу стракта прибавить 0x204, чтобы получить нужный адрес здоровья конкретного авто. Тип float, т.е. считывать нужно 4 байта. Если byte - 1 байт, если float, dword или pointer - 4 байта.0A97: $CarStruct = car $MyCar struct
$CarStruct += 0x204
0A8D: $CarHealth = read_memory $CarStruct size 4 virtual_protect 1
Не понимаю людей, которые столько лет занимаются скриптингом, интересуются им, интересуются самой игрой, и боятся залезть куда-то "поглубже".Эхх, если бы только скриптингом... Так хочется изучить всё и сразу - а из-за нехватки времени это получается делать лишь рывками) Чуток моделирования, немного анимирования, горстка скриптинга и щепотка программирования...так и живем ;D
Вообще, учись работать с базой и исследовать код exe. Вся документация - именно там.Уже давно пытаюсь что-то понять, пока что не получилось получить никаких результатов по этому поводу
Не понимаю людей, которые столько лет занимаются скриптингом, интересуются им, интересуются самой игрой, и боятся залезть куда-то "поглубже".
А зачем это докумментировать? Есть база по вайсу.Это абсолютно нормально, я считаю. Скриптинг по своей сути вообще не подразумевает явную работу с памятью. Большинство людей, пишущих сценарии на LUA понятия не имеют как это будет выполнять машина, а работа с idb-базой как раз требует этого понимания, и ещё много чего. Здесь уже необходимы определённые знания в соответствующей сфере.
В структуре транспорта (CAutomobile, CHeli и т.д.) сохраняется массив указателей на "базовые" компоненты - колёса, двери, и т.п. Для CAutomobile этот массив начинается с оффсета 0x394.
Для каждого вида транспорта этот массив может различаться - как его размер, так и типы компонентов. В игре есть таблицы (для каждого типа транспорта), по которым можно определить формат этого массива.
Для CAutomobile сохраняются такие компоненты:Код: C++Фреймы, которые в игре используются только для определения позиции (эффекта, света и пр.), в этот массив не сохраняются. Они удаляются из иерархии модели (клампа), а позиция (3d-координаты) записывается в структуре CVehicleModelInfo.
enum eCarNodes_VC { CAR_NODE_NONE = 0, // в начале массива - пустой указатель CAR_WHEEL_RF = 1, CAR_WHEEL_RM = 2, CAR_WHEEL_RB = 3, CAR_WHEEL_LF = 4, CAR_WHEEL_LM = 5, CAR_WHEEL_LB = 6, CAR_BUMP_FRONT = 7, CAR_BUMP_REAR = 8, CAR_WING_RF = 9, CAR_WING_RR = 10, CAR_DOOR_RF = 11, CAR_DOOR_RR = 12, CAR_WING_LF = 13, CAR_WING_LR = 14, CAR_DOOR_LF = 15, CAR_DOOR_LR = 16, CAR_BONNET = 17, CAR_BOOT = 18, CAR_WINDSCREEN = 19 };
Вообще, учись работать с базой и исследовать код exe. Вся документация - именно там.
Не понимаю людей, которые столько лет занимаются скриптингом, интересуются им, интересуются самой игрой, и боятся залезть куда-то "поглубже".
Вопрос остается открытым - надо конкретно "налечь" на моддинг Вайса, чтобы не отставать от SA.Мод клевый, но по-моему, звуки стуков нужно сделать потише, а то как-то странно: какой-то пердеж движка в десять раз громче, чем лобовое столкновение в стену на полной скорости :D
Вообще обидно, что вайс так быстро забросили в плане моддинга, ибо даже такой нуб и лохчмо как я смог сделать вот такой вот мод
https://vk.com/video70744092_456239312
На СА таких небольших - тысячи
На вайс - единицы
Обидно
Спасибо! Этот мод на самом деле еще далек от завершения. Именно из-за идей, которые я хочу реализовать, я и пишу сюда. При стуке движка я еще хотел чтобы из выхлопной трубы "выстреливал" черный-черный дым как в четверке, а при горении, как собсна тоже в четверке, горели и колеса. Но по сравнению с СА надо копаться в памяти чтобы узнать X Y и Z даммисов типа exhaust.Вопрос остается открытым - надо конкретно "налечь" на моддинг Вайса, чтобы не отставать от SA.Мод клевый, но по-моему, звуки стуков нужно сделать потише, а то как-то странно: какой-то пердеж движка в десять раз громче, чем лобовое столкновение в стену на полной скорости :D
Вообще обидно, что вайс так быстро забросили в плане моддинга, ибо даже такой нуб и лохчмо как я смог сделать вот такой вот мод
https://vk.com/video70744092_456239312
На СА таких небольших - тысячи
На вайс - единицы
Обидно
По поводу моддинга Вайса: лично меня устраивает текущая ситуация. SA популярна, поэтому всякий шлак тоннами создается для неё, на Вайсе же сидят люди, которые понимают, что он вполне может реализовать многие их потребности при бОльшем удобстве работы с игрой. Ты сам это доказал, запилив этот мод со стуками. И еще доказал, что годные идеи-таки добираются и до Вайса, пройдя проверку временем на SA.
Я недавно видел на либерти, как один чувак заявлял, что "движок SA кривой" из-за того, что этот чувак ничего кроме кривеньких DYOM миссий делать не умеет. Представляю, что такие как он думают о "движке VC".
Редко кому действительно удается раскрыть потенциал SA, а уж Вайс реально ковыряют лишь тут да на форумсах.
Нужно писать туториалы и делать качественные моды, чтобы прогнать стереотип об устаревании Вайса, как платформы для моддинга и привлекать мозги. Благодаря моддингу я получил некоторые знания, полезные на моей работе, и я знаю еще пару таких примеров среди модмейкеров. Моддинг позволяет тренировать мозг, поэтому это полезное дело, и нужно его развивать ;D
...я еще хотел чтобы из выхлопной трубы "выстреливал" черный-черный дым...Но по сравнению с СА надо копаться в памяти чтобы узнать X Y и Z даммисов типа exhaust.
Скриптинг по своей сути вообще не подразумевает явную работу с памятью.Дело в том, что создание качественных и чего-то стоящих модов в наше время (что для SA, что для VC) требует эту самую "работу с памятью".
а работа с idb-базой как раз требует этого пониманияНет. Работа с базой - это как раз и процесс этого "понимания".
Цитировать...я еще хотел чтобы из выхлопной трубы "выстреливал" черный-черный дым...Но по сравнению с СА надо копаться в памяти чтобы узнать X Y и Z даммисов типа exhaust.
[url]http://gta.com.ua/file_details.phtml?id=2821[/url] ([url]http://gta.com.ua/file_details.phtml?id=2821[/url])
Ты не будешь против если я использую часть твоего кода в своем скрипте?Используй, конечно.
Хм, появилась еще одна идея - вызывать покачивание автомобиля как при процессе "пополнения здоровья" с проституткой скриптовым способом