Rafał, to jak najbardziej może i powinno być w zs_dead. Przecież na tej zasadzie działa przydzielanie expa, other to na 100% zabójca:
if Npc_IsPlayer (other)
|| (C_NpcIsHuman (other) && other.aivar[AIV_PARTYMEMBER])
|| (C_NpcIsMonster(other) && other.aivar[AIV_MM_PARTYMEMBER])
{
B_DeathXP(); // vergibt XP an SC
};
Jak widzisz, ten oryginalny fragment kodu przydziela expa graczowi jeśli zabił on, lub jego sojusznik, lub jego potworek. Najprostszy możliwy do napisania dodatkowy warunek to:
if (C_NpcIsMonster(other) && other.aivar[AIV_MM_PARTYMEMBER]))
{
other.aivar[AIV_MMPT_POINTS] +=1;
other.exp += self.level * XP_PER_LEVEL_DEAD;
};
Przy czym AIV_MMPT_POINTS może równać się np 43 (pierwszy wolny aivar, miejsca są do 49). Zauważ że bez względu na ilość expa zwierzaczek nie będzie się levelował, od tego musisz napisać całkiem własną funkcję.
BTW, spróbowałbyś chociaż najpierw samemu ogarnąć podstawy i spróbować to skleić, a nie oczekujesz że dostaniesz coś gotowego