↑ ↓

Help me 1x1

Тема в разделе "Помощь", создана пользователем vbvvctnd69, 12 июл 2022.

  1. TopicStarter Overlay
    Offline

    vbvvctnd69 Ефрейтор

    110
    11
    51
    Кредиты:
    $636,01
    Репутация:
    0
    Парни подскажите пожалуйста, где копать или в чем может быть проблема.
    На 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);
    		}
    	}
     
  2. Offline

    yayaya Ефрейтор Команда форума

    587
    183
    76
    Кредиты:
    $20.524,68
    Репутация:
    38
    Прелагаю взять
    for (Player p : players) {
    А тут написать то что вы накладываете на "р"
    }
    И куда то вот сюда переместить moveToStartPosition
     
  3. Offline

    WeRn Ефрейтор

    496
    59
    59
    Кредиты:
    $16.149,43
    Репутация:
    8
    Просто берешь
    for(Player p : instance.getPlayersInside()) {
    тут код, он будет действовать на всех игроков в инстансе ивента
    }
     
  4. TopicStarter Overlay
    Offline

    vbvvctnd69 Ефрейтор

    110
    11
    51
    Кредиты:
    $636,01
    Репутация:
    0
    Спасибо !!
     
  5. TopicStarter Overlay
    Offline

    vbvvctnd69 Ефрейтор

    110
    11
    51
    Кредиты:
    $636,01
    Репутация:
    0
    Спасибо !!