Парни подскажите пожалуйста, где копать или в чем может быть проблема. На 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); } }
Прелагаю взять for (Player p : players) { А тут написать то что вы накладываете на "р" } И куда то вот сюда переместить moveToStartPosition
Просто берешь for(Player p : instance.getPlayersInside()) { тут код, он будет действовать на всех игроков в инстансе ивента }