I don't know much about how this event works, but maybe it fires only once when the player becomes ghost.
Anyway try like this:
#pragma semicolon 1
#pragma newdecls required
#define TEAM_INFECTED 3
public void OnPluginStart()
public void event_ghost_spawn_time(Event event, const char name, bool dontBroadcast)
int client = GetClientOfUserId(event.GetInt("attacker"));
int spawntime = event.GetInt("spawntime");
PrintToChatAll("client %N | time %i", client, spawntime);
if (1 <= client <= MaxClients && IsClientInGame(client) && !IsFakeClient(client) && GetClientTeam(client) == 3 && spawntime < 4)
If that doesn't fire every second, then you may need to create a timer to make the "countdown"