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

Дайджест за январь-март

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

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

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

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

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

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

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

Подробнее

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

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

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

Можно ли создать такой аддон?


Гость skillcoder

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

Навскидку предположу что надо как-то так..

Code:
function Chooseneed( params )

    local choice = CHOICE_GREED_NEED_NEED

    loot.SelectGreedNeedForLoot( params.rollId, choice )

end

ну или так..

Code:
function Chooseneed( params )

    loot.SelectGreedNeedForLoot( params.rollId, CHOICE_GREED_NEED_NEED )

end

rollId возвращается в таблице params...(должно) :)

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

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

к сожалению, невыходит :(

Суть идеи создать мод который бы автоматически нидал знаки рвения ну или хотябы просто все белые вещи. Никто не возьмется?

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

Нужно глянуть ошибку в mods.txt .. или мы где-то еще ошиблись, или функция тоже урезана в соображения борьбы с ботами :) попробуй сам писать - поможем в случае проблемы.. как говорится можно дать голодному человеку рыбы, а можно научить ее ловить ;)

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

плз подскажите функцию и событие чтобы узнавать сколько стрессов висит на мне - мистике в данный момент

если кто-нить напишет сам аддон, буду признателен.

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

Это :)) можно сказать по моей части.. Помогу немного.

Как таковых событий при добавлении\изменении стрессов нет, но на персонажа вешается бафф, а с бафами мы работать горазды :)

Некрасивый алгоритмически код, но надеюсь понятный:

Code:

-- "EVENT_UNIT_BUFF_ADDED" добавился буф(баф) на кого-то

function OnEventUnitBuffAdded(par)

if par.unitId then  -- А получили ли мы id бафнутого? Можно проверку не делать, но иногда будет флудить в mods.txt об ошибке..

local Buff = unit.GetBuff( par.unitId, par.index ) -- Получаем баф

if avatar.GetId() == par.unitId then

                    if userMods.FromWString( Buff.name ) == "Стресс" then -- убеждаемся что пояился именно стресс

                         local stak = Buff.stackCount    -- количество стаков

                        

                          -- тут вставляй код вывода переменной на экран

                          -- + нужно сделать панель видимой

                      end

                end

        end                             

end

--EVENT_UNIT_BUFFS_CHANGED

function OnEventBuffChange( params ) -- бафы изменились

 if params.unitId == avatar.GetId() then -- изменились на вашем герое

  local BuffsC = unit.GetBuffCount(params.unitId) -- сколько бафов?

  local stak = 0

  if BuffsC > 0 then -- если есть бафы

   for i = 0, BuffsC-1 do -- передираем их

    local Buff = unit.GetBuff(params.unitId, i ) -- получить баф

   if userMods.FromWString( Buff.name ) == "Стресс"  then

                        stak = Buff.stackCount    -- количество стаков

                        

                        -- тут вставляй код вывода переменной на экран

                       -- + нужно сделать панель видимой

   end

end

   end

  end

  if stak == 0 then -- стрессов нет

      -- прячем окно

  end

 end

end

-- инициализация )

(к сожалению EVENT_UNIT_BUFFS_ELEMENT_CHANGED порезан, и приходится при изменении бафов все перебирать)

Еще посмотри CategoryBuff в корневике хелпа - там подробнее о всех этих функциях\событиях..

Quote:
CategoryBuff

События и функции Lua API, относящиеся к буфам.

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

Как маг с большим количеством АОЕ-спеллов хотелось бы увидеть аддон, который выводил бы цифры с уроном над головой всех персонажей/мобов попавших под действие аое.

Например - я кидаю ОШ - и над всеми противниками в радиусе действия загорается циферка нанесенного урона, где красный шрифт - крит, синий - обычный, белый - неудачный. Цвета могут быть любыми. =)

И еще. Хотелось бы чтобы когда я, например, кастую вьюгу, то кружочек с радиусом действия оставался на земле до конца действия спелла, кружочек от ОШ оставался на земле до его разрыва. То же самое с огнестенкой - у нее по бокам есть "мертвые зоны" - то есть по факту стенка горит прямо на противнике, но не поджигает его - хотелось бы видеть реальную площадь действия.

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

Прежде всего, спасибо огромное за помощь.

Я стал писать аддон и столкнулся с проблемой:

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

Отсюда вопрос: как научить аддон видеть изменение стаков?

P.S. Или такой вариант:

EVENT_UNIT_BUFFS_CHANGED ---> ОДИН ИЗ БАФФОВ СТРЕСС ---> каждые 2-3 секунды проверять есть ли он и выводить кол-во стаков, пока стресс не пропадет

как бы это сделать ?

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

