Добавлен , опубликован
Если данная тема уже существует, или я её создал не в том месте - укажите мне на ошибку, пожалуйста.
Здесь я бы хотел поделиться найденными багами. Возможно Вы пожелаете дополнить этот список. Далее список можно будет перевести и отправить разработчикам.
call SetUnitDiceSides( GetTriggerUnit(), 1, 0 )
в GUI редакторе в качестве индекса атаки можно выбрать только значение 0. Хотя первая аткака начинается не с 0 а с 1
call UnitAddAbilityBJ( udg_lSpell, GetTriggerUnit() )
call UnitHideAbility( GetTriggerUnit(), udg_lSpell, true )
call UnitHideAbility( GetTriggerUnit(), udg_lSpell, false )
Если герою дать обилку, сначала его спрятать, а потом отобразить - то абилке скроется, но не отобразится вновь
call UnitDisableAbility( GetTriggerUnit(), udg_lSpell, true, true )
call UnitDisableAbility( GetTriggerUnit(), udg_lSpell, false, false )
если абилку сначала заблочить, потом отобразить - то абилка не отобразится
call SetItemName( GetLastCreatedItem(), "test name" )
call DisplayTextToForce( GetPlayersAll(), GetUnitName(GetTriggerUnit()) )
если юниту поменять имя, а потом попытаться это имя узнать - то вернётся дефолтное имя юнита, а не установленное триггером
call SetItemName( GetLastCreatedItem(), "item name" )
call SetItemTooltip( GetLastCreatedItem(), "tooltip" )
если попытаться присвоить предмету уникальное имя или описание - то имя и описание поменяется у ВСЕХ предметов данного типа (а не одного лишь
call SetAbilityResearchTooltip( udg_lSpell, "test value 1", 1 )
call SetAbilityResearchTooltip( udg_lSpell, "test value 2", 2 )
не работает изменение описания для указанного уровня в окне изучения героических способностей
Следующий баг не до конца изучен:
Когда пытаюсь вывести строку, в которой используется символ % - вместо этого символа и символов рядом стоящих - подставляются странные значения, похожие на адреса данных.
set udg_itemStatASpd[i] = 0.05 * (1 + 0.1 * I2R(level-1))
set udg_items_descr[i] = name + " |cffffcc33(L" + I2S(level) + ")|r\n"
set udg_items_descr[i] = udg_items_descr[i] + "+" + I2S(udg_itemStatHp[i]) + " HP\n"
set udg_items_descr[i] = udg_items_descr[i] + "+" + I2S(R2I(udg_itemStatASpd[i] * 100)) + "% attack speed\n"
Т е вместо "% a" подставилась какая-то херь
Комментарий пользователя Sergarr, :
Возможно, это связано с недокументированной добавленной функцией целого деления (a % b), и интерпретатор делает черт знает что, когда он видит этот процент в строке.
Попробуй поставить два процента подряд вместо одного: %%. Обычно в языках программирования это работает с подобного рода символами.
Хотя, конечно, это очень сильная хрень.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
23
6 лет назад
0
У тя руки просто кривые...
1
13
6 лет назад
1
pro100master, ну-ка расскажи как надо
Нет возможности устанавливать здоровье вне учёта временных прибавок к здоровью от активных заклинаний.
Например, лог действий:
юнит воспльзовался способностью "аватар", который прибавляет ему 500 ед. здоровья
пока эффект аватара не закончился ему через скрипт установили SetMaxUnitHP = 700
по истечению использования способности "аватар" здоровье юнита уменьшается на 500 ед. и принимает значение в 200 единиц.
Разумеется, можно изощряться и налаживать системы отлова активных способностей и прочих эффектов, дающих временные бонусы к здоровью - затем при установке здоровья к желаемому значению прибавлять полученное значение бонуса здоровья - но это всё костыли. Хотелось бы иметь возможность задавать здоровье юнита без учёта от активных эффектов (возможно - в качестве дополнительной функции, не изменяя механику старой функции)
0
16
6 лет назад
0
Cancel - вообще не понял проблемы. Или ты с процентными бонусами хочешь работать?
0
13
6 лет назад
0
DracoL1ch, если ты герою установишь максимальный HP как 700 единиц, и при этом у героя заюзана абилка Аватар - то после завершения абилки "аватар" здоровье юнита уменьшится до 200 единиц.
4
23
6 лет назад
4
Cancel, аватар дает хп а потом отнимает... а триггерно дает максимальный хп все верно хотите увеличить хп то получи сначало текуший макс хп и прибавь хп вот так надо а не просто указать который установит как новый значение
1
13
6 лет назад
1
pro100master, если задача стоит установить абсолютный запас здоровья, а не её прибавку - то придётся отслеживать все активные воздействия. Задача не стоит в том, чтобы добавить воину n HP, задача стоит в том, чтобы воину установпить n HP, а в данный момент это можно делать только наладив отслеживание бафов на макс hp
0
29
6 лет назад
0
call SetItemName( GetLastCreatedItem(), "item name" )
call SetItemTooltip( GetLastCreatedItem(), "tooltip" )
если попытаться присвоить предмету уникальное имя или описание - то имя и описание поменяется у ВСЕХ предметов данного типа (а не одного лишь
Мне кажется так и задумано? Ну типа оно конечно делает функцию намного менее полезной но как я понял вся та же хрень и с абилками.
1
29
6 лет назад
1
Doc,
Ну просто логично было бы тогда передавать в функцию айди предмета типо 'I000', а не конкретный предмет. Раз меняется у всех.
0
13
6 лет назад
0
Doc, да, с абилками та же хрень. Но есть два основания полагать, что это баг: на юнитах система с уникальными именами работает, и как сказал 16GB, если было бы задумано менять строку у всех предметов - то нет смысла в аргументах запрашивать предмето, вместо типа предмета.
Скорее всего ошибка заключается в том, что все предметы одного экземпляра ссылаются на одну и ту же строку локализации, и вместо того, чтобы менять ссылку на строку - меняется сама строка.
0
16
6 лет назад
0
потому что не проверить, является ли id предметом или чем, а с предметом намного проще. Другой вопрос, что нужно вообще иначе API создавать, но близзам виднее офк, они ж боги
0
29
6 лет назад
0
Скорее всего у юнитов есть конкретные имена т.к. у героев например есть таблица имен из которой выбирается одно из них. У абилок и итемов скорее всего ссылка на оригинальную таблицу. Они выдали сырое АПИ, а нужен был новый функционал по сути.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.