sm-plugins/FixAngles/scripting/FixAngles.sp

48 lines
947 B
SourcePawn

#include <sourcemod>
#include <sdktools>
#pragma semicolon 1
#pragma newdecls required
public Plugin myinfo =
{
name = "FixAngles",
author = "BotoX",
description = "",
version = "1.0",
url = ""
};
public void OnMapStart()
{
CreateTimer(1.0, CheckAngles, 0, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}
public Action CheckAngles(Handle timer)
{
int entity = INVALID_ENT_REFERENCE;
while((entity = FindEntityByClassname(entity, "func_rotating")) != INVALID_ENT_REFERENCE)
{
if(!HasEntProp(entity, Prop_Send, "m_angRotation"))
continue;
static float aAngles[3];
GetEntPropVector(entity, Prop_Send, "m_angRotation", aAngles);
bool bChanged = false;
for(int i = 0; i < 3; i++)
{
if(aAngles[i] < -360 || aAngles[i] > 360)
{
aAngles[i] = float(RoundFloat(aAngles[i]) % 360);
bChanged = true;
}
}
if(bChanged)
SetEntPropVector(entity, Prop_Send, "m_angRotation", aAngles);
}
return Plugin_Continue;
}