Разрешить прострелы стен (worldspawn)

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
9
Реакции
2
Неверный раздел форума
Есть например плагин No Shoot Through Walls ( https://dev-cs.ru/threads/1914/ )
Хочу сделать наоборот - Shoot Through Walls. На alliedmods несколько аналогов есть, но код значительно устарел.

Заранее спасибо.
 
Сообщения
2,751
Реакции
3,017
Помог
61 раз(а)
Какие у тебя предложения как добиться своего результата?
 
Сообщения
491
Реакции
89
Помог
5 раз(а)
Прошу учесть, что тут помогают после каких-либо ваших "я попробовал сделать". Если у вас нет каких-либо наработок, вам сюда:
Сделайте мне плагин
 
Сообщения
9
Реакции
2
Помог s1lent , большое спасибо.
Есть один нюанс, пол и небо не простреливает, сразу срабатывает flFraction == 1.0
Поправимо ли?

Код:
#include <amxmodx>
#include <fakemeta>
#include <xs>
#include <hamsandwich>

new const g_szRegEngitiesList[][] =
{
    "worldspawn",
    "func_wall",
    "func_breakable"
};

public plugin_init()
{
    for (new i; i < sizeof(g_szRegEngitiesList); i++)
    {
        RegisterHam(Ham_TraceAttack, g_szRegEngitiesList[i], "CBasePlayer_TraceAttack");
    }
}

new const Float:MAX_EACH_DISTANCE = 8192.0;

public CBasePlayer_TraceAttack(victim, attacker, Float:damage, Float:vecDir[3], tracehandle, damagebits)
{
    new Float:vecSrc[3], Float:vecEnd[3];

    for (;;)
    {
        new Float:flFraction;
        get_tr2(tracehandle, TR_flFraction, flFraction);

        if (flFraction == 1.0)
        {
            return HAM_IGNORED;
        }

        new pHit = get_tr2(tracehandle, TR_pHit);

        if (pHit > 0 && pHit <= MaxClients)
        {
            SetHamParamEntity(1, pHit);
            return HAM_IGNORED;
        }
      
        get_tr2(tracehandle, TR_vecEndPos, vecSrc);

        xs_vec_add_scaled(vecSrc, vecDir, 5.0, vecSrc);
        xs_vec_add_scaled(vecSrc, vecDir, MAX_EACH_DISTANCE, vecEnd);

        engfunc(EngFunc_TraceLine, vecSrc, vecEnd, DONT_IGNORE_MONSTERS, pHit, tracehandle);     
    }

    return HAM_IGNORED;
}
 
Последнее редактирование модератором:

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
Freezet, 2 сообщения выше тебе ничего не говорят? :)
 
Сообщения
9
Реакции
2
У меня нет предложений, ранее не приходилось с работать с трейсом и я не против оплатить работу/помощь.
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
Freezet,

В данном разделе размещаются темы, в которых требуется помощь с доработкой или объяснением материала.

В теме должны быть опубликованы попытки (diff кода или последовательность действий) самостоятельного поиска решения.

Если у вас нет наработок и попыток самому вникнуть в проблему, тогда вам в раздел "Покупка"
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу