Interesting idea. Good job.
-You can add particle effects and such, or TE's on a player. Its alot of code to paste so, im not going to and it gets kinda complicated on different ways of doing it so...
-What do you mean it doesnt handle bad targets the way it should?
-You can do onscreen timers many different ways.. I have multiple plugins that I do this in. One plugin uses CreateHudSynchronizer();, one uses printcentertext and another uses printhinttext. Youd just need to look around and figure out what you like best.
Personally I think printcentertext is the best for an on-screen timer, but maybe its just me. Printhinttext is nice but plays a sound...: /
CreateHudSynchronizer(); is cool as you can change the colors and position of the text. Its definitely the most complicated to code though.
A copy and paste from one of my plugins I do it like this. Other smarter people probably have more efficient better methods, but bleh.
This one is fairly simplistic.
Code:
IndexTimerCount[client] = 0;
PrintCenterText(client, "%i", GetConVarInt(c_Cvar));
CreateTimer(1.0, CritsTimerRepeat, client, TIMER_REPEAT);
Code:
public Action:CritsTimerRepeat(Handle:Timer, any:client)
{
if(IsClientInGame(client) && IsPlayerAlive(client) && arrayVariableCheckHere[client][#])
{
IndexTimerCount[client]++;
PrintCenterText(client, "%i", GetConVarInt(c_Cvar) - IndexTimerCount[client]);
}
else{
KillTimer(Timer);
}
return Plugin_Continue;
}