Проблема с коллизией

WinsomeQuill

Участник
Сообщения
15
Реакции
1
Создание темы не в том разделе
Добрый день, я решил переделать данный props и у меня было все отлично, пока я не использовал "SetEntPropEnt(iEntity, Prop_Data, "m_hOwnerEntity", iClient)" , не знаю почему, но когда данная строка есть в коде, то когда проп спавнится он имеет коллизии для пуль и игрока, однако он не падает за карту, сталкивается с другими пропами, а так же проп откидывает от взрыва гранатой. В чем может быть проблема? Файлик прикрепил.
 

Вложения

  • zprop.sp
    15.6 КБ · Просмотры: 8

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
C-подобный:
                SetEntPropEnt(iEntity, Prop_Data, "m_hOwnerEntity", iClient);
                
                new owner = GetEntPropEnt(iEntity, Prop_Data, "m_hOwnerEntity");
                new persona = GetClientUserId(owner);
хм 🤔
 

WinsomeQuill

Участник
Сообщения
15
Реакции
1
C-подобный:
                SetEntPropEnt(iEntity, Prop_Data, "m_hOwnerEntity", iClient);
              
                new owner = GetEntPropEnt(iEntity, Prop_Data, "m_hOwnerEntity");
                new persona = GetClientUserId(owner);
хм 🤔
Я использую это чтобы убедится что проп действительно присвоился игроку правильно
 

WinsomeQuill

Участник
Сообщения
15
Реакции
1
Я окончательно понял в чем дело, как я сказал ранее это проблема из-за "SetEntPropEnt(iEntity, Prop_Data, "m_hOwnerEntity", iClient)" и когда я использую это, то только владелец может проходить сквозь свой(и) проп(ы), но мне этого не надо, можно ли вернуть физику пропу?
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,335
Попробуйте поиграть с группами коллизий
C-подобный:
/*
 * Collision groups
 * Taken from hl2sdk-ob-valve/public/const.h
 */
enum Collision_Group_t
{
    COLLISION_GROUP_NONE  = 0,
    COLLISION_GROUP_DEBRIS,                // Collides with nothing but world and static stuff
    COLLISION_GROUP_DEBRIS_TRIGGER,        // Same as debris, but hits triggers
    COLLISION_GROUP_INTERACTIVE_DEB,    // Collides with everything except other interactive debris or debris
    COLLISION_GROUP_INTERACTIVE,        // Collides with everything except interactive debris or debris
    COLLISION_GROUP_PLAYER,
    COLLISION_GROUP_BREAKABLE_GLASS,
    COLLISION_GROUP_VEHICLE,
    COLLISION_GROUP_PLAYER_MOVEMENT,    // For HL2, same as Collision_Group_Player, for
                                        // TF2, this filters out other players and CBaseObjects
    COLLISION_GROUP_NPC,                // Generic NPC group
    COLLISION_GROUP_IN_VEHICLE,            // for any entity inside a vehicle
    COLLISION_GROUP_WEAPON,                // for any weapons that need collision detection
    COLLISION_GROUP_VEHICLE_CLIP,        // vehicle clip brush to restrict vehicle movement
    COLLISION_GROUP_PROJECTILE,            // Projectiles!
    COLLISION_GROUP_DOOR_BLOCKER,        // Blocks entities not permitted to get near moving doors
    COLLISION_GROUP_PASSABLE_DOOR,        // Doors that the player shouldn't collide with
    COLLISION_GROUP_DISSOLVING,            // Things that are dissolving are in this group
    COLLISION_GROUP_PUSHAWAY,            // Nonsolid on client and server, pushaway in player code

    COLLISION_GROUP_NPC_ACTOR,            // Used so NPCs in scripts ignore the player.
    COLLISION_GROUP_NPC_SCRIPTED        // USed for NPCs in scripts that should not collide with each other
};

/**
 * Gets the collision group of an entity.
 *
 * @param entity        entity index
 * @return                Entity collision group.
 */
stock Collision_Group_t:Entity_GetCollisionGroup(entity)
{
    return Collision_Group_t:GetEntProp(entity, Prop_Data, "m_CollisionGroup");
}

/**
 * Sets the collision group of an entity.
 *
 * @param entity        entity index
 * @param value            the new collision group.
 * @noreturn
 */
stock Entity_SetCollisionGroup(entity, Collision_Group_t:value)
{
    SetEntProp(entity, Prop_Data, "m_CollisionGroup", value);
}
 

WinsomeQuill

