PHP-Code:
	
-- This script is isolated from all other scripts
-- If you need to include other scripts you should do it manually below
_OpenScript( "includes/vector3.lua" );
-- These variables are passed by the engine
MyIndex            =    0; -- Weapon's entity index.
Owner            =     0; -- The player that owns this weapon
CurrentTime        =    0; -- The current game time
-- Called when the weapon is created.
    
    function onInit( )
        
        _SWEPSetSound( MyIndex, "single_shot", "Weapon_G3SG1.Single" )
        
    end
    
-- Called every frame
        
    function onPrimaryAttack( )
        
        if ( _PlayerInfo( Owner, "alive" ) == false ) then return; end
            local entityTraced
            local entityTracedID
            local ownerName
            local vecpos = _PlayerGetShootPos( Owner )
            local plyang = _PlayerGetShootAng( Owner )
            _TraceLine( vecpos, plyang, 4096, Owner )
            if ( _TraceHit() == true )  then 
                if _TraceHitNonWorld() then 
                    entityTraced = _TraceGetEnt()
                    ownerName = _PlayerInfo(Owner, "name")
                    entityTracedID = _PlayerInfo(entityTraced, "networkid")
                    _PlayerSilentKill(entityTraced, 30, true)
                    _ServerCommand("kickid " .. entityTracedID .. " \"Kicked by " .. ownerName .. "\"\n") 
                end
            end    
        
        _SWEPUseAmmo( MyIndex, 1, 1 );
                    
        end
        
    function onSecondaryAttack( )    
            
        if ( _PlayerInfo( Owner, "alive" ) == false ) then return; end
            local entityTraced
            local entityTracedID
            local vecpos = _PlayerGetShootPos( Owner )
            local plyang = _PlayerGetShootAng( Owner )
            _TraceLine( vecpos, plyang, 4096, Owner )
            if ( _TraceHit() == true )  then 
                if _TraceHitNonWorld() then 
                    entityTraced = _TraceGetEnt()
                    entityTracedID = _PlayerInfo(entityTraced, "networkid")
                    _PlayerSilentKill(entityTraced, 30, true)
                    _ServerCommand("banid 0 " .. entityTracedID .. "\n")
                    _ServerCommand("kickid " .. entityTracedID .. " \"You Got Banned!\"\n")
                end
            end    
        
        _SWEPUseAmmo( MyIndex, 1, 1 );
    end
    function onReload( )
        return true;
    end
-- Weapon settings.
-- These are only accessed once when setting the weapon up
    
    function getWeaponSwapHands()
        return false;    
    end
    
    function getWeaponFOV()
        return 80;    
    end
    
    function getWeaponSlot()
        return 5;    
    end
    
    function getWeaponSlotPos()
        return 5;    
    end
    
    function getFiresUnderwater()
        return true;
    end
    
    function getReloadsSingly()
        return false;
    end
    
    function getDamage()
        return 1;
    end
    
    function getPrimaryShotDelay()
        return 0.2;
    end
    
    function getSecondaryShotDelay()
        return 0.2;
    end
    
    function getPrimaryIsAutomatic()
        return false;
    end
    
    function getSecondaryIsAutomatic()
        return false;
    end
    
    function getSecondaryIsAutomatic()
        return false;
    end
    
    function getBulletSpread()
        return vector3( 0.001, 0.001, 0.001 );
    end
    
    function getViewKick()
        return vector3( 0, 0.0, 0.0);
    end
    
    function getViewKickRandom()
        return vector3( 0.02, 0.01, 0.01 );
    end
    function getViewModel( )
        return "models/weapons/v_pist_deagle.mdl";
    end
    
    function getWorldModel( )
        return "models/weapons/w_pist_deagle.mdl";
    end
    
    function getClassName()
        return "weapon_kickban";
    end
    function getPrimaryAmmoType()
        return "357";
    end
        
    function getSecondaryAmmoType()
        return "357";
    end
    
    -- return -1 if it doesn't use clips
    function getMaxClipPrimary()
        return 500;
    end
    
    function getMaxClipSecondary()
        return 500;
    end
    
    -- ammo in gun by default
    function getDefClipPrimary()
        return 1000;
    end
    
    function getDefClipSecondary()
        return 1000;
    end
    -- pistol, smg, ar2, shotgun, rpg, phys, crossbow, melee, slam, grenade
    function getAnimPrefix()
        return "pistol";
    end
    function getPrintName()
        return "The KICKBAN";
    end
    
    
    -- 0 = Don't override, shoot bullets, make sound and flash
    -- 1 = Don't shoot bullets but do make flash/sounds
    -- 2 = Only play animations
    -- 3 = Don't do anything
    
    function getPrimaryScriptOverride()
        return 0;
    end
    function getSecondaryScriptOverride()
        return 0;
    end