Коллизия у prop_physics_override

(admiral)

Участник
Сообщения
69
Реакции
8
Здравствуйте, помогите, пожалуйста. Проблема такая: есть неподвижная энтити - prop_physics_override. Нужно сделать, чтобы она не взаимодействовала с игроком и другими пропами (чтобы все проходили сквозь нее) и в то же время могла быть найдена с помощью TR_TraceRay. Я пробовал устанавливать m_nSolidType в 0, но тогда TR_GetEntityIndex возвращает 0, хотя луч проходит через эту энтити. Пробовал маску MASK_ALL и CONTENTS_EMPTY. Посоветуйте способ.
 

Root

AWOL.
Сообщения
76
Реакции
195
Используй m_usSolidFlags
PHP:
enum SolidFlags_t
{
    FSOLID_CUSTOMRAYTEST        = 0x0001,    // Ignore solid type + always call into the entity for ray tests
    FSOLID_CUSTOMBOXTEST        = 0x0002,    // Ignore solid type + always call into the entity for swept box tests
    FSOLID_NOT_SOLID            = 0x0004,    // Are we currently not solid?
    FSOLID_TRIGGER                = 0x0008,    // This is something may be collideable but fires touch functions
                                            // even when it's not collideable (when the FSOLID_NOT_SOLID flag is set)
    FSOLID_NOT_STANDABLE        = 0x0010,    // You can't stand on this
    FSOLID_VOLUME_CONTENTS        = 0x0020,    // Contains volumetric contents (like water)
    FSOLID_FORCE_WORLD_ALIGNED    = 0x0040,    // Forces the collision rep to be world-aligned even if it's SOLID_BSP or SOLID_VPHYSICS
    FSOLID_USE_TRIGGER_BOUNDS    = 0x0080,    // Uses a special trigger bounds separate from the normal OBB
    FSOLID_ROOT_PARENT_ALIGNED    = 0x0100,    // Collisions are defined in root parent's local coordinate space
    FSOLID_TRIGGER_TOUCH_DEBRIS    = 0x0200,    // This trigger will touch debris objects

    FSOLID_MAX_BITS    = 10
};
Не уверен, но попробуй это
SetEntProp(myent, Prop_Send, "m_usSolidFlags", 152);
SetEntProp(myent, Prop_Send, "m_CollisionGroup", 1);
 

(admiral)

Участник
Сообщения
69
Реакции
8
Попробовал сделать, как ты написал - энтити сталкивается с другими пропами. Попробовал FSOLID_NOT_SOLID - TR_GetEntityIndex возвращает 0. Забыл упомянуть, что изначально у энтити m_nSolidType 6 и m_CollisionGroup 11.
 

FrozDark

Участник
Сообщения
1,769
Реакции
2,050
нужно сразу установить FSOLID_NOT_SOLID|FSOLID_TRIGGER
 

(admiral)

Участник
Сообщения
69
Реакции
8
При установке этих двух флагов после спауна энтити, TR_GetEntityIndex выдает 0, а если выдать перед спауном, то их, видимо, перебивает другой плагин (zr_lasermines), который выдает этой энтити(мине) m_SolidType 6. Редактировать zr_lasermines не могу, так как плагин немного изменен, а исходник потерян(
 
Сверху Снизу