Тема: Grind Team
Показать сообщение отдельно

  #52  
Старый 07.08.2015, 20:55
kick
Флудер
Регистрация: 20.01.2015
Сообщений: 7,201
С нами: 5952720

Репутация: 6527


По умолчанию

[QUOTE="Mangol"]

Код:


[CODE]
public void addExpAndCheckBonus(MonsterInstance mob, final double noRateExp, double noRateSp, double partyVitalityMod)
{
if(_activeClass == null)
return;

// Начисление душ камаэлям
double neededExp = calcStat(Stats.SOULS_CONSUME_EXP, 0, mob, null);
if(neededExp > 0 && noRateExp > neededExp)
{
mob.broadcastPacket(new SpawnEmitter(mob, this));
ThreadPoolManager.getInstance().schedule(new GameObjectTasks.SoulConsumeTask(this), 1000);
}

double vitalityBonus = 0.;
int npcLevel = mob.getLevel();
if(Config.ALT_VITALITY_ENABLED)
{
vitalityBonus = mob.isRaid() ? 0. : getVitalityLevel(getNevitSystem().isBlessingActive ()) / 2.;
vitalityBonus *= Config.ALT_VITALITY_RATE;
if(noRateExp > 0 && !getNevitSystem().isBlessingActive())
{
if(!isVitalityStop())
{
if(!mob.isRaid())
{
// TODO: Разобратся, нельзя предметы использовать, или предметы не будут давать эффекта?
// (Все предметы для восполнения или поддержания энергии не действуют во время действия Нисхождения Невитта)
if(!(getVarB("NoExp") && getExp() == Experience.LEVEL[getLevel() + 1] - 1))
{
double points = ((noRateExp / (npcLevel * npcLevel)) * 100) / 9;
points *= Config.ALT_VITALITY_CONSUME_RATE;
if(getEffectList().getEffectByType(EffectType.Vita lity) != null)
points *= -1;
setVitality(getVitality() - points * partyVitalityMod);
}
}
else
setVitality(getVitality() + Config.ALT_VITALITY_RAID_BONUS);
}
else
setVitality(getVitality());
}
}

//При первом вызове, активируем таймеры бонусов.
if(!isInPeaceZone())
{
setRecomTimerActive(true);
getNevitSystem().startAdventTask();
if((getLevel() - npcLevel) = 10 && razLvl = -14))//30% от 10 до 14 уровней разница
{
addExpAndSp(normalExp/100*30, normalSp/100*30, (normalExp - expWithoutBonus)/100*30, (normalSp - spWithoutBonus)/100*30, false, true);
return;
}
if(razLvl > 14 || razLvl
 
Ответить с цитированием