local playersfinished = 0 local metal_time = 0 local metal_timeleft = 0 local metal_minsleft = 0 local metal_secsleft = 0 local metal_centisecsleft = 0 local metal_timemode = 1 COM_AddCommand("srb2tpmc+_timermode", function(player, arg) if arg == "1" then CONS_Printf(player, "Timer mode set to classic") metal_timemode = 1 elseif arg == "2" then CONS_Printf(player, "Timer mode set to centiseconds") metal_timemode = 2 elseif arg == "3" then CONS_Printf(player, "Timer mode set to tics") metal_timemode = 3 elseif not arg CONS_Printf(player, "Changes the timer mode. (1 - classic, 2 - centiseconds, 3 - tics.") elseif not (arg == "1" or arg == "2" or arg == "3") CONS_Printf(player, "Invalid timer mode.") end end) addHook("ThinkFrame", do playersfinished = 0 for p in players.iterate if p.pflags & PF_FINISHED playersfinished = $ + 1 end end end) addHook("MapLoad", do playersfinished = 0 metal_minsleft = 0 metal_secsleft = 0 metal_centisecsleft = 0 if gamemap >= 604 and gamemap <= 624 if gamemap == 604 metal_time = 2063 elseif gamemap == 605 metal_time = 2501 elseif gamemap == 606 metal_time = 2238 elseif gamemap == 607 metal_time = 3358 elseif gamemap == 608 metal_time = 3113 elseif gamemap == 609 metal_time = 2308 elseif gamemap == 610 metal_time = 3218 elseif gamemap == 611 metal_time = 2553 elseif gamemap == 612 metal_time = 3886 elseif gamemap == 613 metal_time = 3533 elseif gamemap == 614 metal_time = 5948 elseif gamemap == 615 metal_time = 2238 elseif gamemap == 616 metal_time = 7313 elseif gamemap == 617 metal_time = 3813 elseif gamemap == 618 metal_time = 2817 elseif gamemap == 619 metal_time = 2413 elseif gamemap == 620 metal_time = 5366 elseif gamemap == 621 metal_time = 10554 elseif gamemap == 622 metal_time = 3812 elseif gamemap == 623 metal_time = 4977 elseif gamemap == 624 metal_time = 18581 end metal_time = $ - 3*TICRATE end end) addHook("ThinkFrame", do if not (metal_timemode == 1 or metal_timemode == 2 or metal_timemode == 3) metal_timemode = 1 end if (gamemap >= 604 and gamemap <= 624) and playersfinished == 0 if leveltime >= 3*TICRATE metal_timeleft = (metal_time-(leveltime-3*TICRATE)) else metal_timeleft = metal_time end metal_timeleft = ($+abs($))/2 metal_minsleft = metal_timeleft/(TICRATE*60) metal_secsleft = (metal_timeleft/TICRATE)%60 metal_centisecsleft = (((metal_timeleft*100)%3500)/35) end end) local function metalthing(v,player) if gamemap >= 604 and gamemap <= 624 if (leveltime % 10 == 5 or leveltime % 10 > 5) and metal_timeleft <= 30*TICRATE and playersfinished == 0 v.drawString(140,40,"TIME:", V_REDMAP|V_SNAPTOTOP|V_SNAPTOLEFT) else v.drawString(140,40,"TIME:", V_YELLOWMAP|V_SNAPTOTOP|V_SNAPTOLEFT) if metal_timemode == 1 v.drawString(180,40,tostring(metal_minsleft) .. ":" .. tostring(metal_secsleft/10) .. tostring(metal_secsleft%10), V_SNAPTOTOP|V_SNAPTOLEFT) elseif metal_timemode == 2 v.drawString(180,40,tostring(metal_minsleft) .. ":" .. tostring(metal_secsleft/10) .. tostring(metal_secsleft%10) .. "." .. tostring(metal_centisecsleft/10) .. tostring(metal_centisecsleft%10), V_SNAPTOTOP|V_SNAPTOLEFT) elseif metal_timemode == 3 v.drawString(180,40,tostring(metal_timeleft), V_SNAPTOTOP|V_SNAPTOLEFT) end end end end hud.add(metalthing,"game")