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

Дайджесты за январь-февраль

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

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

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

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

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

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

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

Подробнее

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

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

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

SLA

Пользователь
  • Постов

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

  • Посещение

Весь контент SLA

  1. SLA

    AddonManager

    Duvodas сейчас в отъезде, но мы с ним уже договорились, что синтаксис событий AddonManager чуть-чуть поменяется: Во-первых, у SCRIPT_TOGGLE_VISIBILITY, параметр isVisible будет ПЕРЕИМЕНОВАН в state, чтобы синтаксис SCRIPT_TOGGLE_VISIBILITY был аналогичен синтаксису SCRIPT_TOGGLE_DND. Во-вторых, снова появятся события запроса и отправки памяти (правда, память теперь будет показана НЕ в отдельной колонке, а во всплывающих подсказках аддонов). Эти два события, теперь, будут называться так: SCRIPT_ADDON_MEM_REQUEST SCRIPT_ADDON_MEM_RESPONSE У SCRIPT_ADDON_MEM_REQUEST теперь будет параметр target, а у SCRIPT_ADDON_MEM_RESPONSE будет параметр sender. Реагировать на SCRIPT_ADDON_MEM_REQUEST нужно будет примерно вот так: Code: function SCRIPT_ADDON_MEM_REQUEST( params ) if params.target == common.GetAddonName() then userMods.SendEvent( "SCRIPT_ADDON_MEM_RESPONSE", { sender = params.target, memUsage = gcinfo() } ) end Я уже реализовал поддержку всего этого в нескольких аддонах, которые сейчас залью на сайт. Например, аддоны DarkDPSMeter, GuildGui1b и AnatomySelfDefence теперь поддерживают ВСЕ события нового AddonManager, причём, именно в таком синтаксисе, как я здесь сейчас написал. Вот, на них можно будет и тестировать. ВАЖНО: Эти изменения синтаксиса ещё НЕ реализованы (!) в том AddinManager, который прицеплен к первому сообщению этой темы. Так что, ждём когда вернётся Duvodas.
  2. SLA

    FittingRoom

    НУ НАКОНЕЦ-ТО, у нас есть Примерочная в игре! Огромное спасибо!
  3. ...Потом ждём сколько-то секунд, пока появится экран выбора персонажа, и простым нажатием ENTER заходим за того персонажа, который играл последним. А там, уже загружаются все аддоны...
  4. Так ВОТ, что означал этот загадочный пункт в патч-ноуте... А я-то подумал, что это связано с тем, что у некоторых пользователей аддоны не работали, пока пару раз не перезагрузишь игру. Слишком поздно! ) Я только что закончил чинить 8 аддонов. И завтра их всех залью на сайт Как минимум, потому, что "старую" версию GetGameLocalization() нужно было в любом случае менять - в EU/US версиях, с того момента, как игрок попадает на Гипат, "старая" функция перестаёт работать, и все EU/US локализации определяет как "eng". Потому, что блок карт "Gipat", зачем-то, становится на НУЛЕВОЕ место в списке MapBlocks, сдвигая все остальные на одну позицию вниз. Кстати, именно это и было причиной создания "новой" функции, в которой локализованные названия даны целиком. А ещё, пользуясь случаем, я прикрутил ко всем этим аддонам поддержку следующей версии AddonManager (синтаксис его событий будет чуть-чуть отличаться, от того, который сейчас в девелоперской версии, я уже договорился с Duvodas. Кстати, он как бы в командировке, или что-то в этом роде, но завтра, вроде, возвращается.), кое-где добавил пару новых локализаций, и исправил кое-какие баги и недочёты... Так, например, GuildGui1b будет нормально работать даже у Японцев и Португальцев, а DarkDPSMeter будет нормально работать у Паладинов, с их умением "Святой Рассвет".
  5. SLA

    AddonManager

    Тут такое дело. Я сегодня ремонтирую кучу аддонов, это такие аддоны, которые обновляются раз в пол года. И мне нужно срочно (сегодня) уточнить пару нюансов синтаксиса собыий этой новой версии AddonManager: Q1: Как будет назыаться бывшее событие U_EVENT_ADDON_MEM_USAGE_REQUEST? SCRIPT_ADDON_MEM_USAGE_REQUEST или как-то ИНАЧЕ? Q2: Раньше у него не было параметров, но теперь, видимо, будут. Будет указан target ? -------------------- И ещё, насчёт описания синтаксиса, там ещё есть недостатки: 1. Не указано, что у SCRIPT_TOGGLE_DND есть ещё один параметр - state. 2. Не указано, что у SCRIPT_TOGGLE_VISIBILITY есть ещё один параметр - isVisible. 3. Может, пока не слишком поздно, для большей простоты и универсальности, переименовать isVisible в state ? 4. Нужно добавить в описание (пока просто в описание) то самое событие, возвращающее gcinfo(), о котором я задал 2 вопроса выше.
  6. If SpamProtect is useless anymore, then it is not necessary to fix it, you can leave it in "not working" status, if you want.
  7. MinimapSla РАБОТАЕТ. Только, показывает подсказки к Межевым камням и Сокровищам на английском языке. В следующем обновлении, это будет исправлено. Если MinimapSla не работает, значит, видимо, он установлен как-то неправильно. Как устанавливать аддоны (Инструкция)
  8. Такие вопросы - не в этой теме. Как устанавливать аддоны (Инструкция) Как сделать свой аддон
  9. Added a test case for EU/US developers, which helps to emulate AO 2.0.03 behaviour in AO 1.1.04. See "P.S. Special for EU/US developers:" in the second post of this thread.
  10. SLA

    AddonManager

    Первая версия (на главной) помечена как "временно не работает". Так что, ждём релиз этой девелоперской версии Кстати, Mehael уже начал внедрять поддержку этой новой версии в свои аддоны. И правильно делает, т.к. нам в любом случае приходится перелопатить все аддоны, так что, самое время, "за компанию", вводить поддержку SCRIPT_ADDON_INFO_REQUEST. Я сделаю то же самое в тех аддонах, которые буду ремонтировать сам.
  11. SLA

    LightDPS

    Извини, пометил LightDPS как рабочий Так и было, я не вдавался в код аддонов, а просто скачал ВСЕ последние версии аддонов, и разделил их на 3 группы - 1) у которых нет GetGameLocalizaton() (работают), 2) у которых есть "старая" версия функции (теоретически, должны были поломаться), и 3) у которых есть "новая" версия (работают, но, скорее всего, неправильно).
  12. Patch 2.0.03 - Valentine's Day, or Black Monday? English translation I used to wonder why the map blocks (which are used in client localization detection function GetGameLocalization()), are available before the creation of avatar in the game? Indeed, the contents of map blocks depends on whether the player have access to some territories... In AO 2.0.02 patch, game devs "fixed" this issue, and now cartographer.GetMapBlocks() function returns nil, when it's called before the EVENT_AVATAR_CREATED event. It turned out that it broke a lot of good, complex addons. Those which use the "old" GetGameLocalization() function (older than version 2011-01-29), now breaks in the place where GetGameLocalization() is called, and writes a fatal error in the log (attempt to index nil). All those addons must be repaired. Some addons that use the "new" GetGameLocalization() function (version 2011-01-29 or newer), works WITHOUT fatal errors, but are likely to detect the Russian localization as English. These addons just should be checked. List of broken addons: AddonManager AnatomySelfDefence AucEDSman AutoDeleteMail ChatBarAO ChatLogByN00b ControlCountdown DarkDPSMeter GuildGui1b InspectStats Minimap PLATES PlayerHUD QuestTracker All these 14 addons use the "old" GetGameLocalization() function, are marked as "Temporarily broken" (colored gray). If you are the author of one of those addons, please repair and update the addon, and it will automatically return to "working" status! As you can see in this list there are many IMPORTANT addons that need to be urgently repaired. Those of them that I have already repaired before, I'll fix myself (DarkDPSMeter and GuildGui1b - primarily). List of addons that should be checked: CT_Total MasterLoot MinimapSla RealAgroM RuneCalc SpamProtect WhisperWindow These 7 addons use the "new" GetGameLocalization(), they work, but with almost 100% probability, in Russian version, detects language as English. All those addons have "working" status (because those addons ACTUALLY works), but needs to be verified. If you are the author of one of those addons, please check it and update if necessary. How to fix addons 1) First, replace the old GetGameLocalization() with the newest version (2011-02-10), from "HOW-TO: Multilangual addon" topic, because it works WITHOUT any errors in Mods.txt. 2) Second, take out everything related to the detection of localization, and its usage from the Init() function (and functions called in this functions) to a function which responds to EVENT_AVATAR_CREATED. That's all, the addon is repaired But here are three extra advices: 3) For better security, initialize the default language - "eng" in the Init() function, (don't leave it nil until EVENT_AVATAR_CREATED!), This will help to avoid any problems that could theoretically occur in the future. And on the EVENT_AVATAR_CREATED event, re-initialize the real localization using GetGameLocalization(). 4) Don't forget that if you restart addon in AddonManager, your addon will not get the EVENT_AVATAR_CREATED event. Therefore, at the end of Init(), you need to check whether there is an avatar, and if it exists, then call the function which reacts to avatar appearance, for example: Code: if avatar.IsExist() then OnEventAvatarCreated() end 5) Keep in mind that the latest GetGameLocalization() is able to detect a couple of new languages - Japanese ("jpn") and Portuguese ("br"). Most of addons don't have these localizations yet, so it is not enough to determine the language, you must also check whether your addon have such localization. And if not, then use English. For example: If your localizations are stored as a set of TXT-files: Code: localization = GetGameLocalization()if not common.GetAddonRelatedTextGroup( localization ) then localization = "eng" end If your localizations are stored in LUA-file: Code: localization = GetGameLocalization()if not Locales [ localization ] then localization = "eng" end or (another syntax): Code: CurrentLocale = Locales [ GetGameLocalization() ] or Locales [ "eng" ] P.S. Special for EU/US developers: For testing purposes, you can "emulate" AO 2.0.03 behaviour in AO 1.0.04, by slightly altering the GetGameLocalization() function: 1) Temporarily replace local B = cartographer.GetMapBlocks() with local B = avatar.IsExist() and cartographer.GetMapBlocks() 2) Temporarily replace return "eng" with return "rus" Now it works in AO 1.1.04 just like in AO 2.0.03, and returns "rus" in a case of failure (just like it returns "eng" in a case of failure in AO 2.0.03).
  13. Патч 2.0.03 - День святого Валентина, или чёрный понедельник? Scroll down for English translation Раньше я удивлялся, почему же блоки карт (благодаря которым работает функция определения локализации клиента GetGameLocalization()), доступны ещё до появления аватара в игре? Ведь, состав этих блоков карт зависит от того, доступны ли игроку некоторые территории... В патче АО 2.0.02, разработчики игры "исправили" эту оплошность, и теперь, функция cartographer.GetMapBlocks() возвращает nil, если её вызвать до появления аватара в игре (EVENT_AVATAR_CREATED). Так вышло, что это испортило очень много хороших, сложных аддонов. Те из них, которые используют "старую" функцию GetGameLocalization() (до версии 2011-01-29), теперь прерывают выполнение функции в том месте, где попадается GetGameLocalization(), и пишут фатальную ошибку в лог (попытка индексировать nil). Их всех нужно ремонтировать. Некоторые аддоны, которые используют "новую" функцию GetGameLocalization() (от версии 2011-01-29 и новее), работают БЕЗ фатальных ошибок, но, скорее всего, Русскую локализацию определяют как Английскую. Эти аддоны нужно просто проверить. Список поломавшихся аддонов: AddonManager AnatomySelfDefence AucEDSman AutoDeleteMail ChatBarAO ChatLogByN00b ControlCountdown DarkDPSMeter GuildGui1b InspectStats Minimap PLATES PlayerHUD QuestTracker Все эти 14 аддонов используют "старую" функцию GetGameLocalization(), и помечены как "Временно не работает". Если вы автор одного из этих аддонов, отремонтируйте и обновите аддон, это вернёт ему "рабочий" статус! Как видите, в этом списке очень много ВАЖНЫХ аддонов, которые нужно срочно починить. Те из них, которые я уже ремонтировал раньше, я починю сам (DarkDPSMeter и GuildGui1b - обязательно). Список аддонов, которые нужно проверить: CT_Total MasterLoot MinimapSla RealAgroM RuneCalc SpamProtect WhisperWindow Эти 7 аддонов используют "новую" функцию GetGameLocalization(), они работают, НО с почти 100% вероятностью, в русской версии определяют язык как английский. Всем этим аддонам оставлен "рабочий" статус (т.к. они ФАКТИЧЕСКИ работают), но их нужно проверить. Если вы автор одного из аддонов, проверьте его, и обновите, если нужно. Как исправлять аддоны 1) Во-первых, заменить старую GetGameLocalization() на самую новую (2011-02-10), из темы "HOW-TO: Многоязычный аддон", она работает БЕЗ ошибок в Mods.txt. 2) Во-вторых, вынести всё, что связано с определением локализации, и её использованием, из Init() (и запускаемых из неё функций) в функцию, реагирующую на EVENT_AVATAR_CREATED. Всё, после этого, аддон отремонтирован Но вот ещё три совета: 3) На всякий случай, ещё в Init(), проинициализируйте язык по-умолчанию - "eng" (не оставляйте nil аж до самого EVENT_AVATAR_CREATED!), это поможет избежать возможных проблем, которые могут теоретически возникнуть в будущем. А по событию EVENT_AVATAR_CREATED, вы пере-инициализируете язык, получив настоящую локализацию с помощью GetGameLocalization(). 4) Не забудьте, что в случае перезагрузки аддона в AddonManager, никакого EVENT_AVATAR_CREATED ваш аддон не получит. Поэтому, в самом конце Init(), вам нужно проверить, существует ли аватар, и если он существует, то принудительно запустить реагирующую на его появление функцию, например: Code: if avatar.IsExist() then OnEventAvatarCreated() end 5) Имейте ввиду, что новейшая GetGameLocalization() умеет определять пару новых языков - Японский ("jpn") и Португальский ("br"). Наверняка, в вашем аддоне НЕТ этих локализаций, поэтому, НЕдостаточно просто определить язык, нужно ещё и проверить, есть ли в вашем аддоне такая локализация. И если её нет, то выставить Английскую. Например: Если ваши локализации хранятся в виде набора TXT-файлов: Code: localization = GetGameLocalization()if not common.GetAddonRelatedTextGroup( localization ) then localization = "eng" end Если ваши локализации хранятся в LUA-файле: Code: localization = GetGameLocalization()if not Locales [ localization ] then localization = "eng" end или (другой синтаксис): Code: CurrentLocale = Locales [ GetGameLocalization() ] or Locales [ "eng" ]
  14. Оказывается, она прекрасно работает, просто теперь, после патча АО 2.0.03, пользоваться её можно ТОЛЬКО после события EVENT_AVATAR_CREATED. Если же, воспользоваться ею раньше (в Init(), например), то она НЕ сделает никакой ошибки, и просто вернёт "eng" (английский язык). ПОДРОБНЕЕ ЗДЕСЬ: Патч 2.0.03 - Ремонтируем аддоны P.S. ОБНОВЛЕНИЕ 2011-02-17 Демонстрационный аддон "SampleLocalization" исправлен для АО 2.0.03.
  15. Ясно. У меня нашлись такие кнопки только в 3 аддонах: AddonManager CT_Total LootInfo (мёртвый аддон)
  16. Нет нет нет! Ложная тревога. <reactionOnPointing /> работает везде, если он используется в WidgetPanel. У меня в MinimapSla, по <reactionOnPointing />, загораются кнопки +/- и показываются тултипы. И это работает в 2.0.03, работало в 2.0.02, и работает в EU/US 1.1.04 (я проверял). Но все виджеты в MinimapSla, у которых есть этот тег - ПАНЕЛИ, а не кнопки. Потом, я просканировал все свои аддоны, и оказалось, что в половине из них нашлось <reactionOnPointing />, а в другой половине <ReactionOnPointing />! Чудеса! Как такое может быть, если в ПО ИДЕЕ, в XML имеет значение регистр букв в названиях тегов? Тогда, я просканирвал всю свою коллекцию API (из разных версий от 1.0.07 до 2.0.03), и оказалось, что с этими тегами ничего не менялось аж с самой АО 1.0.07, НО есть один такой нюанс (разгадка): Эти теги есть ТОЛЬКО в WidgetPanel: <reactionOnPointing /> <forceReactionOnPointing /> Этот тег есть ТОЛЬКО в WidgetButton: <ReactionOnPointing /> P.S. Нашёлся также отрывок из API (\LuaApi\CategoryPanel.html), говорящий, что: Quote: forceReactionOnPointing - Уведомление о наведении на контрол вне зависимости от его доступности для кликов
  17. И откуда у меня такое предчувствие, что в недалёком будущем, будут снова порезаны некоторые функции, которые, как говорят разработчики, "дают игровые преимущества" ?
  18. В общем, аддоны ремонтируются просто: Функция GetGameLocalization() в полном порядке, но ТЕПЕРЬ, ею можно пользоваться только после EVENT_AVATAR_CREATED. Просто выносим всё, что связано с определением локализации, и её использованием, в функцию, реагирующую на EVENT_AVATAR_CREATED. P.S. Патч 2.0.03 - Ремонтируем аддоны
  19. UPD: Полный список полованных аддонов, и как их ремонтировать, вынес в отдельную тему, чтобы никто не пропустил: Патч 2.0.03 - Ремонтируем аддоны
  20. DarkDPSMeter и GuildGui1b - точно не работают. Придётся чинить MinimapSla - работает прекрасно (хоть и определил язык как английский), и это радует
  21. It is Russian word "Floodilnya" (which can be translated as "Flood room"), but it is not literary word, and "Google Translate" translates it as "Count to Infinity". I don't know why ) but it sounds funny. Usually, "Google Translate" handles non-literary words very well, but not this time.
  22. SLA

    AddonManager

    После патча АО 2.0.03, AddonManager (девелоперская версия) исчез с экрана, но в логе ошибок ничего не написал.
  23. Всё починим. Кстати, куда все пропали? Видимо, патч очень интересный, раз поломались все аддоны, а на форуме тишина )
×
×
  • Создать...

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

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