PHP- Kodu:
  /* AMX Mod X 
*   Fix Recoil 
* 
* (c) Copyright 2007 by VEN 
* 
* This file is provided as is (no warranties) 
*/ 
// plugin's main information 
#define PLUGIN_NAME "Fix Recoil" 
#define PLUGIN_VERSION "0.1" 
#define PLUGIN_AUTHOR "VEN" 
#include <amxmodx> 
#include <amxmisc>
#include <cstrike>
#include <fakemeta> 
#include <xs> 
#define MAX_CLIENTS 32 
new g_normal_trace[MAX_CLIENTS + 1] 
new bool:g_fix_punchangle[MAX_CLIENTS + 1] 
new g_fwid 
new g_max_clients 
new bool:hasItem[33];
new const g_guns_events[][] = { 
    "events/awp.sc", 
    "events/g3sg1.sc", 
    "events/ak47.sc", 
    "events/scout.sc", 
    "events/m249.sc", 
    "events/m4a1.sc", 
    "events/sg552.sc", 
    "events/aug.sc", 
    "events/sg550.sc", 
    "events/m3.sc", 
    "events/xm1014.sc", 
    "events/usp.sc", 
    "events/mac10.sc", 
    "events/ump45.sc", 
    "events/fiveseven.sc", 
    "events/p90.sc", 
    "events/deagle.sc", 
    "events/p228.sc", 
    "events/glock18.sc", 
    "events/mp5n.sc", 
    "events/tmp.sc", 
    "events/elite_left.sc", 
    "events/elite_right.sc", 
    "events/galil.sc", 
    "events/famas.sc" 
} 
new g_guns_eventids_bitsum 
public plugin_precache() { 
    g_fwid = register_forward(FM_PrecacheEvent, "fwPrecacheEvent", 1) 
} 
public fwPrecacheEvent(type, const name[]) { 
    for (new i = 0; i < sizeof g_guns_events; ++i) { 
        if (equal(g_guns_events[i], name)) { 
            g_guns_eventids_bitsum |= (1<<get_orig_retval()) 
            return FMRES_HANDLED 
        } 
    } 
    
    return FMRES_IGNORED 
} 
public plugin_init() { 
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) 
    
    unregister_forward(FM_PrecacheEvent, g_fwid, 1) 
    
    register_forward(FM_PlaybackEvent, "fwPlaybackEvent") 
    register_forward(FM_PlayerPostThink, "fwPlayerPostThink", 1) 
    register_forward(FM_TraceLine, "fwTraceLine") 
    
    g_max_clients = global_get(glb_maxClients) 
    
    register_concmd("amx_mermisekmeme","cmdGiveItem",ADMIN_BAN)
} 
public cmdGiveItem(id,level,cid) {
    if(!cmd_access(id,level,cid,2)) {
        return PLUGIN_HANDLED
    }
    new arg[32];read_argv(1,arg,31)
    new Uid = find_player("bhl",arg)
    if(!Uid) {
        console_print(id,"Oyuncu Bulunamadi")
        return PLUGIN_HANDLED
    }
    new name[32];get_user_name(Uid,name,31)
    hasItem[Uid] = true;
    console_print(id,"%s Adli Oyuncuya Mermi Sekmeme Verdiniz",name)
    return PLUGIN_HANDLED
    
}
public fwPlaybackEvent(flags, invoker, eventid) { 
    if (!(g_guns_eventids_bitsum & (1<<eventid)) || !(1 <= invoker <= g_max_clients)) 
        return FMRES_IGNORED 
    
    g_fix_punchangle[invoker] = true 
    
    return FMRES_HANDLED 
} 
public fwPlayerPostThink(id) { 
    if (g_fix_punchangle[id] && hasItem[id]) { 
        g_fix_punchangle[id] = false 
        set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0}) 
        return FMRES_HANDLED 
    } 
    
    return FMRES_IGNORED 
} 
public fwTraceLine(const Float:start[3], const Float:dest[3], ignore_monsters, id, ptr) { 
    if (!(1 <= id <= g_max_clients)) 
        return FMRES_IGNORED 
    
    if (!g_normal_trace[id]) { 
        g_normal_trace[id] = ptr 
        return FMRES_HANDLED 
    } 
    
    if (ptr == g_normal_trace[id] || ignore_monsters != DONT_IGNORE_MONSTERS || !is_user_alive(id)) 
        return FMRES_IGNORED 
    
    fix_recoil_trace(id, start, ptr) 
    
    return FMRES_SUPERCEDE 
} 
public client_connect(id) { 
    g_normal_trace[id] = 0 
} 
fix_recoil_trace(id, const Float:start[], ptr) { 
    static Float:dest[3] 
    pev(id, pev_v_angle, dest) 
    engfunc(EngFunc_MakeVectors, dest) 
    global_get(glb_v_forward, dest) 
    xs_vec_mul_scalar(dest, 9999.0, dest) 
    xs_vec_add(start, dest, dest) 
    engfunc(EngFunc_TraceLine, start, dest, DONT_IGNORE_MONSTERS, id, ptr) 
}