AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Approved Plugins (https://forums.alliedmods.net/forumdisplay.php?f=8)
-   -   Block Wallhack v8 [CS & CZ] (https://forums.alliedmods.net/showthread.php?t=100886)

ot_207 08-18-2009 21:28

Block Wallhack v8 [CS & CZ]
 
2 Attachment(s)


Description:
This plugin blocks wallhacks (transparent walls) and soundhacks (squares, esps) including radar hacks by differently transmitting and filtering entity data.
It is advised to read everything about the plugin before asking questions! I will try to cover everything that you need to know here!
Also follow the instructions they are posted here for a reason!!!

If you ask a question that is already answered here your post will be ignored!





Features:
  • Player non visibility transfer block
    If the player does not see one of the points in the visibility plane of a player the player will not be transmitted therefore becoming invisible for transparent wall cheats.
  • Smooth engine
    The plugin adds prediction to player movement, it will make players not pop (appear out of nowhere).
  • FOV Check
    The plugins checks if the players are in front of us or not, if not the players will not be transmitted, it helps when we talk about CPU efficiency and also for cheats that show the player in 3rd person view.
  • Transparent entity detection and storage base
    It checks if we can see through an entity and it will modify it's properties so that the traces will not be influenced by it! The players will not notice anything!
  • Grenade and weapon transfer block
    The plugin will block entities like grenades and weapons when they are not seen.
  • ESP block
    The plugin will block soundhack and ESP by transmitting the sounds through different channels.
  • Footsteps generator
    The plugin will generate footsteps, if you want this remember to set mp_footsteps to 0!
  • Soundhack key
    The plugin will rename the sounds (the original sounds will not be deleted!) only if you want to this is optional! This helps when there are cheats that show the name of the sound on the screen, so that cheaters will not be able to understand what they mean.
  • Support for dynamic cameras
    The plugin will detect when a player uses a camera and will not affect the visibility.
  • New updated notifier
    The plugin will notify admins when an update is available!

Known bugs (cannot be fixed):
  • Player popping
    There is a risk that player pops out of nowhere, but the chance is small.
  • Player lag late appearance
    If the players have lag the plugin will make it even more difficult for them to play.
  • High ping sometimes [Problem seen on CSDM servers]
    Disable target check! If you are experiencing this problem!
  • Sounds sound different
    It is because of the different transmission. Don't worry about it!

Requirements:
  • Steam
  • AmxModX v1.80
  • EngineX
  • Orpheu




Installation:
  1. Download orpheu_base.zip from here, and unzip the archive in the "<target>/amxmodx" folder
  2. Unzip the file "cstrike" in the "<target>/cstrike" folder
  3. Add the plugin to plugins.ini.
  4. Enjoy!

Cvars:
  • // // TRW Block // //
  • trw_enable 1 // 1 (default/recommended) - plugin is turned on, 0 - off
  • trw_ignore_team 1 // 1 (default) if the plugin ignores teammates, 0 will check teammates and block them if not seen
  • trw_block_ents 0 // 3 block "grenade/armoury/weapon" entities with more checks, 2 block all entities but do more calculations on "grenade" entities, 1 block all entities that are not seen (no extra calculations), 0 (default) let the engine decide
  • trw_fov_check 1 // 1 (default/recommended) - do not transmit entities that are behind the player, 0 transmit everything
  • trw_target_check 1 // 1 (default) - if user shoots and hits someone that person will not be transmited, 0 disable tis check
  • trw_smooth_check 2 // 2 (default/recommended) - it will make the players not pop using vector calculations, 1 it will make players not pop using origin prediction, 0 disabled smooth check
  • trw_textureallow 1 // 1 (default/recommended) - will make the plugin ignore transparent entities, 0 disable this check
  • // // SND Block // //
  • snb_enable 1 // 1 (default/recommended) enable ESP sound blocking, 0 - disabled plugin
  • snb_footsteps 1 // 1 (default/recommended) make the plugin generate footsteps set mp_footsteps to 0!!!, 0 disabled
  • snb_shotover 1 // 1 (default/recommended) override shots, 0 disabled

Config files information:
  • wb_sndkey.cfg
    Location: <target>/cstrike/addons/amxmodx/data/
    This file only appears only if you want to use the soundhack key! The key can be imported from another file and can be managed with the server command wb_createsoundkey. If you have updated the plugin there is a chance that it will not be compatible with the last block wallhack version (depending on updates).
    If you get in the console some of these messages:
    [Block Wallhack] Soundhack key version load failure (Version read failure). Using default sounds!
    [Block Wallhack] Soundhack key version load failure (Number of sounds does not correspond). Using default sounds!
    That means you need to delete these files and folders manually in order to create a new soundkey:
    "addons/amxmodx/data/wb_sndkey.cfg"
    "sound/wallblocker/"
Soundhack key mamagement command:
amx_sndkeycfg <command> <target> -> creates the soundhack key!
This override commands will only work only if the present soundkey is loaded, if it is not loaded you will get an override error.

Here are the usage examples:
amx_sndkeycfg help - this will show you how to use the command
amx_sndkeycfg delete - this will delete the present soundkey (only if it was loaded)
amx_sndkeycfg create - this will delete the present soundkey (only if it was loaded) and create a new one
amx_sndkeycfg import <target> - this will import a soundkey from a file (will not override the present soundkey)
amx_sndkeycfg overimport <target> - this will import a soundkey from a file and delete the present one (only if it was loaded)

How to install the the same soundkey on multiple servers:
In the first server you type the command amx_sndkeycfg create in console to create a soundkey.
After you have done this go to the folder <target>/cstrike/addons/amxmodx/data and copy the file wb_sndkey.cfg.
After that paste that file in the same folder for other servers, the plugin should get the soundhack key automatically.

Movies: [Watch in high quality]
Wallblocker vs Normal Wallhack
Wallblocker vs ESP(AddToFullPack)
Wallblocker vs Soundhack Demo mp_footsteps 0 or with soundhack block!
Wallblocker vs Soundhack Demo mp_footsteps 1

Changelog:
PHP Code:

8.0 fixed crash bugfixed high cpu usage bugadded also support for ent sounds and reloadsoundExtended the functionality of trw_block_entsfixed go thru wall bugspawning players beeing transmitedadded update notifier system
7.0 Remade the cvars because they weren't so user friendly, made the plugin use spawnStaticSound, now this can fully block ESP and SoundHack
- 6.3 - soundhackkey not compatible with older soundkeys, added more sounds to block the soundhacks, extended the block to entities that would give info about the player, fixed crashing due to get_orig_retval function.
- 6.2 - added engine visibility filters, even less lag, the plugins cannot be seen on game-monitor anymore (for surprize)
- 6.1 - fixed the ping bug, the plugins are even more efficient!
- 6.0 - separated the features in separate plugins, 100% cpu usage problem improvement, fixed texture problem that crashes the server, more stable and faster, removed the orpheu module, no more shot override (unable to fix the bugs!), footsteps are done in another way, removed the distortion wave because of the sound problems
- 5.6 - Fixed the amxx crash bug when soundkey has been used
- 5.5 - Changed the way the command of creating soundkey works, added log to files, added more cvars for configuration, and miscelanous things
- 5.4 - Anti-Soundhack shot, pick-up and spawn, fixed spec bug
- 5.3 - Separated the channels from the shot mechanism (now we have the sound of the shot, the bullet particles and the weapon animation separated!)
- 5.2 - Fixed double jump/land sound, made the soundkey use less resources if the sounds that are used are default, removed PVS cvar (useless), new cvar wallblocker_footsteps
- 5.1 - PreHook fix, EmitAmbientSound function used, update key (more random and better when dealing with problems!)
- 5.0 - Added anti-soundhack based with key, made the ents follow the players much closer
- 4.8 - Less crash risk, new method of detecting transparent ents and making them transperent will not destroy ladded functionality anymore!!!
- 4.5 - texture check now isn'
t made that often (less crash risk!), added texture check autodisable cfgadded a new method to ignore entities that are transparent (100efficient), reupdated the weapon headpoint
4.2 added bitsum remember systemsmooth check is made now by FRAME_CONSTANT (1/48), changed alive/dead recognision system (less resource use!)
4.1 fixed plugin_init problem!
4.0 all bugs fixedadded texture check everything tweaked and tuned!
3.0 removed Engine module (another method), improved smooth engineremoved fixed flashing bugtarget check now works both ways (if you are seen the player will be shown!)
2.5 removed HamSandWich module (useless), improved smooth checkcorpse remove bug fixedoptimized the code a little bit.
2.4 bug fix release (weapon index out of bounds fixreconnect bug fix (with CSDM), made the ent check not so sensitive (not so many blind-spots)
2.2 bug fix release (index out of bounds weapon confusion bug)
2.1 removed a bugged feature (block_dead cvar), added smooth cvar
2.0 more customizableless cpu usage (50TESTED!), weapons grenades check addedbug fixes
1.5 removed some checksoptimized it a bitadded weapon head-point check
1.0 initial release 

Credits:
- joropito - for compiling engineX on linux
- hlstriker - for finding the way to detect semi-transparent textures!
- h010c - for tests and benchmarks, anti-soundhack tests and code samples
- joaquimandrade - for pointing out the plugin flaws, and for the Orpheu module
- Connor - some stocks
- Arkshine - for finding precise weapon head points, and for some sig files, spawnStaticSound
- Mnx Community - for letting me test this plugin on linux!
- turshija - for some small suggestions.
- .Owyn. - bug reports
- ShlumPF* - for small improvements (initial v1.0)
- eD & Niculae - for some tests

Plugin camera compatability!
Add this function after you have used attach_view() or EngFunc_SetView functions
PHP Code:

stock wb_setview(idattachent)
{
    if (!
cvar_exists("wallblocker_version") && !cvar_exists("trwb_version"))
        return 
0
 
    callfunc_begin
("fw_setview"cvar_exists("wallblocker_version") ? "block_wallhack.amxx" "trblock.amxx")
    
callfunc_push_int(id)
    
callfunc_push_int(attachent)
    
callfunc_end()
 
    return 
1



Exolent[jNr] 08-18-2009 21:33

Re: Block Wallhack
 
It seems you are only checking the 8 corners of the player's hitbox.
What about in complicated maps that the 4 corners may not be visible, but other parts are?
An example would be if a terrorist is standing on the vent ladder in cs_assault where his head is above the top and the feet are below the bottom, so all you can see is the stomach area.

ot_207 08-18-2009 21:36

Re: Block Wallhack
 
Quote:

Originally Posted by Exolent[jNr] (Post 905039)
It seems you are only checking the 8 corners of the player's hitbox.
What about in complicated maps that the 4 corners may not be visible, but other parts are?
An example would be if a terrorist is standing on the vent ladder in cs_assault where his head is above the top and the feet are below the bottom, so all you can see is the stomach area.

Not only 8 it checks the user origin, and the points between the 8 border points and origin so in total 17 points.

SchlumPF* 08-19-2009 01:07

Re: Block Wallhack
 
found two things you really should optimize :/
anyway, as long as you do not detect whether a player can see another one more accurately this plugin is worthless + did you check whether this plugin really blocks wallhacks? i doubt that it will block all hacks since there should be more than just 1 way of creating a wallhack :D

PHP Code:

// fail, pev_flags can only change during player think which makes caching this one in prethink much better that this...
// NEVER USE ADDTOFULLPACK WITHOUT CACHING AS MUCH DATA AS POSSIBLE!!!
if ( pev(entpev_flags) & FL_DUCKING )

// --------------------------

// fail again, creating a new var over and over again in your plugin? you should modify
// stocks you use since most only use variables initialized by "new", in this case you should use
// a static variable
new Float:fraction


ConnorMcLeod 08-19-2009 01:08

Re: Block Wallhack
 
You could use ExecuteHam(Ham_FVecVisible, this, const Float: origin[3]), then you wouldn't have to retrieve player eyes position.

Code:

BOOL CBaseEntity :: FVisible ( const Vector &vecOrigin )
{
        TraceResult tr;
        Vector                vecLookerOrigin;
       
        vecLookerOrigin = EyePosition();//look through the caller's 'eyes'

        UTIL_TraceLine(vecLookerOrigin, vecOrigin, ignore_monsters, ignore_glass, ENT(pev)/*pentIgnore*/, &tr);
       
        if (tr.flFraction != 1.0)
        {
                return FALSE;// Line of sight is not established
        }
        else
        {
                return TRUE;// line of sight is valid.
        }
}


joaquimandrade 08-19-2009 01:21

Re: Block Wallhack
 
I had this idea also (and I think that it has also implemented in HLGuard) and the true is: it is almost impossible to make it right without a huge amount of calculations and probably that will make it laggy with many users. One particular point where calculations are missing is in checking if the player carried weapon is visible (what is out of the player's bounding box). That will easily damage the game. And, as Exolent said particular, entities or map, designs can make it behave bad.

Edit: I have an simple idea to you. Instead of shipping it as an anti-wallhack solution, you could make it usable when you perform an action. Example: you suspect that a player is cheating, enable it on him, and check if his performance hugely differs.

One thing about the code: In traceline you should "IGNORE_GLASS".

ot_207 08-19-2009 02:58

Re: Block Wallhack
 
Quote:

Originally Posted by SchlumPF* (Post 905149)
found two things you really should optimize :/
anyway, as long as you do not detect whether a player can see another one more accurately this plugin is worthless + did you check whether this plugin really blocks wallhacks? i doubt that it will block all hacks since there should be more than just 1 way of creating a wallhack :D

PHP Code:

// fail, pev_flags can only change during player think which makes caching this one in prethink much better that this...
// NEVER USE ADDTOFULLPACK WITHOUT CACHING AS MUCH DATA AS POSSIBLE!!!
if ( pev(entpev_flags) & FL_DUCKING )

// --------------------------

// fail again, creating a new var over and over again in your plugin? you should modify
// stocks you use since most only use variables initialized by "new", in this case you should use
// a static variable
new Float:fraction


I tested it on a wallhack and it works. Even if user crouches. Will optimize these parts. I did it fast because I was tired.

Quote:

Originally Posted by ConnorMcLeod (Post 905150)
You could use ExecuteHam(Ham_FVecVisible, this, const Float: origin[3]), then you wouldn't have to retrieve player eyes position.

Code:

BOOL CBaseEntity :: FVisible ( const Vector &vecOrigin )
{
        TraceResult tr;
        Vector                vecLookerOrigin;
       
        vecLookerOrigin = EyePosition();//look through the caller's 'eyes'

        UTIL_TraceLine(vecLookerOrigin, vecOrigin, ignore_monsters, ignore_glass, ENT(pev)/*pentIgnore*/, &tr);
       
        if (tr.flFraction != 1.0)
        {
                return FALSE;// Line of sight is not established
        }
        else
        {
                return TRUE;// line of sight is valid.
        }
}


Ok, will do!

Quote:

Originally Posted by joaquimandrade (Post 905157)
I had this idea also (and I think that it has also implemented in HLGuard) and the true is: it is almost impossible to make it right without a huge amount of calculations and probably that will make it laggy with many users. One particular point where calculations are missing is in checking if the player carried weapon is visible (what is out of the player's bounding box). That will easily damage the game. And, as Exolent said particular, entities or map, designs can make it behave bad.

Edit: I have an simple idea to you. Instead of shipping it as an anti-wallhack solution, you could make it usable when you perform an action. Example: you suspect that a player is cheating, enable it on him, and check if his performance hugely differs.

One thing about the code: In traceline you should "IGNORE_GLASS".

Will see about that.

Edit: joaquimandrade thought about what you said and I won't do it unfortunately, that way it will stress up the admins too much, by leaving it the way it is it's light, and it does its job.
Made all the updates and made a small demonstration movie.
http://www.youtube.com/watch?v=jR6Nq4sj7BA

Javivi 08-19-2009 05:38

Re: Block Wallhack
 
Nice plugin :D

ot_207 08-19-2009 06:37

Re: Block Wallhack
 
Quote:

Originally Posted by Javivi (Post 905275)
Nice plugin :D

Thanks! It would be good if you can test with other wallhacks.

Jack86 08-19-2009 06:44

Re: Block Wallhack
 
How about those wallhacks that dont display models, but a small square where is player, and those that make all walls transparent, also how often are those problems stated in 1st post, once a round, once a map ?


All times are GMT -4. The time now is 19:37.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.