-
Постов
439 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Трекер ошибок
Магазин
Галерея
Сообщения, опубликованные hal.dll
-
-
Если не сложно адаптируйте этот
простенький аддон показывающий мирру
(и только) под 6,0,0....
уже. https://alloder.pro/topic/1703-myrrhmyrrh-ili-ego-analog/#entry34156
-
Да где вы увидели хамство и оскорбления? Срываю злость? Вы вообще о чем?
А
если вы сами не знаете причины,
которые заставляют разработчиков
менять совместимости,
Отчего же не знаю. Знаю отлично: разработчики АО добавляют новый функционал, необходимый для ихних системных аддонов, плюс приводят в порядок существующий. Но искать в этом закономерность не вижу смысла. Зачем это надо? Предугадать дальнейшие изменения? Вероятность не велика на самом деле
Предлагаете закрыть проект, удалить все аддоны и разбежаться?а раз нету никакой
уверенности что аддон завтра не
сломается, то какой смысл вообще ими
заниматься?
А уверенности в том, что вы проживете достойную и счастливую жизнь без различных мелких неприятностей, у вас достаточто? Может нам всем тогда, следуя этой логике, накрыться простыней и ползти на кладбище?
Я просто не могу понять, что вы предлагаете?
-
sephirostoy, Saiiid is asking whether it is possible to save state of main window (shown/hidden) when clicking on button "D", and restore on loading?
Also, can you please add an option to allow damage calculation for the members staying far?
I mean to ignore "Combatant:IsClose()" value here:
function TUMeter:UpdateData(fightId, combatantID, mode, params, spellInfo) local Fight = self.FightsList[fightId] local member = {} member.id = combatantID local Combatant = Fight:GetCombatant(member) if Combatant and Combatant:IsClose() then -- don't record data from combatant too far Combatant.Data[mode].Amount = Combatant.Data[mode].Amount + params.amount
- 1
-
но не ясно зачем было добавлять к ревизии если это просто фикс под версию клиента, а по факту он тот же r12.6
Среди программистов любое изменение исходного кода является обязательным поводом к увеличению номера версии.
По сути версия - уникальный идентификатор состояния исходного кода.
При возникновении бага в определенной версии программист может проверить, исправлен ли он уже или нет, и проверить работу именно этой версии.
-
Вероятно, в этой ошибке кроется причина:
Error: addon ShipControl: Error: addon ShipControl: Error: addon ShipControl: func: SetPlacementPlain, method, line: -1, defined: C, line: -1, [C] Error: addon ShipControl: func: wtSetPlace, global, line: 407, defined: Lua, line: 402, [string "Mods/Addons/AddonsTools/Scripts/ScriptLIB.lua"] Error: addon ShipControl: func: set_HP, field, line: 183, defined: Lua, line: 142, [string "Mods/Addons/ShipControl/Scripts/ShortMap.lua"] Error: addon ShipControl: func: add_Ship, global, line: 576, defined: Lua, line: 507, [string "Mods/Addons/ShipControl/Scripts/ShortMap.lua"] Error: addon ShipControl: func: ?, ?, line: 751, defined: Lua, line: 747, [string "Mods/Addons/ShipControl/Scripts/ShortMap.lua"]
Отсутствие текста ошибки доставляет, да... Привет, разработкам АО...
Глянул, что там:
if heat < 50 then wtSetPlace( wtEngine, { alignX = 1, sizeX = EngineSize * heat / 100} ) elseif heat < 95 then wtSetPlace( wtEngine, { alignX = 1, sizeX = EngineSize * heat / 100} ) else wtSetPlace( wtEngine, { alignX = 0, sizeX = ( heat - 100 )/100 * EngineSize * 2} ) end
Как бы "heat - 100" - это отрицательная величина, и судя по всему АПИ ругается именно на это. А что автор кода хотел этим сказать, боюсь, даже он уже не знает... В старых исходниках с ui9 формула такая же...
-
RepInfo2.1:
Error: addon RepInfo 2: Error while running the chunk Error: addon RepInfo 2: [string "Mods/Addons/RepInfo/scripts/ScriptRepInfo.lua"] attempt to index local 'reputationInfo' (a nil value) Error: addon RepInfo 2: func: __index, metamethod, line: -1, defined: C, line: -1, [C] Error: addon RepInfo 2: func: ?, ?, line: 25, defined: Lua, line: 15, [string "Mods/Addons/RepInfo/scripts/ScriptRepInfo.lua"]
Я как-то даже не понял, что я сделал, чтобы это получить. Загрузился в твинка 7 лвл, и стал покупать мирру у рядом стоящей тётки, а потом возмолился
-
Представь игру, которую обновляют раз в день...покайфу будет в нее играть?
Представь программиста, которому приходится исправлять, тестить и релизить свою программу раз в день из-за изменений среды, в которой работает эта программа... покайфу ему будет такое?
Вообще кто-нибудь находил закономерность что ломается в аддонах\клиенте игры каждом обновлении\фиксе и т.д.?Всё довольно просто: ломается совместимость.
только про смену версии lua не говорите, это банально...Интересно, что еще прикажешь нам говорить или не говорить, о великий гуру программирования и программных интерфейсов?
Все свои претензии по поводу самопроизвольно ломающихся аддонов направляй, пожалуйста, по нужному адресу: разработчикам программного интерфейса игрового клиента Аллоды Онлайн.
Заодно сообщи им, что во всем нормальном IT-шном мире нарушение совместимости (когда какую-либо функцию переименовывают во что-то другое без возможности ее использовать некоторое время под старым именем) считается дурным тоном и признаком безграмотности программиста(ов).
Кстати, а чем не устраивает смена версии lua в качестве причины?
Все изменения фиксируются в документах, если нам не веришь, можешь сам скачать несколько разных версий API клиента с нашего сайта и проверить их на совместимость. Там же можно и про смену версии lua почитать немного. Ну и в конце концов можешь сам попробовать что-либо написать и запустить это под разными версиями lua. А мы посмотрим, что у тебя выйдет...
- 1
-
MyrrhMyrrh
Надо же, кто-то им еще пользуется, кроме меня...
Вот попробуйте эту версию, поправил на коленке, попутно немного оптимизировал, но не проверял еще работает или нет...
-
memberInfo.name - это же WString вроде? FromWS его перед сравнением.
-
вопрос по начислению премий за реанимацию аддонов под 5.0.2 в процессе решения
Надо сказать, это неожиданно
Наш админ за нас горой
PS: Но с 5.0.2 было несколько проще на самом деле по причине наличия исходников самих аддонов айкрейтора, плюс большинство фиксов уже было сделано с обновой 5.0.1. Самая жесть была при переносе на 5.0.1.
-
Кроме этого, и что более важно, вводятся премии за реанимацию аддонов. Размер премии составляет от 500 до 1500 кристаллов, зависит от оценки сложности фикса и важности аддона. В особо тяжелых случаях или при срочности исправления аддона - назначаются награды от 1000 до 5000 кристаллов.
Что-то нынче мало аддонов на реанимацию.
Интересно, это как-то связано с вводом премий или просто совпадение?
Ээх, введи они премии на полгода раньше, когда мне пришлось долго и муторно возиться с исправлением скомпилированных аддонов розочки, у меня был бы уже пятизначный счет в игре
-
-
-
Починен, но ГСа нет.
-
не работает в астрале
На корабле или на астральных островах?
-
В моем понимании "вырезание Debug'а" - это не столько вопрос производительности, сколько вопрос чистки кода от нежелательных вещей. В этом контексте смириться с разницей во временах выполнения пустой функции и проверки переменной вполне себе можно. А если заморачиваться, то тогда уж надо вплотную смотреть на препроцессор.
Хорошие отладочные сообщения и пользователю будут приятны
Но в целом понимаю твою позицию.
Препроцессор - понятие достаточно абстрактное, чтобы не зацикливаться на lua модуле интегрированном в систему/компилятор/прочее. Подойдет любая внешняя программа, если ее можно вклинить между IDE и LuaJIT. Кстати, LuaJIT сам по себе содержит какие-то внешние модули (bc.lua, bcsave.lua...). Может там есть что-то похожее на препроцессинг?
-
Соответственно, если НЕ добавлять, то ничо оверрайдиться не будет. Таким образом можно заранее определить несколько функций как пустые, а потом в debug.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, либо в команде препроцессора, если таковая имеется.
-
С очередной обновой выпилили очередную функцию (о чём, кстати, забыли помянуть в ChangeList), а она была в отладочном куске кода, который я забыл закоментить в своей время, и всё, аддон не работает.
Тут тебя препроцессор вряд ли бы спас.
___
В некоторых аддонах спецом оставляю отладочный код, чтобы при случае пользователи могли отладочную инфу предоставить. (по умолчанию спам отключен, разумеется).
При этом все строки касающиеся дебага имеют определенный токен (ключ), который в обычном коде не используется. Делаю так для того, чтобы можно было удалить все строки, содержащие этот токен.
По идее в Notepad++ должна быть где-то зарыта эта вполне себе стандартная функция. Или может плагин есть какой.
Можно, конечно, завести какой-нибудь local DEBUG и загонять весь отладочный код в if DEBUG then, но это лишние инструкции, в том числе и в циклах и лишний объем памяти под скрипт, не хорошо в общем.Лично я часто именно так и делаю.
Можно поинтересоваться, о каких циклах идет речь? Какая сложность (O(n))? Какого порядка само n?
Если это в обработчике дамага, или бафов, или других часто приходящих сообщений, то, конечно, if DEBUG then нельзя использовать.
Если же это что-то вроде 2-3 отладочных сообщения при клике на кнопку раз в полгода, то проверка условия перед их печатью - вообще ничто по сравнению с остальными действиями.
В общем всё познается в сравнении, и сильно заморачиваться над тем, что особо оптимизации и не требует - вообще дурной тон.
Когда алгоритм вместо 1 секунды начал выполняться 0.1 секунду - это оптимизация.
Когда алгоритм вместо 1 секунды начал выполняться 0.9998 секунд - это маразм и впустую потраченное на правку скрипта время.
-
последняя версия(2.3)
Прикольно
Попробуй прикрепленный, если не сложно. У меня сейчас нету возможности попробовать.Если норм, то залью в хранилище.Обновил аддон в хранилище, но потестить его так и не получилось
-
Аддон более не актуален, баф теперь снимается после выполнения сюжетной линии.
Спасибо всем, кто пользовался этим аддоном.
Надеюсь, вы получили огромное удовольствие от его использования
-
Аддон более не актуален в связи с переделанным рейдовым интерфейсом.
Спасибо всем, кто пользовался этим аддоном.
Надеюсь, вы получили огромное удовольствие от его использования
-
А можно сделать пожертвование со своего счета на сайте? А то как всегда поспешил,закинул деньги на счет,сейчас нет финансов на кошельках
На данный момент нет, но в некотором будущем появится
-
В данном случае аддон не словил коронку, похоже, потому что сообщение EVENT_UNITS_CHANGED (с которым коронка и прилетела) опередило EVENT_AVATAR_CLIENT_ZONE_CHANGED.
На диких землях детект корон отключен (не совсем, но это уже детали), и аддон, грубо говоря, еще не успел сменить текущую карту, чтобы этот детект включить.
Спасибо за репорт. Весьма интересные баги.
ShipControl
в Техподдержка
Опубликовано
Сильно сомневаюсь, что этот код даст значение большее, чем 100: