Crack Glass

Crack Glass 1.0

Нет прав для скачивания

MayroN

Моделлер
Проверенный
Сообщения
80
Реакции
56
Помог
1 раз(а)
Баллы
18
MayroN добавил(а) новый ресурс:

Crack Glass - Трещины на стеклах

Плагин добавляет модели трещин на стеклах



Узнать больше об этом ресурсе...
Сообщение автоматически объединено:

ВАЖНО
На данный момент трещины будет показывать абсолютно на всех func_breakable
Если разрушаемый ящик или же решётка будет иметь такой класснейм - то трещины будет и там показывать

Конкретное решение нашёл частично здесь
Но в этом случаи почему-то не может показать трещины на стёклах в разных картах ( хотя конкретно на ящиках или ещё где - закрывает )

Хто желает доработать нормально - вот кусок дерьма

C-подобный:
stock bool:IsGlassBreakable(ent, Float:start[3], Float:end[3])
{
    if(!pev_valid(ent))
        return false;

    static classname[32]
    pev(ent, pev_classname, classname, charsmax(classname))

    if(!equal(classname, "func_breakable"))
        return false;

    // Проверка renderamt
    static Float:renderamt
    pev(ent, pev_renderamt, renderamt)

    if(renderamt < 1.0)
        return false;

    // Проверка текстуры
    static texture[64]

    engfunc(EngFunc_TraceTexture, ent, start, end, texture, charsmax(texture))

    if(!texture[0])
        return false;

    // Проверяем названия стеклянных текстур
    if(containi(texture, "glass") != -1)
        return true;

    if(containi(texture, "window") != -1)
        return true;

    if(containi(texture, "break") != -1)
        return true;

    return false;
}
 
Последнее редактирование:
Я же правильно понимаю, что трещины должны создаваться только если мы находимся непосредственно на стекле?
breakable_test.png
Если трешься о стекло в любой проекции (сбоку или сверху оно над тобой), то под тобой создаются трещинки.

Вариант решения:
1.
C-подобный:
public Show_Crack(id)
Заменить
C-подобный:
public Show_Crack(id, ent)

2.
C-подобный:
if (fraction >= 1.0)
Заменить
C-подобный:
if (fraction >= 1.0 || get_tr2(0, TR_pHit) != ent)


На данный момент трещины будет показывать абсолютно на всех func_breakable
Если разрушаемый ящик или же решётка будет иметь такой класснейм - то трещины будет и там показывать
Если объект разрушаемый, то создатели карт задают нужный материал разрушения, можно добавить проверку на этот материал.
Для стекла это ent pdata m_Material = 0.
 
@Kurtis,
Спасибо тебе большое (y)
Благодаря оффсету и другим данным наш ГПТ справился с первого раза :)

Вообще-то можно пойти дальше и рисовать при стрельбе на неразбиваемом стекле дырки или до момента разбитого,а потом удалять
Шанс какой-то там их появления
 

Кто просматривает тему

  • zver
Назад
Верх