sm-plugins/FixAngles/scripting/FixAngles.sp
2017-10-29 01:07:59 +02:00

54 lines
1.0 KiB
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, "*")) != INVALID_ENT_REFERENCE)
{
if(!HasEntProp(entity, Prop_Send, "m_angRotation"))
continue;
static char sClass[128];
GetEntityClassname(entity, sClass, sizeof(sClass));
if(StrEqual(sClass, "func_rot_button"))
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;
}