vbvvctnd69
Ефрейтор
Парни подскажите пожалуйста, где копать или в чем может быть проблема.
На 1х1 после убийства, накладывает эффект только лишь на победителя, а на проигравшего нет..
Часть кода:
На 1х1 после убийства, накладывает эффект только лишь на победителя, а на проигравшего нет..
Часть кода:
Код:
protected void deathPlayer(Player victim, Creature lastAttacker) {
if (lastAttacker.getActingCreature() instanceof Player && victim != lastAttacker) {
Player winner = (Player) lastAttacker.getActingCreature();
EventScore winnerScore = this.getScore(winner.getObjectId());
EventScore loserScore = this.getScore(victim.getObjectId());
winnerScore.Kills++;
winnerScore.Wins++;
loserScore.Death++;
loserScore.Loses++;
PacketSendUtility.sendPacket(winner, new SM_SYSTEM_MESSAGE(1360001, victim.getName()));
if (this.endRoundTask != null) {
this.endRoundTask.cancel(true);
this.endRoundTask = null;
}
this.HealPlayer(victim, false, true);
this.HealPlayer(winner, false, true);
winner.setTarget(null);
victim.setTarget(null);
moveToStartPosition();
victim.getEffectController().removeAbnormalEffectsByTargetSlot(SkillTargetSlot.DEBUFF);
winner.getEffectController().removeAbnormalEffectsByTargetSlot(SkillTargetSlot.DEBUFF);
SkillEngine.getInstance().applyEffectDirectly(18191, victim, victim, 10000);
SkillEngine.getInstance().applyEffectDirectly(10380, victim, victim, 10000);
SkillEngine.getInstance().applyEffectDirectly(18191, winner, winner, 10000);
SkillEngine.getInstance().applyEffectDirectly(10380, winner, winner, 10000);
this.stopTimer();
this.sendSpecMessage("EventManager", "Раунд: " + round + " завершен, победитель: " + winner.getName());
ThreadPoolManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
if (hasWinner()) {
sendSpecMessage("EventManager", "Ивент завершен");
DoReward();
return;
}
if (nextRoundTask != null) {
nextRoundTask.cancel(true);
nextRoundTask = null;
}
for (Player p : players) {
HealPlayer(p, false, true);
}
nextRoundTask = ThreadPoolManager.getInstance().schedule(new Runnable() {
@Override
public void run() {
NextRound(false);
}
}, 4000);
}
}, 5000);
}
}
