Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Настройка дропа (First-Team, Over и т.д.)
#1
Здравствуйте посетители форума.
Хочу разобраться с проблемой правильного дропа.
Для примера его неправильности - шанс на Группу колечка АК в "RATED_GROUPED":

Код:
<group chance="30.0">
<reward item_id="6660" min="1" max="1" chance="100.0000" /> <!--Ring of Queen Ant-->
</group>

Если я правильно все понимаю, то шанс на срабатывание группы должен быть 30% и если срабатывает, то кольцо 100% выпадает.

Но на практике шанс группы 100%. Вернее через альт-шифт показывает правильно, а выпадает всегда 100%.

Полез я в RewardData.java и первое на что обратил внимание:

Код:
public RewardData(int itemId)
{
_item = ItemHolder.getInstance().getTemplate(itemId);
if(_item.isArrow())
_notRate = true; // стрелы не рейтуются
if(Config.NO_RATE_EQUIPMENT && _item.isEquipment())
_notRate = true; // отключаемая рейтовка эквипа
if(Config.NO_RATE_KEY_MATERIAL && _item.isKeyMatherial())
_notRate = true; // отключаемая рейтовка ключевых материалов
if(Config.NO_RATE_RECIPES && _item.isRecipe())
_notRate = true; // отключаемая рейтовка рецептов
if(ArrayUtils.contains(Config.NO_RATE_ITEMS, itemId))
_notRate = true;
if(Config.NO_RATE_HERBS && _item.isHerb())
_notRate = true; // отключаемая рейтовка хербов
if(Config.NO_RATE_ENCHANT_SCROLL && _item.isEnchantScroll())
_notRate = true;
if(Config.NO_RATE_ATT && _item.isAttributeCrystal())
_notRate = true;
if(Config.NO_RATE_ATT && _item.isAttributeJewel())
_notRate = true;
if(Config.NO_RATE_ATT && _item.isAttributeStone())
_notRate = true;
if(Config.NO_RATE_ATT && _item.isAttributeEnergy())
_notRate = true;
if(Config.NO_RATE_LIFE_STONE && _item.isLifeStone())
_notRate = true;
if(Config.NO_RATE_CODEX_BOOK && _item.isCodexBook())
_notRate = true;
if(Config.NO_RATE_FORGOTTEN_SCROLL && _item.isForgottenScroll())
_notRate = true;
}

"_notRate = true;" я расставил для каждого отдельно, так как один общий "_notRate = true;" на весь класс брал судя по всему последний шанс. Но к сожалению это не помогло.

Проблему на данном этапе обнаружил в "RewardGroup.java" ФТ-сборки.

Там есть функция:
Код:
public List<RewardItem> roll(RewardType type, Player player, double mod, boolean isRaid, boolean isSiegeGuard, boolean isChampion)
{
  switch(type)
  {
   case NOT_RATED_GROUPED:
   case NOT_RATED_NOT_GROUPED:{
    _isRaid = false;
    return rollItems(mod, 1.0, 1.0);}
   case SWEEP:{
    _isRaid = false;
    return rollItems(mod, Config.RATE_DROP_SPOIL, player.getRateSpoil());}
   case RATED_GROUPED:
    if(_isAdena)
     return rollAdena(mod, Config.RATE_DROP_ADENA, player.getRateAdena());
    if(_isHerb){
     _isRaid = false;
     return rollItems(mod, Config.RATE_DROP_HERBS, 1.0);}
    if(isRaid){
    player.sendMessage("проверка"); // тут не работает
     _isRaid = true;
     _notRate = Config.NO_RATE_RAIDBOSS;
     return rollItems(mod, Config.RATE_DROP_RAIDBOSS, 1.0);}
    if(isSiegeGuard){
     _isRaid = false;
     _notRate = Config.NO_RATE_SIEGE_GUARD;
     return rollItems(mod, Config.RATE_DROP_SIEGE_GUARD, 1.0);}
    _isRaid = false;
    player.sendMessage("проверка"); // показывает в чат
    return rollItems(mod, Config.RATE_DROP_ITEMS, player.getRateItems());
   default:
    return Collections.emptyList();
  }
}

Сделал проверку условий в кейсе "RATED_GROUPED" обычными сообщениями. И как оказалось проблема в том, что в функцию не поступают некоторые данные, в моем случае в функцию:

Код:
public List<RewardItem> roll(RewardType type, Player player, double mod, boolean isRaid, boolean isSiegeGuard, boolean isChampion)

