shavitush / bhoptimer

A bunnyhop timer plugin for Counter-Strike: Source, Counter-Strike: Global Offensive and Team Fortress 2.
https://timer.shav.it
GNU General Public License v3.0
228 stars 93 forks source link

[Feature Request] Block Zone #1169

Open Uronic opened 1 year ago

Uronic commented 1 year ago

A zone which blocks the player. This zone type exists in Influx Timer.

This is the code from influx:

        default :
        {
            float spd = GetEntitySpeed( client ) * 0.5;

            if ( spd < 300.0 )
            {
                spd = 300.0;
            }

            decl Float:temp[3], Float:temp2[3];
            GetClientAbsOrigin( client, temp );
            GetEntityOrigin( ent, temp2 );

            float dist = GetVectorDistance( temp, temp2, false );
            for ( int i = 0; i < 3; i++ )
            {
                temp[i] = ( (temp[i] - temp2[i]) / dist ) * spd;
            }

            GetClientEyeAngles( client, temp2 );
            temp2[0] = GetRandomFloat( -89.0, 89.0 );
            temp2[1] = GetRandomFloat( -180.0, 180.0 );

            TeleportEntity( client, NULL_VECTOR, temp2, temp );
        }
    }

    if ( print && GetEngineTime() > g_flNextMsg[client] )
    {
        PrintCenterText( client, "You shouldn't be here!" );

        g_flNextMsg[client] = GetEngineTime() + 1.0;
    }

https://github.com/InfluxTimer/sm-timer/blob/d3e055ecf4d25cbb08ffd531215a7be49e641a6a/addons/sourcemod/scripting/influx_zones_block.sp#L536-L568

rtldg commented 1 year ago

I'm not really a fan of adding a push zone to keep people out of somewhere tbh. In my opinion, the map should be fixed with stripper, a _fix bsp, or obviously teleport/glitch zones.

It's also possible to make a zone solid although which could fill in a place. Although you'd have to edit the zones db to make a solid zone right now. https://github.com/shavitush/bhoptimer/blob/f4cd4e9e6adce239e7574691531f6ce85fe32d81/addons/sourcemod/scripting/shavit-zones.sp#L1489-L1493 I'll come back to this sometime whenever I make solid zones possible from the menus or decide to add push zones