Все квесты, что у тебя в сборке - это просто парс айдишников нпс и диалогов с клиента, о кастомных там и речи не идет
я это понял. я имею ввиду, как теперь сделать аи нпсу, чтобы при лкм он забирал одну вещь и выдавал награду (опыт, предмет) - думаю такое уже давно придумано?
пытаюсь, а подробнее можно, примеры таких аи из сборок или может где-то есть информация по таким вещам?
AionExtract полностью распаковывает и расшифровывает все файлы. Если что то не распаковало нормально, значит клиент был уже модифицирован кем то. Please login or register to view links
Каким-то чудом получилось, взял рандомный аи похожий на нужный, пару минут правки и даже не ожидал что с 1 раза запустится. Всем спасибо.
Вообще не видел инфы по айон эмулятором в открытом доступе кроме гайдов по запуску, все приходится самому изучать) AIONencdec + AIONdisasm в разы удобнее, нет необходимости расшифровывать весь pak) Просто вытащил что тебе надо, запихнул обратно и всё
да точно так же когда надо что то конкретное поменять(когда знаешь где оно). Но тут речь про html пошла а вот он как раз более адекватно расшифровывает. Да и к тому же когда действительно занялся такой творческой работой, лучше даже распаковать весь клиент и уже поиском пройтись по клиенту(некоторые диалоги просто дублируются и могут читаться с других регионов). Вплоть до последней версии 6+ экстракт не разу не подвел с html.
Код: @Override protected void handleDialogStart(Player player) { super.handleDialogStart(player); RequestResponseHandler responseHandler = new RequestResponseHandler(player) { public void acceptRequest(Creature requester, Player responder) { if(!tryToReward(player)) { PacketSendUtility.sendMessage(player, "Nothing to exchange."); } } public void denyRequest(Creature requester, Player responder) { return; } }; boolean requested = player.getResponseRequester().putRequest(902247, responseHandler); if (requested) { PacketSendUtility.sendPacket(player, new SM_QUESTION_WINDOW(902247, 0, 0, "Хотите обменять предметы?")); return; } } private boolean tryToReward(Player player) { if(getOwner().getNpcId() == 205968 || getOwner().getNpcId() == 205968) { if(player.getInventory().getItemCountByItemId(188100061) >= 20) // предмет который должен быть у игрока в нужном кол-ве if(player.getInventory().decreaseByItemId(188100061, 20)) { //списывание предмета у игрока ItemService.addItem(player, 188051147, 1); //выдача взамен на списанные итемы. return true; } } } Вот простейший обменник у нпс предметов.