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

Дайджест за июль-сентябрь

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

Сентябрь Август Июль

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

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

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

Бот статистики для Telegram

Удобная аналитика в телефоне.

Подробнее

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

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

Подробнее

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

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

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

icreator

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

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

  • Посещение

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

  1. я добавила: Code: Global("ContType", { ["Whisper"] = "05", ["Zone"] = "01", ["World"] = "01", ["Shout"] = "01", ["System"] = "01", ["Group"] = "02", ["Raid"] = "02", ["Say"] = "03", ["Telepathy"] = "03", ["Guild"] = "04", ["Officer"] = "04", ["Emote"] = "03", ["nil"] = "-1", ---+++ icreator }) Code: ChatType = "nil" --- ++++ icreator if params.chatType == CHAT_TYPE_WHISPER then --WHISPER, WHISPER if not params.recipient and avatar.GetId() == params.senderId then Name = params.sender ToF = L ["Self"] elseif avatar.GetId() == params.senderId then Name = params.recipient ToF = L ["To"] else Name = params.sender ToF = L ["From"] end ChatType = "Whisper" elseif params.chatType == CHAT_TYPE_ZONE then --ZONE, ZONE ChatType = "Zone" elseif params.chatType == CHAT_TYPE_WORLD then --WORLD, ZONE ChatType = "World" elseif params.chatType == CHAT_TYPE_YELL_ZONE then --SHOUT, ZONE ChatType = "Shout" elseif params.chatType == CHAT_TYPE_NOTICE then --NOTICE, ZONE ChatType = "System" elseif params.chatType == CHAT_TYPE_PARTY then --GROUP, GROUP ChatType = "Group" elseif params.chatType == CHAT_TYPE_RAID then --RAID, GROUP ChatType = "Raid" elseif params.chatType == CHAT_TYPE_SAY then --SAY, SAY ChatType = "Say" elseif params.chatType == CHAT_TYPE_PSIONIC then --TELEPATHY, SAY ChatType = "Telepathy" elseif params.chatType == CHAT_TYPE_GUILD then --GUILD, GUILD ChatType = "Guild" elseif params.chatType == CHAT_TYPE_GUILD_OFFICER then --OFFICER, GUILD ChatType = "Officer" end chatID = WW ["ContType"] [ChatType] if params.chatType ~= CHAT_TYPE_ASK then for i = -1, 5 do --- +++ icreator, old: 0,5 if string.find( chatID, tostring(i) ) then Message( i ) end end end
  2. Now with custom color creator. Set color with /wwcusset slash command. - как это работает??
  3. Quote: There's a reason why /wwclear exists. Try it. обычный пользователь никогда это не будет вводить - а будет ругаться что игра тормозит... по поводу что есть Code: [ "System" ] = "Уведомления", так это "Уведомления" занимает пол экрана! просьба сделать все же режим И кстати в системном чате размер буфера 50 строчек примерно - думаете они это зря сделали? Code: [ "nil" ] = "", ... elseif params.chatType == -5 then --- сообщени от аддонов, служебные сообщения Message( nil, WW ["nil"] , 3 ) Message( nil, WW ["nil"] , 0 ) просто я все равно вручную это вставляю в ваш скрипт... никому это не помешает в любом случае - только + для популярности вашего аддона среди других разработчиков аддонов
  4. и вообще надо отделать данные от программы вычисляющей локализацию а не все в одном файле хранить... Code: --------------------------------------------------------------------------------------------------local locales = { ru = { [ "Addon Manager" ] = "Менеджер аддонов", [ "User" ] = "Пользовательские" }, en = { [ "Addon Manager" ] = "Addon Manager", [ "User" ] = "User Addons" }, -- [[de = { [ "Addon Manager" ] = "", [ "User" ] = "" }, fr = { }--]] } locales.de = locales.en locales.fr = locales.en --------------------------------------------------------------------------------------------------- -- AO game localization detection by SLA. Version 2010-08-28. function GetGameLocalization() return "ru" end --------------------------------------------------------------------------------------------------- Global( "L", locales [ GetGameLocalization() ] ) --------------------------------------------------------------
  5. в описании написано:: Quote: ЛокализацияДля локализации пользовательских дополнений на другие языки можно использовать механизм языковых архивов. Языковой архив представляет собой zip-архив (со стандартным, нормальным сжатием), содержащий текстовые файлы с локализацией на тот или иной язык. Архивы с локализацией нужно помещать в ту же папку, что и "развернутые" дополнения - data\Mods\Addons. Например: data\Packs\UserAddon01.eng data\Packs\UserAddon02.eng Расширение языкового пакета должно соответствовать языку локализации. Например: UserAddon01.rus UserAddon01.eng UserAddon01.fra UserAddon01.ger UserAddon01.spa Путь до файла с локализацией внутри архива должен совпадать с путем до оригинального текстового файла. Например, для дополнения UserAddon01, лежащего в каталоге Mods\Addons и содержащего текстовые файлы: Header.txt LocalizedTexts\Text01.txt так может проще на базе этого сделать? чем по названию карты - тем более он сейчас не пашет
  6. не поняла что имеется ввиду
  7. елки так читать надо описание:: файл config.txt - это только первая инициализация, если вы потом поменяли параметр из командной строчки и сохранили в конфигурацю персонажа (по выходу это делается автоматически!) то этот параметр всегда будет переписывать значение из config.txt - вы хоть что там в config.txt пишите - действовать будет параметр из конфигурации персонажа. для очистки конфигурации персонажа введите команду /tm reset
  8. потому что много чего не пишется - то что по событиям другим приходит а не как в чат сообщение - это на каждое событие надо писать вставку....
  9. список вссех аддонов загруженных и очистить mods.txt
  10. это когда персонаж вышел из игры - вот такая ошибка приходит - я просто закоментировала этот вызов
  11. просьба сделать еще тип сообщений от аддонов: Code: elseif params.chatType == -5 then --- сообщени от аддонов, служебные сообщения Message( nil, WW ["System"] , 3 ) Message( nil, WW ["System"] , 0 ) тогда можно будет вот так красиво выводить лог из моего аддона:
  12. теперь поднимает и окно чата аддона WhisperWindow
  13. еще было бы классное если при открывании окна WW системное окно чата бы закрывалось (не все а только контейнер) - как при нажатии на "!" и наоборот - при скрытии окна - WW - открывалось бы системный чат - так как часто надо посмотреть системные сообщения по разным событиям - которых пока нет в WW
  14. ок. сделаем так: Code: function Open( params ) ... elseif common.IsSubstring(params.text, userMods.ToWString("/wwtest")) then local max = common.GetIntFromWString(userMods.ToWString(string.sub(userMods.FromWString(params.text), 9))) local sender = object.GetName(avatar.GetId()) local senderId = avatar.GetId() local chatType = CHAT_TYPE_WHISPER --- = 2 - разговор local recipient = ToWS(common.GetAddonName()) local valuedText = common.CreateValuedText() local format = "<html fontname='AllodsSystem'><rs class='color'><r name='text'/></rs></html>" valuedText:SetFormat(userMods.ToWString(format)) for i = 0, max do valuedText:SetVal( "text", ToWS(i..": this is TEST message, don't shut Me ))") ) OnEventChat( { msg = valuedText, chatType = chatType, sender = sender, isEcho=true, isAlive=true, recipient = recipient, senderId = senderId} ) end затем в чат введем /wwtest 3000 это у меня свалило игру я перегрузила клиент и заново: /wwtest 300 /wwtest 300 /wwtest 300 /wwtest 300 /wwtest 3 когда в окне уже по 1000 сообщений - даже ввод 3х подряд тормозит игру на 1секунду!!! и это с процессором 3+3ГГц и памятью 4Гб!!! такое впечатление что происходит расчет полета космического корабля русских на Марс )) Это говорит о том что у них методы для виджета очень плохо написаны! после этого теста - попыталась выгрузить WW через AddonsManager -- клиент завис на 10сек! Видимо как раз в этот момент была очистка памяти от мусора... похоже и с эти проблемы. если ввсести ограничение на буфер строк local MaxBuffSize = 500 то тормоза намного уменьшаются
  15. это не для моей задачи - мне нужно из системного скрипта данные выкачать
  16. хорошо - вот можем же мы в один и тот же виджет закатать данные - в EditLine например! и что самое интересное потом можно оттуда их взять! любой другой программе-аддону. а так же есть подстановки в мета таблицах. например я заменила стандартные методы в системном чате-окне для того чтобы считать сколько строк положили в контейнер: Code: wtChat:CountItemsInit() if not mt.CountItems then mt.CountItems = function ( self, count ) if count then countItems = countItems + count end return countItems end end if not mt.CountSetItems then mt.CountSetItems = function ( self, count ) countItems = count end end if not mt._RemoveItems then mt._RemoveItems = mt.RemoveItems mt.RemoveItems = function ( self ) self:_RemoveItems() self:CountSetItems(0) end end if not mt._PushFrontValuedText then mt._PushFrontValuedText = mt.PushFrontValuedText mt.PushFrontValuedText = function ( self, VOText ) self:_PushFrontValuedText( VOText ) self:CountItems(1) end end if not mt._PushFrontRawText then mt._PushFrontRawText = mt.PushFrontRawText mt.PushFrontRawText = function ( self, VOText ) self:_PushFrontRawText( VOText ) self:CountItems(1) end end if not mt._PushBackValuedText then mt._PushBackValuedText = mt.PushBackValuedText mt.PushBackValuedText = function ( self, VOText ) self:_PushBackValuedText( VOText ) self:CountItems(1) end end if not mt._PushBackRawValuedText then mt._PushBackRawValuedText = mt.PushBackRawValuedText mt.PushBackRawValuedText = function ( self, VOText ) self:_PushBackRawValuedText( VOText ) self:CountItems(1) end end if not mt._PopFront then mt._PopFront = mt.PopFront mt.PopFront = function ( self ) self:_PopFront( ) self:CountItems(-1) end end if not mt._PopBack then mt._PopBack = mt.PopBack mt.PopBack = function ( self ) self:_PopBack( ) self:CountItems(-1) end end но как оказалось - там будет все равно храниться значение только для моего аддона ((( использование методов виджета в других аддонах не изменилось - подсчет положенных строк в окно контейнер - не происходит ((
  17. а нет - там же еще родной скрипт - он то считает что чат полон строк и начинает тоже их удалять - в результате чат будет пуст ( ничего не остается как сделать свой обработчик событий прочих - типа как забрали что-то с почты или банка, заролили что и тд.
  18. еще интересней если удалять первую строчку из системного чата если она отображена в WW !! в системном чате тогда остаются только системные сообщения! вот код Code: local wtChat = nillocal chatRows = 0 --- for clear buffer after show messages function LogToChatInit() if not wtChat and not errMess.Chat then ---- если окно еще не искали и ошибки при этом не было. а если уже ошибка была то не искать --- найдем окно чата --- Chat..Chat local w w = stateMainForm:GetChildUnchecked("Chat", false) if not w then --- главня форма не найдена - найден по ребенку w = stateMainForm:GetChildUnchecked("Chat", true) else w = w:GetChildUnchecked("Chat", true) end wtChat = w end end function ClearChatFront( size ) if wtChat then wtChat:PopFront() else LogToChatInit() end end function OnEventChat( params ) ClearChatFront() --- edit by icreator if params.messages then --CODE BY DUVODAS, MODIFIED ...
  19. еще предлагаю чистить стандартное окно чата от тех сообщений что были выведены в WW Code: --- call by "EVENT_SECOND_TIMER" - for clear messages from chatfunction OnEventChat( params ) ... wtChat:PopBack() ... правда сначала надо найти виджет чата - см. тот же TargetsManager ScriptLIB.lua
  20. Code: local sender = object.GetName(avatar.GetId()) local senderId = avatar.GetId() local chatType = CHAT_TYPE_WHISPER --- = 2 - разговор local recipient = ToWS(ADDONname) userMods.SendEvent("U_EVENT_CHAT_MESSAGE_WITH_OBJECTS", { msg = valuedText, chatType = chatType, sender = sender, isEcho=true, isAlive=true, recipient = recipient, senderId = senderId}) вот теперь более мило выводит - как эхо приватного сообщения
  21. вот что я получила послав Code: message = valuedText local msg1 = { msg = message, chatType = 2, sender = object.GetName(avatar.GetId()), isEcho=true, isAlive=true, senderId=avatar.GetId() } userMods.SendEvent("U_EVENT_CHAT_MESSAGE_WITH_OBJECTS", msg1) из моей функции LoToChat
×
×
  • Создать...

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

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