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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

user02

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

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

  • Посещение

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

  1. Только астральные в innateStats используется для подсчета могущества и выносливости PS: По мне это все как-то криво.. могли конечно и причесать) Хотя конечно, я так понимаю, они боялись, что что-нибудь сломается и просто рядом велосипед стат построили новый Тема закрыта
  2. Насколько я понял в игре есть два типа расположения стат. Если Беспощадночть и т.п. располагаются в группе с мощностью и выносливностью, то нужно использовать iteminfo.innateStats, Если в группе спец статы, то iteminfo.specStats. Кратко: 1. Не астральные используют методику подсчета через iteminfo.innateStats 2. Астральные используют методику подсчета через iteminfo.specStats Для работы со спец статами лучше использовать не p.name, а p.tooltipName.
  3. Проблемы?! 1. Нули о статах, которых нет это не проблема, Они ничего не меняют сточки зрения статистики (а + 0 = а) 2. Про тоолтип интересно... Надо проверить но в документации про это нет... specStats : table[1,..] of tables - различные спец-статы: id: SpecialStatId - идентификатор стата name : WString - имя спец-стата value : number (float) - значение спец-стата type: number(ENUM_SpecialStatType) - класс характеристика Конструкция нормально просто сумирует значения... items[ p.sysName ] = (items[ p.sysName ] or 0) + p.effective
  4. Если честно тебя каежтся немного не туда понесло Во первых, конструкция: for u, p in pairs( iteminfo.innateStats ) do end Переберает все основные статы! Во вторых, я же говорю такая конструкция работает для не астральной экиперовки... Для астральной экиперовки там будут только 0.
  5. Не совсем ясно, что тут сильно изменилось.. когда там 0... Тем не менее, это не привело к правильности подсчета стат моего персонажа.... Более того такое ощущение, что этот подсчет не работает только для астральных шмоток (71). Пробовал одевать другие шмотки (не астральные) расчет работает. Вопрос открыт как считать основные статы (решимость, беспощадность) для астральной экиперовки...
  6. Добрый деь. Подскажите, пожайлуйста, кто-нибудь разбирался как теперь получать текущее значение основных стат, которые дает экиперовка. В текущем мануале ничего нового не написано, но с ведением 7.0 старый способ перестал работать, т.е. local itemInfo = itemLib.GetBonus( itemid ) or nil if itemInfo then for u, p in pairs( iteminfo.innateStats ) do items[ p.sysName ] = (items[ p.sysName ] or 0) + p.effective end end Пересмотрел все поля iteminfo.innateStats, они все почему-то равны 0. В iteminfo.specStats данные значения есть, только идентифицировать к чему относится не возможн для основных полей (решимость, беспощадность и т.п.) p.name пусто. Есть у кого, какие-идей что не так? Ответ: Нужно добавить подсчет "Основных стат" через iteminfo.specStats. Для поиска названий использовать p.tooltipName.. Коротко 1. Если статы в группе с мгуществом и выносливостью, то используется подсчет через iteminfo.innateStats 2. Если статы в группе Специальные статы, то использовать подсчет через iteminfo.specStats. При этом для полноты имен нужно использовать p.tooltipName., вместо p.name.
  7. Добрый день. Использую встоенные классы: CombatRed CombatOrange т.е. SetClassVal("class", color ) В результате выводится все одним цветом - оранжевым! Это нормально?
  8. Вроде id ресурсов игры сохраняются между сессиями. Нельзя ли тогда сохранить перечень id+название и по ним потом находить соответствующую текстурку?
  9. Если не понятен мой вопрос, то нечего повторять одно и то же два раза. Я ожидаю предложений или идей как правильно сделать так чтоб она все же отображалась. На скриншоте видно что сейчас текстурки для цепного всета не подставляется..
  10. под нет текстурки имеется виду белый квадратик. см скриншот. Ошибок в mods.txt нет.
  11. можно ссылку кликабельную? нашел вот такую тему: http://alloder.pro/topic/993-showdd/ А насчет корректности... ну так не отображается же текстурка для цепного света
  12. Добрый день. Сталкнулся со следующей проблемолй. при формирования вывода в виде иконка + урон получается не всегда есть иконка. например, для жряковского цепного света не отображается текстурка. делаю следующим образом. Из перечня типов урона нахожу тот который не пустой. Дальше получаю информацию о нем и беру соответствующую тектурку. Из примера выше получается что жряковский "цепной свет" распозхнается как тип баф, и для него не в переменной текстура нет ее. Есть какие идеи как это все красиво можно сделать. Пока только мысли по имени закленания искать иконки... Ниже пример кода: if ( params.spellId ) then texture = spellLib.GetIcon( params.spellId ) local spellInfo = spellLib.GetDescription( params.spellId ) spellName = spellInfo.name debug = 'spellInfo' --abilityId: AbilityId (ResourceId) / nil - Id абилки, если били абилкой. elseif ( params.abilityId ) then local abilityInfo = avatar.GetAbilityInfo( params.abilityId ) texture = abilityInfo.texture spellName = abilityInfo.name debug = 'abilityInfo' --buffId: BuffId (ResourceId) / nil - Id буффа, если били буффом. elseif ( params.buffId ) then local buffInfo = object.GetBuffInfo( params.buffId ) texture = buffInfo.texture spellName = buffInfo.name debug = 'buffInfo' --mapModifierId: MapModifierId (ResourceId) / nil - модификатор карты, если повреждения от модификатора карты elseif ( params.mapModifierId ) then local mapModifierInfo = cartographer.GetMapModifierInfo( params.mapModifierId ) texture = mapModifierInfo.image spellName = mapModifierInfo.name debug = 'mapModifierInfo' --isFall: boolean - повреждение от падения elseif params.isFall then texture = nil spellName = 'Урон от падения' debug = 'isFall' --isExploit: boolean - повреждения от эксплойта elseif params.isExploit then texture = nil spellName = 'Урон от эксплойта' debug = 'isExploit' end
  13. user02

    AoUMeter

    Есть предложение добавить обработку события выгрузки аддона AOPanel. Нужно просто вставить в файл "AoUMeterEvents.lua" следующий код: onMyEvent["EVENT_ADDON_LOAD_STATE_CHANGED"] = function(params) if params.name == "UserAddon/AOPanel" and params.unloading and not params.loading then AoPanelDetected = false if DPSMeterGUI then DPSMeterGUI.ShowHideBtn:Show() end end end
  14. Основная проблема будет это с точкой отсчета. Если ты вышел и не играл: 1 числа в 10-00 (потеряется авторитета тех кто играл позже) 2 числа в 22-00 (потеряется авторитета тех кто играл позже) 3 числа в 15-00 (потеряется авторитета тех кто играл позже) ... т.е. аддон наложит на тебя обязательность заходить в игру в заданное время, например, в 20-50 каждого дня...
  15. Добрый день. Интересно мнение авторов платных адонов к следующему. Например, вы сделали аддон и он платный, а кто-то взял и сделал оочень похожий аддон на ваш, но выложил бесплатно. 1. С одной стороны понятно, что люди потратили время, сделали аддон и получают за это бонус. Как следствие это может стимулировать их к написанию еще каких-либо няшных аддончиков... 2. С другой стороны если выложить похожий бесплатный аддончик, то автор не дополучит бонус. Как следствие это может демативировать их к написанию новых... ... Хотя тут есть АО тимз , которые то же отчасти стимулируют... Вообщем хотелось бы услышать мнение авторов платных аддонов.
  16. Вот это и интересно. Механизм событий позволит добиться параллельности или нет. Я понимаю, что через for я отправлю последовательно несколько событий. А вот как обработчик событий поведет. Запустит каждое по мере поступления или параллельно Если нет, то конечно лучше 1-ый вариант...
  17. Добрый день. Подскажите, пожалуйста, как лучше делать. Например, мы хотим отслеживать за появлением юнитов и хотим чтоб быстро отрабатывал скрипт. Первый подход. Написать функцию обработчик onUnitSpawned() и зарегистрировать ее на обработку события EVENT_UNIT_SPAWNED. Так как при старте аддона ничего не известно о уже имеющихся юнитах, то мы при старте получаем перечень юнитов и для каждого выполняем функцию onUnitSpawned(). Второй подход. Написать функцию обработчик onUnitSpawned() и зарегистрировать ее на обработку своего события MY_EVENT_UNIT_SPAWNED. Посылаем событие MY_EVENT_UNIT_SPAWNED при возникновении EVENT_UNIT_SPAWNED. Так как при старте аддона ничего не известно о уже имеющихся юнитах, то мы при старте получаем перечень юнитов и для каждого посылаем событие MY_EVENT_UNIT_SPAWNED. Соответственно интересно какой из вариантов стоит выбрать, если, например, при старте нас окружает 100 или больше. Мои мысли про варианты: Первый вариант сразу получает юниты и начинает их орабатывать. Второй вариант сразу получает юниты и генерит события, события в свою очередь обрабатываются и возможно параллельно.
  18. Все что тут описано работает. Единствнное не понял как правильно отслеживать изменение стаков бафов и времени. На данныый момент вижу только 2 способа через событие EVENT_SECOND_TIMER и через событие EVENT_EFFECT_FINISHED. Кто что может посоветовать?
  19. спасибо, буду пробовать...
  20. Добрый день. Подскажите кто знает про создание и использование меток в игре. На форму нашел вот эту тему. Там есть пример: Пример: Code: local wtControl3D = stateMainForm:GetChildChecked( "MainAddonMainForm", false ):GetChildChecked( "MainScreenControl3D", false ) OurWidget = mainForm:CreateWidgetByDesc(2DWidget:GetWidgetDesc()) local size = {} size.sizeX = 1 size.sizeY = 1 wtControl3D:AddWidget3D( OurWidget , size, object.GetPos(avatar.GetId()), false, false, 75.0, WIDGET_3D_BIND_POINT_HIGH, 1, 1 ) object.AttachWidget3D( v, wtControl3D, OurWidget , 3 ) OurWidget :Show(true) Где 2DWidget - это некий 2Д виджет (панель/кнопка/еще че). Кстати кнопки как-то "не так" аттачатся, т.е. приаттачить кнопку на которую можно будет нажать теперь вроде как нельзя. Хотелось бы научиться и понять как можно и правильно: 1. Вешать на юниты (мобов играков) свои виджеты. например информацио баффах с возможнгостью обнавления информации о времени, стаках и т.п. 2. Для отслеживания изменения времени и стаков баффа нужно осуществлять с использованием события EVENT_SECOND_TIMER?
  21. Добрый день. Что-то никак не могу найти название системного виджета записи на сражение. Раньше его можно было найти в инспекторе виджитов как ContextMatchMakingSelect. Кто-нить знает как он сейчас называется?
×
×
  • Создать...

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

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