OMG FINALLY FIXED OVERLAYZ. I almost killed myself over this one.
This commit is contained in:
parent
38b256419d
commit
ff7528f09f
@ -210,7 +210,7 @@ OverlaysClientUpdateOverlay(client, OverlaysChannel:channel = OVERLAYS_CHANNEL_N
|
||||
}
|
||||
|
||||
// Display overlay to client.
|
||||
ClientCommand(client, "r_screenoverlay %s", g_strOverlayPath[client][channel]);
|
||||
ClientCommand(client, "r_screenoverlay \"%s\"", g_strOverlayPath[client][channel]);
|
||||
}
|
||||
|
||||
OverlaysChannel:OverlaysClientFindChannel(client)
|
||||
@ -239,7 +239,7 @@ OverlaysChannel:OverlaysClientFindChannel(client)
|
||||
* @param update (Optional) Update the overlay when this function is called.
|
||||
* @param toggle (Optional) Set to true to toggle state, false to use value param.
|
||||
* @param value (Optional) New value of the state, only used if toggle is false.
|
||||
* @param reset (Optional) Clears the overlay from client's screen.
|
||||
* @param reset (Optional) Resets the channel path.
|
||||
* @return The overlay's new state.
|
||||
*/
|
||||
bool:OverlaysClientSetChannelState(client, OverlaysChannel:channel, bool:update = false, bool:toggle = true, bool:value = false, bool:reset = false)
|
||||
@ -303,6 +303,12 @@ public Action:OverlaysTimer(Handle:timer)
|
||||
continue;
|
||||
}
|
||||
|
||||
// If no overlay is on the client's screen, then stop.
|
||||
if (OverlaysClientFindChannel(x) == OVERLAYS_CHANNEL_NONE)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Update client's overlay.
|
||||
OverlaysClientUpdateOverlay(x);
|
||||
}
|
||||
|
@ -133,9 +133,6 @@ ClassOnClientSpawn(client)
|
||||
ClassReloadPlayerCache(client, ClassGetActiveIndex(client));
|
||||
ClassApplyAttributes(client);
|
||||
}
|
||||
|
||||
// Forward event to sub-modules.
|
||||
ClassOverlayOnClientSpawn(client);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -173,7 +170,4 @@ ClassOnClientInfected(client, bool:motherzombie = false)
|
||||
|
||||
// Apply the new attributes.
|
||||
ClassApplyAttributes(client, motherzombie);
|
||||
|
||||
// Forward event to sub-modules.
|
||||
ClassOverlayOnClientInfected(client);
|
||||
}
|
||||
|
@ -105,31 +105,6 @@ ClassOverlayClientInit(client)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Client is spawning into the game.
|
||||
*
|
||||
* @param client The client index.
|
||||
*/
|
||||
ClassOverlayOnClientSpawn(client)
|
||||
{
|
||||
// If overlay toggle is enabled and class has an overlay, then send center text.
|
||||
new bool:overlaytoggle = GetConVarBool(g_hCvarsList[CVAR_CLASSES_OVERLAY_TOGGLE]);
|
||||
|
||||
decl String:overlaypath[PLATFORM_MAX_PATH];
|
||||
ClassGetOverlayPath(client, overlaypath, sizeof(overlaypath));
|
||||
|
||||
if (overlaytoggle && overlaypath[0])
|
||||
{
|
||||
decl String:togglecmds[CLASSOVERLAY_TOGGLE_MAX_CMDS * CLASSOVERLAY_TOGGLE_MAX_LENGTH];
|
||||
GetConVarString(g_hCvarsList[CVAR_CLASSES_OVERLAY_TOGGLECMDS], togglecmds, sizeof(togglecmds));
|
||||
|
||||
TranslationPrintHUDText(client, "Classes overlay toggle", togglecmds);
|
||||
}
|
||||
|
||||
// Update class overlay.
|
||||
OverlaysClientUpdateOverlay(client, OVERLAYS_CHANNEL_CLASSES);
|
||||
}
|
||||
|
||||
/**
|
||||
* Client has been killed.
|
||||
*
|
||||
@ -141,28 +116,6 @@ ClassOverlayOnClientDeath(client)
|
||||
OverlaysClientSetChannelState(client, OVERLAYS_CHANNEL_CLASSES, true, false, false, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Client has been infected.
|
||||
*
|
||||
* @param client The client index.
|
||||
*/
|
||||
ClassOverlayOnClientInfected(client)
|
||||
{
|
||||
// If overlay toggle is enabled and class has an overlay, then send center text.
|
||||
new bool:overlaytoggle = GetConVarBool(g_hCvarsList[CVAR_CLASSES_OVERLAY_TOGGLE]);
|
||||
|
||||
decl String:overlaypath[PLATFORM_MAX_PATH];
|
||||
ClassGetOverlayPath(client, overlaypath, sizeof(overlaypath));
|
||||
|
||||
if (overlaytoggle && overlaypath[0])
|
||||
{
|
||||
decl String:togglecmds[CLASSOVERLAY_TOGGLE_MAX_CMDS * CLASSOVERLAY_TOGGLE_MAX_LENGTH];
|
||||
GetConVarString(g_hCvarsList[CVAR_CLASSES_OVERLAY_TOGGLECMDS], togglecmds, sizeof(togglecmds));
|
||||
|
||||
TranslationPrintCenterText(client, "Classes overlay toggle", togglecmds);
|
||||
}
|
||||
}
|
||||
|
||||
ClassOverlayInitialize(client, const String:overlay[])
|
||||
{
|
||||
if (IsFakeClient(client))
|
||||
@ -177,6 +130,20 @@ ClassOverlayInitialize(client, const String:overlay[])
|
||||
return;
|
||||
}
|
||||
|
||||
// If overlay toggle is enabled and class has an overlay, then send center text.
|
||||
new bool:overlaytoggle = GetConVarBool(g_hCvarsList[CVAR_CLASSES_OVERLAY_TOGGLE]);
|
||||
|
||||
decl String:overlaypath[PLATFORM_MAX_PATH];
|
||||
ClassGetOverlayPath(client, overlaypath, sizeof(overlaypath));
|
||||
|
||||
if (overlaytoggle && overlaypath[0])
|
||||
{
|
||||
decl String:togglecmds[CLASSOVERLAY_TOGGLE_MAX_CMDS * CLASSOVERLAY_TOGGLE_MAX_LENGTH];
|
||||
GetConVarString(g_hCvarsList[CVAR_CLASSES_OVERLAY_TOGGLECMDS], togglecmds, sizeof(togglecmds));
|
||||
|
||||
TranslationPrintHUDText(client, "Classes overlay toggle", togglecmds);
|
||||
}
|
||||
|
||||
// Display class overlays.
|
||||
OverlaysClientSetChannelPath(client, OVERLAYS_CHANNEL_CLASSES, overlay);
|
||||
OverlaysClientSetChannelState(client, OVERLAYS_CHANNEL_CLASSES, true, false, CookiesGetClientCookieBool(client, g_hOverlayEnabledCookie));
|
||||
|
@ -109,6 +109,9 @@ RoundEndOnClientInfected()
|
||||
*/
|
||||
RoundEndOnRoundStart()
|
||||
{
|
||||
// Stop all overlays.
|
||||
RoundEndOverlayStop();
|
||||
|
||||
// If round end timer is running, then kill it.
|
||||
if (tRoundEnd != INVALID_HANDLE)
|
||||
{
|
||||
@ -160,7 +163,7 @@ RoundEndOnRoundEnd(reason)
|
||||
new RoundEndOutcome:outcome = RoundEndReasonToOutcome(reason);
|
||||
|
||||
// Display the overlay to all clients.
|
||||
RoundEndOverlayStart(ROUNDEND_DELAY, outcome);
|
||||
RoundEndOverlayStart(outcome);
|
||||
|
||||
// Balance teams.
|
||||
RoundEndBalanceTeams();
|
||||
@ -355,7 +358,7 @@ RoundEndBalanceTeams()
|
||||
* @param time Time to display overlays.
|
||||
* @param outcome The outcome of the round.
|
||||
*/
|
||||
RoundEndOverlayStart(Float:time, RoundEndOutcome:outcome)
|
||||
RoundEndOverlayStart(RoundEndOutcome:outcome)
|
||||
{
|
||||
// If round end overlays are disabled, then stop.
|
||||
new bool:overlay = GetConVarBool(g_hCvarsList[CVAR_ROUNDEND_OVERLAY]);
|
||||
@ -403,8 +406,6 @@ RoundEndOverlayStart(Float:time, RoundEndOutcome:outcome)
|
||||
OverlaysClientSetChannelPath(x, OVERLAYS_CHANNEL_ROUNDEND, overlaypath);
|
||||
OverlaysClientSetChannelState(x, OVERLAYS_CHANNEL_ROUNDEND, true, false, true);
|
||||
}
|
||||
|
||||
CreateTimer(time, RoundEndOverlayTimer, _, TIMER_FLAG_NO_MAPCHANGE);
|
||||
}
|
||||
|
||||
RoundEndOverlayStop()
|
||||
@ -427,15 +428,4 @@ RoundEndOverlayStop()
|
||||
// Disable roundend overlay channel.
|
||||
OverlaysClientSetChannelState(x, OVERLAYS_CHANNEL_ROUNDEND, true, false, false, true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Timer callback, stops overlays on all clients.
|
||||
*
|
||||
* @param timer The timer handle.
|
||||
*/
|
||||
public Action:RoundEndOverlayTimer(Handle:timer)
|
||||
{
|
||||
// Stop all overlays.
|
||||
RoundEndOverlayStop();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user