sv_force_ent_intersection + resemiclip

Сообщения
35
Реакции
6
Ошибка
В тексте темы
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5229
Билд
ReHLDS version: 3.4.0.668-dev
ReGamedll
ReGameDLL version: 5.7.0.314-dev
Версия Metamod
Metamod-r v1.3.0.128, API (5:13)
Список метамодулей
[ 1] Reunion RUN - reunion_mm_i386.so v0.1.0.92 ini Start Never
[ 2] ReAuthCheck RUN - reauthcheck_mm_i386.so v0.1.6 ini Start Never
[ 3] Rechecker RUN - rechecker_mm_i386.so v2.5 ini Chlvl ANY
[ 4] VoiceTranscoder RUN - VoiceTranscoder.so v2017RC3 ini ANY ANY
[ 5] SafeNameAndChat RUN - SafeNameAndChat.so v1.1 ini ANY ANY
[ 6] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5229 ini Start ANY
[ 7] WHBlocker RUN - whblocker_mm_i386.so v1.5.695 ini Chlvl ANY
[ 8] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 9] hackdetector RUN - hackdetector_amxx_i386.so v0.15.328.lite ini ANY ANY
[10] MySQL RUN - mysql_amxx_i386.so v1.9.0.5229 pl6 ANY ANY
[11] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5229 pl6 ANY ANY
[12] Engine RUN - engine_amxx_i386.so v1.9.0.5229 pl6 ANY ANY
[13] Fun RUN - fun_amxx_i386.so v1.9.0.5229 pl6 ANY ANY
[14] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5229 pl6 ANY ANY
[15] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5229 pl6 ANY ANY
[16] ReAPI RUN - reapi_amxx_i386.so v5.6.0.160-dev pl6 ANY Never
16 plugins, 16 running
Список плагинов
Думаю не требуется
Автор плагина
Думаю не требуется
Версия плагина
Думаю не требуется
Исходный код
stock bool:is_hull_vacant(const Float:origin[3],id)
{
static tr
engfunc(EngFunc_TraceHull, origin, origin, 0, pev(id, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN, id, tr)
if (!get_tr2(tr, TR_StartSolid) && !get_tr2(tr, TR_AllSolid) && get_tr2(tr, TR_InOpen))
return true

return false
}
Всем привет.
Подскажите пож-та, при параметре ReHLDS sv_force_ent_intersection 1 (+используется Resemiclip) перестает работать сток проверки на возможность перемещения в заданную точку (возвращает true вместо false). Данный сток использую для автоматического анстака игроков. При окончании действия ReSemiclip игроки находясь в одной точке и оставаясь прозрачными не разлипаются.
При sv_force_ent_intersection 0 сток как и надо возвращает false..
 
Последнее редактирование модератором:
Сообщения
2,713
Реакции
2,995
Помог
59 раз(а)
Список плагинов действительно не нужен. https://github.com/dreamstalker/reh...9d0d797b0/rehlds/engine/world.cpp#L1226-L1232
https://github.com/rehlds/resemiclip/blob/7ec28f71863c9278ff81f2db7446d8e9475ba8ff/src/main.cpp#L390

juice не подскажешь как поправить? Я не могу понять причину.
hANSON, если попробовать побаловаться параметрами ReSemiclip - проблема не решается?
 
Последнее редактирование:
Сообщения
35
Реакции
6
wopox1337, извиняюсь ,ступил:sorry:. Отключил ReSemiclip, ситуация не изменилась. Дело значит не в нем.
Проблема в итоге между стоком и sv_force_ent_intersection.
 
Сообщения
90
Реакции
126
Помог
3 раз(а)
hANSON, сейчас проверил, у меня нормально работает сток(проверял на стенах de_dust2 ). Есть какие-то дополнительные данные? Например сквозь что идет трейс?
 
Сообщения
35
Реакции
6
swank, со стеной тоже проблем нет, проблема разлипания только между игроками. Записал видео для примера.

И часть процедуры, отвечающей за unstuck
Код:
new const Float:size[][3] =
{
    {0.0, 1.0, 0.0}, {0.0, -1.0, 0.0}, {1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}, {-1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}, {1.0, -1.0, 1.0}, {1.0, 1.0, -1.0}, {-1.0, -1.0, 1.0}, {1.0, -1.0, -1.0}, {-1.0, 1.0, -1.0}, {-1.0, -1.0, -1.0},
    {0.0, 2.0, 0.0}, {0.0, -2.0, 0.0}, {2.0, 0.0, 0.0}, {-2.0, 0.0, 0.0}, {0.0, 0.0, 2.0}, {0.0, 0.0, -2.0}, {-2.0, 2.0, 2.0}, {2.0, 2.0, 2.0}, {2.0, -2.0, 2.0}, {2.0, 2.0, -2.0}, {-2.0, -2.0, 2.0}, {2.0, -2.0, -2.0}, {-2.0, 2.0, -2.0}, {-2.0, -2.0, -2.0},   
    {0.0, 3.0, 0.0}, {0.0, -3.0, 0.0}, {3.0, 0.0, 0.0}, {-3.0, 0.0, 0.0}, {0.0, 0.0, 3.0}, {0.0, 0.0, -3.0}, {-3.0, 3.0, 3.0}, {3.0, 3.0, 3.0}, {3.0, -3.0, 3.0}, {3.0, 3.0, -3.0}, {-3.0, -3.0, 3.0}, {3.0, -3.0, -3.0}, {-3.0, 3.0, -3.0}, {-3.0, -3.0, -3.0},
    {0.0, 4.0, 0.0}, {0.0, -4.0, 0.0}, {4.0, 0.0, 0.0}, {-4.0, 0.0, 0.0}, {0.0, 0.0, 4.0}, {0.0, 0.0, -4.0}, {-4.0, 4.0, 4.0}, {4.0, 4.0, 4.0}, {4.0, -4.0, 4.0}, {4.0, 4.0, -4.0}, {-4.0, -4.0, 4.0}, {4.0, -4.0, -4.0}, {-4.0, 4.0, -4.0}, {-4.0, -4.0, -4.0},
    {0.0, 5.0, 0.0}, {0.0, -5.0, 0.0}, {5.0, 0.0, 0.0}, {-5.0, 0.0, 0.0}, {0.0, 0.0, 5.0}, {0.0, 0.0, -5.0}, {-5.0, 5.0, 5.0}, {5.0, 5.0, 5.0}, {5.0, -5.0, 5.0}, {5.0, 5.0, -5.0}, {-5.0, -5.0, 5.0}, {5.0, -5.0, -5.0}, {-5.0, 5.0, -5.0}, {-5.0, -5.0, -5.0}
}   
    
public auto_unstuck()
{
    static players[32], num, player
    client_print(0,print_chat, "!!!!!!!!!!!!!!!! UNSTUCK !!!!!!!!!!!!!!!!!")
    get_players(players, num, "ach")
    static Float:origin[3]
    static Float:mins[3]
    static Float:vec[3]
    static o,i
    for(i=0; i<num; i++)
    {
        player = players[i]
        pev(player, pev_origin, origin);
        if (!is_hull_vacant(origin, player))
        {
            pev(player, pev_mins, mins)
            for (o=0; o < sizeof size; ++o)
            {
                vec[0] = origin[0] - mins[0] * size[o][0]
                vec[1] = origin[1] - mins[1] * size[o][1]
                vec[2] = origin[2] - mins[2] * size[o][2]
                if (is_user_alive(player) && is_hull_vacant(vec, player))
                {
                    engfunc(EngFunc_SetOrigin, player, vec)
                    o = sizeof size
                }
            }
        }       
    }
}
 
Сообщения
35
Реакции
6
Есть добрые люди, которые смогут помочь с решением данной проблемы?)
 

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

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