PDA

Просмотр полной версии : [Вопрос] Детали авто



[ForD]
18.11.2013, 00:49
Эм.. Возник не большой вопрос,есть-ли функция которая снимает детали (двери,капот,багажник и т.п.) с машины?
Если есть то можно пример использования :3

Salvacore
18.11.2013, 01:15
Я такого не разу не видел.
нет,нету.
Точно нету,т.к игра не позволяет.

Daniel_Cortez
18.11.2013, 16:35
Можешь поэкспериментировать с функцией UpdateVehicleDamageStatus:

http://wiki.sa-mp.com/wiki/UpdateVehicleDamageStatus

На вход функции подаётся 4 числа, в каждом из которых закодирована информация о состоянии панелей, дверей, фар и шин. Для примера представим число состояния дверей в двоичном виде:

0b00000100__00000011__00000001__00000000 // да, в Pawn числа для удобства можно разделять знаками подчёркивания
//^4-й байт ^3-й байт ^2-й байт ^1-й байт
1-й байт - состояние капота
2-й байт - состояние багажника
3-й байт - передняя левая дверь (водительская)
4-й байт - передняя правая дверь
Насчёт задних дверей - ими управлять нельзя (это уже ограничения самой GTA).

Как составляются состояния дверей:
1-й бит - открыто/закрыто (1/0)
2-й бит - объект повреждён/цел
3-й бит - объект отделён от машины/на месте
Остальные биты не имеют никакого назначения.

Теперь ещё раз посмотрим на пример:

0b00000100__00000011__00000001__00000000
// капот багажник лев.дверь пр.дверь
Правая дверь - закрыта(0), цела(0), не отделена(0).
Левая дверь - открыта (1), цела(0), не отделена(0).
Багажник - открыт(1), повреждён(1), стоит на месте(0).
Капот - закрыт(0), не повреждён(0), отвалился(1).

Чуть позже этот вопрос будет подробнее рассмотрен в одной из новых глав Учебника (http://pro-pawn.ru/showthread.php?4082).

Salvacore
18.11.2013, 17:10
Можешь поэкспериментировать с функцией UpdateVehicleDamageStatus:

http://wiki.sa-mp.com/wiki/UpdateVehicleDamageStatus

На вход функции подаётся 4 числа, в каждом из которых закодирована информация о состоянии панелей, дверей, фар и шин. Для примера представим число состояния дверей в двоичном виде:

0b00000100__00000011__00000001__00000000 // да, в Pawn числа для удобства можно разделять знаками подчёркивания ("_")
//^4-й байт ^3-й байт ^2-й байт ^1-й байт
1-й байт - состояние капота
2-й байт - состояние багажника
3-й байт - передняя левая дверь (водительская)
4-й байт - передняя правая дверь
Насчёт задних дверей - ими управлять нельзя (это уже ограничения самой GTA).

Как составляются состояния дверей:
1-й бит - открыто/закрыто (1/0)
2-й бит - объект повреждён/цел
3-й бит - объект отделён от машины/на месте
Остальные биты не имеют никакого назначения.

Теперь ещё раз посмотрим на пример:

0b00000100__00000011__00000001__00000000
// капот багажник лев.дверь пр.дверь
Правая дверь - закрыта(0), цела(0), не отделена(0).
Левая дверь - открыта (1), цела(0), не отделена(0).
Багажник - открыт(1), повреждён(1), стоит на месте(0).
Капот - закрыт(0), не повреждён(0), отвалился(1).

Чуть позже этот вопрос будет подробнее рассмотрен в одной из новых глав Учебника (http://pro-pawn.ru/showthread.php?4082).

Созрела идея.

[ForD]
18.11.2013, 22:19
Можешь поэкспериментировать с функцией UpdateVehicleDamageStatus:

http://wiki.sa-mp.com/wiki/UpdateVehicleDamageStatus

На вход функции подаётся 4 числа, в каждом из которых закодирована информация о состоянии панелей, дверей, фар и шин. Для примера представим число состояния дверей в двоичном виде:

0b00000100__00000011__00000001__00000000 // да, в Pawn числа для удобства можно разделять знаками подчёркивания ("_")
//^4-й байт ^3-й байт ^2-й байт ^1-й байт
1-й байт - состояние капота
2-й байт - состояние багажника
3-й байт - передняя левая дверь (водительская)
4-й байт - передняя правая дверь
Насчёт задних дверей - ими управлять нельзя (это уже ограничения самой GTA).

Как составляются состояния дверей:
1-й бит - открыто/закрыто (1/0)
2-й бит - объект повреждён/цел
3-й бит - объект отделён от машины/на месте
Остальные биты не имеют никакого назначения.

Теперь ещё раз посмотрим на пример:

0b00000100__00000011__00000001__00000000
// капот багажник лев.дверь пр.дверь
Правая дверь - закрыта(0), цела(0), не отделена(0).
Левая дверь - открыта (1), цела(0), не отделена(0).
Багажник - открыт(1), повреждён(1), стоит на месте(0).
Капот - закрыт(0), не повреждён(0), отвалился(1).

Чуть позже этот вопрос будет подробнее рассмотрен в одной из новых глав Учебника (http://pro-pawn.ru/showthread.php?4082).

В принципе интересно,под ночь правда толком уже не сооброжаю,завтра попробую подумать,просто на оф форуме есть тема,там что-то типа Alien car называеться или ещё как,дык вот,там небыло дверей на скрине,по сути как я понял их сразу нету,и на счет функции UpdateVehicleDamageStatus,эта функция вроде используеться в скрипте Сергамила,скрипт дает возможность наносить урон авто,дак вот,недавно смотрел этот скрипт,и при нанесении урона автомобилю,у него сначала отлетают двери,капт,багаж,бампера. дак вот я и подумал что есть спец.функция которая снимает определенный(стандартный) объект с авто,ну эдак подобных функций нет,будем химичить,только у меня просьба,может кто попробует сделать мне пример скрипта что-бы убрать допустим двери,ибо у меня времени в обрез из-за практики,а решить проблемку как-то очень надо,если что заранее очень благодарен :3

bredvix
19.11.2013, 23:13
;18272']Эм.. Возник не большой вопрос,есть-ли функция которая снимает детали (двери,капот,багажник и т.п.) с машины?
Если есть то можно пример использования :3
Можно.
Функцию в моде MG видел....
Только с капотом :D
Возможно и по аналогии сделать и с дверьми чей.

Pop
24.11.2013, 10:18
просто храни это число в файле тачек

а изменяй так:

cardamage[vehicleid] |= (1<<4); // где 1 мы включаем повреждение, а 4 это число от 0 до 32, все 32 числа можешь подписать в define в начале мода чтоб не путаться
проверять цела или сломана эта часть можно так:

if(cardamage[vehicleid] & (1<<4))
{
// 4 часть сломана
}