mehael говорит что этот эвент порезан. Если нет то не могли бы вы написать само применение эвента (структуру я примерно представляю, но в мелочах мне разбираться придется недели две :( )

спасибо.

P.S. Помогите плз дописать 3 строчки, хочу потестировать такой вариант:

Code:

function OnEventBuffChange( params ) -- бафы изменились

if params.unitId == avatar.GetId() then -- изменились на вашем герое

local BuffsC = unit.GetBuffCount(params.unitId) -- сколько бафов?

local stak = 0

if BuffsC > 0 then -- если есть бафы

for i = 0, BuffsC-1 do -- передираем их

local Buff = unit.GetBuff(params.unitId, i ) -- получить баф

if userMods.FromWString( Buff.name ) == "Стресс"  then

------ вот тут бы вставить цикл Until stak == 0

stak = Buff.stackCount    -- количество стаков

                wtMessage:SetVal( "stress", common.FormatInt( stak, "%dK5" ) )-- тут вставляй код вывода переменной на экран

wtMessage:Show( true ) -- + нужно сделать панель видимой

------- ждать секунду

------- конец цикла

end

end

end

if stak == 0 then -- стрессов нет

wtMessage:Show( false ) -- прячем окно

end

end

end

Не хватает кода после "------".

Понимаю просьба бредовая - но жалко часа 2 пока разберусь как в lua без ошибок оформить Until и паузу

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

Ну раз mehael говорит, что урезан...

Я лишь читал описаение, не пользовался. Урезанности не заметил

Паузы в стандартном ЛУА, насколько знаю, нет. Юзай событие таймера

Quote:
Понимаю просьба бредовая - но жалко часа 2 пока разберусь как в lua без ошибок оформить Until и паузу

Может потом пригодится, если разберешься

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

разобрался, цикл в указанном мною месте "вешает" игру намертво, нужна пауза хотя бы на секунду.

отсюда вопрос:

как из одного эвента вызвать другой ?? т.е. как в сработанном эвенте EVENT_UNIT_BUFFS_CHANGED использовать таймер?

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

Возможен ли аддон, показывающий таймер прыжка в астрале?

Время прыжка(насколько мне известно) = 20с + <количество сундуков>*1с.

Должен показывать отсчет любому игроку, у которого установлен аддон и который находится на корабле.

Визаульно аддон представляет собой небольшую панельку с таймером, где(как и в ControlCountdown) разными цветами показывается отсчет времени прыжка. Возможна также нотификация во весь экран(как в SimpleCritAnnounce).

Полезность для управляющего навигатором исключительна.

ЮзКейс1: Я командую прыжок. По запуску аддона я буду знать, начался ли прыжок и когда именно.

ЮзКейс2: Начинается незапланированный прыжок(о чем сообщает аддон). Я могу предпринять срочные действия по переключению регионов и стазису, чтобы попасть прыжком в нужное место.

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

EVENT_UNIT_BUFFS_ELEMENT_CHANGED работает, просто после какого-то патча в него перестали приходить параметры :(

Quote:
как из одного эвента вызвать другой ??

просто:

Code:
onYourEventName()

--

Quote:
использовать таймер?

юзай поиск в нашем луа и будет тебе счастье)

точно не помню событие.. что-то вроде "SECOND_TIMER"(раз в секунду срабатывает)

по событию считывай количество стеков стресса на себе..

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

блин, кроме первого поста, ну ничего информативного :(((

я в курсе где и как найти таймер, я его нашел, все работает, циклы тоже работают, не поверите, даже EVENT_UNIT_BUFFS_ELEMENT_CHANGED я сам нашел !

но вот самое важное что блин спросил - "onYourEventName()" просто убило.

Что сие значит? onYourEventName() в поисковике не дает ничего, если YourEventName - это имя моего эвента, то так и скажите. А если у меня эвент OnHelloWorld, мне его вызвать так чтоли: onOnHelloWorld() ? бред какой-то. Просто написал имя эвента в теле другого - фиг, не пашет

гугл по запросу "LUA вызов одного события из тела другого" выдает чушь.

разрабы аддонов - редиски :)

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

Quote:
Как маг с большим количеством АОЕ-спеллов хотелось бы увидеть аддон, который выводил бы цифры с уроном над головой всех персонажей/мобов попавших под действие аое.
Например - я кидаю ОШ - и над всеми противниками в радиусе действия загорается циферка нанесенного урона, где красный шрифт - крит, синий - обычный, белый - неудачный. Цвета могут быть любыми. =)

Я вас понимаю)) Есть надежда, что в ближайшем будущем такой функционал будет вот у этого аддона:
http://allods-forum.gpotato.com/viewtopic.php?f=55&t=27996
Quote:
И еще. Хотелось бы чтобы когда я, например, кастую вьюгу, то кружочек с радиусом действия оставался на земле до конца действия спелла, кружочек от ОШ оставался на земле до его разрыва. То же самое с огнестенкой - у нее по бокам есть "мертвые зоны" - то есть по факту стенка горит прямо на противнике, но не поджигает его - хотелось бы видеть реальную площадь действия.

