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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

DiSlord

Разработчик аддонов
  • Постов

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

  • Посещение

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

  1. Записывать урон пета отдельно - имхо бредово в принципе + дополнительно усложняет код.

    Я вот чтото не уверен что правильно подсчитываете если в рейде более 1 мистика, даже с таким извратом в коде, а если точности все равно нет, то толку от такого? Ну даст это прибавку 1-2к дпс, все равно в пределах погрешности.

    unit.GetFollowerMaster - есть в документации.

    ЗЫ все мое ИМХО, в программировании предпочитаю простоту, любой костыль в коде - это куча проблем при исправлении, дополнении, читабельности кода.

  2. Quote:
    работает с версией 3.0.05.30 - избавился от avatar.GetUnitList()

    Ммм а вы не думали что функция unit.GetActivePet вернет пета только если друид/некр в одной пате с вами? Просто есть небольшие сомнения в правильном подсчете ДПС в рейде от друлей если они не в одной пате.

    Посмотрел код добавления ПУ - шедеврально

    Добавлено
    PS сори посмотрел код, вы пета прямо в бою добавляете :)
    я думаю что проще решил проблему с ПУ и петами, пример во вложении
  3. Нет мейн форма имеет размер 200х32

    Code:
    <WidgetForm>

    <Name>BuildManagerButton</Name>

    <Priority>8191</Priority>

    <Children>

    <Item href="ButtonShow.(WidgetButton).xdb#xpointer(/WidgetButton)" />

    </Children>

    <BackLayer href="" />

    <FrontLayer href="" />

    <Placement>

    <X>

    <Align>WIDGET_ALIGN_LOW</Align>

    <Size>200</Size>

    </X>

    <Y>

    <Align>WIDGET_ALIGN_LOW</Align>

    <Size>32</Size>

    </Y>

    </Placement>

    <Visible>true</Visible>

    <Enabled>true</Enabled>

    <TransparentInput>false</TransparentInput>

    <PickChildrenOnly>true</PickChildrenOnly>

    </WidgetForm>

    В ней кнопка (имеет размер на всю мейн форму)

    Code:
    <WidgetButton>

    <Name>ButtonShow</Name>

    <Priority>10000</Priority>

    <Header>

    <Prototype href="/Mods/SampleCommon/Button/ButtonRegular.Prototype.(WidgetButton).xdb#xpointer(/WidgetButton)" />

    </Header>

    <Placement>

    <X>

    <Align>WIDGET_ALIGN_BOTH</Align>

    </X>

    <Y>

    <Align>WIDGET_ALIGN_BOTH</Align>

    </Y>

    </Placement>

    <Variants>

    <Item>

    <TextFileRef href="DefaultValue.txt" />

    <Reaction>bild_show_click</Reaction>

    <ReactionOnUp>true</ReactionOnUp>

    </Item>

    </Variants>

    <PickChildrenOnly>false</PickChildrenOnly>

    </WidgetButton>

    Как только я делаю в мейн форме выравнивание по центру, она пропадает с виджета (уходит в центр экрана).

    ЗЫ прикрепил исходники аддона кнопки

    ЗЗЫ изначально кнопка была не в ContextTalents->Parent (имеет размер на весь экран, а глубже в ContextTalents->Parent->BaseWindow (имеет нужный размер). Я ее передвинул чтобы была видна и при наборе талантов.

  4. если вносиш изменения в xdb файл, то да надо (да я знаю что мона и кодом двигать, но я на тот момент настолько за...ся искать пути обхода своей проблемы (сделав один костыль, приходилось делать другой уже для него), что пару раз изменив xdb даже не стал уже заморачиватся, и прописал координаты напрямую.

    Quote:
    С мейн формой - странно. Т.е. она пихалась ребенком окну, скажем, скиллов, но при этом вылезала за его границы?

    именно (я по 1 времени даже не знал получилось или нет ее добавить, кнопочки не было видно, эт потом я ее увидел в центре экрана, когда растянул размер родительской панели).

  5. Code:
    Выравнивание любого виджета идет относительно его родительского виджета. 

    Прааавда? а то я не знал(( Перечитайте предыдущие сообщения чтоб быть в курсе вопроса.

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

    ЗЫ Я не стал долго думать над "правильным" решением, уж больно утомительно пере запускать каждый раз клиент на моем калькуляторе.
  6. Если это ответ на мой предыдущий пост, то я в курсе как задавать позицию и выравнивание.

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

  7. Самое смешное что это не такая существенная функция для получения списка юнитов вокруг (я ее использовал только для обновления списка при сбросе аддона). Такое впечатление что сверху поступила команда чтоб к МАП ассист манагеры не работали, и однмин отвлешшись от просмотра порнухи недолго думая решил эту проблему отпилив первое что пришло в голову.

  8. От поэтому выкладывать чтото для общего пользования - зло.. Когда используется только для себя (ну в узком кругу людей) наамного безопаснее.

    Ведь отпиливанием пары тех фунций херят не только таргет мэнеджеры (ну запретили бы выделять игроков не из пати, рейда), но ведь нет пошли самым простым путем, убрать!!!!

  9. Code:
    Так что - дарите счастье тем, кто еще может и хочет. Или сами делайте что хотите

    Года 1.5-2 назад когда не было такого срача в игре, еще было желание делать что-то, для всех, сейчас уже такого нет :)
  10. Code:
    Ну, собственно, за последние полгода кое-что успели по(резать)менять
    Или ошибки были всегда? 

    Не в укор к кому либо, просто когда одного согильдийца достало чистить mods.txt от спама ошибок в одном из аддонов, и он попросил исправить это, я даже не взялся, код абсолютно ничитаем. Ошибки были всегда (хотя я понимаю что в аддонах для аллодов без этого никуда, уж очень криво там все), но их ведь можно минимизировать? Но с другой стороны хорошо хоть так но есть :)
  11. Ну вот конкетный пример:

    Сделан аддон для загрузки билда и панелек (уж очень меня достало каждый раз после сброса билда КМВ, набирать его снова и раскидывать умения). На аддон было затрачено N-ое кол-во времени (восновном афкал пока меня возили до островов и фармили на перевозках). И скажи от зачем мне выкладывать его просто так в паблик, зная что возможно аддону потом отпилят его функционал (не дай бог разработчикам покажется что это слишком облегчает жизнь игрокам).

    Тот аддон хоть и работает только внутри гилдии, но и это не защита от взлома (другой аддон с подобной защитой уже взломали). Lua слабо защищен от декомпиляции, тут поможет только шифрование и обфускация кода, а вот это уже намного сложнее (на написание защиты у меня ушло гораздо больше времени чем на сам код аддона).

    ЗЫ народ идеями просто фонтанирует, но вот взять и сделать что то сложно, а мысль что за это надо платить (пусть и весьма символическую плату) вызывает дикий агр.

  12. Еще раз про кнопку в одном из окон системных аддонов.

    Понадобилось мне сделать такую кнопочку в панельке талантов, казалось бы что проще? Пихнул ее через AddChild и все, ан нет, тогда сообщения о нажатии не поступают в скрипт. Чтобы сообщения поступали в скрипт, добавлять нужно только mainForm, Но вот незадача, помимо кнопки у меня там и другие панельки, и пихать их туда вместе с кнопой ну не вариант(.

    Вобщем решил пойти извращенным путем что написал выше, сделал ОТДЕЛЬНЫЙ аддон на кнопку (уже изврат, но что поделаеш), запихнул форму аддона на нужную панельку и .... и тут облом, ну не хочет мейн форма выравниваться по центру или низу, ну никак (хотя работает). Вобщем подсчитал ее расположение вручную, запихал, и вроде успокоился..

    Код для желающих во вложении...

  13. Quote:
    Вопрос знатокам.
    Есть аддон с MainForm в которой находятся все его элементы.
    Необходимо в форму системного аддона добавить дочернюю кнопку, чтоб ее мог обрабатывать аддон.
    Насколько я помню, при нажатии кнопки сообщение передается материнскому виджету (в нашем случае системному аддону). Единственным возможным вариантом вижу создание еще одной формы, которая и будет привязана к системному аддону.

    Теперь вопрос: как обратиться ко второй, не MainForm форме? Ну или какие возможные варианты решения задачи.

    Столкнулся с такой же проблемой,

    Переношу кнопку на виджет другого аддона, и мне перестают приходить сообщения ее нажатии.

    Code:

    stateMainForm:GetChildChecked("ContextTalents", false):GetChildChecked("Parent", false):AddChild(show_button)


    Там кнопку нажать можно уже, но вот сообщения нажатии нет :(
  14. Уж проще текстурку прицела сменить (что я у себя и сделал)

    Code:
    wCanonTarget = stateMainForm:GetChildUnchecked("ContextShipDeviceCrosshair",false)

    wCanonTarget:SetBackgroundTexture(common.GetAddonRelatedTexture("Aura01A"))

    wCanonTarget:SetBackgroundBlendEffect( BLEND_EFFECT_ALPHABLND )

    wCanonTarget:SetBackgroundColor( {r = 1, g = 0, b = 0, a = 1} )

    setSize(wCanonTarget, 96, 96)

  15. Хотел сделать (хотя думаю переделаю под себя данный аддон) что то подобное...

    Посмотрел код, немного удивил метод поворота координат, все гораздо проще..

    Code:

    local angle = - transport.GetDirection( getMyShipID() ) + math.pi

    local dX = pos.posX - avatarPos.posX

    local dY = pos.posY - avatarPos.posY

    local dist = math.sqrt(dX*dX + dY*dY)

    local cos = math.cos(angle)

    local sin = math.sin(angle)

    local x = dX * sin + dY * cos

    local y = dX * cos - dY * sin

    local rr = 175 - ( uInfo.targ and 0 or 25 )

    wtSetPlace( w, { posX= rr / dist * x, posY= rr / dist * y} )

    end

    Надеюсь помог (подправил код, исправил знаки)..

  16. Как можно изменить цвет произвольного значения в WidgetTextView

    Code:

    <body alignx="left" fontsize="18" outline="1">

    <rs class="class">

    <br><r name="time_value_1"/></br>

    <br><r name="time_value_2"/></br>

    <br><r name="time_value_3"/></br>

    <br><r name="time_value_4"/></br>

    <br><r name="time_value_5"/></br>

    </rs>

    </body>

    Мне надо к примеру чтоб time_value_2 был сначала зеленым, потом желтым потом красным, но это не затрагивало остальные значения.

  17. Мне нужны баффы не только на аватаре, но и в пати/рейде, ну и некоторых мобов.

    Смысл ошибки мне понятен (да я запомнил бафф и объект при его появлении, и когда произошло изменение баффов в ивенте EVENT_OBJECT_BUFFS_CHANGED на этом объекте, пытаюсь проверить существует ли он еще, если нет то сделать чтото), но вот нафига при этом чтото писать в файл? просто думал что есть аналог try/catch.

    А вот что за потоки? Я не большой спец в lua, так почутка интересуюсь..

    PS да я уже пришел к тому что приходится искать бафф при помощи object.GetBuffs(), это медленней, но чтож делать :( как обычно через костыль..

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

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

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