Altair

Разработчик аддонов
  • Публикации

    198
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    9

О Altair

Профиль

  • Пол
    Неизвестен

Посетители профиля

4 978 просмотров профиля
  1. Казалось бы... Подробно могу в скайпике рассказать, но с ходу без правок аддон не показывал окружающих персонажей.
  2. Обновить билдменеджер?))) Все давно связано.
  3. Чо вы копья ломаете? Кто мешает в UTF-8 сохранить?
  4. В теории можно, но я не уверен, что когда-нибудь до этого доберусь. Есть на самом деле и более простой способ "отключить" EZTarget, чтобы не мешал. На основной панельке есть кнопочка Zzz. Если ее нажать, то аддон "заснет" и перестанет показывать кого бы то ни было. Это явно быстрее, чем лезть в список дополнений и там отключать.
  5. localhost? ) p - это priest, а не paladin.
  6. Ты забыл предупредить, что людям надо поставить PowerShell. Можно было без дополнительных зависимостей написать то же самое на lua, благо компилятор-то есть в клиенте, хоть и запакован в ModdingDocuments.zip.
  7. Если ключ, то просто table[key] ~= nil. Если нужно значение проверить, то нужно таки перебирать все значения. Для скорости можно построить транспонированную табличку (т.е. где значение первой является ключом транспонированной и наоборот) и по ней уже проверять наличие значения в первой.
  8. Что такое "name:WString"? Почему =, а не ==? Если результат выполнения метода WString() - это строка, то почему эта строка сравнивается с questId, а не с именем квеста?
  9. Да, писал на коленке из другой страны, баги неизбежны )) Исправил оригинальное сообщение, теперь корректно обрабатываются блоки, которые начинаются с нулей.
  10. Жреца вообще забыли
  11. Работа со строками в LUA дорогая. Любое создание строки, любой вызов функции из библиотеки string (кроме len, char, byte) - это дорого в вычислительном плане. Если у вас изначально есть число, то лучше с этим числом операции производить именно в виде числа.
  12. Ну так воспользуйся тогда моей функцией)
  13. По-моему, кто-то просто давно не распаковывал ModdingDocuments.zip, который давным давно в виде архива поставляется. И у топик-стартера наверняка лежит просто махровая старая версия доков, в которой еще есть эта функция. В текущем клиенте нет такого.
  14. "Криво" - это как? В чем задача-то, конкретнее? Нужно разбить строковое представление целого числа на группы по 3 разряда? Тогда должно быть что-то типа такого: function FormatInt(int) -- Если у нас число из трех разрядов или меньше, то мы можем сразу вернуть его строковое представление if int < 1000 then return tostring(int) end -- Дополнительная функция, которая добавляет leading zeroes, если в значении блока вдруг меньше трех разрядов, т.е. присутствуют нолики в начале local GetThreeDigitBlock = function(num) return (num < 100 and (num < 10 and "00"..num or "0"..num) or num) end -- Если же оно больше, то мы делим его в цикле на 1000 и остаток от деления записываем в начало таблички blocks local blocks = {} while int >=1 do local modulus = int % 1000 -- Если modulus равен int, то мы дошли до самого начала нашего большого числа и в таком случае не нужно добавлять leading-zeroes -- Если же не равен, значит мы в данный момент добавляем блок из середины строкового представления входного числа, -- который надо корректно отформатировать, добавив нули в начало при необходимости local block = modulus ~= int and GetThreeDigitBlock(modulus) or modulus table.insert(blocks, 1, block) int = math.floor(int / 1000) end -- Возвращаем в конце конкатенированную таблицу blocks с пробелом в качестве разделителя return table.concat(blocks, " ") end Функция на входе принимает число (например, то же avatar.GetMoney() / 10000, т.е. количество золота), а на выходе выдает отформатированную строку (lua-string, которую нужно будет сконвертировать в WString для передачи в AOPanel).
  15. Вот это извращение! Не проще ли money поделить два раза на 100 и остатки сконвертировать в строки? Это же будет в разы оптимальнее!