Oberon
-
Постов
12 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Трекер ошибок
Магазин
Галерея
Сообщения, опубликованные Oberon
-
-
userMods.FromWString()?
WString - это частный случай userdata так-то.
Это первое, что я попробовал. выдает ошибку:
Game::LuaUserModsFromWString: param 1 not a class nstl::basic_string<wchar_t> (type: ValuedText), details: int __cdecl Game::LuaUserModsFromWString(struct lua_State *)
-
Версия игры 4.0.2. Пробую вот такое:
local id = object.GetBuffs( avatar.GetId() )[ 0 ] if id then local buffInfo = object.GetBuffInfo( id ) if buffInfo then LogInfo( buffInfo.name ) LogInfo( buffInfo.description ) end end
Судя по документации, у функции GetBuffInfo( Id ) возвращаемые значения name и description имеют формат WString:
name: WString - имя буфаdescription: WString - описание буфано по факту, у меня в LogInfo( ) поле name (как и прочие другие поля этой функции) выводятся нормально, а вот поле description выдает userdata: ...Что такое userdata и как она работает я в общем то понимаю. Но я не понимаю, почему именно description вместо готовых данных в формате WString выдает таки только ссылку на данные, а не конкретно их?Как мне в этом случае получить эти данные: описание бафа, в "читабельном" виде? Где я ошибся?Спасибо, -
Дабы не создавать тему новую, задам новый вопрос в этой же.
Никак не могу найти функцию, которая возвращает имя моба по unitId. Нашел CategoryUnitInfo, в которой можно получить всё что угодно, кроме имени юнита: раса, пол, титул, дружественный юнит, или нет, и т.п.. А имени нет.
Подскажите пожалуйста.
Спасибо,
п.с.: разобрался. object.GetName( unitId )
-
spellLib.GetState( SpellId ).isActive
avatar.RunSpell( spellId ) по клику
Спасибо, разобрался. В чем была загвоздка - я использую версию 4.0.02, в которой ещё отсутствует spellLib, но решил проблему с помощью avatar.GetSpellInfo( id ).
-
Вечер добрый, нужна помощь.
Нужно получить информацию, активно ли умение, или нет. Например, помощник "сорока" или "фея".
Так же, если возможно, есть ли возможность их включать/выключать из аддона?
В CategorySkill ничего полезного по этому поводу не нашел.
Спасибо,
-
Спасибо. Еще вопрос. Как правильно сравнивать WString и обычный текст? обычный текст перевожу в WString, сравниваю, но результата нет. Вот как делаю:
local text = params.itemObject:GetText() LogInfo( text ) ---Здесь по факту находится строка "Легендарная коробка создателя реликтов" типа WString if text == userMods.ToWString("Легендарная коробка создателя реликтов") then LogInfo( "OK!" ) end
-
В общем, не знаю я что придумать.
Нужно поймать событие, не могу придумать как. Вот ситуация:
Есть сундук, он находится в локации; когда его юзаешь - из инвентаря пропадает ключ ("Ключ от сундука"), получаешь какое то количество монет, в связи с чем приходит сообщение в чат ("[Личные]: Вы получаете добычу: ХХХХ золотом ХХ серебром ХХ медью").
Нужно каким то образом поймать это событие. Что попробовал:
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/EventAvatarMoneyTaken.html
о. хорошая идея, сейчас попробую,
---------------------------
В общем, не то. Там выводится ENUM_TakeItemActionType_Loot, т.е., от обычного лута ничем не отличается, выделить не получится.
А как поймать событие, когда из сумки пропадает какой-либо предмет? Вот такой, например: "Ключ от сундука"
-
да пробовал CHAT_TYPE_, дело в том, что EVENT_CHAT_MESSAGE попросту срабатывает только на сообщения от игроков.
По событию LogInfo( params.chatType ) выдает только такие результаты:
0 - в пм
2 - обычный разговор
4 - в зону
5 - крик
6 - в мир
9 - в ги чат
-2 - моб Ястреб Яскера, почему то отрицательный результат выдал
на другие сообщения, уведомления, и т.п. никаких результатов,
-
Спасибо,)
С помощью EVENT_CHAT_MESSAGE у меня выходит выловить только обычные сообщения, которые пишут в мир, например.
Но мне надо конкретно "[Личные:]" поймать. Пробовал через поля msg и sender, именно этого типа сообщения не получается словить,
-
День добрый.
Только пробую делать аддоны. У меня вопрос по чату. С выводом в чат вроде бы все понятно (есть LogToChat()),
а вот если нужно наоборот, выловить событие: например, как выловить надпись "[Личные]: Вы получаете добычу: ХХХХ золотом"?
Нужно что бы когда выплывает это сообщение в чате, совершалось какое то действие.
Не могу с этим разобраться,
Вопрос по userdata
в Вопросы и ответы
Опубликовано · Изменено пользователем Oberon
все, разобрался. common.ExtractWStringFromValuedText(). спасибо большое,