Страница 1 из 1

TalkNPC

Добавлено: Чт фев 26, 2009 2:50 am
bot4
Столкнулся с проблемой:при общении с нпц бот автоматически закрывает окна Close.Как я понял,это автоматическая функция,которая работает при autoTalkCont 0 и при выключенном АИ.Порыв в TalkNPC.pm и покоментив куски кода эмпирическим путём результата не достиг.Мне нужно пропихнуть команду до того,как чат закроется,но ввиду этой автоматизации команда выполняется только после закрытия чата.Надеюсь на вашу помощь )

Re: TalkNPC

Добавлено: Чт фев 26, 2009 3:46 am
EternalHarvest
А не считает ли сервер диалог уже закрытым, отправив "close"? Или, это может зависеть от типа нпц...

Network::Receive::npc_talk_close

Код: Выделить всё

	# I noticed that the RO client doesn't send a 'talk cancel' packet
	# when it receives a 'npc_talk_closed' packet from the server'.
	# But on pRO Thor (with Kapra password) this is required in order to
	# open the storage.
	#
	# UPDATE: not sending 'talk cancel' breaks autostorage on iRO.
	# This needs more investigation.
	if (!$talk{canceled}) {
		$messageSender->sendTalkCancel($ID);
	}

Re: TalkNPC

Добавлено: Пт фев 27, 2009 4:39 am
bot4
решил проблему грубым способом - удалил sub npc_talk_close. Помогло,но с другими НПЦ теперь проблемы:либо виснет и не выходит из разговора,либо выходит из разговора через ошибку NPC did not respond через секунд этак 5,что неочень приемлимо. Можете подсказать более деликатный вариант?

Re: TalkNPC

Добавлено: Пт фев 27, 2009 5:46 am
EternalHarvest
bot4 писал(а):решил проблему грубым способом - удалил sub npc_talk_close. Помогло,но с другими НПЦ теперь проблемы:либо виснет и не выходит из разговора,либо выходит из разговора через ошибку NPC did not respond через секунд этак 5,что неочень приемлимо. Можете подсказать более деликатный вариант?
Например, сделать хук "packet_pre/npc_talk_close", в нём послать что надо (организовав флаги/проверку, что обрабатывается нужный NPC).

Re: TalkNPC

Добавлено: Пт фев 27, 2009 4:49 pm
bot4
в перле не секу, так что буду благодарен если подскажите какой код и куда впихнуть.Команду,которую хочу отправлять до закрытия разговора "chat join 0",а нпц звать LevelCheck#50 (ID 110016782).

Re: TalkNPC

Добавлено: Пн мар 02, 2009 12:41 am
bot4
никто не подсобит?=\