Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
overword ивент TvT определение target
#1
Ребята мб кто подскажет как добавить условие, чтобы при килле цели находящейся в свое команде не добавлялись поинты.

При таком условии выдаёт следующую ошибку:


Type mismatch: cannot convert from l2p.gameserver.model.GameObject to l2p.gameserver.model.Player


Имеем метод:

private static void increasePoints(Creature killer)
{
Player player = killer.getPlayer();
Player target = player.getTarget();
if(player == null)
return;
if(player.getTeam() == TeamType.BLUE & target.getTeam() == TeamType.RED)
bluePoints++;


else if (player.getTeam() == TeamType.RED & target.getTeam() == TeamType.BLUE)
redPoints++;

else
return;
int timeLeft = (int) ((getStarterTime() - System.currentTimeMillis()) / 1000);

if(player.getTeam() == TeamType.RED)
{
for(Player player1 : getPlayers(players_list1))
player1.sendPacket(new ExCubeGameExtendedChangePoints(timeLeft, bluePoints, redPoints, true, player, getPlayerScore(player)));
for(Player player2 : getPlayers(players_list2))
player2.sendPacket(new ExCubeGameExtendedChangePoints(timeLeft, bluePoints, redPoints, true, player, getPlayerScore(player)));
for(Player player1 : getPlayers(players_list1))
player1.sendPacket(new ExCubeGameExtendedChangePoints(timeLeft, bluePoints, redPoints, false, player, getPlayerScore(player)));
for(Player player2 : getPlayers(players_list2))
player2.sendPacket(new ExCubeGameExtendedChangePoints(timeLeft, bluePoints, redPoints, false, player, getPlayerScore(player)));
}
else
{
for(Player player1 : getPlayers(players_list1))
player1.sendPacket(new ExCubeGameExtendedChangePoints(timeLeft, bluePoints, redPoints, false, player, getPlayerScore(player)));
for(Player player2 : getPlayers(players_list2))
player2.sendPacket(new ExCubeGameExtendedChangePoints(timeLeft, bluePoints, redPoints, false, player, getPlayerScore(player)));
for(Player player1 : getPlayers(players_list1))
player1.sendPacket(new ExCubeGameExtendedChangePoints(timeLeft, bluePoints, redPoints, true, player, getPlayerScore(player)));
for(Player player2 : getPlayers(players_list2))
player2.sendPacket(new ExCubeGameExtendedChangePoints(timeLeft, bluePoints, redPoints, true, player, getPlayerScore(player)));
}
}
Ответ
#2
delete-----
Ответ
#3
ошибку приведения можно исправить добавив:
Код:
Player target = player.getTarget().getPlayer();
но это может вполне дать дорогу другим ошибкам. разбирайтесь!

зы.
я не понял, что это за поле bluePoints? оно что статично в классе?:eek:
Ответ
#4
спасибо за подсказку
Ответ
#5
что мешает проверять в самом листенере на убийства - принадлежат ли убитый и убивший к одному отряду или к разным и действовать в зависимости от этого?
ну и не забывать еще проверять на null и т.д. все что надо.

пример обработок
Код:
    @Override
    public void onKill(Creature actor, Creature victim)
    {
        if (actor == null || victim == null || getStatus() != EventStatus.BATTLE || actor.getPlayer() == null || !victim.isPlayer())
            return;

        EventMember killer = getMember(actor.getPlayer());
        EventMember killed = getMember(victim.getPlayer());

        if (killer == null || killed == null || killer == killed || killer.getPlayer() == null || killed.getPlayer() == null || killer.getTeam() == killed.getTeam())
            return;

        addRewards(killer.getPlayer(), ActionType.KILL);
        killed.decValue(1);

        if (killed.getValue() > 0)
        {
            ThreadPoolManager.getInstance().schedule(new PvPEventTasks.ActionTask(this, killed.getPlayer(), ActionTaskType.REVIVE_AND_BUFF), getConfig().getTimeToRevive() * 1000L);
            showMessage(killed.getPlayer(), "Количество оставшихся у вас жизней: " + killed.getValue() + ". Через несколько секунд вы будете возрождены.");
        }
        else
        {
            killed.setLive(false);
            showMessage(killed.getPlayer(), "У вас не осталось жизней - вы не можете больше возродиться. Дождитесь окончания раунда.");

            if (isAnyTeamIsEmpty(true))
                endBattle();
        }
    }
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Ивент Transport L2P to OWERVORLD Kosgond 4 2,559 09-09-2013, 12:44 PM
Последний пост: Krickt105
  Расчет дистанции activeChar - target finfan 2 1,448 01-15-2013, 06:54 AM
Последний пост: finfan
  Unrecognized <target> condition... finfan 5 1,542 05-19-2012, 05:48 PM
Последний пост: finfan
  Next Target bezumni 9 4,325 04-01-2012, 12:17 AM
Последний пост: Ro_0TT
  Новогодний ивент REANIMATOR1 6 2,242 12-29-2011, 09:36 AM
Последний пост: REANIMATOR1
  Ивент в точное время NiddUA 16 2,925 08-08-2011, 02:04 PM
Последний пост: NiddUA
  Ивент OkoPwnz 7 2,661 05-13-2011, 08:56 PM
Последний пост: [STIGMATED]
  Новогодний ивент для l2jfree (есть у кого?) Stema 0 2,090 12-02-2008, 12:03 AM
Последний пост: Stema

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)