Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Вопрос о чате


Oberon

Рекомендуемые сообщения

День добрый.

 

Только пробую делать аддоны. У меня вопрос по чату. С выводом в чат вроде бы все понятно (есть LogToChat()),

а вот если нужно наоборот, выловить событие: например, как выловить надпись "[Личные]: Вы получаете добычу: ХХХХ золотом"?

Нужно что бы когда выплывает это сообщение в чате, совершалось какое то действие.

 

Не могу с этим разобраться,

Изменено пользователем Oberon
Ссылка на комментарий
Поделиться на другие сайты

Спасибо,)

С помощью EVENT_CHAT_MESSAGE у меня выходит выловить только обычные сообщения, которые пишут в мир, например.

Но мне надо конкретно "[Личные:]" поймать. Пробовал через поля msg и sender, именно этого типа сообщения не получается словить,

Ссылка на комментарий
Поделиться на другие сайты

Спасибо,)

С помощью EVENT_CHAT_MESSAGE у меня выходит выловить только обычные сообщения, которые пишут в мир, например.

Но мне надо конкретно "[Личные:]" поймать. Пробовал через поля msg и sender, именно этого типа сообщения не получается словить,

Деньги приходят сюда http://alloder.pro/md/LuaApi/EventAvatarMoneyTaken.html

post-1253-0-32954000-1442747962_thumb.pn

Ссылка на комментарий
Поделиться на другие сайты

да пробовал CHAT_TYPE_, дело в том, что EVENT_CHAT_MESSAGE попросту срабатывает только на сообщения от игроков.

 

По событию LogInfo( params.chatType ) выдает только такие результаты:

0 - в пм

2 - обычный разговор

4 - в зону

5 - крик

6 - в мир

9 - в ги чат

-2 - моб Ястреб Яскера, почему то отрицательный результат выдал

 

на другие сообщения, уведомления, и т.п. никаких результатов,

Ссылка на комментарий
Поделиться на другие сайты

о. хорошая идея, сейчас попробую,

 

---------------------------

 

В общем, не то. Там выводится ENUM_TakeItemActionType_Loot, т.е., от обычного лута ничем не отличается, выделить не получится.

 

А как поймать событие, когда из сумки пропадает какой-либо предмет? Вот такой, например: "Ключ от сундука"

Изменено пользователем Oberon
Ссылка на комментарий
Поделиться на другие сайты

В общем, не знаю я что придумать.

 

Нужно поймать событие, не могу придумать как. Вот ситуация:

 

Есть сундук, он находится в локации; когда его юзаешь - из инвентаря пропадает ключ ("Ключ от сундука"), получаешь какое то количество монет, в связи с чем приходит сообщение в чат ("[Личные]: Вы получаете добычу: ХХХХ золотом ХХ серебром ХХ медью").

Нужно каким то образом поймать это событие. Что попробовал:

1. Через чат, как сообщение "[Личные]: Вы получаете добычу: ХХХХ золотом" - не выходит, EVENT_CHAT_MESSAGE не срабатывает на это сообщение (как и на любые другие, кроме разговоров персонажей).

2. Через EVENT_AVATAR_MONEY_TAKEN - не подходит, т.к. не выходит "отделить" приход этих денег от любого другого поднятия лута.

3. Через EVENT_AVATAR_MONEY_TAKEN используя avatar.GetItemInfo( itemId ) предмета "Ключ от сундука" - тоже не получается, т.к. логично, что "Ключ от сундука" выпадает из инвентаря раньше, чем сработает avatar.GetItemInfo( itemId ).

 

Идеально было бы событие, когда предмет ("Ключ от сундука") пропадает из инвентаря, но такого события я не нашел в описаниях.

 

Есть еще какие идеи у кого то, может быть?

Изменено пользователем Oberon
Ссылка на комментарий
Поделиться на другие сайты

В общем, не знаю я что придумать.

 

Нужно поймать событие, не могу придумать как. Вот ситуация:

 

Есть сундук, он находится в локации; когда его юзаешь - из инвентаря пропадает ключ ("Ключ от сундука"), получаешь какое то количество монет, в связи с чем приходит сообщение в чат ("[Личные]: Вы получаете добычу: ХХХХ золотом ХХ серебром ХХ медью").

Нужно каким то образом поймать это событие. Что попробовал:

1. Через чат, как сообщение "[Личные]: Вы получаете добычу: ХХХХ золотом" - не выходит, EVENT_CHAT_MESSAGE не срабатывает на это сообщение (как и на любые другие, кроме разговоров персонажей).

2. Через EVENT_AVATAR_MONEY_TAKEN - не подходит, т.к. не выходит "отделить" приход этих денег от любого другого поднятия лута.

3. Через EVENT_AVATAR_MONEY_TAKEN используя avatar.GetItemInfo( itemId ) предмета "Ключ от сундука" - тоже не получается, т.к. логично, что "Ключ от сундука" выпадает из инвентаря раньше, чем сработает avatar.GetItemInfo( itemId ).

 

Идеально было бы событие, когда предмет ("Ключ от сундука") пропадает из инвентаря, но такого события я не нашел в описаниях.

 

Есть еще какие идеи у кого то, может быть?

http://alloder.pro/md/LuaApi/EventContainerItemRemoved.html

Ссылка на комментарий
Поделиться на другие сайты

Спасибо. Еще вопрос. Как правильно сравнивать WString и обычный текст? обычный текст перевожу в WString, сравниваю, но результата нет. Вот как делаю:

local text = params.itemObject:GetText() 
		LogInfo( text ) ---Здесь по факту находится строка "Легендарная коробка создателя реликтов" типа WString
		if text == userMods.ToWString("Легендарная коробка создателя реликтов") then LogInfo( "OK!" ) end
Изменено пользователем Oberon
Ссылка на комментарий
Поделиться на другие сайты

Чтобы сравнить два WString'а, надо воспользоваться функцией common.CompareWString или common.CompareWStringEx. Если нужно просто узнать равенство, то лучше WString перевести в обычную интернализованную lua-строчку (userMods.FromWString) и сравнить её со строковой константой.

Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования