Prokreedz Semiclip stuck fix for movable objects

Сообщения
15
Реакции
0
Hey,

I had certain issues with Prokreedz 2.31 when players get stuck when two or more players are standing nearby on a movable object. Can anyone help me fix this? This doesn't happen with Deathrun Manager 3.03's semiclip. I'm using DRM Triggers and Entities Fix for both KZ and Deathrun.

Код:
//KZ Semiclip

public FM_client_AddToFullPack_Post(es, e, ent, host, hostflags, player, pSet)
{
    if( player )
    {
        if (get_pcvar_num(kz_semiclip) == 1)
        {
            if ( host != ent && get_orig_retval() && is_user_alive(host) )
                {
                set_es(es, ES_Solid, SOLID_NOT)
                set_es(es, ES_RenderMode, kRenderTransAlpha)
                set_es(es, ES_RenderAmt, get_pcvar_num(kz_semiclip_transparency))
            }
        }
        if(gMarkedInvisible[ent] && gViewInvisible[host])
        {
               set_es(es, ES_RenderMode, kRenderTransTexture)
            set_es(es, ES_RenderAmt, 0)
            set_es(es, ES_Origin, { 999999999.0, 999999999.0, 999999999.0 } )
        }
    }
    else if( gWaterInvisible[host] && gWaterEntity[ent] )
    {
        set_es(es, ES_Effects, get_es( es, ES_Effects ) | EF_NODRAW )
    }
   
    return FMRES_IGNORED
}

public Ham_CBasePlayer_PreThink_Post(id)
{
    if( !is_user_alive(id) )
        return

    RefreshPlayersList()

    if (get_pcvar_num(kz_semiclip) == 1)
    {
        for(new i = 0; i<g_iNum; i++)
        {
            g_iPlayer = g_iPlayers[i]
            if( id != g_iPlayer )
                set_pev(g_iPlayer, pev_solid, SOLID_NOT)
        }
    }
}

public client_PostThink(id)
{
    if( !is_user_alive(id) )
        return

    RefreshPlayersList()

    if (get_pcvar_num(kz_semiclip) == 1)
    {
        for(new i = 0; i<g_iNum; i++)
           {
            g_iPlayer = g_iPlayers[i]
            if( g_iPlayer != id )
                set_pev(g_iPlayer, pev_solid, SOLID_SLIDEBOX)
           }
    }
}

Код:
//Deathrun Semiclip

public FwdFullPack( es, e, ent, host, flags, player, pSet ) {
    if( !g_bEnabled )
        return FMRES_IGNORED;
   
    if( player && g_iSemiClip[ ent ] && g_iSemiClip[ host ] ) {
        set_es( es, ES_Solid, SOLID_NOT );
        set_es( es, ES_RenderMode, kRenderTransAlpha );
        set_es( es, ES_RenderAmt, 85 );
    }
   
    return FMRES_IGNORED;
}

public FwdStartFrame( ) {
    if( !g_bEnabled )
        return FMRES_IGNORED;
   
    static iPlayers[ 32 ], iNum, iPlayer, iPlayer2, i, j;
    get_players( iPlayers, iNum, "ache", "CT" );
   
    arrayset( g_iSemiClip, 0, 32 );
   
    if( iNum <= 1 )
        return FMRES_IGNORED;
   
    for( i = 0; i < iNum; i++ ) {
        iPlayer = iPlayers[ i ];
       
        for( j = 0; j < iNum; j++ ) {
            iPlayer2 = iPlayers[ j ];
           
            if( iPlayer == iPlayer2 )
                continue;
           
            if( g_iSemiClip[ iPlayer ] && g_iSemiClip[ iPlayer2 ] )
                continue;
           
            if( entity_range( iPlayer, iPlayer2 ) < 128 ) {
                g_iSemiClip[ iPlayer ]    = true;
                g_iSemiClip[ iPlayer2 ]    = true;
            }
        }
    }
   
    for( i = 0; i < iNum; i++ ) {
        iPlayer = iPlayers[ i ];
       
        set_pev( iPlayer, pev_solid, g_iSemiClip[ iPlayer ] ? SOLID_NOT : SOLID_SLIDEBOX );
    }
   
    return FMRES_IGNORED;
}
 
Сообщения
32
Реакции
3
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
MaNaReaver

With this code u don't have problem but if u use KZ Semiclip problem is showing?

Код:
//Deathrun Semiclip

public FwdFullPack( es, e, ent, host, flags, player, pSet ) {
    if( !g_bEnabled )
        return FMRES_IGNORED;
   
    if( player && g_iSemiClip[ ent ] && g_iSemiClip[ host ] ) {
        set_es( es, ES_Solid, SOLID_NOT );
        set_es( es, ES_RenderMode, kRenderTransAlpha );
        set_es( es, ES_RenderAmt, 85 );
    }
   
    return FMRES_IGNORED;
}

public FwdStartFrame( ) {
    if( !g_bEnabled )
        return FMRES_IGNORED;
   
    static iPlayers[ 32 ], iNum, iPlayer, iPlayer2, i, j;
    get_players( iPlayers, iNum, "ache", "CT" );
   
    arrayset( g_iSemiClip, 0, 32 );
   
    if( iNum <= 1 )
        return FMRES_IGNORED;
   
    for( i = 0; i < iNum; i++ ) {
        iPlayer = iPlayers[ i ];
       
        for( j = 0; j < iNum; j++ ) {
            iPlayer2 = iPlayers[ j ];
           
            if( iPlayer == iPlayer2 )
                continue;
           
            if( g_iSemiClip[ iPlayer ] && g_iSemiClip[ iPlayer2 ] )
                continue;
           
            if( entity_range( iPlayer, iPlayer2 ) < 128 ) {
                g_iSemiClip[ iPlayer ]    = true;
                g_iSemiClip[ iPlayer2 ]    = true;
            }
        }
    }
   
    for( i = 0; i < iNum; i++ ) {
        iPlayer = iPlayers[ i ];
       
        set_pev( iPlayer, pev_solid, g_iSemiClip[ iPlayer ] ? SOLID_NOT : SOLID_SLIDEBOX );
    }
   
    return FMRES_IGNORED;
}
 
Сообщения
15
Реакции
0
Vakos No players are getting stuck on Deathrun Semiclip, however, there are some other issues, notably certain places in Deathrun maps where people are dying without any reason, as well as name not showing up at the corner left side while pointing at the player. Also, JumpStats show up wrongly at sped-up start locations that kill AFK players.
 
Сообщения
576
Реакции
1,003
Помог
18 раз(а)
You can use REHLDS with its cvar sv_force_ent_intersection 1 and ReSemiclip with ReGameDLL. This is the best variant for semiclip.
 
Сообщения
32
Реакции
3
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Сообщения
45
Реакции
-1
Помог
1 раз(а)
I have problem with this for more than 2-3 years, urgent help
 

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

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