Now you just need to sort player.lastDeath (in my script i named it different) and spawn the sorted players:
PHP Code:
players = getActivePlayers(); // axis/allies
sorted = sort(players, ::isPlayerAlongerHunterAsB); // the first entries are the players was most hunters (=new start zombies)
// example:
// players: 10
// numberOfNewZombies = 1 + int(10/4) = 3
// hunters: for (i=numbersOfNewZombies; i<sorted.size; i++)
// spawn the hunters FIRST...
for (i=numberOfNewZombies; i<sorted.size; i++)
{
hunter = sorted[i];
hunter roundRestart("allies");
}
// spawn the zombies (near the hunters then)...
for (i=0; i<numberOfNewZombies; i++)
{
zombie = sorted[i];
zombie roundRestart("axis", " ^7"+(i+1)+"^1/^7"+numberOfNewZombies);
}
PHP Code:
isPlayerAlongerHunterAsB(a, b)
{
if (a.lastTimeOfDeathAsHunter > b.lastTimeOfDeathAsHunter)
return 1;
else
return 0;
}
// sample-function for sort()
a_bigger_b(a, b)
{
if (a > b)
return 1;
else
return 0;
}
// slow, but works... cba for quicksort now
sort(elements, isAbiggerB)
{
for (i=0; i<elements.size; i++)
{
for (j=i+1; j<elements.size; j++)
{
//if (elements[i] < elements[j])
if (
! // big to small...
[[isAbiggerB]](elements[i], elements[j])
)
{
// swap
tmp = elements[j];
elements[j] = elements[i];
elements[i] = tmp;
}
}
}
return elements;
}
getActivePlayers()
{
players = getentarray("player", "classname");
tmp = [];
for (i=0; i<players.size; i++)
{
player = players[i];
if (player.pers["team"] == "axis" || player.pers["team"] == "allies")
tmp[tmp.size] = player;
}
return tmp;
}