#pragma semicolon 1
#pragma newdecls required
#include <sourcemod>
#include <sdktools>
bool bMapStart = false;
Handle hSnowFallTimer = null;
public void OnPluginStart()
{
HookEvent("round_start", Event_RoundStart, EventHookMode_PostNoCopy);
}
public void onMapStart()
{
bMapStart = true;
}
public void onMapEnd()
{
bMapStart = false;
if(hSnowFallTimer != null)
{
delete hSnowFallTimer;
}
}
void Event_RoundStart(Event event, char[] name, bool dontBroadcast)
{
if(bMapStart)
{
if(hSnowFallTimer != null)
{
delete hSnowFallTimer;
}
hSnowFallTimer = CreateTimer (3.0 , CreateSnowFall, _, TIMER_REPEAT);
}
}
Action CreateSnowFall(Handle timer)
{
int iEnt = CreateEntityByName("func_precipitation");
if (iEnt != -1)
{
char sMap[64];
float vMins[3], vMax[3], vBuff[3];
GetCurrentMap(sMap, 64);
Format(sMap, sizeof(sMap), "maps/%s.bsp", sMap);
PrecacheModel(sMap, true);
DispatchKeyValue(iEnt, "model", sMap);
DispatchKeyValue(iEnt, "preciptype", "3");
GetEntPropVector(0, Prop_Data, "m_WorldMaxs", vMax);
GetEntPropVector(0, Prop_Data, "m_WorldMins", vMins);
SetEntPropVector(iEnt, Prop_Send, "m_vecMins", vMins);
SetEntPropVector(iEnt, Prop_Send, "m_vecMaxs", vMax);
vBuff[0] = vMins[0] + vMax[0];
vBuff[1] = vMins[1] + vMax[1];
vBuff[2] = vMins[2] + vMax[2];
TeleportEntity(iEnt, vBuff, NULL_VECTOR, NULL_VECTOR);
DispatchSpawn(iEnt);
ActivateEntity(iEnt);
}
return Plugin_Continue;
}