Участник
Сообщения
15
Реакции
1
Попробуйте поиграть с группами коллизий
C-подобный:
/*
* Collision groups
* Taken from hl2sdk-ob-valve/public/const.h
*/
enum Collision_Group_t
{
    COLLISION_GROUP_NONE  = 0,
    COLLISION_GROUP_DEBRIS,                // Collides with nothing but world and static stuff
    COLLISION_GROUP_DEBRIS_TRIGGER,        // Same as debris, but hits triggers
    COLLISION_GROUP_INTERACTIVE_DEB,    // Collides with everything except other interactive debris or debris
    COLLISION_GROUP_INTERACTIVE,        // Collides with everything except interactive debris or debris
    COLLISION_GROUP_PLAYER,
    COLLISION_GROUP_BREAKABLE_GLASS,
    COLLISION_GROUP_VEHICLE,
    COLLISION_GROUP_PLAYER_MOVEMENT,    // For HL2, same as Collision_Group_Player, for
                                        // TF2, this filters out other players and CBaseObjects
    COLLISION_GROUP_NPC,                // Generic NPC group
    COLLISION_GROUP_IN_VEHICLE,            // for any entity inside a vehicle
    COLLISION_GROUP_WEAPON,                // for any weapons that need collision detection
    COLLISION_GROUP_VEHICLE_CLIP,        // vehicle clip brush to restrict vehicle movement
    COLLISION_GROUP_PROJECTILE,            // Projectiles!
    COLLISION_GROUP_DOOR_BLOCKER,        // Blocks entities not permitted to get near moving doors
    COLLISION_GROUP_PASSABLE_DOOR,        // Doors that the player shouldn't collide with
    COLLISION_GROUP_DISSOLVING,            // Things that are dissolving are in this group
    COLLISION_GROUP_PUSHAWAY,            // Nonsolid on client and server, pushaway in player code

    COLLISION_GROUP_NPC_ACTOR,            // Used so NPCs in scripts ignore the player.
    COLLISION_GROUP_NPC_SCRIPTED        // USed for NPCs in scripts that should not collide with each other
};

/**
* Gets the collision group of an entity.
*
* @param entity        entity index
* @return                Entity collision group.
*/
stock Collision_Group_t:Entity_GetCollisionGroup(entity)
{
    return Collision_Group_t:GetEntProp(entity, Prop_Data, "m_CollisionGroup");
}

/**
* Sets the collision group of an entity.
*
* @param entity        entity index
* @param value            the new collision group.
* @noreturn
*/
stock Entity_SetCollisionGroup(entity, Collision_Group_t:value)
{
    SetEntProp(entity, Prop_Data, "m_CollisionGroup", value);
}
Уже игрался с ними, не помогает
 

tonline_kms65_1

Участник
Сообщения
565
Реакции
225
Хмм... Попробую, может сработает, в любом случае спасибо.
Вместо оунерэнтити используй предиктайбл (предустановленного) владельца, и будет тебе счастье.
Я с тел. на работе, по английски сейчас не вспомню, но это точно поможет.
Домой приеду - напишу как правильно.
Вообще, все эти костыльные варианты ни есть хорошо. Любое обновление и все может слететь.
Создай массив для своего пропа и туда забивай все что тебе нужно.
 
Последнее редактирование:

WinsomeQuill

Участник
Сообщения
15
Реакции
1
Вместо оунерэнтити используй предиктайбл (предустановленного) владельца, и будет тебе счастье.
Я с тел. на работе, по английски сейчас не вспомню, но это точно поможет.
Домой приеду - напишу как правильно.
Вообще, все эти костыльные варианты ни есть хорошо. Любое обновление и все может слететь.
Создай массив для своего пропа и туда забивай все что тебе нужно.
m_PredictableID что ли? Это отличная замена m_hOwnerEntity, спасибо, все работает корректно. А что касается массива, то Zprop просто присваивает проп игроку, а другой плагин уже использует эти данные.
 

tonline_kms65_1

Участник
Сообщения
565
Реакции
225
m_PredictableID что ли? Это отличная замена m_hOwnerEntity, спасибо, все работает корректно. А что касается массива, то Zprop просто присваивает проп игроку, а другой плагин уже использует эти данные.
Да, это оно и есть. Но, как я уже писал, лучше от такого полу-костыльного полу-применения отказываться.
Это читерам хорошо использовать, перехватить какие либо константы и их использовать в своих целях. При обновлениях, в целях борьбы с этими самыми читерами, значения могут запросто изменить и тогда у тебя все просто слетит, а восстановить это будет ой как проблематично.
Насчет Zprop'а я не знаю что там такое и где оно. Знаю точно одно - создавай массив именно для своего пропа, при его создании, и туда записывай все то, что тебе будет нужно, всегда можно будет дополнить.
 
Сверху Снизу