{
if(isRaid() || quest.getParty() == Quest.PARTY_ALL) // если цель рейд или квест для всей пати награждаем всех участников
{
for(L2Player pl : players)
{
QuestState qs = pl.getQuestState(quest.getName());
if(qs != null && !qs.isCompleted())
{
quest.notifyKill(this, qs);
}
}
toReward = null;
}
else
{ // иначе выбираем одного
GArray<L2Player> interested = new GArray<L2Player>(players.size());
for(L2Player pl : players)
{
QuestState qs = pl.getQuestState(quest.getName());
if(qs != null && !qs.isCompleted()) // из тех, у кого взят квест
{
interested.add(pl);
}
}
if(interested.isEmpty())
{
continue;
}
toReward = interested.get(Rnd.get(interested.size()));
if(toReward == null)
{
toReward = killer;
}
}
}
if(toReward != null)
{
QuestState qs = toReward.getQuestState(quest.getName());
if(qs != null && !qs.isCompleted())
{
quest.notifyKill(this, qs);
}
}
}