Даю псевдо-код с ссылками на код L2J что-бы было понятно о чем и как идется разговор.
1. Берем стандартный квест для нпц по типу
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками
Вход или
Регистрация
2. Когда игрок выбирает мултисел опцию (
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками
Вход или
Регистрация
) нужно будет создавать новый ListContainer (псевдо-код снизу)
3. Используем функционал отправки мултисела от сюда
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками
Вход или
Регистрация
, где самое главное это дублировать эту функцию что-бы пересылать уже готовый ListContainer, а не его id.
Псевдо-код генерации ListContainer:
JavaScript:
class ImprovedIngredient extends Ingredient {
enchantLevel: number
getEnchantLeve() : number {
return this.enchantLevel
}
}
const list = new ListContainer(1)
list.setApplyTaxes(false)
list.setMaintainEnchantment(false)
let counter = 1
const staticIngredient = new Ingredient(57, 1000, false, false ) // каждый апгрейд стоит 1000 адены
player.getInventory().forEachItem(item => {
if(item.template.getItemGrade() !== CrystalType.NONE) {
const entry = new Entry(counter++)
const product = new ImprovedIngredient( item.getId(), 1, false, false )
const currentItemIngredient = new Ingredient( item.getId(), 1, false, false )
product.enchantLevel = item.getEnchantLevel() + 1 // прибавляем энчант уровень
entry.products.add( product )
entry.ingredients.add( staticIngredient )
entry.ingredients.add( currentItemIngredient )
list.entries.add( entry )
}
})
MultisellData.separateAndSend(list, player, npc, false);