sm-plugins/_CTimer/scripting/ctimer/timers.sp
DoganGFL b9efc06bba Rename of unused plugins
either not used at all or in disabled
2019-07-25 00:44:32 +02:00

210 lines
4.7 KiB
SourcePawn

public Action DrawFullZoneTimer(Handle timer)
{
int colorarray[][] = { { 124, 252, 0, 255 }, { 255, 0, 0, 255 } };
if (!g_bLasers || g_iEditor == -1)
return Plugin_Continue;
for (int i = 0; i <= 1; i++)
{
if (g_iSnapToClient == i)
{
float vec[3];
GetClientAbsOrigin(g_iEditor, vec);
DrawFullZone(vec, g_fStartOrigins[i], colorarray[i], 0.1);
continue;
}
DrawFullZone(g_fEndOrigins[i], g_fStartOrigins[i], colorarray[i], 0.2);
}
return Plugin_Continue;
}
public Action DrawZoneTimer(Handle timer)
{
if (!g_bLasers || !g_bActive)
return Plugin_Continue;
int colorarray[][] = { { 124, 252, 0, 255 }, { 255, 0, 0, 255 } };
if (g_iEditor != -1)
return Plugin_Continue;
float pos[3], eye[3];
int[] clients = new int[MaxClients];
int nClients = 0;
for (int i = 0; i <= 1; i++)
{
for (int j = 1; j <= MaxClients; j++)
{
if (isValidClient(j))
{
//https://github.com/InfluxTimer/sm-timer/blob/master/addons/sourcemod/scripting/influx_zones_beams.sp
GetClientEyePosition(j, eye);
GetMiddleOfABox(g_fEndOrigins[i], g_fStartOrigins[i], pos);
if (GetVectorDistance(eye, pos, true) < MAX_DIST_SQ)
{
clients[nClients++] = j;
}
else
{
TR_TraceRayFilter(eye, pos, CONTENTS_SOLID, RayType_EndPoint, TraceFilter_WorldOnly);
if (!TR_DidHit())
{
clients[nClients++] = j;
}
}
}
}
DrawZone(clients, nClients, g_fEndOrigins[i], g_fStartOrigins[i], colorarray[i], 1.0);
}
return Plugin_Continue;
}
public bool TraceFilter_WorldOnly( int ent, int mask )
{
return ( ent == 0 );
}
public Action HudLoop(Handle timer)
{
if (g_iMapID != -1 && g_bActive)
{
for (int i = 1; i <= MaxClients; i++)
{
if (isValidClient(i))
{
UpdateHUD(i);
}
}
return Plugin_Continue;
}
return Plugin_Continue;
}
public void UpdateHUD(int client)
{
int target = client;
if (IsClientObserver(client))
{
int mode = GetEntProp(client, Prop_Send, "m_iObserverMode");
if (mode == 4 || mode == 5)
{
target = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");
if (!isValidClient(target))
return;
}
else
return;
}
if (g_iActivity[target] == -1)
{
return;
}
char HintTextBuffer[256];
if (client != target)
Format(HintTextBuffer, sizeof(HintTextBuffer), "Player: %N\n \n", target);
if (g_iActivity[target] == 1)
Format(HintTextBuffer, sizeof(HintTextBuffer), "%sIn Start Zone\n \n", HintTextBuffer);
if (g_iActivity[target] == 0)
{
char cTime[16];
float fTime;
fTime = GetEngineTime() - g_fStartTime[target];
TimerFormat(fTime, cTime, sizeof(cTime), true, false);
Format(HintTextBuffer, sizeof(HintTextBuffer), "%sTime: %s\n \n", HintTextBuffer, cTime);
}
Format(HintTextBuffer, sizeof(HintTextBuffer), "%sSpeed: %i u/s", HintTextBuffer, Get2VecVelocity(target));
PrintHintText(client, HintTextBuffer);
}
public Action SideHudLoop(Handle timer)
{
if (g_iMapID != -1 && g_bActive)
{
for (int i = 1; i <= MaxClients; i++)
{
if (isValidClient(i))
{
UpdateSideHUD(i);
}
}
return Plugin_Continue;
}
return Plugin_Continue;
}
public void UpdateSideHUD(int client)
{
int target = client;
if (IsClientObserver(client))
{
int mode = GetEntProp(client, Prop_Send, "m_iObserverMode");
if (mode == 4 || mode == 5)
{
target = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");
if (!isValidClient(target))
return;
}
else
return;
}
if (g_iActivity[target] == -1)
{
return;
}
char KeyHintBuffer[254];
char cTimeLeft[16];
GetTimerTimeLeft(cTimeLeft, sizeof(cTimeLeft));
Format(KeyHintBuffer, sizeof(KeyHintBuffer), "Timeleft: %s\n \n", cTimeLeft);
if (g_fMapTime[target] <= 0.0)
Format(KeyHintBuffer, sizeof(KeyHintBuffer), "%sPR: None\n", KeyHintBuffer);
else
{
char cTime[16], cTimeToWR[16];
float fTimeToWR;
fTimeToWR = g_fMapTime[target] - g_fWrTime;
if (fTimeToWR == 0)
Format(cTimeToWR, sizeof(cTimeToWR), "WR");
else
TimerFormat(fTimeToWR, cTimeToWR, sizeof(cTimeToWR), true, true);
TimerFormat(g_fMapTime[target], cTime, sizeof(cTime), true, false);
Format(KeyHintBuffer, sizeof(KeyHintBuffer), "%sPR: %s (%s)\n", KeyHintBuffer, cTime, cTimeToWR);
}
if (g_fWrTime <= 0.0)
Format(KeyHintBuffer, sizeof(KeyHintBuffer), "%sWR: None\n \n", KeyHintBuffer);
else
{
char cWR[16];
TimerFormat(g_fWrTime, cWR, sizeof(cWR), true, false);
Format(KeyHintBuffer, sizeof(KeyHintBuffer), "%sWR: %s (%s)\n \n", KeyHintBuffer, cWR, g_sWrHolder);
}
Format(KeyHintBuffer, sizeof(KeyHintBuffer), "%sSpectators: %i", KeyHintBuffer, GetSpecCount(target));
PrintKeyHintText(client, KeyHintBuffer);
}
/*public Action Timer_CreateTrigger(Handle timer, int zonetype)
{
CreateTrigger(zonetype);
}*/