Где в исходниках выдается дроп и спойл в Acis?

BladeRunner

Интересующийся
VIP
Сообщения
340
Розыгрыши
0
Решения
1
Репутация
-60
Реакции
154
Баллы
335
Хроники
  1. Interlude
Исходники
Присутствуют
Сборка
Acis 401
Подскажите, где в исходниках Акисе выдается дроп и спойл? Не могу найти. Только шансы, категории, проверку изспойлед и тд. А сама инициализация выдачи где находится? и как запихнуть то что в спойле, чтобы выдавалось вместе с дропом по автолуту?
 
В исходниках и не найдете) вернее, найдете, но не в ядре, а в датапаке.

Upd: npc/*.xml в датапаке. Вот только как массово редактировать дроплист, у меня пока идей нет)
 
регулярки, ну или набросать скрипт на любом подходящем ЯП, который загрузит хмл в память в виде объекта/массива, найти в нем нужное, поправить и сохранить все обратно.

З.Ы. есть еще такие вещи как XPath и XQuery, позволяющие работать с данными в хмл как с бд, но я особо в то как с ними работать не вдавался.
 
Последнее редактирование:
В исходниках и не найдете) вернее, найдете, но не в ядре, а в датапаке.

Upd: npc/*.xml в датапаке. Вот только как массово редактировать дроплист, у меня пока идей нет)
не может такого быть. в программе должен быть инициализирован момент обработки события смерти моба с последующей выдачей награды. и при его обработке выдается обычный дроп/манор/хербы , но выдача спойла при условии isSpoiled не происходит. а спойл как я понял выдается при инициализации скила свип. То есть для свипа нашел помент выдачи награды, а момент инициализации выдачи дропа - пока не могу найти, и там надо поправить, чтобы категория спойла -1 тоже выдавалась с остальным дропом.
 
не может такого быть. в программе должен быть инициализирован момент обработки события смерти моба с последующей выдачей награды. и при его обработке выдается обычный дроп/манор/хербы , но выдача спойла при условии isSpoiled не происходит. а спойл как я понял выдается при инициализации скила свип. То есть для свипа нашел помент выдачи награды, а момент инициализации выдачи дропа - пока не могу найти, и там надо поправить, чтобы категория спойла -1 тоже выдавалась с остальным дропом.
ну самое просто - запустить в дебаге и посмотреть после чего выполняется метод подсчета дропа
 
эээммм... это сложно, я только учусь)) расскажи поподробнее)
исходник есть
ищем в исхолнике где считается дроп, а именно метод и туда пишем
Thread.dumpstack или около того и ждём...
если совсем все грустно - идём в метод добавления игроку предмета и там пишем ту же фразу.
ЕСЛИ ФРАЗА СВЕТИЦЦА КРАСНЫМ ИЛИ НЕ КОМПИЛИТСЯ - ПОИЩИТЕ В ГУГЛЕ КАК ПРАВИЛЬНО ЕЕ НАПИСАТЬ.

УПД
Если что - ждать это компиляция и убийство для начала подсчета дропа.
 
Последнее редактирование:
исходник есть
ищем в исхолнике где считается дроп, а именно метод и туда пишем
Thread.dumpstack или около того и ждём...
если совсем все грустно - идём в метод добавления игроку предмета и там пишем ту же фразу.
ЕСЛИ ФРАЗА СВЕТИУЦА КРАСНЫМ ИЛИ НЕ УОМПИЛИТСЯ - ПОИЩИТЕ В ГУГЛЕ КАК ПРАВИЛЬНО ЕЕ НАПИСАТЬ.
спасибо! буду пробовать)

но вдруг кто-то сможет сразу ткнуть пальцем, в каком файле и какой метод надо править )
 
спасибо! буду пробовать)

но вдруг кто-то сможет сразу ткнуть пальцем, в каком файле и какой метод надо править )
1. В том где MonsterInstance умирает
2. В том, где Player Instance или Player Inventory.
 
спасибо! как раз над этим куском и тупил.
я правильно понял, что вот в этом куске
Код:
for (DropCategory cat : template.getDropData())
{
IntIntHolder holder = null;
   if (cat.isSweep())
   {
 if (getSpoilState().isSpoiled())
      {
 for (DropData drop : cat.getAllDrops())
         {
holder = calculateRewardItem(drop, levelModifier, true);
            if (holder == null)
continue;
           
            getSpoilState().add(holder);
         }
      }
   }
else
   {
 if (getSeedState().isSeeded())
      {
final DropData drop = cat.dropSeedAllowedDropsOnly();
         if (drop == null)
continue;
        
         holder = calculateRewardItem(drop, levelModifier, false);
      }
else
         holder = calculateCategorizedRewardItem(cat, levelModifier);
     
      if (holder == null)
continue;
     
      dropOrAutoLootItem(player, holder, true);
   }

1. Он спойл в массив getSpoilState записывает, а дроп сразу выдает? но тогда я не понял, что с манором, он просто прописывает его в holder
2. если в спойле вместо getSpoilState().add(holder); пропишу dropOrAutoLootItem(player, holder, true); - он выдаст его сразу вместе с дропом?
 
Назад
Сверху Снизу