<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Powerup Timer Countdown]]></title><description><![CDATA[<p dir="auto">script that displays power up timers</p>
<p dir="auto">Lines 27-30 allow you to change where the timers are displayed on the screen</p>
<p dir="auto"><img src="/assets/uploads/files/1777602111847-screenshot-2026-04-30-221037.png" alt="Screenshot 2026-04-30 221037.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">#include maps\mp_utility;<br />
#include common_scripts\utility;<br />
#include maps\mp\gametypes_zm_hud_util;<br />
#include maps\mp\zombies_zm_powerups;</p>
<p dir="auto">init()<br />
{<br />
level thread onPlayerConnect();<br />
}</p>
<p dir="auto">onPlayerConnect()<br />
{<br />
for(;;)<br />
{<br />
level waittill("connected", player);<br />
player thread playerPowerupTimers();<br />
}<br />
}</p>
<p dir="auto">playerPowerupTimers()<br />
{<br />
self endon("disconnect");<br />
level endon("end_game");</p>
<pre><code>flag_wait("initial_blackscreen_passed");

self.doublePointsTimer = self createPowerupTimerHud(-42, -36);
self.instaKillTimer = self createPowerupTimerHud(-14, -36);
self.fireSaleTimer = self createPowerupTimerHud(14, -36);
self.zombieBloodTimer = self createPowerupTimerHud(42, -36);

zombieBloodWasActive = false;
zombieBloodSeconds = 0;
zombieBloodTick = 0;

for(;;)
{
	self updatePowerupTimer(self.doublePointsTimer, getTeamPowerupTime("zombie_powerup_point_doubler_on", "zombie_powerup_point_doubler_time"));
	self updatePowerupTimer(self.instaKillTimer, getTeamPowerupTime("zombie_powerup_insta_kill_on", "zombie_powerup_insta_kill_time"));
	self updatePowerupTimer(self.fireSaleTimer, getGlobalPowerupTime("zombie_powerup_fire_sale_on", "zombie_powerup_fire_sale_time"));
	
	zombieBloodActive = self isZombieBloodActive();

	if(zombieBloodActive &amp;&amp; !zombieBloodWasActive)
	{
		zombieBloodSeconds = 30;
		zombieBloodTick = 0;
	}

	if(zombieBloodSeconds &gt; 0)
	{
		self updatePowerupTimer(self.zombieBloodTimer, zombieBloodSeconds);
		zombieBloodTick++;

		if(zombieBloodTick &gt;= 4)
		{
			zombieBloodSeconds--;
			zombieBloodTick = 0;
		}
	}
	else
		self updatePowerupTimer(self.zombieBloodTimer, 0);

	zombieBloodWasActive = zombieBloodActive;

	wait 0.25;
}
</code></pre>
<p dir="auto">}</p>
<p dir="auto">createPowerupTimerHud(x, y)<br />
{<br />
hud = createFontString("small", 1.25);<br />
hud setpoint("CENTER", "BOTTOM", x, y);<br />
hud.alpha = 0;<br />
hud.sort = 30;<br />
hud.color = (1, 1, 1);<br />
return hud;<br />
}</p>
<p dir="auto">updatePowerupTimer(hud, timeLeft)<br />
{<br />
if(!isDefined(hud))<br />
return;</p>
<pre><code>if(timeLeft &gt; 0)
{
	hud.alpha = 1;
	hud setvalue(getWholeSeconds(timeLeft));
}
else
{
	hud setText("");
	hud.alpha = 0;
}
</code></pre>
<p dir="auto">}</p>
<p dir="auto">getTeamPowerupTime(activeVar, timeVar)<br />
{<br />
if(!isDefined(level.zombie_vars))<br />
return 0;</p>
<pre><code>team = "allies";

if(isDefined(self.team))
	team = self.team;

if(!isDefined(level.zombie_vars[team]))
	return 0;

if(!isDefined(level.zombie_vars[team][activeVar]))
	return 0;

if(!level.zombie_vars[team][activeVar])
	return 0;

if(!isDefined(level.zombie_vars[team][timeVar]))
	return 0;

return level.zombie_vars[team][timeVar];
</code></pre>
<p dir="auto">}</p>
<p dir="auto">getGlobalPowerupTime(activeVar, timeVar)<br />
{<br />
if(!isDefined(level.zombie_vars))<br />
return 0;</p>
<pre><code>if(!isDefined(level.zombie_vars[activeVar]))
	return 0;

if(!level.zombie_vars[activeVar])
	return 0;

if(!isDefined(level.zombie_vars[timeVar]))
	return 0;

return level.zombie_vars[timeVar];
</code></pre>
<p dir="auto">}</p>
<p dir="auto">getWholeSeconds(timeLeft)<br />
{<br />
seconds = 0;</p>
<pre><code>while(seconds &lt; timeLeft)
	seconds++;

return seconds;
</code></pre>
<p dir="auto">}</p>
<p dir="auto">isZombieBloodActive()<br />
{<br />
if(isDefined(self.ignoreme) &amp;&amp; self.ignoreme)<br />
return true;</p>
<pre><code>if(isDefined(self.zombie_blood) &amp;&amp; self.zombie_blood)
	return true;

if(isDefined(self.zombie_blood_on) &amp;&amp; self.zombie_blood_on)
	return true;

if(isDefined(self.zombieblood) &amp;&amp; self.zombieblood)
	return true;

return false;
</code></pre>
<p dir="auto">}</p>
]]></description><link>https://forum.plutonium.pw/topic/44741/powerup-timer-countdown</link><generator>RSS for Node</generator><lastBuildDate>Sun, 03 May 2026 20:53:18 GMT</lastBuildDate><atom:link href="https://forum.plutonium.pw/topic/44741.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 01 May 2026 02:26:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Powerup Timer Countdown on Fri, 01 May 2026 18:22:07 GMT]]></title><description><![CDATA[<p dir="auto">Updated HUD <a href="https://drive.google.com/file/d/1_F2WEZNLCL2GV6dguHE5enHGog8DpD9L/view?usp=sharing" target="_blank" rel="noopener noreferrer nofollow ugc">https://drive.google.com/file/d/1_F2WEZNLCL2GV6dguHE5enHGog8DpD9L/view?usp=sharing</a><br />
<a href="https://www.virustotal.com/gui/file/3304407c442f22354198464eefa2d12a0cb1ae453e133f377004b188803077b8" target="_blank" rel="noopener noreferrer nofollow ugc">https://www.virustotal.com/gui/file/3304407c442f22354198464eefa2d12a0cb1ae453e133f377004b188803077b8</a></p>
]]></description><link>https://forum.plutonium.pw/post/171621</link><guid isPermaLink="true">https://forum.plutonium.pw/post/171621</guid><dc:creator><![CDATA[vnm_420]]></dc:creator><pubDate>Fri, 01 May 2026 18:22:07 GMT</pubDate></item></channel></rss>