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

Дайджест за январь-март

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

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

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

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

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

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

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

Подробнее

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

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

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

SLA

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

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

  • Посещение

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

  1. Those strings differs from what Carnifex and neFAST proposed. Where did you get those strings? Btw, we could just download a similar popular addon for WoW, and look into its localization strings. Since it is popular, its strings should be correct.
  2. No no, not "absorbed". Mmm... In DarkDPSMeter those 3 strings are NOT verbs, but nouns, and it sounds this way: Dodge = Esquive Miss = Raté Glance = Réduit So, how those nouns transforms to verbs? Dodged = ? Missed = ? Glanced = ? P.S. Btw, should I replace "Esquive" with "Esquivé" in DarkDPSMeter, or not? P.S. Or maybe DarkDPSMeter French strings are totally wrong?
  3. I think we can't rely on DarkDPSMeter localization very much, because its strings are all nouns (Dodge, Miss, Glance), and for CT we need probably verbs (Dodged, Missed, Glanced). So, in DarkDPSMeter there are nouns (?): Dodge = Ausgewichen Miss = Verfehlt Glance = Streiftreffer And you proposed those strings for CT: Dodged = Ausgewichen Missed = Verfehlt Glanced = Gestriffen
  4. Quote: It is planned to publish AOChatExtension at the end of this weekend (russian: msg14 + all b? and french: all strings)!!! It is about time! OK , then, it is planned to publish an English translation of "New addon publication guide" during this weekend =)) Russian strings attached to this message. Quote: @SLA: is there the possibility to get the playerID from friendslist in 1.1.04 (with social.getfriendinfo())? No. There is playerId in guild.GetMemberInfo(), but for some unknown reason (by mistake?), social.GetFriendInfo() don't have such parameter. This means, that in future API versions they can either add playerId to Friends, or remove playerId from Guildies, because I think it is not very useful for game devs to have palyer IDs in GuildList. Quote: btw: have you a downloadlink for the 1.1.04 api, I only have the 1.1.03 one? No, we never had an API 1.1.04 documentation. Game devs skipped this version, but later they gave us API 2.0.00, which includes all changes from 1.1.04 and 2.0.00. You can look in API 2.0.00 for 1.1.04 changes. Compare it with API 1.1.03, and if you are not sure, is a new function from API 1.1.04 or API 2.0.00, then ask me, I'll try to guess. Quote: Edit: Can someone explain, what common.CreateValuedText() does? Creates a new instance of ValuedText (which is "userdata"). ValuedText is a kind of "HTML-preformatted anything", like contents of tooltips, etc, etc. I have never seen this in user addons, but probably you can use it this way: Code: local vtMyValuedText = common.CreateValuedText() vtMyValuedText:SetFormat( "<body><r name=\"value\"/></body>" ) vtMyValuedText:SetVal( "value", userMods.ToWString( "Hello World!" ) ) Quote: and why is mission.SetChatInputText( text ) not working? o.O Very likely, it is disabled as a part of "protection" against spammers. There is no API methods to write anything to chat - they did this intentionally. There is no user addons out there, which use this function. But all spammers have created Win32 apps, which write to AO chat directly via keyboard hooks. This makes API "protection" almost useless, so I think, we have to ask game devs to un-ban all those chat-related functions. It wont help spammers very much, but it will help us, addon makers, to make better addons. Btw, you can make your OnReactionPush() function 100% bulletproof (and protected against any new possible problems in the future), if you split your IF statements into 2 separate IFs. I mean, instead of: Code: ... elseif params.sender=="button-here" and BLABLABLA then do-something ... write it this way: Code: ... elseif params.sender=="button-here" then if BLABLABLA then do-something end ... This way, you will be 100% SURE, that the code of any button will be NOT executed if you haven't pressed it. Even is there are potential bugs in BLABLABLA conditions, or if future changes in API will break something in BLABLABLA conditions. And here are new RU strings: File: AOChatExtension-RUS-20101024.zip
  5. There is a small bug - instead of DnD:Unreg( 301 ) there must me DnD:Unreg( Options ) And there is unused global variable, you can remove it - Global( "UI_TOGGLE", true ) And where are AddonManager events? At least "U_EVENT_ADDON_MEM_USAGE_REQUEST". And maybe "U_EVENT_TOGGLE_DND" for locking CT_Total icon, if you want: Code: -- U_EVENT_ADDON_MEM_USAGE_REQUEST -- Sending memory usage info to "Addon Manager"function OnEventAMMemUsageRequest() userMods.SendEvent( "U_EVENT_ADDON_MEM_USAGE_RESPONSE", { sender = common.GetAddonName(), memUsage = gcinfo() } ) end -- U_EVENT_TOGGLE_DND -- Locking/unlocking the button by "Addon Manager" request function OnEventAMToggleDnD( params ) if params.target == common.GetAddonName() then if params.state then DnD:Reg( MainPanel ) else DnD:Unreg( MainPanel ) end end end and to the Init() function: Code: -- ADDONMANAGER EVENTS common.RegisterEventHandler( OnEventAMMemUsageRequest, "U_EVENT_ADDON_MEM_USAGE_REQUEST" ) common.RegisterEventHandler( OnEventAMToggleDnD, "U_EVENT_TOGGLE_DND" ) Btw, since mainForm:Show( params.visible ) really works, and it even doesn't break the DnD system, then it is the BRILLIANT method of hiding/showing addons! I will use it myself, and recommend it to others. Thank you! Also, isn't it better to hold all localization strings centralized? Currently, you waste a lot of code space, because localization strings are repeated several times in your code ( Glanced - 4 times, Dodge - twice, Missed - twice ). You can simplify it, and make it easier to maintain in the future, if you make a single table for holding all those localizations: Code: Global( "Texts", { [ "eng" ] = { [ "Dodged" ] = "Dodged", [ "Missed" ] = "Missed", [ "Glanced" ] = "(Glanced)", }, [ "rus" ] = { [ "Dodged" ] = "Увернулся", [ "Missed" ] = "Промах", [ "Glanced" ] = "(Вскользь)", }, ..... } ) And then, instead of if-elseif-elseif-elseif-end, use just this single string: Code: Dodge:SetVal( "localet", userMods.ToWString( Texts [ localizer ] [ "Dodged" ] ) ) I've forgot to tell you, that if you decide to hold localizations directly in Lua, then RU strings must be in Windows-1251 codepage, and DE/FR strings in Windows-1252 (a.k.a. iso-8859-1) codepage. Because Lua itself don't support Unicode, its "string" vars are 8-bit strings. But you already did everything correctly, congratulations Russian localization (corrected): Dodged = Увернулся Missed = Промах Glanced = Вскользь The same, "converted" to Windows-1252: Dodged = Óâåðíóëñÿ Missed = Ïðîìàõ Glanced = Âñêîëüçü German is provided by Carnifex, and for French localization, there is neFAST. I'll PM him, and ask him to take a look at this thread. neFAST, can you confirm those strings are correct? : French: Dodged = Esquivé Missed = Manquer Glanced = Regards neFAST is often here somewhere, so I think, he will reply very quickly.
  6. Как работает реферальная система (система приглашений) ? Кто-нибудь разбирался в этом? Я не нашёл на оф.форуме никаких гайдов, как это всё работает. За то, заметил, что в профилях пользователей оф.форума, появился новый параметр на закладке "Обо мне" - "Рефералы: 0". Поскольку, рефералы должны быть привязаны к *аккаунту*, а не к отдельному персонажу в игре, то я ожидал увидеть какой-то функционал, связвнный с реферальной системой, в "Личном кабинете", но ничего не нашёл. Однако, позже я наткнулся на это: Quote: Реферальная система пока не доступна, в одном из ближайших хотфиксов исправим.
  7. SLA

    AddonManager

    Чтобы делать "чистые" скриншоты.
  8. SLA

    AddonManager

    Да, мы настолько криворукие и тупые, что не можем сделать пару каких-то там ивентов!.. Человек, написавший это, вообще не разбирается в предмете, о котором говорит.
  9. SLA

    Developing CT_Total

    Ciuine sent me a PM: Ciuine wrote: I don't know if any of the people of this site know but I've created a couple of add-ons, but I've never exactly had a RU client tester.Do you think it would be possible for you to test out one of my add-ons on the RU client? It's an add-on that just replaces the damage visualizer with a cleaner scrolling combat text type deal. I think, this discussion deserves a separate forum topic So, you are the author of CT_Total addon, great! Nice to meet you! When you told "Hey, I'm an NA add-on author/modifier.", my first thought was - Is this the guy who have created CT_Total? Yes, about 1-2 months ago somebody told there is a cool addon CT_Total on official US forum. I have found it, downloaded and tried it, and it was really a big surprise (even a shock), that somebody without having a properly translated API documentation have created such a full-featured addon! ) I wanted to contact you then, to ask you to upload CT_Total to UI9, and I have even registered on US forum for this purpose. But I am very busy last time, a lot of important work is not done yet - I have to update AoTextureViewer and DarkDPSMeter, start building a DKP system for AO, etc, etc. I have installed CT_Total v 3.5 right now, and it constantly reminds me that I have to contact you. Btw, it was very easy to fix it for RU version - I had to change "common" to "userMods" in a couple of places. But since you got AO 1.1.02, you have already did this fix yourself. So, currently CT_Total works in all AO versions. I just tested the latest v3.6, it WORKS But I suggest some upgrades, which will make it even better: 1) Localizations There are several strings in your addon (like "Dodged", "Missed", etc), which can be translated to all 4 languages. There is a special technique, including a language detection function, to add multiple localizations into the addon, read this: HOW-TO: Multilangual addon (use Google.Translate) This localization method is used in such addons as DarkDPSMeter and GuildGui1b. Also there is another, different method of holding localized strings NOT in txt files, but in Lua file (it is possible since AO 1.1.02, because there is userMods.ToWString() function) , this method is used in some new addons like AddonManager and InspectStats. 2) Drag&Drop I see you have added Drag&Drop in the last version. This is good, because, for example, your addon's icon looks in the right place only if screen is 16:9, but if the screen is 4:3, your icon overlaps the original game GUI. So, adding Drag&Drop was a good solution for this problem. But the code itself (DND_core.lua) is slightly outdated, better switch to the latest LibDnD.lua: HOW-TO: LibDnD.lua - Drag&Drop Library (English translation included) LibDnD is better, and simpler to use, just make some changes: DNDInit( DNDOptions, MainPanel, 300 ) DNDInit( Options, Options, 301 ) to DnD:Init( 300, DNDOptions, MainPanel, true ) DnD:Init( 301, Options, Options, true ) DNDReg( Options, 301 ) DNDUnreg( 301 ) to DnD:Reg( Options ) DnD:Unreg( Options ) Btw, the 4-th DnD:Init() parameter (true) enables saving & restoring widget's position between game sessions. 3) AddonManager support There is a new addon AddonManager - the "must-have" addon for everyone. Especially for addon developers. Besides loading/unloading addons, it have some extra features, like showing addons' allocated memory size, and locking/unlocking Drag&Drop in selected addons (and there will be even more features in future versions). Also, since Alt+Z don't send the SCRIPT_TOGGLE_UI event to user addons anymore, AddonManager got a "Hide All Addons" button which sends this event. But there is a bug in CT_Total - unfortunately, mainForm:Show( params.visible ) don't affect any widgets, those widgets always remains visible... And all those AddonManager features require addon to support some special events. It is very simple to implement, here is a guide: AddonManager support in other addons (English translation included) And most important, yes, of course I will help you to test any your addons on RU servers! Also, if you have any questions regarding API or XDB files, feel free to ask
  10. Была у меня идея, сделать XSD или DTD. Поскольку игра не сообщает об ошибках в XDB-файлах, то мы могли бы сами запросто проверять их синтаксис, имея, например, XSD. Но руки до этого дела не дошли, а вообще да, нужно сделать.
  11. Valltron не шпион Он сейчас редко сюда заходит, но я с ним регулярно переписываюсь, поэтому я на 100% уверен, что он не из конторы Дорогой МЫйл.ру! Ну наймите нас, что вам стОит? Мы поднимем аддоностроение на новый уровень, чем обрадуем всех ваших клиентов, которые пользуются аддонами (а это, *ощутимый* процент игроков АО). Вы же видите, как нас здесь мало, как нам не хватает времени, и как много у нас идей. Наймите нас на работу, full time, и мы тут всё приведём в порядок! А ещё, мы исправим ВСЕ мелкие баги вашего интерфейса (тысячи их!) уже к следующему крупному патчу. Даже на Аукционе, в поле ввода строки поиска, наконец-то начнёт работать ENTER. А то задрало уже, что не работает
  12. В том то и дело, что статус "ОБТ" всё время был просто вывеской. Поэтому и смешно ) Правда, саппорт больше не сможет отвечать "Идите нахрен, это ОБТ",теперь им придётся чаще использовать фразу "на данный момент, есть более приоритетные задачи" ) P.S. Судя по последним нескольким твоим постам, ты сейчас либо в плохом настроениии, либо это осенняя мини-депрессия. Я свои депрессии обычно даже не замечаю, пока кто-нибудь из окружающих не скажет, что я не понял какую-нибудь шутку - в такой момент я осознаю, что у меня депрессия. Где-то с месяц назад такое было. Но это нормально, просто осень пришла.
  13. Ramirez, а ты не из конторы, случайно? Я тут выдвинул такое предположение, 3-мя постами выше.
  14. Пока ничего. Сейчас распределяю вехи, какая-то сволочь снова сбросила все мои вехи )) Потом, этой ночью, попробую что-нибудь накопать. Напишу, если что-нибудь выйдет.
  15. Quote: Если до сих пор не прикрыли, значит им глубоко по барабану до этих "дыр" По моему скромному имхо, это вовсе не дыры. Это возможность делать НОРМАЛЬНЫЕ аддоны, внедряющиеся в код стандартных аддонов, как в WoW. И если такая возможность есть, и она окажется "сюрпризом" для самих разработчиков, то... мы должны внушить общественности, что это НОРМАЛЬНО. Что мы ничего не ломаем, а просто делаем более качественные аддоны. Quote: Приходится мыловцам самим адооны клепать - уже ниче не поп*шь Что? Среди нас шпионы? Подозрения на кого-нибудь есть? Может, Ramirez? Он слишком хорошо знает Lua. Кстати, я вот буквально пару дней назад думал. Если разработчики следят за аддонами (а они следят за нашими новинками, это 100%), то хули никто из них не зарегистрируется на форуме, и не подкинет нам советов. Хотя бы, по XDB-файлам, у нас же по ним вообще документации нет. Или с аддонами поможет. Так как если человек кодит на Lua стандартные аддоны для АО по 8 часов в день, то уж точно, у него должна быть куча нереализованных идей, и опыт, чтобы очень лекго и быстро их реализовать. Или, всё-таки, есть тут шпионы? (может я?) P.S. Дорогой Мэйл.ру, Наймите меня на работу, full time, на полную ставку. Я вам столько аддонов наклепаю, самых лучших и качественных, что все ваши клиенты вообще забудут, про все баги вашего интерфейса. А ещё, буду регулярно обновлять AoTextureViewer, и напишу IDE для создания пользовательских аддонов По рукам?
  16. Quote: Вот этим кодом вы запарываете весь драг'н'дроп в игре. Бросать или не бросать, должен решать аддон-инициатор, а не кто попало. +100500 !!! KaaPex, исправь это, т.к. это вызывает "зависание" перетаскиваемых иконок в игре. Подробно об этой проблеме написано здесь: Чиним зависание перетаскиваемых иконок!
  17. Вот именно, НИКАК они не вписываются (такое же похабство, как и солнцезащитные очки). Крылья тупо притащили из третесортных игр вроде Perfect World. А ведь, в АО до, огнекрыльев, "странных" маунтов, и пляжных очков, был строго выдержанный стиль, отличная атмосфера и эстетика в целом.
  18. Quote: Недавно к этой парочке еще и минутная прорисовка персонажей присоединилась Ага, жутко бесит. Даже в СТАРТОВЫХ локациях (где плявляются персы 1 уровня) , даже там нужно ждать, пока персонаж прорисуется. Так. Все аддоны работают, вроде (кроме глюка с кешированием "времени офлайн" для Друзей в GuildGui1b - разберусь сегодня). Уффф, пронесло! Много мелких изменений в интерфейсе. Самое главное изменение в игре -- ОБТ закончился!!! =) Я думал, ОБТ вечен )
  19. УЖЕ ДАЛИ ССЫЛКИ НА СКАЧАИВАНИЕ: http://allods.mail.ru/news.php?article=712 Quote: Профилактические работы на всех серверах [21 октября] Уважаемые игроки! 21 октября с 7:00 до 12:00 по московскому времени в связи с установкой обновления "Покорители Времени" будут недоступны все игровые серверы. Обновление вы можете скачать уже сейчас по доступным ссылкам: Ссылка на ручное обновление Торрент-ссылка <-- РЕКОМЕНДУЮ. rutracker.org Обновление будет доступно для установки после окончания профилактических работ. UPD: Уже скачал с торрент-ссылки (всего 405 МБ). Сделаю бекап 1.1.04, и установлю патч... Не устанавливается. Придётся, установить во время профилактики, завтра утром.
  20. Завтра всё испробуем, и разберёмся
  21. Nice To-Do list, but i'm not sure that everything i this plan is possible, especially interaction with other players via chat. Yesterday I could probably say that it is absolutely impossible. But today, KaaPex have discovered, that WE CAN interact with standard addon widgets!!! (look at his ShowMePrice to see how it is possible. P.S. Bug found: In AO 1.1.03+, guild.GetRights( memberId ) takes memberId as a parameter, NOT player's name: Error: addon AOChatExtension: func: GetRights, field, line: -1, defined: C, line: -1, [c] Error: addon AOChatExtension: func: GuildCanInvite, global, line: 105, defined: Lua, line: 103, [string "mods/addons/aochatextension/aochatextension.lua"] Error: addon AOChatExtension: func: OnTextObjectClicked, global, line: 243, defined: Lua, line: 161, [string "mods/addons/aochatextension/aochatextension.lua"] Error: addon AOChatExtension: Game::LuaGuildGetRights: param 1 not a class GMUIHelper::ObjectId (type: WString), details: int __cdecl Game::LuaGuildGetRights(struct lua_State *) Replace this: Code: local rights=guild.GetRights(object.GetName(avatar.GetId())) with this: Code: local rightsif guild.GetMember then -- AO 1.1.03+ rights=guild.GetRights(guild.GetMember(object.GetName(avatar.GetId()))) else -- AO 1.1.02 rights=guild.GetRights(object.GetName(avatar.GetId())) end
  22. Quote: вообще то что я там сделал можно использовать для изменения стандартного аддона и добавления в него своих виджетов. Я мельком просмотрел ShowMePrice, и нашёл там то, о чём ты говоришь. Например, перехватив Drag&Drop, ты получаешь доступ к стандартным виджетам Аукциона: Code: local wtParent = params.targetWidget:GetParent() -- виджет Slot аукциона Это означает, что аддоны НЕ изолированы друг от друга ВООБЩЕ. Это открывает нам целое измерение новых возможностей! =))) Идея: Что если попробовать обращаться к виджетам стандартных аддонов по их адресу? Мы знаем, что все пути к ресурсам пользовательских аддонов, начинаются с /Mods/Addons/......., так вот, а что, если вместо этого пути, обратиться куда-нибудь в /Packs/Interface/Ingame/......./<Имя-MainForm'ы>/<виджеты...> ????? Ну не зря же у пользовательских и стандартных аддонов общая корневая папка!!! Блин, я сейчас как бы занят, но руки чешутся попробовать!!! =D Мэйл.ру, молись!!!!! =D
  23. Сконвертировал для вставки в Lua. Как конвертировать, написано здесь. ----- "Сугроб" = "Tombeau de glace" "Мир Призраков" = "Faiblesse" ". Время кончилось" = ". Temps йcoulй" "Подождите.." = "Patientez..." ". CБИЛ " = ". INTERROMPU par" ". Убил " = ". Tuй par " ". Таймер остановился :'( " = ". Le chrono s'est arrкtй :'(" " сек." = " sec" "Прошлая цель" = "Cible prйcйdente" ". Сугроб: " = ". Glace: " ". Мир: " = ". Faiblesse: " ". Сон: " = ". Lйthargie: " ". Гипноз: " = ". Hypnose: "
  24. Mehael, заметь, тут есть одна французская буква - é Так вот, чтобы этот текст правильно сконвертировать в Lua, нужно сделать так: 1) Скопировать это в TXT, и сохранить в кодировке Windows-1252. 2) Открыть этот TXT так, как если бы он был в кодировке Windows-1251. Думаю, сделать это можно любым продвидутым редактором, наверняка, Notepad++ умеет это. У меня EmEditor, и он это умеет. В общем, при таком "конвертировании", é должна превратиться в й. Вот так, этот текст можно копировать прямо в Lua: Code: -- fireif userMods.FromWString( Buff.name ) == "Flammes йternelles" then wtRPanel:PlayFadeEffect( 1, 0, 2000, EA_MONOTONOUS_INCREASE ) wtLPanel:PlayFadeEffect( 1, 0, 2000, EA_MONOTONOUS_INCREASE ) -- electricity elseif userMods.FromWString( Buff.name ) == "Cascade" then wtElPanel:PlayFadeEffect( 1, 0, 2000, EA_MONOTONOUS_INCREASE ) -- ice elseif userMods.FromWString( Buff.name ) == "Avalanche" then wtIcePanel:PlayFadeEffect( 1, 0, 2000, EA_MONOTONOUS_INCREASE )
×
×
  • Создать...

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

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