Tested on:
Windows XP
Amxmodx 1.01
Metamod 1.17.4
SuperHero Mod 1.18a
Vault Saving
Regaurdless of my tests specs, this will happen on all amx/x and shmod versions.
Bug:
Cooldown (aka ultimateTimer) for cyclops can get tricked up because it can be set regaurdless if already in a cooldown or if a laser was fired or not (or even when dead but if you add a check for laser fired dead people can't fire lasers). It just can be set over and over as long as the round has started. Because of this the cooldown gets gliched and power can be used more often then you are supposed to if a cooldown time was set.
Recommended Fix:
-Create a new global to see if a shot was fired. Reason: someone could be holding the key down during a cooldown and after key is released cooldown is set again...
-Check to see if a user is already in a cooldown before setting one. Reason: setting the same cooldown repeatedly makes it possible to bypass the cooldown...
-add checks around line 187 if laser fired or if in a cooldown. Like for example:
Code:
if ( !hasRoundStarted() || gPlayerUltimateUsed[id] || !gLaserFired[id] ) return
Also, ResetHUD could use a remove_task(id) to stop players from still being in a multishoot when a user is spawned.