Как создать псевдобраш

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #1
Необходимо создать браш с текстуркой NOCLIP по определённым координатам и с определённым размером. Как можно это сделать? Если, конечно, это вообще реализовывается.
Необходимо для своего сервера написать плагин, чтобы через конфиг можно было "залатывать" баги карт с отсутствующими стенками.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
с текстуркой NOCLIP
Это как? Оффтоп
"залатывать" баги карт с отсутствующими стенками
Может, просто прозрачный объект "встроить" в "баганную" стену? Тот же Blocker Passes, только добавить прозрачность установленным объектам.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #3
Мне в Скайпе подсказали вариант с невидимым пропом, через который нельзя проходить. Теперь вопрос века.
Пропы растягивать можно? :rofl:
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
"Супербольшой" стандартный Оффтоп проп: models/props/cs_office/clouds.mdl - огромный полупрозрачный полукупол. Не знаю, как насчёт формы (может, мешать будет), но его размеры спокойно покрывали всю ширину одну из ножевых карт 35hp.
 

gibs

Фитиль народного волненья
Сообщения
722
Реакции
407
Мошенник
@CrazyHackGUT, нет, модель столкновений задаётся самой моделью.
И я думал, что вы как-то более опытные, что ли))
Браш-ентити с текстурой на уже загруженной карте создать нельзя, эта инфа должна содержаться в бпс дереве карты. Но это не мешает создать солид браш. Триггер_мультиплай или функ_брейкейбл, например.
Допустим, так:
PHP:
#define ZONES_MODEL "models/error.mdl"

void SpawnZone(float m_vecMins[3], float m_vecMaxs[3])
{
    int zone = CreateEntityByName("func_breakable");
    if(zone == -1)
    {
        LogError("Error! Zone not created!");
        return;
    }
   
    DispatchKeyValue(zone, "spawnflags", "2048");
    DispatchKeyValue(zone, "StartDisabled", "0");
    DispatchKeyValue(zone, "propdata", "15");
    DispatchKeyValue(zone, "health", "10000");
    DispatchKeyValue(zone, "material", "5");
    DispatchKeyValue(zone, "disableshadows", "1");
    DispatchKeyValue(zone, "targetname", "brush");
    DispatchKeyValue(zone, "nodamageforces", "1");
   
    DispatchSpawn(zone);
    ActivateEntity(zone);
   
    float middle[3];
    GetMiddleOfABox(m_vecMins, m_vecMaxs, middle);
    TeleportEntity(zone, middle, NULL_VECTOR, NULL_VECTOR);
   
    SetEntityModel(zone, ZONES_MODEL);
    SetEntityMoveType(zone, MOVETYPE_NONE);
   
    m_vecMins[0] -= middle[0];
    if (m_vecMins[0] > 0.0)
        m_vecMins[0] *= -1.0;
    m_vecMins[1] -= middle[1];
    if (m_vecMins[1] > 0.0)
        m_vecMins[1] *= -1.0;
    m_vecMins[2] -= middle[2];
    if (m_vecMins[2] > 0.0)
        m_vecMins[2] *= -1.0;
   
    m_vecMaxs[0] -= middle[0];
    if (m_vecMaxs[0] < 0.0)
        m_vecMaxs[0] *= -1.0;
    m_vecMaxs[1] -= middle[1];
    if (m_vecMaxs[1] < 0.0)
        m_vecMaxs[1] *= -1.0;
    m_vecMaxs[2] -= middle[2];
    if (m_vecMaxs[2] < 0.0)
        m_vecMaxs[2] *= -1.0;
   
    SetEntPropVector(zone, Prop_Send, "m_vecMins", m_vecMins);
    SetEntPropVector(zone, Prop_Send, "m_vecMaxs", m_vecMaxs);
   
    SetEntProp(zone, Prop_Send, "m_usSolidFlags",  0x0010);
    SetEntProp(zone, Prop_Data, "m_nSolidType", 2);
    SetEntProp(zone, Prop_Send, "m_CollisionGroup", 6);
    SetEntProp(zone, Prop_Data, "m_takedamage", 0);
   
    int m_fEffects = GetEntProp(zone, Prop_Send, "m_fEffects");
    m_fEffects |= 0x020;
    SetEntProp(zone, Prop_Send, "m_fEffects", m_fEffects);
   
    AcceptEntityInput(zone, "Enable");
}
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #6
@AlmazON, у меня не КСС) ТФ)
@gibs, я с моделями (энтитями, в данном случае) конкретно не работал, увы. И да, спасибо за подсказки, попробую.
--- Добавлено позже ---
Такой вопрос сейчас возник. А энтити же пересоздавать не надо в новом раунде? Чисто в OnMapStart() запихать создание "браша", и всё?
--- Добавлено позже ---
Вообщем, спасибо всем, кто откликнулся. Можете закрывать тему. Проблема решена.
 
Последнее редактирование:

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
@AlmazON, у меня не КСС) ТФ)
@gibs, я с моделями (энтитями, в данном случае) конкретно не работал, увы. И да, спасибо за подсказки, попробую.
--- Добавлено позже ---
Такой вопрос сейчас возник. А энтити же пересоздавать не надо в новом раунде? Чисто в OnMapStart() запихать создание "браша", и всё?
--- Добавлено позже ---
Вообщем, спасибо всем, кто откликнулся. Можете закрывать тему. Проблема решена.
Эх, когда то и крузя даже не писал решений, после успешного их нахождения)
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #8
@Palonez, потому что я не решил проблему. Я просто забил хрен на неё, и всё. Вот и всё моё решение.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #10
@Palonez, а сейчас у меня такой проблемы не стоит, т.к. серва нет уже года два. Следовательно зачем мне решать эту проблему?
Я что тогда, что сейчас не особо люблю с энтити работать, потому что тут есть 1000 и 1 способ выстрелить себе в колено, даже если этого способа не видно.
 
Сверху Снизу