не приходят данные "boolean isRaid". В то же время в самом RewardList.java:

Код:
public RewardList(RewardType rewardType, boolean a)
{
  super(5);
  _type = rewardType;
  _autoLoot = a;
}
public List<RewardItem> roll(Player player)
{
  return roll(player, 1.0, false, false);
}

public List<RewardItem> roll(Player player, double mod)
{
  return roll(player, mod, false, false);
}

public List<RewardItem> roll(Player player, double mod, boolean isRaid)
{
  return roll(player, mod, true, false); // тут было return roll(player, mod, isRaid, false);
}
public List<RewardItem> roll(Player player, double mod, boolean isRaid, boolean isSiegeGuard)
{
  return roll(player, mod, false, false, true);
}

public List<RewardItem> roll(Player player, double mod, boolean isRaid, boolean isSiegeGuard, boolean isChampion)
{
  List<RewardItem> temp = new ArrayList<RewardItem>(size());
  for(RewardGroup g : this)
  {
   List<RewardItem> tdl = g.roll(_type, player, mod, isRaid, isSiegeGuard, isChampion);
   if(!tdl.isEmpty())
    for(RewardItem itd : tdl)
     temp.add(itd);
  }
  return temp;
}

Насколько я помню "boolean" может принимать значения "тру", "фелс", еденицу и ноль - в связи с чем поправил:

Код:
public List<RewardItem> roll(Player player, double mod, boolean isRaid)
{
  return roll(player, mod, true, false); // тут было return roll(player, mod, isRaid, false);
}

Но к сожалению это не помогло. Получается, что просто не приходят данные о типе моба (Рейдбосса, но подозреваю, что и остальных тоже).
Есть ли идеи? Если я правильно понял всю проблему - подскажите пожалуйста куда смотреть(откуда идут данные о мобе)?

Спасибо всем откликнувшимся
Ответ
#2
RATED_GROUPED - знач группа, рейтируется.

Поставь NOT_RATED_GROUPED вроде так
consulo.io - Consulo - multi-language IDE
Ответ
#3
VISTALL Написал:RATED_GROUPED - знач группа, рейтируется.

Поставь NOT_RATED_GROUPED вроде так

Вы не совсем поняли проблему. Я хочу для рейдов выставить другие рейты. Для каждого РБ в игре прописать рейты в ручную не вариант.
Ответ
#4
iskiz Написал:Вы не совсем поняли проблему. Я хочу для рейдов выставить другие рейты. Для каждого РБ в игре прописать рейты в ручную не вариант.

Может у вас рейт на шанс группы выставлен? Помнится в фт была такая опция..
Ответ
#5
Melcor Написал:Может у вас рейт на шанс группы выставлен? Помнится в фт была такая опция..

Если будет стоять все рейты по х1, а RATE_DROP_ITEMS х10, то весь сервер будет х10 - включая рейдов и шансы групп.

Добавлено через 2 часа 31 минуту
есть у кого-нить идеи?
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Настройка сервера High Five TieLay 2 5,600 09-21-2023, 07:49 AM
Последний пост: Lafani
  Настройка инстанс для соло skallistey 4 2,133 10-14-2021, 03:06 PM
Последний пост: flopix
  Проблемы с импортом в квестах на сборке Open-Team devset 2 2,762 02-02-2020, 06:26 PM
Последний пост: Bonabo
  настройка олимпиады хф vakisdasi 0 1,416 10-16-2019, 06:09 PM
Последний пост: vakisdasi
  ШАРА: Grind-Team RvR High Five SongSing 14 11,838 01-02-2019, 11:45 AM
Последний пост: X1oN
  adrenalin 1.66 VMProtect unpacked ~ Protection Crushers Reverse Engineering Team AlisaVIRUS 0 1,999 01-01-2018, 02:00 AM
Последний пост: AlisaVIRUS
  Шара. Pain-team 14 Holsten 12 7,323 08-13-2017, 11:56 AM
Последний пост: iLee
  Фикс Кенжей и Настройка босса Beleth KastaMeN 7 2,563 05-14-2017, 07:31 AM
Последний пост: FaintSmile
  одтормаживания во время дропа или продажи итемов iSeeYourBalls 1 1,378 02-21-2017, 01:48 PM
Последний пост: iSeeYourBalls
  First Guard настройка virusoflove 2 2,513 11-06-2016, 06:21 PM
Последний пост: KateKate7912

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


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