• SiteAnalyzer, технический и SEO-анализ сайтов

Магия с квестами

  • Автор темы Автор темы novich
  • Дата начала Дата начала
это понятно) простейший обменник без диалога подойдет. подскажите какие-нибудь материалы или просто примеры уже введеных в игру нпсов, поищу в сборках?
Все квесты, что у тебя в сборке - это просто парс айдишников нпс и диалогов с клиента, о кастомных там и речи не идет
 
Все квесты, что у тебя в сборке - это просто парс айдишников нпс и диалогов с клиента, о кастомных там и речи не идет
я это понял. я имею ввиду, как теперь сделать аи нпсу, чтобы при лкм он забирал одну вещь и выдавал награду (опыт, предмет) - думаю такое уже давно придумано?
 
я это понял. я имею ввиду, как теперь сделать аи нпсу, чтобы при лкм он забирал одну вещь и выдавал награду (опыт, предмет) - думаю такое уже давно придумано?
Просто создай новый аи скрипт для нпса, тебе нужен метод handleDialogStart
 
клиенты брал разные, где-то больше pak файлов, где-то меньше, но разобраться куда пихать новый квест не смог. и с html файлами не справился, как их читать и редактировать
AionExtract полностью распаковывает и расшифровывает все файлы. Если что то не распаковало нормально, значит клиент был уже модифицирован кем то.
http://javaclub.ru/forum/index.php?threads/619/
 
Каким-то чудом получилось, взял рандомный аи похожий на нужный, пару минут правки и даже не ожидал что с 1 раза запустится. Всем спасибо.
 
пытаюсь, а подробнее можно, примеры таких аи из сборок или может где-то есть информация по таким вещам?
Вообще не видел инфы по айон эмулятором в открытом доступе кроме гайдов по запуску, все приходится самому изучать)
AionExtract полностью распаковывает и расшифровывает все файлы. Если что то не распаковало нормально, значит клиент был уже модифицирован кем то.
http://javaclub.ru/forum/index.php?threads/619/
AIONencdec + AIONdisasm в разы удобнее, нет необходимости расшифровывать весь pak) Просто вытащил что тебе надо, запихнул обратно и всё
 
Вообще не видел инфы по айон эмулятором в открытом доступе кроме гайдов по запуску, все приходится самому изучать)

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;
				}
		}
  }

Вот простейший обменник у нпс предметов.
 
Код:
	@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;
				}
		}
  }

Вот простейший обменник у нпс предметов.
спасибо!
 
Назад
Сверху