/*================================================================================
=================================================================================*/
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN_VERSION "1.0"
const m_iFOV = 363
const m_iPlayer = 41
const m_iClipAmmo = 51
const m_iExtraOffsetLinux = 4
const m_iExtraOffsetWindows = 0
#pragma semicolon 1
new model_ak47_sniper[] = "models/v_ak47.mdl";
new gAlive[33];
new gZoom[33];
new gReloading[33];
public plugin_precache()
engfunc(EngFunc_PrecacheModel, model_ak47_sniper);
public plugin_init()
{
register_plugin("AK super", PLUGIN_VERSION, "muzzaik");
register_forward(FM_CmdStart, "fwCmdStart");
RegisterHam(Ham_Spawn, "player", "fwPlayerSpawnPost", 1);
RegisterHam(Ham_Killed, "player", "fwPlayerKilled");
RegisterHam(Ham_Weapon_Reload, "weapon_ak47", "fwWeaponReload");
RegisterHam(Ham_Item_Deploy, "weapon_ak47", "fwItemDeployPost", 1);
register_cvar("ak47_sniper", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY);
}
public fwCmdStart(id, uc_handle, seed)
{
if (!gAlive[id]) return FMRES_IGNORED;
static button, oldbuttons, weapon;
button = get_uc(uc_handle, UC_Buttons);
oldbuttons = pev(id, pev_oldbuttons);
weapon = get_user_weapon(id);
if ((button & IN_USE) && !(oldbuttons & IN_USE))
{
if (weapon == CSW_AK47)
{
if (!gZoom[id] && !gReloading[id])
{
gZoom[id] = true;
set_pdata_int(id, m_iFOV, 35, 5);
emit_sound(id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100);
}
else
{
if (gZoom[id])
{
gZoom[id] = false;
set_pdata_int(id, m_iFOV, 90, 5);
}
}
}
}
return FMRES_IGNORED;
}
public fwPlayerSpawnPost(id) if (is_user_alive(id)) gAlive[id] = true;
public fwPlayerKilled(victim, attacker, shouldgib) gAlive[victim] = false;
public fwWeaponReload(weapon)
{
if (fm_get_weapon_ammo(weapon) != 100)
{
static id;
id = get_pdata_cbase(weapon, m_iPlayer, 6);
set_pdata_int(id, m_iFOV, 90, 5);
gReloading[id] = true;
set_task(2.3, "taskWeaponReloaded", id);
}
}
public taskWeaponReloaded(id)
gReloading[id] = false;
public fwItemDeployPost(weapon)
{
static id;
id = get_pdata_cbase(weapon, m_iPlayer, 4);
set_pev(id, pev_viewmodel2, model_ak47_sniper);
}
// cs_to_fm
stock fm_get_weapon_ammo(weapon)
return get_pdata_int(weapon, m_iClipAmmo, is_linux_server() ? m_iExtraOffsetLinux : m_iExtraOffsetWindows);