/*******************************************************************************************************
AMX CSS Zoom
Author: KRoTaL
Version: 0.2
0.1 Release
0.2 Fixed the crossair with aug/sg552
Zoom effect of CS-Source.
Cvar:
css_zoom 0/1 - 0: disables the plugin
1: enables the plugin
Setup (AMX 0.9.9):
Install the amx file.
Enable VexdUM (both in metamod/plugins.ini and amx/config/modules.ini)
Setup (AMXX 1.1):
Install the amxx file.
*******************************************************************************************************/
#include <amxmodx>
#include <amxmisc>
new gmsgSetFOV
new g_lastFov[33]
new g_MinMaxFov[33][2]
new g_doFov[33]
public plugin_init()
{
register_plugin("CSS Zoom", "0.2", "KRoTaL")
register_cvar("css_zoom", "1")
register_event("SetFOV", "eventSetFOV", "be")
gmsgSetFOV = get_user_msgid("SetFOV")
}
public client_connect(id)
{
g_doFov[id] = 0
}
public eventSetFOV(id)
{
new fov = read_data(1)
if(fov < g_lastFov[id])
{
g_MinMaxFov[id][0] = fov
g_MinMaxFov[id][1] = g_lastFov[id]
g_doFov[id] = 1
}
else
{
g_doFov[id] = 0
}
g_lastFov[id] = fov
}
public client_PreThink(id)
{
if(get_cvar_num("css_zoom") == 0)
return PLUGIN_CONTINUE
if(g_doFov[id])
{
if(g_MinMaxFov[id][1] > g_MinMaxFov[id][0])
{
--g_MinMaxFov[id][1]
message_begin(MSG_ONE, gmsgSetFOV, {0,0,0}, id)
write_byte(--g_MinMaxFov[id][1])
message_end()
}
else
{
message_begin(MSG_ONE, gmsgSetFOV, {0,0,0}, id)
write_byte(g_MinMaxFov[id][0])
message_end()
g_doFov[id] = 0
}
}
return PLUGIN_CONTINUE
}