Edit: Tested the plugin at 50% it felt just like co-op but it would be nice to have the exact number co-op is at.

Edit2: Ok bit of a problem with bunny-hopping, don't know if it can be fixed. In co-op you bunny-hop in the water it still feels slow, but using this plugin it feels like you accelerate though the air. You can just bunny-hop and avoid the slow down effect all together. Now I doubt most people will pick this up but me and my friends played defrag on quake3 forever and the minute they jump(and feel that acceleration like I did) they'll bunny-hop the whole thing.

It loops from 1,MaxClients every time and skips all the "invalid" clients. However if we consider the typical situation of 4 alive survivors, 18 maxclients, that means you're skipping 66.66% of the time. Plus calling extra natives which is relatively expensive.

//call this when player connects AND hes a survivor AND hes alive
OnPlayerJoinSurvivors(client)
{
if(!FindSurvivorIdx(client))
survivor_clients[survivor_count++] = client;
}

//call this when a player disconnects OR hes not a survivor OR hes not alive
OnPlayerLeaveSurvivors(client)
{
new idx = FindSurvivorIdx(client);
//keep the array contiguous
if(idx)
{
SwapArrayElements(survivor_clients, idx, survivor_count-1);
survivor_count--;
}
}