Code:
new g_yawspeed[33][6];
new Float:g_start_angle[33];
new bool:g_spinning[33];
#define SPIN_SPEED 100
public plugin_init()
{
register_forward(FM_PlayerPreThink, "FwdPlayerPreThink");
}
public FwdPlayerPreThink(id)
{
if( g_spinning[id] )
{
new Float:angles[3];
pev(id, pev_v_angle, angles);
// cant remember if its pev_v_angle or pev_angles
if( floatabs(angles[1] - g_start_angle[plr]) < 5.0 )
{
client_cmd(id, "-left; cl_yawspeed %s", g_yawspeed[id]);
g_spinning[id] = false;
}
}
}
SpinPlayer(id)
{
query_client_cvar(id, "cl_yawspeed", "DoSpin");
}
public DoSpin(id, const cvar_name[], const cvar_value[])
{
copy(g_yawspeed[id], sizeof(g_yawspeed[]) - 1, cvar_value);
client_cmd(id, "cl_yawspeed %i; +left", SPIN_SPEED);
//g_spinning[id] = true;
new Float:angles[3];
pev(id, pev_v_angle, angles);
// again, I can't remember which it was
g_start_angle[plr] = angles[1];
set_task(0.5, "TaskAllowStop", plr);
}
public TaskAllowStop(plr)
{
g_spinning[plr] = true;
}
Code:
public myfunction(id)
{
SpinPlayer(id); // spins player for 360 degree turn
}
__________________