Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Если игрок соответствует устовиям
#11
А остановить цикл при телепорте ?
Ответ
#12
L2J Написал:[SRC="java"] if(command.equals("nuboloka8083"))
{
for(ItemInstance item : player.getInventory().getItems())
{
if(item == null)
continue;
if(item.getCrystalType() != null)
{
if(item.getCrystalType().externalOrdinal <= 3)
{
player.teleToClosestTown();
}
else
{
player.sendMessage("Вы не подходите условиям.");
player.sendActionFailed();
return;
}
}
}
}[/SRC]
Сделал так, все проверяет, но теперь телепортирует и пишет вы не подходите..
Естественно у меня в инвентаре дб, если нет ничего или Б грейд шмот, то просто телпортирует. как и должно быть, но почему то еще телепортирует если не подходу условиям.
Где теперь ошибка?

сейчас это работает как:
получаю все вещи
беру вещь #1
она пустая ? продолжаем
тип кристалов не пуст ? идем дальше
тип кристалов меньше или равен 3 ? ТП игрока

в итоге, когда в инвентаре будет хотя бы одна вещь B грейда или ниже, игрока портанет.
Вам нужно создать массив и вносить туда типы кристалов, и потом в проверке если массив содержит запрещенные кри - писать ошибку, не содержит - тп.

ну, или так, как описано ниже Big Grin
Ответ
#13
PHP код:
<?php 
for(ItemInstance item : player.getInventory().getItems())
{
if(
item == null || item.getCrystalType() == null)
continue;
if(
item.getCrystalType().externalOrdinal > 3)
{
player.sendMessage("Вы не подходите условиям.");
player.sendActionFailed();
return;
}
}
player.teleToClosestTown();
return;
Ответ
#14
private static final int[] _грейдыВаси = { беГрейд, сеГрейд, ноуГрейд };

if(item.getCrystalType().externalOrdinal > _грейдыВаси)
Ответ
#15
SouthBridge Написал:
PHP код:
<?php 
for(ItemInstance item : player.getInventory().getItems())
{
if(
item == null || item.getCrystalType() == null)
continue;
if(
item.getCrystalType().externalOrdinal > 3)
{
player.sendMessage("Вы не подходите условиям.");
player.sendActionFailed();
return;
}
}
player.teleToClosestTown();
return;

Разве у игрока в инвентаре может лежать null? o_O l2j такой l2j.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#16
Pointer*Rage Написал:Разве у игрока в инвентаре может лежать null? o_O l2j такой l2j.

Ты код l2j давно смотрел? Они там всё проверяют на null, вообще всё...
Fortuna - non penis, in manus non recipe.
Ответ
#17
Ashe Написал:Ты код l2j давно смотрел? Они там всё проверяют на null, вообще всё...

Наоборот было бы плохо, если бы где то проверяли а где то нет. А так можно спокойно перевести на Optional\Nullable имея все эти проверки во всех местах, где может произойти такой казус.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  # Авторестарт если найден deadlock dantest 9 2,654 09-23-2015, 11:32 PM
Последний пост: flopix
  Обрыв каста, если цель не видно. elastic 7 2,878 02-20-2015, 10:00 PM
Последний пост: KilRoy
  Снятие HAIR если сняли DHAIR L2J 5 1,711 08-14-2014, 05:20 PM
Последний пост: Donatte
  Запрет атаки если присутсвует меньше игроков Rolfer 1 1,529 05-14-2014, 06:25 PM
Последний пост: n3k0nation
  "Если (персонаж.отошёл на() >= (n) метров)..." finfan 11 3,149 05-03-2012, 06:12 AM
Последний пост: bloodshed
  Как запретить использ. скилл, если нет душ Stema 1 2,530 12-01-2008, 11:46 PM
Последний пост: Stema

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


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