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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

Ciuine

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

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

  • Посещение

Сообщения, опубликованные Ciuine

  1. I don't know which texts you're asking about, if you could specify in more details what texts they are, a simple {Text}:SetClassVal("class", "Size16") would do it.

    Google Translate:

    Я не знаю, какие тексты вы спрашиваете о, если бы вы могли указать более подробно, что тексты они, простые {Text}:SetClassVal("class", "Size16") сделал бы это.

  2. What user is going to get an influx of 300-3000 messages in an immediate processing loop? The issue you're experiencing with this is not that the game cannot handle it, it's that you're forcing it to collect garbage for an entire add-on almost 1000 times immediately. It gets around 60 messages and then it tries to collect useless remainder information.

    There's a reason why /wwclear exists. Try it.

    I don't see the point in these heavy load tests, when it's not feasible consumer data. If you're trying to print a series of texts on demand, I suggest something like this (this is code for the /wwhelp I have already implemented in my version);

    Google Translate:

    Что пользователь собирается получить приток 300-3000 сообщений в немедленной обработки петли? Вопрос у вас возникли с этим не то, что игра не может с этим справиться, то, что вы заставляете его для сбора мусора для всего дополнения почти в 1000 раз сразу. Он получает около 60 сообщений, а затем он пытается собирать бесполезную информацию остатка.

    Там в причине /wwclear существует. Попробуйте это.

    Я не вижу смысла в этих тяжелых испытаний нагрузки, когда это не представляется возможным данных потребителей. Если вы пытаетесь напечатать ряд текстов по требованию, я предлагаю что-то вроде этого (это код /wwhelp я уже реализованы в моей версии);

    Code:
    Global("SlashComText", {

     ["eng"]  = {

     [0]  = "Slash Commands:",

     [1]  = "Reset DND of WhisperWindow.",

     [2]  = "Clear current window of text.",

     [3]  = "Changes the font Size to the # (integers) - Ex. /wwsize 46",

     [4]  = "Changes the transparency of the Background, (0 to 10) - Ex. /wwtrans 5 = .5",

     [5]  = "Toggles to Localization or English.",

     [6]  = "Sets selected custom color.",

     [7]  = "Set WhisperWindow display above/below the map.",

    },

     ["rus"]  = {

     [0]  = "ñëýø-êîìàíä:",

     [1]  = "Ñáðîñ DND èç WW",

     [2]  = "î÷èñòèòü òåêóùåå îêíî òåêñòà",

     [3]  = "èçìåíåíèÿ ðàçìåðà øðèôòà (÷èñåë) /wwsize 46",

     [4]  = "Èçìåíåíèå ïðîçðà÷íîñòè ôîíà, (0 ê 10) /wwtrans 5 = .5",

     [5]  = "Ïåðåêëþ÷åíèå òåêñòà ê ëîêàëèçàöèè èëè àíãëèéñêîì ÿçûêå.",

     [6]  = "Óñòàíàâëèâàåò âûáðàí äðóãîé öâåò.",

     [7]  = "Çàäàòü WhisperWindow äèñïëåé âûøå/íèæå êàðòå.",

    },

    })

    Code:
    function Help()

    Name = object.GetName(avatar.GetId())

    local LText = SlashComText [GetGameLocalization()]  or SlashComText ["eng"] 

    local SlashComs = {

     [0]  = {text = LText [0] },

     [1]  = {command = "/wwreset", text = LText [1] },

     [2]  = {command = "/wwclear", text = LText [2] },

     [3]  = {command = "/wwsize #", text = LText [3] },

     [4]  = {command = "/wwtrans #", text = LText [4] },

     [5]  = {command = "/wweng", text = LText [5] },

     [6]  = {command = "/wwcusset", text = LText [6] },

     [7]  = {command = "/wwtop", text = LText [7] }}

    local message = userMods.ToWString( "<html><rs class='class'><r name='command'/><LogColorYellow><r name='blah'/></LogColorYellow></rs></html>" )

    local fragments = {}

    local format = { "<html>" }

    for i = 0, table.getn( SlashComs ) + 1 do

    local v = SlashComs [ i ] 

    if v then

    table.insert( fragments, common.CreateValuedText() )

    fragments [ i + 1 ] :SetFormat( message )

    if v.command then

    fragments  [ i + 1 ]  :SetClassVal( "class", "tip_blue")

    fragments [ i + 1 ] :SetVal( "command", userMods.ToWString(v.command..": ") )

    end

    fragments [ i + 1 ] :SetVal( "blah", userMods.ToWString(v.text) )

    table.insert( format, "<r name = 'value"..( i + 1 ).."'/> " )

    end

    end

    table.insert( format, "</html>" )

    format = table.concat( format )

    local msg = common.CreateValuedText()

    msg:SetFormat( userMods.ToWString( format ) )

    for i, v in ipairs( fragments ) do

    msg:SetVal( "value"..i, v )

    end

    MessageText = msg

    Message( nil, "Yellow", 0 )

    end

  3. I ran a test where I printed a message every second for five minutes. It printed this message to two containers, using EVENT_CHAT_MESSAGE. (No reason to do U_ tagged events, as the state managed add-ons ignore userMods.SendEvent. This also saves creating a separate event recognition in my add-on.) After the five minutes, theoretically 600 messages were printed on top of the messages from the gold spammer I left unignored to help me test this. The add-on only climbed up to 355 KB of memory used, and frequently garbage collected once a minute to keep memory low. I will leave it running for an hour to see the end result.

    As a side note; instead of doing everything you just recommended, I slapped a simple collectgarbage() into my /wwclear command. So when you clear the window, it forces a garbage collection and a redefinition of the memory limits of the add-on.

    Edit: After 30 minutes, no change; 3600 messages + gold spammer once every ten seconds (300 messages) + random chatter. The add-on still runs a garbage collection once a minute and drops back down to 250 KB, the minimum for its current demand and reaches it's maximum defined memory at around 480 KB and then dumps again. I don't see a the problem you believe would happen.

    Google Translate:

    Я побежал тест, где я напечатал сообщение каждую секунду в течение пяти минут. Это печатные этого сообщения на два контейнера, используя EVENT_CHAT_MESSAGE. (Нет смысла делать U_ отметил события, как государству удалось дополнений игнорировать userMods.SendEvent. Это также экономит создания отдельного признания событие в моей дополнения.) После пяти минут, теоретически 600 сообщений были напечатаны на верхней части сообщения из золота спамер я оставил очищен, чтобы помочь мне проверить это. Дополнения только поднялась до 355 КБ памяти, используемой, и часто мусора один раз в минуту, чтобы сохранить память низким. Я оставлю это работает на час, чтобы увидеть конечный результат.

    В качестве примечания, а не делать все, что вы просто рекомендовал, я ударил простой collectgarbage() в моей /wwclear команды. Итак, когда вы ясно окно, она заставляет сбор мусора и переопределение памяти пределах дополнения.

    Изменить: После 30 минут, без изменений; 3600 сообщений + золото спамера каждые десять секунд (300 сообщений) + случайные разговоры. Дополнения по-прежнему работает мусора один раз в минуту и падает обратно до 250 КБ, минимум за текущий спрос и достигает его максимальной определены память около 480 Кб, а затем снова свалки. Я не вижу проблемы Вы уверены, что произойдет.

  4. I remember seeing a Japanese made add-on that does this, supposedly; while I was looking around with Google Japan.

    I haven't tested it, it's the last add-on mentioned; "XPMeter".

    Google Translate:

    Я помню, японская сделано дополнение, что это, якобы, в то время я смотрел вокруг с Google Японии.

    Я не проверял, это последнее дополнение упоминается; "XPMeter".

    http://yamabuki-jp.blogspot.com/2010/10/allods-online-addons.html

    EDIT: Whoops, looks like the link is broken, ends up going to the add-on above it.

  5. Can do. I just didn't want to add multiple buttons for something simple as setting the transparency up one point or other things like that or setting the size ten sizes higher would require ten button clicks...

    But I was actually going to add buttons to these eventually; when I can get around to it. Another idea I was toying with was turning the text values in the config window into buttons and then they call on a simple EditLine window where people can type in the number to change that variable, might be simpler.

    Google Translate:

    Можно делать. Я просто не хочу, чтобы добавить несколько кнопок чего-то простого, как установление прозрачности до одной точки или другие вещи, как, что и установка размеры размер десять выше потребует кликов десять кнопку ...

    Но я был на самом деле происходит добавление кнопки на эти в конечном итоге, когда я могу обойти ее. Другая идея, я играю с превращалась текстовые значения в конфигурации окна в кнопки, а затем они призывают простое окно EditLine, где люди могут ввести номер изменения этой переменной, может быть проще.

×
×
  • Создать...

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

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