Molphar 109 Опубликовано 20 Октября 2020 Доброго дня всем. Такая проблема: есть участок кода который спавнит предмет. Предмет спавнится но при этом на него не действует физика.Предмет просто висит в воздухе. CSE_Abstract *object = Level().spawn_item(*cNameSect(),Position(),(g_dedicated_server)?u32(-1):ai_location().level_vertex_id(),ID(),true); CSE_ALifeObject *alife_object = smart_cast<CSE_ALifeObject*>(object); VERIFY (alife_object); alife_object->m_flags.set (CSE_ALifeObject::flCanSave,FALSE); NET_Packet P; object->Spawn_Write (P,TRUE); Level().Send (P,net_flags(TRUE)); F_entity_Destroy (object); Пробовал делать по примеру класса Cmissile ( вставлял фн setup_throw и прочее что связано с ним) - без успехов. Либо вылет ловлю, либо ничего не происходит. ::activate_physic_shell() { Fvector l_vel; l_vel.set (m_throw_direction); l_vel.normalize_safe(); l_vel.mul (m_fThrowForce); Fvector a_vel; a_vel.set (0.f,0.f,0.f); XFORM().set (m_throw_matrix); CInventoryItemObject::CreatePhysicsShell(); m_pPhysicsShell->Activate (m_throw_matrix, l_vel, a_vel); } Воторой код запускает процесс выброски предмета. Проблема в том что не могу понять как эти два кода связаны и как предмету из первого кода назначается физика из второго кода ?. Задача была поставлена такая: сделать функцию которая спавнит предмет и назначает ему физику ( с импульсом ). Может кто то подсказать как это сделать? Если я не правильно защел в тему то скажите куда можно перенести это вопрос? Поделиться этим сообщением Ссылка на сообщение
Molphar 109 Опубликовано 20 Октября 2020 @AndreySol, Если правильно понял вопрос то секция предмета соответствует текущему предмету который находится в руках ( на прямую вместо *cNameSect() прописал "museum_ak74u" - соответсвенно появляется визуал соответствующий этой секции). Попробовал еще "wpn_fake_missle" ставить, но там вылет. По сути я отталкивался от класса болта, так как в нем спавнится и выбрасывается тот предмет который соответсвует текущему используемому предмету. Поделиться этим сообщением Ссылка на сообщение