You are not logged in.
Жаль. Ну а что насчет путей для тачки и выключения путей для тачки и педа?
Offline
Можно только отрегулировать опкодом 03DE: set_pedestrians_density_multiplier_to 0.0
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
А какое максимальное значение для этого опкода?
Offline
Offline
Offline
to BoPoH
делаешь это через read_memory
смотри www.gtamodding.ru
У меня тоже созрел вопрос.
КАК прочитать, что нажата mouse wheel button up/down.
I know everything and nothing...
Offline
Нет там углов. Вернее может быть один - только для вертикали.
http://sannybuilder.com/forums/viewtopi … 6389#p6389
Offline
to Den_spb
смотри все очень просто, надо немного знать 3D моделирование и геометрию
итак...
ось x является горизонталью к карте и одновременно осью вращения x, в GTA 3 VC SA угол вращения идет против часовой стрелки, один оборот равен 360.0 градусов. угол задается как положительный так и отрицательный, как больше 360.0 может быть, так и меньше -360.0. Отсчет координат по оси идет слева направо, снизу вверх, по высоте также снизу вверх.
это все касается и других осей y (вертикальная ось к карте) и z (высота).
Это переностится и на все объекты GTA, т.е необходимо вместо слова карта применять объект, машина, актер и т.д.
А как насчет МОЕГО ВОПРОСА...
Last edited by mfisto (06-06-2009 09:28)
I know everything and nothing...
Offline
Такой вопрос: можно ли проверять опкодом 0ab0: нажатие клавиши num enter? В соответствующем разделе справки вроде нету.
Поправьте меня если я ошибаюсь
только вежливо :)
Offline
to KOLLEGA
попробуй 108 или 95,94
короче внимательнее смотри на структуру перечисления клавиш, то что пропущено рядом с аналогичными клавишами то и будет ответ.
На мой вопрос лучше ответьте, наверняка кто то знает.
I know everything and nothing...
Offline
Можно ли сделать так: какая-нибудь небольшая текстурка в txd файле лежит в папке Models/txd. В скрипте задаем координаты по X Y Z, где эта текстура будет "приклеена" к этому месту.
Если не понятно, то вот пример: в контре, когда жмем кнопку, мы спреем рисуем что-то, т.е. текстура ложится на определенные координаты.
Offline
@mfisto - средствами scm нельзя засечь. По идее надо устанавливать хук на события мыши wh_mouse, проверять результат на совпадение с wm_mousewheel, и в случае если совпало, что-то делать. Короче, надо писать asi.
По опкоду 0AB0: в справке не полная таблица. Полный список есть тут.
Offline
Ну что? Можно ли как-то сделать, что я написал?
Offline
Можно ли сделать так: какая-нибудь небольшая текстурка в txd файле лежит в папке Models/txd. В скрипте задаем координаты по X Y Z, где эта текстура будет "приклеена" к этому месту.
Если не понятно, то вот пример: в контре, когда жмем кнопку, мы спреем рисуем что-то, т.е. текстура ложится на определенные координаты.
как бы объяснить попроще...нельзя...
причина: в том то вся и штука, что это зависит от полигонов, без них нельзя просто так наложить текстуру, допустим два полигона, и мы получаем прямоугольник и т.д.
вся соль в предварительной загрузке и расчете всех координат в игре, т.е создании мира sa
если ты создашь модельку, то она должна быть загружена заранее, после того как игра запустилась ты уже не можешь этого сделать, не зря в мейне в начале определяются все объекты, именно поэтому чтоб наложить текстуру max ты можешь создать объект допустим в виде прямоугольника, а потом прописать его в ipl и ide файлах. даллее создать такой объект и поместить его в заданные координаты.
ну как понятно?
Что касается того как поместить тачку на пути и убрать ее, то делай так
Car.SetToNormalDriver(0@) - остановить тачку прекратить ее движение по пути
Car.SetToPsychoDriver(0@) - поставить тачку на пути
примечание: имей ввиду, они применяются только в том случае, если тачка не использует
опкоды типа AS_actor для ее водителя в твоем скрипте
чтоб отменить AS_actor делаешь
0687: clear_actor 1@ task
и после этого применяешь те опкоды
допустим твоя тачка использует следующее
05D1: AS_actor 1@ drive_car 0@ to 2@ 3@ 4@ speed 15.0 0 model #NULL 0
тебе нужно после этого применить обязательно
0687: clear_actor 1@ task
а потом отправляешь ее кактаться самостоятельно по дорогам
Car.SetToPsychoDriver(0@)
не забывай о том что при выходе из тачки пассажиров нужно возвращать тачке max_speed, например 15.0
Last edited by mfisto (08-06-2009 03:10)
I know everything and nothing...
Offline
Offline
Спасибо.
Как вычислять координаты выхлопной трубы? Где-то тут это было.
Нашел:
Координаты выхлопной трубы (вектор в model space) лежат в первом поле vehicleStruct по индексу 6 (+0x48)
modelPtrs[modelIndex]->vehicleStruct->_f0[6]
Это что за фиготень? А опкодов нет? И как этим пользоваться?
Last edited by GTASA (08-06-2009 15:22)
Offline
Через память. Есть здоровенный массив (по адресу 0xA9B0C8), в котором находятся указатели на все модели. modelID - индекс массива (0..24999)
По modelID получаешь указатель на объект модели. Если это CModelCars, то по смещению 0x5C, в нем находится указатель на CVehicleStruct - объект, описывающий компоненты модели. В нем, по смещению 0x48 лежит вектор, с координатами выхлопной трубы, относительно начала координат модели.
Offline
Бензобак: 0x60, 0x64, 0x68 (восьмой)
Выхлопная труба: 0x48, 0x4C, 0x50
Полный список компонентов: .data:008A6468 _componentListCar
Там идут тройки: указатель на имя компонента, номер, флаги.
Сама система иерархии компонентов достаточно злобная (я на нее убил порядка недели).
Важно то, что в начале vehicleStruct лежит 15 векторов с координатами неподвижных компонентов, т.е. их можно просто перебрать.
Дальше идут описатели подвижных компонентов, указатели на атомики и т.д.
Я, еще давным-давно, выкладывал исходники - там это все есть.
Что касается мыши:
.data:00B73404 _activeMouseState CMouseState
.data:00B73418 _currentMouseState CMouseState
.data:00B7342C _prevMouseState CMouseState
обращаться нужно к currentMouseState. (и к prevMouseState, если нужны проверки типа justPressed/justReleased)
00000000 CMouseState struc ; (sizeof=0x14) 00000000 lmb db ? 00000001 rmb db ? 00000002 mmb db ? 00000003 wheelUp db ? 00000004 wheelDown db ? 00000005 bmx1 db ? 00000006 bmx2 db ? 00000007 __align db ? 00000008 Z dd ? ; float (wheel) 0000000C X dd ? ; float 00000010 Y dd ? ; float 00000014 CMouseState ends
Offline
И кста 66,6 % так и держится или это прикол просто
Немножко прикол.
Там сейчас один и тот же кусок по кодогенератору перетряхивается уже в третий раз. (С момента, как он был первый раз написан, он похудел раза в три) Если все пойдет нормально, процентики побегут дальше.
Last edited by listener (09-06-2009 07:45)
Offline
listener, а что делать с этим? Вот, например, можно указать какие-то координаты в переменные:
0407: store_coords_to 8@ 9@ 10@ from_car 0@ with_offset 1.5 -2.0 -1.50
А как занести координаты выхлопной трубы?
Offline