• SiteAnalyzer, технический и SEO-анализ сайтов

Help me 1x1

vbvvctnd69

Ефрейтор
Парни подскажите пожалуйста, где копать или в чем может быть проблема.
На 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()) {
тут код, он будет действовать на всех игроков в инстансе ивента
}
 
Назад
Сверху