Классы
Статы, идеальное соотношение · Умения и вехи, как получить · Души · Сравнение классов
Воин · Жрец · Некр · Лучник · Шаман · Мист · Бард · Инж · Демон
Игровой процесс
Как одеваться · Драконий облик · Наследие Богов · Фарм золота
Прохождения локаций
Мониторинг серверов и редактор аддонов
Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.
Подсказки из игры на вашем сайте
Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.
SLA
Пользователь-
Постов
1 641 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Магазин
Галерея
Весь контент SLA
-
Какой-то фреймворк на Перле.
-
С оф.форума: Quote: еще заметил некий..мм.. баг. если ты в группе и тебя выкидывает из игры, то когда снова заходишь, дпсметр не учитывает дпс группы. в списке они есть, но у них у всех "по нулям" только свой дпс считает.
-
ОЛОЛО! )))))))))))))))))))))))))))))))) Quote: "Он забыл добавить, что это его ИМХО" (С) Он бы ещё сказал, что наручные часы носить плохо, потому, что они отвлекают, и мешают наслаждаться природой и свежим воздухом во время прогулок. Видимо, большинство играющих в АО с ним не согласны, раз так требуют этот аддон
-
Quote: увеличь разрешение экрана. Это не поможет, весь интерфейс масштабируется пропорционально резолюции экрана. Подробнее в теме Размер виджетов - абсолютен или нет А переделать кое-что можно. Но из аддонов не все функции интерфейса будут работать. Например, панели заклинаний трогать нельзя, API не позволяет.
-
Quote: Такое ошушения что шрифт не меняет размер.... Меняет. Я сделал скриншоты и сверил - размер шрифтов разный, как и должно быть. Проблема была в другом. В общем, строки в аддоне DarkDPSMeter обрезаются в местах пробелов, и окончание строки заменено на многоточие (...), заметил? Это потому, что движок рендеринга шрифтов АО решил, что текст не влезает в контейнер... Здесь грабли были в том, что высота шрифта и его размер -- это, мягко говоря, совершенно разные вещи В типографии есть несколько способов измерения высоты шрифта. Так, например, шрифт размером 12 pt занимает 16 пикселей в высоту. А 11 pt = 15 пикселей, а 10 pt = 13 пикселей. Как вычислять минимальную высоту WidgetTextView: Берём из TXT-файла указанный "fontsize", он измеряется в pt. Переводим его в px, и записываем в (WidgetTextView).xdb файле, в <Placement> \ <Y> \ <Size>. Вот таблица конвертирования pt в px (Points в Pixels): http://reeddesign.co.uk/test/points-pixels.html Конкретно в аддоне DarkDPSMeter: Поскольку в DamageStats.txt указано fontsize="11", то нужно в DamageStats.(WidgetTextView).xdb выставить высоту контейнера как минимум 15 (у тебя там было 12 -- в этом и была вся проблема). В принципе, пофиг, что высота материнской панели прогрессбара чуть меньше (14 пикселей), текст просто обрежется снизу на один виртуальный пиксель, если не влезет). В резолюциях 1024x768 и 800x600 всё хорошо, я проверил. Ну а в оконном режиме не проверял, там окно можно сделать произвольного размера, например, очень маленькое. Советую тоже попробовать. Если будет обрезаться слишком сильно, то это можно исправить, увеличив высоту панели прогрессбара с 14 до 15 пикселей - тогда будет 100% гарантия, что всё всегда будет отлично влезать. DarkMaster, не забудь такие исправления ввести во все свои *.(WidgetTextView).xdb файлы. DamageStats.(WidgetTextView).xdb с высотой 15 виртуальных пикселей: Code: <?xml version="1.0" encoding="UTF-8" ?> <WidgetTextView> <Priority>150</Priority> <Name>SpellDetailTextViewStats</Name> <Placement> <X> <Align>WIDGET_ALIGN_LOW</Align> <Pos>105</Pos> <Size>110</Size> </X> <Y> <Pos>0</Pos> <Size>15</Size> </Y> </Placement> <TransparentInput>true</TransparentInput> <Visible>true</Visible> <Enabled>true</Enabled> <FormatFileRef href="DamageStats.txt" /> <TextValues /> </WidgetTextView>
-
Миникартой занимаюсь я. Я действительно сейчас очень занят (завтра и может ещё послезавтра), а когда освобожусь, СРАЗУ займусь доработкой миникарты, и выложу её, выглядеть она будет как конфетка. P.S. Действительно, во время её разработки, я столкнулся с тремя трудными моментами, из-за которых чуть не забросил её, но мне удалось решить два из них. Третий не так существенен. И я, кажется, понял, почему сами разработчики так и не сделали миникарту ) В общем, миникарта уже работает, и скоро будет выпущена. Как только миникарта будет выпущена, сразу займусь написанием учебника по созданию аддонов. Его тоже многие ждут.
-
Это баг игры, иногда пропадают некоторые буквы алфавита =) Но он случается очень редко. Чтобы это произошло, нужно создать игре нехватку оперативки (запустив ещё одну прожорливую программу), играть несколько часов подряд, и периодически alt+tab'иться. Лечится это простым перезапуском игры.
-
Quote: Размер виджетов - абсолютен или нет? Визуально (т.е. в реальных координатах) - НЕТ. За то, в ВИРТУАЛЬНЫХ координатах - ДА, АБСОЛЮТЕН. Имхо, нужно заменить во всей иерархии виджетов, WIDGET_ALIGN_LOW_ABS на WIDGET_ALIGN_LOW, и все виджеты станут располагаться и масштабироваться в ВИРТУАЛЬНЫХ координатах - то, что доктор прописал. EDIT: Кстати, все шрифты будут масштабироваться вместе с виджетами. Размеры шрифтов я тоже всегда указываю, на всякий случай. Размеры шрифтов тоже, кстати, измеряются в тех же самых виртуальных единицах. Т.е. если указал "10", то это всегда 10 виртуальных единиц, что в реальных единицах может быть больше или меньше, но это не должно никого заботить. Так и должно быть, так работает весь интерфейс в АО. В общем, это будет в учебнике, но ещё не успел написать про резолюции игры, так что, пишу сейчас: --------------------------------------------------- Все виджеты в игре (оригинальные и пользвательские) масштабируются зависимо от резолюции игры. Если резолюция 1280x1024, то высота экрана 1024, и все они будут выглядеть 1:1 как нарисовано в текстурах (поэтому, проектировать аддон нужно именно под резолюцию 1280x1024). Однако, если резолюция другая, то все виджеты меняют размер пропорционально высоте экрана. Соответственно, меняют и расположение. Поэтому, в аддонах, нужно использовать виртуальные координаты. Что это такое? Функция widgetsSystem:GetPosConverterParams() наглядно объясняет, что такое виртуальные координаты, и как они соотносятся с реальными. Например, при резолюции 1920x1200, эта функция выдаёт такую структуру: Code: fullVirtualSizeX = 1638.4001464844 fullVirtualSizeY = 1024 referenceVirtualSizeX = 1280 referenceVirtualSizeY = 1024 realSizeX = 1920 realSizeY = 1200 Внимательно посмотрите, и всё станет понятно: fullVirtualSize - текущий реальный размер экрана - 1920x1200. referenceVirtualSize - это константы, и они всегда равны 1280 и 1024. fullVirtualSize - ВИРТУАЛЬНЫЕ КООРДИНАТЫ, это то, что нам нужно. Поскольку пропорции экрана в приведённом примере 16:10, то виртуальные координаты получились 1638x1024, причём, ширина вышла дробным числом, но это не существенно. Заметьте, как игра вычисляет fullVirtualSize: fullVirtualSizeY = referenceVirtualSizeY fullVirtualSizeX = fullVirtualSizeY * (realSizeX / realSizeY) Вот именно в пространстве этих ВИРТУАЛЬНЫХ координат, и должны располагаться ВСЕ виджеты в каждом аддоне. Для этого, проектируйте аддон под резолюцию 1280x1024, и ВСЕ виджеты в аддоне, нужно располагать одним из этих способов: WIDGET_ALIGN_LOW - виртуальные координаты, отсчёт от левого (для X) или верхнего (для Y) края материнского виджета. Нужно указать <Pos> и <Size>. WIDGET_ALIGN_HIGH - виртуальные координаты, отсчёт от правого (для X) или нижнего (для Y) края материнского виджета. Нужно указать <HighPos> и <Size>. WIDGET_ALIGN_CENTER - располагать НЕ по X/Y, а просто в центре материнского виджета (или экрана, если виджет старший). Нужно указать <Size>. WIDGET_ALIGN_BOTH - ? (думаю, виджет произвольного размера, с фиксированными отступами от обоих краёв материнского виджета. Чтобы его размеры менялись вместе с материнским виджетом, если размеры последнего будут менятся в ВИРТУАЛЬНЫХ единицах (программно из скрипта, или пользователем, с помощью мыши). Видимо, нужно указать <Pos> и <HighPos>. (Про способы расположения, в учебнике будет гораздо подробнее) Запомните, самый популярный способ расположения виджета - WIDGET_ALIGN_LOW. И никогда, НИКОГДА!, нельзя нигде пользоваться WIDGET_ALIGN_LOW_ABS, т.к. это означает расположение в РЕАЛЬНЫХ координатах (ABS = абсолютные) от верхнего-левого угла. А реальные координаты у всех разные. Поэтому, НИКОГДА не пользуйтесь этим способом, название которого заканчивается на "_ABS".
-
ОК, я ответил в той теме, про размеры виджетов.
-
Все виджеты и шрифты scale'ятся в зависимости от резолюции игры. Всегда. Базовая резолюция, для которой нужно проектировать аддон - 1280x1024. При других резолюциях, размеры ВСЕХ виджетов увеличиваются/уменьшаются пропорционально высоте экрана (или высоте окна, если оконный режим). Но здесь нет никакой проблемы, всё именно так и должно быть. Именно поэтому, проектируя аддон, нужно использовать виртуальные координаты. EDIT: Через 20 минут напишу подробнее.
-
Я, вроде, разобрался, что и как scale'ится в АО при разных резолюциях. Что там не так в аддоне? Какое окно меняет размер в разных резолюциях? Скажи, какое конкретно окно, разберусь как исправить. P.S. Аддон красиво оформлен!
-
"Старые скрипты" здесь: Interface.1.0.03.26.2.zip
-
Обновление. Оптимизация и чистка кода... Всплывающая подсказка (теоретически) стала ещё быстрее. Кроме того, "поправка" на панели выделенного юнита, теперь выглядит 1:1 как оригинал (по внешнему виду не поймёте, то ли это игра показывает уровень, то ли аддон).
-
))) Я даже не знал, что этому окну можно посылать ивенты У меня была идея попробовать выключить/включить скрипт, выдающий окошко, чтобы оно исчезло. Но теперь попробую сделать как ты предлагаешь. Кстати, насколько знаю, к моменту отправки события о приглашении в группу, окно уже открыто. Так что, для начала, попробую реагировать на это событие (а не на открытие окна), и нажимать кнопку. EDIT: Проверил, не работает. Отправка события SCRIPT_MESSAGE_BOX_ANSWER_ACCEPT, сама по себе, диалоговое окно НЕ закрывает. Quote: З.Ы. и НАКОНЕЦ-ТО сделает нормальный ТаргетОфТаргет!!!!!!11одинодина то обижусь и уйду от вас xD Это шантаж и вымогательство! Сделал - TargetOfTarget. Только вот, события изменения ХП/МП приходят, оказывается не от всех, мягко говоря. Они приходят только от самого аватара (в том числе, и когда играет соло), и от всех его товарищей по группе/рейду (когда играет в группе). И то, польза.
-
Mail.ru wrote: "Страх смерти" заменен на "Радость жизни", теперь игрокам начисляют 1 кристалл за каждый час игры, проведенный онлайн без смертей. Дорогой Мэйл.ру. Если бы вы не в шутку, а в самом деле сделали бы нам ХОТЬ ОДИН такой положительный подарок, вы бы увидели, как благодарны были бы пользователи. Они перестали бы гадить на вашем форуме, а форум перестал бы отпугивать потенциальных новых пользователей, и население серверов бы резко поползло вверх. А самое дорогое, что бы вы от этого выиграли, это драгоценная репутация вашей фирмы, которую вы до сих пор, почему-то, не считаете чем-то существенным. Думаю, время покажет, что НИЧЕГО нет дороже репутации фирмы, её даже за деньги купить нельзя.
-
Quote: Ты берешь данные об экране 1 раз при инициализации..... Исправил.
-
Он имел ввиду доступ к Astral Updater. Он его уже получил, пару дней назад.
-
А какой смысл НЕ выкладывать? Имхо, так совсем не интересно
-
Чужая, конечно. Мне это пустое поле, в окне осмотра персонажей, давно глаза мозолит. Раз уж чужие статы API не даёт (это, наверное, и есть та причина, по которой у разработчиков это поле до сих пор пустое, с самого ЗБТ. LOL!), то всё ещё можно кое-какую информацию туда собрать. Например, HonorInfo. Может, ещё что-то, нужно пошухерить в API, узнать всё, что можно получать о других игроках.
-
Из переставших работать аддонов, исправить можно только RealAgroR, и то, как выяснилось, его придётся сильно переписывать, примерно до размеров DarkDPSMeter. Остальные два аддона уже не исправить, патч 1.0.07.19 их убил. Кстати, напомню, что разработчики не пытались убить никаких конкретных аддонов, а только отключили все "опасные" функции (названия которых начинались с "protected"). Т.е., вопреки поползшим слухам, разработчики ничего не имеют против аддона RealAgroR.
-
Имхо, тут скрипт должен проверять, не является ли targetId nil, и не является ли PosT nil. Все переменные можно записывать в лог, с помощью команды LogInfo(), которая в SampleCommon (естественно, эту библиотеку функций нужно прописать в AddonDesc.(UIAddon).xdb, чтобы она работала).
-
Проверь синтаксис в LuaEdit 2010 (меню Debug -> Check Syntax).
-
Может, засланный ФСБ ? Он просто взял утилиты "AO Tools" (выложенные в этом форуме), декомпилировал свежий pack.loc (найденный в PAK-файлах игры), и получил все строки русской локализации. Среди них, в \Mechanics\MailTemplates нашёлся текстовый файл с текстом этого письма. Всё просто.