Я несколько дней прыгал с бубном, пытаясь что-то картинкообразное разместить в пространстве.. у меня получилось только привязывать виджеты в 3д к обьектам :(
то есть наверняка аддон не реализуем .. но не факт :)
Ссылка на комментарий
Поделиться на другие сайты

Quote:
но вот самое важное что блин спросил - "onYourEventName()" просто убило.

:))
ахаха йа страшное редиско)) ну прости.. почет тебе и уважение в попытках освоить луа и что-то писать.. честно. иногда я сам себя не понимаю >_>
Да, тебе нужно написать имя одного ивента в другом.. передав при этом в него входные параметры в таблице.. на пример так:
Code:
--...
OnEventBuffChange( {unitId = avatar.GetId()} )
--...

А вообще имхо надо просто сделать как-то так
Code:
--EVENT_SECOND_TIMER
function OnEventTimer( params ) -- секунда прошла
  local MeId = avatar.GetId() 
  local BuffsC = unit.GetBuffCount( MeId) -- сколько бафов?
  local stak = 0
  if BuffsC > 0 then -- если есть бафы
   for i = 0, BuffsC-1 do -- пербираем их
    local Buff = unit.GetBuff( MeId, i ) -- получить баф
   if userMods.FromWString( Buff.name ) == "Стресс"  then
                        stak = Buff.stackCount    -- количество стаков
                        
                        -- тут вставляй код вывода переменной на экран
                       -- + нужно сделать панель видимой
   end
   end
  end
  if stak == 0 then -- стрессов нет
      -- прячем окно
  end
end

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

Спасибо большое :) сорри что с претензиями

я пытался все вставить в таймер, но ничего так и не заработало, отчаялся подбирать варианты

Теперь все работает, пойду заниматься оформлением.

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

А еще можно оптимизировать код: по событию BuffChange запоминать в глобальную переменную id буфа со стрессами и потом по Timer'у просто, не перебирая все буфы, получать стеки..

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

Можно ли получить время оставшееся до окончания кулдауна какой-нибудь абилки ?

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

нашел - avatar.GetSpellInfo( id )

можно ли от него плясать?

что-то в описании нет данных о том кастовали ли абилку уже и запущен ли кулдаун :(

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

Имхо копай в строну EVENT_ACTION_PANEL_ELEMENT_EFFECT... предварительно перебрав абилки на панели и найдя свою >_< (avatar.GetMaxActionCount()+ avatar.GetActionInfo( index ))

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

mehael:

Quote:
А еще можно оптимизировать код: по событию BuffChange запоминать в глобальную переменную id буфа со стрессами и потом по Timer'у просто, не перебирая все буфы, получать стеки..

Quote:
Имхо копай в строну EVENT_ACTION_PANEL_ELEMENT_EFFECT... предварительно перебрав абилки на панели и найдя свою >_< (avatar.GetMaxActionCount()+ avatar.GetActionInfo( index ))

Огромное спасибо за помощь. Все сделал - и оптимизацию через ID и кулдаун теперь могу затребовать. Все работает как надо - но пока что флудит в mods.txt, разбираюсь сейчас.

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

Насколько знаю стандартными средствами нельзя таакой аддон сделать.. но возможно если перекопать старое апи что-нибудь да найдется(маловероятно...)

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

В любом случае спасибо за внимание. =) Будуд мониторить буржуйские форумы нам в помощь. =)

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

1) Возможно ли как-то вмешаться в вывод системных тултипов? Ну т.е. например при наведении на монстра писать в его тултипе в уголке не только стандартную инфу, но и например какие-то свои статистические данные?

2) Можно ли каким-либо образом отображать что-то на карте (обычной/астральной)?

3) Возможно ли отображать своё положение на карте инста (не в центре) и замещение отсутствующей карты своей текстурой?

4) Можно ли вмешаться в тултип предметов?

Если данная вещь возможна, то как её реализовать? ткните пожалуйста на конкретные примеры.

Что касается конкретных аддонов,

1) Хотелось бы воскресить lootinfo

2) Хотелось бы выводить в тултип вещи дкп-цену вещи (из собственной базы например, дописанной в user.cfg)

3) Хотелось бы на основе 1) и собственной базы выводить место и шанс дропа для вещи случайной (на персе, с аука и т.п.)

4) Хотелось бы свои пометки на карте/миникарте

пока хватит мыслей

Есть человек-два, которые могли бы в этом поколупаться, если ткнуть где конкретно копать. Если в принципе не реализуемо, то ок, бум ждать погоды и капать на мозг разрабам.

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

Присоединяйтесь к обсуждению

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

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

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

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

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

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

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

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

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

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