GTA Builder Форум

GTA Vice City => Общие вопросы => Тема начата: Saint от Январь 02, 2019, 10:53:08 pm

Название: Как правильно Создавать Объекты
Отправлено: Saint от Январь 02, 2019, 10:53:08 pm
вот есть созданный объект

(https://pp.userapi.com/c844418/v844418817/16e6cf/AZhB-qzWkWs.jpg)

на стать на него нельзя

(https://pp.userapi.com/c844418/v844418817/16e6de/c6VAp5Mv7IM.jpg)

вопрос как правильно его создать?
Название: Re: Как правильно Создавать Объекты
Отправлено: Shagg_E от Январь 03, 2019, 03:29:07 am
Это какие-то особенные проблемы мультиплеера, поскольку у объекта 3064 есть коллизия (https://i.gyazo.com/59c5a35df6c2ce54391f997deb0dca51.png).
Название: Re: Как правильно Создавать Объекты
Отправлено: Saint от Январь 03, 2019, 01:58:52 pm
Это какие-то особенные проблемы мультиплеера, поскольку у объекта 3064 есть коллизия (https://i.gyazo.com/59c5a35df6c2ce54391f997deb0dca51.png).

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

у меня объекты в данный момент создаются чрез опкод 0107, большинство из них создаются именно так без коллизии, поэтому я и спрашиваю как правильно создавать?
Название: Re: Как правильно Создавать Объекты
Отправлено: Shagg_E от Январь 03, 2019, 03:10:40 pm
Точно не помню(давно этим не занимался), но вроде опкод 0107 предназначен для объектов из "\data\object.dat", для всех остальных же есть опкод 029B(могу ошибаться и вполне возможно, что и для 029B необходимо, чтобы объект был прописан в "\data\object.dat").
Название: Re: Как правильно Создавать Объекты
Отправлено: Saint от Январь 03, 2019, 05:49:45 pm
Точно не помню(давно этим не занимался), но вроде опкод 0107 предназначен для объектов из "\data\object.dat", для всех остальных же есть опкод 029B(могу ошибаться и вполне возможно, что и для 029B необходимо, чтобы объект был прописан в "\data\object.dat").

не тот, не тот опкод не могут создавать объекты норм с коллизией чтобы они были как часть карты, вот я и спрашиваю как это правильно делать для примера я выбрал модель 3064

Название: Re: Как правильно Создавать Объекты
Отправлено: Shagg_E от Январь 03, 2019, 08:00:11 pm
Значит, дело в наличии объекта в "\data\object.dat", как я писал выше.
Название: Re: Как правильно Создавать Объекты
Отправлено: Saint от Январь 03, 2019, 08:13:01 pm
Значит, дело в наличии объекта в "\data\object.dat", как я писал выше.

скорее всего из-за того что он не прописан в файле data\maps\generic.ide

но как решить задачу, не редактируя файлов игры вот в чём вопрос
Название: Re: Как правильно Создавать Объекты
Отправлено: kenking от Январь 04, 2019, 01:12:02 pm
(http://thumbs2.imagebam.com/19/28/18/9331091081739914.jpg) (http://www.imagebam.com/image/9331091081739914)

{$CLEO .cs}
0000:
while true
wait 0
    if
      Player.Defined($PLAYER_CHAR)
    then
        if 
          05EE: key_pressed 50
        then
            Model.Load(3064)
            038B: load_requested_models
            if
              Model.Available(3064)
            then
                Object.Destroy(0@)
                0@ = Object.Init(3064, 288.0, -1303.0, 11.4)
                Object.CollisionDetection(0@, 1)
                Model.Destroy(3064)
                Object.RemoveReferences(0@)
            end
            repeat
              wait 0
            until 85EE: not key_pressed 50
        end 
    end
end
Название: Re: Как правильно Создавать Объекты
Отправлено: Shagg_E от Январь 04, 2019, 04:37:37 pm
([url]http://thumbs2.imagebam.com/19/28/18/9331091081739914.jpg[/url]) ([url]http://www.imagebam.com/image/9331091081739914[/url])

Хочешь прикол? Уже в паре сотен метров севернее кол не работает (https://i.gyazo.com/979b9906cd83b542ca09f889ff7ffdb3.jpg).
Я вчера психанул(т.к. точно помнил, что у меня в проектах таких проблем не было) и решил затестить сам этот объект. С большим трудом, но сегодня наконец я всё же допёр до частичного понимания, как это работает, и почему у меня с этим не было проблем в моих модах.

Если вкратце, то объект, созданный скриптом, будет иметь коллизию только в той зоне, в col-файле которой находится его коллизия. Иначе говоря, объект 3064 будет иметь коллизию только в районе washints (https://i.gyazo.com/a433c613476e21c418dca207316926bd.png)(+~100м), т.к. его коллизия находится в "washints.col".
Где закреплены границы районов для этого "правила" - я не знаю, т.к. очистка MAP.ZON NAVIG.ZON INFO.ZON и main.scm не помогает.
Скорее всего, привязка стандартных col-файлов к определенным границам и сами эти границы прописаны в exe.

Короче, от проблемы можно избавиться, если удалить коллизию нужного нам объекта из washints.col(который лежит в gta3.img) и добавить эту коллизию в новый созданный col-файл(который прописать в gta_vc.dat), либо добавить её в "models\coll\generic.col".
ИЛИ можно вообще удалить все col-файлы из gta3.img и прописать в gta_vc.dat пути ко всем копиям col-файлов, которые уже находятся в папке "DATA\MAPS\NAME". В этом случае проблема решится сразу для всех объектов.
ИЛИ можно попробовать найти в exe эту привязку col-файлов к зонам и отрубить это.

Ну и, прописывание объекта в object.dat по-прежнему желательно для корректной физики.

Всё вышеперечисленное было проверено на еще нескольких объектах из разных зон, и везде один результат.

В своих модах, поскольку я сносил полностью карту - col-файлы из gta3.img я не юзал, а создавал новые. Соответственно, они не были никаким таинственным образом привязаны ни к каким зонам на карте и объекты из них работали нормально везде. В дефолтном же Вайсе, видимо, где-то дополнительно прописана такая вот угрюмая оптимизация...
Название: Re: Как правильно Создавать Объекты
Отправлено: Saint от Январь 04, 2019, 09:05:32 pm
больше спасибо за ваши ответы, очень помогли, буду теперь думать что делать...
Название: Re: Как правильно Создавать Объекты
Отправлено: Shagg_E от Январь 04, 2019, 09:36:02 pm
Тебе спасибо) Если бы ты это не заметил, я бы наверняка оочень долго тупил, когда столкнулся бы с этим в скором будущем, т.к. планирую кое-какой аддон для дефолтного Вайса, где может иметь место скриптовый спавн объектов  :-X
Название: Re: Как правильно Создавать Объекты
Отправлено: Saint от Февраль 01, 2019, 12:59:47 am
ещё вопрос по теме:

как создать статический объект например мяч (526) который нельзя уничтожить и сдвинуть с места?
Название: Re: Как правильно Создавать Объекты
Отправлено: Shagg_E от Февраль 01, 2019, 01:13:34 am
Хз, мб убрать кол (https://www.gtagmodding.com/opcode-database/opcode/0382/)?

Или:
Непосредственно у готового объекта в структуре (https://gtamods.com/wiki/Memory_Addresses_(VC)#CEntity) выставить пруфы(0x052 и 0x053) нулевую массу(0x0B8), чтобы висел в воздухе и 999999.99 сопротивление(0x0BC).

К сожалению, на практике не сталкивался, но по логике второй вариант должен сработать, т.к. у меня срабатывало обратное(делал фонарные столбы более легкими для сбивания)
Название: Re: Как правильно Создавать Объекты
Отправлено: Saint от Февраль 01, 2019, 07:10:24 pm
Хз, мб убрать кол (https://www.gtagmodding.com/opcode-database/opcode/0382/)?

Или:
Непосредственно у готового объекта в структуре (https://gtamods.com/wiki/Memory_Addresses_(VC)#CEntity) выставить пруфы(0x052 и 0x053) нулевую массу(0x0B8), чтобы висел в воздухе и 999999.99 сопротивление(0x0BC).

К сожалению, на практике не сталкивался, но по логике второй вариант должен сработать, т.к. у меня срабатывало обратное(делал фонарные столбы более легкими для сбивания)

нет, это не то, объект должен стать частью карты сbuilding
Название: Re: Как правильно Создавать Объекты
Отправлено: Saint от Февраль 02, 2019, 05:14:22 pm
Хз, мб убрать кол (https://www.gtagmodding.com/opcode-database/opcode/0382/)?

Или:
Непосредственно у готового объекта в структуре (https://gtamods.com/wiki/Memory_Addresses_(VC)#CEntity) выставить пруфы(0x052 и 0x053) нулевую массу(0x0B8), чтобы висел в воздухе и 999999.99 сопротивление(0x0BC).

К сожалению, на практике не сталкивался, но по логике второй вариант должен сработать, т.к. у меня срабатывало обратное(делал фонарные столбы более легкими для сбивания)

в принципе кое-чего удалось достич меняя мараметры массы и флаги, осталось отключить повреждаемость объектов (тогже мяча, когда в него врезаешься на машине или бочки (350) когда в неё стреляешь она всё равно взрывается, даже если утановленны иммунитеты.

кто что думает?
Название: Re: Как правильно Создавать Объекты
Отправлено: Shagg_E от Февраль 02, 2019, 05:58:03 pm
кто что думает?

¯\_(ツ)_/¯

НО: Я когда-то искал способ взрыва стекол, и-таки нашел, попутно найдя аналогичную функцию для "взрывных" объектов (http://forum.gtabuilder.ru/index.php?topic=322.msg2474#msg2474)(последнее сообщение в теме). Где-то в ней или родительских функциях должна быть какая-то проверка на "взрывоопасность" объекта или около того. Соответственно, найдя это, можно отрубить это у выборочных объектов.

P.S. Я понимаю, что мои сообщения могут раздражать этими "когда-то", "что-то" и "где-то", но, к сожалению, на данный момент более детально помочь не могу :(
Название: Re: Как правильно Создавать Объекты
Отправлено: Saint от Май 07, 2019, 10:51:57 pm
ИЛИ можно попробовать найти в exe эту привязку col-файлов к зонам и отрубить это.

отличное было бы решение