Тактики
Прохождения локаций
Мониторинг серверов и редактор аддонов
Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.
Подсказки из игры на вашем сайте
Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.
-
Постов
439 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Трекер ошибок
Магазин
Галерея
Весь контент hal.dll
-
На корабле или на астральных островах?
-
Хорошие отладочные сообщения и пользователю будут приятны Но в целом понимаю твою позицию. Препроцессор - понятие достаточно абстрактное, чтобы не зацикливаться на lua модуле интегрированном в систему/компилятор/прочее. Подойдет любая внешняя программа, если ее можно вклинить между IDE и LuaJIT. Кстати, LuaJIT сам по себе содержит какие-то внешние модули (bc.lua, bcsave.lua...). Может там есть что-то похожее на препроцессинг?
-
Буду выглядеть глупо в контексте моего же комментария, что не надо гоняться за мифической оптимизацией в 10 наносекунд, но скажу, что вызов пустой функции с кучей инфы для печати отнимает несколько больше времени, чем проверка глобальной переменной и переход в другой кусок кода. Что в принципе очевидно. Вот, когда-то тестировал: Global("Config", {}) ... -- Test LogDebug local TestDebug1 = function(x, y, z) if Config.DebugVerbose then LogInfo(x, y, z) end end local TestDebug2 = Config.DebugVerbose and function(x, y, z) LogInfo(x, y, z) end or function(x, y, z) end local time1 = common.GetMsFromDateTime(common.GetLocalDateTime()) while a < 1000000 do a = a + 1; -- case 1: --if Config.DebugVerbose then LogInfo(1, 2, 3) end -- 53 ms -- case 2: --TestDebug1(1, 2, 3) -- 154 ms -- case 3: --TestDebug2(1, 2, 3) -- 95 ms b = b + 1; end local time2 = common.GetMsFromDateTime(common.GetLocalDateTime()) ...
-
В общем случае - да. У меня токен как правило - вызов функции печати отладочной информации. Так что выглядит совершенно безобидно. Кстати, для любителей батников, в винде есть консольная прога findstr, работает по принципу линуксовского grep (если это кому-то о чем-то говорит...). http://habrahabr.ru/post/71568/ http://admin-gu.ru/windows/windows-grep Собственно, вызов findstr /V DEBUG_TOKEN MyScript.lua на выходе выдает почищенный от ненужных строк код. Это можно прописать в IDE в команде компиляции в пайп перед передачей в luajit, либо в команде препроцессора, если таковая имеется.
-
Тут тебя препроцессор вряд ли бы спас. ___ В некоторых аддонах спецом оставляю отладочный код, чтобы при случае пользователи могли отладочную инфу предоставить. (по умолчанию спам отключен, разумеется). При этом все строки касающиеся дебага имеют определенный токен (ключ), который в обычном коде не используется. Делаю так для того, чтобы можно было удалить все строки, содержащие этот токен. По идее в Notepad++ должна быть где-то зарыта эта вполне себе стандартная функция. Или может плагин есть какой. Лично я часто именно так и делаю. Можно поинтересоваться, о каких циклах идет речь? Какая сложность (O(n))? Какого порядка само n? Если это в обработчике дамага, или бафов, или других часто приходящих сообщений, то, конечно, if DEBUG then нельзя использовать. Если же это что-то вроде 2-3 отладочных сообщения при клике на кнопку раз в полгода, то проверка условия перед их печатью - вообще ничто по сравнению с остальными действиями. В общем всё познается в сравнении, и сильно заморачиваться над тем, что особо оптимизации и не требует - вообще дурной тон. Когда алгоритм вместо 1 секунды начал выполняться 0.1 секунду - это оптимизация. Когда алгоритм вместо 1 секунды начал выполняться 0.9998 секунд - это маразм и впустую потраченное на правку скрипта время.
-
Прикольно Попробуй прикрепленный, если не сложно. У меня сейчас нету возможности попробовать. Если норм, то залью в хранилище. Обновил аддон в хранилище, но потестить его так и не получилось
-
Аддон более не актуален, баф теперь снимается после выполнения сюжетной линии. Спасибо всем, кто пользовался этим аддоном. Надеюсь, вы получили огромное удовольствие от его использования
-
Аддон более не актуален в связи с переделанным рейдовым интерфейсом. Спасибо всем, кто пользовался этим аддоном. Надеюсь, вы получили огромное удовольствие от его использования
-
В данном случае аддон не словил коронку, похоже, потому что сообщение EVENT_UNITS_CHANGED (с которым коронка и прилетела) опередило EVENT_AVATAR_CLIENT_ZONE_CHANGED. На диких землях детект корон отключен (не совсем, но это уже детали), и аддон, грубо говоря, еще не успел сменить текущую карту, чтобы этот детект включить. Спасибо за репорт. Весьма интересные баги.
-
так, стоп, вот об этом поподробнее не с Диких земель ли вернулись случаем, через дыру в стенке?
-
а полный текст ошибки не сохранился случаем? или скриншот? В 2.2 эта ошибка спамит при снятии скриншота, был такой баг.
-
Осталось понять, почему аддон не показал коронку. Не менее странный баг
-
Всё, понял в чем дело. Дважды нажимаешь на "Отменить измененное", получаешь спам. Или один раз, но не меняя "Аддон включен". А ну-ка признавайся! )) Поправлю к релизу.
-
Вообще вот эта строчка смущает: она говорит, что ApplyAllSettings была вызвана из обработчика на реакцию. А это: Может случайно всё-таки выбрал пункт настроек "Аддон включен"? Хотел отключить кристалы, отключил аддон? Иначе не получается. Вообще никак Разве что порча памяти, но тут уже memtest86+ в помощь) Больше никаких сообщений не было? Я имею в виду "Game::LuaCommonRegisterEventHandler: Fail register LuaEvent handler" в одном экземпляре было или несколько?
-
ок, вроде убедил посмотрю, что там происходит...
-
А как же: Или это было задолго до этого момента? mods.txt до этого давно проверяли? Может ли быть такое, что эти сообщения еще из предыдущей версии?
-
Странно. Такое он мог выдать только если щелкали на "Аддон включен" или на "Отменить измененное". Было такое? Если у моба-короны был уровень на 5 (и более) ниже, чем у аватара, то это нормально. Да, это уже поправил, скоро выйдет в релиз.
-
Еще был QuestTracker, тоже альтернативный журнал заданий. Но сейчас в виду ситуации с автоперемещением, лучше встроенный журнал заданий не заменять, а дополнять... что, собственно, и требуется. Если, собственно, никто не хочет браться за создание такого аддона, возможно, через пару недель я за такой возьмусь.
-
очень интересная идея, но, как уже сказали, весьма трудозатратная. помню, как я только начинал играть и первым делом побежал в ХАЭС Отследить не сложно по соответствующим событиям. Как понять, какие квесты игрок уже выполнил на момент установки аддона - вопрос посерьезней.
-
Вряд ли такая версия аддона вообще существовала. C ui9: AddonsTools Проект начат: 2011-03-28 11:23:04 что примерно соответствует хотфиксу 2.0.04.21
-
Можно конкретный пример, для чего такое нужно?
-
function InitAvatar() if not avatar.IsExist() then return false end playerId = avatar.GetId(); if not playerId then return false; end
-
Неужели уже так скоро...