About the assist kills, wrote that script once for zombots:
on player damage:
	PHP Code:
	
		
zombie utils\assist::ASSIST_add(iDamage, eAttacker); 
	
 on player kill:
	PHP Code:
	
		
    // zombie ASSIST_do_scores();
    
    player = zombie;
    if (isDefined(player.assistKills))
    {
        helpingHands = player.assistKills.size - 1;
        for (i=0; i<player.assistKills.size; i++)
        {
            // assist-killer leaved...
            if (!isDefined(player.assistKills[i].causer))
                continue;
            partDamage = player.assistKills[i].damage;
            full = player.maxhealth;
            percent = partDamage/(full/100);
            //moneyForKill = mod\config::CONFIG_moneyForKill();
            moneyForKill = zombie.points;
            coins = moneyForKill * (percent/100);
            percent = int(percent);
            coins = int(coins);
            //player.assistKills[i].causer mod\player::addMoney(coins); // looks ugly with 1.33333, but better round it in hud-management...
            player.assistKills[i].causer.score++;
            player.assistKills[i].causer utils\money::addMoney(coins);
            
            //player.assistKills[i].causer iprintlnbold("^1" + percent + " ^1P^7ercent ^1o^7f ^1" + player.maxhealth + " ^1H^7ealth ^7= ^1" + coins + "^7$");
            /*
            if (player.assistKills[i].causer == attacker)
            {
                //if (player.assistKills[i].causer isKung())
                    player.assistKills[i].causer iprintlnbold("^1K^7ILL ^1(^7"+percent+" ^1P^7ercent^1)^7! ^1H^7elping ^1H^7ands: "+helpingHands + " ^1C^7oins: ^1+^7"+coins);
            } else {
                //if (player.assistKills[i].causer isKung())
                    player.assistKills[i].causer iprintlnbold("^1A^7SSIST-^1K^7ILL ^1(^7"+percent+" ^1P^7ercent^1)^7! ^1H^7elping ^1H^7ands: "+helpingHands + " ^1C^7oins: ^1+^7"+coins);
            }
            */
        }
        // clear them...
        player.assistKills = undefined;
    } 
	
 utils/assist.gsc
	PHP Code:
	
		
ASSIST_add(iDamage, eAttacker)
{
    entity = self;
    
    if (entity.health <= 0)
    {
        //iprintln("entity.health <= 0");
        return;
    }
    // example 1:
    // health of zombie = 200/400
    // damage = 100
    // causedDamage = 100
    // example 2:
    // health of zombie = 200/400
    // damage = 300
    // causedDamage = 200
    causedDamage = iDamage;
    if (causedDamage > entity.health)
        causedDamage = entity.health;
    //kung iprintln("causedDamage="+causedDamage + " iDamage="+iDamage + " enemyHealth="+player.health);
    if (!isDefined(entity.assistKills))
        entity.assistKills = [];
    // caused the eAttacker already an assistKill?
    causedAssistKill = -1; // -1 = no assist kill
    for (i=0; i<entity.assistKills.size; i++)
    {
        if (!isDefined(entity.assistKills[i].causer)) // left server
            continue;
        if (entity.assistKills[i].causer != eAttacker)
            continue;
        causedAssistKill = i;
        break;
    }
    if (causedAssistKill == -1)
    {
        assistKill = spawnStruct();
        assistKill.causer = eAttacker;
        assistKill.damage = causedDamage;
        entity.assistKills[entity.assistKills.size] = assistKill;
        //iprintlnbold("New Assistkill! Damage: "+causedDamage);
    } else {
        entity.assistKills[i].damage += causedDamage;
        //iprintlnbold("Added Damage! Now: "+entity.assistKills[i].damage);
    }
}